02. Memecahkan masalah di atas kertas dulu — Solusi PR
Diagram alir di bawah ini adalah contoh jawaban. Punyamu bisa digambar dengan tangan menggunakan bentuk yang sama — oval, persegi panjang, belah ketupat, dan panah.
Masalah 1 — Sikat gigi
Masalah. Diagram alir lurus tanpa pertanyaan dan tanpa perulangan.
Contoh jawaban.
Kesalahan umum.
- Melewatkan langkah yang membosankan (memencet pasta gigi, membilas). Komputer juga akan melewatinya.
- Menggabungkan dua aksi dalam satu kotak (Sikat gigi dan buang ludah). Satu kotak adalah satu aksi. Kata dan biasanya berarti dua kotak.
Masalah 2 — Mau nonton apa
Masalah. Satu belah ketupat. Cabang ya kembali ke atas; cabang tidak berakhir dengan tekan play.
Contoh jawaban.
Cabang yes kembali ke pilih acara, sehingga
program mencoba lagi.
Kesalahan umum.
- Kembali ke buka aplikasi. Aplikasinya sudah terbuka. Perulangan seharusnya kembali ke langkah pertama yang berubah — memilih acara, bukan membuka aplikasi.
Masalah 3 — Mau pakai baju apa
Masalah. Minimal dua belah ketupat. Jalur-jalurnya bertemu di akhir.
Contoh jawaban.
Ada empat jalur yang melewatinya: dingin + hujan, dingin + kering, hangat + hujan, hangat + kering. Masing-masing membuat pilihan yang berbeda, lalu keempat jalur bertemu di pakai dan pergi.
Kesalahan umum.
- Lupa bahwa jalur-jalur dari belah ketupat kedua harus bertemu kembali. Kalau tidak, setengah waktu program tidak pernah sampai ke pakai dan pergi. Pastikan setiap panah akhirnya mencapai ujung.
Tantangan — Perulangan dengan penghitung
Masalah. Berhenti tepat setelah sepuluh push-up. Butuh penghitung dan sebuah pertanyaan.
Cara memikirkannya. Sebuah perulangan yang berjalan sebanyak N kali memiliki bentuk seperti ini:
- Set penghitung ke 0.
- Apakah penghitung sudah mencapai N? Kalau ya, berhenti.
- Lakukan satu putaran kerja.
- Tambahkan 1 ke penghitung.
- Kembali ke langkah 2.
Contoh jawaban.
Telusuri: penghitung mulai dari 0. Apakah 10? Tidak. Push-up ke-1, penghitung jadi 1. Apakah 10? Tidak. Push-up ke-2, penghitung jadi 2. ... Ketika mencapai 10 jawabannya ya dan kita berhenti tepat di sepuluh.
Ini adalah pola perulangan for i = 1, 10 do ... end yang
akan kamu tulis di Bab 18. Diagram alir adalah gambarnya; kode Lua
adalah gambar itu yang ditulis ke dalam kode.
Kesalahan umum.
- Lupa kotak tambahkan 1 ke penghitung. Penghitung akan terus bernilai 0 selamanya dan kamu melakukan push-up sepanjang hidupmu — sebuah perulangan tak terbatas (infinite loop), bug nyata dalam kode nyata.
- Memeriksa apakah penghitung lebih dari 10 dan berhenti di sana. Bisa berhasil, tapi mudah meleset satu angka. Sama dengan 10, dengan penambahan 1 setelah push-up, adalah yang paling bersih.
Selesai?
Bab berikutnya memperbesar tampilan ke tiga blok pembangun yang sudah kamu temui di sini: melakukan sesuatu secara berurutan, mengajukan pertanyaan ya/tidak untuk memilih jalur, dan kembali mengulang pekerjaan.