🔀 Control Flow di Java

💡Apa itu Control Flow?

Control Flow adalah cara mengatur alur eksekusi program di Java. Dengan control flow, kita dapat membuat keputusan (percabangan)menggunakan if-else dan switch, serta mengatur alur program secara dinamis berdasarkan kondisi tertentu.

Penting: Halaman ini fokus pada percabangan (if-else, switch). Untuk perulangan (for, while), lihat halaman Perulangan.

🌿1. Percabangan dengan if

Statement if digunakan untuk menjalankan kode jika kondisi bernilai true.

java
// If sederhana
int umur = 18;

if (umur >= 17) {
    System.out.println("Anda sudah dewasa");
}

// Contoh lain
int nilai = 85;

if (nilai >= 70) {
    System.out.println("Selamat, Anda lulus!");
}

// Dengan kondisi kompleks
int suhu = 35;

if (suhu > 30) {
    System.out.println("Cuaca sangat panas");
}

🎮 Demo: if Statement

🎮

Cek Status Umur

Masukkan umur untuk melihat status (dewasa >= 17)

Dewasa

Boleh membuat KTP

Kode Java:

int umur = 20;

if (umur >= 17) {
    System.out.println("Dewasa");
    System.out.println("Boleh membuat KTP");
}

↔️2. if-else

if-else memberikan pilihan alternatif jika kondisi if tidak terpenuhi.

java
int nilai = 65;

if (nilai >= 70) {
    System.out.println("Lulus");
} else {
    System.out.println("Tidak lulus");
}

// Contoh lain
int umur = 16;

if (umur >= 17) {
    System.out.println("Boleh membuat KTP");
} else {
    System.out.println("Belum boleh membuat KTP");
}

// Cek ganjil/genap
int angka = 7;

if (angka % 2 == 0) {
    System.out.println("Genap");
} else {
    System.out.println("Ganjil");
}

🎯3. if-else if-else

Digunakan ketika ada lebih dari dua kemungkinan kondisi.

java
let nilai = 85;

if (nilai >= 90) {
  console.log("Grade: A");
} else if (nilai >= 80) {
  console.log("Grade: B");
} else if (nilai >= 70) {
  console.log("Grade: C");
} else if (nilai >= 60) {
  console.log("Grade: D");
} else {
  console.log("Grade: E");
}

// Contoh lain: sistem suhu
let suhu = 28;

if (suhu >= 35) {
  console.log("Sangat panas");
} else if (suhu >= 25) {
  console.log("Panas");
} else if (suhu >= 20) {
  console.log("Hangat");
} else if (suhu >= 15) {
  console.log("Sejuk");
} else {
  console.log("Dingin");
}

⚠️ Perhatian:

Kondisi akan dievaluasi dari atas ke bawah. Begitu satu kondisi true, kode akan dijalankan dan sisanya diabaikan.

🎮 Demo: if-else if-else

🎮

Sistem Penilaian Grade

Masukkan nilai untuk melihat grade (A, B, C, D, E)

C

Cukup 👌

Nilai: 75

Kode Java:

int nilai = 75;

if (nilai >= 90) {
    System.out.println("Grade: A");
} else if (nilai >= 80) {
    System.out.println("Grade: B");
} else if (nilai >= 70) {
    System.out.println("Grade: C");
} else if (nilai >= 60) {
    System.out.println("Grade: D");
} else {
    System.out.println("Grade: E");
}

🌡️🎮 Demo: Sistem Suhu

🎮

Klasifikasi Suhu

Geser slider untuk melihat kategori suhu

☀️

Panas

25°C

❄️
<15°C
Dingin
🌥️
15-19°C
Sejuk
🌤️
20-24°C
Hangat
☀️
25-34°C
Panas
🔥
≥35°C
Sangat Panas

🎚️4. Switch Statement

switch adalah alternatif untuk if-else if-else yang lebih rapi ketika membandingkan satu variabel dengan banyak nilai.

