- Bab 6 dari 8
- 35 menit
- 2 latihan kode
- 4 soal kuis
Tiga Struktur Kontrol dan Studi Kasus Teh Manis
Di bab ini (9 bagian)
Tujuan bab ini
- Menjelaskan tiga struktur kontrol dasar: sekuensial, percabangan, dan perulangan.
- Memberi contoh sehari-hari untuk setiap struktur.
- Membaca studi kasus membuat teh manis dalam pseudocode dan flowchart.
- Menulis perulangan
fordanwhiledi JavaScript.
Tiga bahan dasar semua algoritma
Algoritma serumit apa pun, dari aplikasi ojek daring sampai gim di ponselmu, dibangun dari tiga struktur saja: sekuensial, percabangan, dan perulangan. Kalau kamu menguasai tiga ini, kamu bisa membaca dan menyusun hampir semua algoritma.
Sekuensial
Sekuensial berarti langkah dijalankan berurutan dari atas ke bawah, satu per satu, tanpa dilewati.
Contoh sehari-hari: memakai kaus kaki, lalu sepatu. Urutannya tidak bisa ditukar. Memakai sepatu lalu kaus kaki jelas tidak masuk akal.
Di JavaScript, baris-baris di dalam fungsi juga dijalankan berurutan:
Percabangan
Percabangan berarti memilih langkah berdasarkan kondisi benar atau salah.
Contoh sehari-hari: jika lampu merah, berhenti. Kamu sudah mengenal bentuk JavaScript-nya di bab sebelumnya, yaitu if dan else:
Perulangan
Perulangan berarti mengulang langkah selama kondisi terpenuhi atau sejumlah kali tertentu.
Contoh sehari-hari: menyikat gigi tiap pagi dan malam, setiap hari.
Ada dua jenis perulangan yang perlu kamu bedakan:
| Jenis | Kapan dipakai | Contoh |
|---|---|---|
| Sejumlah kali (FOR) | Banyaknya ulangan sudah diketahui | Push-up 10 kali |
| Selama kondisi (WHILE, REPEAT UNTIL) | Banyaknya ulangan bergantung pada keadaan | Tunggu sampai air mendidih |
for di JavaScript
while di JavaScript
while (kondisi) { ... } mengulang isi kurung kurawal selama kondisinya benar. Begitu kondisinya salah, perulangan berhenti.
Perhatikan bahwa di dalam while, nilai suhu terus berubah. Kalau baris suhu = suhu + 10 dihapus, kondisi suhu < 100 akan selalu benar dan perulangan tidak pernah berhenti. Algoritma itu tidak lagi berhingga.
Studi kasus: membuat teh manis
Sekarang gabungkan ketiganya. Ini pseudocode membuat teh manis:
Mari bedah strukturnya:
- Sekuensial: rebus air, lalu seduh teh, lalu tambah gula. Urutannya tetap.
- Percabangan: "air belum mendidih" dan "rasa cukup manis" adalah kondisi yang diperiksa.
- Perulangan: "tunggu" diulang selama air belum mendidih, dan "tambah gula" diulang sampai rasa cukup manis.
WHILE dan REPEAT UNTIL itu berbeda
Keduanya perulangan, tetapi ada perbedaan halus:
- WHILE memeriksa kondisi di awal. Kalau air sudah mendidih sejak awal, langkah "tunggu" tidak dijalankan sama sekali.
- REPEAT UNTIL menjalankan langkah dulu, baru memeriksa kondisi. Jadi gula pasti ditambahkan minimal satu sendok.
Perbedaan ini masuk akal untuk teh manis: kamu pasti menambah gula setidaknya sekali.
Versi flowchart
Pada flowchart, alurnya: Mulai, Rebus air, lalu keputusan Mendidih? Jika Tidak, panah kembali ke atas untuk menunggu. Jika Ya, lanjut ke Seduh teh + gula, lalu keputusan Cukup manis? Jika Tidak, panah kembali untuk menambah gula. Jika Ya, Selesai.
Perhatikan polanya: panah "Tidak" yang kembali ke atas membentuk perulangan. Di flowchart tidak ada simbol khusus untuk perulangan. Perulangan muncul dari simbol keputusan yang alurnya berbalik ke langkah sebelumnya.
Coba tambahkan langkah yang terlewat, misalnya menyiapkan gelas dan kantong teh. Di mana kamu meletakkannya agar urutannya masuk akal?
Latihan berpikir: temukan strukturnya
Coba tentukan struktur kontrol pada setiap kalimat berikut:
| Kalimat | Struktur |
|---|---|
| Cuci tangan, lalu makan | Sekuensial |
| Jika PR sudah selesai, boleh bermain | Percabangan |
| Lari keliling lapangan 5 kali | Perulangan sejumlah kali |
| Aduk adonan sampai rata | Perulangan selama kondisi |
| Jika hujan, tunggu di kelas sampai reda | Percabangan yang berisi perulangan |
Kalimat terakhir menunjukkan bahwa struktur bisa bersarang: perulangan berada di dalam percabangan. Di JavaScript pun begitu, kamu boleh menulis while di dalam if, atau if di dalam for. Algoritma yang besar sebenarnya hanyalah susunan dan tumpukan tiga struktur ini.
Kesalahan umum
- Perulangan tanpa perubahan. Kalau nilai dalam kondisi tidak pernah berubah di dalam perulangan, program macet.
- Batas perulangan meleset satu.
i < 10mulai dari 1 hanya berjalan 9 kali, sedangkani <= 10berjalan 10 kali. - Memakai WHILE saat langkah wajib dijalankan minimal sekali. Pikirkan apakah kondisinya perlu diperiksa sebelum atau sesudah langkah.
Rangkuman
- Semua algoritma dibangun dari tiga struktur: sekuensial, percabangan, dan perulangan.
- Sekuensial menjalankan langkah berurutan; percabangan memilih langkah berdasarkan kondisi; perulangan mengulang langkah.
- FOR dipakai saat jumlah ulangan diketahui; WHILE dan REPEAT UNTIL dipakai saat ulangan bergantung pada kondisi.
- WHILE memeriksa kondisi di awal, REPEAT UNTIL menjalankan langkah dulu baru memeriksa.
- Di flowchart, perulangan terbentuk dari panah keputusan yang kembali ke langkah sebelumnya.
Slide 17 sampai 18 dari deck Computational Thinking: Berpikir Komputasional dari Nol. Penjelasan lengkapnya ada di mode Baca.

