xKyro Labs
CURRICULUM · VISUAL LAB

xKyro Visual Lab

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.

Math8 lessons · Pemula–Menengah

EUCLIDEAN GCD

MathPemula
Fase C–FE1E5

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

Complexity O(log(min(a, b)))

BINARY TO DECIMAL

MathPemula
Fase C–FE1E5

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.

Complexity O(jumlah bit)

Collatz Conjecture

MathPemula
Fase C–FE1E5

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.

Complexity O(panjang lintasan), tanpa batas yang terbukti

FAST EXPONENTIATION

MathPemula
Fase C–FE1E5

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

Complexity O(log n)

MONTE CARLO PI

MathPemula
Fase C–FE1E5E6

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

Complexity O(n) untuk n titik

PRIME SIEVE

MathPemula
Fase C–FE1E5

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

Complexity O(n log log n)

Pascal's Triangle

MathPemula
Fase C–FE1E5

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.

Complexity O(baris kuadrat) untuk membangun

ROTATE IMAGE 90°

MathMenengah
Fase D–FE1E5

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
  • ·Menjelaskan mengapa kombinasi keduanya setara rotasi 90 derajat
  • ·Menerapkan rotasi tanpa memakai matriks tambahan
How It Works
  • ·Ambil matriks persegi sebagai grid piksel atau angka
  • ·Transpose: tukar elemen m[i][j] dengan m[j][i] di sepanjang diagonal
  • ·Setelah transpose, tiap baris siap dibalik
  • ·Balik urutan tiap baris memakai dua pointer kiri-kanan
  • ·Hasil akhirnya matriks yang berputar 90 derajat searah jarum jam
Prerequisites
  • ·Matriks 2D
  • ·Teknik dua pointer
Real-World Uses
  • ·Fitur putar foto 90 derajat di aplikasi editor gambar HP
  • ·Memutar papan pada game puzzle berbasis grid

Complexity O(n^2)

Sorting8 lessons · Pemula–Menengah

BEAD SORT

SortingPemula
Fase C–FE1E5

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

Complexity O(n * maks)

BUBBLE SORT

SortingPemula
Fase C–FE1E5

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.

Objectives
  • ·Memahami prinsip bandingkan-dan-tukar antar elemen bersebelahan
  • ·Menjelaskan mengapa nilai terbesar 'mengapung' ke belakang tiap sapuan
  • ·Menerapkan penghentian dini saat satu sapuan tanpa pertukaran
How It Works
  • ·Bandingkan elemen ke-i dengan tetangga kanannya
  • ·Tukar keduanya bila urutannya terbalik
  • ·Ulangi sampai ujung array untuk satu sapuan penuh
  • ·Nilai terbesar kini berada di posisi paling kanan
  • ·Berhenti lebih awal bila satu sapuan berlalu tanpa pertukaran
Real-World Uses
  • ·Menyusun ulang beberapa kartu remi di tangan dengan tukar tetangga
  • ·Merapikan daftar skor pendek yang isinya cuma sedikit

Complexity O(n^2)

COUNTING SORT

SortingPemula
Fase C–FE1E5

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

Complexity O(n + k)

INSERTION SORT

SortingPemula
Fase C–FE1E5

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

Complexity O(n^2)

SELECTION SORT

SortingPemula
Fase C–FE1E5

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

Complexity O(n^2)

MERGE SORT

SortingMenengah
Fase D–FE1E5

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

Complexity O(n log n)

QUICK SORT

SortingMenengah
Fase D–FE1E5

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

Complexity O(n log n) rata-rata

RADIX SORT

SortingMenengah
Fase D–FE1E5

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
  • ·Merapikan nomor HP yang panjang digitnya sama

Complexity O(d * (n + k))

Searching2 lessons · Pemula

BINARY SEARCH

SearchingPemula
Fase C–FE1E5

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'

Complexity O(log n)

LINEAR SEARCH

SearchingPemula
Fase C–FE1E5

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

Complexity O(n)

Data Structures11 lessons · Pemula–Menengah

Balanced Brackets

Data StructuresPemula
Fase C–FE1E5

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.
Prerequisites
  • ·Perulangan pada karakter
  • ·Konsep tumpukan (LIFO)
Real-World Uses
  • ·Pengecek sintaks di editor kode seperti VS Code.
  • ·Validasi rumus dan ekspresi matematika.
  • ·Penguraian (parsing) berkas HTML dan JSON.

Complexity O(panjang teks)

Linked List

Data StructuresPemula
Fase C–FE1E5

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.

Complexity O(1) menyisip atau menghapus bila posisinya diketahui

QUEUE

