Algoritma Pencarian Biner (Binary Search) di Java

Algoritma Pencarian Biner adalah metode Java pemrograman yang efisien, digunakan untuk menemukan nilai tertentu dalam array yang diurutkan. Pendekatan ini secara terus menerus membagi array menjadi dua bagian dan membandingkan nilai pencarian dengan elemen tengah.

Cara Kerja Algoritma Pencarian Biner

Algoritma Pencarian Biner dimulai dengan membandingkan nilai pencarian dengan elemen tengah array. Jika nilai pencarian sama dengan elemen tengah, algoritma mengembalikan posisi elemen tersebut. Jika nilai pencarian lebih kecil dari elemen tengah, algoritma melanjutkan pencarian di bagian kiri array. Jika nilai pencarian lebih besar, algoritma melanjutkan pencarian di bagian kanan array. Proses ini berulang hingga nilai pencarian ditemukan atau tidak ada lagi elemen untuk dicari.

Kelebihan dan Kekurangan Algoritma Pencarian Biner

Keuntungan:

  • Efisiensi Tinggi: Algoritme ini menghilangkan setengah elemen di setiap langkah, mengoptimalkan pencarian array besar.
  • Kompleksitas Waktu Rendah: Kompleksitas waktu algoritma ini adalah O(log n), sehingga efektif untuk kumpulan data besar.

Kekurangan:

  • Persyaratan Array yang Diurutkan: Algoritme hanya berfungsi dengan array yang diurutkan.

Contoh dan Penjelasan

Perhatikan contoh penggunaan Algoritma Pencarian Biner untuk menemukan bilangan bulat tertentu dalam larik bilangan bulat yang diurutkan dalam Java.

public class BinarySearchExample {  
    public static int binarySearch(int[] array, int target) {  
        int left = 0;  
        int right = array.length- 1;  
  
        while(left <= right) {  
            int mid = left +(right- left) / 2;  
  
            if(array[mid] == target) {  
                return mid; // Return position if found  
            } else if(array[mid] < target) {  
                left = mid + 1;  
            } else {  
                right = mid- 1;  
            }  
        }  
        return -1; // Return -1 if not found  
    }  
  
    public static void main(String[] args) {  
        int[] numbers = { 1, 3, 5, 7, 9, 11, 13, 15 };  
        int target = 9;  
  
        int position = binarySearch(numbers, target);  
  
        if(position != -1) {  
            System.out.println("Element " + target + " found at position " + position);  
        } else {  
            System.out.println("Element " + target + " not found in the array");  
        }  
    }  
}  

Dalam contoh ini, kita menggunakan Algoritma Pencarian Biner untuk menemukan angka 9 dalam array bilangan bulat yang diurutkan. Algoritme melakukan iterasi melalui array dan membandingkan nilai pencarian dengan nilai tengah. Dalam hal ini, angka 9 ditemukan pada posisi 4(indeks berbasis 0) dalam array.

Meskipun contoh ini menunjukkan bagaimana Algoritma Pencarian Biner dapat menemukan elemen dalam array bilangan bulat yang diurutkan, contoh ini juga dapat diterapkan pada skenario pencarian lain dalam Java pemrograman.