Proyek Kecil: Mengasah Semua Ilmu
Proyek akhir: FizzBuzz, deret Fibonacci, dan cek bilangan prima — menggabungkan variabel, ekspresi, loop, dan fungsi.
Proyek Kecil: Mengasah Semua Ilmu
Semua bahan sudah kamu pelajari: variabel, tipe, operator, string, if, for, while, dan fungsi. Sekarang waktunya mempraktikkannya dalam tiga proyek kecil — klasik yang pernah dilalui semua pemrogram.
Proyek 1: FizzBuzz
Aturan: untuk angka 1 sampai 20 —
- kelipatan 3 → cetak
Fizz - kelipatan 5 → cetak
Buzz - kelipatan 3 dan 5 → cetak
FizzBuzz - lainnya → cetak angkanya
for i 1..21 {
if i % 15 == 0 {
print_str("FizzBuzz\n");
} else {
if i % 3 == 0 {
print_str("Fizz\n");
} else {
if i % 5 == 0 {
print_str("Buzz\n");
} else {
print(i);
}
}
}
}Logika inti ada pada sisa bagi % dan cabang bertingkat — dua konsep yang kamu pelajari di pelajaran 4 dan 6.
Proyek 2: Deret Fibonacci
Deret Fibonacci: setiap angka adalah jumlah dari dua angka sebelumnya — 0, 1, 1, 2, 3, 5, 8, ...
let a = 0;
let b = 1;
let berikutnya = 0;
for i in 0..10 {
print(a);
berikutnya = a + b;
a = b;
b = berikutnya;
}Output:
0
1
1
2
3
5
8
13
21
34Kuncinya: menyimpan dua nilai terakhir dan menggesernya setiap putaran. Coba telusuri dua-tiga putaran pertama dengan pensil — pahamilah setiap langkahnya.
Proyek 3: Cek Bilangan Prima
Bilangan prima: habis dibagi hanya oleh 1 dan dirinya sendiri.
fn is_prima(n) {
let hasil = 1;
let pembagi = 2;
while pembagi < n {
if n % pembagi == 0 {
hasil = 0;
}
pembagi = pembagi + 1;
}
hasil
}
for i 2..20 {
if is_prima(i) {
print_str("prima: ");
print(i);
}
}Output:
prima: 2
prima: 3
prima: 5
prima: 7
prima: 11
prima: 13
prima: 17
prima: 19Catatan: jika n % pembagi == 0 maka n bukan prima — kita tandai dengan mengganti hasil menjadi 0. Ini pola "flag" yang sangat umum dalam pemrograman.
Tantangan Ekstra
- Faktorisasi: cetak semua faktor prima dari
84(petunjuk: kombinasikanis_primadengan%). - Bilangan sempurna: cari bilangan di bawah
100yang jumlah pembaginya (tanpa dirinya) sama dengan bilangan itu sendiri.6 = 1 + 2 + 3— 6 adalah bilangan sempurna pertama. - Piramida bintang: cetak piramida 5 baris dari karakter
*— setiap baris lebih panjang satu dari baris sebelumnya (print_str("*\n"),"**\n", ...). Petunjuk: gunakanforbersarang dan variabel string yang menumpuk (baris = baris + "*").
Sesudah Course Ini
Kamu sekarang tahu dasar-dasar menulis kode AHA! Lang! Langkah berikutnya:
- Perluas sintaks: baca Language Tour — ringkasan lengkap semua konstruksi bahasa.
- Fungsi lanjutan: lihat halaman Functions dan Strings.
- Referensi builtin: Builtins.
- Cara menginstal: Getting Started.
- Arsitektur di balik layar: Architecture — bagaimana kompiler ini dibangun dengan LLVM.
Kalau kamu pengguna Python yang penasaran bagaimana AHA! Lang dibandingkan dengan Python, baca artikel blog kami: AHA! Lang vs Python.
Selamat menulis kode! 🎉