01. Apa itu pemrograman? — Solusi pekerjaan rumah
Pekerjaan rumah Bagian 1 tidak punya file .py. Panduan
di bawah ini menunjukkan contoh jawaban; milikmu akan berbeda. Yang
penting adalah menemukan hal-hal yang sama jenisnya.
Soal 1 — Temukan langkah yang tidak jelas
Soal. Temukan tiga langkah yang tidak jelas dalam resep teh.
Cara berpikir. Di setiap langkah, tanyakan apa yang tidak diketahui oleh komputer? Ia tidak bisa menebak jumlah, durasi, atau preferensi.
Contoh jawaban.
- Langkah 1: "Didihkan sedikit air." Sedikit tidak jelas. Berapa banyak? Satu gelas? Satu liter?
- Langkah 4: "Buat sampai kekuatan yang tepat." Tepat tidak jelas. Berapa lama kantong teh dibiarkan? Tiga puluh detik? Tiga menit?
- Langkah 5: "Tambahkan susu jika mau." Jika mau tidak jelas. Komputer tidak punya keinginan. Ia butuh pertanyaan ya/tidak, seperti apakah susu ada dalam daftar permintaan?
Ketiga mana saja boleh. Langkah 2 ("Ambil kantong teh") dan 3 ("Masukkan ke dalam cangkir") lebih ketat, tapi kamu bisa menyebutnya tidak jelas juga — kantong teh yang mana, cangkir yang mana — dan kamu tidak salah.
Soal 2 — Jadilah komputer
Soal. Ubah "Rapikan kamarmu" menjadi 5-10 langkah spesifik.
Cara berpikir. Kamu mengubah satu tujuan yang kabur menjadi banyak tujuan kecil yang jelas. Setelah setiap langkah, tanyakan bisakah komputer melakukannya tanpa bertanya? Jika tidak, langkah itu masih terlalu besar.
Contoh jawaban.
1. Ambil setiap pakaian dari lantai.
2. Sortir pakaian menjadi dua tumpukan: kotor dan bersih.
3. Masukkan setiap pakaian kotor ke dalam keranjang cucian.
4. Lipat setiap pakaian bersih dan masukkan ke dalam lemari.
5. Ambil setiap buku dari lantai.
6. Letakkan setiap buku di rak buku.
7. Buang setiap kertas yang bukan buku sekolah.
8. Lap meja dengan kain.
9. Jalankan vacuum sekali di lantai.
10. Buka tirai.
Setiap langkah dimulai dengan kata kerja (ambil, sortir, masukkan, lipat, lap, jalankan, buka) — kebiasaan yang baik. Kata benda yang tidak jelas seperti organisasi dan kerapian sama sekali bukan langkah.
Soal 3 — Di mana ia akan rusak?
Soal. Apakah "tuangkan setengah mangkuk" masih berfungsi jika resepnya digandakan?
Cara berpikir. Setengah mangkuk bukan jumlah yang tetap. Tergantung seberapa penuh mangkuknya. Dua kali lebih penuh berarti setengah adalah dua kali lebih banyak.
Contoh jawaban.
Langkah itu tetap menuangkan setengah mangkuk, tapi setengah itu sekarang dua kali lebih banyak adonan. Wajannya kelebihan, dan pancake-nya tumpah atau jadi terlalu besar.
Langkah yang mengabaikan kepenuhan akan mengatakan tuangkan 200 ml adonan ke dalam wajan. Menggandakan resep berarti lebih banyak pancake dari satu mangkuk — jumlah per-pancake tetap benar.
Ide yang sama seperti variable. Setengah mangkuk bergantung pada nilai yang bisa berubah; 200 ml tidak. Yang pertama lebih fleksibel, yang kedua lebih dapat diprediksi.
Tantangan — Lembar sandwich
Soal. Tulis enam langkah untuk sandwich yang tahan terhadap orang dewasa yang mencoba mengambil setiap jalan pintas.
Cara berpikir. Setiap kata yang bisa dibaca dua cara adalah bug. Roti bisa roti apa saja, oleskan ketebalan berapa saja, sandwich bentuk apa saja. Jadilah sangat spesifik, lalu uji.
Contoh jawaban.
1. Ambil dua lembar roti putih dari loaf di meja dapur.
2. Letakkan kedua lembar secara datar, berdampingan, di atas piring bersih.
3. Menggunakan pisau mentega, oleskan satu sendok makan selai kacang
di seluruh permukaan atas lembar KIRI.
4. Menggunakan pisau mentega yang berbeda, oleskan satu sendok makan
selai stroberi di seluruh permukaan atas lembar KANAN.
5. Ambil lembar kanan dan letakkan, sisi selai menghadap KE BAWAH, langsung
di atas lembar kiri, sehingga dua permukaan yang dioles bertemu.
6. Letakkan sandwich yang sudah jadi di atas serbet bersih dan berikan kepada saya.
Berikan ini ke seseorang dan mereka masih akan melanggarnya ("kamu tidak bilang counter yang mana"). Tersenyumlah dan tambahkan langkah yang hilang. Kode seperti itu: versi pertama hampir tidak pernah cukup ketat.
Selesai?
Bab berikutnya memperkenalkan flowchart, cara berbasis gambar untuk merencanakan langkah-langkahmu sebelum menulisnya.