Skip to content · ⁨Lompat ke konten⁩

Learn to code · ⁨Belajar memprogram⁩

Code · ⁨Kode⁩

Write real code and see it run — HTML, CSS, Python, Java, C, SQL, LaTeX, and Linux — with nothing to install. · ⁨Tulis kode sungguhan dan lihat jalannya — HTML, CSS, Python, Java, C, SQL, LaTeX, dan Linux — tanpa perlu instalasi apa pun.⁩

17 coursesHTML/CSS · Python · Java · C · SQL · LaTeX · LinuxRuns in your browser · ⁨Berjalan di browser Anda⁩
Foundations · ⁨Dasar-dasar⁩
Python Basics
Your very first steps in programming — no experience needed. · ⁨Langkah awal Anda dalam pemrograman — tidak perlu pengalaman.⁩
22 Lessons · ⁨Pelajaran⁩
Course overview and progress →
JavaScript
The language of the web. Make things happen — runs right in your browser. · ⁨Bahasa web. Buat sesuatu terjadi — berjalan langsung di browser Anda.⁩
15 Lessons · ⁨Pelajaran⁩
C Programming · ⁨Pemrograman C⁩
From printf to pointers, memory, and data structures — compile and run in your browser. · ⁨Dari printf hingga pointer, memori, dan struktur data — kompilasi dan jalankan di browser Anda.⁩
23 Lessons · ⁨Pelajaran⁩
Course overview and progress →
A short history of C · ⁨Sejarah singkat C⁩
What C is used for · ⁨Apa C digunakan untuk⁩
Where to learn more · ⁨Di mana untuk belajar lebih lanjut⁩
Set up your computer · ⁨Siapkan komputer Anda⁩
C basics: main, printf, and functions · ⁨Dasar C: main, printf, dan fungsi⁩
Variables, types, and arithmetic · ⁨Variabel, tipe, dan aritmatika⁩
Booleans and selection: if, else, switch · ⁨Boolean dan seleksi: if, else, switch⁩
Loops: while, for, and accumulation · ⁨Perulangan: while, for, dan akumulasi⁩
Functions, parameters, and return values · ⁨Fungsi, parameter, dan nilai pengembalian⁩
Nested loops and patterns · ⁨Perulangan bersarang dan pola⁩
1-D arrays: store, index, and traverse · ⁨Array 1-D: simpan, indeks, dan jelajahi⁩
Pointers: &, *, and pass-by-pointer · ⁨Pointer: &, *, dan pass-by-pointer⁩
Strings: char arrays and the null terminator · ⁨String: array char dan terminator null⁩
Array algorithms: max, count, search, average · ⁨Algoritma array: maksimum, hitung, cari, rata-rata⁩
2-D arrays: working with a grid · ⁨Array 2-D: bekerja dengan grid⁩
Searching: linear and binary · ⁨Pencarian: linear dan biner⁩
Sorting: bubble, selection, and insertion · ⁨Pengurutan: gelembung (*bubble*), seleksi, dan sisip⁩
Recursion: base case and recursive case · ⁨Resursif: kasus dasar dan kasus rekursif⁩
Structs and typedef: . vs ->
Dynamic memory: malloc, free, and realloc · ⁨Memori dinamis: malloc, free, dan realloc⁩
Linked lists · ⁨Daftar terhubung (Linked lists)⁩
Stacks and queues (array-backed) · ⁨Tumpukan dan antrean (berbasis array)⁩
Text files: write then read · ⁨File teks: tulis lalu baca⁩
Error handling with return codes · ⁨Penanganan kesalahan dengan kode pengembalian⁩
Bits, binary, and bitwise operators · ⁨Bit, biner, dan operator bitwise⁩
Run-length encoding (compression) · ⁨Pengkodean panjang-lari (kompresi)⁩
Preprocessor, const, static, and enum · ⁨Preprocessor, const, static, dan enum⁩
Web Basics — HTML & CSS · ⁨Dasar Web — HTML & CSS⁩
Start from zero. Short steps. Build a real web page. · ⁨Mulai dari nol. Langkah-langkah singkat. Bangun halaman web nyata.⁩
21 Lessons · ⁨Pelajaran⁩
Course overview and progress →
Exam courses · ⁨Kursus Ujian⁩
Python for IGCSE CS · ⁨Python untuk IGCSE CS⁩
Programming, algorithms, databases and logic for Cambridge IGCSE 0478. · ⁨Pemrograman, algoritma, database dan logika untuk Cambridge IGCSE 0478.⁩
14 Lessons · ⁨Pelajaran⁩
IGCSE CS Pseudocode · ⁨Pseudocode IGCSE CS⁩
Write and run the pseudocode in the Cambridge IGCSE 0478 syllabus for 2026, 2027 and 2028. · ⁨Tulis dan jalankan pseudocode dalam kurikulum Cambridge IGCSE 0478 untuk tahun 2026, 2027, dan 2028.⁩
19 Lessons · ⁨Pelajaran⁩
Course overview and progress →
Python for A-Level CS · ⁨Python untuk CS A-Level⁩
Data structures, algorithms, and OOP for Cambridge 9618. · ⁨Struktur data, algoritma, dan OOP untuk Cambridge 9618.⁩
15 Lessons · ⁨Pelajaran⁩
AS-level CS Pseudocode · ⁨Pseudocode CS AS-level⁩
Write and run the pseudocode in the Cambridge 9618 guide for exams in 2026, and for 2027, 2028 and 2029. · ⁨Tulis dan jalankan pseudocode dalam panduan Cambridge 9618 untuk ujian tahun 2026, serta untuk tahun 2027, 2028, dan 2029.⁩
19 Lessons · ⁨Pelajaran⁩
Course overview and progress →
Python for AP CS Principles · ⁨Python untuk Prinsip CS AP⁩
Big ideas of computing — data, algorithms, the Internet, and impact. · ⁨Gagasan besar komputasi — data, algoritma, Internet, dan dampak.⁩
15 Lessons · ⁨Pelajaran⁩
Java for AP CS A · ⁨Java untuk AP CS A⁩
Java programming for the AP Computer Science A exam. · ⁨Pemrograman Java untuk ujian AP Computer Science A.⁩
19 Lessons · ⁨Pelajaran⁩
Course overview and progress →
A short history of Java · ⁨Sejarah singkat Java⁩
What Java is used for · ⁨Apa Java digunakan untuk⁩
Where to learn more · ⁨Di mana untuk belajar lebih lanjut⁩
Set up your computer · ⁨Siapkan komputer Anda⁩
Java basics: classes, main, and output · ⁨Dasar-dasar Java: kelas, main, dan output⁩
Using objects: String, Math, and wrappers · ⁨Menggunakan objek: String, Math, dan wrapper⁩
Booleans and selection: if/else and logic · ⁨Boolean dan seleksi: if/else dan logika⁩
Loops: while, for, and accumulation · ⁨Perulangan: while, for, dan akumulasi⁩
Strings and nested loops · ⁨String dan perulangan bersarang⁩
Writing a class: fields, constructor, methods · ⁨Menulis kelas: bidang, konstruktor, metode⁩
Encapsulation: private fields, getters, setters · ⁨Enkapsulasi: bidang privat, getter, setter⁩
1-D arrays: store, index, and traverse · ⁨Array 1-D: simpan, indeks, dan jelajahi⁩
Array algorithms: max, count, search, average · ⁨Algoritma array: maksimum, hitung, cari, rata-rata⁩
ArrayList: a list that grows · ⁨ArrayList: daftar yang membesar⁩
ArrayList algorithms: filter and the remove bug · ⁨Algoritma ArrayList: filter dan bug penghapusan⁩
2-D arrays: working with a grid · ⁨Array 2-D: bekerja dengan grid⁩
Searching: linear and binary · ⁨Pencarian: linear dan biner⁩
Sorting: selection and insertion sort · ⁨Pengurutan: seleksi dan sisipan⁩
Recursion: base case and recursive case · ⁨Resursif: kasus dasar dan kasus rekursif⁩
Text files: write and read with Scanner · ⁨File teks: tulis dan baca dengan Scanner⁩
Inheritance: extends, super, and overriding · ⁨Pewarisan: extends, super, dan overriding⁩
Polymorphism: dynamic dispatch and toString() · ⁨Polimorfisme: penyaluran dinamis dan toString()⁩
FRQ workshop: the 4 question types · ⁨Workshop FRQ: 4 jenis pertanyaan⁩
Topics & tools · ⁨Topik & Alat⁩
Databases & SQL · ⁨Database & SQL⁩
Query, design, and change relational databases — right in your browser, no setup. · ⁨Query, design, and change relational databases — langsung di browser Anda, tanpa setup.⁩
17 Lessons · ⁨Pelajaran⁩
Course overview and progress →
Linux & the command line · ⁨Linux & baris arahan⁩
Drive a computer by typing. Practise real shell commands in a safe in-browser terminal. · ⁨Kendalikan komputer dengan menaip. Latih perintah shell sebenar dalam terminal dalam pelayar web yang selamat.⁩
14 Lessons · ⁨Pelajaran⁩
Course overview and progress →
LaTeX
Typeset beautiful documents and maths — write LaTeX, compile on our servers, see the PDF. · ⁨Cetak dokumen dan matematika yang indah — tulis LaTeX, kompilasi di server kami, lihat PDF-nya.⁩
14 Lessons · ⁨Pelajaran⁩
Course overview and progress →
Cyber security · ⁨Keamanan siber⁩
How attacks work and how to stop them — ciphers, hashing, and safe computing, hands-on. · ⁨Bagaimana serangan bekerja dan cara menghentikannya — cipher, hashing, dan komputasi aman, praktik langsung.⁩
16 Lessons · ⁨Pelajaran⁩
Course overview and progress →

