๐Ÿ”ฅ Tungku Pembuka

Pilih titik untuk mulai. Selesaikan berurutan untuk membuka jalan!

โ† Peta
๐Ÿ“–
36-1 +2 XP Cerita
โ“
36-2 +4 XP Dari tungku timur tampak asap negeri besi: Negeri Bara. Di negeri ini setiap mantra wajib tercatat pemiliknya di Buku Kepemilikan โ€” mantra tanpa pemilik tak boleh menyala. Ferris si Kepiting, juru catat tungku, membukakan bukunya. "Semua mantra Bara berdiri di satu pintu," kata Ferris, menunjuk tulisan di dinding tungku. ```rust fn main() { println!("Halo, Bara!"); } ``` "Pintunya satu, isinya satu genta. Daftar dulu, baru menyala." <b>Pertanyaannya:</b> baris mana yang menjadi pintu masuk program Bara?
โ“
36-3 +4 XP Tungku kecil pertama menyala. Genta bicaranya berdentang sekali, ucap satu sapaan โ€” dan layar menyimak. ```rust fn main() { println!("Halo, Bara!"); } ``` "Baca persis seperti yang genta ucapkan," kata Ferris. "Koma, seru, semuanya dihitung." <b>Pertanyaannya:</b> apa yang persis tampil di layar?
๐Ÿ“–
36-4 +2 XP Cerita
โ“
36-5 +4 XP Ferris mengetuk layar tulisan Bara. "Lihat genta-genta di negeri ini โ€” semuanya berdentang. Itu tandanya." Ia menunjuk tanda seru di ujung kata genta. ```rust fn main() { println!("Halo, Bara!"); } ``` "Tanda seru itu bukan hiasan," kata Ferris. "Kalau kamu hapus, tungku langsung menolak โ€” padam sebelum menyala." <b>Pertanyaannya:</b> apa tugas tanda `!` pada `println!`?
โ“
36-6 +4 XP Tungku kedua punya dua genta. Ferris menyalakannya berurutan โ€” dentang pertama, lalu dentang kedua, masing-masing satu baris di layar. ```rust fn main() { println!("Bara menyala"); println!("Tungku hangat"); } ``` "Dua genta, dua baris," kata Ferris. "Tungku Bara selalu pindah baris tiap selesai berbunyi." <b>Pertanyaannya:</b> apa yang persis tampil di layar?
๐Ÿ“–
36-7 +2 XP Cerita
โ“
36-8 +4 XP Di sudut tungku ada tulisan lama milik siswa dahulu. Ferris menyapunya โ€” lalu berhenti di satu baris. "Peninggalan mereka. Aku lupa bagaimana nasibnya dulu." ```rust fn main() { let api = 3; api = 5; println!("Api menyala!"); } ``` "Kotak `let` itu kotak tercatat," kata Ferris menunjuk Buku Kepemilikannya. "Sekali tercatat, isinya tak boleh diganti โ€” siapa pun, termasuk penulisnya sendiri." <b>Pertanyaannya:</b> apa yang terjadi pada program ini?
โ“
36-9 +4 XP "Kotak tercatat bisa dipanggil namanya," kata Ferris, menulis jendela kecil di dalam genta: kurung kurawal berisi nama kotak. ```rust fn main() { let nama = "Ferris"; println!("Tungku milik {nama}"); println!("Buku milik {nama}"); } ``` "Jendela `{nama}` berfungsi untuk menampilkan isi kotak. Panggil sekali, panggil dua kali โ€” isinya tetap sama." <b>Pertanyaannya:</b> apa yang persis tampil di layar?
๐Ÿ“–
36-10 +2 XP Cerita
โ“
36-11 +4 XP "Ada juga kotak yang memang sengaja mau diganti," kata Ferris. Ia menulis di papan pasir, kali ini dengan kata tambahan. ```rust fn main() { let mut bara = 1; println!("{bara}"); bara = 2; println!("{bara}"); } ``` "Kotak goyang. Ditulis `let mut`, bukan `let` saja. Bedanya satu kata, nasibnya jauh." <b>Pertanyaannya:</b> kenapa program ini sah โ€” menyala tanpa keberatan?
โ“
36-12 +4 XP Tungku latihan terakhir sebelum genta besar. Kotak goyangnya diganti dua kali โ€” dan Ferris minta kamu mengikutinya pelan-pelan. ```rust fn main() { let mut bara = 2; bara = bara + 3; bara = bara + 4; println!("{bara}"); } ``` "Isi baru dihitung dari isi lama," kata Ferris. "Baca satu baris, catat satu angka." <b>Pertanyaannya:</b> angka berapa yang tampil di layar?
โ“
36-13 +4 XP "Catatan pinggir," kata Ferris, menggambar dua garis miring di papan. "`//` berfungsi untuk menulis pesan untuk manusia โ€” tungku melewatinya begitu saja, tak disorot, tak diucapkan." ```rust fn main() { println!("Bara atas"); // println!("Bara tengah"); println!("Bara bawah"); } ``` "Gentanya tiga yang tertulis, satu tertutup catatan pinggir. Tungku hanya membaca yang disorot." <b>Pertanyaannya:</b> apa yang persis tampil di layar?
๐Ÿ“–
36-14 +2 XP Cerita
๐Ÿ‘‘
36-15 +48 XP Boss: Rega si Rubah Penjaga Tungku Utama