Data StructuresPemula
Fase C–FE1E5

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.
  • ·Daftar tunggu pesanan ojek dan makanan online.
  • ·Antrean lagu berikutnya di playlist musik.

Complexity O(1) per operasi

STACK

Data StructuresPemula
Fase C–FE1E5

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.

Complexity O(1) per operasi

Priority Queue

Data StructuresMenengah
Fase D–FE1E5

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.
Prerequisites
  • ·Antrian (queue) biasa
  • ·Perbandingan nilai
Real-World Uses
  • ·Triase pasien di IGD rumah sakit.
  • ·Penjadwal tugas di sistem operasi.
  • ·Dipakai di dalam algoritma Dijkstra dan A*.

Complexity O(log n) per operasi (dengan heap)

Bloom Filter

Data StructuresMenengah
Fase D–FE1E5

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.

Complexity O(k) per operasi (k = jumlah fungsi hash)

FLOYD CYCLE

Data StructuresMenengah
Fase D–FE1E5

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

Complexity O(n)

HASH TABLE

Data StructuresMenengah
Fase D–FE1E5

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

Complexity O(1) rata-rata

LRU CACHE

Data StructuresMenengah
Fase D–FE1E5

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.

Complexity O(1) per akses

QUADTREE

Data StructuresMenengah
Fase D–FE1E5

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

Complexity O(log n) rata-rata per query

Union-Find

Data StructuresMenengah
Fase D–FE1E5

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.

Complexity hampir O(1) per operasi (dengan path-compression)

Trees3 lessons · Menengah

Binary Heap

TreesMenengah
Fase D–FE1E5

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).
  • ·Dipakai algoritma Dijkstra dan A*.
  • ·Heap Sort untuk mengurutkan data.

Complexity O(log n) per sisip/ambil

BINARY SEARCH TREE

TreesMenengah
Fase D–FE1E5

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

Complexity O(tinggi pohon)

TRIE

TreesMenengah
Fase D–FE1E5

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'
  • ·Prediksi kata di keyboard HP saat mengetik pesan

Complexity O(panjang kata)

Recursion3 lessons · Pemula–Menengah

RECURSIVE TREE

RecursionPemula
Fase C–FE1E5

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

Complexity Tergantung masalah; fraktal pohon O(2^depth) cabang

FIBONACCI: MEMO VS NAIVE

RecursionMenengah
Fase D–FE1E5

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

Complexity O(n) dengan memo, dibanding O(2^n) versi naif

TOWER OF HANOI

RecursionMenengah
Fase D–FE1E5

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
  • ·Latihan klasik memahami cara berpikir rekursif

Complexity O(2^n) langkah untuk n cakram

Graphs8 lessons · Pemula–Menengah

FLOOD FILL

GraphsPemula
Fase C–FE1E5

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

Complexity O(N) dengan N jumlah sel dalam area

BELLMAN-FORD

GraphsMenengah
Fase D–FE1E5

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

Complexity O(V x E)

DFS MAZE

GraphsMenengah
Fase D–FE1E5

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

Complexity O(V + E)

DIJKSTRA PATH

GraphsMenengah
Fase D–FE1E5

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

Complexity O((V + E) log V) dengan min-heap

MAZE BFS

GraphsMenengah
Fase D–FE1E5

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

Complexity O(V + E)

PageRank

GraphsMenengah
Fase D–FE1E5

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.

Complexity O(jumlah link × iterasi)

PRIM MAZE

GraphsMenengah
Fase D–FE1E5

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

Complexity O(V log V) atau O(E) tergantung struktur frontier

TOPOLOGICAL SORT

GraphsMenengah
Fase D–FE1E5

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

Complexity O(V + E)

Dynamic Programming4 lessons · Pemula–Menengah

COIN CHANGE

Dynamic ProgrammingPemula
Fase C–FE1E5

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
How It Works
  • ·Buat tabel dp berukuran nominal + 1, isi dp[0] = 0
  • ·Untuk tiap nilai v dari kecil ke besar, coba semua jenis koin
  • ·Ambil dp[v] = 1 + nilai minimum dari dp[v - koin] yang valid
  • ·Simpan koin mana yang dipakai agar bisa ditelusuri balik
  • ·dp pada nominal akhir adalah jumlah koin minimum
Prerequisites
  • ·Array
  • ·Rekursi atau perulangan
Real-World Uses
  • ·Mesin kasir menghitung kembalian dengan lembar uang paling sedikit
  • ·Fitur split bill membagi tagihan jadi pecahan uang yang praktis
  • ·Menyusun top-up pulsa dari kombinasi voucher termurah

Complexity O(nominal x jumlah jenis koin)

EDIT DISTANCE

Dynamic ProgrammingMenengah
Fase D–FE1E5

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

Complexity O(m x n) untuk panjang kata m dan n

