PENCARIAN DATA
Pencarian (searching) merupakan tindakan untuk mendapatkan suatu data dalam
kumpulan data. Dalam kehidupan sehari-hari, seringkali kita berurusan dengan
pencarian; misalnya untuk menentukan nomor telepon seseorang pada buku telpon
atau mencari suatu istilah dalam kamus. Pada aplikasi komputer, pencarian kerap
dilakukan; misalnya untuk mendapatkan informasi suatu kata dalam kamus digital,
mendapatkan nomor telepon berdasarkan suatu alamat atau nama perusahaan.
Untuk keperluan mencari data, terdapat
beragam algoritma pencarian (search
alorithm). Yang dimaksud dengan algoritma pencarian adalah “algoritma yang
menerima sebuah argumen a dan mencoba untuk menentukan sebuah rekaman yang
memiliki kunci a”. Sebagai contoh, dikehendaki untuk mendapatkan mahasiswa
dengan nomor 9834567. Hasilny adalah rekaman yang berisi data mahasiswa
tersebut; yang barang kali berisi nama, alamat, tanggal lahir, dan nama program
studi. Dalam implementasinya, algoritma bisa jadi memeberikan nilai balik
berupa sebuah rekaman yang diperoleh tetapi bisa pula hanya meme rikan pointer yang menunjuk kesebuah rekaman.
Pencariaan dapat dilakukan terhadap data
yang secra keseluruhan berada dalam memori komputer atau pun terhadap data yang berada dalm penyimpanan eksternal (hard disk). Pencarian yang dilakukan
terhadap data yang berada dalam memori komputer dikenel dengan sebutan
pencarian internal, sedangakan pencarian yang dilakukan pada media penyimpanan
eksternal disebut pencarian eksternal.
Catatan:
Selain itu, pencarian dapat dilakukan
terhadap data yang tidak urut ataupunterhadap data yang sudah urut. Kedua model
pencarian seperti itu akan dibahas.
1. Pencarian
Sekuensial
Pencarian sekuensial (pencarian linear) merupak model pencarian yang paling sederhana yang
dilakukan terhadap suatu kumpulan data.
Secara konsep, penjelasannya adalah seperti
berikut: Terdapat L yang merupakan larik yang berisi n buah data(L[0], L[1],
L[2], …, L[n-1]) dan k adalah data yang hendak dicari. Pencarian dilakukan
untuk menemukan
L[i] = k
dengan i adalah bilangan indeks trkecil
yang memenuhi kondisi 0<k<n-1. Tentu saja ada kemungkinan
bahwa data yang dicari tidak ditemukan.
Contoh:
Lß[10, 9, 4, 6, 4, 3, 2, 5]
Di manakah posisi 4 yang pertama? Dalam hal
ini k adalah 4 dan k ditemukan pada posisi dengan indeks berupa 2.
2. Pencarian
Terhadap Data Urut
Apabila kumpulan data dalam keadaan urut,
pencarian data dengan menggunakan pencarian sekuensial akan memakan waktu yang
lama jika jumlah data dalam kumpulan data kumpulan data tersebut sangat banyak.
Untuk mengatasi hal itu terdapat algoritma yang dirancang agar pencarian data
dapat dilakukan secara efesien. Metode yang digunakan dikenal dengan sebutan pencarian
biner (binary search).
Pencarian biner dilakukan dengan membagi
larik menjadi dua bagian dengan jumlah ynag sama atau berbeda 1 jika jumlah
data semua ganjil. Data yang dicari kemudian dibandingkan dengan data terakhir
pada bagian utama. Dalam hal ini ada tiga kemungkinan yang terjadi.
1.
Data
yang dicari sama dengan elemen terakhir pada bagian pertama dalam larik. Jika
kondisi ini terpenuhi, data yang dicari berarti ditemukan.
2.
Data
yang dicari bernilai kurang dari nilai elemen terakhir pada bagian pertama
dalam larik. Pada keadaan ini, pencarian diteruskan pada bagian pertama.
3.
data
yang dicari bernilai lebih dari elemen terakhir pada bagian pertama dalam
larik. Pada keadaan ini, pencarian diteruskan pada bagian kedua.
Tidak ada komentar:
Posting Komentar