Searching adalah mencari data yang dibutuhkan. Searching dalam
pemrograman bisa dilakukan untuk mencari data yang ada di dalam memory
komputer. Proses pencarian dilakukan untuk mengetahui apakah data yang dicari
terdapat pada sekumpulan data yang ada. Selain untuk mengetahui
keberadaan data, informasi yang lain yang bisa didapat adalah letak dari
data tersebut. Dalam kehidupan sehari-hari kita juga sering melakukan kegiatan
searching seperti mencari data/informasi yang ada dalam internet. Ada
beberapa metode yang dapat digunakan untuk searching, yaitu:
- Sequential Search
- Binary Search
Sequential Search
Sequential Search merupakan metode pencarian data dalam array dengan
cara membandingkan data yang dicari dengan data yang ada di dalam array
secara berurutan. Pencarian data dengan Metode Sequential Search efektif
untuk mencari data yang dalam posisi yang tidak terurut atau acak.
Prosesnya bisa dijelaskan seperti berikut:
- Menentukan data yang dicari
- Membaca data array satu per satu secara sekuensial
- Mulai
dari data pertama sampai dengan data terakhir, kemudian data yang
dicari tadi dibandingkan dengan masing-masing data yang ada di dalam
array.
a. Jika data yang dicari ditemukan maka kita dapat membuat statement bahwa data telah temukan.
b. Jika data yang dicari tidak ditemukan maka kita dapat membuat statement bahwa data telah temukan.
Sequential Searching memiliki Kelebihan dan Kekurangan yaitu:
- Kelebihan Sequential Searching bisa dikatakan lebih mudah dalam implementasinya dalam pemrograman.
- Kekurangannya jika data yang terdapat dalam suatu array itu sangat banyak, maka akan diperlukan waktu yang lebih lama untuk membandingkan data yang dicari dengan jumlah data yang sangat banyak dalam suatu array.
Dan dibawah ini adalah Output Programnya :
Binary Search
Metode pencarian Binary yaitu mencari data dengan melakukan
mengelompokkan array menjadi bagian-bagian. Binary Search ini hanya
dapat diimplementasikan pada data yang telah terurut baik ascending
maupun descending dalam suatu array. Bila data belum terurut dan akan dilakukan
pencarian menggunakan metode ini maka terlebih dahulu harus diurutkan.
Untuk data yang besar metode ini lebih efektif dibandingkan dengan
metode sequential search.
Proses Binary Search yang urutan datanya ascending:
- Pertama buat perulangan lalu menentukan posisi low yaitu posisi yang menandakan index paling rendah kemudian menentukan posisi high. Kemudian mencari posisi mid = (high + low)/2
- Lalu membandingkan data yang dicari dengan nilai yang ada di posisi mid.
- Jika data yang dicari sama dengan nilai yang ada di posisi mid berarti data ditemukan.
- Jika data yang dicari lebih kecil dari nilai yang ada di posisi mid maka pencarian data akan dilakukan dibagian kiri mid dengan melakukan pembandingan. dengan kondisi posisi high berubah yaitu (mid - 1) dan posisi low tetap.
- Jika data yang dicari lebih besar dari nilai yang ada mid maka pencarian data akan dilakukan di bagian kanan dari mid dengan posisi low yang berubah yaitu (mid + 1) dan posisi high tetap.
Kelebihan dan Kekurangan Binary Search:
- Kelebihannya yaitu tidak perlu membandingkan data yang dicari dengan seluruh data array yang ada, cukup melalui titik tengah kemudian kita bisa menentukan ke mana selanjutnya mencari data yang ingin dicari.
- Kekurangan implementasi agak sedikit lebih rumit karena tidak bisa digunakan pada data array yang masih acak. Jadi harus melakukan sorting terlebih dahulu dalam implementasinya.
Contoh Program Binary Search:
Dan dibawah ini adalah Output Programnya :