Kadane's Algorithm

Dynamic ProgrammingMenengah
Fase D–FE1E5

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.
Prerequisites
  • ·Array dan perulangan
  • ·Konsep menyimpan nilai terbaik sementara
Real-World Uses
  • ·Analisis rentang untung dan rugi harga saham.
  • ·Deteksi segmen sinyal terkuat.
  • ·Pengolahan citra dan analisis genom.

Complexity O(n)

Longest Common Subsequence

Dynamic ProgrammingMenengah
Fase D–FE1E5

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.
Prerequisites
  • ·Konsep subsequence (deret bagian berurutan)
  • ·Tabel atau grid dua dimensi
  • ·Rekursi / DP dasar
Real-World Uses
  • ·git diff membandingkan dua versi kode.
  • ·Deteksi plagiat dan kemiripan dokumen.
  • ·Menyelaraskan urutan DNA di bioinformatika.

Complexity O(panjang X × panjang Y)

Greedy3 lessons · Pemula–Menengah

Activity Selection

GreedyPemula
Fase C–FE1E5

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.
  • ·Mengatur pekerjaan pada satu mesin/prosesor.
  • ·Menyusun agenda acara agar tidak bentrok.

Complexity O(n log n) karena pengurutan

HUFFMAN CODING

GreedyMenengah
Fase D–FE1E5

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

Complexity O(n log n) untuk n simbol

TSP NEAREST-NEIGHBOR

GreedyMenengah
Fase D–FE1E5

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

Complexity O(n^2) untuk n kota

Backtracking2 lessons · Menengah

GRAPH COLORING

BacktrackingMenengah
Fase D–FE1E5

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

Complexity O(warna^V) pada kasus terburuk

RAT MAZE

BacktrackingMenengah
Fase D–FE1E5

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

Complexity O(4^(m x n)) pada kasus terburuk

Strings3 lessons · Pemula–Menengah

NAIVE STRING MATCH

StringsPemula
Fase C–FE1E5

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.

Complexity O(n*m)

Run-Length Encoding

StringsPemula
Fase C–FE1E5

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.
  • ·Format ikon dan faks lama.
  • ·Bagian dari format berkas seperti BMP dan PCX.

Complexity O(panjang data)

KMP String Matching

StringsMenengah
Fase D–FE1E5

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.

Objectives
  • ·Memahami kelemahan pencarian naif (banyak cek ulang)
  • ·Menjelaskan tabel LPS (awalan = akhiran)
  • ·Melihat bagaimana KMP melompat saat mismatch
How It Works
  • ·Hitung dulu tabel LPS dari pola (panjang awalan yang juga menjadi akhiran).
  • ·Cocokkan pola dengan teks huruf demi huruf.
  • ·Bila cocok, kedua penunjuk maju bersama.
  • ·Bila TAK cocok, geser pola sesuai LPS — penunjuk teks tetap, tak ada cek ulang.
Prerequisites
  • ·String dan indeks
  • ·Konsep awalan (prefix) dan akhiran (suffix)
Real-World Uses
  • ·Ctrl+F di editor kode dan peramban.
  • ·Pencarian kata di dokumen panjang.
  • ·Penyaringan teks dan deteksi pola di lalu lintas jaringan.

Complexity O(panjang teks + panjang pola)

Robotics12 lessons · Pemula–Menengah

Gear Ratio

RoboticsPemula
Fase C–FE1E5

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.
Prerequisites
  • ·Konsep putaran dan kecepatan
  • ·Perbandingan / pecahan
Real-World Uses
  • ·Gigi sepeda (ringan vs berat).
  • ·Transmisi mobil dan motor.
  • ·Gearbox pada lengan dan roda robot.

Key formula rasio = gigi_besar / gigi_kecil; kecepatan ÷ rasio, torsi × rasio

Rotary Encoder

RoboticsPemula
Fase C–FE1E5

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 formula putaran = tick / (tick per putaran) ; jarak = putaran × keliling

Belt & Pulley

RoboticsPemula
Fase C–FE1E5

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.

Syllabus

Sabuk meneruskan putaran antar puli; rasio kecepatan = diameter penggerak / diameter digerakkan.

Objectives
  • ·Memahami transmisi sabuk-puli
  • ·Menghitung rasio dari diameter puli
  • ·Membandingkan dengan roda gigi
How It Works
  • ·Sabuk melilit dua puli pada poros yang berbeda.
  • ·Putaran diteruskan tanpa gigi beradu, bisa melintasi jarak.
  • ·Rasio kecepatan = D_penggerak / D_digerakkan.
  • ·Puli kecil memutar puli besar: lebih lambat tetapi lebih bertenaga.
