Page 239 - MODUL ALGORTIMA DAN PEMROGRAMAN
P. 239
int main() {
// Daftar angka yang sudah diurutkan
int arr[] = {2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53,
59, 61, 67, 71, 73, 79, 83, 89, 97};
int n = sizeof(arr) / sizeof(arr[0]); // Hitung jumlah elemen array
// Kasus 1: Cari angka 67
int target = 67;
int indeks = binarySearch(arr, n, target);
if (indeks != -1) {
cout << "Angka " << target << " ditemukan pada indeks ke-" << indeks
<< endl;
} else {
cout << "Angka " << target << " tidak ditemukan dalam daftar." <<
endl;
}
// Kasus 2: Cari angka 50
target = 50;
indeks = binarySearch(arr, n, target);
if (indeks != -1) {
cout << "Angka " << target << " ditemukan pada indeks ke-" << indeks
<< endl;
} else {
cout << "Angka " << target << " tidak ditemukan dalam daftar." <<
endl;
}
return 0;
}
Output:
Angka 67 ditemukan pada indeks ke-18
Angka 50 tidak ditemukan dalam daftar.
Penjelasan:
1) Fungsi binarySearch:
• Menerima 3 parameter:
o arr: Daftar angka yang diurutkan (array of integers).
o n: Jumlah elemen dalam daftar (integer).
o target: Angka yang ingin dicari (integer).
• Mengembalikan nilai integer:
o Indeks angka yang dicari jika ditemukan.
o Nilai -1 jika angka tidak ditemukan.
• Melakukan pencarian menggunakan loop while dengan kondisi low <= high.
o low dan high mewakili indeks awal dan akhir dari bagian daftar yang sedang dicari.
• Pada setiap iterasi loop:
o Hitung mid sebagai indeks tengah antara low dan high.
o Bandingkan arr[mid] dengan target:
▪ Jika sama, kembalikan mid sebagai indeks yang ditemukan.
▪ Jika arr[mid] < target, perbarui low menjadi mid + 1 untuk mencari di bagian kanan
daftar.
230

