Materi Algoritma & Pemrograman: Percabangan

soetrisnogaleri - sutrisno sukarno

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:

OperatorArtiContoh
==sama dengannilai == 80
!=tidak sama dengannilai != 80
>lebih besarnilai > 80
<lebih kecilnilai < 80
>=lebih besar atau sama dengannilai >= 60
<=lebih kecil atau sama dengannilai <= 60

4. Operator Logika

Kondisi juga dapat digabungkan menggunakan operator logika.

OperatorArti
ANDkedua kondisi harus benar
ORsalah satu kondisi benar
NOTmembalik 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:

  1. if
  2. if - else
  3. if - elif - else
  4. Percabangan bersarang / nested if
  5. Percabangan dengan operator logika
  6. Percabangan bertingkat
  7. Percabangan berdasarkan beberapa kondisi
  8. Ternary / conditional expression
  9. 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:

NilaiKeterangan
85–100A
75–84B
60–74C
< 60D

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 BelanjaDiskon
≥ 1.000.00020%
≥ 500.00010%
< 500.0000%

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

KonsepPythonJavaScript
IFifif
ELSEelseelse
ELSE IFelifelse if
ANDand&&
ORor`
NOTnot!
MOD%%
Blok programIndentasi{ }
Inputinput()prompt()
Outputprint()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.

Leave a Reply

Your email address will not be published. Required fields are marked *