From f7220519cecafd17f34f3ce9225c8e59678b0419 Mon Sep 17 00:00:00 2001 From: KhoirulHS Date: Fri, 17 Oct 2025 04:28:46 +0700 Subject: [PATCH 1/4] feat : menambahkan algoritma binary search --- algorithm/search_algorithm/binary_search.cpp | 77 ++++++++++++++++++++ 1 file changed, 77 insertions(+) create mode 100644 algorithm/search_algorithm/binary_search.cpp diff --git a/algorithm/search_algorithm/binary_search.cpp b/algorithm/search_algorithm/binary_search.cpp new file mode 100644 index 0000000..a27a2ca --- /dev/null +++ b/algorithm/search_algorithm/binary_search.cpp @@ -0,0 +1,77 @@ +/** + * @file binary_search.cpp + * + * @author Perpuskita Ruldani + * + * @date Okt 2025 + * + * @brief Program untuk mencari sebuah data dalam array yang sudah terurut menggunakan algoritma binary search + * + * Program ini mencari sebuah data pada array yang sudah terurut + * Program berjalan dengan membandingkan nilai titik tengah dari sebuah array dengan data yang dicari + * Jika data masih belum ditemukan maka pencarian dilakukan pada titik tengah tersebut + * Jika titik tengah lebih besar daripada data yang dicari maka pencarian dimulai dari titik awal pencarian sampai index tengah + * Jika titik tengah lebih kecil daripada data yang dicari maka pencarian dimulai dari index tengah sampai index terakhir + * + * Hasilnya akan ditampilkan di terminal. + */ + +#include +#include + +int binarySearch(const std::vector& arr, int n) { + // Inisialisasi indeks paling kiri dan kanan + int left = 0; + int right = arr.size() - 1; + + // Lakukan pencarian selama indeks kiri tidak melebihi indeks kanan + while (left <= right) { + // Step pertama + // Hitung indeks tengah + int mid = left + (right - left) / 2; + + // Cek jika n ada di mid + if (arr[mid] == n) { + return mid; // data ditemukan, kembalikan indeks + } + + // Jika n lebih besar, abaikan bagian kiri + else if (arr[mid] < n) { + left = mid + 1; + } + + // Jika n lebih kecil, abaikan bagian kanan + else { + right = mid - 1; + } + } + return -1; // data tidak ditemukan +} + +int main() { + // inisialisasi data + std::vector data = { 1, 2, 3, 6, 8, 9, 13, 21 }; + + // data yang akan dicari + int n = 9; + + // Menampilkan data sebelum diurutkan + std::cout << "Menampilkan data: "; + for (int x : data) std::cout << x << " "; + std::cout << std::endl; + + // Menampilkan data yang akan dicari + std::cout << "Data yang dicari: " << n << std::endl; + + // Melakukan pencarian data menggunakan binary search + int hasil = binarySearch(data, n); + + // Menampilkan hasil pencarian + if (hasil != -1) + std::cout << "Data yang dicari ditemukan pada urutan ke-" << hasil + 1 << std::endl; + else + std::cout << "Data tidak ditemukan dalam array." << std::endl; + + // Mengakhiri program + return 0; +} From 3c91ccaa8b674b3d98d65dbf4e0bec138a4420aa Mon Sep 17 00:00:00 2001 From: KhoirulHS Date: Fri, 17 Oct 2025 04:38:32 +0700 Subject: [PATCH 2/4] feat: menambahkan algoritma binary search --- algorithm/search_algorithm/binary_search.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/algorithm/search_algorithm/binary_search.cpp b/algorithm/search_algorithm/binary_search.cpp index a27a2ca..6b95adc 100644 --- a/algorithm/search_algorithm/binary_search.cpp +++ b/algorithm/search_algorithm/binary_search.cpp @@ -13,7 +13,7 @@ * Jika titik tengah lebih besar daripada data yang dicari maka pencarian dimulai dari titik awal pencarian sampai index tengah * Jika titik tengah lebih kecil daripada data yang dicari maka pencarian dimulai dari index tengah sampai index terakhir * - * Hasilnya akan ditampilkan di terminal. + * Hasilnya ditampilkan di terminal. */ #include From c910a94fc03e090aba9ee646227d4459b0059f83 Mon Sep 17 00:00:00 2001 From: KhoirulHS Date: Fri, 17 Oct 2025 12:40:13 +0700 Subject: [PATCH 3/4] feat: menambahkan algoritma searching binary search --- algorithm/search_algorithm/binary_search.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/algorithm/search_algorithm/binary_search.cpp b/algorithm/search_algorithm/binary_search.cpp index 6b95adc..5383489 100644 --- a/algorithm/search_algorithm/binary_search.cpp +++ b/algorithm/search_algorithm/binary_search.cpp @@ -19,7 +19,7 @@ #include #include -int binarySearch(const std::vector& arr, int n) { +int binary_search(const std::vector& arr, int n) { // Inisialisasi indeks paling kiri dan kanan int left = 0; int right = arr.size() - 1; @@ -64,7 +64,7 @@ int main() { std::cout << "Data yang dicari: " << n << std::endl; // Melakukan pencarian data menggunakan binary search - int hasil = binarySearch(data, n); + int hasil = binary_search(data, n); // Menampilkan hasil pencarian if (hasil != -1) From f1d40a2972a105056ce3800e1855a504a2e542ca Mon Sep 17 00:00:00 2001 From: KhoirulHS Date: Fri, 17 Oct 2025 12:47:08 +0700 Subject: [PATCH 4/4] feat: menambahkan algoritma searching binary search --- algorithm/search_algorithm/binary_search.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/algorithm/search_algorithm/binary_search.cpp b/algorithm/search_algorithm/binary_search.cpp index 5383489..c5a3b9d 100644 --- a/algorithm/search_algorithm/binary_search.cpp +++ b/algorithm/search_algorithm/binary_search.cpp @@ -19,7 +19,7 @@ #include #include -int binary_search(const std::vector& arr, int n) { +int binary_search(std::vector& arr, int n) { // Inisialisasi indeks paling kiri dan kanan int left = 0; int right = arr.size() - 1;