๐ฅ Tungku Pembuka
Pilih titik untuk mulai. Selesaikan berurutan untuk membuka jalan!
๐
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