Selesaikan bab ini
- 1. Baca materi
- 2. Latihan kode (2)
- 3. Kuis (4 soal)
Latihan kode: REPEAT UNTIL: sendok gula
Setiap sendok gula menambah tingkat manis sebanyak 2. Pseudocode-nya:
Tulis sendokGula(target). Karena ini REPEAT UNTIL, gula selalu ditambah minimal satu sendok, bahkan jika target 0.
JavaScript punya do { ... } while (kondisi); yang menjalankan isi dulu baru memeriksa kondisi. Perhatikan bahwa kondisinya kebalikan dari UNTIL: ulangi selama manis < target.
Contoh: sendokGula(5) menghasilkan 3 (manis 2, 4, 6).
Latihan kode: Langkah membuat teh
Tulis langkahTeh(suhuAwal) yang mengembalikan array langkah-langkah:
- Selalu mulai dengan
"rebus air". - Selama suhu di bawah 100, tambahkan
"tunggu"dan naikkan suhu 10 derajat. - Akhiri dengan
"seduh teh".
Contoh: langkahTeh(80) menghasilkan ["rebus air", "tunggu", "tunggu", "seduh teh"], sedangkan langkahTeh(100) menghasilkan ["rebus air", "seduh teh"] karena air sudah mendidih.
Fungsi ini memuat sekuensial (urutan langkah) dan perulangan while yang kondisinya diperiksa di awal.
Cek pemahaman
1"Jika lampu merah, berhenti" adalah contoh struktur kontrol apa?
2Apa perbedaan utama WHILE dan REPEAT UNTIL?
3Pada flowchart membuat teh manis, perulangan terbentuk dari panah "Tidak" yang kembali ke langkah sebelumnya.
4Berapa nilai yang dikembalikan menitMendidih(70)?
function menitMendidih(suhuAwal) { let suhu = suhuAwal; let menit = 0; while (suhu < 100) { suhu = suhu + 10; menit = menit + 1; } return menit; }