Searching pada C++
Pencarian(searhing)
merupakan proses yang sangat penting dalam pengolahan data. Proses pencarian
adalah menemukan nilai(data) tertentu didalam sekumpulan data yang bertipe
sama.
Sebuah algoritma pencarian dijelaskan secara
luas adalah sebuah algoritma yang menerima masukan berupa sebuah masalah dan
menghasilkan sebuah solusi untuk masalah tersebut, yang biasanya didapat dari
evaluasi beberapa kemungkinan solusi. Algoritma pencarian (searching algorithm) adalah algoritma yang menerima sebuah Kata
kunci dan dengan langkah-langkah
tertentu akan mencari rekaman dengan kata kunci tersebut. Setelah proses pencarian dilaksanakan, akan
diperoleh salah satu dari dua kemungkinan, yaitu data yang dicari ditemukan
atau tidak ditemukan.
a). Sequential
searching
Pencarian Sekuensial (sequential searching) atau pencarian berurutan sering disebut
pencarian linear merupakan metode pencarian yang paling sederhana. Pencarian
beruntun adalah proses yang membandingkan setiap elemen larik satu per satu
secara beruntun, mulai dari elemen pertama sampai elemen yang dicari ditemukan
atau seluruh elemen sudah diperiksa.
Proses yang terjadi pada metode in adalah :
ü Membaca
array data
ü Menetukan
data yang di cari
ü Mulai
dari data pertama sampai dengan data terakhir, data yang di cari dibandingkan
masing-masing data dalam array.
ü Jika data
dicari tidak ditemukan, maka semua data atau elemen array di bandingkan sampai
selesai .
ü Jika data
yang di cari di temukan maka perbandingan akan dihentikan.
b). Binary
searching
Terdapat metode pencarian pada data terurut
yang paling efficient, yaitu metode pencarian bagi dua atau pencarian biner (binary searching). Metode ini digunakan
untuk kebutuhan pencarian dengan waktu yang cepat. Prinsip pencarian dengan
membagi data atas dua bagian mendasari metode ini. Data yang disimpan di dalam
larik harus sudah terurut. Binary search
adalah metode pencarian suatu data atau elemen di dalam suatu array dengan
kondisi data dalam keadaan urut. Proses pencarian biner dapat dijelaskan
sebagai berikut :
ü Mula-mula
diambil dari posisi awal=1 dan posisi akhir =n, kemudian di cari posisi tengah
rumus: ( posisi awal + posisi akhir )/2.
ü Setelah
itu data yang dicari dibandingakan dengan data yang berada ditengah.
ü Jika hasilnya lebih kecil , maka ulangi proses
diatas dalam hal ini posisi akhir=posisi tengah-1.
ü Jika
lebih besar hasilnya maka lakukan proses diatas tetapi dalam hal ini posisi
akhir =posisi tengah +1.
a). Sequential
Searching
Dibawah ini merupakan contoh program sequential searching
#include
<iostream>
#include
<conio.h>
using
namespace std;
main()
{
int data[10], index[10],a,b,c,d;
cout<<"Masukkan jumlah data :
";cin>>a;
for(b=0;b<a;b++)
{
cout<<"Masukkan data ke–
"<<b<<" : ";
cin>>data[b];
}
cout<<"Masukkan data yang akan
anda cari : "; cin>>c;
d=0;
for(b=0;b<a;b++)
{
if (data[b]==c)
{
index[d]=b;
d++;
}
}
if (d>0)
{
cout<<"Data
"<<c<<" yang dicari, terdapat
"<<d<<" buah"<<endl;
}
else
{
cout<<"Data tidak
ditemukan"<<endl;
}
}
|
Output :
Pertama memasukkan jumlah data yang ingin dimasukkan, kemudian
memasukkan data secara random. Kemudian memasukkan data yang akan dicari,
program akan melakukan pencarian data yang dicari tadi dengan metode sequential search.
b). Binary Search
Dibawah ini merupakan contoh program binary search
#include
<iostream>
#include
<conio.h>
using
namespace std;
main()
{
int data[10],n,i,j,x,t,low,high,mid,flag;
cout<<"Masukkan Jumlah data :
";cin>>n;
for(i=0;i<n;i++)
{
cout<<"Masukkan data ke -
"<<i<<" : ";cin>>data[i];
}
cout<<"Masukkan data yang akan
anda cari : ";cin>>x;
for(i=0;i<n;i++)
{
for(j=i+1;j<n;j++)
{
if (data[i]>data[j])
{
t=data[i];
data[i]=data[j];
data[j]=t;
}
}
}
flag=0; high=n;low=0;
while (low<=high)
{
mid=(low+high)/2;
if(data[mid]==x)
{
flag++;
}
if (data[mid]<x)
{
low=mid+1;
}
else
{
high=mid-1;
}
}
if (flag>0)
{
cout<<"Data
"<<x<<" yang dicari terdapat dalam
aray"<<endl;
}
else
{
cout<<"Data tidak
ditemukan dalam array"<<endl;
}
}
|
Output :
Pertama memasukkan jumlah data yang ingin dimasukkan, kemudian memasukkan
data secara random. Kemudian memasukkan data yang akan dicari, program akan
melakukan pencarian data yang dicari tadi dengan metode binary search.
Sumber :
Saputri, S. (2016). Modul Alpro 2-1. Searching, 113-117.
Komentar
Posting Komentar