33
Algoritma Pencarian (Searching) ALGORITMA DAN PEMROGRAMAN [IS6110102] Koordinator Mata Kuliah : Fathushahib, S.Kom., M.Kom Tim Dosen: Yudha Saintika, S.T., M.T.I

Algoritma Pencarian (Searching) - yudha.dosen.ittelkom-pwt ...yudha.dosen.ittelkom-pwt.ac.id/wp-content/uploads/sites/73/2018/10/...•Hasil atau keluaran dari persoalan pencarian

  • Upload
    vokiet

  • View
    242

  • Download
    4

Embed Size (px)

Citation preview

Page 1: Algoritma Pencarian (Searching) - yudha.dosen.ittelkom-pwt ...yudha.dosen.ittelkom-pwt.ac.id/wp-content/uploads/sites/73/2018/10/...•Hasil atau keluaran dari persoalan pencarian

Algoritma Pencarian (Searching)

ALGORITMA DAN PEMROGRAMAN [IS6110102]

Koordinator Mata Kuliah :Fathushahib, S.Kom., M.KomTim Dosen: Yudha Saintika, S.T., M.T.I

Page 2: Algoritma Pencarian (Searching) - yudha.dosen.ittelkom-pwt ...yudha.dosen.ittelkom-pwt.ac.id/wp-content/uploads/sites/73/2018/10/...•Hasil atau keluaran dari persoalan pencarian

Sub-Capaian Pembelajaran MK

“Mahasiswa mampu menerapkan algoritma pencariandalam program.”

Page 3: Algoritma Pencarian (Searching) - yudha.dosen.ittelkom-pwt ...yudha.dosen.ittelkom-pwt.ac.id/wp-content/uploads/sites/73/2018/10/...•Hasil atau keluaran dari persoalan pencarian

Peta Capaian Pembelajaran MK

We Are Here !!!

Mid Test

Page 4: Algoritma Pencarian (Searching) - yudha.dosen.ittelkom-pwt ...yudha.dosen.ittelkom-pwt.ac.id/wp-content/uploads/sites/73/2018/10/...•Hasil atau keluaran dari persoalan pencarian

Agenda

•Pendahuluan

•Spesifikasi Persoalan Pencarian

•Algoritma Pencarian Beruntun

•Algoritma Pencarian BagiDua

Page 5: Algoritma Pencarian (Searching) - yudha.dosen.ittelkom-pwt ...yudha.dosen.ittelkom-pwt.ac.id/wp-content/uploads/sites/73/2018/10/...•Hasil atau keluaran dari persoalan pencarian

PENDAHULUAN

• Pencarian (searching) merupakan proses yang fundamental dalampengolahan data. Proses pencarian adalah menemukan nilai (data)tertentu di dalam sekumpulan data yang bertipe sama (baik bertipedasar atau bertipe bentukan), Sebagai contoh, untuk mengubah(update) data tertentu, langkah pertama yang harus dilakukan adalahmencari keberadaan data tersebut didalam kumpulannya.

• Jika data yang dicari ditemukan, maka data tersebut dapat diubahnilainya dengan data yang baru. Aktivitas awal yang sama jugadilakukan pada proses penambahan (insert) data baru. Prosespenambahan data dimulai dengan mencari apakah data yang akanditambahkan sudah terdapat di dalam kumpulan. Jika sudah ada danmengasumsikan tidak boleh ada duplikasi data maka data tersebuttidak perlu ditambakan, tetapi jika belum ada, maka tambahkan.

Page 6: Algoritma Pencarian (Searching) - yudha.dosen.ittelkom-pwt ...yudha.dosen.ittelkom-pwt.ac.id/wp-content/uploads/sites/73/2018/10/...•Hasil atau keluaran dari persoalan pencarian

SPESIFIKASI PERSOALAN PENCARIAN

• Hasil atau keluaran dari persoalan pencarian dapat bermacam-macam, bergantung pada spesifikasi rinci dari persoalan tersebut, misalnya:

Page 7: Algoritma Pencarian (Searching) - yudha.dosen.ittelkom-pwt ...yudha.dosen.ittelkom-pwt.ac.id/wp-content/uploads/sites/73/2018/10/...•Hasil atau keluaran dari persoalan pencarian

SPESIFIKASI PERSOALAN PENCARIAN

if ketemu then

write(x,‘ditemukan’)

else

write(x,‘tidak ditemukan’)

end if

