1. Pengertian Percabangan
Percabangan adalah struktur algoritma yang digunakan untuk mengambil keputusan berdasarkan kondisi tertentu.
Program tidak selalu menjalankan semua instruksi secara berurutan. Dalam kondisi tertentu, program harus menentukan:
- Jika kondisi benar → lakukan proses A
- Jika kondisi salah → lakukan proses B
Contoh sederhana:
Jika nilai mahasiswa ≥ 60, maka mahasiswa dinyatakan LULUS.
Jika nilai < 60, maka mahasiswa dinyatakan TIDAK LULUS.
Secara umum:
KONDISI
/ \
BENAR SALAH
| |
Proses A Proses B
2. Mengapa Percabangan Dibutuhkan?
Tanpa percabangan, program hanya dapat menjalankan instruksi secara berurutan.
Contoh algoritma tanpa percabangan:
Masukkan nama
Masukkan nilai
Tampilkan nama
Tampilkan nilai
Dengan percabangan:
Masukkan nama
Masukkan nilai
Jika nilai >= 60
Tampilkan "LULUS"
Jika tidak
Tampilkan "TIDAK LULUS"
Percabangan membuat program dapat mengambil keputusan secara otomatis.
3. Konsep Dasar Percabangan
Percabangan menggunakan kondisi.
Contoh kondisi:
nilai >= 60
umur >= 17
password == "admin"
jenis_kelamin == "L"
total_belanja >= 500000
Operator perbandingan yang umum digunakan:
| Operator | Arti | Contoh |
|---|---|---|
== | sama dengan | nilai == 80 |
!= | tidak sama dengan | nilai != 80 |
> | lebih besar | nilai > 80 |
< | lebih kecil | nilai < 80 |
>= | lebih besar atau sama dengan | nilai >= 60 |
<= | lebih kecil atau sama dengan | nilai <= 60 |
4. Operator Logika
Kondisi juga dapat digabungkan menggunakan operator logika.
| Operator | Arti |
|---|---|
| AND | kedua kondisi harus benar |
| OR | salah satu kondisi benar |
| NOT | membalik kondisi |
Dalam Python:
and
or
not
Dalam JavaScript:
&&
||
!
Contoh:
nilai >= 60 AND kehadiran >= 75
Artinya mahasiswa harus memenuhi dua kondisi.
5. Jenis-Jenis Percabangan
Percabangan yang akan dipelajari:
ifif - elseif - elif - else- Percabangan bersarang / nested if
- Percabangan dengan operator logika
- Percabangan bertingkat
- Percabangan berdasarkan beberapa kondisi
- Ternary / conditional expression
- Studi kasus percabangan
6. Percabangan IF
Konsep
Percabangan if digunakan ketika program hanya perlu melakukan sesuatu jika kondisi benar.
Algoritma
Mulai
Input nilai
Jika nilai >= 60 maka
Tampilkan "LULUS"
Selesai
Pseudocode
BEGIN
INPUT nilai
IF nilai >= 60 THEN
OUTPUT "LULUS"
END IF
END
Python
nilai = int(input("Masukkan nilai: "))
if nilai >= 60:
print("LULUS")
JavaScript
let nilai = Number(prompt("Masukkan nilai:"));
if (nilai >= 60) {
document.write("LULUS");
}
7. IF – ELSE
Digunakan jika terdapat dua kemungkinan.
Contoh:
Jika nilai >= 60
LULUS
Jika tidak
TIDAK LULUS
Algoritma
Mulai
Input nilai
Jika nilai >= 60 maka
Tampilkan "LULUS"
Jika tidak
Tampilkan "TIDAK LULUS"
Selesai
Pseudocode
BEGIN
INPUT nilai
IF nilai >= 60 THEN
OUTPUT "LULUS"
ELSE
OUTPUT "TIDAK LULUS"
END IF
END
Python
nilai = int(input("Masukkan nilai: "))
if nilai >= 60:
print("LULUS")
else:
print("TIDAK LULUS")
JavaScript
let nilai = Number(prompt("Masukkan nilai:"));
if (nilai >= 60) {
document.write("LULUS");
} else {
document.write("TIDAK LULUS");
}
8. IF – ELIF – ELSE
Digunakan jika terdapat lebih dari dua kemungkinan.
Contoh kategori nilai:
| Nilai | Keterangan |
|---|---|
| 85–100 | A |
| 75–84 | B |
| 60–74 | C |
| < 60 | D |
Algoritma
Mulai
Input nilai
Jika nilai >= 85 maka
Grade = A
Jika tidak, jika nilai >= 75 maka
Grade = B
Jika tidak, jika nilai >= 60 maka
Grade = C
Jika tidak
Grade = D
Tampilkan grade
Selesai
Pseudocode
BEGIN
INPUT nilai
IF nilai >= 85 THEN
grade = "A"
ELSE IF nilai >= 75 THEN
grade = "B"
ELSE IF nilai >= 60 THEN
grade = "C"
ELSE
grade = "D"
END IF
OUTPUT grade
END
Python
nilai = int(input("Masukkan nilai: "))
if nilai >= 85:
grade = "A"
elif nilai >= 75:
grade = "B"
elif nilai >= 60:
grade = "C"
else:
grade = "D"
print("Grade:", grade)
JavaScript
let nilai = Number(prompt("Masukkan nilai:"));
let grade;
if (nilai >= 85) {
grade = "A";
} else if (nilai >= 75) {
grade = "B";
} else if (nilai >= 60) {
grade = "C";
} else {
grade = "D";
}
document.write("Grade: " + grade);
9. Percabangan dengan Kondisi AND
Contoh:
Mahasiswa dinyatakan lulus jika:
- Nilai minimal 60
- Kehadiran minimal 75%
Algoritma
Mulai
Input nilai
Input kehadiran
Jika nilai >= 60 DAN kehadiran >= 75 maka
Tampilkan "LULUS"
Jika tidak
Tampilkan "TIDAK LULUS"
Selesai
Pseudocode
BEGIN
INPUT nilai
INPUT kehadiran
IF nilai >= 60 AND kehadiran >= 75 THEN
OUTPUT "LULUS"
ELSE
OUTPUT "TIDAK LULUS"
END IF
END
Python
nilai = int(input("Masukkan nilai: "))
kehadiran = int(input("Masukkan kehadiran: "))
if nilai >= 60 and kehadiran >= 75:
print("LULUS")
else:
print("TIDAK LULUS")
JavaScript
let nilai = Number(prompt("Masukkan nilai:"));
let kehadiran = Number(prompt("Masukkan kehadiran:"));
if (nilai >= 60 && kehadiran >= 75) {
document.write("LULUS");
} else {
document.write("TIDAK LULUS");
}
10. Percabangan dengan OR
Contoh:
Mahasiswa mendapatkan remedial jika:
- Nilai < 60
- ATAU kehadiran < 75%
Algoritma
Mulai
Input nilai
Input kehadiran
Jika nilai < 60 ATAU kehadiran < 75 maka
Tampilkan "REMEDIAL"
Jika tidak
Tampilkan "LULUS"
Selesai
Pseudocode
BEGIN
INPUT nilai
INPUT kehadiran
IF nilai < 60 OR kehadiran < 75 THEN
OUTPUT "REMEDIAL"
ELSE
OUTPUT "LULUS"
END IF
END
Python
nilai = int(input("Masukkan nilai: "))
kehadiran = int(input("Masukkan kehadiran: "))
if nilai < 60 or kehadiran < 75:
print("REMEDIAL")
else:
print("LULUS")
JavaScript
let nilai = Number(prompt("Masukkan nilai:"));
let kehadiran = Number(prompt("Masukkan kehadiran:"));
if (nilai < 60 || kehadiran < 75) {
document.write("REMEDIAL");
} else {
document.write("LULUS");
}
11. Nested IF
Nested IF adalah if di dalam if.
Contoh:
Jika nilai >= 60
Jika kehadiran >= 75
LULUS
Jika tidak
TIDAK LULUS karena kehadiran
Jika tidak
TIDAK LULUS karena nilai
Pseudocode
BEGIN
INPUT nilai
INPUT kehadiran
IF nilai >= 60 THEN
IF kehadiran >= 75 THEN
OUTPUT "LULUS"
ELSE
OUTPUT "TIDAK LULUS - Kehadiran kurang"
END IF
ELSE
OUTPUT "TIDAK LULUS - Nilai kurang"
END IF
END
Python
nilai = int(input("Masukkan nilai: "))
kehadiran = int(input("Masukkan kehadiran: "))
if nilai >= 60:
if kehadiran >= 75:
print("LULUS")
else:
print("TIDAK LULUS - Kehadiran kurang")
else:
print("TIDAK LULUS - Nilai kurang")
JavaScript
let nilai = Number(prompt("Masukkan nilai:"));
let kehadiran = Number(prompt("Masukkan kehadiran:"));
if (nilai >= 60) {
if (kehadiran >= 75) {
document.write("LULUS");
} else {
document.write("TIDAK LULUS - Kehadiran kurang");
}
} else {
document.write("TIDAK LULUS - Nilai kurang");
}
12. Percabangan untuk Menentukan Bilangan Positif, Negatif, atau Nol
Algoritma
Mulai
Input angka
Jika angka > 0
Tampilkan "POSITIF"
Jika tidak, jika angka < 0
Tampilkan "NEGATIF"
Jika tidak
Tampilkan "NOL"
Selesai
Pseudocode
BEGIN
INPUT angka
IF angka > 0 THEN
OUTPUT "POSITIF"
ELSE IF angka < 0 THEN
OUTPUT "NEGATIF"
ELSE
OUTPUT "NOL"
END IF
END
Python
angka = int(input("Masukkan angka: "))
if angka > 0:
print("POSITIF")
elif angka < 0:
print("NEGATIF")
else:
print("NOL")
JavaScript
let angka = Number(prompt("Masukkan angka:"));
if (angka > 0) {
document.write("POSITIF");
} else if (angka < 0) {
document.write("NEGATIF");
} else {
document.write("NOL");
}
13. Menentukan Bilangan Genap atau Ganjil
Konsep penting:
angka % 2
Jika hasilnya 0, berarti genap.
Jika bukan 0, berarti ganjil.
Algoritma
Mulai
Input angka
Jika angka MOD 2 = 0 maka
Tampilkan "GENAP"
Jika tidak
Tampilkan "GANJIL"
Selesai
Pseudocode
BEGIN
INPUT angka
IF angka MOD 2 = 0 THEN
OUTPUT "GENAP"
ELSE
OUTPUT "GANJIL"
END IF
END
Python
angka = int(input("Masukkan angka: "))
if angka % 2 == 0:
print("GENAP")
else:
print("GANJIL")
JavaScript
let angka = Number(prompt("Masukkan angka:"));
if (angka % 2 == 0) {
document.write("GENAP");
} else {
document.write("GANJIL");
}
14. Studi Kasus: Menentukan Diskon
Ketentuan:
| Total Belanja | Diskon |
|---|---|
| ≥ 1.000.000 | 20% |
| ≥ 500.000 | 10% |
| < 500.000 | 0% |
Algoritma
Mulai
Input total belanja
Jika total >= 1.000.000
diskon = 20%
Jika tidak, jika total >= 500.000
diskon = 10%
Jika tidak
diskon = 0%
Hitung potongan
Hitung total bayar
Tampilkan diskon
Tampilkan total bayar
Selesai
Pseudocode
BEGIN
INPUT total
IF total >= 1000000 THEN
diskon = 20
ELSE IF total >= 500000 THEN
diskon = 10
ELSE
diskon = 0
END IF
potongan = total * diskon / 100
bayar = total - potongan
OUTPUT potongan
OUTPUT bayar
END
Python
total = float(input("Total belanja: "))
if total >= 1000000:
diskon = 20
elif total >= 500000:
diskon = 10
else:
diskon = 0
potongan = total * diskon / 100
bayar = total - potongan
print("Diskon:", diskon, "%")
print("Potongan:", potongan)
print("Total bayar:", bayar)
JavaScript
let total = Number(prompt("Total belanja:"));
let diskon;
if (total >= 1000000) {
diskon = 20;
} else if (total >= 500000) {
diskon = 10;
} else {
diskon = 0;
}
let potongan = total * diskon / 100;
let bayar = total - potongan;
document.write("Diskon: " + diskon + "%<br>");
document.write("Potongan: " + potongan + "<br>");
document.write("Total bayar: " + bayar);
15. Studi Kasus: Sistem Kelulusan
Ketentuan:
- Nilai ≥ 85 → Sangat Baik
- Nilai ≥ 75 → Baik
- Nilai ≥ 60 → Cukup
- Nilai < 60 → Tidak Lulus
Python
nama = input("Nama mahasiswa: ")
nilai = int(input("Nilai: "))
if nilai >= 85:
keterangan = "Sangat Baik"
elif nilai >= 75:
keterangan = "Baik"
elif nilai >= 60:
keterangan = "Cukup"
else:
keterangan = "Tidak Lulus"
print("Nama:", nama)
print("Nilai:", nilai)
print("Keterangan:", keterangan)
JavaScript
let nama = prompt("Nama mahasiswa:");
let nilai = Number(prompt("Nilai:"));
let keterangan;
if (nilai >= 85) {
keterangan = "Sangat Baik";
} else if (nilai >= 75) {
keterangan = "Baik";
} else if (nilai >= 60) {
keterangan = "Cukup";
} else {
keterangan = "Tidak Lulus";
}
document.write("Nama: " + nama + "<br>");
document.write("Nilai: " + nilai + "<br>");
document.write("Keterangan: " + keterangan);
16. Conditional Expression / Ternary
Untuk kondisi sederhana, percabangan dapat dibuat dalam satu baris.
Python
nilai = 75
status = "LULUS" if nilai >= 60 else "TIDAK LULUS"
print(status)
JavaScript
let nilai = 75;
let status = nilai >= 60 ? "LULUS" : "TIDAK LULUS";
document.write(status);
Bentuk logikanya:
KONDISI ? BENAR : SALAH
Pada Python bentuknya sedikit berbeda:
nilai_jika_benar if kondisi else nilai_jika_salah
Untuk pembelajaran algoritma dasar, IF-ELSE tetap lebih mudah dipahami terlebih dahulu.
17. Perbedaan Percabangan Python dan JavaScript
| Konsep | Python | JavaScript |
|---|---|---|
| IF | if | if |
| ELSE | else | else |
| ELSE IF | elif | else if |
| AND | and | && |
| OR | or | ` |
| NOT | not | ! |
| MOD | % | % |
| Blok program | Indentasi | { } |
| Input | input() | prompt() |
| Output | print() | document.write() |
18. Kesalahan yang Sering Terjadi
Python
Salah:
if nilai >= 60
print("LULUS")
Benar:
if nilai >= 60:
print("LULUS")
Python membutuhkan tanda : setelah kondisi.
JavaScript
Salah:
if (nilai >= 60)
document.write("LULUS")
else
document.write("TIDAK LULUS")
Kode tersebut sebenarnya masih dapat berjalan, tetapi untuk pembelajaran sebaiknya gunakan {}:
if (nilai >= 60) {
document.write("LULUS");
} else {
document.write("TIDAK LULUS");
}
19. Alur Berpikir Saat Membuat Percabangan
Mahasiswa dapat menggunakan langkah berikut:
1. Tentukan masalah
↓
2. Tentukan data/input
↓
3. Tentukan kondisi
↓
4. Tentukan kemungkinan hasil
↓
5. Buat algoritma
↓
6. Buat pseudocode
↓
7. Implementasikan ke bahasa pemrograman
↓
8. Uji dengan beberapa data
Contoh:
MASALAH
Menentukan apakah mahasiswa lulus.
INPUT
Nilai
KONDISI
Nilai >= 60
HASIL
Lulus / Tidak Lulus
ALGORITMA
Jika nilai >= 60 → Lulus
Selain itu → Tidak Lulus
20. Latihan Mahasiswa
Latihan 1 — Positif, Negatif, Nol
Buat algoritma, pseudocode, Python dan JavaScript untuk menentukan apakah sebuah angka:
- Positif
- Negatif
- Nol
Latihan 2 — Genap dan Ganjil
Buat program untuk menentukan apakah sebuah angka merupakan:
- Bilangan genap
- Bilangan ganjil
Latihan 3 — Kelulusan
Ketentuan:
Nilai >= 60 → LULUS
Nilai < 60 → TIDAK LULUS
Buat:
- Algoritma
- Pseudocode
- Python
- JavaScript
Latihan 4 — Grade
Ketentuan:
85 - 100 → A
75 - 84 → B
60 - 74 → C
< 60 → D
Buat program dalam Python dan JavaScript.
Latihan 5 — Diskon
Ketentuan:
Belanja >= 1.000.000 → diskon 20%
Belanja >= 500.000 → diskon 10%
Belanja < 500.000 → tidak ada diskon
Hitung:
Total belanja
Diskon
Potongan
Total pembayaran
Latihan 6 — Bilangan Terbesar
Input dua angka.
Contoh:
Angka 1 = 80
Angka 2 = 60
Output:
Angka terbesar adalah 80
Latihan 7 — Bilangan Terbesar dari Tiga Angka
Input:
A
B
C
Tentukan angka terbesar menggunakan percabangan.
Latihan 8 — Kalkulator Sederhana
Input:
Angka 1
Operator
Angka 2
Operator:
+
-
*
/
Contoh:
10
+
5
Output:
Hasil = 15
21. Kesimpulan
Percabangan merupakan salah satu konsep fundamental dalam algoritma dan pemrograman.
Struktur utamanya:
IF
IF - ELSE
IF - ELIF - ELSE
NESTED IF
Konsep yang harus dikuasai mahasiswa:
Kondisi
↓
Operator perbandingan
↓
Operator logika
↓
Percabangan
↓
Pengambilan keputusan
Dalam Python:
if kondisi:
proses
elif kondisi:
proses
else:
proses
Dalam JavaScript:
if (kondisi) {
proses;
} else if (kondisi) {
proses;
} else {
proses;
}
Inti dari percabangan adalah:
Program memeriksa kondisi, kemudian menentukan proses yang harus dijalankan berdasarkan hasil kondisi tersebut.