Metode Binary
Search (Pencarian Biner) hanya bisa diterapkan jika data array sudah terurut. Pengurutan
Array bisa menggunakan jenis sorting descending (menurun) atau (menaik) asscending.
Kelebihan dari searching dengan Metode Binary Sort adalah untuk pencarian data yang jumlahnya banyak, waktu pencarian relatif cepat. Selain itu beban komputasi juga lebih kecil karena pencarian dilakukan
dari depan, belakang, dan tengah. Namun ada pula kekurangannya, yaitu
data harus disorting dahulu dan Algoritma lebih rumit, tidak baik untuk
data berangkai.
Algoritma dari Binary Sort
Proses yang terjadi pada pencarian dengan metode ini adalah sebagai berikut :
1. Membaca Array data
2. Apabila Array belum terurut maka array diurutkan terlebih dahulu.
3. Menentukan data yang akan dicari
4. Menentukan elemen tengah dari array
5. Jika nilai elemen tengah sama dengan data yang dicari, maka pencarian berhenti.
6. Jika elemen tengah tidak sama dengan data yang dicari maka :
- Jika nilai elemen tengah > data yang dicari maka pencarian dilakukan pada setengah array pertama.
- Jika nilai elemen tengah lebih kecil dari pada data yang dicari maka pencarian dilakukan pada setengah array berikutnya.
Ilustrasi Binary Search
Misalkan saya mempunyai data sebagai berikut :
3,1,4,7,25,12,40,78,90,65. Maka data tersebut akan dicek, ternyata
setelah dicek datanya belum terurut, maka dengan menggunakan metode
sorting yang sudah ada, maka kita bisa mengurutkan data tersebut, menjadi :
1,3,4,7,12,25,40,65,78,90. Setelah data tersebut diurutkan maka fungsi Binary Sort baru, mulai
bekerja mencari data. Berikut cara dari Binary sort mencari data
tersebut. Misalnya data yang dicari adalah 65, maka pencariannya
dijelaskan pada tabel berikut ini :
Pada data range diberi warna hijau. Pencarian dimulai dari tengah, kiri dan kanan. Rumus untuk posisi tengahnya adalah (Posisi Akhir + Posisi Awal)/2. Jadi nilai tengah pada langkah pertama adalah 12 (berwarna merah) dan nilai targetnya adalah 65 (kuning). Karena nilai data yang dicari > dari data yang ditengah, maka pencarian menjadi dikanan dari nilai tengah. Setelah itu, Maka nilai 12 menjadi awal pencarian, selanjutnya dicari kembali nilai tengah pada range nilai 12 ke kanan sampai pada array dengan nilai 90.
Pada data range diberi warna hijau. Pencarian dimulai dari tengah, kiri dan kanan. Rumus untuk posisi tengahnya adalah (Posisi Akhir + Posisi Awal)/2. Jadi nilai tengah pada langkah pertama adalah 12 (berwarna merah) dan nilai targetnya adalah 65 (kuning). Karena nilai data yang dicari > dari data yang ditengah, maka pencarian menjadi dikanan dari nilai tengah. Setelah itu, Maka nilai 12 menjadi awal pencarian, selanjutnya dicari kembali nilai tengah pada range nilai 12 ke kanan sampai pada array dengan nilai 90.
Ternyata
nilai tengahnya adalah 40. Kemudian array dari nilai 40 dibandingkan
dengan target, ternyata lebih besar, maka pencarian kembali mengarah ke
kanan nilai tengah. Array dengan nilai 40 menjadi titik awal pencarian sekarang. Dan kemudian nilai tengah nya adalah 65. Maka dibandingkan
dengan target ternyata sama, maka data sudah Ditemukan.
Tidak ada komentar:
Posting Komentar