Kemarin kita sudah belajar Algoritma Sequential Search nahh sekarang kita lanjut belajar Algoritma Binary Search, ada yang tau itu apa??..
Algoritma Binary Search adalah salah satu algoritma pencarian data yang biasa digunakan untuk array yang berpola terurut. Teknik pencarian yang digunakan pada algoritma ini adalah dengan cara berulang kali membagi jumlah data menjadi dua bagian sehingga memperkecil lokasi pencarian suatu data hingga pada akhirnya dapat ditemukan. Dalam penerapannya algoritma ini sering digabungkan dengan Algoritma Sorting karena data yang akan digunakan harus sudah terurut terlebih dahulu.
Langsung aja yuk aku jelasin cara konsep kerjanya. Disini aku buat contoh penerapannya menggunakan Java Script yaa..
Misal kita punya data seperti (a1, a2, a3, a4, a5) > kita tentukan sendiri misalnya menjadi (30, 31, 32, 33, 34) yang akan kita buat menjadi program pencarian (Algoritma Binary Search) seperti dibawah ini:
Disclaimer: Tetap harus teliti ya dengan codenya!
Code program:
import java.util.Arrays;
import java.util.Scanner;
public class Binary_search2 {
public static void main (String[] args){
//Inialisasi data diurutkan menggunakan binary search
int[] data = {30, 31, 32, 33, 34};
//Input angka yang akan dicari
Scanner scanner= new Scanner(System.in);
System.out.print("Masukkan angka yang akan dicari:");
int target = scanner.nextInt();
//Panggil metode binary search
int index = binarySearch(data, target);
//Output hasil pencaharian
if (index != -1){
System.out.println("Angka" + target +"ditemukan di indeks" + index);
} else {
System.out.println("Angka" + target +"tidak ditemukan dalam data");
}
}
//Metode binary search
private static int binarySearch(int[] data, int target){
int low = 0;
int high = data.length - 1;
while (low <= high){
int mid = (low + high) / 2;
if (data[mid] == target){
return mid; //Mengembalikan indeks data ditemukan
} else if (data[mid]< target){
low = mid + 1;
} else {
high = mid - 1;
}
}
return -1; // mengembalikan -1 jika data tidak ditemukan
}
}
- Inialisasi data yaitu data yang akan dicari dan disimpan dalam array data. Data harus diurutkan terlebih dahulu untuk menggunakan binary search.
- Menerima input angka yang dicari (n) yaitu menggunakan scanner untuk meminta pengguna memasukkan angka yang ingin dicari.
- Melakukan binary search mencari angka target lebih efisien dibandingkan dengan sequential search.
- Metode binary search yaitu menggunakan dua pointer, low dan high untuk menunjukkan rentang pencarian yang dilakukan.
- Menampilkan hasil pencarian yaitu jika indeks bukan -1, maka angka tersebut ditemukan dan indeksnya ditampilkan. Jika -1, berarti angka tidak ditemukan.
run:
Masukkan angka yang akan dicari:33
Angka33ditemukan di indeks3
BUILD SUCCESSFUL (total time: 6 seconds)
- Hasil data yang dapat ditampilkan ketika di search.
run:
Masukkan angka yang akan dicari:35
Angka35tidak ditemukan dalam data
BUILD SUCCESSFUL (total time: 3 seconds)
- Hasil data yang tidak dapat ditampilkan ketika di search.
Program ini juga dapat dijalankan berulang kali untuk mencari angka yang berbeda dalam data yang sama, semangat..