Kunci jawaban 02 Latihan Struktur Program. Pastikan kamu udah nyoba sendiri dulu. Solusi di sini ditulis sesederhana mungkin; punyamu boleh beda asal hasilnya benar.

2.1 Segitiga Berulang

for (let n = 1; n <= 7; n++) {
  console.log("#".repeat(n));
}

Kenapa: n berjalan dari 1 sampai 7, dan "#".repeat(n) membuat string berisi n buah pagar. Jadi baris pertama satu pagar, baris ketujuh tujuh pagar. Cara lain tanpa repeat: mulai dari string "#" dan tambahkan satu # tiap putaran:

let baris = "#";
while (baris.length <= 7) {
  console.log(baris);
  baris += "#";
}

→ Soal: 02 Latihan Struktur Program > 2.1 Segitiga Berulang

2.2 FizzBuzz

for (let n = 1; n <= 100; n++) {
  let keluaran = "";
  if (n % 3 == 0) keluaran += "Fizz";
  if (n % 5 == 0) keluaran += "Buzz";
  console.log(keluaran || n);
}

Kenapa: dua if terpisah (bukan else if) itu kuncinya. Angka 15 habis dibagi 3 dan 5, jadi kedua if jalan dan keluaran otomatis jadi "FizzBuzz" tanpa cabang khusus. Lalu keluaran || n: kalau keluaran masih "" (falsy), operator || mengembalikan n (angkanya); kalau ada isinya, isi itu yang dicetak.

→ Soal: 02 Latihan Struktur Program > 2.2 FizzBuzz

2.3 Papan Catur

let size = 8;
let papan = "";
 
for (let y = 0; y < size; y++) {
  for (let x = 0; x < size; x++) {
    if ((x + y) % 2 == 0) {
      papan += " ";
    } else {
      papan += "#";
    }
  }
  papan += "\n";
}
 
console.log(papan);

Kenapa: y nomor baris, x nomor kolom. Di posisi (0,0) jumlahnya 0 (genap) → spasi; (1,0) jumlahnya 1 (ganjil) → #; begitu bergantian. Waktu pindah baris, y naik satu sehingga paritas x + y bergeser dan polanya terbalik — persis papan catur. papan += "\n" ada di luar loop x tapi dalam loop y, jadi satu baris baru per baris papan. Karena batasnya size, mengganti size ke 4 atau 12 langsung jalan.

→ Soal: 02 Latihan Struktur Program > 2.3 Papan Catur