02. Menyelesaikan masalah di atas kertas terlebih dahulu — Solusi pekerjaan rumah

Flowchart di bawah ini adalah contoh jawaban. Milikmu bisa digambar dengan tangan dengan bentuk yang sama — oval, persegi panjang, berlian, panah.

Soal 1 — Sikat gigi

Soal. Flowchart garis lurus tanpa pertanyaan dan tanpa loop.

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.

  • Melewati langkah yang membosankan (memeras pasta gigi, membilas). Komputer juga melewatinya.
  • Menggabungkan dua aksi ke dalam satu kotak (Sikat gigi dan meludah). Sebuah kotak adalah satu aksi. Sebuah dan biasanya berarti dua kotak.

Soal 2 — Apa yang akan ditonton

Soal. Satu berlian. Cabang ya-loop kembali; 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 loop kembali ke pilih acara, sehingga program mencoba lagi.

Kesalahan umum.

  • Loop kembali ke buka aplikasi. Aplikasinya sudah terbuka. Loop seharusnya kembali ke langkah pertama yang berubah — memilih acara, bukan membuka aplikasi.

Soal 3 — Apa yang akan dipakai

Soal. Setidaknya dua berlian. Jalur-jalur bergabung 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

Empat jalur berjalan melaluinya: dingin + hujan, dingin + kering, hangat + hujan, hangat + kering. Setiap jalur membuat pilihan yang berbeda, lalu keempat jalur bertemu di kenakan dan pergi.

Kesalahan umum.

  • Lupa bahwa jalur berlian kedua bergabung kembali. Jika tidak, setengah waktu program tidak pernah mencapai kenakan dan pergi. Periksa bahwa setiap panah akhirnya mencapai ujung.

Tantangan — Loop dengan penghitung

Soal. Berhenti tepat setelah sepuluh push-up. Butuh penghitung dan pertanyaan.

Cara berpikir. Loop yang berjalan N kali memiliki bentuk ini:

  1. Set penghitung ke 0.
  2. Apakah penghitung sudah mencapai N? Jika ya, berhenti.
  3. Lakukan satu putaran kerja.
  4. Tambah 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

Lacak: penghitung mulai di 0. Apakah 10? Tidak. Push-up 1, penghitung menjadi 1. Apakah 10? Tidak. Push-up 2, penghitung menjadi 2. ... Ketika mencapai 10 jawabannya ya dan kita berhenti tepat di sepuluh.

Ini adalah pola loop for i in range(1, 11): yang akan kamu tulis di Bab 18. Flowchart adalah gambarnya; kode Python adalah gambar itu yang dituliskan.

Kesalahan umum.

  • Lupa kotak tambah 1 ke penghitung. Penghitung tetap di 0 selamanya dan kamu melakukan push-up seumur hidup — sebuah infinite loop, bug nyata dalam kode nyata.
  • Memeriksa apakah penghitung lebih besar dari 10 dan berhenti di sana. Itu bisa berfungsi, tapi mudah meleset satu. Sama dengan 10, dengan tambah 1 setelah push-up, adalah yang paling bersih.

Selesai?

Bab berikutnya memperbesar tampilan ke tiga blok bangunan yang sudah kamu temukan di sini: melakukan hal-hal secara berurutan, mengajukan pertanyaan ya/tidak untuk memilih jalur, dan loop kembali untuk mengulang pekerjaan.