Page 235 - MODUL ALGORTIMA DAN PEMROGRAMAN
P. 235

•  Jika nilai cari ditemukan, program akan mencetak pesan bahwa data ditemukan pada
                         indeks tertentu.
                      •  Jika tidak ditemukan, program akan mencetak pesan bahwa data tidak ditemukan dalam
                         array.
                  3.  Program

                  #include <iostream>
                  #include <algorithm> // Untuk fungsi sort()

                  using namespace std;

                  int main() {
                    // Deklarasi variabel
                    int n; // Jumlah elemen array
                    int data[100]; // Array untuk menyimpan data
                    int cari; // Nilai yang ingin dicari

                    // Meminta input jumlah elemen array
                    cout << "Masukkan jumlah elemen array: ";
                    cin >> n;

                    // Meminta input nilai-nilai dalam array
                    for (int i = 0; i < n; i++) {
                      cout << "Masukkan nilai elemen ke-" << i + 1 << ": ";
                      cin >> data[i];
                    }

                    // Meminta input nilai yang ingin dicari
                    cout << "Masukkan nilai yang ingin dicari: ";
                    cin >> cari;

                    // Mengurutkan array (penting untuk binary search)
                    sort(data, data + n);

                    // Melakukan pencarian binary search
                    int low = 0;
                    int high = n - 1;
                    int mid;
                    bool ditemukan = false;

                    while (low <= high && !ditemukan) {
                      mid = (low + high) / 2;
                      if (data[mid] == cari) {
                        ditemukan = true;
                      } else if (data[mid] < cari) {
                        low = mid + 1;
                      } else {
                        high = mid - 1;
                      }
                    }

                    // Menampilkan hasil pencarian
                    if (ditemukan) {
                      cout << "Data " << cari << " ditemukan pada indeks ke-" << mid <<
                  endl;
                    } else {
                      cout << "Data " << cari << " tidak ditemukan dalam array" << endl;
                    }

                    return 0;
                  }                                                                                      226
   230   231   232   233   234   235   236   237   238   239   240