%%{init: {"flowchart": {"diagramPadding": 40}}}%%
flowchart TD
A(["Mulai"]) --> B["Ambil 2 kg pakan"]
B --> C["Tebar pakan ke kolam"]
C --> D{"Ikan masih berebut pakan?"}
D -- "Ya" --> E["Tambah 200 g pakan"]
E --> D
D -- "Tidak" --> F["Catat total pakan yang dipakai"]
F --> G(["Selesai"])
Bab 2 — Berpikir Seperti Pemrogram: Menulis Resep untuk Komputer
Seri B1 — Mulai dari Nol
Masih belum ada kode di bab ini. Pemrogram yang baik berpikir dulu, mengetik kemudian. Bab ini melatih otot berpikir itu, memakai urusan lapangan yang sudah Anda kenal.
Algoritma: resep yang tidak boleh ambigu
Algoritma adalah urutan langkah yang jelas untuk mencapai sebuah tujuan. Anda sudah sering memakainya tanpa sadar: resep masakan, petunjuk arah, cara mengisi formulir.
Bedanya dengan instruksi biasa: algoritma untuk komputer tidak boleh ambigu. Ingat dari Bab 1, komputer adalah pegawai yang tidak punya akal. Bandingkan:
| Instruksi untuk manusia | Instruksi untuk komputer |
|---|---|
| “Beri pakan ikan secukupnya.” | “Tebar 2 kg pakan. Selama ikan masih berebut, tambah 200 g.” |
| “Panen kalau sudah besar.” | “Panen kalau bobot rata-rata sudah 500 g atau lebih.” |
| “Siram tanaman pagi-pagi.” | “Siram pukul 06.00 selama 10 menit.” |
Kata seperti secukupnya, kira-kira, agak, dan kalau sudah besar mudah dipahami manusia, tetapi tidak bisa dikerjakan komputer. Setiap kali menulis instruksi, tanyakan: “Bisakah orang yang sama sekali tidak tahu apa-apa mengerjakan ini dengan benar?”
Tiga bahan dasar semua program
Rahasia yang jarang diceritakan: program sebesar apa pun, dari kalkulator sampai aplikasi peta, tersusun dari tiga bahan dasar saja.
| Bahan | Artinya | Contoh dari lapangan |
|---|---|---|
| Urutan | Langkah dikerjakan satu per satu, dari atas ke bawah | Ambil pakan → tebar pakan → catat jumlahnya |
| Pilihan | Jika syarat terpenuhi, kerjakan A; kalau tidak, kerjakan B | Jika pH air di bawah 6, tambahkan kapur; kalau tidak, biarkan |
| Pengulangan | Ulangi langkah selama syarat masih berlaku | Selama ikan masih berebut pakan, tambah pakan sedikit lagi |
Itu saja. Seluruh sisa buku ini pada dasarnya adalah cara menuliskan ketiga hal ini dalam bahasa Python, lalu menerapkannya pada data hutan, kebun, sawah, kolam, dan kandang.
Flowchart: menggambar algoritma
Flowchart (diagram alur) adalah cara menggambar algoritma supaya mudah dilihat. Hanya ada beberapa bentuk:
| Bentuk | Artinya |
|---|---|
| Oval | Mulai atau Selesai |
| Kotak | Satu langkah yang dikerjakan |
| Belah ketupat | Satu pertanyaan yang jawabannya “Ya” atau “Tidak” |
| Panah | Arah alur, ke langkah berikutnya |
Berikut algoritma memberi pakan di kolam, memakai ketiga bahan dasar sekaligus:
Coba telusuri dengan jari: mulai dari oval Mulai, ikuti panah. Di belah ketupat Anda harus memilih jalan “Ya” atau “Tidak”. Jalan “Ya” kembali ke pertanyaan yang sama. Itulah pengulangan: berputar sampai jawabannya “Tidak”.
Tidak perlu aplikasi khusus. Flowchart cukup digambar di kertas dengan pensil. Kalau Anda bisa menelusuri gambarnya tanpa bingung, berarti algoritmanya sudah cukup jelas untuk diubah menjadi kode.
Pecah masalah besar menjadi langkah kecil
Misalkan atasan meminta: “Hitung hasil panen kebun bulan ini.” Terdengar besar dan kabur. Pemrogram memecahnya sampai setiap potongan jelas:
- Kumpulkan catatan panen setiap blok kebun.
- Untuk setiap blok: jumlahkan berat panen semua hari.
- Jumlahkan hasil semua blok.
- Bandingkan dengan target bulan ini.
- Tampilkan hasilnya dengan rapi.
Setiap nomor masih bisa dipecah lagi, sampai langkah terkecilnya begitu jelas sehingga bisa ditulis sebagai satu atau dua baris kode. Kebiasaan memecah masalah ini lebih berharga daripada menghafal aturan bahasa apa pun.
Mengetes algoritma di kepala
Sebelum menulis kode, uji algoritma dengan angka kecil. Contoh: pakan 2 kg, ikan berebut dua kali sebelum tenang.
| Langkah | Pakan yang sudah ditebar | Ikan masih berebut? |
|---|---|---|
| Tebar pertama | 2000 g | Ya |
| Tambah 200 g | 2200 g | Ya |
| Tambah 200 g | 2400 g | Tidak |
Hasil: total 2400 g. Mengetes secara manual seperti ini disebut uji coba di atas kertas (dry run). Kalau hasilnya sudah masuk akal di kertas, barulah kita yakin untuk mengetiknya.
Selain flowchart, pemrogram sering menulis algoritma sebagai pseudokode: kalimat bahasa sehari-hari yang disusun mirip kode, misalnya “ULANGI selama ikan berebut: tambah 200 g”. Pseudokode tidak dijalankan komputer. Ia hanya alat berpikir sebelum menulis kode sungguhan.
Latihan
- Tulis algoritma menyeduh teh manis dalam enam langkah atau lebih. Pastikan tidak ada kata secukupnya.
- Gambar flowchart untuk: “Periksa pH air kolam. Jika di bawah 6, tambahkan kapur lalu periksa lagi. Jika sudah 6 atau lebih, catat hasilnya.” Bagian mana yang berupa pengulangan?
- Tantangan: pecah tugas “Hitung jumlah pohon sehat di satu petak hutan” menjadi minimal lima langkah, lalu tandai langkah mana yang berupa pilihan dan mana yang berupa pengulangan.
Ringkasan Bab
- Algoritma = urutan langkah yang jelas dan tidak ambigu untuk mencapai tujuan.
- Semua program tersusun dari tiga bahan: urutan, pilihan, pengulangan.
- Flowchart menggambar algoritma: oval (mulai/selesai), kotak (langkah), belah ketupat (pertanyaan), panah (arah).
- Pecah masalah besar menjadi langkah kecil, lalu uji coba di atas kertas sebelum mengetik.
Selanjutnya, di Bab 3: kita berkenalan dengan terminal, jendela hitam tempat Anda “mengobrol” dengan komputer lewat ketikan, tanpa perlu takut salah.