Page 257 - MODUL ALGORTIMA DAN PEMROGRAMAN
P. 257

5.  Program
                  #include <iostream>

                  using namespace std;

                  int binarySearch(int arr[], int n, int target) {
                    int low = 0;
                    int high = n - 1;

                    while (low <= high) {
                      int mid = (low + high) / 2;

                      if (arr[mid] == target) {
                        return mid; // Angka ditemukan, kembalikan indeks
                      } else if (arr[mid] < target) {
                        low = mid + 1; // Perbarui low untuk mencari di bagian kanan
                      } else {
                        high = mid - 1; // Perbarui high untuk mencari di bagian kiri
                      }
                    }

                    return -1; // Angka tidak ditemukan, kembalikan -1
                  }

                  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.


                                                                                                         234
   252   253   254   255   256   257   258   259   260   261   262