1 / 24

Searching

Searching. Struktur Data. Searching. Linier Search. Mencari dari data pertama sampai data terakhir Pencarian selesai jika ketemu atau sudah habis. Searching. Liniear Search. 7. Angka yang dicari :. Angka yang ke 1 = 7 ?. Tidak. If Angka[1] = ygDicari then. Searching.

Download Presentation

Searching

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Searching Struktur Data

  2. Searching Linier Search • Mencari dari data pertama sampai data terakhir • Pencarian selesai jika ketemu atau sudah habis

  3. Searching Liniear Search 7 Angka yang dicari : Angka yang ke 1 = 7 ? Tidak If Angka[1] = ygDicari then

  4. Searching Liniear Search 7 Angka yang dicari : Angka yang ke 2 = 7 ? Tidak If Angka[2] = ygDicari then

  5. Searching Liniear Search 7 Angka yang dicari : Angka yang ke 3 = 7 ? Tidak If Angka[3] = ygDicari then

  6. Searching Liniear Search 7 Angka yang dicari : Angka yang ke 4 = 7 ? Tidak If Angka[4] = ygDicari then

  7. Searching Liniear Search 7 Angka yang dicari : Angka yang ke 5 = 7 ? Tidak If Angka[5] = ygDicari then

  8. KETEMU? • Mana angka 7 ? • Setelah dicari sampai habis ternyata tidak ada

  9. Kesimpulan • Ada 5 perintah IF If Angka[1] = ygDicari then If Angka[2] = ygDicari then If Angka[3] = ygDicari then If Angka[4] = ygDicari then If Angka[5] = ygDicari then

  10. Disederhanakan • Berapa lama pencarian dilakukan • Manusia ingin yang tercepat For i := 1 to 5 do begin If Angka[i] = ygDicari then Ketemu = True end

  11. Searching Binary Search • Data angka harus urut (kecil kebesar, atau sebaliknya) • Data dibandingkan dengan data yang ditengah ( Angka[NT] ) • NT = (BB + BA) / 2 • Pencarian selesai jika ketemu atau BA < BB

  12. Searching Binary Search 7 Angka yang dicari : BB = 1 = 5 BA NT = (BB + BA) / 2 = ( 1 + 5 ) / 2 = 3

  13. Searching Binary Search 7 Angka yang dicari : BB = 1 = 5 BA Angka yang ke 3 = 7 ? Tidak NT = (BB + BA) / 2 = ( 1 + 5 ) / 2 = 3 Jika Angka yang dicari > Angka ke 3 maka BB = NT + 1 Sebaliknya BA = NT - 1

  14. Searching Binary Search 7 Angka yang dicari : BB = 1 = 5 BA Angka yang ke 3 = 7 ? Tidak NT = (BB + BA) / 2 = ( 1 + 5 ) / 2 = 3 Jika Angka yang dicari > Angka ke 3 maka BB = NT + 1 Sebaliknya BA = NT - 1

  15. Searching Binary Search 7 Angka yang dicari : BB = 4 = 5 BA NT = (BB + BA) / 2 = ( 4 + 5 ) / 2 = 4.5 = 5

  16. Searching Binary Search 7 Angka yang dicari : BB = 4 = 5 BA Angka yang ke 5 = 7 ? NT = (BB + BA) / 2 = ( 4 + 5 ) / 2 = 4.5 = 5

  17. Searching Binary Search 7 Angka yang dicari : BB = 4 = 5 BA Angka yang ke 5 = 7 ? Tidak NT = (BB + BA) / 2 = ( 4 + 5 ) / 2 = 4.5 = 5 Jika Angka yang dicari > Angka ke 5 maka BB = NT + 1 Sebaliknya BA = NT - 1

  18. Searching Binary Search 7 Angka yang dicari : BB = 4 = 5 BA Angka yang ke 5 = 7 ? Tidak NT = (BB + BA) / 2 = ( 4 + 5 ) / 2 = 4.5 = 5 Jika Angka yang dicari > Angka ke 5 maka BB = NT + 1 Sebaliknya BA = NT - 1

  19. Searching Binary Search 7 Angka yang dicari : BB = 4 = 4 BA NT = (BB + BA) / 2 = ( 4 + 4 ) / 2 = 4

  20. Searching Binary Search 7 Angka yang dicari : BB = 4 = 4 BA Angka yang ke 4 = 7 ? Tidak NT = (BB + BA) / 2 = ( 4 + 4 ) / 2 = 4 Jika Angka yang dicari > Angka ke 4 maka BB = NT + 1 Sebaliknya BA = NT - 1

  21. Searching Binary Search 7 Angka yang dicari : BB = NT + 1 = 5 BA = 4 BA Angka yang ke 4 = 7 ? Tidak NT = (BB + BA) / 2 = ( 4 + 4 ) / 2 = 4 Jika Angka yang dicari > Angka ke 4 maka BB = NT + 1 Sebaliknya BA = NT - 1 Karena BA < BB maka pencarian selesai Dengan hasil tidak ditemukan

  22. Selengkapnya While (BB <= BA) and NOT Ketemu do NT = (BB + BA) / 2 if ygDicari = Angka[NT] then Ketemu = True else if ygDicari > Angka[NT] then BB = NT + 1 else BA = NT – 1 wend

  23. Kesimpulan • Lebih cepat ½ kali lipat • Tapi data harus diurutkan terlebih dahulu

  24. Latihan • Datanya 129, 184, 80, 106, 822, 885 • Diurutkan : 80, 106, 129, 184, 822, 885 • Yang dicari 100

More Related