Page 236 - MODUL ALGORTIMA DAN PEMROGRAMAN
P. 236
endl;
} else {
cout << "Data " << cari << " tidak ditemukan dalam array" << endl;
}
return 0;
}
Output:
Masukkan jumlah elemen array: 5
Masukkan nilai elemen ke-1: 1
Masukkan nilai elemen ke-2: 2
Masukkan nilai elemen ke-3: 3
Masukkan nilai elemen ke-4: 4
Masukkan nilai elemen ke-5: 5
Masukkan nilai yang ingin dicari: 3
Data 3 ditemukan pada indeks ke-2
Penjelasan:
1) Mengurutkan array:
• Fungsi sort() dari library <algorithm> digunakan untuk mengurutkan array data dalam
urutan menaik.
• Hal ini penting karena binary search hanya bekerja pada array yang terurut.
2) Melakukan pencarian binary search:
• Algoritma binary search diimplementasikan menggunakan loop while.
• Loop ini berulang selama nilai cari belum ditemukan dan low (indeks awal) tidak
melebihi high (indeks akhir).
• Pada setiap iterasi:
o Hitung nilai mid sebagai indeks tengah antara low dan high.
o Bandingkan data[mid] dengan cari:
▪ Jika sama, ditemukan diubah menjadi true dan indeks mid disimpan.
▪ Jika data[mid] lebih kecil dari cari, low diperbarui menjadi mid + 1.
▪ Jika data[mid] lebih besar dari cari, high diperbarui menjadi mid - 1.
3) Menampilkan hasil pencarian:
• Jika ditemukan bernilai true, program akan mencetak pesan bahwa data ditemukan pada
indeks tertentu.
• Jika tidak ditemukan, program akan mencetak pesan bahwa data tidak ditemukan dalam
array.
4. Program
#include <iostream>
using namespace std;
int interpolationSearch(int array[], int n, int dataDicari) {
int low = 0;
int high = n - 1;
while (low <= high) {
int mid = low + ((dataDicari - array[low]) * (high - low)) /
(array[high] - array[low]);
if (array[mid] == dataDicari) {
return mid; 227
} else if (array[mid] < dataDicari) {
low = mid + 1;
} else {
high = mid - 1;
}