12-searching

Download Report

Transcript 12-searching

PENCARIAN (SEARCHING)
PENGERTIAN SEARCHING
• Searching merupakan suatu proses pencarian data
pada sejumlah data yang ada.
• Setelah proses pencarian dilaksanakan, akan
diperoleh salah satu dari dua kemungkinan, yaitu
• data yang dicari ditemukan (successful)
• tidak ditemukan (unsuccessful).
TEKNIK SEARCHING
• Contoh teknik pencarian :
• pencarian sekuensial (sequential search)
• pencarian biner (binary search).
• Perbedaan dari dua teknik ini terletak pada keadaan data.
• Pencarian sekuensial digunakan apabila data dalam keadaan acak atau tidak
terurut.
• pencarian biner digunakan pada data yang sudah dalam keadaan urut.
Sequential Searching (Pencarian berurutan)
• Merupakan metode pencarian yang paling
sederhana.
• 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.
Lanjutan…
• Kemungkinan terbaik (best case) adalah jika data yang dicari
terletak di indeks array terdepan (elemen array pertama)
sehingga waktu yang dibutuhkan untuk pencarian data
sangat sebentar (minimal).
• Kemungkinan terburuk (worst case) adalah jika data yang
dicari terletak di indeks array terakhir (elemen array
terakhir) sehingga waktu yang dibutuhkan untuk pencarian
data sangat lama (maksimal).
Ilustrasi Sequential Searching
Mencari posisi data dengan nilai 3. key=3;
Data[4]=3 sama
dengan key=3 maka
data ditemukan
dan diberikan nilai
pengembalian i
(posisi) dan proses
dihentikan.
Pencarian Biner
(Binary Search)
• Salah satu syarat agar pencarian biner dapat
dilakukan adalah data sudah dalam keadaan urut.
Dengan kata lain, apabila data belum dalam
keadaan urut, pencarian biner tidak dapat
dilakukan.
• Contoh : saat ingin mencari suatu kata dalam kamus
Pencarian Biner
(Binary Search)
Prinsip dari pencarian biner dapat dijelaskan sebagai berikut :
• Data diambil dari posisi 1 sampai posisi akhir N
• Kemudian cari posisi data tengah dengan rumus:
(posisi awal + posisi akhir) / 2
• Kemudian data yang dicari dibandingkan dengan data yang di tengah, apakah
sama atau lebih kecil, atau lebih besar?
• Jika lebih besar, maka proses pencarian dicari dengan posisi awal adalah
posisi tengah + 1
• Jika lebih kecil, maka proses pencarian dicari dengan posisi akhir adalah
posisi tengah – 1
• Jika data sama, berarti ketemu.
Demikian seterusnya sampai data tengah sama dengan yang dicari.
Ilustrasi Binary Searching
Contoh Data:
Misalnya data yang dicari 17
Karena 17 > 15 (data tengah), maka: awal = tengah + 1
Karena 17 < 23 (data tengah), maka: akhir = tengah – 1
Karena 17 = 17 (data tengah), maka KETEMU!
KOMPLEKSITAS WAKTU
Sequential Search
Binary Search
Kasus terbaik
Tmin(n) = 1
Tmin(n) = 1
Kasus terburuk
Tmax(n) = n
Tmax(n) = 2log n
Kasus rata-rata
Tavg(n) = (n+1)/2
100 elemen
Sequential Search
(average)
Binary Search
(worst case)
1000 elemen
50
2log
100=7
10.000 elemen
500
2log
1000=14
5000
2log
1000=20