Senin, 21 November 2016

Java Programming : Binary Search (Rekursi)

Assalamu'alaikum.
Postingan kali ini akan membahas salah satu problem yang dapat menggunakan konsep rekursi, yaitu Binary Search.

Binary Search sendiri adalah konsep mencari data dalam suatu tatanan array yang sudah diurutkan, entah itu ascending atau descending.
Konsep pencarian data yang digunakan dalam Binary Search sendiri adalah sebagai berikut.

Misalkan data-datanya adalah : 2 3 5 8 11 12 13 20 24 25
Data yang ingin dicari adalah 8
Jumlah datanya adalah : 10

Proses :
-> Data sekarang adalah posisi ke-1 sampai posisi ke-10
Data dibagi menjadi dua, sehingga didapat 5 data awal dan 5 data akhir.
Diambil titik tengahnya, dalam hal ini: (posisi awal + posisi akhir) / 2
Posisi tengah = (1 + 10) / 2 = 11 / 2 = 5
Nilai data ke-5 adalah 11
8 < 11
Karena data yang dicari bernilai lebih kecil dari data pada posisi tengah, maka posisi akhir diganti menjadi titik tengah - 1 (posisi ke-4)
-> Data sekarang adalah posisi ke-1 sampai posisi ke-4
Data dibagi menjadi dua, sehingga didapat 2 data awal dan 2 data akhir.
Diambil titik tengahnya, dalam hal ini: (1 + 4) / 2 = 5 / 2 = 2
Nilai data ke-2 adalah 3
8 > 3
Karena data yang dicari bernilai lebih besar dari data pada posisi tengah, maka posisi awal diganti menjadi titik tengah + 1 (posisi ke-3)
-> Data sekarang adalah posisi ke-3 sampai posisi ke-4
Data dibagi menjadi dua, sehingga didapat 1 data awal dan 1 data akhir.
Diambil titik tengahnya, dalam hal ini: (3 + 4) / 2 = 7 / 2 = 3
Nilai data ke-3 adalah 5
8 > 5
Karena data yang dicari bernilai lebih besar dari data pada posisi tengah, maka posisi awal diganti menjadi titik tengah + 1 (posisi ke-4)
-> Data sekarang adalah posisi ke-4 sampai posisi ke-4
Data dibagi menjadi dua, sehingga didapat 1 data awal dan 0 data akhir.
Diambil titik tengahnya, dalam hal ini: (4 + 4) / 2 = 8 / 2 = 4
Nilai data ke-4 adalah 8
8 == 8
Karena data sudah ditemukan, maka tampilkan posisi datanya.

Untuk source codenya bisa dilihat di bawah.


Contoh eksekusi programnya adalah pada gambar berikut.


Sekian penjelasan singkat Binary Search dengan Rekursi.
Jika ada pertanyaan atau saran, silahkan tulis di komentar.
Terima kasih.
Wassalamu'alaikum.

Tidak ada komentar:

Posting Komentar