Page 8: Algoritma Pencarian (Searching) - yudha.dosen.ittelkom-pwt ...yudha.dosen.ittelkom-pwt.ac.id/wp-content/uploads/sites/73/2018/10/...•Hasil atau keluaran dari persoalan pencarian

SPESIFIKASI PERSOALAN PENCARIAN

Page 9: Algoritma Pencarian (Searching) - yudha.dosen.ittelkom-pwt ...yudha.dosen.ittelkom-pwt.ac.id/wp-content/uploads/sites/73/2018/10/...•Hasil atau keluaran dari persoalan pencarian

JENIS-JENIS ALGORITMA PENCARIAN

ALGORITMAPENCARIAN

Bagidua(binary search)

Beruntun(sequential search)

Page 10: Algoritma Pencarian (Searching) - yudha.dosen.ittelkom-pwt ...yudha.dosen.ittelkom-pwt.ac.id/wp-content/uploads/sites/73/2018/10/...•Hasil atau keluaran dari persoalan pencarian

ALGORITMA PENCARIAN BERUNTUN

•Algoritma pencarian yang paling sederhana, yaitumetode pencarian beruntun (sequential search).Nama lain algoritma pencarian beruntun adalahpencarian lurus (linear search).

•Pada dasarnya, algoritma pencarian beruntunadalah proses membandingkan setiap elemen lariksatu per satu secara beruntun, mulai dari elemenpertama, sampal elemen yang dlcari ditemukan,atau seluruh elemen sudah diperiksa.

Page 11: Algoritma Pencarian (Searching) - yudha.dosen.ittelkom-pwt ...yudha.dosen.ittelkom-pwt.ac.id/wp-content/uploads/sites/73/2018/10/...•Hasil atau keluaran dari persoalan pencarian

ALGORITMA PENCARIAN BERUNTUN

Misalkan nilai yang dicari adalah: x = 21Elemen yang dibandingkan (berturut-turut): 13, 16, 14, 21 (ditemukan!)Indeks larik yang dikemballkan: idx = 4

Misalkan nilai yang dicari adalah: x = 13Elemen yangdibandingkan (berturut-turut): 13 (ditemukan!)lndeks larik yang dikembah'kan: idx = 1

Misalkan nilai yang dicari adalah: x = 100Elemen yang dibandingkan (berturut-turut): 13, 16, 14, 21, 76, 15 (tidakditemukan!)Indeks larik yang dikemballkan: idx = -1

Page 12: Algoritma Pencarian (Searching) - yudha.dosen.ittelkom-pwt ...yudha.dosen.ittelkom-pwt.ac.id/wp-content/uploads/sites/73/2018/10/...•Hasil atau keluaran dari persoalan pencarian

ALGORITMA PENCARIAN BERUNTUN (VERSI 1)

• Pada algoritma versi pertama, aksi pembandingan dilakukan di luarbadan pengulangan.

• Hasil pencarian 1: sebuah peubah Boolean yang bernilai true bila xditemukan atau bernilai false bila x tidak ditemukan.

Page 13: Algoritma Pencarian (Searching) - yudha.dosen.ittelkom-pwt ...yudha.dosen.ittelkom-pwt.ac.id/wp-content/uploads/sites/73/2018/10/...•Hasil atau keluaran dari persoalan pencarian

PROSEDUR PENCARIAN BERUNTUN(HASIL PENCARIAN 1)

Page 14: Algoritma Pencarian (Searching) - yudha.dosen.ittelkom-pwt ...yudha.dosen.ittelkom-pwt.ac.id/wp-content/uploads/sites/73/2018/10/...•Hasil atau keluaran dari persoalan pencarian

PEMANGGILAN PROSEDUR(HASIL PENCARIAN 1)

Page 15: Algoritma Pencarian (Searching) - yudha.dosen.ittelkom-pwt ...yudha.dosen.ittelkom-pwt.ac.id/wp-content/uploads/sites/73/2018/10/...•Hasil atau keluaran dari persoalan pencarian

PROSEDUR BACA LARIK

Page 16: Algoritma Pencarian (Searching) - yudha.dosen.ittelkom-pwt ...yudha.dosen.ittelkom-pwt.ac.id/wp-content/uploads/sites/73/2018/10/...•Hasil atau keluaran dari persoalan pencarian

PROSEDUR PENCARIAN BERUNTUN (HASIL PENCARIAN 2)

• Hasil pencarian 2: indeks elemen larik (idx) yang bernilai x. Jika x tidak ditemukan, maka nilai idx diisi dengan -1.

