C++ & Python

Percabangan

If, Else If, Else & Nested If

Memahami struktur kondisional bersarang (nested if), dari konsep hingga implementasi kode dalam C++ dan Python

Flowchart Kode Nested If

Agenda

Daftar Materi

01

Review If — Else If — Else

Sintaks C++ & Python

02

Flowchart & Bagian-bagiannya

Simbol standar & flowchart percabangan

03

Nested If (If Bersarang)

Konsep, flowchart & implementasi

04

Latihan & Tugas Kelompok

Soal literasi, numerasi & tugas nested if

01

Review If — Else If — Else

Struktur percabangan yang memungkinkan program memilih satu dari beberapa jalur eksekusi berdasarkan kondisi.

If

Mengevaluasi kondisi pertama. Jika benar (true), blok kode di dalamnya dieksekusi.

Else If

Kondisi tambahan yang diperiksa hanya jika if sebelumnya false. Bisa lebih dari satu.

Else

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.

01

Contoh Kode: Menentukan Grade Nilai

Skenario: Memberikan grade A/B/C/D berdasarkan nilai ujian

C++
grade.cpp
#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
Python
grade.py
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 {}.

02

Bagian-bagian Flowchart

Simbol standar yang digunakan dalam diagram alur (ANSI)

Mulai

Terminal

Mulai / Selesai

Kondisi?

Keputusan

If / Else If

Proses

Proses

Aksi / Statement

Input

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".

02

Flowchart If — Else If — Else

Mulai Input: nilai nilai ≥ 90? Ya Grade: A Tidak nilai ≥ 80? Ya Grade: B Tidak Grade: C/D/E Selesai kondisi lain
02

Flowchart → Kode: Pemetaan

Bagaimana setiap simbol flowchart diterjemahkan ke kode

C++Pemetaan simbol
int main() { ... }Terminal
cin >> nilai;Input
if (nilai >= 90)Keputusan
cout << "A";Proses
else if / elseAliran False
PythonPemetaan simbol
# langsung tulis kodeTerminal
nilai = int(input())Input
if nilai >= 90:Keputusan
print("A")Proses
elif / elseAliran False

Inti: Flowchart bahasa-agnostik — logikanya sama, hanya cara penulisannya yang berbeda antara C++ (kurawal, titik koma) dan Python (indentasi, titik dua).

03

Nested If

If di dalam If

Apa itu Nested 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.

Struktur Visual

┌─ if (kondisi_1) {
│  blok jika kondisi_1 true
│  ┌─ if (kondisi_2) {
│  │  blok jika keduanya true
│  └─ } else {
│     blok jika k1 true, k2 false
│  └─ }
└─ } else {
   blok jika kondisi_1 false
└─ }

Kapan digunakan? Ketika keputusan bersifat hierarkis — kondisi kedua hanya relevan jika kondisi pertama terpenuhi. Tidak semua cabang perlu dicek jika cabang induknya sudah false.

03

Contoh: Kelayakan Study Tour

Skenario: Siswa SMA di Padang ingin ikut study tour ke Jakarta — dicek 3 syarat secara bertingkat

C++
study_tour.cpp
#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!
Python
study_tour.py
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.

03

Flowchart: Study Tour

Mulai Input: nilai, sikap, izin nilai ≥ 80? Tidak Nilai belum OK Ya nested if area sikap=="baik"? Tidak Perbaiki sikap Ya izin=="ya"? Tidak Minta izin ortu Ya ✅ Boleh ikut! Selesai

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.

Tugas

Latihan & Tugas Kelompok

Soal literasi-numerasi & implementasi kode nested if

Latihan Soal (Literasi & Numerasi)

C4 Menganalisis

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.

C5 Mengevaluasi

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.

C6 Mencipta

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.

Ketentuan Umum (Tugas Kelompok)

≤ 3

Orang per kelompok

2

Bahasa (C++ & Python)

1

Flowchart (gambar)

≥ 3

Level nested if

Pilih Satu Skenario (atau buat sendiri)

A

Boleh ikut study tour ke Jakarta? — Cek: nilai rata-rata ≥ 80? → sikap baik? → izin ortu? → kuota masih tersedia?

B

Penerimaan ekskul Pasukan Pengibar Bendera (Paskibra) — Cek: tinggi badan minimal? → postur tubuh? → nilai PPKn? → diterima/tidak

C

Kelayakan mendapat beasiswa Pemkot Padang — Cek: nilai rapor? → penghasilan ortu? → jumlah tanggungan? → layak/tidak

D

Buat skenario sendiri! — Syarat: harus relevan dengan kehidupan SMA di Padang, minimal 3 level nested if

Yang Dikumpulkan

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.