1. Pengertian Search Squensial dan Binary
·
Search squensial adalah teknik pencarian data dimana data
dicari secara urut dari depan ke belakang atau dari awal sampai akhir.
berdasarkan key yang di cari.
·
Search Binary (Pencarian Biner) dapat dilakukan jika data
sudah dalam keadaan urut. Dengan kata lain, apabila data belum dalam keadaan
urut, pencarian biner tidak dapat dilakukan. Dalam kehidupan sehari-hari,
sebenarnya kita juga sering menggunakan pencarian biner. Misalnya saat ingin
mencari suatu kata dalam kamus.
2. Proses Search Squensial
Prosesnya bisa dijelaskan
seperti berikut:
a.
Menentukan data yang dicari
b.
Membaca data array satu per satu secara sekuensial
c.
Mulai dari data pertama sampai dengan data terakhir, kemudian
data yang dicari tadi dibandingkan dengan masing-masing data yang ada di dalam
array.
·
Jika data yang dicari ditemukan maka kita dapat membuat
statement bahwa data telah temukan.
·
Jika data yang dicari tidak ditemukan maka kita dapat membuat
statement bahwa data telah ditemukan.
Sequential Searching
memiliki Kelebihan dan Kekurangan yaitu:
1.
Kelebihan Sequential Searching bisa dikatakan lebih
mudah dalam implementasinya dalam pemrograman.
2.
Kekurangannya jika data yang terdapat dalam suatu array itu
sangat banyak, maka akan diperlukan waktu yang lebih lama untuk membandingkan
data yang dicari dengan jumlah data yang sangat banyak dalam suatu array.
3. Prinsip Search Binary
1.
Mula-mula diambil posisi awal = 1 dan posisi akhir = N
2.
Cari posisi data tengah dengan rumus (posisi awal + posisi
akhir) / 2
3.
Data yang dicari dibandingkan dengan data tengah.
4.
Jika lebih kecil, proses dilakukan kembali tetapi posisi
akhir dianggap sama dengan posisi tengah –1.
5.
Jika lebih besar, proses dilakukan kembali tetapi posisi awal
dianggap sama dengan posisi tengah +1.
6.
Demikian seterusnya sampai data tengah sama dengan yang
dicari.
Untuk lebih
jelasnya, perhatikan contoh berikut. Misalkan kita ingin mencari 17 pada
sekumpulan data berikut :
1.
Mula–mula dicari data tengah, dengan rumus (1+ 9) / 2 = 5.
2.
Berarti data tengah adalah data ke-5, yaitu 15.
3.
Data yang dicari, yaitu 17, dibandingkan dengan data tengah
ini.
Karena 17 > 15,
berarti proses dilanjutkan tetapi kali ini posisi awal dianggap sama dengan
posisi tengah + 1 atau 6.
1.
Data tengah yang baru didapat dengan rumus (6 + 9) / 2 = 7.
Berarti data tengah yang baru adalah data ke-7, yaitu 23.
2.
Data yang dicari, yaitu 17 dibandingkan dengan data tengah
ini.
3.
Karena 17 < 23, berarti proses dilanjutkan tetapi kali ini
posisi akhir dianggap sama dengan posisi tengah – 1 atau 6.
1.
Data tengah yang baru didapat dengan rumus (6 + 6) / 2 = 6.
Berarti data tengah yang baru adalah data ke-6, yaitu 17.
2.
Data yang dicari dibandingkan dengan data tengah ini dan
ternyata sama. Jadi data ditemukan pada indeks ke-6.
3.
Bagaimana jika data yang dicari tidak ada, misalnya 16?
4.
Pencarian biner ini akan berakhir jika data ditemukan atau
posisi awal lebih besar dari posisi akhir.
5.
Jika posisi awal sudah lebih besar daripada posisi akhir
berarti data tidak ditemukan.
Untuk
lebih jelasnya perhatikan proses pencarian 16 pada data di atas. Prosesnya
hampir sama dengan pencarian 17. Tetapi setelah posisi awal = posisi akhir = 6,
proses masih dilanjutkan lagi dengan posisi awal = 6 dan posisi akhir = 5
Disini dapat dilihat
bahwa posisi awal lebih besar daripada posisi akhir, yang artinya data tidak
ditemukan.
contoh program :
hasil running :
Referensi :

Tidak ada komentar