Binary Search
Click here to load reader
-
Upload
johan-iriawan-akbar -
Category
Documents
-
view
18 -
download
1
description
Transcript of Binary Search
Binary SearchAlgoritma binary search adalah jenis algoritma bertipe devide and conquer yang diciptakan untuk mereduksi jumlah perbandingan secara drastis dengan cara menentukan batas daerah solusi lalu menyelesaikan (solve it) secara berulang (recursive) sampai data ditemukan. Syarat wajib bekerjanya algoritma binary search adalah data harus dalam kondisi berurutan agar proses pencarian bisa dilakukan.
Gambar: Proses pencarian pada Binary search
Algoritma binary search: 1. Tentukan batas daerah solusi awal, batas kiri = 1 dan batas kanan = jumlah data
(contoh 15).2. Tentukan posisi tengah antara batas kiri dan batas kanan.3. Jika data tengah = data dicari, maka cetak "Data ketemu di posisi tengah", dan
pencarian selesai.4. Jika tidak, bandingkan lagi, jika data tengah > data dicari, maka { daerah
solusi menyempit di antara batas kiri dan batas tengah } batas kanan ← tengah, jika tidak maka { daerah solusi menyempit antara batas tengah dan batas kanan } batas kiri ← tengah.
5. Selama batas kiri tidak berdempetan dengan batas kanan, jalankan baris ke 3, jika tidak ,maka cetak "Data tidak ketemu".
6. Selesai.
Gambar: Hasil running binary search
Kronologis pencarian contoh data di atas
1. Dicari kosakata "access" pada 15 data yang berurutan dengan posisi kiri = 1, posisi kanan = 15, sehingga didapat posisi tengah = 7, yaitu "abuse".
2. Karena data tengah ("abuse") < data yg dicari ("access") maka posisi bergeser, posisi kiri = 7, posisi kanan = 15, sehingga didapat posisi tengah = 10, yaitu "accent".
3. Karena data tengah ("accent") < data yg dicari ("access") maka posisi bergeser kembali, posisi kiri = 10, posisi kanan = 15, sehingga didapat posisi tengah = 12, yaitu "access".
4. Karena data tengah ("access") = data yg dicari ("access" maka cetak "data ketemu di posisi tengah" sehingga proses pencarian berhenti.
5. Jika posisi kiri dan posisi kanan berdempetan, maka sudah tidak ada lagi anggota himpunan solusi sehingga dapat disimpulkan bahwa data tidak ketemu.
Kode Program: VB.Net
Algoritma binary search ini sangat mangkus (efisien waktunya) karena kecepatannya meningkat secara eksponensial seiring dengan meningkatnya jumlah data. Jika jumlah data = 15, maka proses perbandingan maksimal = 4x. Jika jumlah data = 4294967296 (4 milyar) maka hanya dibutuhkan perbandingan 32 kali saja.
Berbeda dengan Algoritma Linear search yang membutuhkan siklus perbandingan yang sangat lama Jika jumlah data = 15, maka proses perbandingan rata-rata 7x , namun bila jumlah data = 4294967296 (4 milyar) maka perbandingan rata-rata sebanyak 2 milyar kali. Kompleksitas waktu rata2 algoritma linear search = 1/2 n, sedangkan kompleksitas maksimal algoritma binary search = log2 n, dimana n adalah jumlah data.
Berbeda drastiskan! Algoritma binary search ini biasanya diterapkan pada aplikasi pencarian data seperti softwarekamus yang pernah penulis buat. Penulis juga menjadikan topik searching ini dalam kursus pemrograman yang akan dibuka pada bulan februari 2011.
Gambar: Software kamus di PC
Gambar: Software kamus di handphone
Gambar: Closer word suggestion bila data tidak ketemu
Gambar: Hasil pencarian