A. DEFINISI
Pencarian merupakan proses
yang fundamental dalam pengolahan data. Proses pencarian adalah menemukan nilai
(Data) tertentu di dalam sekumpulan data yang bertipe sama (baik bertipe dasar
atau bertipe bentukan).
Sebagai contoh untuk mengubah
(update) data tertentu, langkah pertam ayang harus dilakukan adalah mencari
keberadaan data tersebut di dalam kumpulannya. Jika data yang dicari ditemukan,
maka data tersebut dapat diubah dinilainya dengan data yang baru.. Aktivitas
awal yang sama juga dilakukan pada proses penambahan (insert) data
baru.
B.
SPESIFIKASI MASALAH
C.
METODE
PENCARIAN
1.
Algoritma Pencarian Beruntun
Algoritma pencarian Beruntun
adalah metode algoritma pencarian yang paling sederhana. Nama
lain metode ini adalah linear search.
Algoritma pencarian beruntun adalah proses membandingkan setiap elemen larik satu per satu secara beruntun,
mulai dari elemen pertama, sampai elemen yang dicari ditemukan, atau seluruh
elemen sudah diperiksa.
Contoh :
·
Misalkan Elemen yang akan dicari adalah : 51
§ Contoh coding program misalkan elemen yang di cari
adalah 51
#include<stdio.h>
int main ()
{
int
i;
int
nilai[9];
nilai[0]=10;
nilai[1]=31;
nilai[2]=47;
nilai[3]=89;
nilai[4]=1;
nilai[5]=51;
nilai[6]=87;
nilai[7]=90;
nilai[8]=12;
for(i=0;i<=8;i++)
{
if(nilai[i]==51)
{
printf("nilai
51 ditemukan");
}else
{
printf("nilai
tidak ditemukan");
}
printf("\n");
}
return 0;
}
§ Contoh program lain
#include<stdio.h>
int main ()
{
int nilai[5];nilai[0]=12;nilai[1]=51;nilai[2]=2;nilai[3]=34;nilai[4]=90;
int nilai_yang_dicari=45;
int i;
int hasil=0;
for (int i=0;i<=4;i++)
{
if
(nilai[i]==nilai_yang_dicari)
{
hasil=i;
}
}
printf("Nilai
%d ditemukan di index ke %d",nilai_yang_dicari,hasil);
return 0;
}
2.
Algoritma
pencarian bagi dua
Terdapat metode pencarian pada data
terurut yang paling efficient, yaitu metode pencarian bagidua atau pencarian
biner (binary search). Metode ini digunakan untuk kebutuhan pencarian
dengan waktu yang cepat. Prinsip pencarian dengan membagi data atas dua bagian
mengilhami metode ini. Data yang disimpan di dalam larik harus sudah terurut.
Prinsip dari
pencarian biner dapat dijelaskan sebagai berikut :
1.
Mula-mula
diambil posisi awal 0 dan posisi akhir = N - 1, kemudian dicari posisi data
tengah dengan rumus (posisi awal + posisi akhir) / 2.
2.
Kemudian
data yang dicari dibandingkan dengan data tengah.
3.
Jika lebih
kecil, proses dilakukan kembali tetapi posisi akhir dianggap sama dengan posisi
tengah –1.
4.
Jika lebih
besar, porses dilakukan kembali tetapi posisi awal dianggap sama dengan posisi
tengah + 1.
5.
Demikian
seterusnya sampai data tengah sama dengan yang dicari.
Misalkan yang dicari adalah 31
i+j/2 =1 + 7/2 = 4
Apakah index yang ketujuh adalah 31 (!=)
Putuskan apakah mencari dari
kiri atau kanan
Misal dari kanan
§ Contoh :
i=1;
J=4;
i+j/2
(1+4)/2=2
Putuskan Mencari dari kiri atau kanan
i=1;
J=2
1+2/2=1
SEQUENTIAL VS BINARY
|
SEQUENTIAL
|
BINARY
|
|
Algoritma Beruntun dapat
digunakan baik untuk data yang belum teruru maupun untuk data yang sudah
terurut.
|
Algoritma bagi dua hanya
cocok digunakan untuk mencari data yang sudah terurut saja.
|