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
34

Kuncinya: 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: 19

Catatan: 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

  1. Faktorisasi: cetak semua faktor prima dari 84 (petunjuk: kombinasikan is_prima dengan %).
  2. Bilangan sempurna: cari bilangan di bawah 100 yang jumlah pembaginya (tanpa dirinya) sama dengan bilangan itu sendiri. 6 = 1 + 2 + 3 — 6 adalah bilangan sempurna pertama.
  3. Piramida bintang: cetak piramida 5 baris dari karakter * — setiap baris lebih panjang satu dari baris sebelumnya (print_str("*\n"), "**\n", ...). Petunjuk: gunakan for bersarang dan variabel string yang menumpuk (baris = baris + "*").

Sesudah Course Ini

Kamu sekarang tahu dasar-dasar menulis kode AHA! Lang! Langkah berikutnya:

Kalau kamu pengguna Python yang penasaran bagaimana AHA! Lang dibandingkan dengan Python, baca artikel blog kami: AHA! Lang vs Python.

Selamat menulis kode! 🎉