π 36-1 π Cerita +2 XP
β 36-2 β 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? +4 XP
β 36-3 β 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? +4 XP
π 36-4 π Cerita +2 XP
β 36-5 β 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!`? +4 XP
β 36-6 β 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? +4 XP
π 36-7 π Cerita +2 XP
β 36-8 β 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? +4 XP
β 36-9 β "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? +4 XP
π 36-10 π Cerita +2 XP
β 36-11 β "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? +4 XP
β 36-12 β 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? +4 XP
β 36-13 β "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? +4 XP
π 36-14 π Cerita +2 XP
π 36-15 π Boss: Rega si Rubah Penjaga Tungku Utama +48 XP