Prerequisites
  • ·Konsep putaran dan diameter
  • ·Perbandingan
Real-World Uses
  • ·Conveyor pabrik dan mesin cuci.
  • ·Sabuk penggerak mesin motor.
  • ·Alternator dan pompa di mesin mobil.

Key formula rasio = D_penggerak / D_digerakkan

Line Follower

RoboticsPemula
Fase C–FE1E5

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 formula sensor di garis → belok ke arah itu → kembali ke tengah

Ultrasonic Sensor

RoboticsPemula
Fase C–FE1E5

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).
Prerequisites
  • ·Kecepatan, jarak, dan waktu
  • ·Pembagian
Real-World Uses
  • ·Sensor jarak mBot dan robot penghindar tabrakan.
  • ·Sensor parkir mobil.
  • ·Sonar kapal dan ekolokasi kelelawar.

Key formula jarak = (340 m/s × waktu) ÷ 2

Feedback Loop

RoboticsPemula
Fase C–FE1E5

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 formula suhu < target → ON ; suhu > target → OFF

Differential Drive

RoboticsMenengah
Fase D–FE1E5

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.
  • ·vL = vR → lurus; vL < vR → belok kiri.
  • ·vL = −vR → berputar di tempat (radius 0).
Prerequisites
  • ·Kecepatan
  • ·Konsep radius dan putaran
Real-World Uses
  • ·Cara mBot dan robot beroda berbelok.
  • ·Kemudi tank dan ekskavator (tanpa setir).
  • ·Kursi roda listrik dan robot vacuum.

Key formula v = (vL+vR)/2 ; ω = (vR−vL)/L ; R = v/ω

IMU (Gyro + Accelerometer)

RoboticsMenengah
Fase D–FE1E5

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.
Prerequisites
  • ·Konsep sudut dan arah
  • ·Ide gravitasi
Real-World Uses
  • ·Auto-rotate layar HP.
  • ·Drone dan quadcopter menjaga tetap datar.
  • ·Robot penyeimbang dan pelacak gerak (VR).

Key formula sudut = atan2(gravitasi_x, gravitasi_z); gabung giroskop + akselerometer

Forward Kinematics

RoboticsMenengah
Fase D–FE1E5

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.
  • ·x = L1·cos θ1 + L2·cos(θ1+θ2) ; y = L1·sin θ1 + L2·sin(θ1+θ2).
Prerequisites
  • ·Sudut dan koordinat (x, y)
  • ·Sinus dan kosinus dasar
Real-World Uses
  • ·Lengan robot industri dan lengan las.
  • ·Lengan bedah robotik.
  • ·Animasi karakter dan rig 3D.

Key formula x = L1·cos θ1 + L2·cos(θ1+θ2) ; y = L1·sin θ1 + L2·sin(θ1+θ2)

Stepper Motor

RoboticsMenengah
Fase D–FE1E5

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 formula total sudut = jumlah pulsa × sudut per langkah

PWM (Pulse-Width Modulation)

RoboticsMenengah
Fase D–FE1E5

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.

Syllabus

Nyala-mati cepat; daya rata-rata sebanding duty cycle (lebar pulsa ON), tegangan puncak tetap.

Objectives
  • ·Memahami duty cycle dan daya rata-rata
  • ·Menjelaskan mengapa pin ON/OFF bisa mengatur kecerahan
  • ·Mengaitkan dengan analogWrite() di Arduino
How It Works
  • ·Pin digital hanya bisa ON (5V) atau OFF (0V).
  • ·Nyalakan-matikan sangat cepat berulang.
  • ·duty cycle = waktu ON / (ON + OFF).
  • ·Daya rata-rata ≈ duty × tegangan puncak — LED & motor merasakan rata-rata ini.
Prerequisites
  • ·Sinyal digital (ON/OFF)
  • ·Konsep rata-rata dan persentase
Real-World Uses
  • ·Mengatur kecerahan LED (analogWrite).
  • ·Mengatur kecepatan motor mBot dan kipas.
  • ·Pengatur tegangan (buck converter) dan pengisi daya.

Key formula duty = t_ON/(t_ON+t_OFF); daya_rata2 ≈ duty × V_puncak

Servo Motor

RoboticsMenengah
Fase D–FE1E5

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 formula error = target − posisi; putar sampai error = 0, lalu tahan

Other3 lessons · Pemula–Menengah

SNAKE LOGIC

OtherPemula
Fase C–FE1E5

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.

Complexity O(1) per langkah

SPIRAL MATRIX

OtherPemula
Fase C–FE1E5

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.

Complexity O(baris * kolom)

TETRIS CLEAR

OtherMenengah
Fase D–FE1E5

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.

Complexity O(baris * kolom)