java
int hari = 3;
String namaHari;

switch (hari) {
    case 1:
        namaHari = "Senin";
        break;
    case 2:
        namaHari = "Selasa";
        break;
    case 3:
        namaHari = "Rabu";
        break;
    case 4:
        namaHari = "Kamis";
        break;
    case 5:
        namaHari = "Jumat";
        break;
    case 6:
        namaHari = "Sabtu";
        break;
    case 7:
        namaHari = "Minggu";
        break;
    default:
        namaHari = "Tidak valid";
}

System.out.println(namaHari);  // "Rabu"

// Contoh lain: grade nilai
char grade = 'B';

switch (grade) {
    case 'A':
        System.out.println("Sempurna!");
        break;
    case 'B':
        System.out.println("Bagus!");
        break;
    case 'C':
        System.out.println("Cukup");
        break;
    case 'D':
        System.out.println("Kurang");
        break;
    default:
        System.out.println("Tidak lulus");
}

💡 Tips:

Jangan lupa breaksetelah setiap case, jika tidak kode akan "jatuh" ke case berikutnya.

🎮 Demo: Switch Statement

🎮

Konversi Angka ke Nama Hari

Pilih angka 1-7 untuk melihat nama hari

Hari ke-1

Senin

Kode Java:

int hari = 1;
String namaHari;

switch (hari) {
    case 1: namaHari = "Senin"; break;
    case 2: namaHari = "Selasa"; break;
    case 3: namaHari = "Rabu"; break;
    case 4: namaHari = "Kamis"; break;
    case 5: namaHari = "Jumat"; break;
    case 6: namaHari = "Sabtu"; break;
    case 7: namaHari = "Minggu"; break;
    default: namaHari = "Tidak valid";
}

System.out.println(namaHari);  // "Senin"

Ternary Operator

Ternary operator adalah cara singkat menulis if-else sederhana dalam satu baris.

java
// Format: kondisi ? nilaiJikaTrue : nilaiJikaFalse

int umur = 20;
String status = (umur >= 17) ? "Dewasa" : "Belum Dewasa";
System.out.println(status);  // "Dewasa"

// Contoh lain
int nilai = 85;
String hasil = (nilai >= 70) ? "Lulus" : "Tidak Lulus";
System.out.println(hasil);  // "Lulus"

// Nested ternary (hindari jika terlalu kompleks)
int angka = 5;
String tipe = (angka > 0) ? "Positif" : (angka < 0) ? "Negatif" : "Nol";

// Lebih baik dibanding:
String tipe2;
if (angka > 0) {
    tipe2 = "Positif";
} else if (angka < 0) {
    tipe2 = "Negatif";  
} else {
    tipe2 = "Nol";
}

🎭Nested If (If Bersarang)

If di dalam if, digunakan untuk kondisi bertingkat.

java
int umur = 20;
boolean punyaKTP = true;

if (umur >= 17) {
    System.out.println("Umur mencukupi");
    
    if (punyaKTP) {
        System.out.println("Boleh masuk");
    } else {
        System.out.println("Harus bawa KTP");
    }
} else {
    System.out.println("Umur belum cukup");
}

// Contoh lain: validasi login
String username = "admin";
String password = "12345";

if (username.equals("admin")) {
    if (password.equals("12345")) {
        System.out.println("Login berhasil");
    } else {
        System.out.println("Password salah");
    }
} else {
    System.out.println("Username tidak ditemukan");
}

📝 Ringkasan Control Flow Java

  • if: Eksekusi kode jika kondisi true
  • if-else: Pilih salah satu dari dua opsi
  • if-else if-else: Pilih dari banyak kondisi
  • switch: Alternatif if-else untuk banyak case
  • Ternary (?:): If-else singkat dalam satu baris
  • Nested if: If di dalam if untuk kondisi bertingkat
  • ✅ Untuk perulangan, lihat halaman Perulangan!