Apa itu Algoritma? — Algoritma

Algoritma adalah langkah-langkah terstruktur untuk menyelesaikan suatu masalah. Analogi: Resep masakan adalah algoritma — langkah demi langkah untuk…

Algoritma adalah urutan langkah yang jelas untuk menyelesaikan satu masalah, dan pasti selesai. Satu langkah adalah satu pekerjaan kecil yang bisa langsung dikerjakan, misalnya membandingkan dua angka atau menyimpan satu nilai. Mirip resep masakan: bahannya masuk, langkahnya diikuti satu per satu, lalu masakannya jadi.

🧪 Tebakan cepat: kamu mencari angka terbesar dari 5 angka acak. Paling sedikit berapa angka yang harus kamu lihat: 1, 3, atau 5? Tebak dulu, jawabannya ada di bagian "Contoh: cari angka terbesar".

Contoh: cari angka terbesar

Masalahnya: dari [3, 7, 1, 9, 4], mana yang terbesar? Resepnya dalam kata-kata:

  1. Anggap angka pertama yang terbesar, simpan sebagai max.
  2. Ambil angka berikutnya. Kalau lebih besar dari max, ganti max dengan angka itu.
  3. Ulangi langkah 2 sampai angkanya habis, lalu kembalikan max.

Jalannya, langkah demi langkah:

Langkah Yang dibandingkan max sesudahnya
awal ambil angka pertama, 3 3
i = 1 7 lebih besar dari 3? ya 7
i = 2 1 lebih besar dari 7? tidak 7
i = 3 9 lebih besar dari 7? ya 9
i = 4 4 lebih besar dari 9? tidak 9

Resep yang sama, ditulis di JavaScript:

function findMax(arr) {
  let max = arr[0]; // anggap yang pertama terbesar
  for (let i = 1; i < arr.length; i++) {
    if (arr[i] > max) max = arr[i];
  }
  return max;
}

console.log(findMax([3, 7, 1, 9, 4])); // 9

Jawaban tebakan: 5, semuanya. Angka yang belum dilihat bisa saja yang terbesar, jadi gak ada jalan pintas.

Ciri algoritma yang benar

Algoritma gak terikat bahasa pemrograman: resep yang sama bisa ditulis di JavaScript, Python, atau di kertas.

Big-O: berapa langkah kalau datanya banyak

Satu masalah bisa diselesaikan dengan banyak algoritma. Yang lebih baik biasanya yang langkahnya lebih sedikit waktu datanya banyak. Banyaknya data disebut n.

findMax membandingkan tiap angka sekali: 5 angka butuh 4 perbandingan, 1.000 angka butuh 999. Langkahnya tumbuh sebanding dengan n, dan ini ditulis O(n) (dibaca "big O n"). Artinya: datanya dua kali lipat, waktunya kira-kira dua kali lipat. Big-O cuma melihat bentuk pertumbuhannya, bukan angka pastinya, jadi 999 tetap ditulis O(n).

Yang paling sering ketemu, dari yang paling cepat:

Big-O Artinya Langkah untuk 1.000 data
O(1) tetap, berapa pun datanya 1
O(log n) datanya dua kali lipat, langkahnya cuma nambah satu sekitar 10
O(n) datanya dua kali lipat, langkahnya dua kali lipat 1.000
O(n log n) sedikit lebih berat dari O(n) sekitar 10.000
O(n²) datanya dua kali lipat, langkahnya empat kali lipat 1.000.000

log n artinya berapa kali n bisa dibelah dua sampai tinggal 1: 1.000 bisa dibelah dua sekitar 10 kali. n² (n kuadrat) biasanya muncul dari loop di dalam loop.

Bedanya makin terasa kalau datanya makin besar. Untuk 10.000 data, algoritma O(n log n) butuh sekitar 130.000 langkah, sedangkan O(n²) butuh 100 juta langkah. Jadi yang O(n log n) jauh lebih cepat, di bahasa apa pun.

⚠️ Jebakan yang sering ketemu

TL;DR: Algoritma adalah urutan langkah yang jelas, pasti selesai, dan bisa dikerjakan, dari input sampai output, dan gak terikat bahasa pemrograman. Contohnya findMax: pegang angka pertama, ganti kalau ketemu yang lebih besar, kembalikan sesudah semua dilihat. Big-O menjelaskan seberapa cepat langkahnya bertambah waktu datanya (n) bertambah: O(1) tetap, O(log n) nambah sedikit sekali, O(n) dua kali lipat, O(n²) empat kali lipat. Untuk data besar, O(n log n) jauh lebih cepat dari O(n²).

Yang akan kamu pelajari