Sabtu, 15 Desember 2012

Pencarian Data


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