170 likes | 391 Views
Searching. Algoritma dan Struktur Data. Daniel Riano Kaparang. Searching.
E N D
Searching Algoritma dan Struktur Data Daniel RianoKaparang
Searching • Pencarian data seringjugadisebut table look-up atau storage and retrieval information adalahsuatuprosesuntukmengumpulkansejumlahinformasididalampengingatkomputerdankemudianmencarikembaliinformasi yang diperlukansecepatmungkin. • Contohpencarian: • Pencarian Data : katadalamkamus, nomortelepondalambukutelepon. • Editing Data • Penyisipan Data • Find and Replace
MetodePencarian • Sequential Searching • Binary Searching
Sequential Searching • Pencarianberurutanseringdisebutpencarian linear merupakanmetodepencarian yang paling sederhana. • Prinsippencarian: Data yang adadibandingkansatu per satusecaraberurutandengan yang dicarisampai data tersebutditemukanatautidakditemukan. • Padakasus yang paling buruk, untuk N elemen data harusdilakukanpencariansebanyak N kali pula.
Algoritma Sequential Searching 1. i ← 0 2. ditemukan ← false 3. Selama (tidak ditemukan) dan (i <= N) kerjakan baris 4 4. Jika (Data[i] = x) maka ditemukan ← true, jika tidak i ← i + 1 5. Jika (ditemukan) maka i adalah indeks dari data yang dicari, jika tidak data tidak ditemukan.
Algoritma Sequential Searching Proses searching
Binary Searching • Syaratpencarian: data sudahurut, jika data belumurutpencariantidakdapatdilakukan. • Contoh: Misalnya saat ingin mencari suatu kata dalam kamus. • Mula-muladiambil : • posisiawal 0danposisiakhir = N - 1, • kemudiandicariposisi data tengahdenganrumus (posisiawal + posisiakhir) / 2. • Kemudian data yang dicaridibandingkandengan data tengah. • Jikalebihkecil, prosesdilakukankembalitetapiposisiakhirdianggapsamadenganposisitengah –1. • Jikalebihbesar, prosesdilakukankembalitetapiposisiawaldianggapsamadenganposisitengah + 1.Demikianseterusnyasampai data tengahsamadengan yang dicari.
Contoh Binary Searchingcariangka 17 N=10 N-1 = 9 • Misalinginmencari data 17 padakumpulan data: • Mula-mula dicari data tengah, dengan rumus (0 + 9) / 2 = 4. • Berarti data tengahadalah data ke-4, yaitu 15. Data yang dicari, yaitu 17, dibandingkandengan data tengahini. • Karena 17 > 15, berartiprosesdilanjutkantetapi kali iniposisiawaldianggapsamadenganposisitengah + 1 atau 5. 9 0 4
… • Data tengah yang baru didapat dengan rumus (5 + 9) / 2 = 7. Berarti data tengah yang baru adalah data ke-7, yaitu 23. • Data yang dicari yaitu 17 dibandingkan dengan data tengah ini. Karena 17 < 23, berarti proses dilanjukkan tetapi kali ini posisi akhir dianggap sama dengan posisi tengah -1 atau 6. 5 7 9
… • Data tengah yang barudidapatdenganrumus (5 + 6) / 2 = 5. Berartidata tengah yang baruadalah data ke-5, yaitu 17. • Data yang dicaridibandingkandengan data tengahinidanternyatasama. Jadi data ditemukanpadaindeks ke-5. • Pencarianbineriniakanberakhirjika data ditemukanatauposisiawallebihbesardaripadaposisiakhir. • Jikaposisisudahlebihbesardaripadaposisiakhirberarti data tidakditemukan.
Contohcariangka 16 9 0 4 Cari angka 16 : 16>15 maka posisi awal dianggap sama dengan posisi tengah + 1. 5 7 9 awal tengah akhir 16<23 maka posisi akhir dianggap sama dengan posisi tengah –1. 5 6 Awal=tengah akhir
5 6 Awal=tengah akhir 16<17 maka posisi akhir dianggap sama dengan posisi tengah –1. 4 5 akhir awal Disini dapat dilihat bahwa posisi awal lebih besar daripada posisi akhir, yang artinya data tidak ditemukan.
Algoritma Binary Searching 1. L ← 0 2. R ← N – 1 3. ditemukan ← false 4. Selama (L <= R) dan (tidak ditemukan) kerjakan baris 5 sampai dengan 8 5. m ← (L + R) / 2 6. Jika (Data[m] = x) maka ditemukan ← true 7. Jika (x < Data[m]) maka R ← m – 1 8. Jika (x > Data[m]) maka L ← m + 1 9. Jika (ditemukan) maka m adalah indeks dari data yang dicari, jika tidak data tidak ditemukan.
Algoritma Binary Searching Proses searching
Kesimpulan • Algoritma pencarian berurutan digunakan untuk mencari data pada sekumpulan data atau rekaman yang masih acak. • Algoritma pencarian biner digunakan untuk mencari data pada sekumpulan data atau rekaman yang sudah dalam keadaan terurut.
TugasTake Home : Terdapatderetangkasebagaiberikut : 0,2,4,6,8,9,12,18,20,23,29,32,47,79,85,90 Jelaskanproses yang terjadimenurutAlgoritma Binary Searchingketikaakanmencariangka 23 dan 30 !! Dikirimkekaparangdr@gmail.com Subject: TUGAS_ASD_<KELAS>_NIM Paling lambat 1 harisebelumpertemuanberikutnya!