Ketika
menggunakan array untuk memecahkan suatu permasalahan di dalam program, mungkin
suatu saat kita akan mencari elemen tertentu di dalam array. Hail ini sering
dilakukan dengan cara menggunakan suatu kunci pencarian dan membandingkan semua
elemen yang ada dalam array yang digunakan. Proses pencarian suatu elemen di
dalam array disebut searching.
Ada 2 macam pencarian yang akan dibahas
dalam buku ini yaitu pencarian sekuansial (sequential searching) dan pencarian
biner (binary searching). Perbedaan terletak pada keadaan suatu elemen atau
data yang ada pada suatu array. Pencarian sekuensial digunakan apabila data
dalam keadaan acak atau tidak urut. Sedangkan pencarian biner digunakan pada
data yang sudah dalam keadaan urut.
- Sequential searching
Pencarian sekuensial atau sering disebut juga
pencarian linier menggunakan prinsip sebagai berikut : data yang ada pada suatu
array dibandingkan satu persatu dengan data yang dicari.
Pencarian ini dilakukan dengan melakukan suatu
pengulangan dari 1 sampai semua data yang ada. Pada setiap kali pengulangan,
dibandingkan data yang posisinya ke-I dengan data yang dicari atau dimaksud.
Apabila sama, maka data tersebut telah ditemukan dan proses pengulangan
dihentikan. Sebaliknya, kalau sampai pengulangan selesai dan data yang dicari
tidak ditemukan, maka data tersebut tidak ada.
Data
yang akan dicari adalah 1, misal X = 1
Pertama
kita membandingkan X dengan nilai pertama 17, jika nilai yang dibandingkan
dengan X tidak sama maka dilanjutkan ke nilai berikutnya yaitu 57, 2, 1 (nilai
ditemukan pada indek ke 4)
o
Contoh program
sequential search :
Bila
program diatas dijalankan, akan muncul hasil :
- Binary searching
Pencarian biner adalah metode pencarian suatu data
atau elemen di dalam suatu array dengan kondisi data dalam keadaan urut.
Prinsip dari pencarian biner dapat dijelaskan sebagai
berikut : mula-mula diambil posisi awal=1 dan posisi akhir=N, kemudian dicari
posisi tengah dengan rumus (posisi awal+posisi akhir)/2. Kemudian data yang
dicari dibandingkan dengan data tengah. Jika lebih kecil, proses dilakukan
kembali tetapi dalam hal ini posisi akhir=posisi tengah-1. Jika lebih besar,
proses dilakukan kembali tetapi posisi awal=posisi tengah+1.
Langkah-langkah untuk metode binary Search :
Langkah-langkah untuk metode binary Search :
- Urutkan data dari indeks 0 sampai n-1 (kanan ke kiri) apakah ascending atau descending
- Cari posisi tengah pada data (posisi awal (indeks ke-0) + posisi akhir (indeks ke-n) / 2), misalkan jika
- saat membagi mendapat hasil 9,5 maka abaikan ,5 gunakan 9
- Bandingkan data yang dicari dengan data ditengah
- Jika lebih kecil, maka pencarian dimulai dari posisi awal adalah posisi tengah -1
- Jika lebih besar, maka pencarian dimulai dari posisi awal adalah posisi tengah +1
- Jika data sama berarti data ditemukan
Misalkan ada 9 data terurut secara
ascending X[9] = { 12, 17, 111, 116, 121, 125, 126, 131, 190}
carilah data X = 126
carilah data X = 126
- Karena data sudah diurutkan maka langsung saja cari posisi tengah
Posisi awal + posisi akhir / 2
- Bandingkan data yang dicari X=126 dengan data yang ditenganh 121
126>121 maka posisi tengah + 1 (langkah ke 5) - Abaikan data yang berada di kiri, karena posisi tengah +1 maka posisi awal dimulai dari indeks ke 5 dan posisi akhir indeks ke 8
- Ulangi langkah ke 2, posisi awal + posisi akhir /2
(5 + 8) / 2 = 6,5 abaikan ,5. Jadi posisi tengan adalah indeks ke 6 - Bandingkan x=126 dengan data tengah 126
126 = 126 ,
data yang dicari sama dengan data yang berada di posisi tengah. Jadi data ada
di indeks ke 6.
o
Contoh program
binary search :
Bila program diatas dijalankan,
akan muncul hasil :
Itulah penjelasan mengenai materi searching, jika ada yang perlu di tanyakan silahkan hubungi ke email saya atau bisa langsung melalui kolom komentar dibawah. Terima Kasih Telah Berkunjung.
Tidak ada komentar:
Posting Komentar