Searching terbagi dalam beberapa macam yaitu:
a.
Sequential search
Disebut juga sebagai
metode pencarian urut adalah metode pencarian yang paling mudah. Adalah suatu
teknik pencarian data dalam array ( 1 dimensi ) yang akan menelusuri semua
elemen-elemen array dari awal sampai akhir, dimana data-data tidak perlu
diurutkan terlebih dahulu. Kemungkinan terbaik (best case) adalah jika data yang
dicari terletak di indeks array terdepan (elemen array pertama) sehingga waktu
yang dibutuhkan untuk pencarian data sangat sebentar (minimal). Sedangkan
kemungkinan terburuk (worst case) adalah jika data yang dicari terletak di
indeks array terakhir (elemen array terakhir) sehingga waktu yang dibutuhkan
untuk pencarian data sangat lama (maksimal). Sequential search memiliki proses
sebagai berikut:
1.
Tentukan banyaknya data yang akan di
olah, misal banyak data adalah N.
2.
Tentukan data apa yang akan dicari, misal
data yang akan dicari adalah C.
3.
Deklarasikan sebuah counter untuk
menghitung banyak data yang ditemukan, missal counternya adalah K.
4.
Inisialisasikan K =0
5.
Lakukanlah perulangan sebanyak N kali
6.
Dalam tiap proses perulangan tersebut
periksalah apakah data yang sedang diolah sama dengan data yang dicari
7.
Jika ternyata sama K=K+1
8.
Jika tidak, lanjutkan proses perulangan
9.
Setelah proses perulangan berhenti,
periksalah nilai K
10.
Jika nilai K lebih dari 0, artinya data
yang dicari ada dalam data /array dan tampilkan nilai K ke layer sebagai jumlah data yang
ditemukan.
11.
Jika nilai K=0, artinya data yang dicari
tidak ditemukan dalam data / array dan tampilkan ke layar bahwa data tidak
ditemukan
12.
Proses selesai
Dapat
disimpulkan bahwa sequential search, akan mencari data dengan cara
membandingkannya satu-persatu dengan data yang ada. Prosesnya tentu saja akan
singkat jika data yang diolah sedikit, dan akan lama jika data yang diolah
banyak. Disarankan proses ini digunakan pada jumlah data yang sedikit saja.
b.
Binary Search.
Proses
pencarian binary search hanya dapat dilakukan pada kumpulan data yang sudah
diurutkan terlebih dahulu. Jika terdapat N buah data yang akan diolah, data
yang dicari akan dibandingkan dengan data ke-N jika data ke-N lebih besar dari
data yang dicari maka akan dilakukan pembagian data menjadi dua bagian.
Kemudian ujung data pada setiap bagian dibandingkan lagi dengan nilai yang akan
dicari.
c.
Interpolation Search
Proses
pencarian data ini hampir sama dengan proses pencarian binary search, pencarian
ini juga dilakukan pada kumpulan data yang sudah urut. Akan tetapi jika pada
binary search kita membagi data menjadi 2 bagian tiap prosesnya, pada
interpolation search kita akan membagi data menurut rumus sebagai berikut:
Posisi = ( kunci – data[low] / data[high] – data[low] ) * ( high – low ) + low.
Singkatnya proses pencarian interpolation search hampir mirip dengan proses
pencarian kata dikamus, yaitu kita mencari data yang dimaksud dengan cara
memperkirakan letak data.
d.
Sentinel Searching
Jika
pencarian bertujuan untuk menambahkan elemen baru setelah elemen terakhir
larik, maka terdapat sebuah varian dari metode pencarian beruntun yang mangkus,
Nilai x yang akan dicari sengaja ditambahkan terlebih dahulu. Data yang
ditambahkan setelah elemen terakhir larik ini disebut sentinel.
Tidak ada komentar:
Posting Komentar