---
title: P7 Python - Percabangan (if & if-else)
---

### Apa itu Percabangan?
**Percabangan :**
adalah struktur program yang memungkinkan program untuk **mengambil keputusan** — menjalankan blok kode tertentu hanya jika kondisi yang ditetapkan terpenuhi.

Bayangkan seperti persimpangan jalan :
* Ada **kondisi** yang dicek → seperti rambu di persimpangan
* Jika kondisi **terpenuhi (True)** → ambil jalur kanan (Bekasi ✓)
* Jika kondisi **tidak terpenuhi (False)** → ambil jalur kiri (Jakarta ✗)
Tanpa percabangan :
* Program berjalan lurus dari atas ke bawah tanpa bisa memilih
* Tidak bisa membuat program yang responsif terhadap input pengguna
* Tidak bisa membuat logika seperti "jika nilai >= 75, maka lulus"
---
### Nilai Boolean — Dasar dari Percabangan
Sebelum memahami percabangan, perlu dikenal dulu satu tipe data penting :
:::success
**Boolean** adalah tipe data yang hanya memiliki dua kemungkinan nilai :
* `True` → benar / kondisi terpenuhi
* `False` → salah / kondisi tidak terpenuhi
:::
Percabangan bekerja dengan cara mengecek apakah sebuah kondisi bernilai `True` atau `False`.
Kondisi dibentuk menggunakan **operator perbandingan** :
| Operator | Arti | Contoh | Hasil |
| -------- | ---- | ------ | ----- |
| `==` | Sama dengan | `5 == 5` | `True` |
| `!=` | Tidak sama dengan | `5 != 3` | `True` |
| `>` | Lebih besar | `7 > 3` | `True` |
| `<` | Lebih kecil | `2 < 1` | `False` |
| `>=` | Lebih besar atau sama dengan | `5 >= 5` | `True` |
| `<=` | Lebih kecil atau sama dengan | `3 <= 2` | `False` |
:::warning
**⚠️ Jangan tertukar!**
* `=` → digunakan untuk **menyimpan nilai** ke variabel (assignment)
* `==` → digunakan untuk **membandingkan** dua nilai (perbandingan)
```python
nilai = 80 # menyimpan angka 80 ke variabel nilai
nilai == 80 # mengecek apakah nilai sama dengan 80 → True
```
:::
---
### Struktur if — Jika ... Maka ...
Bentuk paling dasar dari percabangan adalah `if`.
**Bentuk Dasar :**
```
if kondisi :
# blok kode yang dijalankan jika kondisi True
```
Contoh :
```python
nilai = 80
if nilai >= 75 :
print("Selamat, kamu lulus!")
```
[<kbd>👉🏻 Klik untuk mempraktekkan>></kbd>](https://www.programiz.com/python-programming/online-compiler/)
Penjelasan :
* `nilai >= 75` → kondisi yang dicek
* Jika kondisi bernilai `True` → `print("Selamat, kamu lulus!")` dijalankan
* Jika kondisi bernilai `False` → tidak ada yang terjadi, program lanjut ke baris berikutnya
:::info
📌 **Perhatikan dua hal penting dalam penulisan `if` :**
1. Setelah kondisi wajib diakhiri tanda titik dua ` : `
2. Blok kode di dalam `if` wajib ditulis menjorok ke dalam (**indentasi**) — biasanya 4 spasi atau 1 Tab
:::
---
### Indentasi — Aturan Wajib di Python
:::success
**Indentasi** adalah jarak menjorok ke dalam yang menandakan sebuah blok kode berada **di dalam** struktur tertentu (if, else, fungsi, dan lain-lain).
:::
```python
# ✅ Benar — ada indentasi
nilai = 80
if nilai >= 75 :
print("Lulus") # ← menjorok ke dalam (bagian dari if)
print("Program selesai") # ← tidak menjorok (di luar if, selalu dijalankan)
```
[<kbd>👉🏻 Klik untuk mempraktekkan>></kbd>](https://www.programiz.com/python-programming/online-compiler/)
```python
# ❌ Salah — tidak ada indentasi
nilai = 80
if nilai >= 75 :
print("Lulus") # IndentationError!
```
[<kbd>👉🏻 Klik untuk mempraktekkan>></kbd>](https://www.programiz.com/python-programming/online-compiler/)
:::warning
**⚠️ Python sangat ketat soal indentasi!**
Berbeda dengan bahasa pemrograman lain yang menggunakan `{ }`, Python menggunakan indentasi sebagai penanda blok kode. Lupa indentasi = **error**.
:::
---
### Struktur if-else — Jika ... Maka ... Jika Tidak ...
Struktur `if-else` digunakan ketika program perlu melakukan sesuatu **baik saat kondisi terpenuhi maupun tidak**.
**Bentuk Dasar :**
```
if kondisi :
# dijalankan jika kondisi True
else :
# dijalankan jika kondisi False
```
Contoh :
```python
nilai = 60
if nilai >= 75 :
print("Selamat, kamu lulus!")
else :
print("Maaf, kamu belum lulus.")
```
[<kbd>👉🏻 Klik untuk mempraktekkan>></kbd>](https://www.programiz.com/python-programming/online-compiler/)
Penjelasan :
* Jika `nilai >= 75` → `True` : program mencetak `"Selamat, kamu lulus!"`
* Jika `nilai >= 75` → `False` : program mencetak `"Maaf, kamu belum lulus."`
* Salah satu **pasti** akan dijalankan — tidak ada kemungkinan keduanya dilewati
:::info
📌 **Perbedaan `if` dan `if-else` :**
* `if` → hanya punya satu jalur (jalur "ya"). Jika tidak memenuhi, dilewati begitu saja.
* `if-else` → punya dua jalur (jalur "ya" dan jalur "tidak"). Selalu ada yang dijalankan.
:::
---
### Perbedaan if dan if-else secara Visual
| Aspek | `if` | `if-else` |
| ----- | ---- | --------- |
| Jalur keputusan | 1 jalur (jika True saja) | 2 jalur (True dan False) |
| Jika kondisi False | Blok kode dilewati | Blok `else` dijalankan |
| Kapan digunakan | Hanya perlu aksi saat kondisi terpenuhi | Selalu butuh respons apapun kondisinya |
| Contoh kasus | Menampilkan pesan jika stok habis | Menentukan lulus / tidak lulus |
---
### Menggabungkan if-else dengan Input Pengguna
Percabangan menjadi jauh lebih berguna ketika dikombinasikan dengan `input()` karena keputusan program bisa bergantung pada data yang dimasukkan pengguna.
```python
# Input
umur = int(input("Masukkan umur kamu : "))
# Proses + Percabangan
if umur >= 17 :
print("Kamu boleh membuat KTP.")
else :
print("Kamu belum cukup umur untuk membuat KTP.")
```
[<kbd>👉🏻 Klik untuk mempraktekkan>></kbd>](https://www.programiz.com/python-programming/online-compiler/)
:::info
📌 **Ingat dari materi sebelumnya :**
Hasil `input()` selalu berupa `str`, jadi wajib di-casting ke `int` atau `float` sebelum dibandingkan dengan angka.
:::
---
### Alur Logika : Input → Proses (Percabangan) → Output

Berikut contoh program lengkap yang menggunakan percabangan `if-else` untuk mengecek apakah sebuah angka genap atau ganjil :
```python
# Input
angka = int(input("Masukkan sebuah angka : "))
# Proses — menggunakan modulo dari materi sebelumnya
if angka % 2 == 0 :
hasil = "Genap"
else :
hasil = "Ganjil"
# Output
print(angka, "adalah bilangan", hasil)
```
[<kbd>👉🏻 Klik untuk mempraktekkan>></kbd>](https://www.programiz.com/python-programming/online-compiler/)
Strukturnya tetap sama :
* **Input** → ambil data dari pengguna (casting ke int)
* **Proses** → cek kondisi dengan percabangan `if-else`
* **Output** → tampilkan hasil keputusan
---
### Mini Project — Penentu Kelulusan Siswa
Implementasi `if-else` dalam program nyata yang menggabungkan materi operator aritmatika dan percabangan :
```python
# Input data nilai siswa
print("=== CEK KELULUSAN SISWA ===")
nama = input("Nama siswa : ")
tugas = float(input("Nilai tugas (30%): "))
uts = float(input("Nilai UTS (30%): "))
uas = float(input("Nilai UAS (40%): "))
# Proses — hitung nilai akhir (operator aritmatika)
nilai_akhir = (tugas * 0.3) + (uts * 0.3) + (uas * 0.4)
# Proses — tentukan status kelulusan (percabangan)
if nilai_akhir >= 75 :
status = "LULUS ✓"
else :
status = "BELUM LULUS ✗"
# Output
print("===========================")
print("Nama :", nama)
print("Nilai Akhir :", nilai_akhir)
print("Status :", status)
print("===========================")
```
[<kbd>👉🏻 Klik untuk mempraktekkan>></kbd>](https://www.programiz.com/python-programming/online-compiler/)
---
### Ringkasan
| Topik | Poin Penting |
| ----- | ------------ |
| Percabangan | Struktur untuk membuat keputusan dalam program |
| Boolean | Tipe data hasil kondisi : `True` atau `False` |
| Operator perbandingan | `==` `!=` `>` `<` `>=` `<=` |
| `=` vs `==` | `=` menyimpan nilai, `==` membandingkan nilai |
| Indentasi | Wajib ada — 4 spasi atau 1 Tab setelah `if` / `else` |
| `if` | Satu jalur — hanya dijalankan jika kondisi `True` |
| `if-else` | Dua jalur — selalu ada yang dijalankan |
| Kombinasi dengan input | Wajib casting sebelum membandingkan dengan angka |