Linear Search — Algoritma

Linear Search memeriksa setiap elemen satu per satu dari awal sampai akhir. Kompleksitas: O(n) — worst case harus cek semua elemen function linearSearch(arr…

Linear search mencari satu nilai di array dengan cara paling sederhana: cek isinya satu per satu dari depan, sampai ketemu atau sampai habis. Hasilnya index tempat nilai itu ketemu, atau -1 kalau gak ada. Mirip mencari nama teman di daftar kontak yang gak urut: kamu baca dari atas, satu per satu.

🧪 Tebakan cepat: array-nya berisi 8 angka, dan angka yang kamu cari gak ada di situ. Berapa kali linear search mengecek sebelum menyerah: 1, 4, atau 8? Tebak dulu, jawabannya ada di bagian "Berapa langkahnya".

Cara kerjanya

Cari 9 di [4, 2, 7, 1, 9, 3, 8, 5]. Index adalah nomor posisi di array, mulai dari 0.

Langkah Yang dicek Hasilnya
1 arr[0] = 4 bukan 9, lanjut
2 arr[1] = 2 bukan 9, lanjut
3 arr[2] = 7 bukan 9, lanjut
4 arr[3] = 1 bukan 9, lanjut
5 arr[4] = 9 ketemu, kembalikan 4

Ditulis di JavaScript:

function linearSearch(arr, target) {
  for (let i = 0; i < arr.length; i++) {
    if (arr[i] === target) return i; // ketemu, berhenti di sini
  }
  return -1; // semua sudah dicek, gak ada
}

const angka = [4, 2, 7, 1, 9, 3, 8, 5];
console.log(linearSearch(angka, 9)); // 4
console.log(linearSearch(angka, 6)); // -1

Berapa langkahnya

Banyaknya data disebut n. Karena kasus terburuknya mengecek semua isi, linear search ditulis O(n): datanya dua kali lipat, waktunya kira-kira dua kali lipat. 1.000 data, paling banyak 1.000 kali cek.

Kapan pakai linear search

Ada cara yang jauh lebih cepat, binary search (materi berikutnya), tapi syaratnya datanya harus sudah terurut. Mengurutkan data dulu lebih mahal daripada sekali linear search. Jadi linear search pas kalau:

Method bawaan arr.indexOf(), arr.includes(), dan arr.find() juga linear search di balik layar.

⚠️ Jebakan yang sering ketemu

TL;DR: Linear search mengecek isi array satu per satu dari index 0. Ketemu: kembalikan index-nya, bukan nilainya. Habis tanpa ketemu: kembalikan -1, ditulis sesudah loop. Kasus terbaik 1 kali cek, terburuk semua isi, jadi O(n). Pakai untuk data yang gak terurut, kecil, atau cuma dicari sekali. Data terurut yang dicari berkali-kali lebih cocok pakai binary search.

Yang akan kamu pelajari