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

  1. Apa Itu Control Flow?
  2. Percabangan (Conditional)
  3. Perulangan (Loop)
  4. Control Flow dalam Berbagai Bahasa
  5. 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.

IstilahBahasa sehari-hariIbaratnya
SequenceEksekusi baris per barisBaca resep dari langkah 1 sampai selesai
SelectionPercabangan — pilih salah satu jalur”Kalau hujan, bawa payung. Kalau nggak, nggak usah.”
IterationPerulangan — 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 booleantrue 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:

AspekIf-ElseSwitch-Case
KondisiBisa range/kompleks (>, <, &&, ||)Hanya nilai tetap (===)
KelebihanFleksibel banget — cocok untuk logika rumitLebih cepat dibaca untuk banyak pilihan tetap
ContohNilai ujian, validasi formMenu 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.

AspekForWhileDo-While
Kapan pakaiTau jumlah pastiKondisi aja, nggak tau jumlahMinimal sekali jalan, lalu ulang
ContohIterasi array 0..99Tunggu koneksi, baca file sampai habisValidasi input user
Pasti jalan?Bisa 0 kaliBisa 0 kaliMinimal 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

AspekIntinya
PercabanganIf-else buat kondisi kompleks/range. Switch-case buat banyak pilihan nilai tetap.
PerulanganFor buat jumlah pasti. While buat “selama kondisi terpenuhi”. Do-while buat “minimal sekali”.
BahasaKonsepnya universal — yang beda cuma sintaks.
Best PracticeJangan 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.



💬 Komentar