Searching (binary search dan sequental search)
SEARCHING
a.
Definisi Searching
Searching adalah mencari data
yang dibutuhkan. Searching adalah
pemrograman bisa dilakukan untuk mencari data yang ada di dalam memori
komputer.
b.
Definisi Binary
Search
Binary search
adalah metode pencarian suatu data atau elemen di dalam suatu array dengan
kondisi data dalam keadaan terurut. Proses pencarian binary search hanya dapat
dilakukan pada sekumpulan data yang sudah diurutkan terlebih dahulu.
c.
Prinsip Binary Search
Prinsip dari binary search
terhadap N elemen dapat dijelaskan seperti berikut:
1.
Tentukan posisi awal = 0 dan posisi akhir = N-1.
2.
Hitung posisi tengah = (posisi awal + posisi
akhir)/2.
3.
Bandingkan data yang dicari dengan elemen posisi
tengah.
4.
Jika sama maka catat posisi dan cetak kemudian
berhenti.
5.
Jika lebih besar maka akan dilakukan pencarian
kembali kebagian kanan dengan posisi awal
6.
posisi tengah +1 dan posisi akhir tetap kemudian
ulangi mulai poin 2.
7.
Jika lebih kecil maka akan di lakukan pencarian
kembali ke bagian kiri dengan nilai posisi awal.
8.
tetap dan nilai posisi akhir = posisi tengah-1 kemudian ulangi mulai poin
2.
Misalkan kita mempunyai sederatan
data dalam array nilai sebanyak 10 elemen dan akan dilakukan pencarian data 87
terhadap array.
Nilai[0..9] =
12,45,23,87,90,55,15,25,40,21
Urutkan elemen array secara
menaik, sehingga diperoleh:
Nilai[0..9] =
12,15,21,23,25,40,45,55,87,90
Data yang akan dicari =
87(bilangan)
Tentukan nilai awal = 0, akhir =
N-1=9
Hitung tengah = (9+0)/2=4
Bandingkan Bilangan <
Nilai[tengah]->87=25->false
Bandingkan Bilangan <
Nilai[tengah]->87<25->false
Bandingkan Bilangan <
Nilai[tengah]->87>25->true maka pencarian dilakukan ke sebelah kanan
dengan nilai awal = tengah+1 = 5
Karena awal masih lebih kecil
dari akhir maka ulangi kembali mulai menghitung tengah
Hitung tengah = (9+5)/2=7
Bandingkan Bilangan < Nilai[tengah] ->87=55->false
Bandingkan Bilangan <
Nilai[Tengah]->87<55->false
Bandingkan Bilangan <
Nilai[tengah]->87>55->true maka pencarian dilakukan ke sebelah kanan
dengan nilai awal = tengah+1 = 8
Karena awal masih lebih kecil
dari akhir maka ulangi kembali mulai menghitung tengah
Hitung tengah = (9+8)/2 = 8
Bandingkan Bilangan <
Nilai[tengah]->87=87->true
Karena sudah di tentukan hasilnya
maka proses pencarian berhenti.
Program Binary Search:
Hasil Running:
Flowchart:
d.
Definisi Sequential
Search
Sequential search adalah suatu teknik
pencarian data dalam array (1 dimensi) yang akan menelusuri semua elemen-elemen
array dari awal sampai akhir, dimana data-data tidak perlu diurutkan terlebih
dahulu. Pencarian berurutan menggunakan prinsip sebagai berikut : data yang ada
dibandingkan satu per satu secara berurutan dengan yang dicari sampai data
tersebut ditemukan atau tidak ditemukan.
e.
Cara Kerja Sequential Search
Cara Kerja Sequential
Search, sebagai berikut:
a.
Data Array = { 21, 4, 94, 14, 1, 9, 2}
b.
Elemen
kunci yang di cari = 14
c.
Maka elemen Data Array : 10, 8, 11, 20, 27, 99,
21, 5, 41, 17
d.
Elemen yang di cari : 99
e.
Maka elemen yang di periksa adalah : 21, 4, 94,
14 (Data 14 di temukan)
f.
Index larik yang di kembalikan : idx : 3
g.
Setelah elemen kunci yang di cari ketemu maka
pencarian akan berhenti di sini tanpa memeriksa elemen setelah elemen 14.
f.
Kelebihan dan Kekurangan Sequential Search
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.
Program:
Hasil Running:
Komentar
Posting Komentar