SEARCHING
Searching adalah pencarian data dengan cara menelusuri data-data
tersebut. Tempat pencarian data dapat berupa array dalam memori, bisa juga pada
file pada External Storage.
Pada umumnya dikenal dua metode Searching antara lain
1.
Sequensial Search
2.
Binary Search
1.
SEQUENSIAL SEARCH
Disebut juga sebagai metode pencarian
urut adalah metode pencarian yang paling mudah. Suatu teknik pencarian data
dalam arry (1 dimensi) yang akan menelusuri smua elemen-elemen array dari awal
sampai akhir, dimana data-data tidak
perlu diurutkan terlebih dahulu.
Ada 2 Kemungkinan
dalam SEQUENSIAL SEARCH
- Kemungkinan terbaik (Best Case) Adalah jika data yang dicari terletak di indeks array terdepan (elemen array pertama) sehingga waktu yang dibutuhkan untuk pencarian data sangat sebentar (Minimal).
- Kemungkinan terburuk (Worst Case) adalah jika data yang dicari terletak di indeks array terakhir (elemen array terakhir) sehingga waktu yang dibutuhkan untuk pencarian data sangat lama (Maksimal).
2.
BINARY SEARCH
Proses pencarian Binary Search hanya satu dapat dilakukan pada kumpulan data yang
sudah di urutkan terlebih dahulu.
Prinsip
dari BINARY SEARCH
- Mula-mula diambil posisi awal 0 dan posisi akhir = N-1, kemudian dicari posisi data tengah dengan rumus (posisi awal + posisi akhir) / 2. Kemudian data yang dicari dibandingkan dengan data tengah.
- Jika lebih kecil, proses dilakukan kembali tetapi posisi akhir dianggap sama dengan posisi tengah –1.
- Jika lebih besar, proses dilakukan kembali tetapi posisi awal dianggap sama dengan posisi tengah +1.
- Jika data sama, berarti data ditemukan
#include <iostream.h>#include <conio.h>void main(){int i;int cari,ketemu;int A[100];cout<<"PROGRAM SEARCHING\n";cout<<"masukkan 7 buah data : \n\n";for (i=1;i<=7;i++){cout<<"masukkan data ke-"<<i<<endl;cin>>A[i] ;}cout<<endl;cout<<"Input bilangan yang dicari : ";cin>>cari;ketemu=0;for(i=0;i<=7;i++){if (A[i]==cari){ketemu=1;cout<<"Data ditemukan pada indeks ke-"<<i;}}
if
(ketemu==0){
cout<<"Data tidak ditemukan";
}
getch();
}
HASIL
CONTOH PROGRAM BINARY SEARCH
#include
<iostream.h>
#include
<conio.h>
int
binary_search(int array[],int size, int elemen);
void main()
{
const int size = 10;
int array[size]={0,6,9,12,20,23,29,32,47,79};
cout<<"Isi dari array:
"<<endl;
for(int i=0;i<size;i++)
cout<<" "<<array[i];
int elemen;
int tanda;
cout<<"\n\n";
cout<<"Masukkan data yang dicari:
";
cin>>elemen;
cout<<"\n\n";
tanda= binary_search(array,size,elemen);
if (tanda!=-1)
cout<<"Data
"<<elemen<<" ditemukan pada posisi : array["<<
tanda<<"],"<<"
atau deret ke-"<<(tanda+1);
else
cout<<"\n data tersebut tidak
ditemukan ";
getch();
}
int
binary_search(int array[],int size,int elemen)
{
int start=0;
int end=size - 1;
int middle;
int posisi=-1;
middle=(start + end ) / 2;
do
{
if(elemen<array[middle])
end=middle-1;
else if (elemen>array[middle])
start=middle+1;
middle=(start+end)/2;
}
while(start<=end &&
array[middle]!=elemen);
if(array[middle]==elemen)
posisi=middle;
return posisi;
}HASIL
Tidak ada komentar:
Posting Komentar