A.
Sequential
Search
Sequential Search adalah metode pencarian sebuah data dimana
data dicari dari depan ke belakang atau dari awal sampai akhir tanpa harus
mengurutkan data tersebut. Konsepnya yaitu dengan melakukan perbandingan data
satu persatu secara berurut sampai data tersebut ditemukan atau tidak
ditemukan.
Proses dalam sequential search
Ø
Pertama
data melakukan perbandingan saut persatu secara berurutan dalam kumpulan data
dengan data yang dicari sampai data tersebut ditemukan atau tidak ditemukan
Ø
Pada
dasarnya, pencarian ini hanya melakukan pengulangan data dari satu sampai
dengan jumlah data (n)
Ø
Setiap
penglangan ,dibandingkan data ke –i dengan data yang sedang dicari
Ø
Apabila
data sama dengan data yang dicari ,berarti data telah berhasil ditemukan.
Sebaliknya apabila sampai akhir melakukan pegulangan tidak ada data yang sama
dengan yang dicari, berarti tidak ada yang ditemukan.
Contoh Program
Sequential Search
#include <conio.h>
#include <iostream>
using namespace std ;
main()
{
int X,i,indeks;
int A[100];
cout<<" ***
SEQUENTIAL SEARCH ***"<<endl;
cout<<" ========================="<<endl<<endl;
cout<<"Jumlah Data yang ingin diinputkan :
";
cin>>X;
for(i=0;i<X;i++)
{
cout<<"Input
data ke- "<<i+1<<"=";
cin>>A[i];
}
cout<<"\nData yang ingin dicari : ";
cin>>X;
i=0;
indeks=0;
while(i<100 && A[i]!=X)
{
i++;
}
if
(A[i]!=X)
{
cout<<"\nMaaf data yang anda masukan tidak ditemukan
!!!";
}
else
if(indeks=i)
cout<<"Data
terletak pada indeks ke : "<<indeks;
getch();
}
|
Kelebihan Program Sequential Search
Ø Relatif
lebih cepat dan efesien untuk data yang memiliki jumlah terbatas
Ø Algoritma
pemrogramanya lebih sederhana
Kekurangan Program Sequential Search
Ø Kurang
cepat untuk melakukan pencarian datadalam jumlah yang besar
B.
Binary Search
Binary
Search adalah metode pencarian seluruh data dari suatu kumpulan data, dimana
kumpulan data tersebut harus berurutan dengan benar agar proses pencarian data
bisa dilakukan. Dalam proses pencarian data pada metode ini data akan dibagi
dua bagian setiap tahap pencarianya.
Proses
dalam Binary search
Ø Pertama pengambilan
data dimulai dari posisi satu sampai dengan posisi akhir
Ø Selanjutnya mencari
posis data yang tengah dengan menggunakan rumus : (posisi awal + posisi akhir
)/2
Ø Setelah itu data yang akan dicari
dibandingakan dengan data yang berada di tengah, apakah data tersebut sama atau
lebih kecil, atau lebih besar ?
Ø Seandainya data
tersebut lebih besar, maka proses pencarian yang dicari dengan posisi awal
adalah posisi tengah +1
Ø Apabila data lebih
kecil, maka proses pencarian yang dicari dengan posisi akhir adalah posisi
tengah -1
Ø Jika data sama
dengan data yang dicari, berarti data tersebut telah ketemu.
Contoh Program Binary Search
#include
<iostream>
#include
<conio.h>
#include
<iomanip>
using namespace
std;
void
selection_sort( int data[])
{
int temp;
for(int i=0;
i<5;i++){
for(int j = i+1; j<5;
j++)
{
if(data[i]>data[j])
{
temp = data[i];
data[i] = data[j];
data[j] = temp;
}
}
}
}
int main()
{
int data[5];
int cari;
cout<<"\t 'BINARY
SEARCH'"<<endl;
cout<<"\t =============="<<endl;
cout<<"\nMasukkan Data : "<<endl;
for(int x = 0; x<5;
x++)
cin>>data[x];
cout<<"\nMasukkan data yang ingin Anda cari : ";
cin>>cari;
cout<<"\nData diurutkan : ";
selection_sort(data);
for(int x = 0; x<5;x++)
cout<<setw(3)<<data[x];
cout<<endl;
int awal, akhir,
tengah, b_flag = 0;
awal
= 0;
akhir
= 5;
while (b_flag == 0
&& awal<=akhir)
{
tengah = (awal + akhir)/2;
if(data[tengah] == cari)
{
b_flag = 1;
break;
}
else if(data[tengah]<cari)
awal = tengah + 1;
else
akhir = tengah -1;
}
if(b_flag == 1)
cout<<"\nData ditemukan pada index ke-"<<tengah<<endl;
else
cout<<"\nData tidak ditemukan\n";
_getche();
return 0;
}
|
Kelebihan Program Binary Search
Ø
Untuk pencarian data dalam jumlah yang besar, waktu
searching / pencarian lebih cepat karena data telah terurut
Kekurangan Program Binary
Search
Ø
Data harus di Sorting terlebih dahulu (dalam keadaan urut
) agar lebi mudah dalam pencarian data yang diinginkan
Ø
Algoritma pemrogramanya lebih rumit dari sequential
search