Pencarian Internal
Searching
adalah pencarian data dengan cara menelusuri data-data tersebut. Pada suatu
data seringkali dibutuhkan pembacaan kembali informasi (retrieval information)
dengan cara searching. Tempat pencarian data dapat berupa array dalam memori,
bisa juga pada file pada external storage.
Searching
adalah satu keterampilan penting yang harus dikuasai oleh siapapun yang
senantiasa bersinggungan dengan dunia IT. Dengan ketrampilan yang satu ini,
maka pada prinsipnya apapun yang kita inginkan dari dunia maya bisa kita
dapatkan. Hanya saja ketrampilan ini tidak banyak diperhatikan oleh setiap
orang. Khususnya lagi oleh para mahasiswa.
Pencarian
( searching ) dibagi menjadi 2 yaitu :
- Pencarian Berurutan (sequential searching)
- Pencarian Biner (Binary Search)
**Pencarian
(Searching)
Dalam
kehidupan sehari-hari sebenarnya kita sering melakukan pencarian data. Sebagai
contoh, jika kita menggunakan kamus untuk mencari kata-kata dalam Bahasa
Inggris yang belum diketahui terjemahannya dalam Bahasa Indonesia. Contoh lain
dalam saat kita menggunakan telepon untuk mencari nomor telepon teman atau
kenalan dan masih banyak contoh yang lain.
Pencarian
data juga sering disebut table look-up atau storage and retrieval information
adalah suatu proses untuk mengumpulkan sejumlah informasi di dalam pengingat
computer dan kemudian mencari kembali informasi yang diperlukan secepat
mungkin.
Algoritma
pencarian ( search algorithm ) adalah algoritma yang menerima sebuah argument
kunci dan dengan langkah-langkah tertentu akan mencari rekaman dengan kunci
tersebut. Setelah proses pencarian dilaksanakan, akan diperoleh salah satu dari
dua kemungkinan, yaitu data yang dicari ditemukan ( successful) atau tidak ditemukan
( unsuccessfull).
Metode
pencarian data dapat dilakukan dengan dua cara yaitu pencarian internal
( internal searching) dan pencarian eksternal (external searching). Pada
pencarian internal, semua pada rekaman yang diketahui berada dalam pengingat
computer sedangkan pada pencarian eksternal, tidak semua rekaman yang diketahui
berada dalam pengingat computer, tetapi ada sejumlah rekaman yang tersimpan
dalam penyimpanan luar misalnya pita atau cakram magnetis.
Selain
itu data pencarian juga dapat dikelompokkan menjadi pencarian statis (static
searching) dan pencarian dinamis (dynamic searching). Pada pencarian statis,
banyaknya rekaman yang diketahui dianggap tetap, pada pencarian dinamis,
banyaknya rekaman yang diketahui bisa berubah-ubah yang disebabkan oleh
penambahan atau penghapusan suatu rekaman.
Ada
dua macam teknik pencarian yaitu pencarian sekuensial dan pencarian biner.
Perbedaan dari dua teknik ini terletak pada keadaan data. Pencarian sekuensial
digunakan apabila data dalam keadaan acak atau tidak terurut. Sebaliknya,
pencarian biner digunakan pada data yang sudah dalam keadaan urut.
**Pencarian
Berurutan (sequential searching)
Pencarian
berurutan juga sering disebut pencarian linear merupakan metode pencarian yang
paling sederhana. Pencarian berurutan menggunakan prinsip sebagai berikut :
data yang ada dibandingkan satu per satu secara berurutan dengan yang dicari
sampai data tersebut ditemukan atau tidak ditemukan.
Pada
dasranya, pencarian ini hanya melakukan pengulangan dari 1smapai dengan sejumlah
data. Pada setiap pengulangan, dibandingkan dat ke-idengan yang dicari. Apabila
sama, data telah ditemukan. Sebaliknya apabila sampai akhir pengulangan tidak
ada data yang sama, berarti data tidak ada. Pada kasus yang paling buruk, untuk
N elemen data harus dilakukan pencarian sebanyak N kali pula.
Algoritma
pencarian berurutan dapat dituliskan sebagai berikut :
1
i ← 0
2
ketemu ← false
3
Selama (tidak ketemu) dan (i <= N) kerjakan baris 4
4
Jika (Data[i] = x) maka ketemu ← true, jika tidak i ← i+1
5
jika (ketemu) maka i adalah indeks dari data yang dicari, jika data tidak
ditemukan
Dibawah
ini merupakan fungsi untuk mencari data yang menggunakan pencarian sekuensial.
|
int SequentialSearch (int x)
{
int
i =0;
bool
ketemu = false;
while
((! ketemu ) && (i < Max)){
if
(data[i] == x)
ketemu
= true;
else
i++;
}
if
(ketemu)
return
i;
else
return
-1;
}
|
Deklarasi
2.2 Fungsi Untuk Mencari Data dengan Metode Sekuensial
Fungsi
diatas akan mengembalikan indeks dari data yang dicari. Apabila data yang
ditemukan maka fungsi diatas akan mengembalikan nilai -1.
Pencarian
Biner (Binary Search)
Salah
satu syarat agar pencarian biner dapat dilakukan adalah data sudah dalam keadaan
urut. Dengan kata lain, apabila data belum dalam keadaan urut, pencarian biner
tidak dapat dilakukan. Dalam keadaan sehari-hari, sebenarnya kita juga sering
menggunakan pencarian biner. Misalnya saat ingin mencari suatu kata dalam
kamus.
Prinsip
dalam pencarian biner dapat dijelaskan sebagai berikut : mula-mula diambil
posisi awal 0 dan posisi akhir = N-1, kemudian dicari posisi data tengah dengan
rumus (posisi awal + posisi akhir) / 2. Kemudian data yang dicari dibandingkan
dengan dat tengah. Jika lebih kecil, proses dilakukan kembali tetapi posisi
akhir dianggap sama dengan posisi tengah -1. Jika lebih besar, proses dilakukan
kembali tetapi posisi awal dianggap sama dengan posisi tengah + 1. Demikian
seterusnya sampai data tengah sama dengan yang dicari.
