Modul 4 — Pemrograman Terstruktur

4.2 Struktur Kontrol Program

Logika percabangan (if, elif, else), perulangan (for in range, while), kata kunci kendali break dan continue, teknik pelacakan tabel variabel (tracing), serta evaluasi efektivitas struktur kontrol.

Progres disimpan di browser ini saja.

A. Logika Percabangan (Selection)

Percabangan mengeksekusi blok kode tertentu berdasarkan evaluasi ekspresi kondisi boolean (`True` atau `False`). Di Python, indentasi spasi menentukan kepemilikan blok kode.

nilai = 82

if nilai >= 90:
    grade = 'A'
elif nilai >= 80:
    grade = 'B'    # Kondisi ini terpenuhi (82 >= 80), cabang berikutnya DILEWATI
elif nilai >= 70:
    grade = 'C'
else:
    grade = 'D'

print(grade)       # Output: B

Aturan Eksekusi: Pada struktur `if - elif - else`, evaluasi berjalan dari atas ke bawah. Begitu SATU kondisi bernilai `True`, blok di dalamnya dieksekusi dan seluruh cabang `elif` serta `else` di bawahnya langsung diabaikan.

B. Struktur Perulangan (Iteration)

1. Perulangan `for`: Digunakan saat jumlah perulangan sudah diketahui pasti atau saat menjelajahi (*traversing*) elemen koleksi data.

# range(start, stop, step)
for i in range(1, 6):     # Menghasilkan angka 1, 2, 3, 4, 5 (Batas akhir 6 TIDAK ikut!)
    print(i, end=' ')     # Output: 1 2 3 4 5

for i in range(0, 10, 2): # Melompat setiap 2 langkah
    print(i, end=' ')     # Output: 0 2 4 6 8

2. Perulangan `while`: Mengulang blok kode selama kondisi ekspresi bernilai `True`. Jumlah putaran tidak pasti di muka.

saldo = 100
while saldo > 0:
    saldo -= 30          # Putaran: 70 -> 40 -> 10 -> -20 (berhenti)

Instruksi Khusus: `break` menghentikan loop secara paksa seketika; `continue` melompati sisa baris kode pada iterasi saat ini dan langsung melompat ke putaran berikutnya.

C. Teknik Melacak Alur Program (Tracing Table)

Untuk menebak output kode yang kompleks tanpa salah, buat tabel nilai variabel pada setiap langkah putaran loop:

nilai = [70, 85, 60, 90]
jumlah_lulus = 0
for n in nilai:
    if n >= 75:
        jumlah_lulus += 1
print(jumlah_lulus)
Iterasi ke-Nilai nKondisi (n >= 75)Perubahan jumlah_lulus
17070 >= 75 -> Salah (False)Tetap 0
28585 >= 75 -> Benar (True)0 + 1 = 1
36060 >= 75 -> Salah (False)Tetap 1
49090 >= 75 -> Benar (True)1 + 1 = 2

Hasil Akhir: Nilai `jumlah_lulus` yang dicetak adalah 2.

D. Evaluasi Efektivitas Struktur Kontrol (Level C5)

Pola KodeKarakteristik & RisikoTingkat Efektivitas
Banyak `if` terpisah mandiriSemua baris `if` tetap diuji satu per satu meskipun kondisi awal sudah terpenuhi; rawan nilai tertimpa.Kurang Efektif
Struktur `if - elif - else`Kondisi saling lepas dievaluasi secara efisien; berhenti seketika di cabang pertama yang cocok.Sangat Efektif & Rapi
Menulis `print()` manual berulangKode kaku, tidak bisa menangani jumlah data yang berubah-ubah secara dinamis.Tidak Efektif
Perulangan `for item in koleksi`Kode ringkas, fleksibel untuk data berapapun jumlahnya, mudah dipelihara.Sangat Efektif

Latihan Soal

Pilih jawaban, tekan Check, lalu baca pembahasannya.

Benar 0 / 3

Soal 1sedang

Perhatikan potongan kode program Python berikut: x = 0 for i in range(1, 5): if i % 2 == 0: x += i print(x) Nilai variabel x yang dicetak ke layar adalah ...

Soal 2sedang

Diberikan perulangan bersarang (nested loop) sebagai berikut: for baris in range(2): for kolom in range(3): print('*', end='') Berapa kali simbol '*' akan dicetak selama program berjalan?

Soal 3sulit

Sebuah sistem kasir perlu menentukan tarif ongkos kirim. Pengembang menulis dua versi: Versi 1: ongkir = 15000 if jarak <= 5: ongkir = 10000 Versi 2: if jarak <= 5: ongkir = 10000 else: ongkir = 15000 Evaluasi komparatif yang tepat mengenai kedua versi kode di atas adalah ...