If, Else If, Else & Nested If
Memahami struktur kondisional bersarang (nested if), dari konsep hingga implementasi kode dalam C++ dan Python
Agenda
Review If — Else If — Else
Sintaks C++ & Python
Flowchart & Bagian-bagiannya
Simbol standar & flowchart percabangan
Nested If (If Bersarang)
Konsep, flowchart & implementasi
Latihan & Tugas Kelompok
Soal literasi, numerasi & tugas nested if
Struktur percabangan yang memungkinkan program memilih satu dari beberapa jalur eksekusi berdasarkan kondisi.
Mengevaluasi kondisi pertama. Jika benar (true), blok kode di dalamnya dieksekusi.
Kondisi tambahan yang diperiksa hanya jika if sebelumnya false. Bisa lebih dari satu.
Jalan terakhir yang dieksekusi jika semua kondisi di atas false. Bersifat opsional.
Alur eksekusi: Kondisi diperiksa secara berurutan dari atas. Begitu satu kondisi bernilai true, bloknya dieksekusi lalu program keluar dari seluruh struktur if — tidak ada kondisi lain yang diperiksa.
Skenario: Memberikan grade A/B/C/D berdasarkan nilai ujian
#include <iostream>
using namespace std;
int main() {
int nilai = 82;
if (nilai >= 90) {
cout << "Grade: A" << endl;
} else if (nilai >= 80) {
cout << "Grade: B" << endl;
} else if (nilai >= 70) {
cout << "Grade: C" << endl;
} else if (nilai >= 60) {
cout << "Grade: D" << endl;
} else {
cout << "Grade: E" << endl;
}
return 0;
}
// Output: Grade: B
nilai = 82
if nilai >= 90:
print("Grade: A")
elif nilai >= 80:
print("Grade: B")
elif nilai >= 70:
print("Grade: C")
elif nilai >= 60:
print("Grade: D")
else:
print("Grade: E")
# Output: Grade: B
Perbedaan kunci: C++ menggunakan else if (dua kata), Python menggunakan elif (satu kata). Python pakai indentasi, C++ pakai kurung kurawal {}.
Simbol standar yang digunakan dalam diagram alur (ANSI)
Terminal
Mulai / Selesai
Keputusan
If / Else If
Proses
Aksi / Statement
Input/Output
Baca / Cetak
Aliran
Panah arah
Label pada keputusan: Garis yang keluar dari belah kiri biasanya diberi label "Ya" / "True", dan dari belah kanan diberi label "Tidak" / "False".
Bagaimana setiap simbol flowchart diterjemahkan ke kode
int main() { ... }Terminalcin >> nilai;Inputif (nilai >= 90)Keputusancout << "A";Proseselse if / elseAliran False# langsung tulis kodeTerminalnilai = int(input())Inputif nilai >= 90:Keputusanprint("A")Proseselif / elseAliran FalseInti: Flowchart bahasa-agnostik — logikanya sama, hanya cara penulisannya yang berbeda antara C++ (kurawal, titik koma) dan Python (indentasi, titik dua).
If di dalam If
Nested if adalah struktur percabangan di mana terdapat pernyataan if di dalam blok if lainnya. Digunakan ketika ada kondisi yang bergantung pada kondisi sebelumnya.
Contoh kehidupan nyata: Untuk ikut study tour, pertama nilai harus memenuhi syarat. Kalau sudah, baru dicek catatan sikap. Kalau sikap baik, baru dicek persetujuan orang tua. Satu syarat gagal → tidak bisa ikut.
Kapan digunakan? Ketika keputusan bersifat hierarkis — kondisi kedua hanya relevan jika kondisi pertama terpenuhi. Tidak semua cabang perlu dicek jika cabang induknya sudah false.
Skenario: Siswa SMA di Padang ingin ikut study tour ke Jakarta — dicek 3 syarat secara bertingkat
#include <iostream>
#include <string>
using namespace std;
int main() {
int nilai = 85;
string sikap = "baik";
string izin_ortu = "ya";
// Syarat 1: Nilai rata-rata
if (nilai >= 80) {
// Syarat 2: Catatan sikap
if (sikap == "baik") {
// Syarat 3: Izin orang tua
if (izin_ortu == "ya") {
cout << "Boleh ikut study tour!";
} else {
cout << "Nilai & sikap OK, ";
cout << "tapi minta izin ortu dulu.";
}
} else {
cout << "Nilai OK, tapi ";
cout << "perbaiki sikap dulu.";
}
} else {
cout << "Tidak bisa. ";
cout << "Nilai belum memenuhi.";
}
return 0;
}
// Output: Boleh ikut study tour!
nilai = 85
sikap = "baik"
izin_ortu = "ya"
# Syarat 1: Nilai rata-rata
if nilai >= 80:
# Syarat 2: Catatan sikap
if sikap == "baik":
# Syarat 3: Izin orang tua
if izin_ortu == "ya":
print("Boleh ikut study tour!")
else:
print("Nilai & sikap OK,")
print("tapi minta izin ortu dulu.")
else:
print("Nilai OK, tapi")
print("perbaiki sikap dulu.")
else:
print("Tidak bisa.")
print("Nilai belum memenuhi.")
# Output: Boleh ikut study tour!
Perhatikan indentasi Python: Setiap level nested if harus di-indentasi lebih dalam (4 spasi). Di C++, kurung kurawal {} yang menandai blok, indentasi hanya untuk keterbacaan.
Garis putus-putus ungu = area nested if. Jika nilai < 80, program langsung lompat ke output "Nilai belum OK" — tidak mengecek sikap & izin. Itulah efisiensi nested if.
Soal literasi-numerasi & implementasi kode nested if
Perhatikan kode nested if berikut yang menentukan kelayakan siswa SMA Padang untuk beasiswa. Jika nilai = 88, penghasilan ortu = "menengah", dan prestasi = "daerah", apa output program? Jelaskan alur eksekusinya step by step.
Seorang siswa membuat program nested if untuk menentukan jalur masuk Universitas Andalas: jika nilai UN ≥ 85, cek jurusan (IPA/IPS), lalu cek prestasi. Menurut Anda, apakah nested if lebih tepat digunakan daripada if-elseif-else untuk kasus ini? Berikan alasan.
Buatlah program nested if dalam C++ DAN Python untuk menentukan kelayakan siswa SMA Kota Padang mengikuti OSN (Olimpiade Sains Nasional). Syarat: nilai mata pelajaran ≥ 90 → cek rekomendasi guru (ya/tidak) → cek kuota sekolah (masih tersedia/penuh). Gambar flowchart dan tulis kode lengkap.
≤ 3
Orang per kelompok
2
Bahasa (C++ & Python)
1
Flowchart (gambar)
≥ 3
Level nested if
Boleh ikut study tour ke Jakarta? — Cek: nilai rata-rata ≥ 80? → sikap baik? → izin ortu? → kuota masih tersedia?
Penerimaan ekskul Pasukan Pengibar Bendera (Paskibra) — Cek: tinggi badan minimal? → postur tubuh? → nilai PPKn? → diterima/tidak
Kelayakan mendapat beasiswa Pemkot Padang — Cek: nilai rapor? → penghasilan ortu? → jumlah tanggungan? → layak/tidak
Buat skenario sendiri! — Syarat: harus relevan dengan kehidupan SMA di Padang, minimal 3 level nested if
Flowchart
Gambar di kertas / digital
Kode C++
Sesuai flowchart
Kode Python
Sesuai flowchart
Tips: Buat flowchart terlebih dahulu sebelum menulis kode. Pastikan setiap cabang memiliki output yang jelas. Gunakan simbol flowchart yang benar (bukan sekadar kotak semua). Test kode dengan minimal 3 kombinasi input berbeda untuk membuktikan logika benar.