Page 253 - MODUL ALGORTIMA DAN PEMROGRAMAN
P. 253
• Kondisi loop:
o data[i] != cari: Berhenti jika nilai yang dicari ditemukan.
o i < n: Berhenti jika seluruh elemen array telah diperiksa (termasuk sentinel).
• Jika nilai cari ditemukan, indeksnya (i - 1) akan dihitung dan disimpan.
5) Menampilkan hasil pencarian:
• 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;
}
}
230
// Menampilkan hasil pencarian
if (ditemukan) {
cout << "Data " << cari << " ditemukan pada indeks ke-" << mid <<
endl;
} else {