Practice · ⁨Latihan⁩

Sharpen your skills with challenges from 1★ to 5★. Pick a language. · ⁨Rajinlah keterampilan Anda dengan tantangan dari 1★ hingga 5★. Pilih bahasa.⁩

01
Print a word · ⁨Cetak satu perkataan⁩
★☆☆☆☆
02
Print another word · ⁨Cetak satu perkataan lagi⁩
★☆☆☆☆
03
Print a sentence · ⁨Cetak satu ayat⁩
★☆☆☆☆
04
Print with a ! · ⁨Cetak dengan !⁩
★☆☆☆☆
05
Print two lines · ⁨Cetak dua baris⁩
★☆☆☆☆
06
Print three lines · ⁨Cetak tiga baris⁩
★☆☆☆☆
07
Print a number · ⁨Cetak satu nombor⁩
★☆☆☆☆
08
Print a bigger number · ⁨Cetak angka yang lebih besar⁩
★☆☆☆☆
09
Add two numbers · ⁨Tambah dua nombor⁩
★☆☆☆☆
10
Add bigger numbers · ⁨Tambahkan angka yang lebih besar⁩
★☆☆☆☆
11
Subtract · ⁨Tolak⁩
★☆☆☆☆
12
Multiply · ⁨Darab⁩
★☆☆☆☆
13
Divide · ⁨Bagi⁩
★☆☆☆☆
14
Remainder · ⁨Baki⁩
★☆☆☆☆
15
Use a variable · ⁨Gunakan variabel⁩
★☆☆☆☆
16
A number variable · ⁨Pembolehubah nombor⁩
★☆☆☆☆
17
Change a variable · ⁨Ubah nilai variabel⁩
★☆☆☆☆
18
Add two variables · ⁨Tambah dua pembolehubah⁩
★☆☆☆☆
19
Multiply two variables · ⁨Darab dua pembolehubah⁩
★☆☆☆☆
20
Join two words · ⁨Gabungkan dua kata⁩
★☆☆☆☆
21
Greet a name · ⁨Sapa seseorang dengan namanya⁩
★☆☆☆☆
22
Repeat text · ⁨Ulangi teks⁩
★☆☆☆☆
23
Ask for a name · ⁨Minta nama⁩
★☆☆☆☆
24
Echo a number · ⁨Gema angka⁩
★☆☆☆☆
105
Call a function · ⁨Panggil sebuah fungsi⁩
★☆☆☆☆
106
Use what it gives back · ⁨Gunakan nilai yang dikembalikan⁩
★☆☆☆☆
107
Finish the function · ⁨Selesaikan definisi fungsi⁩
★☆☆☆☆
108
Write one yourself · ⁨Tulis sendiri satu fungsi⁩
★★☆☆☆
25
Your first function · ⁨Fungsi pertama anda⁩
★☆☆☆☆
26
Is it positive? · ⁨Adakah ia positif?⁩
★☆☆☆☆
27
The bigger one · ⁨Yang lebih besar⁩
★☆☆☆☆
28
The last item · ⁨Item terakhir⁩
★☆☆☆☆
29
Is it even? · ⁨Apakah genap?⁩
★☆☆☆☆
30
Sum a list · ⁨Jumlahkan daftar⁩
★☆☆☆☆
31
Reverse a string · ⁨Balikkan string⁩
★★☆☆☆
32
Count the vowels · ⁨Hitung huruf vokal⁩
★★☆☆☆
33
FizzBuzz
★★★☆☆
34
Letter frequencies · ⁨Frekuensi huruf⁩
★★★☆☆
35
Remove duplicates · ⁨Hapus duplikat⁩
★★★☆☆
36
Second largest · ⁨Nilai terbesar kedua⁩
★★★☆☆
37
Group anagrams · ⁨Kelompokkan anagram⁩
★★★★☆
38
Flatten a nested list · ⁨Ratakan daftar bersarang⁩
★★★★☆
39
RPN calculator · ⁨Kalkulator RPN⁩
★★★★★
40
Run-length encoding · ⁨Pengkodean panjang rentang⁩
★★★★★
41
Count to ten · ⁨Menghitung hingga sepuluh⁩
★★☆☆☆
42
Even numbers · ⁨Angka genap⁩
★★☆☆☆
43
Liftoff
★★☆☆☆
44
Star triangle · ⁨Segitiga bintang⁩
★★☆☆☆
45
The 3 times table · ⁨Tabel kali 3⁩
★★☆☆☆
46
Running total · ⁨Total berjalan⁩
★★★☆☆
47
Largest without max · ⁨Terbesar tanpa max⁩
★★★☆☆
48
Smallest without min · ⁨Terkecil tanpa min⁩
★★★☆☆
49
Count the positives · ⁨Hitung yang positif⁩
★★☆☆☆
50
Average of a list · ⁨Rata-rata sebuah daftar⁩
★★★☆☆
51
Add up 1 to 100 · ⁨Jumlahkan 1 sampai 100⁩
★★☆☆☆
52
Upside-down triangle · ⁨Segitiga terbalik⁩
★★☆☆☆
53
FizzBuzz with 4 and 6 · ⁨FizzBuzz dengan 4 dan 6⁩
★★★☆☆
54
Until you type stop · ⁨Hingga Anda mengetik stop⁩
★★★☆☆
55
A list of squares · ⁨Daftar kuadrat⁩
★★☆☆☆
56
Count a value · ⁨Hitung suatu nilai⁩
★★☆☆☆
57
Keep the evens · ⁨Simpan yang genap⁩
★★☆☆☆
58
Find the position · ⁨Temukan posisi⁩
★★★☆☆
59
Smallest and largest · ⁨Terkecil dan terbesar⁩
★★★☆☆
60
Above average · ⁨Di atas rata-rata⁩
★★★☆☆
61
Binary to denary · ⁨Biner ke desimal⁩
★★★★☆
62
Denary to binary · ⁨Desimal ke biner⁩
★★★★☆
63
Digital root · ⁨Akar digital⁩
★★★★☆
64
Caesar cipher · ⁨Kiper Caesar⁩
★★★★☆
65
Bank account · ⁨Rekening bank⁩
★★★★☆
66
Transpose a grid · ⁨Transposisi grid⁩
★★★★☆
67
Most common word · ⁨Kata paling umum⁩
★★★★★
68
Sieve of Eratosthenes · ⁨Saringan Eratosthenes⁩
★★★★★
69
A row of Pascal's triangle · ⁨Baris segitiga Pascal⁩
★★★★★
70
Tic-tac-toe winner · ⁨Pemenang tic-tac-toe⁩
★★★★★
71
Is it big? · ⁨Apakah itu besar?⁩
★☆☆☆☆
72
Pass or fail · ⁨Lulus atau gagal⁩
★☆☆☆☆
73
Positive, negative or zero · ⁨Positif, negatif, atau nol⁩
★☆☆☆☆
74
The bigger number · ⁨Angka yang lebih besar⁩
★☆☆☆☆
75
Even or odd · ⁨Genap atau ganjil⁩
★☆☆☆☆
76
Is it in range? · ⁨Apakah itu dalam rentang?⁩
★★☆☆☆
77
Free entry · ⁨Masuk gratis⁩
★★☆☆☆
78
Grade letter · ⁨Huruf nilai⁩
★★☆☆☆
79
Divisible by both · ⁨Dapat dibagi keduanya⁩
★★☆☆☆
80
Ticket price · ⁨Harga tiket⁩
★★☆☆☆
81
Finish the countdown · ⁨Selesaikan hitungan mundur⁩
★☆☆☆☆
82
The loop that never ends · ⁨Perulangan yang tidak pernah berhenti⁩
★☆☆☆☆
83
Count up to five · ⁨Hitung naik hingga lima⁩
★☆☆☆☆
84
Add up to five · ⁨Jumlahkan hingga lima⁩
★☆☆☆☆
85
Double until it passes 100 · ⁨Gandakan hingga melewati 100⁩
★★☆☆☆
86
Stop at the first over fifty · ⁨Berhenti pada yang pertama melebihi lima puluh⁩
★★☆☆☆
87
Count down in twos · ⁨Hitung mundur dalam dua⁩
★★☆☆☆
88
Until they type stop · ⁨Hingga mereka mengetik stop⁩
★★☆☆☆
89
How many halvings? · ⁨Berapa banyak pembagian?⁩
★★☆☆☆
90
A row of the times table · ⁨Baris dari tabel perkalian⁩
★★☆☆☆
91
The first letter · ⁨Huruf pertama⁩
★☆☆☆☆
92
The last letter · ⁨Huruf terakhir⁩
★☆☆☆☆
93
The first three letters · ⁨Tiga huruf pertama⁩
★☆☆☆☆
94
How long is it? · ⁨Seberapa panjangnya?⁩
★☆☆☆☆
95
Shout it · ⁨Teriakkan⁩
★☆☆☆☆
96
Initials · ⁨Inisial⁩
★★☆☆☆
97
Ask for a name · ⁨Minta nama⁩
★☆☆☆☆
98
Ask for two things · ⁨Minta dua hal⁩
★☆☆☆☆
99
A number from input · ⁨Sebuah angka dari input⁩
★☆☆☆☆
100
Add two numbers you were given · ⁨Jumlahkan dua angka yang diberikan kepada Anda⁩
★★☆☆☆
101
Each letter on its own line · ⁨Setiap huruf pada baris tersendiri⁩
★☆☆☆☆
102
Zero to four · ⁨Nol sampai empat⁩
★☆☆☆☆
103
Count the letters · ⁨Hitung jumlah huruf⁩
★☆☆☆☆
104
Add up one to five · ⁨Jumlahkan satu sampai lima⁩
★☆☆☆☆
01
Print a word · ⁨Cetak satu perkataan⁩
★☆☆☆☆
02
Print another word · ⁨Cetak satu perkataan lagi⁩
★☆☆☆☆
03
Print a sentence · ⁨Cetak satu ayat⁩
★☆☆☆☆
04
Print with a ! · ⁨Cetak dengan !⁩
★☆☆☆☆
05
Print two lines · ⁨Cetak dua baris⁩
★☆☆☆☆
06
Print a number · ⁨Cetak satu nombor⁩
★☆☆☆☆
07
Add two numbers · ⁨Tambah dua nombor⁩
★☆☆☆☆
08
Subtract · ⁨Tolak⁩
★☆☆☆☆
09
Multiply · ⁨Darab⁩
★☆☆☆☆
10
Divide · ⁨Bagi⁩
★☆☆☆☆
11
Remainder · ⁨Baki⁩
★☆☆☆☆
12
A number variable · ⁨Pembolehubah nombor⁩
★☆☆☆☆
13
A text variable · ⁨Variabel teks⁩
★☆☆☆☆
14
Add two variables · ⁨Tambah dua pembolehubah⁩
★☆☆☆☆
15
Your first method · ⁨Metode pertamamu⁩
★☆☆☆☆
16
Is it positive? · ⁨Adakah ia positif?⁩
★☆☆☆☆
17
Cube a number · ⁨Kuasa tiga satu nombor⁩
★☆☆☆☆
18
The smaller one · ⁨Yang lebih kecil⁩
★☆☆☆☆
19
Square a number · ⁨Kuasa dua satu nombor⁩
★☆☆☆☆
20
Largest of three · ⁨Terbesar bagi tiga nombor⁩
★☆☆☆☆
21
Count the vowels · ⁨Hitung huruf vokal⁩
★★☆☆☆
22
Reverse the word order · ⁨Balik urutan kata⁩
★★☆☆☆
23
Palindrome check · ⁨Pengecekan palindrom⁩
★★★☆☆
24
Running sum · ⁨Jumlah kumulatif⁩
★★★☆☆
25
Most frequent character · ⁨Karakter paling sering muncul⁩
★★★☆☆
26
Binary search · ⁨Pencarian biner⁩
★★★☆☆
27
Factorial (mind the size) · ⁨Faktorial (perhatikan ukurannya)⁩
★★★★☆
28
Count primes below n · ⁨Hitung bilangan prima di bawah n⁩
★★★★☆
29
Roman numerals · ⁨Angka Romawi⁩
★★★★★
30
Longest common prefix · ⁨Awalan umum terpanjang⁩
★★★★★
01
Print a word · ⁨Cetak satu perkataan⁩
★☆☆☆☆
02
Print another word · ⁨Cetak satu perkataan lagi⁩
★☆☆☆☆
03
Print a sentence · ⁨Cetak satu ayat⁩
★☆☆☆☆
04
Print with a ! · ⁨Cetak dengan !⁩
★☆☆☆☆
05
Print two lines · ⁨Cetak dua baris⁩
★☆☆☆☆
06
Print three lines · ⁨Cetak tiga baris⁩
★☆☆☆☆
07
Print a number · ⁨Cetak satu nombor⁩
★☆☆☆☆
08
Add two numbers · ⁨Tambah dua nombor⁩
★☆☆☆☆
09
Subtract · ⁨Tolak⁩
★☆☆☆☆
10
Multiply · ⁨Darab⁩
★☆☆☆☆
11
Remainder · ⁨Baki⁩
★☆☆☆☆
12
A number variable · ⁨Pembolehubah nombor⁩
★☆☆☆☆
13
Add two variables · ⁨Tambah dua pembolehubah⁩
★☆☆☆☆
14
Multiply two variables · ⁨Darab dua pembolehubah⁩
★☆☆☆☆
15
Your first function · ⁨Fungsi pertama anda⁩
★☆☆☆☆
16
Is it positive? · ⁨Adakah ia positif?⁩
★☆☆☆☆
17
Cube a number · ⁨Kuasa tiga satu nombor⁩
★☆☆☆☆
18
The smaller one · ⁨Yang lebih kecil⁩
★☆☆☆☆
19
Square a number · ⁨Kuasa dua satu nombor⁩
★☆☆☆☆
20
Sign of a number · ⁨Isyarat satu nombor⁩
★☆☆☆☆
21
Largest of three · ⁨Terbesar bagi tiga nombor⁩
★★☆☆☆
22
Factorial · ⁨Faktorial⁩
★★☆☆☆
23
Greatest common divisor · ⁨Pengangka persekutuan terbesar⁩
★★☆☆☆
24
Count the 1-bits · ⁨Kira bit 1⁩
★★☆☆☆
25
Sum an array · ⁨Jumlahkan satu senarai⁩
★★★☆☆
26
Swap two values · ⁨Tukar dua nilai⁩
★★★☆☆
27
String length · ⁨Panjang string⁩
★★★☆☆
28
Count a character · ⁨Kira satu karakter⁩
★★★☆☆
29
Reverse in place · ⁨Undur di tempat⁩
★★★★☆
30
Palindrome · ⁨Palindrom⁩
★★★★☆
31
Bubble sort
★★★★☆
32
Points with a struct · ⁨Titik dengan struktur⁩
★★★★☆
33
Binary search · ⁨Pencarian biner⁩
★★★★★
34
Parse an integer · ⁨Huraikan integer⁩
★★★★★
All courses, one page each · ⁨Semua kursus, satu halaman per kursus⁩

Log in or create account · ⁨Masuk atau buat akun⁩

IGCSE, A-Level & AP