SEARCHING C++
1. Pengertian
Searching
Searching adalah mencari
data yang dibutuhkan. Searching dalam pemrograman bisa dilakukan untuk mencari
data yang ada di dalam memory komputer.Dalam kehidupan sehari-hari kita juga
sering melakukan kegiatan searching seperti mencari data/informasi yang ada
dalam internet. Ada beberapa metode yang dapat digunakan untuk searching, ada
yang dinamakan:
· Sequential Search
· Binary Search
2. Binary Search
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
Program dari binary search :
#include
using namespace std;
int main ()
{
int d,i,awal,akhir,tengah,bin;
int data[10];
cout << "Masukkan Jumlah Data =
"; cin >> d;
for (i=0; i
{
cout << "Data Ke-
"<> data[i];
}
cout << "Mencari data dengan
binary = "; cin >> bin;
awal=0;
akhir=d-1;
do
{
tengah=(awal+akhir)/2;
if(bin
akhir=tengah-1;
else
awal=tengah+1;
}
while
((akhir>=awal)&&(data[tengah]!=bin));
if(data[tengah]==bin)
{
cout << "Data "
<< bin << " Pada Posisi " << tengah+1;
}
else
cout << "Data Tidak
Ditemukan" << endl;
cout << endl;
}
Hasil running :
Sebuah Program dengan binery dan sequential :
#include
using namespace std;
int main()
{
int n, awal, akhir, data, tengah, i;
string studio[10], pil, x, bangku[10];
cout << "
|==========================================| "<< endl;
cout << " |=========== BIOSKOP
UCUYDI xIx ===========| "<< endl;
cout << "
|==========================================| "<< endl << endl
<< endl;
cout << " Pilihan Metode
pencarian :"<
cout << " 1/A. Sequential "
<< endl;
cout << " 2/B. Binery "
<< endl;
kembali:
cout <<" Masukkan pilihan :
";cin >> pil;
if (pil=="A" ||
pil=="1")
{
cout << " Anda memilih
metode Sequential! " << endl;
cout << " Banyak data adalah
: ";cin >> data;
cout << endl;
for(i=0; i
{
cout << "++ Studio ke -
"<> studio[i];
cout << "++ Bangku ke -
"<<" : ";cin >> bangku[i];
cout << endl;
}
cout << " Masukkan data yang
ingin dicari : ";cin >> x;
i=0;
ulang:
if (i!=data)
{
if(studio[i]==x)
{
cout << " ++ Studio
yang anda cari ditemukan di data :" << i+1 << endl;
cout << " ++ Urutan
Bangku yang anda dapat :" << bangku[i];
}
else if (bangku[i]==x)
{
cout << " ++ Bangku
yang anda cari ditemukan di data :" << i+1 << endl;
cout << " ++ Studio
yang anda dapat :"<
}
else
{
i++;
goto ulang;
}
}
else
{
cout << "++ Studio atau
nama yang anda cari tidak ditemukan";
}
}
else if (pil=="B" ||
pil=="2")
{
cout << "++ Anda memilih
Binery!" << endl;
cout << "++ Masukkan
jumlah data : ";cin >> n;
cout << endl;
for(int i=0; i
{
cout << "++ Studio
ke - "<> studio[i];
cout << "++ Bangku
ke - " << " : "; cin >> bangku[i];
cout << endl;
}
cout << "++ Masukkan bangku yang dicari : ";cin
>> x;
awal=0;
akhir=n-1;
do
{
tengah=(awal + akhir)/2;
if(x
{
akhir = tengah -1;
}
else
{
awal = tengah +1;
}
}
while((akhir>=awal)&&(bangku[tengah]!=x));
{
if(x == bangku[tengah])
{
(cout << " data
" << x << " Pada posisi : " << tengah+1);
}
else
{
cout << "++ Bangku
atau Studio tidak ditemukan";
}
}
}
return 0;
}
Hasil Running :
DAFTAR PUSTAKA
RIDHO RAMADHAN
1801301095
TERIMAKASIH!!
Tidak ada komentar:
Posting Komentar