A collection of xKyro-styled visualizations — algorithms, physics, and robotics. Each video explains how it works, an example use case, and its key formula or reference code.
Algoritma Euclid mencari FPB (Faktor Persekutuan terBesar) dua bilangan lewat sisa pembagian berulang: FPB(a, b) = FPB(b, a mod b). Diulang sampai sisa nol; bilangan terakhir yang bukan nol itulah FPB-nya. Jauh lebih cepat daripada mencoba semua faktor.
Example use case
Menyederhanakan pecahan ke bentuk paling sederhana (mis. 272/153 dibagi FPB 17 menjadi 16/9) — dipakai kalkulator dan pustaka bilangan rasional.
Syllabus
Mencari FPB dua bilangan lewat sisa pembagian berulang: FPB(a, b) = FPB(b, a mod b) sampai sisanya nol.
Objectives
·Memahami hubungan FPB(a, b) dengan sisa pembagian a mod b
·Menjelaskan mengapa proses berhenti saat sisa nol
·Menerapkan Euclid untuk menyederhanakan pecahan
How It Works
·Ambil dua bilangan a dan b
·Hitung sisa pembagian a dibagi b
·Ganti a dengan b, dan b dengan sisa tadi
·Ulangi sampai sisanya menjadi nol
·Bilangan terakhir yang bukan nol itulah FPB-nya
Prerequisites
·Operasi modulo (sisa bagi)
Real-World Uses
·Menyederhanakan pecahan, misalnya 272/153 menjadi 16/9
·Membagi rata benda ke beberapa orang tanpa sisa berlebih
Konversi biner ke desimal menunjukkan cara komputer menyimpan angka hanya dengan 0 dan 1 melalui deretan lampu bit. Tiap posisi bit mewakili nilai kelipatan dua (1, 2, 4, 8, dan seterusnya), dan angka desimal diperoleh dengan menjumlahkan nilai posisi tempat bitnya menyala. Visualisasi menampilkan delapan lampu bit yang menyala atau mati beserta hasil penjumlahan nilainya menjadi angka desimal.
Example use case
Memahami kenapa komputer dan HP menghitung semua angka hanya dengan sakelar on dan off di dalam cipnya.
Syllabus
Komputer menghitung dengan deretan bit 0 dan 1, tempat tiap posisi bernilai kelipatan dua.
Objectives
·Memahami cara komputer menyimpan angka hanya dengan 0 dan 1
·Menjelaskan nilai tempat tiap bit sebagai kelipatan dua
·Menerapkan konversi antara bilangan biner dan desimal
How It Works
·Susun delapan lampu bit, tiap posisi bernilai 1, 2, 4, 8, dan seterusnya.
·Lampu menyala berarti bit 1, lampu mati berarti bit 0.
·Jumlahkan nilai posisi tempat lampunya menyala untuk mendapat angka desimal.
·Untuk mengubah desimal ke biner, nyalakan bit dari nilai terbesar yang muat lalu sisakan selebihnya.
Prerequisites
·Penjumlahan
·Perpangkatan dua sederhana
Real-World Uses
·Dasar cara komputer dan HP menyimpan semua angka lewat sakelar on-off.
·Alasan ukuran file dihitung dalam kelipatan seperti kilobyte dan megabyte.
·Kode warna dan sinyal digital yang tersusun dari deretan bit.
Dugaan Collatz adalah aturan sederhana yang menyimpan misteri besar. Ambil angka apa pun: bila genap bagi 2, bila ganjil kalikan 3 lalu tambah 1, dan ulangi. Setiap angka yang pernah dicoba selalu berakhir di 1 — tetapi hingga kini belum ada yang bisa membuktikannya benar untuk semua angka. Visualisasi melacak lintasan hujan es sebuah angka yang melonjak tinggi lalu jatuh ke 1.
Example use case
Contoh bahwa aturan matematika sesederhana apa pun bisa melahirkan masalah yang belum terpecahkan hingga sekarang.
Syllabus
Genap dibagi 2, ganjil dikali 3 tambah 1, ulangi; selalu berakhir di 1 walau belum terbukti untuk semua angka.
Objectives
·Memahami proses iteratif berbasis aturan
·Menjelaskan mengapa sebuah masalah bisa disebut belum terpecahkan
·Membaca lintasan angka yang naik dan turun
How It Works
·Mulai dari sebuah angka n.
·Bila n genap, bagi 2; bila ganjil, kalikan 3 lalu tambah 1.
·Catat tiap nilai — lintasannya bisa melonjak sangat tinggi sebelum turun.
·Berhenti ketika mencapai 1.
Prerequisites
·Konsep ganjil, genap, dan operasi modulo
·Perulangan while
Real-World Uses
·Contoh masalah terbuka dalam matematika yang berhadiah riset.
·Bahan uji untuk generator bilangan dan komputasi.
·Pengantar berpikir komputasional di kelas.
ComplexityO(panjang lintasan), tanpa batas yang terbukti
Fast Exponentiation menghitung pangkat dengan mengkuadratkan basis dan membagi dua eksponen, memakai bit biner eksponen. Jadi O(log n) perkalian, bukan O(n). Fondasi kriptografi (mis. RSA) yang memakai pangkat bilangan sangat besar.
Example use case
Kriptografi RSA: menghitung pangkat modular bilangan raksasa secara efisien untuk enkripsi.
Syllabus
Menghitung pangkat dengan mengkuadratkan basis dan membagi dua eksponen, jadi jauh lebih sedikit perkalian.
Objectives
·Memahami cara memecah pangkat memakai bit biner eksponen
·Menjelaskan mengapa jumlah perkalian turun jadi O(log n)
·Menerapkan teknik ini untuk pangkat modular yang besar
How It Works
·Lihat eksponen dalam bentuk biner
·Kuadratkan basis di tiap langkah
·Bagi dua eksponen tiap langkah
·Kalikan hasil hanya saat bit eksponen bernilai 1
·Selesai setelah semua bit eksponen habis diproses
Prerequisites
·Perpangkatan
·Representasi biner
Real-World Uses
·Kriptografi RSA yang mengamankan chat dan transaksi online
·Menghitung pangkat besar cepat di kalkulator atau game
Metode Monte Carlo menebar titik acak di persegi yang memuat lingkaran. Rasio titik yang jatuh di dalam lingkaran mendekati rasio luas (pi/4), jadi pi ~= 4 x dalam/total. Makin banyak titik, makin akurat. Pengantar probabilitas dan simulasi.
Example use case
Estimasi nilai atau luas rumit lewat simulasi acak ketika rumus eksaknya sulit dihitung.
Syllabus
Menebar titik acak di persegi berisi lingkaran; rasio titik di dalam lingkaran menaksir nilai pi.
Objectives
·Memahami cara menaksir nilai lewat percobaan acak
·Menjelaskan hubungan rasio titik dengan rasio luas (pi/4)
·Menerapkan simulasi Monte Carlo untuk estimasi pi
How It Works
·Gambar lingkaran di dalam sebuah persegi
·Tebar banyak titik acak di dalam persegi
·Hitung berapa titik yang jatuh di dalam lingkaran
·Bagi jumlah titik dalam lingkaran dengan total titik
·Kalikan rasio itu dengan 4 untuk memperkirakan pi
Prerequisites
·Luas lingkaran dan persegi
·Konsep probabilitas dasar
Real-World Uses
·Menaksir peluang menang di game lewat ribuan percobaan acak
·Memperkirakan hasil rumit yang susah dihitung dengan rumus pasti
Prime Sieve (Saringan Eratosthenes) mencari semua bilangan prima hingga n dengan menandai kelipatan setiap bilangan prima sebagai bukan prima. Mulai dari p=2, semua kelipatannya dicoret, lalu lanjut ke bilangan berikutnya yang belum tercoret. Visualisasi memperlihatkan angka-angka yang dicoret (tanda X) satu per satu hingga hanya bilangan prima yang tersisa.
Example use case
Menghasilkan tabel bilangan prima untuk pembangkitan kunci awal pada eksperimen kriptografi RSA.
Syllabus
Menemukan semua bilangan prima sampai n dengan mencoret kelipatan tiap prima, menyisakan angka yang tak pernah tercoret.
Objectives
·Memahami cara menandai kelipatan sebagai bukan prima
·Menjelaskan mengapa angka tersisa pasti bilangan prima
·Menerapkan saringan untuk membangkitkan daftar prima
How It Works
·Tulis semua angka dari 2 sampai n
·Mulai dari 2, coret semua kelipatannya
·Lanjut ke angka berikutnya yang belum tercoret (3, lalu 5, ...)
·Coret semua kelipatan angka prima itu juga
·Angka yang tersisa tanpa coretan adalah bilangan prima
Prerequisites
·Bilangan prima
·Kelipatan
Real-World Uses
·Menyiapkan bilangan prima besar untuk kunci kriptografi RSA
·Membuat tabel prima untuk soal-soal lomba pemrograman
Segitiga Pascal dibangun dengan aturan sederhana: tiap angka adalah jumlah dua angka tepat di atasnya, dengan tepi selalu 1. Dari aturan sesederhana itu muncul pola yang kaya: tiap baris adalah koefisien binomial C(n,k) — banyaknya cara memilih k benda dari n — dan sekaligus menggambarkan peluang, misalnya hasil lemparan koin. Visualisasi membangun segitiga baris demi baris dan menyorot satu sel = jumlah dua induknya.
Example use case
Menghitung berapa cara memilih anggota tim dari sekelompok orang, atau peluang mendapat sejumlah gambar saat melempar koin beberapa kali.
Syllabus
Tiap angka = jumlah dua angka di atasnya (tepi = 1); baris ke-n = koefisien C(n,k) dan pola peluang.
Objectives
·Memahami pola rekursif yang sederhana
·Mengaitkan baris dengan kombinasi C(n,k)
·Melihat hubungannya dengan peluang (lempar koin)
How It Works
·Mulai dari puncak: satu angka 1.
·Tiap baris baru: tepi kiri dan kanan selalu 1.
·Tiap angka di dalam = jumlah dua angka tepat di atasnya.
·Baris ke-n memberi koefisien C(n,0), C(n,1), ... = cara memilih k dari n.
Prerequisites
·Penjumlahan
·Konsep baris dan pola
·Ide dasar peluang
Real-World Uses
·Menghitung banyaknya cara memilih (kombinasi).
·Peluang hasil lemparan koin berulang.
·Muncul di aljabar (binomial) dan pola fraktal Segitiga Sierpinski.
Rotate Image 90° memutar matriks persegi searah jarum jam dengan dua fase in-place: pertama transpose (tukar elemen m[i][j] dengan m[j][i]), lalu balik (reverse) setiap baris memakai dua pointer. Kombinasi kedua operasi ini setara dengan rotasi 90 derajat tanpa memakai matriks tambahan. Visualisasi menampilkan fase transpose di sepanjang diagonal lalu pembalikan tiap baris hingga matriks selesai diputar.
Example use case
Fitur putar foto 90 derajat pada aplikasi editor gambar yang bekerja langsung pada array piksel.
Syllabus
Memutar matriks persegi 90 derajat searah jarum jam lewat dua langkah in-place: transpose lalu balik tiap baris.
Objectives
·Memahami dua fase rotasi: transpose dan reverse baris
Bead Sort (sortir manik / gravitasi) adalah algoritma pengurutan bilangan bulat non-negatif. Tiap angka digambarkan sebagai deretan manik pada satu baris (rata kiri). Saat "gravitasi" diterapkan, manik pada tiap kolom jatuh ke dasar. Setelah semua manik jatuh, tinggi (jumlah manik) tiap baris dari atas ke bawah menjadi terurut menaik. Kompleksitas O(n * maks).
Example use case
Ilustrasi "sorting network" / analog abacus: tiap kolom bekerja mandiri sehingga dapat diparalelkan atau diimplementasi di perangkat keras. Contoh: [4,2,5,1,3] -> gravitasi -> [1,2,3,4,5]. Terbatas untuk bilangan bulat non-negatif yang kecil.
Syllabus
Menggambarkan tiap angka sebagai tumpukan manik lalu membiarkan gravitasi menjatuhkannya, sehingga baris otomatis terurut menaik.
Objectives
·Memahami cara merepresentasikan bilangan sebagai deretan manik
·Menjelaskan bagaimana 'gravitasi' per kolom menghasilkan urutan
·Menerapkan idenya pada bilangan bulat non-negatif yang kecil
How It Works
·Tiap angka jadi satu baris manik, rata kiri
·Bayangkan gravitasi menarik semua manik ke bawah
·Manik di tiap kolom jatuh mengisi baris paling bawah dulu
·Setelah semua jatuh, hitung manik tiap baris dari atas
·Tinggi baris kini terurut menaik: [4,2,5,1,3] jadi [1,2,3,4,5]
Prerequisites
·Bilangan bulat non-negatif
Real-World Uses
·Analog sempoa (abacus) yang manik-maniknya turun sendiri
·Ilustrasi tiap kolom bekerja mandiri seperti mesin sederhana
Bubble Sort mengurutkan array dengan membandingkan pasangan bersebelahan dan menukarnya bila urutannya salah. Tiap sapuan penuh mengapungkan nilai terbesar ke ujung. Bila satu sapuan berlalu tanpa pertukaran, array sudah urut dan proses berhenti lebih awal.
Example use case
Alat ajar dasar pengurutan: paling mudah dipahami untuk memperkenalkan konsep bandingkan-dan-tukar sebelum masuk algoritma yang lebih cepat.
Syllabus
Berulang kali membandingkan dua tetangga dan menukarnya bila salah urut, sampai nilai terbesar mengapung ke ujung.
Counting Sort mengurutkan tanpa membandingkan elemen: hitung berapa kali tiap nilai muncul ke dalam bucket, lalu keluarkan nilai sesuai hitungannya secara berurutan. Sangat cepat O(n+k) bila rentang nilai kecil.
Example use case
Mengurutkan nilai ujian 0-100 ribuan siswa: cukup hitung frekuensi tiap nilai lalu tuliskan berurutan.
Syllabus
Mengurutkan tanpa membandingkan elemen, cukup menghitung frekuensi tiap nilai lalu menuliskannya kembali secara berurutan.
Objectives
·Memahami pengurutan berbasis hitungan, bukan perbandingan
·Menjelaskan kapan Counting Sort lebih cepat dari sorting biasa
·Menerapkan bucket frekuensi untuk rentang nilai yang kecil
How It Works
·Siapkan bucket hitungan untuk tiap nilai yang mungkin
·Telusuri data, tambah hitungan pada bucket nilainya
·Baca bucket dari nilai terkecil ke terbesar
·Tuliskan tiap nilai sebanyak hitungannya
·Hasilnya array terurut tanpa satu pun perbandingan
Prerequisites
·Array
·Konsep frekuensi
Real-World Uses
·Menyusun nilai ujian 0-100 dari ribuan siswa sekelas
·Menghitung dan merapikan umur peserta lomba yang seragam rentangnya
Insertion Sort mengurutkan larik dengan membangun bagian terurut di depan lalu menyisipkan tiap elemen baru ke posisi yang tepat. Elemen kunci diangkat, elemen sebelah kiri yang lebih besar digeser ke kanan, kemudian kunci diletakkan di celah yang terbentuk. Visualisasi batang menyoroti kunci yang sedang diangkat dan digeser sampai seluruh larik terurut naik.
Example use case
Mengurutkan kartu di tangan saat bermain, atau menyisipkan data baru ke dalam daftar kecil yang sudah hampir terurut.
Syllabus
Membangun bagian terurut di depan lalu menyisipkan tiap elemen baru ke celah yang tepat, seperti menyusun kartu di tangan.
Objectives
·Memahami cara menyisipkan elemen ke bagian yang sudah terurut
·Menjelaskan proses menggeser elemen lebih besar ke kanan
·Menerapkan Insertion Sort pada data kecil atau hampir terurut
How It Works
·Anggap elemen pertama sebagai bagian terurut
·Angkat elemen kunci berikutnya dari bagian belum terurut
·Geser elemen kiri yang lebih besar ke kanan
·Letakkan kunci di celah yang terbentuk
·Ulangi sampai semua elemen tersisip pada posisi benar
Prerequisites
·Array
Real-World Uses
·Menyusun kartu remi di tangan satu per satu saat main
·Menyelipkan kontak baru ke daftar nama yang sudah rapi
Selection Sort mengurutkan array dengan berulang mencari elemen TERKECIL di bagian yang belum urut, lalu menukarnya ke posisi terdepan. Setelah tiap putaran, satu elemen terkunci di tempatnya. Sederhana tapi selalu O(n^2) karena tetap memindai sisa array walau sudah hampir urut.
Example use case
Memilih juara 1, 2, 3 secara berurutan dari daftar skor: cari nilai tertinggi, sisihkan, ulangi untuk sisanya.
Syllabus
Berulang mencari elemen terkecil di sisa array lalu menukarnya ke depan, mengunci satu elemen terurut tiap putaran.
Objectives
·Memahami cara mencari elemen minimum di bagian belum terurut
·Menjelaskan mengapa kompleksitasnya selalu O(n^2)
·Menerapkan penukaran minimum ke posisi terdepan
How It Works
·Pindai bagian yang belum terurut untuk cari nilai terkecil
·Tukar nilai terkecil itu ke posisi terdepan yang belum terisi
·Elemen di posisi itu kini terkunci sebagai terurut
·Ulangi pada sisa array yang tersisa
·Selalu memindai penuh walau data sudah hampir urut
Prerequisites
·Array
Real-World Uses
·Memilih juara 1, 2, 3 berurutan dari daftar skor lomba
·Mengambil kartu tertinggi satu per satu sampai tersusun
Merge Sort adalah algoritma pengurutan divide-and-conquer yang membagi array menjadi dua bagian secara rekursif hingga tersisa satu elemen, lalu menggabungkan (merge) kembali bagian-bagian tersebut dalam urutan terurut. Proses penggabungan selalu mengambil elemen terkecil dari kepala kedua bagian. Visualisasi menampilkan batang-batang yang dipecah menjadi setengah lalu digabung kembali hingga seluruh array terurut.
Example use case
Mengurutkan daftar besar transaksi atau file log secara efisien dan stabil di sistem basis data.
Syllabus
Membagi array jadi dua terus-menerus sampai satu elemen, lalu menggabungkannya kembali secara terurut (divide and conquer).
Objectives
·Memahami strategi divide and conquer pada pengurutan
·Menjelaskan cara menggabungkan dua bagian terurut jadi satu
·Menerapkan Merge Sort untuk data besar yang butuh stabil
How It Works
·Bagi array menjadi dua bagian secara berulang
·Terus bagi hingga tiap bagian tinggal satu elemen
·Gabungkan dua bagian dengan mengambil kepala terkecil dulu
·Salin sisa elemen bagian yang belum habis
·Naik bertahap hingga seluruh array tergabung terurut
Prerequisites
·Array
·Rekursi
Real-World Uses
·Menggabungkan file log terurut dari beberapa server sekaligus
·Mengurutkan daftar besar transaksi Shopee secara stabil
Quick Sort mengurutkan array dengan strategi divide-and-conquer memakai elemen pivot. Elemen yang lebih kecil dari pivot dipindah ke kiri dan yang lebih besar ke kanan (partisi), lalu tiap sub-bagian diurutkan secara rekursif. Visualisasi batang menampilkan proses partisi, pertukaran elemen, dan rekursi hingga seluruh array terurut.
Example use case
Mengurutkan daftar transaksi berdasarkan nominal di sistem laporan keuangan, karena Quick Sort cepat dan efisien untuk data besar di memori.
Syllabus
Memilih pivot, memisahkan elemen lebih kecil ke kiri dan lebih besar ke kanan, lalu mengurutkan tiap sisi secara rekursif.
Objectives
·Memahami peran pivot dalam proses partisi
·Menjelaskan bagaimana partisi memisahkan elemen kecil dan besar
·Menerapkan rekursi untuk mengurutkan tiap sub-bagian
How It Works
·Pilih satu elemen sebagai pivot
·Pindahkan elemen lebih kecil dari pivot ke kiri
·Pindahkan elemen lebih besar dari pivot ke kanan
·Pivot kini berada di posisi akhirnya yang benar
·Ulangi partisi secara rekursif pada sisi kiri dan kanan
Prerequisites
·Array
·Rekursi
Real-World Uses
·Mengurutkan daftar transaksi berdasarkan nominal di aplikasi keuangan
·Menyusun cepat data besar di memori, seperti daftar harga produk
Radix Sort mengurutkan angka tanpa membandingkan nilai secara langsung, melainkan dengan mengelompokkan berdasarkan digit dari satuan ke puluhan. Tiap iterasi menaruh setiap angka ke bucket sesuai digit pada posisi tertentu lalu menggabungkannya kembali secara berurutan. Visualisasi menampilkan bucket ONES dan TENS serta pergerakan angka antar bucket sampai seluruh larik terurut.
Example use case
Menyortir jutaan nomor pelanggan atau kode pos secara cepat dalam sistem basis data karena panjang digitnya tetap.
Syllabus
Mengurutkan angka digit demi digit dari satuan ke puluhan lewat bucket, tanpa pernah membandingkan nilai secara langsung.
Objectives
·Memahami pengurutan bertahap berdasarkan posisi digit
·Menjelaskan peran bucket per digit dalam menyusun urutan
·Menerapkan Radix Sort pada data berdigit tetap seperti kode pos
How It Works
·Mulai dari digit satuan tiap angka
·Masukkan tiap angka ke bucket sesuai digit itu
·Gabungkan kembali angka dari bucket secara berurutan
·Ulangi untuk digit puluhan, ratusan, dan seterusnya
·Setelah digit tertinggi diproses, seluruh larik terurut
Prerequisites
·Counting Sort
·Sistem bilangan desimal
Real-World Uses
·Menyortir jutaan nomor pelanggan atau kode pos dengan cepat
Bitonic Sort adalah algoritma pengurutan berbasis jaringan perbandingan (sorting network) dengan urutan operasi compare-swap yang tetap, tidak bergantung pada data. Ia bekerja membentuk barisan bitonik lalu menggabungkannya, dengan pasangan elemen dan arah pembandingan ditentukan melalui operasi bit (i ^ j dan i & k). Struktur tetap ini membuatnya sangat cocok untuk eksekusi paralel. Visualisasi menampilkan jaringan jalur dengan operasi tukar antar elemen hingga terurut.
Example use case
Pengurutan paralel berkinerja tinggi pada GPU atau perangkat keras (FPGA) untuk pemrosesan data masif.
Syllabus
Mengurutkan lewat jaringan compare-swap dengan urutan tetap yang tidak bergantung pada isi data, sehingga banyak perbandingan bisa jalan bersamaan.
Objectives
·Memahami apa itu sorting network dan mengapa polanya tetap
·Menjelaskan bagaimana operasi bit (i ^ j dan i & k) menentukan pasangan dan arah tukar
·Menerapkan konsep barisan bitonik untuk pengurutan paralel
How It Works
·Data dibentuk menjadi barisan bitonik: naik dulu lalu turun
·Elemen dipasangkan lewat operasi XOR indeks, arah tukar dari bit i & k
·Tiap pasangan dibandingkan dan ditukar bila urutannya salah
·Barisan digabung bertahap sampai seluruh data terurut
·Karena polanya tetap, banyak perbandingan dijalankan serentak
Prerequisites
·Bubble Sort
·Operasi bit dasar
·Konsep paralel
Real-World Uses
·Mengurutkan data grafis super cepat di GPU saat main game berat
·Pemrosesan data masif di perangkat keras khusus seperti FPGA
Heap Sort mengurutkan array dengan terlebih dulu membangunnya menjadi max heap (akar selalu nilai terbesar), lalu berulang kali menukar akar ke posisi akhir dan memperbaiki heap yang menyusut lewat sift_down. Setiap ekstraksi menempatkan nilai terbesar berikutnya ke bagian terurut, menghasilkan urutan menaik. Visualisasi menampilkan struktur pohon biner beserta array-nya, memperlihatkan proses swap dan sift_down hingga seluruh elemen terurut menaik.
Example use case
Pengurutan data dengan jaminan kompleksitas O(n log n) pada sistem yang butuh performa stabil tanpa memori tambahan besar.
Syllabus
Membangun max-heap agar nilai terbesar selalu di akar, lalu berulang menariknya ke belakang sambil memperbaiki heap.
Objectives
·Memahami sifat max-heap: akar selalu nilai terbesar
·Menjelaskan proses sift_down/heapify menjaga struktur heap
·Menerapkan ekstraksi berulang untuk menghasilkan urutan menaik
How It Works
·Susun array menjadi max-heap sehingga akar bernilai terbesar
·Tukar akar ke posisi paling akhir yang belum terurut
·Kecilkan ukuran heap satu langkah
·Perbaiki heap lewat sift_down agar akar kembali terbesar
·Ulangi hingga seluruh elemen tersusun menaik
Prerequisites
·Array
·Pohon biner
·Rekursi
Real-World Uses
·Antrian prioritas penjadwal tugas di HP: proses penting jalan duluan
·Mengurutkan data besar dengan performa stabil tanpa memori tambahan
Binary Search mencari sebuah nilai target di dalam larik yang sudah terurut dengan membagi dua rentang pencarian secara berulang. Setiap langkah memeriksa elemen tengah: jika cocok selesai, jika target lebih besar rentang bawah dinaikkan, jika lebih kecil rentang atas diturunkan. Visualisasi menampilkan penyempitan rentang l..r dan penunjuk MID sampai target 71 ditemukan.
Example use case
Mencari kata dalam kamus digital atau data pelanggan terurut sehingga pencarian jauh lebih cepat daripada memeriksa satu per satu.
Syllabus
Mencari nilai di data terurut dengan membelah dua rentang berulang kali, membuang separuh yang pasti salah setiap langkah.
Objectives
·Memahami syarat data harus terurut sebelum dicari
·Menjelaskan cara memeriksa elemen tengah untuk mempersempit rentang
·Menerapkan pembelahan rentang l..r hingga target ditemukan
How It Works
·Tentukan batas kiri (l) dan kanan (r) seluruh data
·Periksa elemen di tengah rentang
·Bila cocok, pencarian selesai
·Bila target lebih besar, naikkan batas kiri melewati tengah
·Bila target lebih kecil, turunkan batas kanan sebelum tengah
Prerequisites
·Array terurut
Real-World Uses
·Mencari kata dalam kamus digital tanpa buka satu-satu
·Menebak angka 1-100 dengan strategi 'lebih besar/lebih kecil'
Linear Search memeriksa elemen satu per satu dari kiri ke kanan sampai menemukan target. Tidak butuh data terurut, tapi paling lambat: rata-rata memeriksa separuh data. Pembanding yang menjelaskan kenapa Binary Search jauh lebih cepat pada data terurut.
Example use case
Mencari nama di daftar yang tidak berurutan: baca dari atas ke bawah sampai ketemu.
Syllabus
Memeriksa elemen satu per satu dari awal sampai target ketemu; sederhana tapi paling lambat dan tak butuh data terurut.
Objectives
·Memahami pencarian berurutan dari kiri ke kanan
·Menjelaskan mengapa rata-rata memeriksa separuh data
·Membandingkan kelambatannya dengan Binary Search pada data terurut
How It Works
·Mulai dari elemen paling depan
·Bandingkan elemen sekarang dengan target
·Bila cocok, hentikan dan laporkan posisinya
·Bila tidak, lanjut ke elemen berikutnya
·Bila sampai ujung tanpa cocok, berarti target tidak ada
Real-World Uses
·Mencari nama teman di daftar chat yang tidak berurutan
·Menelusuri isi tas satu per satu sampai ketemu barang dicari
Memeriksa apakah kurung buka dan tutup berpasangan rapi adalah contoh klasik penggunaan Stack. Setiap kurung buka didorong ke stack; setiap kurung tutup harus cocok dengan yang terakhir masuk (paling atas stack). Bila cocok sampai habis dan stack kosong, teks dinyatakan seimbang. Visualisasi mendorong dan mengeluarkan kurung dari stack sampai vonis akhir.
Example use case
Fitur editor kode yang menandai kurung tutup yang hilang saat kamu menulis program bekerja persis dengan cara ini.
Syllabus
Dorong kurung buka ke stack; cocokkan tiap kurung tutup dengan yang paling atas — kosong di akhir berarti seimbang.
Objectives
·Memahami struktur data Stack (masuk terakhir, keluar pertama)
·Menerapkan stack untuk mencocokkan pasangan
·Menghubungkan konsep ini dengan alat pemrograman nyata
How It Works
·Telusuri teks karakter demi karakter.
·Bila menemukan kurung buka, dorong (push) ke stack.
·Bila menemukan kurung tutup, ambil (pop) atas stack dan cek pasangannya cocok.
·Di akhir, teks seimbang bila stack kosong dan tak ada yang tak cocok.
Linked List menyimpan data sebagai rantai node, di mana tiap node menunjuk ke node berikutnya lewat sebuah panah (pointer). Menyisipkan atau menghapus di tengah cukup dengan mengubah beberapa panah — tak perlu menggeser seluruh elemen seperti pada array. Visualisasi menyisipkan node baru hanya dengan mengubah dua panah.
Example use case
Struktur yang cocok saat data sering disisipkan atau dihapus di tengah, seperti daftar putar lagu atau riwayat undo dan redo.
Syllabus
Data sebagai rantai node ber-panah; menyisip atau menghapus cukup mengubah beberapa panah, bukan menggeser semua.
Objectives
·Memahami node dan pointer (panah next)
·Membandingkan linked list dengan array
·Menerapkan penyisipan dengan mengubah pointer
How It Works
·Tiap node menyimpan sebuah nilai dan panah ke node berikutnya.
·Untuk menyisipkan X setelah B, arahkan panah X ke node yang tadinya setelah B.
·Lalu arahkan panah B ke X.
·Selesai — hanya dua panah berubah, elemen lain tak bergeser.
Prerequisites
·Konsep variabel dan referensi
·Array (sebagai pembanding)
Real-World Uses
·Riwayat undo dan redo di aplikasi.
·Daftar putar musik dengan tombol next dan prev.
·Pengelolaan memori di sistem operasi.
ComplexityO(1) menyisip atau menghapus bila posisinya diketahui
Queue adalah struktur data bergaya antrian dengan aturan FIFO, yaitu yang pertama datang menjadi yang pertama dilayani. Elemen baru selalu masuk di ujung belakang (enqueue) dan elemen yang keluar selalu dari ujung depan (dequeue), persis seperti antre di loket. Visualisasi menampilkan elemen yang berbaris dari belakang ke depan dan yang paling depan keluar lebih dulu.
Example use case
Cara antrian di loket tiket atau daftar tunggu ojek online melayani orang sesuai urutan kedatangannya.
Syllabus
Simpan data bergaya antrian loket: yang pertama datang adalah yang pertama dilayani.
Objectives
·Memahami aturan FIFO pada struktur data antrian
·Menjelaskan operasi enqueue (masuk belakang) dan dequeue (keluar depan)
·Menerapkan queue untuk melayani tugas sesuai urutan datang
How It Works
·Bayangkan orang yang mengantre di depan satu loket.
·Enqueue berarti pendatang baru berdiri di ujung paling belakang.
·Dequeue berarti orang di ujung paling depan dilayani lalu keluar.
·Karena depan yang dilayani, urutan datang sama dengan urutan keluar.
Prerequisites
·Array atau list
Real-World Uses
·Antrian nomor di loket bank atau kasir minimarket.
Stack adalah struktur data bergaya tumpukan dengan aturan LIFO, yaitu barang yang terakhir masuk menjadi yang pertama keluar. Menambah barang (push) selalu meletakkannya di puncak, dan mengambil barang (pop) juga selalu dari puncak, persis seperti tumpukan piring. Visualisasi menampilkan elemen yang ditumpuk ke atas saat push dan diangkat dari puncak saat pop.
Example use case
Cara tombol Undo (Ctrl+Z) dan tombol Back di browser mengembalikanmu ke langkah terakhir lebih dulu.
Syllabus
Simpan data bergaya tumpukan piring: yang terakhir masuk adalah yang pertama keluar.
Objectives
·Memahami aturan LIFO pada struktur data tumpukan
·Menjelaskan operasi push (menaruh) dan pop (mengambil) di puncak
·Menerapkan stack untuk fitur seperti Undo dan tombol Back
How It Works
·Bayangkan tumpukan piring yang hanya bisa disentuh dari atas.
·Push berarti menaruh satu elemen baru di puncak tumpukan.
·Pop berarti mengangkat satu elemen dari puncak tumpukan.
·Karena hanya puncak yang diakses, elemen terakhir masuk keluar lebih dulu.
Prerequisites
·Array atau list
Real-World Uses
·Fitur Undo (Ctrl+Z) yang membatalkan aksi terakhirmu lebih dulu.
·Tombol Back di browser yang membuka halaman sebelumnya.
·Riwayat langkah pada game atau aplikasi edit foto.
Priority Queue adalah antrian di mana yang dilayani lebih dulu bukan yang datang paling awal, melainkan yang prioritasnya paling tinggi. Setiap item masuk membawa nilai prioritas dan disisipkan pada posisi yang menjaga urutan; pengambilan selalu dari yang paling penting. Visualisasi menyisipkan tugas berprioritas dan melayani yang tertinggi lebih dulu.
Example use case
Triase IGD melayani pasien gawat lebih dulu, atau proses boarding pesawat yang mendahulukan penumpang prioritas.
Syllabus
Yang dilayani lebih dulu adalah prioritas tertinggi, bukan yang datang paling awal.
Objectives
·Membedakan queue biasa dari priority queue
·Memahami penyisipan yang menjaga urutan prioritas
·Mengenali kasus nyata penjadwalan berbasis prioritas
How It Works
·Setiap item masuk membawa nilai prioritas.
·Sisipkan item pada posisi yang menjaga prioritas tertinggi tetap di depan.
·Layani (ambil) selalu dari depan, yaitu prioritas tertinggi.
·Ulangi; item mendesak selalu didahulukan meski datang belakangan.
Bloom filter memeriksa apakah sebuah item pernah dilihat dengan memori sangat kecil. Tiap item dipetakan oleh beberapa fungsi hash ke beberapa posisi bit yang lalu di-set menjadi 1. Saat mengecek, bila ada satu saja bit yang 0, item PASTI belum pernah ada; bila semua 1, item MUNGKIN ada (bisa keliru alias false positive). Ia menukar sedikit ketidakpastian demi kecepatan dan hemat memori yang luar biasa. Visualisasi menambah item lalu menunjukkan sebuah false positive.
Example use case
Cara aplikasi cek cepat apakah username sudah dipakai, atau apakah sebuah URL masuk daftar berbahaya, tanpa menyimpan seluruh daftarnya.
Syllabus
Beberapa hash menyalakan bit; ada bit 0 = PASTI tidak ada, semua bit 1 = MUNGKIN ada (bisa false positive).
Objectives
·Memahami struktur data probabilistik
·Menjelaskan mengapa false positive mungkin tapi false negative tidak
·Menilai tukar-untung memori melawan kepastian
How It Works
·Sediakan array bit kosong dan beberapa fungsi hash.
·Menambah item: set bit menjadi 1 di semua posisi hasil hash-nya.
·Mengecek: lihat semua posisi hash item itu.
·Bila ada bit 0 -> pasti tidak ada; bila semua 1 -> mungkin ada (bisa keliru).
Prerequisites
·Fungsi hash
·Array bit
·Operasi bit sederhana
Real-World Uses
·Cek cepat apakah username sudah dipakai.
·Filter URL berbahaya di peramban (Google Safe Browsing).
·Menghemat query database dan cache berukuran besar.
ComplexityO(k) per operasi (k = jumlah fungsi hash)
Algoritma Floyd (tortoise and hare) mendeteksi siklus pada linked list menggunakan dua pointer: slow bergerak satu langkah dan fast bergerak dua langkah setiap iterasi. Jika kedua pointer bertemu, berarti terdapat loop; jika fast mencapai akhir list, tidak ada siklus. Visualisasi menampilkan linked list berbentuk lingkaran dengan kedua pointer yang saling mengejar hingga bertemu di titik siklus.
Example use case
Mendeteksi loop tak terhingga pada struktur data terhubung atau siklus dalam graf dependensi.
Syllabus
Dua pointer berlari beda kecepatan pada linked list; bila yang cepat menyusul yang lambat, berarti ada siklus.
Objectives
·Memahami teknik dua pointer slow dan fast
·Menjelaskan mengapa pertemuan pointer menandakan adanya loop
·Menerapkan deteksi siklus pada struktur data terhubung
How It Works
·Tempatkan pointer slow dan fast di awal list
·Gerakkan slow satu langkah tiap iterasi
·Gerakkan fast dua langkah tiap iterasi
·Bila keduanya bertemu di titik sama, ada siklus
·Bila fast mencapai ujung list, tidak ada siklus
Prerequisites
·Linked list
·Konsep pointer
Real-World Uses
·Mendeteksi loop tak berujung di rantai data yang saling menunjuk
·Menemukan siklus di graf dependensi agar program tidak macet
Hash Table memetakan kunci ke indeks bucket lewat fungsi hash sehingga pencarian rata-rata O(1). Bila dua kunci jatuh ke bucket sama (tabrakan), keduanya disambung dalam rantai (chaining). Cara kerja dictionary/map di balik layar.
Example use case
Struktur dictionary di banyak bahasa pemrograman: menyimpan dan mencari nilai berdasarkan kunci secara instan.
Syllabus
Fungsi hash memetakan kunci langsung ke lokasi bucket, sehingga menyimpan dan mencari data rata-rata secepat O(1).
Objectives
·Memahami peran fungsi hash mengubah kunci jadi indeks bucket
·Menjelaskan cara menangani tabrakan lewat rantai (chaining)
·Menerapkan hash table sebagai dictionary/map
How It Works
·Ubah kunci menjadi indeks bucket lewat fungsi hash
·Simpan nilai pada bucket sesuai indeks tersebut
·Untuk mencari, hitung ulang hash kunci lalu buka bucketnya
·Bila dua kunci jatuh ke bucket sama, sambung dalam rantai
·Telusuri rantai bucket itu untuk temukan kunci yang tepat
Prerequisites
·Array
·Konsep fungsi
Real-World Uses
·Struktur dictionary/map di balik banyak aplikasi dan bahasa program
·Cache username agar cek ketersediaan akun terasa instan
LRU Cache adalah penyimpanan cepat berukuran terbatas yang membuang item paling lama tidak dipakai ketika ruangnya penuh. Tiap kali sebuah item diakses, ia ditandai sebagai yang paling baru dipakai, sehingga item yang menganggur paling lama berada di urutan buang berikutnya. Visualisasi menampilkan daftar item yang urutannya berubah tiap akses dan item terlama yang tersingkir saat item baru masuk.
Example use case
Alasan HP dengan RAM kecil menutup sendiri aplikasi yang lama tidak kamu buka saat kamu membuka game berat.
Syllabus
Simpan item terbatas di memori cepat, lalu buang yang paling lama tak dipakai saat penuh.
Objectives
·Memahami kenapa memori cepat harus dibatasi dan dikelola
·Menjelaskan aturan buang item yang paling lama tidak dipakai (LRU)
·Menerapkan pembaruan urutan pakai setiap kali item diakses
How It Works
·Sediakan tempat penyimpanan cepat dengan kapasitas terbatas.
·Tiap kali sebuah item dipakai, tandai ia sebagai yang paling baru.
·Item yang paling lama tidak disentuh menempati urutan buang berikutnya.
·Saat penuh dan ada item baru, singkirkan item paling lama tak dipakai untuk memberi ruang.
Prerequisites
·List atau antrian
·Konsep memori terbatas
Real-World Uses
·HP RAM kecil yang menutup aplikasi lama saat membuka game berat.
·Cache browser yang menyimpan halaman sering dibuka agar cepat.
·Riwayat aplikasi terakhir yang tersingkir saat memori menipis.
Quadtree adalah struktur data pohon yang membagi ruang 2D menjadi empat kuadran secara rekursif setiap kali sebuah wilayah memuat lebih dari satu titik. Proses subdivisi berhenti ketika tiap sel hanya berisi paling banyak satu titik. Visualisasi menunjukkan kotak yang terus terbelah menjadi empat bagian lebih kecil seiring titik-titik memaksa wilayah tersebut dipecah, beserta kedalaman (depth) pohon.
Example use case
Deteksi tabrakan (collision detection) pada game 2D dengan mempartisi objek ke wilayah spasial agar pengecekan lebih efisien.
Syllabus
Pohon yang membagi ruang 2D jadi empat kuadran berulang kali, memecah wilayah hanya saat memuat lebih dari satu titik.
Objectives
·Memahami pembagian ruang 2D menjadi empat kuadran
·Menjelaskan kapan sebuah sel perlu dipecah lagi
·Menerapkan quadtree untuk mempercepat pengecekan spasial
How It Works
·Mulai dari satu kotak besar yang meliputi seluruh ruang
·Bila sebuah wilayah memuat lebih dari satu titik, pecah jadi empat
·Tiap kuadran bisa dipecah lagi secara rekursif
·Subdivisi berhenti saat tiap sel berisi paling banyak satu titik
·Kedalaman pohon menunjukkan seberapa padat titik di area itu
Prerequisites
·Pohon
·Koordinat 2D
·Rekursi
Real-World Uses
·Deteksi tabrakan di game 2D agar cek antar objek lebih hemat
·Peta digital yang memuat titik lokasi sesuai tingkat zoom
Union-Find (Disjoint Set) melacak pengelompokan yang terus berubah dengan sangat cepat. Operasi UNION menggabungkan dua kelompok menjadi satu; operasi FIND menelusuri induk sebuah anggota sampai ke akar kelompoknya. Dua anggota terhubung bila akarnya sama. Dengan trik union-by-rank dan path-compression, keduanya nyaris seketika. Visualisasi menggabungkan orang menjadi lingkaran pertemanan lalu menjawab apakah dua orang terhubung.
Example use case
Menentukan apakah dua orang berada di lingkaran pertemanan yang sama di media sosial, atau apakah dua titik terhubung dalam satu jaringan.
Syllabus
Tiap kelompok punya satu akar; dua anggota terhubung bila akarnya sama. UNION menggabung, FIND menelusuri akar.
Objectives
·Memahami struktur himpunan-terpisah (disjoint set)
·Menjelaskan operasi UNION dan FIND
·Mengaitkan dengan konektivitas jaringan dan pertemanan
How It Works
·Awalnya tiap orang adalah kelompoknya sendiri.
·UNION(a, b): sambungkan akar satu kelompok ke akar kelompok lain.
·FIND(x): telusuri induk x sampai ke akar kelompoknya.
·Dua orang terhubung bila FIND(a) == FIND(b).
Prerequisites
·Konsep pointer / induk
·Pohon sederhana
·Perbandingan
Real-World Uses
·Cek apakah dua orang satu lingkaran pertemanan di media sosial.
·Deteksi komponen terhubung dalam jaringan.
·Dipakai algoritma Kruskal untuk membangun jaringan termurah.
Complexityhampir O(1) per operasi (dengan path-compression)
Binary heap adalah pohon biner lengkap dengan satu aturan: tiap induk selalu lebih besar (atau lebih kecil) dari anak-anaknya, sehingga nilai ekstrem selalu berada di akar. Menyisip nilai baru berarti menaruhnya di ujung lalu menaikkannya (sift-up) menukar dengan induk selama lebih besar; mengambil nilai teratas berarti mengeluarkan akar, memindahkan node terakhir ke atas, lalu menurunkannya (sift-down). Inilah mesin di balik Antrian Prioritas. Visualisasi membangun heap lalu mengambil nilai maksimum.
Example use case
Struktur yang membuat Antrian Prioritas cepat: triase IGD, penjadwal tugas sistem, dan algoritma Dijkstra semuanya memakai heap di dalamnya.
Syllabus
Pohon dengan aturan induk >= anak, jadi nilai maksimum selalu di akar; sisip = naik, ambil = turun, keduanya O(log n).
Objectives
·Memahami sifat heap (induk >= anak)
·Menjelaskan sift-up saat menyisip dan sift-down saat mengambil
·Mengaitkan heap dengan Antrian Prioritas
How It Works
·Simpan pohon biner lengkap sebagai array (anak indeks i = 2i+1 dan 2i+2).
·Sisip: taruh di ujung, tukar ke atas (sift-up) selama lebih besar dari induk.
·Ambil-max: keluarkan akar, node terakhir ke akar, turunkan (sift-down) tukar anak terbesar.
·Nilai maksimum selalu siap diambil di akar.
Prerequisites
·Pohon biner
·Array sebagai representasi pohon
·Perbandingan nilai
Real-World Uses
·Mesin di dalam Antrian Prioritas (triase, penjadwalan).
Binary Search Tree menyimpan nilai secara terurut: tiap node punya anak kiri yang lebih kecil dan anak kanan yang lebih besar. Menyisip atau mencari cukup menuruni satu jalur — ke kiri bila lebih kecil, ke kanan bila lebih besar — sehingga biayanya O(tinggi pohon). Penelusuran in-order menghasilkan data terurut.
Example use case
Struktur indeks untuk pencarian cepat: kamus atau buku telepon digital yang menjaga data tetap terurut sambil tetap murah menambah entri baru.
Syllabus
Pohon yang menyimpan data terurut: anak kiri lebih kecil, anak kanan lebih besar, sehingga cari dan sisip cukup menuruni satu jalur.
Objectives
·Memahami aturan kiri-lebih-kecil, kanan-lebih-besar pada BST
·Menjelaskan cara mencari dan menyisip dengan menuruni satu jalur
·Menerapkan penelusuran in-order untuk membaca data terurut
How It Works
·Mulai dari akar pohon
·Bila nilai dicari lebih kecil, turun ke anak kiri
·Bila lebih besar, turun ke anak kanan
·Berhenti saat nilai ketemu atau menemukan tempat kosong untuk sisip
·Penelusuran in-order menghasilkan semua data dalam urutan menaik
Prerequisites
·Pohon biner
·Rekursi
Real-World Uses
·Indeks buku telepon digital yang tetap terurut saat entri ditambah
·Kamus digital yang cepat dicari sekaligus mudah disisipi kata baru
Trie menyimpan kata huruf-per-huruf sebagai pohon prefix; kata dengan awalan sama berbagi jalur node yang sama. Menelusuri sebuah prefix langsung memberi semua kata yang berawalan itu. Dasar autocomplete dan kamus digital.
Example use case
Saran autocomplete: mengetik AP langsung memunculkan API dan APEL yang berbagi awalan sama.
Syllabus
Pohon prefix yang menyimpan kata huruf per huruf, sehingga kata berawalan sama berbagi jalur dan prefix bisa dicari instan.
Objectives
·Memahami penyimpanan kata sebagai jalur huruf pada pohon
·Menjelaskan bagaimana awalan sama berbagi node yang sama
·Menerapkan penelusuran prefix untuk fitur autocomplete
How It Works
·Mulai dari node akar kosong
·Tiap huruf kata menjadi satu langkah turun ke node anak
·Kata dengan awalan sama memakai jalur node yang sama
·Tandai node terakhir sebagai akhir sebuah kata
·Telusuri sebuah prefix untuk mendapat semua kata di bawahnya
Prerequisites
·Pohon
·String
Real-World Uses
·Saran autocomplete: ketik 'AP' langsung muncul 'API' dan 'APEL'
Ini adalah demonstrasi rekursi murni yang menggambar fraktal pohon: fungsi menggambar satu cabang lalu memanggil dirinya sendiri dua kali untuk membuat cabang kiri dan kanan yang lebih pendek dan miring. Rekursi berhenti ketika kedalaman (depth) mencapai nol sebagai base case. Visualisasi menampilkan pohon yang tumbuh semakin rimbun seiring bertambahnya level rekursi.
Example use case
Pembuatan grafik fraktal, ornamen prosedural, atau model pertumbuhan tanaman dalam game dan animasi.
Syllabus
Rekursi adalah fungsi yang memanggil dirinya sendiri pada bagian yang lebih kecil, dan berhenti saat mencapai base case.
Objectives
·Memahami konsep fungsi yang memanggil dirinya sendiri
·Menjelaskan pentingnya base case sebagai syarat berhenti
·Menerapkan rekursi untuk membuat pola bercabang seperti fraktal
How It Works
·Fungsi mengerjakan satu bagian kecil dari masalah
·Lalu memanggil dirinya sendiri untuk bagian yang lebih kecil
·Tiap panggilan membuat versi masalah semakin mengecil
·Base case menghentikan pemanggilan saat masalah cukup sederhana
·Hasil tiap panggilan digabung membentuk solusi utuh (mis. pohon fraktal)
Prerequisites
·Fungsi
·Dasar pemrograman
Real-World Uses
·Menggambar pola fraktal atau ornamen bercabang di aplikasi seni
·Model pertumbuhan pohon dan tanaman di game
·Efek visual bercabang seperti petir atau akar di animasi
ComplexityTergantung masalah; fraktal pohon O(2^depth) cabang
Fibonacci naif menghitung ulang subpohon yang sama berkali-kali sehingga pohon rekursi meledak. Memoization menyimpan hasil tiap nilai sekali (cache), sehingga panggilan berulang langsung dipakai ulang. Gerbang paling halus dari rekursi menuju Dynamic Programming.
Example use case
Optimasi fungsi rekursif apa pun yang menghitung ulang hal sama: simpan hasil agar tak dihitung dua kali.
Syllabus
Memoization menyimpan hasil tiap perhitungan sekali di cache, mengubah Fibonacci naif yang meledak jadi sangat cepat.
Objectives
·Memahami kenapa Fibonacci naif menghitung ulang hal yang sama
·Menjelaskan cara cache menyimpan hasil agar dipakai ulang
·Menerapkan memoization sebagai jembatan ke Dynamic Programming
How It Works
·Fibonacci naif memanggil dirinya dua kali sehingga subpohon berulang
·Siapkan cache untuk menyimpan hasil tiap nilai yang sudah dihitung
·Sebelum menghitung, cek dulu apakah hasilnya sudah ada di cache
·Bila ada, langsung pakai; bila belum, hitung lalu simpan ke cache
·Perhitungan berulang jadi hilang sehingga jauh lebih cepat
Prerequisites
·Rekursi
·Array atau map
Real-World Uses
·Menyimpan hasil perhitungan berat agar tidak diulang di aplikasi
·Cache skor atau data yang sering diminta ulang di game
·Mempercepat fungsi yang dipanggil berkali-kali dengan input sama
ComplexityO(n) dengan memo, dibanding O(2^n) versi naif
Tower of Hanoi memindahkan tumpukan enam cakram dari tiang A ke tiang C dengan aturan cakram besar tidak boleh di atas cakram kecil. Algoritma memecah masalah secara rekursif: pindahkan n-1 cakram ke tiang bantu, pindahkan cakram terbesar ke tujuan, lalu pindahkan n-1 cakram ke atasnya. Visualisasi menunjukkan tiga tiang dengan cakram bergerak satu per satu hingga selesai dalam 63 langkah rekursif.
Example use case
Menghitung urutan langkah minimal pada teka-teki pemindahan barang atau backup data berjenjang yang harus dipindah tanpa melewati batas kapasitas.
Syllabus
Tower of Hanoi memindahkan tumpukan cakram antar tiang dengan aturan cakram besar tak boleh di atas cakram kecil, diselesaikan secara rekursif.
Objectives
·Memahami aturan pemindahan cakram besar dan kecil
·Menjelaskan pemecahan rekursif jadi tiga langkah
·Menerapkan rumus 2^n - 1 untuk menghitung langkah minimum
How It Works
·Untuk memindahkan n cakram, selesaikan dalam tiga tahap
·Pindahkan n-1 cakram teratas ke tiang bantu (rekursif)
·Pindahkan cakram terbesar langsung ke tiang tujuan
·Pindahkan n-1 cakram tadi dari tiang bantu ke tiang tujuan
·Total langkah minimum selalu 2^n - 1
Prerequisites
·Rekursi
Real-World Uses
·Teka-teki pemindahan barang bertingkat tanpa melewati batas kapasitas
·Strategi rotasi backup data berjenjang di komputer
Flood Fill menyebarkan satu warna baru ke semua sel yang terhubung dan memiliki warna awal yang sama. Algoritma memakai antrian (BFS): ambil sel dari antrian, lewati bila warnanya berbeda dari warna asal, ubah menjadi warna baru, lalu masukkan tetangga valid ke antrian. Visualisasi grid menandai sel painted, queue, dan source sampai seluruh area terhubung terisi.
Example use case
Fitur ember cat (bucket fill) pada aplikasi menggambar seperti Paint yang mewarnai satu area tertutup dengan sekali klik.
Syllabus
Flood Fill mengganti warna semua sel yang terhubung dan berwarna sama, persis seperti tombol ember cat.
Objectives
·Memahami arti sel terhubung dengan warna yang sama
·Menjelaskan cara antrian menyebarkan warna baru ke area
·Menerapkan Flood Fill untuk mewarnai satu area tertutup
How It Works
·Catat warna asal sel yang diklik sebagai patokan
·Masukkan sel awal ke antrian
·Ambil sel dari antrian; lewati bila warnanya beda dari warna asal
·Ubah sel jadi warna baru, lalu masukkan tetangganya ke antrian
·Ulangi sampai antrian kosong dan seluruh area terhubung terisi
Prerequisites
·Antrian (queue)
·Grid 2D
Real-World Uses
·Tombol ember cat di Paint mewarnai satu area dengan sekali klik
·Game seperti Minesweeper membuka petak kosong yang bersebelahan
·Fitur pilih area warna serupa di aplikasi edit foto
Bellman-Ford mencari jalur terpendek dari satu sumber dengan merelaksasi SEMUA sisi sebanyak V-1 kali. Berbeda dari Dijkstra, ia menangani bobot negatif dan bisa mendeteksi siklus negatif. Lebih lambat, tapi lebih umum.
Example use case
Rute dengan biaya bisa negatif (mis. subsidi atau diskon di ruas tertentu) yang tak bisa ditangani Dijkstra.
Syllabus
Bellman-Ford mencari jalur terpendek dengan me-relaksasi semua sisi berkali-kali, dan sanggup menangani bobot negatif yang tak bisa dipakai Dijkstra.
Objectives
·Memahami proses relaksasi semua sisi sebanyak V-1 kali
·Menjelaskan kelebihan Bellman-Ford saat ada bobot negatif
·Menerapkan deteksi siklus negatif pada graf
How It Works
·Awali jarak semua simpul sebagai tak hingga kecuali sumber = 0
·Relaksasi setiap sisi: perbarui jarak tujuan bila lewat sisi itu lebih murah
·Ulangi relaksasi semua sisi sebanyak V-1 kali
·Bila masih ada jarak yang bisa turun pada iterasi ekstra, berarti ada siklus negatif
·Hasil akhir adalah jarak terpendek dari sumber ke semua simpul
Prerequisites
·Graf berbobot
·Dijkstra
Real-World Uses
·Rute yang punya diskon atau subsidi di ruas tertentu (biaya bisa minus)
·Cari peluang tukar mata uang yang untung berulang di aplikasi trading
·Hitung ongkos jaringan saat sebagian jalur justru menambah saldo
DFS Maze menelusuri labirin secara mendalam (Depth-First Search) dengan menjelajah satu jalur sejauh mungkin sebelum mundur dari jalan buntu. Setiap sel ditandai lalu rekursi masuk ke tetangga yang masih bebas; jika mencapai tujuan jalur dicatat, jika buntu algoritma backtrack ke persimpangan sebelumnya. Visualisasi menandai sel yang dikunjungi, dead end, dan jalur solusi hingga jalur terkunci dari awal ke tujuan.
Example use case
Menelusuri semua kemungkinan cabang untuk menemukan jalan keluar labirin, atau crawler yang menjelajah tautan situs secara mendalam.
Syllabus
DFS menjelajah satu jalur sedalam mungkin dulu, lalu mundur (backtrack) dari jalan buntu untuk mencoba cabang lain.
Objectives
·Memahami cara DFS masuk sedalam mungkin sebelum mundur
·Menjelaskan peran backtracking saat menemui jalan buntu
·Menerapkan DFS untuk menelusuri labirin atau cabang
How It Works
·Mulai dari satu simpul, tandai sudah dikunjungi
·Masuk ke salah satu tetangga yang belum dikunjungi secara rekursif
·Terus melaju sejauh mungkin menyusuri satu cabang
·Saat mentok jalan buntu, mundur ke persimpangan sebelumnya
·Coba cabang lain sampai semua simpul terjelajahi atau target ketemu
Prerequisites
·Rekursi
·Graf
Real-World Uses
·Menelusuri semua cabang labirin untuk menemukan jalan keluar
·Crawler menjelajahi tautan sebuah situs sampai ke halaman terdalam
·Mengecek semua kemungkinan langkah di game teka-teki
Dijkstra adalah algoritma graf yang mencari rute termurah dari simpul awal ke tujuan pada graf berbobot non-negatif. Ia selalu mengambil simpul dengan jarak sementara terkecil dari antrean prioritas, lalu melakukan relaksasi (memperbarui) jarak ke tetangganya bila ditemukan jalur lebih pendek. Visualisasi menampilkan graf berbobot dengan simpul yang diproses dan jalur optimal yang ditelusuri di akhir.
Example use case
Navigasi Google Maps mencari rute tercepat antar persimpangan pada jaringan jalan.
Syllabus
Dijkstra mencari rute termurah pada graf berbobot non-negatif dengan selalu memproses simpul berjarak terkecil dari antrean prioritas.
Objectives
·Memahami peran priority queue dalam memilih simpul terdekat
·Menjelaskan proses relaksasi jarak ke tetangga
·Menerapkan Dijkstra untuk menghitung rute tercepat
How It Works
·Set jarak sumber = 0 dan simpul lain = tak hingga
·Ambil simpul dengan jarak sementara terkecil dari priority queue
·Relaksasi tetangga: perbarui jaraknya bila lewat simpul ini lebih pendek
·Tandai simpul sebagai selesai agar tidak diproses ulang
·Ulangi sampai tujuan tercapai atau semua simpul selesai
Prerequisites
·Graf berbobot
·Priority queue (min-heap)
Real-World Uses
·Google Maps hitung rute tercepat antar persimpangan berdasarkan waktu tempuh
·Aplikasi ojek online cari jalur dengan ongkos jarak paling murah
·Jaringan internet memilih jalur data dengan latency terkecil
Breadth-First Search menelusuri labirin lapis demi lapis untuk menemukan jalur terpendek pada grid tanpa bobot. Ia memakai antrian (queue) FIFO dan himpunan sel yang sudah dikunjungi agar setiap sel diproses satu kali. Visualisasi menampilkan gelombang sel yang dikunjungi meluas dari titik awal hingga mencapai target, lalu menyorot jalur terpendek.
Example use case
Fitur pathfinding pada game agar karakter musuh menemukan rute terpendek menuju pemain di peta berbasis petak.
Syllabus
BFS menelusuri graf lapis demi lapis pakai antrian, sehingga selalu menemukan jalur terpendek pada peta tanpa bobot.
Objectives
·Memahami cara antrian FIFO memproses simpul lapis demi lapis
·Menjelaskan kenapa BFS menjamin jalur terpendek tanpa bobot
·Menerapkan BFS untuk mencari rute pada labirin grid
How It Works
·Masukkan simpul awal ke antrian dan tandai sudah dikunjungi
·Ambil simpul dari depan antrian, lalu proses
·Masukkan semua tetangga yang belum dikunjungi ke belakang antrian
·Ulangi sampai antrian kosong atau target tercapai
·Karena diproses lapis demi lapis, target pertama kali ditemui via jalur terpendek
Prerequisites
·Antrian (queue)
·Graf
Real-World Uses
·Musuh di game menemukan rute terpendek ke pemain di peta petak
·Simulasi evakuasi menghitung jalan keluar tercepat saat api menyebar
·Cari teman-terdekat sejauh 2 langkah di jejaring sosial
PageRank menilai pentingnya sebuah halaman dari siapa saja yang menautnya. Tiap link dihitung sebagai suara, tetapi suara dari halaman penting bernilai lebih besar, dan tiap halaman membagi pengaruhnya rata ke semua yang ia taut. Nilai ini dihitung berulang sampai stabil. Halaman yang ditaut banyak halaman penting mendapat peringkat tertinggi. Visualisasi mengalirkan rank antar halaman sampai satu halaman jelas menang.
Example use case
Mesin pencari Google mengurutkan hasil pencarian, dan algoritma sejenis dipakai untuk menilai akun atau konten mana yang paling berpengaruh di media sosial.
Syllabus
Halaman penting = ditaut banyak halaman yang juga penting; hitung berulang sampai peringkat stabil.
Objectives
·Memahami analisis link sebagai suara berbobot
·Menjelaskan proses iteratif sampai angka stabil
·Mengaitkan dengan cara mesin pencari & feed menilai konten
How It Works
·Beri semua halaman rank awal yang sama.
·Tiap halaman membagi rank-nya rata ke semua halaman yang ia taut.
·Rank baru tiap halaman = jumlah suara yang masuk (plus faktor peredam).
·Ulangi sampai angka berhenti berubah — itulah peringkat akhir.
Prerequisites
·Graf berarah (node dan panah)
·Pecahan dan persentase
·Perulangan
Real-World Uses
·Pengurutan hasil pada mesin pencari Google.
·Menilai akun atau konten paling berpengaruh di media sosial.
·Analisis jaringan sitasi ilmiah dan sistem rekomendasi.
Pembangkitan labirin berbasis algoritma Prim menumbuhkan lorong mulai dari satu sel benih. Dinding di sekitar sel yang telah dikunjungi ditambahkan ke frontier; algoritma memilih dinding secara acak, dan jika sel di seberangnya belum dikunjungi, dinding tersebut dibuka menjadi lorong dan dinding baru ditambahkan ke frontier. Proses berlanjut hingga seluruh sel terhubung. Visualisasi menampilkan grid dengan lorong yang tumbuh sampai labirin lengkap.
Example use case
Pembangkitan peta labirin acak secara prosedural pada game atau level generator.
Syllabus
Prim menumbuhkan labirin dari satu sel benih, memperluas lorong dengan membuka dinding acak dari daftar frontier.
Objectives
·Memahami konsep frontier sebagai daftar dinding kandidat
·Menjelaskan cara lorong tumbuh dari satu sel awal
·Menerapkan Prim untuk membangkitkan labirin acak
How It Works
·Pilih satu sel benih dan tandai sudah dikunjungi
·Tambahkan dinding di sekitar sel itu ke daftar frontier
·Pilih satu dinding acak dari frontier
·Bila sel di seberangnya belum dikunjungi, buka dinding jadi lorong
·Tambahkan dinding baru ke frontier, ulangi sampai semua sel terhubung
Prerequisites
·Graf
·Grid 2D
Real-World Uses
·Membangkitkan peta labirin acak secara prosedural di game
·Level generator yang bikin stage baru tiap kali main
·Membuat pola maze unik untuk teka-teki di aplikasi
ComplexityO(V log V) atau O(E) tergantung struktur frontier
Topological Sort mengurutkan simpul pada graf berarah tanpa siklus (DAG) sehingga setiap prasyarat muncul sebelum yang membutuhkannya. Algoritma Kahn: ambil simpul tanpa prasyarat (in-degree 0), keluarkan, hapus panah keluarnya, ulangi. Hasilnya urutan yang valid.
Example use case
Menyusun urutan mata pelajaran: Matematika Dasar harus sebelum Fisika, Fisika sebelum materi lanjutannya.
Syllabus
Topological Sort mengurutkan simpul pada graf berarah tanpa siklus (DAG) sehingga setiap prasyarat selalu muncul sebelum yang membutuhkannya.
Objectives
·Memahami arti DAG dan konsep prasyarat antar simpul
·Menjelaskan cara kerja algoritma Kahn lewat in-degree
·Menerapkan urutan topologis untuk menyusun langkah bertahap
How It Works
·Hitung in-degree tiap simpul (berapa panah masuk = jumlah prasyarat)
·Ambil semua simpul dengan in-degree 0 (tanpa prasyarat)
·Keluarkan simpul itu ke hasil urutan, hapus panah keluarnya
·Kurangi in-degree tetangga; yang jadi 0 masuk antrean berikutnya
·Ulangi sampai semua simpul terurut menjadi rangkaian yang valid
Prerequisites
·Graf berarah (directed graph)
·Antrian (queue)
Real-World Uses
·Menyusun urutan mata pelajaran: Matematika Dasar sebelum Fisika
·Build tool menentukan file mana dikompilasi lebih dulu
·Urutan misi di game yang mengunci quest lanjutan sampai prasyarat selesai
Visualisasi ini membandingkan dua algoritma pencarian jalur secara berdampingan: BFS memperluas simpul secara buta (menyebar merata ke segala arah), sedangkan A* menggunakan heuristik f = g + h untuk mengarahkan pencarian menuju tujuan. Hasilnya A* mencapai target dengan jauh lebih sedikit simpul yang dieksplorasi. Visualisasi menampilkan dua grid yang berlomba dengan penghitung jumlah sel yang dikunjungi masing-masing.
Example use case
Membandingkan strategi pathfinding pada AI game untuk menentukan metode paling efisien menuju target.
Syllabus
Dibanding BFS yang menyebar ke segala arah, A* memakai heuristik sehingga mengunjungi jauh lebih sedikit sel untuk sampai tujuan.
Objectives
·Memahami perbedaan cara BFS dan A* menjelajahi grid
·Menjelaskan kenapa heuristik membuat A* lebih hemat langkah
·Menerapkan perbandingan untuk memilih algoritma pathfinding yang pas
How It Works
·BFS memperluas semua tetangga merata tanpa tahu arah tujuan
·A* menghitung f = g + h sehingga condong bergerak ke arah goal
·Kedua algoritma dijalankan berdampingan pada grid yang sama
·Penghitung sel yang dikunjungi menunjukkan siapa yang lebih efisien
·A* biasanya menang karena tidak membuang waktu ke arah yang salah
Prerequisites
·Breadth-First Search
·A* Search
Real-World Uses
·Memilih mesin pathfinding tercepat untuk AI musuh di game
·Menentukan algoritma rute agar aplikasi maps hemat baterai HP
·Membandingkan dua cara cari rute saat ojek online hitung jalur
ComplexityBFS O(V+E) melebar; A* O(E) lebih terarah berkat heuristik
Algoritma ini membangun labirin acak yang tetap terhubung menggunakan Kruskal dengan struktur Union-Find. Dinding diproses dalam urutan acak; sebuah dinding dibuka hanya jika dua sel di kedua sisinya belum berada dalam himpunan yang sama, lalu kedua himpunan digabung. Visualisasi menampilkan jumlah grup yang menyusut dari 22 menjadi 1 sampai seluruh sel menyatu jadi satu graf terhubung.
Example use case
Pembuatan level labirin acak yang selalu bisa diselesaikan pada game maze atau prosedur generasi peta.
Syllabus
Kruskal membangun labirin terhubung dengan membuka dinding acak hanya jika kedua sisinya belum tergabung, dicek cepat lewat Union-Find.
Objectives
·Memahami cara Union-Find mengecek dua sel sudah tergabung atau belum
·Menjelaskan kenapa dinding dibuka hanya bila menyatukan dua grup berbeda
·Menerapkan Kruskal untuk membuat labirin acak yang selalu bisa dilewati
How It Works
·Anggap tiap sel sebagai grup tersendiri di awal
·Acak urutan semua dinding yang mungkin dibuka
·Untuk tiap dinding, cek apakah dua sel di sisinya sudah satu grup
·Bila beda grup, buka dinding dan gabungkan (union) kedua grup
·Ulangi sampai semua sel menyatu jadi satu graf terhubung
Prerequisites
·Graf
·Union-Find (disjoint set)
Real-World Uses
·Membuat level labirin acak yang dijamin bisa diselesaikan di game
·Prosedur generasi peta pada game petualangan
·Merancang jaringan kabel termurah yang menghubungkan semua titik
ComplexityO(E log E) dengan Union-Find hampir konstan per operasi
Video ini membandingkan dua algoritma pencari jalur terpendek pada labirin yang sama: Dijkstra dan A* Search. Dijkstra menjelajah ke segala arah berdasarkan jarak sejauh ini, sedangkan A* memakai heuristik untuk mengarah ke tujuan sehingga umumnya mengunjungi lebih sedikit sel. Visualisasi menampilkan kedua penelusuran berdampingan dengan hitungan cells visited sebagai ukuran efisiensi.
Example use case
Membandingkan mesin routing peta digital untuk memilih algoritma tercepat saat menghitung rute pengantaran ojek online.
Syllabus
Membandingkan algoritma pencari jalur berdampingan di labirin yang sama menunjukkan kapan tiap algoritma paling cocok dipakai.
Objectives
·Memahami perbedaan cara BFS, Dijkstra, dan A* menjelajahi peta
·Menjelaskan kapan bobot dan heuristik memengaruhi pilihan algoritma
·Menerapkan perbandingan untuk memilih algoritma rute yang tepat
How It Works
·Jalankan dua algoritma pada labirin identik secara bersamaan
·BFS optimal saat semua langkah berbobot sama
·Dijkstra menimbang biaya tiap jalur, cocok untuk graf berbobot
·A* menambah heuristik agar pencarian mengarah ke tujuan
·Bandingkan jumlah sel yang dikunjungi dan total biaya sebagai ukuran efisiensi
Prerequisites
·Breadth-First Search
·Dijkstra
·A* Search
Real-World Uses
·Memilih BFS atau Dijkstra untuk peta game tergantung biaya tiap petak
·Menentukan mesin rute tercepat untuk pengantaran ojek online
·Menguji algoritma navigasi mana yang paling hemat untuk aplikasi maps
RRT (Rapidly-exploring Random Tree) membangun jalur dengan menumbuhkan pohon dari titik start ke arah sampel acak di ruang. Untuk tiap sampel, dicari node terdekat lalu ditarik (steer) satu langkah ke arahnya; jika terhalang rintangan langkah ditolak, jika tidak node baru ditambahkan ke pohon hingga cukup dekat dengan goal. Visualisasi menunjukkan cabang-cabang acak yang tumbuh menghindari balok rintangan sampai rute mencapai target.
Example use case
Perencanaan gerak lengan robot atau drone yang mencari lintasan bebas tabrakan di ruang dengan banyak rintangan.
Syllabus
RRT membangun jalur dengan menumbuhkan pohon acak dari titik start, melangkah sedikit demi sedikit ke arah sampel acak sambil menghindari rintangan.
Objectives
·Memahami cara pohon tumbuh menuju titik-titik sampel acak
·Menjelaskan langkah steer dan penolakan bila terhalang rintangan
·Menerapkan RRT untuk merencanakan lintasan bebas tabrakan
How It Works
·Mulai pohon hanya dengan node start
·Ambil satu titik sampel acak di ruang
·Cari node pohon terdekat ke sampel itu
·Steer satu langkah kecil dari node terdekat ke arah sampel
·Tolak langkah bila menabrak rintangan, kalau bebas tambahkan node baru sampai dekat goal
Prerequisites
·Pohon (tree)
·Koordinat 2D
Real-World Uses
·Perencanaan gerak lengan robot agar tidak menabrak benda
·Drone mencari lintasan bebas halangan di ruang penuh rintangan
·Mobil otonom merencanakan manuver di area sempit
ComplexityO(n log n) untuk n sampel dengan pencarian tetangga terdekat
A* mencari solusi 8-puzzle dengan mengevaluasi setiap state memakai f = g + h, di mana g adalah jumlah langkah yang sudah ditempuh dan h adalah heuristik jarak Manhattan tiap ubin ke posisi targetnya. Algoritma selalu mengembangkan state dengan f terkecil dari open set, sehingga menemukan rangkaian geseran ubin paling pendek. Visualisasi menampilkan grid 3x3 yang bergeser tiap langkah beserta nilai g, h, open, dan closed.
Example use case
Fitur auto-solve pada aplikasi puzzle geser (15-puzzle) yang mencari urutan gerakan tersingkat menuju susunan benar.
Syllabus
A* mencari jalur terpendek dengan memilih node yang punya f = g + h terkecil, jadi pencariannya terarah ke tujuan.
Objectives
·Memahami arti g (biaya nyata dari start) dan h (perkiraan jarak ke tujuan)
·Menjelaskan kenapa rumus f = g + h membuat A* lebih pintar dari BFS biasa
·Menerapkan A* untuk mencari rute pada grid berhalangan
How It Works
·Simpan node yang belum diproses di open set, lalu ambil node dengan f terkecil
·Hitung f = g + h untuk tiap node: g biaya sejauh ini, h tebakan jarak ke goal
·Perbarui tetangga bila ditemukan jalur yang lebih murah, dan catat parent-nya
·Pindahkan node yang sudah selesai ke closed set agar tidak diproses ulang
·Berhenti saat goal tercapai, lalu telusuri parent mundur untuk membentuk jalur
Prerequisites
·Breadth-First Search
·Priority queue
·Graf berbobot
Real-World Uses
·Google Maps memilih rute tercepat ke sekolah dengan menebak arah tujuan
·NPC musuh di game mengejar pemain sambil menghindari tembok
·Fitur auto-solve pada aplikasi puzzle geser mencari gerakan tersingkat
ComplexityO(E) dengan priority queue, tergantung kualitas heuristik h
Coin Change mencari jumlah koin MINIMUM untuk suatu nominal. Dynamic Programming mengisi dp dari nilai kecil ke besar: dp[v] = 1 + min(dp[v - tiap koin]). Telusur balik menunjukkan koin mana yang dipakai. Relatable lewat masalah kembalian.
Example use case
Mesin kasir menghitung kembalian dengan jumlah lembar atau keping uang paling sedikit.
Syllabus
Coin Change mencari jumlah koin paling sedikit untuk suatu nominal dengan membangun jawaban dari nilai kecil ke besar.
Objectives
·Memahami cara memecah nominal besar menjadi sub-nominal kecil
·Menjelaskan rumus dp[v] = 1 + min(dp[v - koin])
·Menerapkan DP untuk menghitung kembalian paling hemat
Edit Distance menghitung jumlah minimal operasi (sisip, hapus, ganti) untuk mengubah satu kata jadi kata lain. Dynamic Programming mengisi tabel: tiap sel = biaya termurah dari tiga tetangganya. Ini otak di balik autocorrect dan saran ejaan.
Example use case
Autocorrect: mengukur seberapa mirip kata yang salah ketik dengan kandidat perbaikan untuk memilih yang paling dekat.
Syllabus
Edit Distance menghitung jumlah minimal operasi sisip, hapus, atau ganti untuk mengubah satu kata menjadi kata lain.
Objectives
·Memahami tiga operasi dasar: sisip, hapus, dan ganti huruf
·Menjelaskan cara tabel DP mengambil biaya termurah dari tetangga
·Menerapkan Edit Distance untuk mengukur kemiripan dua kata
How It Works
·Buat tabel di mana baris dan kolom mewakili tiap huruf kedua kata
·Isi baris dan kolom pertama dengan biaya mengubah dari/ke kata kosong
·Bila dua huruf sama, salin nilai diagonal (tanpa biaya tambahan)
·Bila beda, ambil 1 + minimum dari sisip, hapus, atau ganti
·Nilai di pojok kanan bawah adalah jarak edit minimum
Prerequisites
·Tabel 2D (matriks)
·String
Real-World Uses
·Autocorrect memilih koreksi paling mirip dengan kata yang salah ketik
·Fitur saran ejaan saat mengetik pesan di HP
·Mesin pencari menebak maksud saat kata kunci typo
Algoritma Kadane mencari deret bagian (subarray) berurutan dengan jumlah terbesar, hanya dalam satu kali telusur. Idenya sederhana: di tiap langkah, pilih memperpanjang deret sebelumnya atau memulai deret baru dari titik ini — mana yang lebih menguntungkan. Dengan begitu jumlah terbaik ditemukan tanpa mengecek semua kemungkinan. Visualisasi menjalankan dompet berjalan dan menyorot jendela paling untung.
Example use case
Mencari rentang hari beli dan jual yang memberi keuntungan maksimal dari sederet naik-turun harga harian.
Syllabus
Di tiap langkah, perpanjang deret atau mulai baru — mana yang lebih untung; lacak nilai terbaik.
Objectives
·Memahami ide dasar pemrograman dinamis
·Menjelaskan pilihan lanjut atau mulai ulang di tiap langkah
·Menemukan subarray berjumlah maksimum dalam satu telusur
How It Works
·Jalankan dompet berjalan mulai dari 0.
·Di tiap elemen, dompet menjadi nilai maksimum antara elemen itu sendiri dan dompet ditambah elemen.
·Bila dompet menjadi negatif, buang dan mulai deret baru.
·Catat nilai dompet terbesar yang pernah dicapai sebagai jawaban.
LCS mencari deret huruf terpanjang yang muncul di dua teks dengan urutan yang sama (boleh diselang-seling). Sebuah tabel dinamis diisi: bila dua huruf cocok, nilainya = diagonal kiri-atas + 1; bila beda, ambil yang terbesar dari atas atau kiri. Menelusuri balik tabel memberi deret bersama itu. Inilah inti dari membandingkan dua versi teks. Visualisasi mengisi tabel dan menyorot sel-sel yang cocok.
Example use case
Fitur git diff yang menandai perbedaan dua versi kode, dan alat pendeteksi plagiat yang mencari bagian yang sama antara dua dokumen.
Syllabus
Isi tabel: huruf cocok = diagonal+1, huruf beda = max(atas, kiri); telusuri balik untuk deret bersamanya.
Objectives
·Memahami pemrograman dinamis pada dua dimensi
·Menjelaskan aturan sel cocok vs sel beda
·Menelusuri balik solusi dari tabel yang sudah terisi
How It Works
·Buat tabel (panjang X+1) × (panjang Y+1) berisi 0.
·Untuk tiap pasang huruf: bila SAMA, sel = diagonal kiri-atas + 1.
·Bila BEDA, sel = nilai terbesar dari atas atau kiri.
·Telusuri balik dari pojok kanan-bawah — huruf-huruf cocok menyusun LCS.
Knapsack 0/1 memilih subset barang agar nilai total maksimum tanpa melewati batas kapasitas. Dynamic Programming mengisi tabel dp[barang][kapasitas]: tiap sel = max(LEWATI barang ini, AMBIL barang ini + nilai sisa kapasitas). Telusur balik dari pojok tabel menunjukkan barang mana yang terpilih.
Example use case
Alokasi anggaran atau ruang terbatas: memilih kombinasi proyek atau muatan dengan keuntungan terbesar di bawah batas biaya atau berat.
Syllabus
Knapsack 0/1 memilih kombinasi barang bernilai maksimum tanpa melewati batas kapasitas, tiap barang diambil utuh atau tidak sama sekali.
Objectives
·Memahami pilihan ambil-atau-lewati untuk tiap barang
·Menjelaskan cara tabel dp[barang][kapasitas] dibangun
·Menerapkan telusur balik untuk tahu barang mana yang terpilih
How It Works
·Buat tabel dp berdasarkan barang (baris) dan sisa kapasitas (kolom)
·Untuk tiap sel, hitung nilai bila barang ini DILEWATI
·Hitung juga nilai bila barang ini DIAMBIL plus nilai sisa kapasitas
·Ambil yang lebih besar di antara dua pilihan itu
·Telusuri balik dari pojok tabel untuk menemukan barang yang dipilih
Prerequisites
·Tabel 2D (matriks)
·Coin Change (DP)
Real-World Uses
·Memilih barang bawaan ke dalam tas dengan berat terbatas saat liburan
·Alokasi uang jajan terbatas untuk kombinasi barang paling berguna
·Menentukan muatan paket kurir agar nilai kiriman maksimal di bawah batas berat
Activity Selection adalah masalah greedy klasik: dari sekumpulan kegiatan dengan waktu mulai dan selesai, pilih sebanyak mungkin yang tidak bertabrakan. Kuncinya, urutkan kegiatan berdasarkan waktu SELESAI paling awal, lalu pilih setiap kegiatan yang mulainya tidak menabrak kegiatan terpilih terakhir. Selalu mengambil yang selesai paling dulu menyisakan waktu terbanyak untuk sisanya. Visualisasi menyusun kegiatan di garis waktu dan memilih yang muat.
Example use case
Menyusun jadwal kegiatan OSIS atau ekskul agar satu ruangan bisa dipakai untuk sebanyak mungkin acara dalam sehari.
Syllabus
Urutkan berdasarkan waktu selesai; pilih tiap kegiatan yang mulainya tidak menabrak yang terakhir dipilih.
Objectives
·Memahami strategi greedy (pilihan terbaik lokal)
·Menjelaskan mengapa memilih yang selesai paling awal itu optimal
·Menerapkan pengecekan tumpang-tindih waktu
How It Works
·Urutkan semua kegiatan berdasarkan waktu selesai paling awal.
·Pilih kegiatan pertama (yang selesai paling dulu).
·Untuk sisanya, pilih bila mulainya >= selesai kegiatan terakhir yang dipilih.
·Lewati yang bertabrakan — hasilnya jumlah kegiatan maksimum.
Prerequisites
·Interval waktu (mulai, selesai)
·Pengurutan
·Perbandingan
Real-World Uses
·Menjadwalkan pemakaian satu ruangan atau lapangan.
Huffman Coding membangun kode biner hemat dengan berulang menggabung dua frekuensi terkecil menjadi satu pohon. Simbol yang sering muncul dapat kode pendek, yang jarang dapat kode panjang. Dasar kompresi seperti ZIP dan JPEG.
Example use case
Kompresi teks atau berkas: huruf yang sering muncul (mis. spasi, e) diberi kode terpendek agar ukuran total mengecil.
Syllabus
Huffman Coding memberi kode pendek untuk simbol yang sering muncul dan kode panjang untuk yang jarang, agar total ukuran data mengecil.
Objectives
·Memahami hubungan frekuensi simbol dengan panjang kodenya
·Menjelaskan cara menggabung dua frekuensi terkecil jadi pohon
·Menerapkan Huffman untuk mengompresi data teks
How It Works
·Hitung frekuensi kemunculan tiap simbol
·Masukkan tiap simbol sebagai simpul ke priority queue
·Gabung dua simpul berfrekuensi terkecil jadi satu simpul induk
·Ulangi penggabungan sampai tersisa satu pohon
·Baca jalur kiri/kanan sebagai bit 0/1 untuk membentuk kode tiap simbol
Prerequisites
·Pohon biner
·Priority queue
Real-World Uses
·Kompresi file ZIP agar ukuran unduhan lebih kecil
·Format gambar JPEG memampatkan data foto
·Streaming musik menghemat kuota dengan memampatkan audio
Traveling Salesman versi heuristik serakah: dari kota sekarang selalu lompat ke kota terdekat yang belum dikunjungi, lalu kembali ke awal. Cepat dan mudah, walau tak selalu optimal. Contoh klasik trade-off antara kecepatan dan kualitas solusi.
Example use case
Menyusun rute pengantaran cepat: dari titik sekarang menuju pelanggan terdekat berikutnya.
Syllabus
TSP Nearest-Neighbor menyusun rute keliling dengan selalu melompat ke kota terdekat yang belum dikunjungi, cepat tapi belum tentu paling optimal.
Objectives
·Memahami strategi serakah memilih kota terdekat berikutnya
·Menjelaskan trade-off antara kecepatan dan kualitas solusi
·Menerapkan heuristik nearest-neighbor untuk menyusun rute
How It Works
·Mulai dari satu kota sebagai titik awal
·Dari kota sekarang, pilih kota terdekat yang belum dikunjungi
·Pindah ke kota itu dan tandai sudah dikunjungi
·Ulangi sampai semua kota terlewati
·Kembali ke kota awal untuk menutup rute keliling
Prerequisites
·Graf berbobot
·Algoritma greedy
Real-World Uses
·Kurir menyusun urutan antar paket ke pelanggan terdekat berikutnya
·Driver Gojek mengambil orderan terdekat agar cepat sampai
·Merencanakan urutan kunjungan tempat wisata paling dekat saat liburan
Graph Coloring memberi warna pada setiap simpul graf sehingga tidak ada dua simpul bertetangga yang berwarna sama, menggunakan pendekatan backtracking. Untuk tiap node dicoba warna dari palet; jika aman (tidak bentrok dengan tetangga) lanjut ke node berikutnya, jika buntu warna dibatalkan dan mundur untuk mencoba pilihan lain. Visualisasi menampilkan simpul yang diwarnai bergantian, konflik yang ditandai, hingga solusi valid terkunci.
Example use case
Penjadwalan ujian agar mata kuliah dengan mahasiswa yang sama tidak dijadwalkan pada slot waktu bersamaan.
Syllabus
Graph Coloring memberi warna tiap simpul agar tak ada tetangga berwarna sama, memakai backtracking saat menemui jalan buntu.
Objectives
·Memahami aturan dua simpul bertetangga tak boleh sewarna
·Menjelaskan cara backtracking membatalkan warna yang gagal
·Menerapkan pewarnaan graf untuk masalah penjadwalan
How It Works
·Ambil satu simpul yang belum diwarnai
·Coba beri warna dari palet yang tersedia
·Cek aman: warna itu tidak sama dengan tetangga manapun
·Bila aman lanjut ke simpul berikutnya secara rekursif
·Bila buntu, batalkan warna (backtrack) dan coba pilihan lain sampai valid
Prerequisites
·Graf
·Backtracking
Real-World Uses
·Penjadwalan ujian agar mata kuliah dengan siswa sama tak bentrok slot
·Mengalokasikan frekuensi pemancar agar stasiun berdekatan tak saling ganggu
·Mewarnai peta wilayah agar daerah bersebelahan beda warna
Rat Maze menyelesaikan labirin dengan backtracking: tikus maju sel demi sel menandai jalur, dan bila menemui jalan buntu atau sel terhalang, ia mundur (menghapus sel dari path) lalu mencoba arah lain. Proses maju-mundur-coba lagi berlanjut sampai sel keluar (exit) tercapai. Visualisasi menampilkan jalur yang dijelajahi, sel yang ditolak/di-backtrack, hingga jalur solusi akhir terkunci.
Example use case
Penyelesaian labirin otomatis atau robot penelusur maze yang mencoba tiap cabang dan mundur saat menemui jalan buntu.
Syllabus
Rat in a Maze menyelesaikan labirin dengan backtracking: tikus maju menandai jalur dan mundur mencoba arah lain saat mentok.
Objectives
·Memahami cara menandai dan membatalkan jalur saat menjelajah
·Menjelaskan pola maju-mundur-coba lagi pada backtracking
·Menerapkan backtracking untuk menemukan jalur keluar labirin
How It Works
·Tikus maju satu sel dan menandainya sebagai bagian jalur
·Coba arah berikutnya yang bebas dan belum dilewati
·Bila menemui jalan buntu atau sel terhalang, mundur
·Hapus sel dari jalur saat mundur lalu coba arah lain
·Ulangi sampai sel keluar (exit) tercapai dan jalur solusi terbentuk
Prerequisites
·Backtracking
·Grid 2D
Real-World Uses
·Robot penelusur maze mencoba tiap cabang dan mundur saat buntu
·Penyelesaian labirin otomatis di game teka-teki
·Mencari jalan keluar pada peta bercabang secara sistematis
Knight's Tour mencari jalur di mana seekor kuda catur mengunjungi setiap kotak papan tepat satu kali. Algoritma memakai backtracking dengan heuristik Warnsdorff: langkah legal diurutkan berdasarkan jumlah lanjutan tersedia sehingga kotak paling terkurung dikunjungi lebih dulu, lalu mundur bila menemui jalan buntu. Visualisasi menomori kotak sesuai urutan kunjungan sampai seluruh 25 kotak terlewati.
Example use case
Merancang rute inspeksi mesin di lantai pabrik agar satu petugas melewati semua titik pemeriksaan tepat sekali tanpa mengulang.
Syllabus
Knight's Tour mencari jalur agar kuda catur mengunjungi setiap kotak tepat sekali, memakai backtracking sambil mundur dari jalan buntu.
Objectives
·Memahami pola langkah L kuda catur pada papan
·Menjelaskan cara backtracking membatalkan langkah yang gagal
·Menerapkan heuristik Warnsdorff untuk mempercepat pencarian
How It Works
·Kuda mencoba semua langkah L yang legal dari posisi sekarang
·Tambahkan kotak baru ke jalur bila masih kosong, lalu melangkah rekursif
·Heuristik Warnsdorff mendahulukan kotak dengan paling sedikit lanjutan
·Bila menemui jalan buntu, batalkan langkah terakhir (pop) dan coba opsi lain
·Berhenti saat seluruh kotak papan berhasil dikunjungi tepat sekali
Prerequisites
·Backtracking
·Grid 2D
Real-World Uses
·Merancang rute inspeksi mesin agar tiap titik dicek tepat sekali
·Perencanaan rute petugas yang harus singgahi semua lokasi tanpa mengulang
·Menyelesaikan teka-teki papan pada game strategi
ComplexityEksponensial tanpa heuristik; hampir linear dengan Warnsdorff
Masalah N-Queens diselesaikan dengan backtracking: pada setiap baris, algoritma mencoba menempatkan ratu di kolom yang aman (tidak diserang ratu lain), lalu melangkah rekursif ke baris berikutnya. Jika tidak ada posisi aman, penempatan terakhir dibatalkan dan kolom lain dicoba, hingga semua ratu terpasang tanpa saling menyerang. Visualisasi heatmap menampilkan papan dengan sel-sel yang terancam serangan dan konflik yang terdeteksi.
Example use case
Penyelesai masalah penempatan dengan batasan, seperti alokasi sumber daya yang tidak boleh saling bertabrakan.
Syllabus
N-Queens menempatkan N ratu di papan catur agar tak ada yang saling menyerang, memakai backtracking baris demi baris.
Objectives
·Memahami arah serangan ratu: baris, kolom, dan diagonal
·Menjelaskan cara backtracking mencoba dan membatalkan penempatan
·Menerapkan N-Queens untuk masalah penempatan tanpa bentrok
How It Works
·Tempatkan satu ratu per baris, mulai dari baris pertama
·Untuk tiap kolom, cek apakah posisi aman dari ratu lain
·Bila aman, pasang ratu lalu lanjut ke baris berikutnya secara rekursif
·Bila tak ada kolom aman, batalkan penempatan terakhir (backtrack)
·Coba kolom lain sampai semua N ratu terpasang tanpa saling menyerang
Prerequisites
·Backtracking
·Grid 2D
Real-World Uses
·Alokasi frekuensi pemancar radio agar stasiun tak saling mengganggu
·Menempatkan sumber daya yang tak boleh saling bertabrakan
·Penjadwalan agar beberapa kegiatan tak berada di slot atau ruang sama
Algoritma ini menyelesaikan Sudoku dengan mengisi sel kosong satu per satu menggunakan backtracking. Untuk tiap sel, ia mencoba angka kandidat yang valid (tidak melanggar aturan baris, kolom, dan kotak), lalu lanjut ke sel berikutnya; bila buntu, angka dihapus dan dicoba nilai lain. Visualisasi menampilkan penempatan valid dan proses menghapus angka saat backtrack hingga seluruh grid terisi benar.
Example use case
Mesin penyelesai teka-teki Sudoku otomatis pada aplikasi ponsel yang memvalidasi dan mengisi papan pengguna.
Syllabus
Sudoku Backtracking mengisi sel kosong satu per satu dengan angka valid, dan menghapusnya untuk mencoba nilai lain saat menemui jalan buntu.
Objectives
·Memahami aturan validitas angka pada baris, kolom, dan kotak
·Menjelaskan cara backtracking mundur saat tidak ada angka valid
·Menerapkan backtracking untuk menyelesaikan papan Sudoku
How It Works
·Cari sel kosong pertama pada papan
·Coba isi dengan angka kandidat yang tidak melanggar aturan
·Bila valid, lanjut mengisi sel kosong berikutnya secara rekursif
·Bila buntu (tak ada angka valid), hapus angka dan coba nilai lain
·Ulangi maju-mundur sampai seluruh grid terisi dengan benar
Prerequisites
·Backtracking
·Grid 2D
Real-World Uses
·Fitur auto-solve pada aplikasi Sudoku di ponsel
·Memvalidasi dan mengisi papan Sudoku buatan pengguna
·Generator teka-teki yang memastikan puzzle punya solusi
ComplexityEksponensial pada kasus terburuk, dipangkas oleh aturan validitas
Constraint propagation adalah teknik penyelesaian masalah batasan (CSP) yang mempersempit kandidat nilai tiap sel dengan menghapus digit yang bertentangan dengan sel tetangga (baris, kolom, dan kotak). Ketika sebuah sel hanya menyisakan satu kandidat, nilai tersebut dikunci, yang kemudian memicu eliminasi berikutnya. Visualisasi menampilkan grid Sudoku dengan konflik yang ditandai dan sel yang terkunci hingga papan terselesaikan.
Example use case
Mesin penyelesai teka-teki Sudoku atau penjadwalan otomatis yang harus memenuhi banyak batasan sekaligus.
Syllabus
Constraint Propagation menyelesaikan Sudoku dengan mempersempit kandidat tiap sel, dan ketika hanya tersisa satu kandidat nilainya dikunci.
Objectives
·Memahami arti kandidat nilai dan batasan (constraint) tiap sel
·Menjelaskan efek berantai saat satu sel terkunci
·Menerapkan propagasi batasan untuk mempersempit ruang jawaban
How It Works
·Tiap sel kosong punya daftar kandidat angka yang mungkin
·Hapus kandidat yang bentrok dengan angka di baris, kolom, dan kotak
·Bila sebuah sel hanya menyisakan satu kandidat, kunci nilainya
·Penguncian itu memicu eliminasi kandidat pada sel tetangga
·Ulangi sampai papan terselesaikan atau tak ada lagi yang bisa dipersempit
Prerequisites
·Grid 2D
·Logika himpunan
Real-World Uses
·Mesin penyelesai Sudoku otomatis di aplikasi ponsel
·Penjadwalan otomatis yang harus memenuhi banyak batasan sekaligus
·Menyusun jadwal piket kelas agar tak ada bentrok
ComplexityCepat untuk kasus mudah; sulit bisa perlu backtracking tambahan
Naive String Matching menggeser pola sepanjang teks dan membandingkan huruf per posisi di tiap offset. Bila cocok semua, pola ditemukan; bila ada yang beda, geser satu langkah dan ulang. Versi paling sederhana dari fitur Ctrl+F.
Example use case
Fitur Cari (Ctrl+F) paling dasar: menggeser kata yang dicari sepanjang dokumen sampai cocok.
Syllabus
Cari pola di dalam teks dengan menggesernya satu per satu lalu mencocokkan huruf per huruf.
Objectives
·Memahami cara kerja pencarian teks paling dasar seperti Ctrl+F
·Menjelaskan proses geser-dan-bandingkan di tiap posisi teks
·Menerapkan pencocokan huruf per huruf untuk menemukan sebuah kata
How It Works
·Tempelkan pola di awal teks, lalu bandingkan huruf demi huruf.
·Kalau semua huruf cocok, berarti pola ditemukan di posisi itu.
·Kalau ada satu huruf yang beda, langsung geser pola satu langkah ke kanan.
·Ulangi terus sampai pola ditemukan atau teks sudah habis.
Prerequisites
·Array atau string
·Perulangan (loop)
Real-World Uses
·Fitur Cari (Ctrl+F) saat kamu mencari satu kata di catatan atau PDF tugas.
·Kolom search di aplikasi chat untuk menemukan pesan lama.
·Filter nama produk saat kamu ketik di kotak pencarian Shopee.
Run-Length Encoding (RLE) memampatkan data dengan mengganti rentetan nilai yang sama dengan pasangan (jumlah, nilai). Deret AAAAA cukup ditulis 5A. Semakin panjang rentetan berulang, semakin besar penghematannya. Metode ini sederhana, cepat, dan tanpa kehilangan data, cocok untuk gambar atau data dengan banyak area seragam. Visualisasi memindai sebaris piksel dan meruntuhkan tiap rentetan menjadi satu token.
Example use case
Mengompres gambar atau stiker dengan area warna solid, dan format ikon/faks lama yang menyimpan garis piksel berulang secara ringkas.
Syllabus
Ganti rentetan nilai identik dengan pasangan (jumlah, nilai) — makin panjang rentetan, makin hemat.
Objectives
·Memahami konsep kompresi tanpa kehilangan (lossless)
·Menerapkan penghitungan rentetan berturut
·Menilai kapan RLE efektif dan kapan tidak
How It Works
·Pindai data dari kiri ke kanan.
·Hitung berapa kali nilai yang sama berulang beruntun.
·Tulis satu token (jumlah, nilai), lalu lanjut ke nilai berikutnya.
·Hasilnya jauh lebih pendek bila banyak rentetan panjang.
Prerequisites
·Perulangan pada deret
·Membandingkan elemen bertetangga
Real-World Uses
·Kompres gambar dan stiker dengan area warna solid.
KMP mencari pola di dalam teks tanpa pernah mengecek ulang huruf yang sudah cocok. Rahasianya adalah tabel LPS (awalan yang sekaligus akhiran) yang dihitung dari pola: saat terjadi ketidakcocokan, pola digeser jauh sesuai LPS, bukan hanya satu langkah seperti cara naif. Alhasil pencarian jauh lebih cepat pada teks panjang. Visualisasi menggeser pola dan menunjukkan lompatan yang dilewati.
Example use case
Fitur Ctrl+F di editor kode dan peramban, serta mesin pencari yang menemukan kata di dalam dokumen panjang secara instan.
Syllabus
Saat tak cocok, geser pola sesuai tabel LPS (bukan +1) — huruf yang sudah cocok tak pernah dicek ulang.
Rasio gigi adalah perbandingan jumlah gigi antara dua roda gigi yang bersinggungan. Karena gigi yang lewat titik singgung harus sama banyak di kedua roda, roda yang lebih besar berputar lebih lambat — tetapi dengan torsi (gaya putar) yang lebih besar. Menukar kecepatan menjadi torsi, atau sebaliknya, inilah dasar setiap transmisi: sepeda, mobil, dan lengan robot. Visualisasi memutar sepasang gigi 3:1 dan menunjukkan pertukaran torsi dan kecepatan.
Example use case
Gigi ringan pada sepeda membuat kita kuat menanjak (torsi besar, pelan), sementara gigi berat memberi laju cepat di jalan datar.
Syllabus
Roda besar berputar lebih lambat tapi torsinya lebih besar; rasio = gigi besar / gigi kecil.
Objectives
·Memahami perbandingan gigi (rasio)
·Menjelaskan pertukaran torsi melawan kecepatan
·Mengaitkan dengan gigi sepeda dan transmisi robot
How It Works
·Dua roda gigi bersinggungan; gigi yang lewat titik singgung sama banyak.
·Roda besar (lebih banyak gigi) berputar lebih lambat sebanyak rasio.
·Sebagai gantinya, torsinya naik sebanyak rasio.
·Pilih rasio besar untuk tenaga (menanjak), rasio kecil untuk kecepatan.
Encoder membuat robot tahu seberapa jauh rodanya berputar. Sebuah cakram bercelah (atau bergaris) berputar melewati sensor; setiap celah yang lewat menghasilkan satu pulsa (tick). Dengan menghitung tick dan mengetahui berapa tick per putaran, robot bisa menghitung jumlah putaran, lalu mengalikannya dengan keliling roda untuk mendapat jarak tempuh. Visualisasi memutar cakram, mencacah pulsa, dan menghitung jaraknya.
Example use case
Cara robot beroda (dan mBot) mengukur seberapa jauh ia telah melaju, serta penggulung kertas printer.
Syllabus
Tiap celah cakram yang lewat sensor = satu tick; putaran = tick / tick-per-putaran; jarak = putaran × keliling.
Objectives
·Memahami cara encoder menghasilkan pulsa
·Menghitung putaran dari jumlah tick
·Mengubah putaran menjadi jarak tempuh
How It Works
·Cakram bercelah berputar melewati sebuah sensor.
·Tiap celah lewat menghasilkan satu pulsa (tick).
·Jumlah putaran = jumlah tick / tick per putaran.
·Jarak tempuh = jumlah putaran × keliling roda.
Prerequisites
·Konsep putaran dan keliling
·Pembagian dan perkalian
Real-World Uses
·Odometri robot beroda dan mBot.
·Penggulung kertas printer.
·Kenop volume dan roda mouse.
Key formulaputaran = tick / (tick per putaran) ; jarak = putaran × keliling
Sabuk yang melilit dua puli meneruskan putaran dari satu poros ke poros lain yang berjauhan — tanpa gigi yang beradu. Perbandingan kecepatannya ditentukan oleh diameter puli: puli kecil yang memutar puli besar membuatnya berputar lebih lambat tetapi dengan tenaga lebih besar, mirip roda gigi tetapi bisa melintasi jarak. Visualisasi memutar dua puli berbeda diameter dan menghitung rasionya.
Example use case
Penggerak pada conveyor pabrik, mesin cuci, dan sabuk pada mesin sepeda motor.
Robot pengikut garis memakai sensor inframerah di bawah bodinya untuk membedakan garis hitam dari lantai terang. Saat garis bergeser ke bawah salah satu sensor, robot membelok ke arah itu untuk menariknya kembali ke tengah. Koreksi kecil yang terus-menerus membuatnya tetap mengikuti garis — dan versi yang lebih halus memakai kontrol PID. Visualisasi menjalankan robot lurus, lalu membelok saat garis bergeser.
Example use case
Cara mBot mengikuti garis di lantai pada lomba robot line-follower.
Syllabus
Sensor baca hitam/putih; garis bergeser ke satu sensor → belok ke arah itu untuk kembali ke tengah.
Objectives
·Memahami sensor inframerah membaca kontras warna
·Menjelaskan koreksi setir dari bacaan sensor
·Mengaitkan dengan kontrol umpan balik (PID)
How It Works
·Dua sensor inframerah di bawah robot membaca hitam (garis) atau putih (lantai).
·Bila kedua sensor di putih, robot melaju lurus.
·Bila garis di bawah sensor kiri, robot belok kiri.
·Koreksi kecil terus-menerus menjaga robot tetap di garis.
Prerequisites
·Konsep sensor dan kontras warna
·Ide belok kiri dan kanan
Real-World Uses
·Robot line-follower mBot dan lomba robotik.
·AGV (kendaraan pemandu otomatis) di pabrik.
·Dasar dari kontrol PID.
Key formulasensor di garis → belok ke arah itu → kembali ke tengah
Sensor ultrasonik mengukur jarak dengan gema, persis seperti kelelawar dan sonar. Ia menembakkan pulsa suara yang merambat, memantul dari objek, lalu kembali; sebuah pewaktu mengukur waktu pulang-pergi. Jarak dihitung dari kecepatan suara dikali waktu, lalu dibagi dua karena pulsa menempuh jarak itu dua kali (pergi dan pulang). Visualisasi menembakkan pulsa ke dinding dan menghitung jaraknya.
Example use case
Cara mBot dan robot penghindar tabrakan mengukur jarak ke dinding, dan sensor parkir mobil.
Syllabus
Jarak = (kecepatan suara × waktu) ÷ 2; dibagi dua karena gema menempuh lintasan bolak-balik.
Objectives
·Memahami pengukuran jarak dengan gema
·Menjelaskan mengapa waktu dibagi dua
·Mengaitkan dengan sonar dan ekolokasi kelelawar
How It Works
·Sensor menembakkan pulsa suara ultrasonik.
·Pulsa merambat, memantul dari objek, lalu kembali.
·Pewaktu mengukur waktu pulang-pergi.
·Jarak = (kecepatan suara × waktu) ÷ 2 (dibagi dua karena bolak-balik).
Umpan balik adalah kontrol paling sederhana: ukur, bandingkan dengan target, lalu nyalakan atau matikan. Sebuah termostat menyalakan pemanas saat suhu di bawah target dan mematikannya saat di atas — sehingga suhu bergoyang naik-turun kecil di sekitar target dalam pola gigi-gergaji. Goyangannya selalu terkendali dan tak pernah lari jauh; sederhana dan murah. Versi yang lebih halus tanpa goyangan memakai kontrol PID. Visualisasi menjalankan suhu yang berosilasi di sekitar garis target.
Example use case
Termostat AC dan kulkas, setrika, dan pemanas air yang menyala-mati untuk menjaga suhu.
Syllabus
Ukur → bandingkan target → ON/OFF; di bawah target nyala, di atas mati; suhu bergoyang kecil di sekitar target.
Objectives
·Memahami kontrol umpan balik paling sederhana (on-off)
·Menjelaskan pola gigi-gergaji di sekitar target
·Membandingkan dengan kontrol PID yang lebih halus
How It Works
·Ukur besaran (misalnya suhu ruang).
·Bila di bawah target → nyalakan pemanas.
·Bila di atas target → matikan pemanas.
·Suhu naik-turun kecil (gigi-gergaji) di sekitar target.
Prerequisites
·Konsep target dan pengukuran
·Perbandingan
Real-World Uses
·Termostat AC, kulkas, dan setrika.
·Pengisi daya baterai.
·Pengontrol level air tangki.
Key formulasuhu < target → ON ; suhu > target → OFF
Differential drive adalah cara robot beroda dua berbelok tanpa setir: cukup dengan mengatur kecepatan roda kiri dan kanan secara berbeda. Bila kedua roda sama cepat, robot melaju lurus; bila salah satu lebih lambat, robot melengkung ke sisi yang lebih lambat; bila keduanya berlawanan arah, robot berputar di tempat. Arah dan radius belok lahir sepenuhnya dari selisih kecepatan roda. Visualisasi menjalankan robot lurus, belok, dan berputar sesuai kecepatan rodanya.
Example use case
Cara mBot dan robot-robot beroda (juga tank) berbelok — semuanya hanya dari perbedaan kecepatan dua roda penggeraknya.
Syllabus
Beda kecepatan roda kiri dan kanan menentukan arah dan radius belok; tak perlu setir.
Objectives
·Memahami kinematika robot dua roda
·Menjelaskan lurus, belok, dan putar dari kecepatan roda
·Menghitung laju maju dan laju putar
How It Works
·Tiap roda punya motor sendiri (kiri dan kanan).
·Laju maju v = (vL + vR)/2; laju putar ω = (vR − vL)/L.
IMU (Inertial Measurement Unit) memberi tahu robot bagaimana orientasinya. Akselerometer mengukur arah gravitasi sehingga bisa menghitung sudut kemiringan, sedangkan giroskop mengukur laju putaran. Digabungkan, keduanya memberi orientasi yang akurat dan stabil. Inilah sensor yang membuat HP tahu kapan dimiringkan dan drone menjaga dirinya tetap datar. Visualisasi memiringkan sebuah papan dan menampilkan sudut yang terukur.
Example use case
Cara HP tahu harus memutar layar saat dimiringkan, dan cara drone menjaga keseimbangan.
Syllabus
Akselerometer beri arah gravitasi (sudut miring), giroskop beri laju putar; gabungan = orientasi.
Objectives
·Memahami peran akselerometer dan giroskop
·Menjelaskan cara arah gravitasi memberi sudut miring
·Mengaitkan dengan kestabilan drone dan auto-rotate HP
How It Works
·Akselerometer mengukur komponen gravitasi pada tiap sumbu.
·Dari komponen itu dihitung sudut kemiringan (arah gravitasi).
·Giroskop mengukur laju putaran.
·Keduanya digabung menjadi orientasi yang stabil dan akurat.
Kinematika maju menghitung posisi ujung lengan robot (gripper) dari sudut tiap sendinya. Untuk lengan dua sendi, posisi ujung didapat dengan menjumlahkan panjang tiap segmen ke arah sudutnya: x = L1·cos(θ1) + L2·cos(θ1+θ2) dan y = L1·sin(θ1) + L2·sin(θ1+θ2). Jadi begitu sudut sendi diketahui, trigonometri langsung memberi titik yang dicapai. Kebalikannya — mencari sudut agar ujung sampai ke target tertentu — disebut kinematika balik. Visualisasi memutar dua sendi lalu menghitung posisi grippernya.
Example use case
Cara lengan robot industri (misalnya lengan las di pabrik) mengetahui di mana ujungnya berada dari pembacaan sudut motor tiap sendi.
Syllabus
Dari sudut tiap sendi, trigonometri memberi posisi ujung lengan: jumlahkan tiap segmen ke arah sudutnya.
Objectives
·Memahami hubungan sudut sendi dan posisi ujung
·Menerapkan trigonometri pada lengan dua sendi
·Membedakan kinematika maju dan kinematika balik
How It Works
·Lengan punya beberapa sendi, masing-masing bersudut.
·Ujung link 1 berada di arah θ1 sejauh L1.
·Ujung link 2 (gripper) = tambah arah (θ1+θ2) sejauh L2.
Berbeda dari motor biasa yang berputar bebas, motor stepper bergerak dalam langkah-langkah sudut yang tepat. Dengan menyalakan kumparan secara bergiliran (A, B, C, D), rotor tertarik maju satu langkah tetap setiap pulsa. Menghitung jumlah pulsa berarti mengontrol sudut putaran dengan presisi tinggi tanpa perlu sensor posisi. Inilah alasan printer 3D dan mesin CNC memakainya. Visualisasi menyalakan kumparan bergiliran dan menggerakkan rotor selangkah demi selangkah.
Example use case
Printer 3D dan mesin CNC yang menggerakkan kepala cetak ke posisi sangat presisi, serta penggerak lensa kamera.
Syllabus
Nyalakan kumparan bergiliran → rotor maju satu sudut tetap per pulsa; jumlah pulsa = sudut presisi.
Objectives
·Membedakan motor stepper dari motor biasa
·Memahami langkah sudut tetap per pulsa
·Mengaitkan dengan presisi tanpa sensor
How It Works
·Ada beberapa kumparan mengelilingi rotor.
·Nyalakan kumparan secara bergiliran (A → B → C → D).
·Tiap pulsa menarik rotor maju satu langkah sudut tetap.
·Jumlah pulsa × sudut per langkah = total putaran (presisi, tanpa sensor).
Prerequisites
·Konsep motor dan kumparan
·Sudut dan penjumlahan
Real-World Uses
·Printer 3D dan mesin CNC.
·Penggerak lensa dan kamera.
·Jam dan alat ukur presisi.
Key formulatotal sudut = jumlah pulsa × sudut per langkah
PWM (Pulse-Width Modulation) mengatur daya dengan menyalakan dan mematikan sinyal digital sangat cepat, lalu mengubah proporsi waktu ON-nya (duty cycle). Tegangan puncak tidak pernah berubah — hanya lebar pulsanya. Karena LED dan motor merasakan nilai rata-rata, duty cycle 60% memberi daya seperti 60% tegangan penuh. Inilah cara pin digital yang cuma bisa ON/OFF mengatur kecerahan dan kecepatan secara halus. Visualisasi menaikkan duty cycle dan menunjukkan respons LED serta motor.
Example use case
Perintah analogWrite() di Arduino atau mBot yang mengatur kecerahan LED dan kecepatan motor tanpa mengubah tegangan sumber.
Servo bukan motor biasa: ia diberi sudut PERINTAH lalu memakai umpan balik posisi untuk mencapai dan MENAHAN sudut itu. Di dalamnya, sebuah potensiometer membaca posisi horn saat ini; servo menghitung error = target dikurangi posisi, memutar motor untuk mengecilkan error, lalu berhenti dan menahan ketika error nol. Bila didorong keluar, ia langsung mengoreksi kembali. Visualisasi memerintah servo ke 90 derajat lalu menunjukkan koreksi saat diganggu.
Example use case
Sendi lengan robot, kemudi mobil RC, dan penggerak kepala atau ekor robot yang harus berhenti tepat di sudut tertentu.
Syllabus
error = target dikurangi posisi; putar motor sampai error nol lalu tahan; koreksi lagi bila diganggu.
Objectives
·Membedakan servo dari motor biasa
·Memahami umpan balik posisi
·Menjelaskan cara servo menahan sudut
How It Works
·Servo diberi sudut perintah (target).
·Potensiometer internal membaca posisi horn sekarang.
·error = target dikurangi posisi; motor berputar mengecilkan error.
·Saat error nol, motor berhenti dan menahan; bila didorong, mengoreksi lagi.
Prerequisites
·Konsep sudut
·Ide error dan umpan balik
Real-World Uses
·Sendi lengan robot.
·Kemudi mobil dan pesawat RC.
·Penggerak kamera dan kepala robot.
Key formulaerror = target − posisi; putar sampai error = 0, lalu tahan
PID adalah cara sistem mengoreksi diri agar mencapai target dengan mulus. Dari selisih target dan posisi (error), kontroler menghitung koreksi dari tiga suku: P (proporsional) mendorong sebanding error, I (integral) menghapus sisa selisih kecil, dan D (turunan) mengerem berdasarkan laju perubahan untuk meredam lonjakan. Tanpa D, dorongan P sendiri sering kebablasan dan berosilasi. Visualisasi membandingkan respons P-saja yang berosilasi dengan PID yang mulus menetap di target.
Example use case
Kontrol PID membuat drone melayang stabil, segway tetap tegak, dan robot pengikut garis melaju mulus tanpa zigzag.
Syllabus
Koreksi = P (dorong) + I (hapus sisa) + D (rem); gabungannya mulus dan stabil tanpa overshoot.
Objectives
·Memahami umpan balik (feedback) berbasis error
·Menjelaskan peran suku P, I, dan D
·Melihat mengapa P-saja berosilasi
How It Works
·Hitung error = target − posisi.
·P: koreksi sebanding error (dorong menuju target).
·D: mengerem berdasarkan laju perubahan → meredam overshoot.
·I: menjumlahkan error masa lalu → menghapus sisa selisih; jumlahkan P + I + D.
Prerequisites
·Konsep error (target − posisi)
·Ide laju perubahan dan penjumlahan
Real-World Uses
·Drone melayang dan menjaga ketinggian.
·Segway dan robot penyeimbang.
·Robot pengikut garis yang mulus; kontrol suhu dan cruise control.
Pendulum terbalik adalah tiang dengan beban di ATAS titik tumpu — posisi yang secara alami tidak stabil dan selalu ingin jatuh. Rahasia menjaganya tegak: begitu tiang mulai condong, gerakkan roda di bawahnya KE ARAH condong agar titik tumpu kembali berada di bawah pusat massa. Koreksi kecil ini diulang ratusan kali per detik memakai sensor IMU dan kontrol PID. Inilah cara segway dan robot penyeimbang bisa berdiri. Visualisasi menjatuhkan tiang lalu memulihkannya dengan gerak roda.
Example use case
Cara segway, hoverboard, dan robot beroda-dua penyeimbang tetap berdiri tegak tanpa jatuh.
Syllabus
Begitu tiang condong, gerakkan roda ke arah condong supaya titik tumpu balik di bawah pusat massa; ulang cepat.
Objectives
·Memahami mengapa beban di atas tumpu tidak stabil
·Menjelaskan koreksi gerak ke arah jatuh
·Mengaitkan dengan sensor IMU dan kontrol PID
How It Works
·Tiang dengan beban di atas titik tumpu bersifat tidak stabil.
·Sensor IMU membaca sudut kemiringan tiang.
·Bila condong ke kanan, roda digerakkan ke kanan (arah jatuh).
·Titik tumpu kembali di bawah pusat massa → tiang tegak; diulang ratusan kali per detik.
Prerequisites
·Konsep keseimbangan dan pusat massa
·Ide umpan balik (feedback)
Real-World Uses
·Segway dan hoverboard.
·Robot beroda-dua penyeimbang.
·Roket yang menjaga tegak saat meluncur.
Key formulacondong → gerak roda ke arah condong → tegak (IMU + PID)
Ini mendemonstrasikan logika inti permainan Snake: ular bergerak satu sel per langkah dengan menyisipkan kepala baru dan membuang ekor. Bila sel berikutnya adalah makanan, ekor tidak dibuang sehingga ular bertambah panjang, sedangkan jika sel terhalang permainan kalah. Visualisasi menampilkan grid dengan ular yang bergerak, memakan makanan, dan tumbuh dari panjang 4 hingga 7.
Example use case
Implementasi mekanik gerak dan pertumbuhan pada game Snake klasik di ponsel atau konsol arcade.
Syllabus
Ular bergerak dengan menambah kepala baru dan membuang ekor, tapi memanjang saat memakan makanan.
Objectives
·Memahami mekanik gerak dan pertumbuhan pada game Snake
·Menjelaskan trik sisip-kepala dan buang-ekor untuk menggerakkan ular
·Menerapkan aturan tumbuh saat makan dan kalah saat menabrak
How It Works
·Tubuh ular disimpan sebagai deretan sel; kepala di depan, ekor di belakang.
·Tiap langkah, sisipkan kepala baru di arah gerak lalu buang sel ekor.
·Bila kepala mengenai makanan, ekor TIDAK dibuang sehingga ular memanjang.
·Bila kepala menabrak dinding atau tubuh sendiri, permainan kalah.
Prerequisites
·Array atau list
·Grid dua dimensi
Real-World Uses
·Game Snake klasik yang dulu ada di HP Nokia dan kini banyak di aplikasi.
·Mekanik dasar game arcade yang sering jadi proyek koding pertama.
·Logika ekor-mengikuti pada berbagai game bertema ular atau kereta.
Algoritma traversal matriks spiral mengisi grid n x n dengan berjalan searah jarum jam: baris atas, kolom kanan, baris bawah, lalu kolom kiri, sambil menyusutkan batas atas/bawah/kiri/kanan setiap putaran. Proses berlanjut ke dalam hingga seluruh sel terisi. Visualisasi menampilkan angka yang ditulis mengikuti pola spiral menuju pusat grid.
Example use case
Pemrosesan data citra atau tata letak antarmuka yang mengakses sel matriks dalam pola melingkar.
Syllabus
Isi grid dengan berjalan searah jarum jam sambil menyusutkan batas tiap putaran hingga sampai pusat.
Objectives
·Memahami cara menelusuri matriks dalam pola spiral
·Menjelaskan penyusutan batas atas, bawah, kiri, dan kanan tiap putaran
·Menerapkan pengisian grid mengikuti pola melingkar ke dalam
How It Works
·Jalan di baris atas dari kiri ke kanan, lalu turunkan batas atas.
·Jalan di kolom kanan dari atas ke bawah, lalu kecilkan batas kanan.
·Jalan di baris bawah dari kanan ke kiri, lalu naikkan batas bawah.
·Jalan di kolom kiri dari bawah ke atas, lalu geser batas kiri.
·Ulangi memutar ke dalam sampai seluruh sel terisi di pusat.
Prerequisites
·Grid dua dimensi
·Perulangan bersarang
Real-World Uses
·Pemrosesan piksel citra dalam pola melingkar pada aplikasi kamera.
·Tata letak antarmuka yang mengisi kotak secara memutar.
·Efek animasi angka atau ubin yang muncul berpola spiral di game.
Tetris Clear mensimulasikan mekanik inti Tetris: sebuah piece jatuh selama masih bisa turun (can_fall), lalu dikunci (lock) ke papan. Setelah terkunci, baris yang penuh terdeteksi dan dibersihkan sehingga baris di atasnya turun (gravity). Visualisasi menampilkan tumpukan blok yang bertambah, baris penuh yang hilang, dan sisa tumpukan yang jatuh mengisi ruang kosong.
Example use case
Logika inti game Tetris yang mendeteksi dan menghapus baris penuh lalu menjatuhkan sisa tumpukan.
Syllabus
Blok jatuh dan terkunci di papan, lalu baris penuh dibersihkan sehingga tumpukan di atasnya turun.
Objectives
·Memahami mekanik inti game Tetris
·Menjelaskan proses jatuh, kunci, deteksi baris penuh, dan gravity
·Menerapkan pembersihan baris dan penurunan tumpukan sisa
How It Works
·Sebuah piece terus jatuh selama sel di bawahnya masih kosong.
·Saat tidak bisa turun lagi, piece dikunci menjadi bagian papan.
·Cek tiap baris: bila terisi penuh, baris itu dihapus.
·Baris di atas baris yang terhapus turun mengisi ruang kosong (gravity).
Prerequisites
·Grid dua dimensi
·Percabangan (if-else)
Real-World Uses
·Logika inti game Tetris yang populer di HP dan konsol.
·Mekanik puzzle 'susun dan bersihkan baris' di banyak game sejenis.
·Contoh proyek koding untuk belajar manipulasi grid dan skor.
Jarvis March (gift wrapping) adalah algoritma geometri komputasi yang membentuk convex hull, yaitu poligon terkecil yang membungkus semua titik. Dimulai dari titik paling kiri, algoritma berulang kali memilih titik berikutnya yang membuat semua titik lain berada di sisi kiri garis (uji orientasi/left turn) hingga kembali ke titik awal. Visualisasi menampilkan sebaran titik dan garis hull yang terbentuk satu per satu.
Example use case
Deteksi batas terluar objek dalam pengolahan citra atau menghitung area cakupan sinyal dari sekumpulan menara.
Syllabus
Bungkus semua titik dengan poligon terkecil dengan berulang kali memilih titik terluar berikutnya.
Objectives
·Memahami konsep convex hull (pembungkus terluar sekumpulan titik)
·Menjelaskan cara memilih titik hull lewat uji orientasi (belok kiri)
·Menerapkan pembentukan batas terluar dari sebaran titik
How It Works
·Mulai dari titik paling kiri yang pasti bagian dari batas terluar.
·Dari titik sekarang, pilih titik berikutnya yang membuat semua titik lain ada di sisi kiri garis.
·Tarik garis ke titik terpilih sebagai bagian dari hull.
·Lanjutkan berputar sampai kembali ke titik awal, membentuk poligon pembungkus.
Prerequisites
·Koordinat titik pada bidang
·Konsep kiri/kanan garis (orientasi)
Real-World Uses
·Deteksi batas terluar objek dalam pengolahan citra atau AI kamera.
·Menghitung area cakupan sinyal dari sekumpulan menara BTS.
·Menggambar area terluar yang mencakup semua pemain di peta game.
Simulasi ini menjalankan empat agen yang bergerak di papan grid dan mengklaim sel kosong sampai seluruh papan terisi. Setiap iterasi menggerakkan kepala tiap pemain, mengklaim sel bebas, mengalihkan kepala yang terjebak, mengisi area tertutup, lalu menghitung pangsa wilayah untuk menentukan pemimpin. Visualisasi menampilkan persentase klaim tiap pemain hingga papan 100% terisi dan pemenang ditentukan.
Example use case
Simulasi pembagian zona layanan antar armada pengiriman yang saling berebut area pelanggan pada peta grid kota.
Syllabus
Empat agen berebut mengklaim sel kosong di papan grid sampai penuh, lalu pemilik wilayah terbesar menang.
Objectives
·Memahami simulasi banyak agen yang saling berebut wilayah
·Menjelaskan langkah klaim sel, pengalihan agen terjebak, dan pengisian area tertutup
·Menerapkan penghitungan pangsa wilayah untuk menentukan pemenang
How It Works
·Tiap pemain punya kepala yang bergerak di papan grid.
·Tiap langkah, kepala pindah dan mengklaim sel kosong yang dilewati.
·Kepala yang terjebak dialihkan agar tetap bergerak.
·Area yang tertutup penuh diisi otomatis untuk pemilik wilayahnya.
·Hitung persentase klaim tiap pemain sampai papan 100% terisi, lalu tentukan pemenang.
Prerequisites
·Grid dua dimensi
·Konsep gerak agen pada grid
Real-World Uses
·Game rebutan wilayah seperti Paper.io yang sering dimainkan di HP.
·Pembagian zona antar armada pengiriman yang berebut area pelanggan.
·Pembagian area cakupan antar tim di peta permainan strategi.
Minimax membuat komputer memilih langkah optimal pada Tic-Tac-Toe dengan menelusuri semua kemungkinan langkah lawan ke depan. Fungsi rekursif memberi skor pada posisi akhir, lalu tiap giliran memilih nilai maksimum untuk diri sendiri dan mengasumsikan lawan memilih nilai minimum. Visualisasi menampilkan papan beserta cabang langkah yang diperiksa (BEST vs checked) hingga X memilih jalur menang atau seri.
Example use case
Mesin AI lawan pada game papan seperti catur atau Connect Four yang menghitung langkah terbaik melawan pemain manusia.
Syllabus
Komputer memilih langkah optimal dengan menelusuri semua kemungkinan lawan dan mengasumsikan lawan main terbaik.
Objectives
·Memahami cara AI game memilih langkah terbaik lewat penelusuran ke depan
·Menjelaskan logika maksimum untuk diri dan minimum untuk lawan
·Menerapkan pemberian skor pada posisi untuk memilih langkah menang
How It Works
·Telusuri semua langkah yang mungkin sampai permainan berakhir.
·Beri skor pada tiap posisi akhir: menang, kalah, atau seri.
·Saat giliran sendiri, pilih langkah dengan skor maksimum.
·Asumsikan lawan selalu memilih langkah yang membuat skor kita minimum.
·Pilih langkah awal yang menjamin hasil terbaik meski lawan main sempurna.
Prerequisites
·Rekursi
·Pohon kemungkinan (game tree)
Real-World Uses
·Mesin AI lawan di game papan seperti catur atau Connect Four.
·Bot Tic-Tac-Toe di HP yang mustahil dikalahkan.
·Logika keputusan musuh cerdas pada game strategi giliran.