Cara membuat Linear Search dan Binary Search
Sebelum saya membuat Linear Search dan Binary Search, apa yang di maksud dengan pencarian atau searching, Linear Search, dan Binary Search?
Pengertian Pencarian (Searching)
Pencarian atau Searching adalah prosess yang sangat fundamental dalam pengolahan data. Pencarian adalah proses menemukan nilai (data) tertentu di dalam sekumpulan data yang terstruktur.
Contoh kecil implementasi pencarian adalah ketika akan melakukan proses penambahan data padda sebuah basis data ataupun akan melakukan proses update data pada basis data.
Pengertian Linear Search
Linear Search adalah algoritma pencarian nilai tertentu pada sebuah array/list. Algoritma pencarian ini melibatkan pemeriksaan nilai elemen pada list satu demi satu dari ujung list. Karena mekanisme kerjanya, algoritma ini juga dikenal dengan nama lain sequential search.
Contoh seperti gambar dibawah ini
Untuk pencarian Linear search itu adalah dari indeks awal hingga akhir.
Contoh Linear Search dalam pemrograman
Pada sebuah list angka L yang terdiri dari [3, 9, 11, 12, 15, 17, 23, 31, 35], dilakukan pencarian nilai X = 31. Melalui iterasi menggunakan perulangan for, nilai tersebut ditemukan pada indeks ke-7. Maka hasil outputnya adalah "Found = True pada index 7."
Pengertian Binary Search
Binary Search adalah sebuah teknik pencarian data dengan cara berulang kali membagi separruh dari jumlah data yang dicari sampai sehingga memperkecil lokasi pencarian menjadi satu data. Dengan teknik ini kita akan membuang setengah dari jumlah data.
Untuk pencarian pada Binary Seary adalah dari indeks atau nilai ditengah.
Contoh Binary Search dalam pemrograman
Seperti kode diatas, terdapat sebuah list yang disusun secara terurut bernama L. Selain itu, terdapat variabel i dan j yang menunjukkan indeks awal dan akhir dari list. Variabel k dihitung sebagai indeks tengah dari list. Selain itu, terdapat variabel x yang merupakan elemen yang dicari dalam list.
Selanjutnya, terdapat sebuah fungsi bernama searchdiv yang digunakan untuk mencari elemen x dalam list L. Pertama-tama, fungsi ini memeriksa apakah panjang list L kurang dari 1. Jika iya, maka fungsi mengembalikan nilai False karena tidak mungkin ada elemen yang dicari dalam list kosong.
Selanjutnya, fungsi ini mencetak list L, indeks tengah k+1, dan elemen pada indeks k+1. Jika elemen pada indeks k sama dengan x, maka fungsi mencetak pesan bahwa elemen telah ditemukan.
Jika elemen pada indeks k tidak sama dengan x, maka fungsi menentukan arah pencarian berdasarkan perbandingan antara elemen pada indeks k dan x. Jika elemen pada indeks k lebih kecil dari x, maka pencarian dilakukan ke arah kanan dengan mengatur variabel direct, i, j, dan k sesuai. Sebaliknya, jika elemen pada indeks k lebih besar dari x, maka pencarian dilakukan ke arah kiri.
Selanjutnya, fungsi melakukan rekursi dengan memanggil dirinya sendiri dan memperbarui parameter sesuai arah pencarian yang telah ditentukan sebelumnya. Hasil rekursi kemudian dijadikan nilai dari variabel found.
Akhirnya, fungsi mengembalikan nilai found, yang menunjukkan hasil nilai 11 di ketemukan.
Jika penasaran dengan hasil program yang saya buat pada gambar. Kalian bisa lihat Link Google Colab saya ini :
Komentar
Posting Komentar