Pencarian/ Searching adalah proses mencari suatu data di tentukan suatu kumpulannya, misal pada suatu array , linked-list, file, atau pada kumpulan data yang lain.
Algoritma pencarian
- Pencarian Beruntun ( Linear Searching)
Ide Pencarian : Elemen yang dicari dibandingkan dengan element-element yang ada pada kumpulan data tempat pencarian satu persatu mulai dari element pertama.
- Jika yang di inginkan berupa komentar bahwa data x di temukan atau tidak :
- Jika hasil yang di inginkan berupa status bahwa data x ditemukan atau tidak :
- Jika hasil yang di inginkan berupa indeks data x pada array A :
- Pencarian Biner/ Bagi Dua ( Binary Searching)
- Jika yang di inginkan berupa komentar bahwa data x di temukan atau tidak :
- Jika hasil yang di inginkan berupa status bahwa data x ditemukan atau tidak :
- Jika hasil yang di inginkan berupa indeks data x pada array A :
Algoritma : CARI ( A, N, x ) {Mencari data x pada array A yang elemennya sebanyak N} read (x) I ← 1 while x <> A(I) AND <= N DO I ← I + 1 end
Pengaturan Hasil (Output)
Sesuai permasalahan pada pencarian yang di kemukakan di atas maka output yang di inginkan dari proses pencarian tersebut bisa disesuaikan dengan permasalahan di atas, yaitu :
if I <= N then write (x,' Found') else write(x,' Not Found') end
if I <= N then Ketemu ← TRUE else Ketemu ← FALSE end
if I <= N then Hasil ← 1 else Hasil ← 0 { Jika tdk di temukan di beri variabel 0 } end
Ide Pencarian : Elemen yang dicari dibandingkan dengan elemen tengah dari kumpulan data pencarian. Jika sama maka data yang dicari ditemukan, jika tidak sama (belum ditemukan) maka data yang dicari itu dibandingkan lagi dengan elemen tengah tersebut.
Jika lebih kecil maka pencarian dilanjutkan kebagian array sebelah kiri (bagian yang lebih kecil dari elemen tengah). Sebaliknya jika lebih besar maka pencarian dilanjutkan di sebelah kanan elemen tengah. Ulangi langkah tersebut sampai di temukan atau kumpulan data tidak bisa dibagi lagi menjadi dua bagian.
Algoritma : CARI ( A, N, x ) {Mencari data x pada array A yang elemennya sebanyak N} read (x) a ← 1 b ← N Ketemu ← FALSE while ketemu and a < b do T ← (a+b) mod 2 if x = A(T) then Ketemu TRUE ← TRUE else if x < A(T) then ← T - 1 else a ← T + 1 end
Pengaturan Hasil (Output)
if Ketemu = TRUE then write (x,' Found') else write(x,' Not Found') end
if Ketemu = TRUE then Ketemu ← TRUE else Ketemu ← FALSE end
if Ketemu = TRUE then Hasil ← T else Hasil ← 0 { Jika tdk di temukan di beri variabel 0 } end
Related Post
Kolom Komentar