Page 17: Algoritma Pencarian (Searching) - yudha.dosen.ittelkom-pwt ...yudha.dosen.ittelkom-pwt.ac.id/wp-content/uploads/sites/73/2018/10/...•Hasil atau keluaran dari persoalan pencarian

ALGORITMA PENCARIAN BERUNTUN (VERSI 2)

• Versi 1 agak sulit dipahami bagi orang yang belum mahir menulisalgoritma. Oleh Karena itu dibuatlah versi 2 yang lebih mudahdipahami. Pada versi 2 ini instruksi pembandingan dilakukandidalam badan pengulangan. Kita memerlukan sebuah peubahBoolean yang akan berfungsi untuk menyatakan apakah x sudahditemukan. Misalkan peuabah tersebut bernama ketemu.

• Hasil pencarian 1: sebuah peubah Boolean yang bernilai true jika xditemukan atau bernilai false jika x tidak ditemukan.

Page 18: Algoritma Pencarian (Searching) - yudha.dosen.ittelkom-pwt ...yudha.dosen.ittelkom-pwt.ac.id/wp-content/uploads/sites/73/2018/10/...•Hasil atau keluaran dari persoalan pencarian

PROSEDUR PENCARIAN BERUNTUN (HASIL PENCARIAN 1)

Page 19: Algoritma Pencarian (Searching) - yudha.dosen.ittelkom-pwt ...yudha.dosen.ittelkom-pwt.ac.id/wp-content/uploads/sites/73/2018/10/...•Hasil atau keluaran dari persoalan pencarian

METODE PENCARIAN BERUNTUN DENGAN SENTINEL

• Jika pencarian bertujuan untuk menambahkan elemen baru setelahelemen terakhir larik, maka terdapat sebuah varian dari metodepencarian beruntun yang handal.

Page 20: Algoritma Pencarian (Searching) - yudha.dosen.ittelkom-pwt ...yudha.dosen.ittelkom-pwt.ac.id/wp-content/uploads/sites/73/2018/10/...•Hasil atau keluaran dari persoalan pencarian

ALGORITMA PENCARIAN BERUNTUN DENGAN SENTINEL

Page 21: Algoritma Pencarian (Searching) - yudha.dosen.ittelkom-pwt ...yudha.dosen.ittelkom-pwt.ac.id/wp-content/uploads/sites/73/2018/10/...•Hasil atau keluaran dari persoalan pencarian

KINERJA ALGORITMA PENCARIAN BERUNTUN

• Secara umum, algoritma pencarian beruntun berjalan lambat.Waktu pencarian sebanding dengan jumlah elemen larik. Misalkanlarik berukuran 11 elemen. Maka, pada kasus di mana x tidakterdapat di dalam larik atau x ditemukan pada elemen yang terakhir,kita harus melakukan perbandingan dengan seluruh elemen larik,yang berarti jumlah perbandingan yang terjadi sebanyak n kali.

• Kita katakan bahwa waktu pencarian dengan algoritma pencarianberuntun sebanding dengan n. Bayangkan bila larik berukuran100.000 buah elemen, maka kita harus melakukan perbandingansebanyak 100.000 buah elemen. Andaikan satu operasiperbandingan elemen larik membutuhkan waktu 0.01 detik, makauntuk 100.000 buah perbandingan diperlukan waktu sebesar 1000detik atau 16,7 menit.

Page 22: Algoritma Pencarian (Searching) - yudha.dosen.ittelkom-pwt ...yudha.dosen.ittelkom-pwt.ac.id/wp-content/uploads/sites/73/2018/10/...•Hasil atau keluaran dari persoalan pencarian

ALGORITMA PENCARIAN BAGIDUA

• Untuk kebutuhan pencarian dengan waktu yang lebih cepat makaterdapat sebuah algoritma yang handal. Algoritma ini disebut denganalgoritma pencarian bagidua atau pencarian biner.

• Sebenarnya dalam kehidupan sehari-hari kita sering menerapkanpencarian bagidua. Misalnya untuk mencari arti kata tertentudidalam kamus. Kita tidak perlu membuka kamus dari halaman awalsampai akhir. Namun kita mencarinya dengan cara membelah ataumembagi dua kamus tersebut.

Page 23: Algoritma Pencarian (Searching) - yudha.dosen.ittelkom-pwt ...yudha.dosen.ittelkom-pwt.ac.id/wp-content/uploads/sites/73/2018/10/...•Hasil atau keluaran dari persoalan pencarian

