Control Flow: If, Loop, dan Switch — Alur Kendali dalam Programming
📋 Daftar Isi
Control Flow: If, Loop, dan Switch — Alur Kendali dalam Programming
“Program itu kayak resep masakan — kadang ada instruksi bersyarat (kalau air udah mendidih, baru masukkan mie) dan ada instruksi berulang (aduk selama 3 menit). Itulah control flow.”
Daftar Isi
- Apa Itu Control Flow?
- Percabangan (Conditional)
- Perulangan (Loop)
- Control Flow dalam Berbagai Bahasa
- Kesimpulan
Apa Itu Control Flow?
Di artikel sebelumnya kita udah bahas bahwa algoritma adalah langkah-langkah logis buat nyelesain masalah. Nah, control flow adalah mekanisme yang bikin langkah-langkah itu nggak selalu jalan lurus dari atas ke bawah — kadang harus milih cabang, kadang harus ngulang.
| Istilah | Bahasa sehari-hari | Ibaratnya |
|---|---|---|
| Sequence | Eksekusi baris per baris | Baca resep dari langkah 1 sampai selesai |
| Selection | Percabangan — pilih salah satu jalur | ”Kalau hujan, bawa payung. Kalau nggak, nggak usah.” |
| Iteration | Perulangan — lakukan berulang kali | ”Ulangi langkah 2-5 sampai adonan kalis.” |
Tanpa control flow, semua program cuma bisa jalan lurus — nggak bisa ngambil keputusan, nggak bisa ngulang tugas. Mirip kayak robot yang cuma bisa jalan maju terus tanpa bisa belok atau muter.
Percabangan (Conditional)
Percabangan adalah cara program ngambil keputusan berdasarkan kondisi tertentu. Kondisi ini selalu bernilai boolean — true atau false.
If-Else
If-else adalah bentuk percabangan paling dasar dan paling universal — ada di semua bahasa pemrograman.
nilai = 85
if nilai >= 90:
print("Grade A")
elif nilai >= 75:
print("Grade B")
elif nilai >= 60:
print("Grade C")
else:
print("Grade D — remedi")
Cara bacanya:
- If: “Kalau nilai ≥ 90, cetak Grade A”
- Elif (else-if): “Kalau bukan, tapi nilai ≥ 75, cetak Grade B”
- Else: “Kalau nggak ada yang cocok, cetak Grade D”
Penting: urutan kondisi itu krusial. Kalau kamu tulis nilai >= 60 dulu sebelum nilai >= 90, maka nilai 85 bakal ke-tangkep di kondisi pertama (≥ 60) dan nggak pernah nyampe ke Grade A.
Analogi lampu lalu lintas: Hijau → jalan. Kuning → hati-hati. Merah → berhenti. Program ngecek satu per satu — cocok yang mana, jalanin yang itu. Sisanya dilewatin.
Switch-Case
Switch-case alternatif dari if-else yang lebih rapi — cocok buat kondisi dengan banyak nilai tetap (bukan range).
let hari = "senin";
switch (hari) {
case "senin":
console.log("Mulai kerja!");
break;
case "jumat":
console.log("Weekend sebentar lagi!");
break;
case "sabtu":
case "minggu":
console.log("Weekend! Santai dulu.");
break;
default:
console.log("Hari biasa.");
}
Bandingin dengan if-else:
| Aspek | If-Else | Switch-Case |
|---|---|---|
| Kondisi | Bisa range/kompleks (>, <, &&, ||) | Hanya nilai tetap (===) |
| Kelebihan | Fleksibel banget — cocok untuk logika rumit | Lebih cepat dibaca untuk banyak pilihan tetap |
| Contoh | Nilai ujian, validasi form | Menu pilihan, hari, bulan |
Perulangan (Loop)
Kalau percabangan ngatur kapan sesuatu jalan, perulangan ngatur berapa kali sesuatu jalan. Bayangin kamu disuruh nulis “Aku janji nggak telat” 100 kali di papan tulis — itu kerjaan yang sempurna buat loop.
For Loop
For loop digunakan kalau kamu tau persis berapa kali pengulangan harus terjadi.
# Cetak angka 1 sampai 5
for i in range(1, 6):
print(f"Perulangan ke-{i}")
// Iterasi array
const buah = ["apel", "mangga", "pisang"];
for (let i = 0; i < buah.length; i++) {
console.log(buah[i]);
}
Struktur for loop klasik (dari C/JavaScript):
- Inisialisasi (
let i = 0) — mulai dari mana - Kondisi (
i < 5) — selama apa loop jalan - Increment (
i++) — gimana cara maju
While Loop
While loop digunakan kalau kamu nggak tau persis berapa kali — yang penting, kondisi masih true, loop terus jalan.
# Terus minta input sampai user kasih angka positif
angka = -1
while angka <= 0:
angka = int(input("Masukkan angka positif: "))
// Selama koneksi internet mati, coba reconnect
let connected = false;
while (!connected) {
connected = tryReconnect();
console.log("Mencoba koneksi...");
}
Do-While Loop
Ini varian while yang dijalankan dulu minimal sekali, baru cek kondisi.
let password;
do {
password = prompt("Masukkan password:");
} while (password !== "rahasia123");
Bedanya dengan while biasa: while cek kondisi sebelum jalan, do-while cek kondisi sesudah jalan. Jadi do-while pasti jalan minimal 1 kali, sementara while bisa 0 kali kalau kondisi awalnya udah false.
| Aspek | For | While | Do-While |
|---|---|---|---|
| Kapan pakai | Tau jumlah pasti | Kondisi aja, nggak tau jumlah | Minimal sekali jalan, lalu ulang |
| Contoh | Iterasi array 0..99 | Tunggu koneksi, baca file sampai habis | Validasi input user |
| Pasti jalan? | Bisa 0 kali | Bisa 0 kali | Minimal 1 kali |
Control Flow dalam Berbagai Bahasa
Salah satu skill penting programmer adalah bisa baca control flow di bahasa yang berbeda. Di artikel tipe data kita udah liat perbedaan sintaks tiap bahasa — mirip juga di control flow.
Python — tanpa kurung kurawal, pake indentasi:
for i in range(5):
if i % 2 == 0:
print(f"{i} genap")
else:
print(f"{i} ganjil")
JavaScript — kurung kurawal eksplisit:
for (let i = 0; i < 5; i++) {
if (i % 2 === 0) {
console.log(`${i} genap`);
} else {
console.log(`${i} ganjil`);
}
}
Go — tanpa kurung di kondisi, tapi kurung kurawal tetap wajib:
for i := 0; i < 5; i++ {
if i%2 == 0 {
fmt.Println(i, "genap")
} else {
fmt.Println(i, "ganjil")
}
}
Tips: Meskipun sintaksnya beda, logikanya SAMA. Kalau kamu udah ngerti konsep if dan for di satu bahasa, tinggal belajar sintaksnya aja di bahasa lain. Inilah kenapa paham algoritma itu lebih penting dari hafal sintaks.
Kesimpulan
| Aspek | Intinya |
|---|---|
| Percabangan | If-else buat kondisi kompleks/range. Switch-case buat banyak pilihan nilai tetap. |
| Perulangan | For buat jumlah pasti. While buat “selama kondisi terpenuhi”. Do-while buat “minimal sekali”. |
| Bahasa | Konsepnya universal — yang beda cuma sintaks. |
| Best Practice | Jangan nested terlalu dalam (>3 level). Pilih alat yang tepat: jangan for kalau bisa while, jangan switch kalau kondisinya range. |
Control flow adalah jantung dari logika programming. Setelah paham ini, kamu bisa mulai bikin program yang bener-bener ngambil keputusan dan ngerjain tugas berulang — bukan cuma program linear yang jalan lurus-lurus aja.
Related Posts
- Algoritma dan Logika Dasar Programmer — Pahami dasar algoritma sebelum belajar control flow.
- Tipe Data dan Variabel di Berbagai Bahasa — Variabel dan tipe data adalah bahan baku control flow.
- Apa Itu Programming? — Kembali ke dasar: apa itu programming dan bagaimana alur kerjanya.