Anda di halaman 1dari 11

Algoritma & Pemrograman 2

Searching (Pencarian)
Pengantar
• Dalam kehidupan sehari-hari sebenarnya kita sering melakukan pencarian,
sebagai contoh; kita melakukan pencarian dengan menggunakan kamus
untuk mencari kata-kata yang akan diterjemahkan.

• Pencarian data disebut juga dengan table look-up, adalah proses untuk
mengumpulkan sejumlah informasi di dalam memory komputer dan
kemudian mencari kembali informasi yang diperlukan secepat mungkin.
Algoritma Searching
• Algoritma pencarian (searching algorithm) adalah algoritma yang menerima
sebuah argumen kunci dan dengan langkah-langkah tertentu akan
mencari rekaman (record ) dengan kunci tersebut.

• Proses pencarian akan diperoleh hasil salah satu dari dua kemungkinan,
yaitu data yang dicari ditemukan (successful) atau tidak ditemukan
(unsuccessful).

• Metode pencarian data dapat dilakukan dengan dua cara yaitu pencarian
internal (internal searching) dan pencarian eksternal (external searching).
Algoritma Searching
• Selain itu metoda pencarian data juga dapat dikelompokkan menjadi pencarian
statis (static searching) dan pencarian dinamis (dynamic searching).

• Pada pencarian statis, banyaknya rekaman yang diketahui dianggap tetap,


sedangkan pada pencarian dinamis, banyaknya rekaman yang diketahui bisa
berubah-ubah yang disebabkan oleh penambahan atau penghapusan suatu
rekaman.

• Ada dua macam teknik pencarian data, yaitu pencarian sekuensial dan
pencarian biner. Perbedaannya terletak pada keadaan datanya, pencarian
sekuensial  data dlm keadaan acak / tidak terurut, pencarian biner  untuk
data yang sdh terurut.
Pencarian Berurutan (Sequential Search)
• Pencarian Berurutan (Sequential Search) sering disebut pencarian linear
merupakan metode pencarian yang paling sederhana. Pencarian
berurutan menggunakan prinsip sebagai berikut: data yang ada
dibandingkan satu persatu secara berurutan sampai data tersebut
ditemukan atau tidak ditemukan.

• Pada dasarnya pencarian ini hanya melakukan pengulangan dari 1 sampai


dengan jumlah data. Pada setiap pengulangan data yang dicari
dibandingkan dengan data ke-i, apabila sama berarti data ditemukan,
sebaliknya apabila sampai dengan akhir data tidak ada yang sama, berarti
data tidak ditemukan.
Algoritma Sequential Search
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 index data yang dicari, jika tidak data tidak
ditemukan.
Contoh Program Java
Pencarian Biner (Binary Search)
• Pencarian Biner (Binary Search) dapat dilakukan dengan syarat data
sudah dalam keadaan terurut, artinya jika data belum dalam keadaan
terurut, pencarian biner tidak dapat dilakukan.

• Prinsip 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 + posisis akhir) / 2. kemudian data yang
dicari dibandingkan dengan data tengah, jika lebih kecil proses dilanjutkan
tetapi dengan posisi akhir diganti dengan posisi tengah -1 demikian
seterusnya sampai data tengah sama dengan yang dicari.
Algoritma Binary Search
1. L0
2. R  N-1
3. Ketemu  false
4. Selama (L<=R) dan (tidak ketemu) kerjakan baris 5 sampai 8
5. m  (L+R)/2
6. Jika (Data[m] = x) maka ketemu  true
7. Jika (x < Data[m]) maka R  m-1
8. Jika (x < Data[m]) maka L  m+1
9. Jika (ketemu) maka m adalah index data yang dicari, jika tidak data tidak
ditemukan.
Contoh Program Java
Tugas Project
Buat Program dengan bhs Java untuk melakukan:
1. Entry data Array, jumlah data ditentukan diawal program dijalankan.
2. Tentukan Data yang akan dicari
3. Tentukan metode pencariannya (Sequential atau Binary Search)
4. Jika yang dipilih Sequential, maka pencarian dapat dilakukan.  hasil
pencariannya.
5. Jika yang dipilih Binary, maka lakukan dulu pengurutan data (metode
pengurutannya bebas/pilih salah satu dari tugas sebelumnya)
6. Jika data sudah terurut, pencarian Biner dapat dilakukan  hasil
pencariannya.
Kirim via email (source code java) ke: aseprm@dsn.ubharajaya.ac.id

Anda mungkin juga menyukai