Header Ads

Skema Pencarian


Konsep Pencarian
Pencarian adalah proses menemukan nilai (data) tertentu dari dalam sekumpulan nilai  yang  bertipe  sama  (tipe  dasar  maupun  tipe  bentukan). Dengan kata lain, algoritma pencarian adalah algoritma yang mengambil input berupa persoalan dan mengembalikan penyelesaian berupa penemuan nilai yang dicari dalam persoalan inputan.
Proses pencarian seringkali diperlukan pada saat program perlu mengubah atau menghapus nilai tertentu (sebelum bisa mengubah atau menghapus, perlu mencari dulu apakah nilai tersebut ada dalam kumpulan nilai tersebut). Kasus lain yang memerlukan algoritma pencarian adalah penyisipan data ke dalam kumpulan data (perlu dimulai dengan pencarian apakah data tersebut telah ada sehingga terhindar dari duplikasi data).

Pencarian Sekuensial
Pencarian sekuensial (sequential search) adalah proses membandingkan setiap elemen larik (array) satu persatu dengan nilai yang dicari secara beruntun, mulai dari elemen pertama sampai elemen yang dicari sudah ditemukan, atau sampai seluruh elemen sudah diperiksa.
Algoritma pencarian sekuensial ini cocok untuk pencarian nilai tertentupada sekumpulan data terurut maupun tidak. Keunggulan algoritma ini adalah dalam mencari sebuah nilai dari sekumpulan kecil  data. Algoritma ini termasuk algoritma yang sederhana dan cepat karena tidak memerlukan proses persiapan data (misalnya: pengurutan).

Pencarian Biner
Pencarian biner adalah proses mencari data dengan membagi data atas dua bagian secara terus menerus sampai elemen yang dicari sudah ditemukan, atau indeks kiri lebih besar dari indeks kanan.
Algoritma ini lebih efisien daripada algoritma pencarian sekuensial, tetapi pencarian ini mempunyai syarat yaitu bahwa kumpulan data yang harus dilakukan pencarian harus sudah terurut terlebih dahulu, baik terurut secara menaik (ascendant) atau menurun (descendant). Karena data sudah terurut, algoritma dapat menentukan apakah nilai data yang dicari berada sebelum atau sesudah elemen larik yang sedang dibandingkan pada suatu saat. Dengan cara ini, algoritma dapat lebih menghemat waktu pencarian.
Pencarian dalam data terurut bermanfaat misalnya pada penyimpanan data dengan beberapa komponen, program dapat mencari sebuah indeks terurut. Setelah menemukan indeks yang dicari, program dapat membaca data lain yang bersesuaian dengan indeks yang ditemukan tersebut.

Pencarian Lain
Pencarian sekuensial dan pencarian biner merupakan algoritma pencarian dasar yang termasuk ke dalam kelompok pencarian daftar (list search). Terdapat pula beberapa algoritma lain yang termasuk pula dalam kelompok pencarian daftar, antara lain:
·  pencarian interpolasi (interpolation search): melakukan pencarian lebih baik daripada pencarian          biner pada larik berukuran besar dengan distribusi seimbang, tapi waktu pencariannya buruk
·  pencarian Grover (Grover’s search): melakukan pencarian dalam waktu singkat, yang merupakan        pengembangan dari pencarian linier biasa pada larik dengan elemen tidak berurut

Selain algoritma pencarian dalam kelompok pencarian daftar, terdapat pula beberapa kelompok algoritma lain. Beberapa di antaranya adalah sebagai berikut:

Kelompok Algoritma
Penjelasan dan Contoh Algoritma
Pencarian tanpa informasi
(uninformed search)
Algoritma ini mencari data tanpa ada batasan
tipe data persoalan.
Pencarian pohon
(tree search)
Algoritma ini mencari data dengan bantuan
struktur pohon (eksplisit maupun implisit).
· breadth-first search (mencari level demi level)
· depth-first search (mencari dengan meraih kedalaman pohon terlebih dahulu)
· iterative-deepening search
· depth-limited search
· bidirectional search
· uniform-cost search
Pencarian grafik
(graph search)
Algoritma ini mencari data dengan algoritma
penelurusuran grafik, misalnya
· Djikstras algorithm
· Kruskals algorithm
· nearest neighbour algorithm
· Prim’s algorithm
Pencarian dengan informasi
(informed search)
Algoritma ini mencari data dengan fungsi
heuristik yang spesifik pada persoalan tertentu.
· best-first search
· A*
Jenis lain
· Algoritma pencarian string
· Algoritma genetik
· Algoritma minimax

Tidak ada komentar

Gambar tema oleh micheldenijs. Diberdayakan oleh Blogger.