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.

Start Pick up the toothbrush Run water over the bristles Squeeze toothpasteonto the brush Brush teeth for two minutes Spit out the toothpaste Rinse the brush under water Put the toothbrush back Done

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.

no yes Start Open the streaming app Pick a show that looks good Have I seen this episode? Press play Done

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.

yes no yes no Start Is it cold? Pick warm clothes Pick light clothes Is it raining? Add a raincoat No raincoat needed Put it on and leave Done

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:

  1. Set penghitung ke 0.
  2. Apakah penghitung sudah mencapai N? Kalau ya, berhenti.
  3. Lakukan satu putaran kerja.
  4. Tambahkan 1 ke penghitung.
  5. Kembali ke langkah 2.

Contoh jawaban.

yes no Start Set counter to 0 Is counter equal to 10? Done Do one press-up Add 1 to the counter

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.