Search Algorithm [Linear Search vs Binary Search] + Pembahasan


Haloo, selamat siang semua.
Di Post pertama ini saya akan membahas dua macam Algoritma Search, yaitu Linear Search dan Binary Search. Sebelum masuk ke pembahasan inti. Kita baca pahami dulu apa itu Algoritma Search.

Dalam ilmu komputer, Algoritma Search adalah suatu algoritma yang mengambil informasi yang tersimpan dalam beberapa struktur data. Struktur data dapat berupa list/daftar, array, tree search , tabel hash, atau berbagai metode penyimpanan lainnya. penggunaan Algoritma Search sering tergantung pada struktur data yang dicari.

Algoritma Search memiliki peranan pentiing dalam program. Dalam keseharian pun kitq kerap tanpa sadar menerapkan algoritma ini, misal mencari baju pada lemari, mencari nomor telpon mantan di buku telpon  dan lain sebagainya.

Ada banyak macam dari Search Algoritma, diantaranya :
  • Linear Search
  • Binary Search
  • Chunk Search
  • Tree Search
  • Genetic Algorithm
Pembahasan pertama, apa itu Linear Search?


Dalam ilmu komputer, Linear Search atau sequential search adalah metode untuk menemukan nilai target dalam daftar dengan memeriksa setiap elemen dari daftar sampai target di temukan.

Linear Search berjalan paling buruk ketika target ada di ujung daftar, Jika pencarian secara Asceding (dari A-Z) dan target ada di Z maka itu akan sangat buruk begitu juga sebaliknya jika pencarian secara Desceding (dari Z-A) dan target ada di A, maka disanalah titik terburuknya.

Konsep Algoritma ini Simple, sepertin namanya Linear, Algoritma memindai secara lurus seperti garis. Contoh misal, ketika ada sebuah antrian di desa dan 100 orang yang mengantri dan anda ingin mencari tau dari setiap orang dan dalam antrian yang bawa HP dan pulsanya banyak, tentu anda akan bertanya dari satu per satu orang tanpa melompati satupun.
__________________________________
Berikut Algortima dari Linear Search
It's Time For Coding : Code Algoritma Linear Search


Keterangan :

int target=1; : Merupakan angka yang akan kita cari

int arr[] = {2, 3, 1, 5, 6}; : Sample data 2, 3, 1, 5, 6 yang tersimpan dalam array arr yang berisi nilai target.

for (int i=0; i<arr.length; i++) { .. } :Sebuah perulangan yang berfungsi untuk membandingkan nilai target dengan nilai-nilai dalam array arr.

if (arr[i]==target){ .. } : Digunakan untuk mencocokkan nilai-nilai dari sample data dengan target.

Coba running maka hasilnya :
Data : [2, 3, 1, 5, 6]
Target(1) ada pada index ke-2

Kelebihan Linear Search :

  • Dapat di implementasikan di Unsorted List (Data yang tidak terurut)
  • Jika Target ada di awal pencarian, maka prosessnya sangat singkat

Kekurangan Linear Search :
  • Jika Target ada di akhir maka prosessnya akan sangat lambat
______________________________________________________________________________
Selanjutnya : Binary Search

Apa itu Binary Search?

Dalam ilmu komputer, Binary Search juga dikenal sebagai setengah interval pencarian atau pencarian logaritmik, algoritma pencarian yang menemukan posisi dari nilai target dalam array yg diurutkan. Binary Search membandingkan nilai target dengan nilai tengah array, jika mereka tidak sama, setengah di mana target lebih kecil (tergantung kondisi yang diinginkan) akan di eliminasi, hingga target di temukan.

Konsep algoritma ini dapat kita temukan ketika ingin mencari kontak mantan di HP. Secara umum, system akan mensortir nama-nama kontak dalam HP secara Alphabet, sehingga kita dengan mudah mendapat nomor kontak yang kita inginkan hanya mengetahui huruf awal dari namanya.

Algoritma ini khusus digunakan dalam array/list yang sudah terurut!

Algoritma Binary Search
Implementasi Binary Search pada Java

Kelebihan Binary Search :
  • Sanga Efisien karena memakan cost yang tidak banyak

Kekurangan Binary Search :
  • Tidak bisa digunakan pada Unsorted List (List yang belum terurut)
Kesimpulan :
Setiap Algoritma punya kelebihan dan kekurangan, yang kita lakukan bukan membandingkan keduanya, mana yang lebih baik dan lebih buruk. Melainkan melakukan analisa kapan & pada kondisi apa algoritma-algoritma ini perlu kita gunakan. Berupaya mencari alternative yang sebaik mungkin.
Binary Search menang HANYA jika data sudah terurut.
Linear Search menang jika data belum terurut.
Semoga Bermanfaat. :)
Newest
Oldest