Binary Search C++
![]() |
Comtoh Program Binary Search C++ |
Binary Search merupakan metode pencarian dimana data harus diurutkan terlebih dahulu sebelum dilakukan proses pencarian. Pada metode pencarian ini, data dibagi menjadi dua bagian untuk setiap tahap pencarian.
Algoritma
binary search :
- Data diambil dari posisi 1 sampai posisi akhir n
- Kemudian cari posisi data tengah dengan rumus: (posisi awal + posisi akhir) / 2
- Kemudian data yang dicari dibandingkan dengan data yang di tengah, apakah sama atau lebih kecil, atau lebih besar?
- Jika lebih besar, maka proses pencarian dicari dengan posisi awal adalah posisi tengah + 1
- Jika lebih kecil, maka proses pencarian dicari dengan posisi akhir adalah posisi tengah – 1
- Jika data sama, berarti ketemu.
Berikut ini program C++ Binary Search :
/*
Binary search() C++
Compiler : Microsoft Visual
Studio 2012
By N.N. Blog
*/
#include <iostream>
using namespace std;
#include <conio.h>
#include <iomanip>
int data[7] = {1, 8, 2, 5, 4, 9,
7};
int cari;
void selection_sort()
{
int temp, min, i, j;
for(i=0; i<7;i++)
{
min = i;
for(j = i+1; j<7; j++)
{
if(data[j]<data[min])
{
min=j;
}
}
temp = data[i];
data[i] = data[min];
data[min] = temp;
}
}
void binarysearch()
{
//searching
int awal, akhir, tengah, b_flag
= 0;
awal = 0;
akhir = 7;
while (b_flag == 0
&& awal<=akhir)
{
tengah = (awal +
akhir)/2;
if(data[tengah] == cari)
{
b_flag = 1;
break;
}
else if(data[tengah]<cari)
awal = tengah + 1;
else
akhir = tengah
-1;
}
if(b_flag == 1)
cout<<"\nData ditemukan pada index ke-"<<tengah<<endl;
else
cout<<"\nData tidak ditemukan\n";
}
int main()
{
cout<<"\t
'BINARY SEARCH'"<<endl;
cout<<"\t====================="<<endl;
cout<<"\nData : ";
//tampilkan data awal
for(int x = 0; x<7; x++)
cout<<setw(3)<<data[x];
cout<<endl;
cout<<"\nMasukkan data yang ingin Anda cari : ";
cin>>cari;
cout<<"\nData diurutkan : ";
//urutkan data dengan selection sort
selection_sort();
//tampilkan data setelah diurutkan
for(int x = 0; x<7;x++)
cout<<setw(3)<<data[x];
cout<<endl;
binarysearch();
_getche();
return EXIT_SUCCESS;
}
Output
'BINARY SEARCH'
=====================
Data : 1 8 2 5 4 9 7
Masukkan data yang ingin Anda cari : 5
Data diurutkan : 1 2 4 5 7 8 9
Data ditemukan pada index ke-3
Baca juga postingan saya yang menjawab pertanyaan pembaca di bawah ini.
Jawaban Searching
[RS]
Klik Like & Share jika postingan ini bermanfaat
Apa tanggapan Anda?
Berikan tanggapan Anda melalui kolom komentar yang telah disediakan.
- Gunakan bahasa yang sopan;
- Saat menjadikan postingan pada blog ini sebagai referensi, jangan lupa mencantumkan sumbernya (link dari blog ini).
Jika blog ini bermanfaat jangan lupa memberikan 'like' atau 'share' untuk mendapatkan update terbaru.
Terima kasih
Kalau untuk mencari data yang lebih dari 1 (misalkan dalam sederet datan ada 20 data, nah kita mau nyari sekaligus 3 data langsung) itu gimana yaa ka .. bisa tolong di bantu !!!
ReplyDeleteterimakasih sebelum nya..
bisa email ke : callmebie@gmail.com
Sebelumnya ada kesalahan kode program pada halaman ini dan sudah sy betulkan.
ReplyDeleteSaya sedikit bingung dengan maksud pertanyaannya tapi coba saya jawab di link ini => http://nblognlife.blogspot.com/2015/02/jawaban-searching.html
Ada dua jawaban di link tersebut mungkin salah satunya bisa menjawab pertanyaan Anda.
Terima kasih telah berkunjung..
Sama nih aku mau nanya seperti yang di atas.
ReplyDeletejadi input data nya itu lebih dari 1 pencarian data
jadi gak langsung berakhir
gimana ya gan caranya?
@ricageto
ReplyDeleteJawaban sudah saya sediakan di link ini,
http://nblognlife.blogspot.com/2015/02/jawaban-searching.html
Semoga bisa membantu. Terima kasih telah berkunjung.