·
Algoritma Pencarian
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 prose penambahan (insert) data baru.
·
Spesifikasi masalah
10
|
31
|
47
|
89
|
1
|
51
|
87
|
90
|
12
|
0
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
·
Metode Algoritma Pencarian;
1.
Algoritma Pencarian Beruntun (sequential
search)
· Algoritma pencarian yang paling sederhana.
· Nama lainnya 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;
12
|
33
|
45
|
80
|
1
|
55
|
77
|
90
|
8
|
0
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
Misalkan Elemen yang akan dicari adalah : 45
Contoh Programnya;
#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=40;
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;
}
|
Berikut
adalah contoh dari program di atas;
1.
Algoritma Pencarian Bagi Dua (Binary
Search)
Algoritma
Pencarian Bagi dua dilakukan dengan cara membagi array menjadi 2, lalu proses
pencarian dimulai, baik dari sisi sebelah kiri atau sebelah kanan.
Berikut adalah gambar dari ilustrasi pencarian bagi dua;
Misalkan
yang dicari adalah 31
i+j/2 =1 +
7/2 = 4
Apakah index yang ketujuh adalah 31 (!=)
13
|
21
|
45
|
80
|
2
|
31
|
41
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
Putuskan apakah mencari dari kiri atau kanan?
Misal dari kanan.
Contoh;
i=1;
J=4;
i+j/2;
(1+4)/2=2;
80
|
2
|
31
|
41
|
1
|
2
|
3
|
4
|
·
Sequential dan Binary
Algoritma
Beruntun dapat digunakan baik untuk data yang belum teruru maupun untuk data
yang sudah terurut.
Sedangkan algoritma bagi dua hanya cocok
digunakan untuk mencari data yang sudah terurut saja.
Tidak ada komentar:
Posting Komentar