ALGORITMA PENCARIAN BAGIDUA

Page 24: Algoritma Pencarian (Searching) - yudha.dosen.ittelkom-pwt ...yudha.dosen.ittelkom-pwt.ac.id/wp-content/uploads/sites/73/2018/10/...•Hasil atau keluaran dari persoalan pencarian

ALGORITMA PENCARIAN BAGIDUA

Page 25: Algoritma Pencarian (Searching) - yudha.dosen.ittelkom-pwt ...yudha.dosen.ittelkom-pwt.ac.id/wp-content/uploads/sites/73/2018/10/...•Hasil atau keluaran dari persoalan pencarian
Page 26: Algoritma Pencarian (Searching) - yudha.dosen.ittelkom-pwt ...yudha.dosen.ittelkom-pwt.ac.id/wp-content/uploads/sites/73/2018/10/...•Hasil atau keluaran dari persoalan pencarian

PROSEDUR PENCARIAN BAGIDUA

Page 27: Algoritma Pencarian (Searching) - yudha.dosen.ittelkom-pwt ...yudha.dosen.ittelkom-pwt.ac.id/wp-content/uploads/sites/73/2018/10/...•Hasil atau keluaran dari persoalan pencarian

PROSEDUR PENCARIAN BAGIDUA

Page 28: Algoritma Pencarian (Searching) - yudha.dosen.ittelkom-pwt ...yudha.dosen.ittelkom-pwt.ac.id/wp-content/uploads/sites/73/2018/10/...•Hasil atau keluaran dari persoalan pencarian

PENCARIAN PADA LARIK TERSTRUKTUR

• Algoritma pencarian yang dibahas sebelumnya menggunakan larikdengan elemen-elemen yang bertipe sederhana. Pada sebagian besarkasus, elemen larik sering bertipe terstruktur.

• Contoh, misalkan M adalah sebuah larik yang elemennya menyatakannilai ujian seorang mahasiswa untuk suatu mata kuliah (MK) yang diaambil. Data setiap mahasiswa adalah NIM, nama mahasiswa, matakuliah yang diambil, dan nilai mata kuliah tersebut.

Page 29: Algoritma Pencarian (Searching) - yudha.dosen.ittelkom-pwt ...yudha.dosen.ittelkom-pwt.ac.id/wp-content/uploads/sites/73/2018/10/...•Hasil atau keluaran dari persoalan pencarian

Struktur Lojik dari Larik M (TabMhs)

Page 30: Algoritma Pencarian (Searching) - yudha.dosen.ittelkom-pwt ...yudha.dosen.ittelkom-pwt.ac.id/wp-content/uploads/sites/73/2018/10/...•Hasil atau keluaran dari persoalan pencarian

Solusi dengan Algoritma Pencarian Beruntun

Page 31: Algoritma Pencarian (Searching) - yudha.dosen.ittelkom-pwt ...yudha.dosen.ittelkom-pwt.ac.id/wp-content/uploads/sites/73/2018/10/...•Hasil atau keluaran dari persoalan pencarian

Solusi dengan Algoritma Pencarian BagiDua

Page 32: Algoritma Pencarian (Searching) - yudha.dosen.ittelkom-pwt ...yudha.dosen.ittelkom-pwt.ac.id/wp-content/uploads/sites/73/2018/10/...•Hasil atau keluaran dari persoalan pencarian

Kinerja Algoritma Pencarian BagiDua

Kita dapat melihat bahwa pada setiap kali proses pencarian, larikdibagi dua menjadi dua bagian yang berukuran sama. Pada kasusterburuk yaitu kasus x tidak terdapat di dalam larik atau x ditemukansetelah ukuran larik tinggal 1 elemen, larik akan dibagi sebanyak2log(n) kali, sehingga jumlah pembandingan yang dibutuhkan adalah2log(n) kali. Untuk 256 data misalnya, kasus menghasilkan pembagianlarik sebanyak 2log(256) = 8 kali. Bandingkan dengan metodepencarian beruntun yang pada kasus terburuk melakukanpembandingan sebanyak 256 kali.

Page 33: Algoritma Pencarian (Searching) - yudha.dosen.ittelkom-pwt ...yudha.dosen.ittelkom-pwt.ac.id/wp-content/uploads/sites/73/2018/10/...•Hasil atau keluaran dari persoalan pencarian