Pada kesempatan kali ini
saya akan membahas 2 metode searching yaitu :
- -Sequential Search
- -Binary Search
1.Sequential search (
Pencarian beruntun)
Konsep yang digunakan
oleh sequential search yaitu membandingkan setiap setiap elemen satu per satu
secara urut (beruntun), mulai dari elemen pertama sampai dengan elemen yang
terakhir. Ada 2 macam pencarian beruntun,yaitu pencarian pada array yang sudah
terurut, dan pencarian pada array yang belum terurut.Jika data yang dicari sama
dengan data yang ada pada antrian berarti data telah ditemukan, namun apabila
sampai akhir pengulangan , tidak ada yang sama berarti data tidak ditemukan.
2.Binary Search ( Pencarian
Bagi Dua)
Syarat utama dari
penggunaan Binary Search adalah data telah terurutkan baik secara ascending
maupun descending.Keuntungan data yang telah terurut adalah memudahkan dalam pencarian, yang dalam hal ini adalah
pencarian akan dibagi dua baik ke kiri atau ke kanan. Analogi dalam kehidupan
kita sehari-hari seperti untuk mencari kata tertentu dalam kamus (misalnya
kamus bahasa Inggris), kita tidak membuka kamus tersebut dari halaman awal
sampai halaman akhir satu persatu, namun kita mencarinya dengan cara membelah
atau membagi halaman-halaman buku tersebut. Begitu seterusnya sampai kita
menemukan kata yang dicari.
Prinsip Binary Search:
Kita asumsikan data sudah
terurut,mengurutkan data dapat menggunakan metode selection/insertion agar
lebih mudah, misalkan terurut secara ascending. Kita menyebut indeks terkecil
sebagai indeks ujung paling kiri, dan indeks terbesar sebagai indeks ujung
paling kanan.
Misalkan indeks kiri “lo”
dan indeks kanan adalah “hi”. Pada mulanya lo adalah 0 dan hi adalah n
Langkah 1:
Bagi 2 elemen pada elemen
tengah. Elemen tengah adalah elemen dengan indeks mid=(lo+hi) div 2.
(Elemen tengah, L[mid],
membagi elemen menjadi 2 bagian L[lo…mid-1] dan bagian kanan L[mid+1…hi]).
Langkah 2:
Periksa apakah L[mid]=x.
Jika L[mid]=x, pencarian dihentikan karena x sudah ditemukan, tetapi jika tidak
, harus ditentukan apakah pencarian pada akan dilakukan ke bagian kiri atau ke
bagian kanan. Jika L[mid] < x maka pencarian dilakukan pada bagian kiri.
Sebaliknya jika L[mid] >X maka pencarian dilakukan ke bagian kanan.
Langkah 3:
Ulangi langkah 1 sampai X
atau lo>hi.
Keterangan :
Variabel :
lo : variabel yang
menandakan elemen paling kiri/awal.
hi : variabel untuk
menandakan elemen paling tinggi/akhir.
mid : variabel untuk
elemen tengah antara lo dan hi.
L : variabel untuk
menampung data / array.
x : variabel yang
digunakan untuk menampung nilai dari data yang di cari.
Contoh Studi Kasus :
1.Buatlah sebuah program
dengan nilai {5,1,4,2,90,66,32,101,38} menggunakan Sequential Search.
2.Buatlah sebuah program
dengan nilai {5,3,8,9,7,38}dan lakukan pengurutan sebelum melakukan pencarian
dengan menggunakan selection sort/insertion sort dan metode pencarian yang
digunakan yaitu Binary Search.
Pembahasan :
1.Sequential Search :
2.Binary Search :