ALGORITMA
PENCARIAN
Pengertian 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 proses penambahan (insert) data baru.
Spesifikasi Masalah
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;
}
Output
:
§ 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;
}
Output
:
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
Perbedaan Mendasar
dari Sequential dan Binery :
Sequential
: Algoritma Beruntun dapat digunakan baik untuk data
yang belum teruru maupun untuk data yang sudah terurut.
Binery
: Algoritma bagi dua hanya cocok digunakan untuk mencari data yang sudah
terurut saja.
Tidak ada komentar:
Posting Komentar