Search
Pengertian Searching
Searching merupakan kegiatan mencari data yang akan dibutuhkan. Searching dalam pemrogaman dapat dilakukan untuk mencari data yang berada pada memory komputer. Dalam kehidupan sehari-hari kita sering melakukan searching seperti pada saat mencari data maupun informasi yanag ada pada internet.
Algoritma Pencarian, merupakan teknik algoritma untuk mencari data dengan langkah-langkah tertentu, dengan berdasarkan data masukan (key) dan memproses pencarian berdasarkan data masukan (key) tersebut untuk mencapai keputusan "Ditemukan" dan "Tidak Ditemukan".
Terdapat macam-macam metode yang dapat digunakan dalam searching, antara lain:
- Linear Search (Pencarian Beruntun), program
Linear Search merupakan algoritma yang bekerja dengan mencocokan data secara berurutan satu per satu dari satu ujung kumpulan data ke ujung lainnya. Pencarian dengan linear search tidak akan berhenti hingga data yang diinginkan ditemukan.
Cara Kerja: Setiap data padara array akan dibandingkan dengan kunci sampai pada data yang terakhir (Kasus terburuk (Worst case)).
1) Bila pada posisi ke-i data data sama dengan kunci, berarti data ditemukan pada posisi ke-i.
2) Bila sampai akhir data, data tidak juga ditemukan berarti kunci tidak ada pada array.
Kelebihan:
- Data tidak perlu dalam kondisi urut.
- Algoritma mudah dipelajari dan diimplementasikan.
Kekurangan:
- Tidak cocok untuk data dengan jumlah yang sangat banyak.
- Waktu dalamm pencarian tergolong lama.
- Binary Search (Pencarian Bagi Dua), program
Binary Search merupakan algoritma pencarian yang bekerja pada data yang telah diurutkan. Algoritma ini bekerja dengan membagia data menjadi duua secara berulang. Dengan membagi dua, proses pencarian lebih cepat karena tidak mencari kebagian yang tidak perlu.
Cara Kerja:
- Kunci akan selalu dibandingkan dengan data yang berada di tengah (middle).
- Bila sama berarti data ketemu, bila tidak, akan "dilihat" apakah data ada di sebelah "kiri" (artinya data lebih kecil dari data di tengah) atau di sebelah "kanan" (artinya data lebih besar data di tengah).
- Bila data ada di seblah kiri, dilakukan pencarian dengan cara yang sama (sementara data yang berada di kanan akan diabaikan).
- Jadi, setiap kali pencarian, data selalu "dibelah" menjadi dua bagian (biner), sampai pada "titik tertentu" (bila sama dengan titik tengah, pencarian tidak dilakukan lagi, bila tidak, lakukan pencarian lagi sampai pada perbandingan terakhir data juga tidak sama, berarti data tidak ditemukan pada array).
Kelebihan:
- Proses pencarian jauh lebih cepat jika menghadapi banyak data.
- Pencarian lebih efisien.
Kekurangan:
- Data harus dalam kondisi urut.
- Waktu pencarian tidak berbeda jauh dengan linear search jika data berjumlah sedikit.


Posting Komentar