01. Apa itu pemrograman? — Solusi PR

PR Bagian 1 tidak memiliki file .lua. Penjelasan di bawah menunjukkan contoh jawaban; jawabanmu mungkin berbeda. Yang penting adalah menemukan jenis hal yang sama.

Soal 1 — Temukan langkah yang tidak jelas

Soal. Temukan tiga langkah yang tidak jelas dalam resep teh.

Cara memikirkannya. Di setiap langkah, tanyakan apa yang tidak akan diketahui komputer? Komputer tidak bisa menebak jumlah, durasi, atau preferensi.

Contoh jawaban.

  • Langkah 1: "Rebus sejumlah air." Sejumlah tidak jelas. Berapa banyak? Satu gelas? Satu liter?
  • Langkah 4: "Buat kekuatannya pas." Pas tidak jelas. Berapa lama kantong teh dibiarkan? Tiga puluh detik? Tiga menit?
  • Langkah 5: "Tambahkan susu kalau mau." Kalau mau tidak jelas. Komputer tidak punya keinginan. Komputer butuh pertanyaan ya/tidak, seperti apakah susu ada dalam daftar permintaan?

Tiga langkah manapun boleh. Langkah 2 ("Ambil kantong teh") dan 3 ("Masukkan ke cangkir") lebih spesifik, tapi kamu juga bisa menyebutnya tidak jelas — kantong teh yang mana, cangkir yang mana — dan itu tidak salah.

Soal 2 — Jadilah komputer

Soal. Ubah "Rapikan kamarmu" menjadi 5-10 langkah yang spesifik.

Cara memikirkannya. Kamu mengubah satu tujuan yang kabur menjadi banyak langkah kecil yang jelas. Setelah setiap langkah, tanyakan bisakah komputer melakukannya tanpa bertanya? Kalau tidak bisa, langkah itu masih terlalu besar.

Contoh jawaban.

1. Ambil semua pakaian yang ada di lantai.
2. Pisahkan pakaian menjadi dua tumpukan: kotor dan bersih.
3. Masukkan semua pakaian kotor ke keranjang cucian.
4. Lipat semua pakaian bersih dan simpan di lemari.
5. Ambil semua buku yang ada di lantai.
6. Letakkan setiap buku di rak buku.
7. Buang setiap kertas yang bukan buku sekolah.
8. Lap meja dengan kain.
9. Jalankan vakum di lantai sekali.
10. Buka tirai.

Setiap langkah dimulai dengan kata kerja (ambil, pisahkan, masukkan, lipat, lap, jalankan, buka) — kebiasaan yang bagus. Kata benda yang kabur seperti kerapian dan kebersihan sama sekali bukan langkah.

Soal 3 — Di mana langkah itu akan rusak?

Soal. Apakah "tuangkan setengah mangkuk" masih bekerja jika resepnya digandakan?

Cara memikirkannya. Setengah mangkuk bukan jumlah yang tetap. Itu bergantung pada seberapa penuh mangkuknya. Dua kali lebih penuh berarti setengah-nya dua kali lebih banyak.

Contoh jawaban.

Langkah itu tetap menuangkan setengah mangkuk, tapi setengahnya sekarang dua kali lipat adonan. Wajan jadi kelebihan, dan panekuk meluber atau keluar terlalu besar.

Langkah yang mengabaikan kepenuhan akan berbunyi tuangkan 200 ml adonan ke dalam wajan. Menggandakan resep berarti lebih banyak panekuk dari satu mangkuk — jumlah per panekuk tetap benar.

Sama seperti konsep variabel. Setengah mangkuk bergantung pada nilai yang bisa berubah; 200 ml tidak. Yang pertama lebih fleksibel, yang kedua lebih mudah diprediksi.

Tantangan — Lembar sandwich

Soal. Tulis enam langkah untuk membuat sandwich yang tetap benar meski ada orang dewasa yang mencoba mengambil setiap jalan pintas.

Cara memikirkannya. Setiap kata yang bisa dibaca dua cara adalah sebuah bug. Roti bisa roti apa saja, oles bisa ketebalan apa saja, sandwich bisa bentuk apa saja. Buatlah serinci mungkin, lalu uji.

Contoh jawaban.

1. Ambil dua lembar roti putih dari loaf di meja dapur.
2. Letakkan kedua lembar itu rata, berdampingan, di atas piring yang 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. Angkat lembar kanan dan letakkan, sisi selai menghadap KE BAWAH, langsung
   di atas lembar kiri, sehingga kedua permukaan yang diolesi saling berhadapan.
6. Letakkan sandwich yang sudah jadi di atas serbet bersih dan berikan kepada saya.

Berikan ini ke seseorang dan mereka tetap akan melanggarnya ("kamu tidak bilang meja yang mana"). Senyum saja dan tambahkan langkah yang kurang. Kode seperti itu: versi pertama hampir tidak pernah cukup ketat.

Selesai?

Bab berikutnya memperkenalkan diagram alir, cara berbasis gambar untuk merencanakan langkah-langkahmu sebelum menuliskannya.