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, ta

Linear Search memeriksa setiap elemen satu per satu dari awal sampai akhir.

Kompleksitas: O(n) — worst case harus cek semua elemen

function linearSearch(arr, target) {
  for (let i = 0; i < arr.length; i++) {
    if (arr[i] === target) return i; // Ditemukan!
  }
  return -1; // Tidak ditemukan
}

linearSearch([4, 2, 7, 1, 9], 7); // 2 (index ke-2)
linearSearch([4, 2, 7, 1, 9], 5); // -1

Kelebihan:

Kekurangan:

Variasi: Mencari semua kemunculan

function findAll(arr, target) {
  const indices = [];
  for (let i = 0; i < arr.length; i++) {
    if (arr[i] === target) indices.push(i);
  }
  return indices;
}

findAll([1, 3, 5, 3, 7, 3], 3); // [1, 3, 5]

Kapan pakai Linear Search?

🎭 Analogi sehari-hari: Cari nomor HP teman di kontak yang belum disortir. Mau gak mau scroll dari atas sampai ketemu (atau habis). Itulah linear search — gak ada short-cut, satu per satu cek.

💡 Mengapa linear search masih relevan? Untuk data kecil, konstanta lebih penting daripada Big O. Linear search di array 10 elemen kadang lebih cepat dari binary search karena gak perlu hitung mid, gak perlu jaga left/right. Untuk n < ~100, jangan ribet — pakai linear.

⚠️ Jebakan umum:

🎯 Linear vs Binary search kapan?

🧪 Tebakan cepat: Cari "Budi" di array 1jt nama acak. Linear: rata-rata 500rb cek (worst 1jt). Binary search di sorted: ~20 cek. Beda: 50.000x lebih cepat kalau data sudah sorted.

TL;DR: Linear Search = scan dari awal sampai ketemu. O(n). Cocok untuk data tidak terurut, dataset kecil, atau cari sekali. Default kalau gak yakin algoritma lain.