Searching
adalah metode pencarian informasi dalam suatu aplikasi, dengan suatu
kunci( key ). Pencarian diperlukan untuk mencari informasi
khusus dari table pada saat lokasi yang pasti dari informasi tersebut
sebelumnya tidak diketahui. Pencarian selalu dinyatakan dengan referensi pada
adanya sekelompok data yang tersimpan secara terorganisasi, kelompok data
tersebut kita sebut table.
Pada
metode searching (pencarian) ada 2 teknik yang digunakan yaitu :
a. Pencarian
sekuensial (sequential search)
b. Pencarian biner (Binary search).
a. Sequential Search
Pencarian sekuensial (sequential search) atau sering
disebut pencarian linier menggunakan prinsip sebagai berikut : data yang ada di
bandingkan satu persatu secara berurutan dengan yang dicari. Pada dasarnya,
pencarian ini hanya melakukan pengulangan dari 1 sampai dengan jumlah data.
Pada setiap perulangan , di bandingkan data ke-i dengan yang dicari. Apabila
sama , berarti data telah ditemukan . Sebaliknya apabila sampai akhir
pengulangan , tidak ada yang sama berarti data tidak ada.
Pencarian
Sekuensial memiliki beberapa kelebihan dan kekurangan yaitu :
1. Kelebihannya :
·
Relatif lebih cepat dan efisien
untuk data yang terbatas
·
Algoritma sederhana
2. Kekuranganya :
·
Kurang cepat untuk data dalam jumlah
besar
·
Beban komputasi cenderung lebih
besar
Contoh Program
Sequential Search pada bahasa C++ :
#include <iostream>
#include <conio.h>
#include <iomanip>
int main()
{
int data[10] = {12, 24, 5, 30,
28, 50, 48, 76, 32,9};
int caridata, i, flag = 0;
cout<<"\n\t\t
*************************************** \n";
cout<<"\t\t |
\t\t\t\t | \n";
cout<<"\t\t | \t Proses Pencarian \t | \n";
cout<<"\t\t |
Menggunakan Algoritma Sequential Search | \n";
cout<<"\t\t |
\t\t\t\t | \n";
cout<<"\t\t
*************************************** \n\n\n";
cout<<"Data : ";
for(int n=0; n<10;
n++)
cout<<setw(4)<<data[n];
cout<<endl;
cout<<"\nMasukkan
data yang ingin Anda cari : ";
cin>>caridata;
//cari dengan metode sequential
search()
for(i = 0; i<10; i++)
{
if(data[i]==caridata)
{
flag = 1;
break;
}
}
//cetak hasil
if(flag==1)
cout<<"
Keterangan : Terimakasih ! Data Telah
Ditemukan pada Indeks ke - ";
else
cout<<"
Keterangan : Maaf ! Data yang dicari
Tidak Ditemukan";
getch();
}
Tampilan ketika Contoh Program Sequential Search dijalankan :
b. Binarry Search
Binary
search adalah sebuah algoritma pencarian dengan cara membagi data menjadi dua
bagian setiap kali terjadi proses pencarian untuk menemukan nilai tertentu
dalam sebuah larik (array) linear. Sebuah pencarian biner mencari nilai tengah
(median), melakukan sebuah pembandingan untuk menentukan apakah nilai yang dicari
ada sebelum atau sesudahnya, kemudian mencari setengah sisanya dengan cara yang
sama. Pencarian Biner (Binary Search) dilakukan untuk :
a)
Memperkecil jumlah operasi pembandingan
yang harus dilakukan antara data yang dicari dengan data yang ada di dalam tabel,
khususnya untuk jumlah data yang sangat besar ukurannya.
b)
Beban komputasi juga lebih kecil karena
pencarian dilakukan dari depan, belakang, dan tengah.
c)
Prinsip dasarnya adalah melakukan proses
pembagian ruang pencarian secara berulang-ulang sampai data ditemukan atau
sampai ruang pencarian tidak dapat dibagi lagi (berarti ada kemungkinan data
tidak ditemukan).
d)
Syarat utama untuk pencarian biner
adalah data di dalam tabel harus sudah terurut.
Langkah dalam pencarian
biner adalah :
1.
Mula-mula diambil dari posisi awal=1 dan
posisi akhir = n
2.
Kemudian kita cari posisi data tengah
dengan rumus posisi tengah = (posisi awal + posisi akhir ) div 2
3.
Kemudian data yang di cari dibandingkan
dengan data tengah
a. Jika
sama, data ditemukan, Proses selesai
b. Jika
lebih kecil, proses dilakukan kembali tetapi posisi akhir dianggap sama dengan
posisi tengah -1
c. Jika
lebih besar , proses dilakukan kembali tetapi posisi awal dianggap sama dengan
posisi tengah +1.
4.
Ulangi langkah kedua hingga data
ditemukan , atau tidak ditemukan.
5.
Pencarian biner ini akan berakhir jika data
ditemukan posisi awal lebih besar dari pada posisi akhir. Jika posisi awal
sudah lebih besar dari posisis akhir berarti data tidak diketemukan.
Pencarian Biner :
a.
Kelebihannya :
o
Untuk data dalam jumlah besar, waktu
searching lebih cepat
o
Beban komputasi lebih kecil
b.
Kekuranganya :
o
Data harus sudah di-sorting lebih dulu (
dalam keadaan terurut )
Contoh Program Binary Search pada Bahasa C++ :
#include <iostream.h>
#include <conio.h>
#include <conio.h>
void main ()
{
int
jml_data, cari,no, kiri,kanan,tengah,data[100];
cout<<"\n\t\t ***************************************
\n";
cout<<"\t\t | \t\t\t\t
| \n";
cout<<"\t\t | \t
Proses Pencarian \t |
\n";
cout<<"\t\t | Menggunakan Algoritma Binary Search | \n";
cout<<"\t\t | \t\t\t\t
| \n";
cout<<"\t\t ***************************************
\n\n\n";
cout<<" Inputkan Jumlah Data
: ";
cin>>jml_data;
cout<<endl;
for (no=0;no<jml_data;no++)
{
cout<<" Inputkan Data
Ke-"<<(no+1)<<"
: ";
cin>>data[no];
}
cout<<endl;
cout<<" Inputkan Nilai Yang
Ingin Dicari : ";
cin>>cari;
kiri=0;
kanan=jml_data-1;
tengah=(kanan-kiri)/2;
while ((data[tengah]!=cari)
&& (kiri>=0)&& (kanan<jml_data) &&
(kanan>=kiri))
{
if (cari>data[tengah])
{
kiri=tengah+1;
}
else if
(cari<data[tengah])
{
kanan=tengah-1;
}
tengah=kiri+(kanan-kiri)/2;
}
cout<<endl;
if (data[tengah]==cari)
{
cout<<" Keterangan : Terimakasih ! Data Telah
Ditemukan";
}
else
{
cout<<" Keterangan : Maaf ! Data Tidak Tersedia";
}
getch();
}
Tampilan ketika Contoh Program Binarry Search dijalankan :
DAFTAR PUSTAKA
- Mita, S. 2014. Binarry Search. Diakses pada tanggal 06 Juni 2015 di mita.staff.gunadarma.ac.id/Downloads/files/.../BINARY-SEARCH.doc
- Anonim. 2014. Binary Search. Diakses tanggal 06 Juni 2015 pada www.informatika.unsyiah.ac.id/tfa/ds/binarysearch.pdf
- Anonim. 2014. Struktur Data pencarian berurut sequential seacrh. Diakses tanggal 06 Juni 2015 pada http://xbasicpro.com/struktur-data/pencarian/struktur-data-pencarian-berurut-sequential-search-vbnet.aspx
TERIMAKASIH !!!
Selamat Mencoba :)
Selain materi diatas terdapat juga beberapa materi struktur
data, silahkan klik link di bawah ini :
Tidak ada komentar:
Posting Komentar