Pencarian Searching
Pencarian Searching
Metode Pencarian
Linear Search
Tanpa Boolean
Dengan Sentinel Tanpa Sentinel
Dengan Boolean
Binary Search
Linear Search
Tanpa boolean tanpa sentinel: 1.Tidak menggunakan variabel boolean. 2.Tidak mempunyai tambahan elemen di akhir array. Tanpa boolean dengan sentinel: 1.Tidak menggunakan variabel boolean. 2.Mempunyai tambahan elemen di akhir array untuk menyimpan data cari apabila data cari tidak ditemukan.
Linear Search
Dengan boolean: 1.Menggunakan variabel boolean. 2.Menghasilkan nilai TRUE atau FALSE di akhir pencarian.
Algortima : Input (datacari) Ketemu := false I := 1 While (not ketemu and I = maks_array) do Begin if (datacari = bilangan[i]) then ketemu := true else I := I +1; End;
Binary Search
1. 2. Data harus terurut baik secara ascending atau descending. Mekanismenya adalah dengan cara membagi dua bagian yaitu bagian kiri (indeks terkecil/Ia) sampai ke indeks tengah dan bagian kanan mulai dari indeks tengah sampai indeks terbesar (Ib) 3. 4. 5. Indeks tengah (k) : (Ia+Ib) div 2. Jika data yang dicari lebih kecil dari data di indeks tengah maka pencarian dilanjutkan ke bagian kiri. Jika data yang dicari lebih besar dari data di indeks tengah maka pencarian dilanjutkan ke bagian kanan.
Contoh :
Di bawah ini adalah kuncikunci carilah kunci 39 dengan mengunakan algorithm Binary Search. [13, 16, 18, 27, 28, 29, 38, 39, 53]. 1 2 3 4 5 6 7 8 9 File ini dinamakan File Sequential (secara berurutan). Cara penyelesaian. Bila di cari kunci 39 maka ; terendah = 1, dan tertinggi = 9, maka 1 + 9 = 10 , lalu 10 / 2 = 5. Nomor urut 5, adalah kunci 28 , tapi 28 < 39, [13, 16, 18, 27, 28, 29, 38, 39, 53]. maka terendah = 5 , dan tertinggi = 9, maka : 5 + 9 = 14 14 / 2 = 7. Nomor urut 7 adalah 38 , tapi 38 < 39, [13, 16, 18, 27, 28, 29, 38, 39, 53]. maka terendah = 8, dan tertinggi = 9, (karena mid + 1 jadi 7+1=8) maka : 8 + 9 = 17 17 / 2 = 8,5 => 8,5 8 Note: kl mengambil kebawah, haruskonsisten untuk jawaban selanjutnya jika ada kasus yg sama juga harus kebawah Nomor urut 8 adalah kunci 39 , dimana kunci 39 = 39. Ketemu pada nomor urut ke 8. [13, 16, 18, 27, 28, 29, 38, 39, 53]
Latihan
Buatkan Program untuk mengimplementasikan pencarian dengan Linear dan Binary!