Kata
Pengantar
Puji syukur alhamdulillah kami panjatkan ke
hadirat Tuhan Yang Maha Esa, karena telah melimpahkan rahmat-Nya berupa
kesempatan dan pengetahuan sehingga makalah ini bisa selesai pada waktunya.
Terima kasih juga kami ucapkan kepada teman-teman
yang telah berkontribusi dengan memberikan ide-idenya sehingga makalah ini bisa
disusun dengan baik dan rapi.
Kami berharap semoga makalah ini bisa menambah
pengetahuan para pembaca. Namun terlepas dari itu, kami memahami bahwa makalah
ini masih jauh dari kata sempurna, sehingga kami sangat mengharapkan kritik
serta saran yang bersifat membangun demi terciptanya makalah selanjutnya yang
lebih baik lagi.
Yogyakarta, 13 Mei 2019.
Penulis
Daftar Isi
Kata Pengantar
BAB I
PENDAHULUAN
A. Latar
Belakang
B. Rumusan Masalah
C. Tujuan Penulisan
BAB II
PEMBAHASAN
A. Pengertian
Searching
B. Metode – Metode Searching
1. Squential Search
2. Binary
Search
BAB III
PENUTUP
A. KESIMPULAN
BAB I
PENDAHULUAN
A.
Latar Belakang
Searching adalah
mencari data yang dibutuhkan. Searching dalam
pemrograman bisa dilakukan untuk mencari data yang ada di dalam memory
komputer. Dalam kehidupan sehari-hari kita juga sering melakukan kegiatan
searching seperti mencari data/informasi yang ada dalam internet.
Pencarian di perlukan
untuk mencari informasi khusus dari tabel pada saat lokasi yang pasti dari
informasi tersebut sebelumnya tidak diketahui. Pencarian selalu dinyatakan
dengan referensi pada adanya sekolompok data yang tersimpan secara
terorganisasi, kelompok data tersebut kita sebut tabel.
B.
Rumusan Masalah
Dalam penulisan makalah ini, penulis merumuskan
beberapa masalah diantaranya sebagai berikut:
1. Apakah Pengertian Searching?
2. Apa Saja Metode Metode Searching?
C. Tujuan Penulisan
Adapun kami menulis makalah ini dengan
tujuan :
1.
Untuk
Memahami Sarching
2.
Untuk Mengetahui Metode
Metode Searching
BAB II
PEMBAHASAN
A.
Pengertian Searching
Pencarian / search merupakan suatu proses dimana
mencari data pada suatu deretan obyek.
Seperti halnya pengurutan / sorting,
algoritma pencarian juga macam – macam, beberapa di antaranya adalah :
Ø Squential
search
Ø Binary
search
B. Metode – Metode Searching
1.
Squential Search
Salah satu metode pencarian yang sering di gunakan dan merupakan metode
paling mudah adalah sequential search, yaitu membandingkan satupersatu antara
data yang di cari dengan data yang ada pada array dari awal sampai akhir atau
data yang di cari ditemukan.
Algoritma :
·
Masukkan
array
·
Ketahui
jumlah emelen(n), mulai dari data pertama, i=1;
·
bandingkan
array ke-I dengan data yang dicari. Jika tidak sama, maka lanjutkan dengan
menambahkan i=i+1
·
jika
i>jumlah elemen array(n), maka pencarian dihentikan dan dianggap tidak
ketemu dan selesai. Jika i<=jumlah elemen array, maka ulangi dari langkah 3
contoh :
#include <iostream>
#include <conio.h>
using namespace std;
int main(){
int
a[10]={1,2,3,4,5,6,7,8,9,0};
int
cari,n,t;
cout<<"0,1,2,3,4,5,6,7,8,9"<<endl;
cout<<"Pilihlah
bilangan bulat di atas : ";
cin>>cari;
for(n=0;
n<10; n++){
if(a[n]==cari){
t=1;
break;
}
}
if(t==1){
cout<<"Data
yg anda cari berada pada data ke : "<<n;
}
else{
cout<<"data
yg anda cari tidak ada";
}
2.
Binary Search
Secara umum untuk
mencari suatu nilai di array yang tidak urut, diperlukan pencarian dengan cara
membandingkan satu persatu. Sampai nilai yang dicari ketemu. Apabila nilai yang
di cari tidak di temukan di dalam array, maka secara otomatis semua elemen
array sudah dibandingkan satu persatu.
Algoritma:
·
Masukkan
array
·
Urutkan
array
·
Ketahui
jumlah elemen array(n), batas bawah(bb), batas atas(ba), dan titik tengah (tt),
yang dihitung dengan cara bb=1, ba=jumlah elemen array, tt=int((ba+bb)/2)
·
Cari
elemen tengah tengah(tt)
·
Jika
nilai element t sama dengan yang dicari, maka algoritma dihentikan dan
dinyatakan pencarian ketemu dan selesai
·
jika
tidak sama, ada 2 kemungkinan :
o jika nilai yang di cari <
nilai elemen tengah, ini menunjukkan bahwa nilai yang dicari jika ada pasti
berada di bawah elemen tengah, sehingga pencarian dipersempit. Ba=tt-1
o jika nilai yang dicari > nilai
elemen tengah, ini menunjukkan bahwa nilai yang dicari jika ada pasti berada di
setelah elemen tengah, sehingga pencarian dipersempit. Bb=tt+1
·
ada
3 kriteria :
o jika bb>ba, maka pencarian
dihentikan dan dinyatakan tidak ketemu dan selesai
o jika bb<=ba, ulangi dari
langkah 3.
Contoh
program :
#include
<iostream>
#include
<conio.h>
#include
<vector>
using
namespace std;
class
ArrayTerurut{
private:
vector<double>v;
int jumElemen;
public:
ArrayTerurut(int
max){
v.resize(max);
jumElemen=0;
}
int
bacaUkuran()//Menghasilkan jumlah elemen
{return jumElemen;}
int cari(double
kunciPencarian){
return
cariRekursif(kunciPencarian,0,jumElemen-1);
}
int cariRekursif(double
kunciPencarian, int batasBawah, int batasAtas)
{
int posSkrg;
posSkrg=(batasBawah+batasAtas)/2;
if(v[posSkrg]==kunciPencarian){
return
posSkrg;
}
else
if(batasBawah>batasAtas){
return
jumElemen;
}
else{
if(v[posSkrg]<kunciPencarian)//ada
di potongan atas
{
return
cariRekursif(kunciPencarian,posSkrg+1,batasAtas);
}
else{
return
cariRekursif(kunciPencarian,batasBawah,posSkrg-1);
}
}
}
void sisip(double
nilai)//meningkatkan elemen ke dalam array
{
int j;
for(j=0;
j<jumElemen; j++){
if(v[j]>nilai)//pencarian
linier
{
break;
}
for(int
k=jumElemen; k>j; k--){
v[k]=v[k-1];
}
v[j]=nilai;
}
jumElemen++;
}
void tampil(){
for(int j=0;
j<jumElemen; j++){
cout<<v[j]<<"
";
}
cout<<endl;
}
};
int
main(){
int ukuranMaks=100;//ukuran array
ArrayTerurut arr(ukuranMaks);//array
terurut
arr.sisip(72);//menyisipkan item -
item
arr.sisip(90);
arr.sisip(45);
arr.sisip(126);
arr.sisip(54);
arr.sisip(99);
arr.sisip(144);
arr.sisip(27);
arr.sisip(135);
arr.sisip(81);
arr.sisip(18);
arr.sisip(108);
arr.sisip(9);
arr.sisip(117);
arr.sisip(63);
arr.sisip(36);
arr.tampil();//menampilkan
array
int
kunciPencarian=117;//mencari item dengan nilai 117
if(arr.cari(kunciPencarian)==arr.bacaUkuran()){
cout<<"Menemukan"<<kunciPencarian<<endl;
}
else{
cout<<"Tidak
ditemukan"<<kunciPencarian<<endl;
}
getch();
return 0;
BAB III
PENUTUP
A.
KESIMPULAN
Searching atau pengurutan merupakan metode pencarian data dalam
suatu array, baik yang sudah terurut maupun yang belum terurut.
·
Pencarian Sekuensial :
a. Kelebihannya :
- Relatif lebih cepat dan efisien untuk data yang terbatas
- Algoritma sederhana
b. Kekuranganya :
- Kurang cepat untuk data dalam jumlah besar
- Beban komputasi cenderung lebih besar
· Pencarian Biner :
a. Kelebihannya :
- Untuk data dalam jumlah besar, waktu searching lebih cepat
- Beban komputasi lebih kecil
b. Kekuranganya :
- Data
harus sudah di-sorting lebih dulu ( dalam keadaan terurut )
DAFTAR
PUSTAKA
1. Edyshared.2013.
metode searching sequential search : http://edyshared.blogspot.com/2013/05/metode-searching-sequential-search.html
2. Abdim.2016.
sorting dan searching data dalam c++ : https://abdim.blogspot.com/2016/04/sorting-dan-searching-data-dalam-c.html