stdsquare²
🎓 Kelas
stdsquare / materi / slides / pertemuan-03
Tema
Japan
Arcade
Dark Retro
Font
‹ Daftar slide Pertemuan 3: Kontrol Seleksi dan Perulangan
Program Studi Bisnis Digital • FEB UNDIP

Algoritma dan Pemrograman

Pertemuan 3 — Kontrol Seleksi dan Perulangan

Bagaimana program mengambil keputusan (if/elif/else) dan mengulang pekerjaan secara otomatis (for/while) — dua fondasi paling sering dipakai di kode bisnis digital.

RPS MINGGU 3 • 2×50 MENIT

Tujuan Pembelajaran Hari Ini

Setelah pertemuan ini, Anda diharapkan mampu menerapkan struktur kontrol seleksi dan perulangan untuk menyelesaikan persoalan bisnis digital sederhana. Secara rinci:

CAPAIAN 1
IF
Kontrol Seleksi
Menulis dan menelusuri if, elif, else untuk cabang keputusan bertingkat.
CAPAIAN 2
LOOP
Kontrol Perulangan
Menulis dan menelusuri for dan while, serta mengendalikannya dengan break/continue.
Kedua kontrol ini adalah tulang punggung hampir semua program — mulai dari kalkulator diskon toko online sampai sistem antrian dan rekomendasi produk.
Bagian 1 dari 3
Kontrol Seleksi:
if / elif / else
Bagaimana program memilih jalur eksekusi berdasarkan sebuah kondisi bernilai benar atau salah.

Alur Keputusan: Konsep Percabangan

Setiap kondisi di Python dievaluasi menjadi nilai boolean (True/False) — tipe data logika yang hanya berisi dua kemungkinan. Struktur seleksi memilih blok kode mana yang dijalankan berdasarkan nilai ini.

Cek kondisiBenar?TrueJalankan blokFalseLewati / else
Operator perbandingan yang menghasilkan boolean: == (sama dengan), != (tidak sama), >, <, >=, <=. Operator logika: and, or, not.

Sintaks if / elif / else

Python membaca blok kode berdasarkan indentasi (spasi di awal baris) — bukan tanda kurung kurawal seperti bahasa lain.

# menentukan tarif member toko online
total_belanja = 750000

if total_belanja >= 1000000:
    tarif = "Gold"
elif total_belanja >= 500000:
    tarif = "Silver"
else:
    tarif = "Reguler"

print(tarif)  # Silver
Indentasi (biasanya 4 spasi) WAJIB konsisten — salah indentasi menyebabkan IndentationError. Titik dua : di akhir baris kondisi juga wajib.

Hitung dari Nol: Trace Diskon Bertingkat

Toko online menerapkan diskon: belanja ≥ Rp1.000.000 dapat 15%, ≥ Rp500.000 dapat 10%, sisanya tanpa diskon. Pelanggan berbelanja Rp750.000.

LangkahPerhitunganNilai
1. Simpan total belanjatotal_belanja = 750000750.000
2. Cek if750.000 ≥ 1.000.000 ?False
3. Cek elif750.000 ≥ 500.000 ?True
4. Hitung diskon10% × 750.00075.000
5. Hitung total bayar750.000 − 75.000675.000
TOTAL BAYAR AKHIR
Rp675.000
elif kedua terpenuhi, diskon 10%

Nested If vs. Rantai Elif

Dua cara menulis kondisi bertingkat — hasilnya bisa sama, tapi keterbacaan berbeda.

Nested If (bersarang)
if status == "member":
    if poin >= 100:
        diskon = 20
    else:
        diskon = 10
else:
    diskon = 0
Rantai Elif (lebih ringkas)
if status == "member" and poin >= 100:
    diskon = 20
elif status == "member":
    diskon = 10
else:
    diskon = 0
Gunakan nested if saat syarat kedua hanya relevan jika syarat pertama benar; gunakan elif saat pilihannya saling eksklusif dan sejajar.

Studi Kasus: Kalkulator Ongkir Toko Online

Sebuah UMKM di Tokopedia menetapkan ongkos kirim berdasarkan berat paket.

berat = 3.5  # kilogram

if berat <= 1:
    ongkir = 9000
elif berat <= 5:
    ongkir = 9000 + (berat - 1) * 3000
else:
    ongkir = 9000 + 4 * 3000 + (berat - 5) * 2500

print(f"Ongkir: Rp{ongkir:,.0f}")
BERAT PAKET
3,5 kg
masuk cabang elif kedua
ONGKIR
Rp16.500
9.000 + (2,5 × 3.000)
Bagian 2 dari 3
Kontrol Perulangan:
for / while
Bagaimana program mengerjakan tugas yang sama berkali-kali tanpa Anda menulis ulang kodenya.

Konsep For Loop: Iterasi

for mengulang blok kode sebanyak jumlah elemen dalam sebuah urutan (sequence) — misalnya angka dari range() atau daftar produk. Setiap satu putaran disebut satu iterasi.

i = 0i = 1i = 2i = 3i = 4loop selesai
range(5) → 0, 1, 2, 3, 4  (5 iterasi, tidak sampai 5)

Sintaks For Loop

Contoh: mencetak daftar produk UMKM beserta nomor urutnya.

produk = ["Kopi Robusta", "Keripik Tempe", "Batik Tulis"]

for i in range(len(produk)):
    print(f"{i + 1}. {produk[i]}")

# Output:
# 1. Kopi Robusta
# 2. Keripik Tempe
# 3. Batik Tulis
Alternatif lebih ringkas: for nama in produk: langsung mengambil tiap elemen tanpa perlu range(len(...)) — akan Anda pakai lebih sering setelah materi list pertemuan 7.

Konsep While Loop: Berdasar Kondisi

while mengulang blok kode selama sebuah kondisi masih bernilai True. Dipakai saat jumlah pengulangan tidak diketahui di awal — misalnya "selama stok masih ada".

stok = 5
while stok > 0:
    print("Proses 1 pesanan, sisa stok:", stok - 1)
    stok = stok - 1
print("Stok habis, loop berhenti.")
Infinite loop (loop tak berhenti) terjadi kalau kondisi tidak pernah menjadi False — misalnya lupa menulis stok = stok - 1. Program akan macet dan harus dihentikan paksa.

Hitung dari Nol: Trace While Loop

Menelusuri kode pemrosesan stok di slide sebelumnya, mulai stok = 5 pesanan yang harus diproses.

IterasiCek KondisiAksi & Stok Baru
15 > 0 ? Trueproses 1 pesanan → stok = 4
24 > 0 ? Trueproses 1 pesanan → stok = 3
33 > 0 ? Trueproses 1 pesanan → stok = 2
42 > 0 ? Trueproses 1 pesanan → stok = 1
51 > 0 ? Trueproses 1 pesanan → stok = 0
60 > 0 ? Falseloop berhenti
TOTAL PESANAN DIPROSES
5
loop berjalan 5 kali sebelum kondisi False

Mengendalikan Loop: break dan continue

break — hentikan loop
for produk in daftar:
    if produk == "Habis":
        break
    print(produk)

Keluar dari loop seketika saat kondisi terpenuhi.

continue — lewati satu putaran
for produk in daftar:
    if produk == "Nonaktif":
        continue
    print(produk)

Lompat ke iterasi berikutnya, sisa blok dilewati.

Nested Loop: Perulangan Bersarang

Loop di dalam loop — dipakai saat mengulang atas dua dimensi data, misalnya baris dan kolom struk belanja.

pesanan = ["Kopi", "Roti"]
jumlah = [2, 3]

for i in range(len(pesanan)):
    for j in range(jumlah[i]):
        print(f"  - {pesanan[i]} #{j + 1}")
Loop luar berjalan 2 kali (2 jenis produk); untuk setiap putaran itu, loop dalam berjalan sesuai jumlahnya (2 lalu 3 kali) — total 5 baris tercetak.

Coba Sendiri: Menelusuri Alur Eksekusi Kode

Jalankan kode langkah demi langkah dan lihat baris mana yang aktif serta bagaimana nilai variabel berubah di if/elif/else, while, dan nested loop.

Bagian 3 dari 3
Kombinasi Seleksi + Perulangan
Kasus bisnis nyata jarang memakai satu struktur kontrol saja — biasanya keduanya digabung.

Studi Kasus: Sistem Antrian Sederhana

Sebuah kedai kopi UMKM melayani antrian; pelanggan dengan kode "VIP" dilayani lebih dulu ditandai, lainnya diproses biasa.

antrian = ["Reguler", "VIP", "Reguler", "VIP", "Reguler"]

for i in range(len(antrian)):
    if antrian[i] == "VIP":
        print(f"Nomor {i + 1}: dilayani PRIORITAS")
    else:
        print(f"Nomor {i + 1}: dilayani normal")
Loop for mengurus perulangan atas antrian; if/else di dalamnya mengurus keputusan tiap pelanggan — dua kontrol bekerja bersama dalam satu blok.

Kesalahan Umum Pemula

Seleksi
  • Menulis = padahal maksudnya ==
  • Lupa titik dua : setelah kondisi
  • Indentasi tidak konsisten (campur tab/spasi)
  • Urutan elif salah — kondisi lebih sempit ditulis setelah kondisi lebih luas
Perulangan
  • Lupa mengubah variabel kondisi di while → infinite loop
  • Salah batas range() — lupa range(5) berhenti di 4
  • Mengakses index di luar jangkauan list
  • Menempatkan break di posisi yang salah

Latihan Kelas: Kerjakan Sekarang

Buka editor Python Anda. Kerjakan berpasangan, waktu 10 menit.

Soal: Sebuah UMKM punya daftar stok 5 produk: stok = [0, 3, 0, 7, 2]. Tulis program dengan for yang mencetak "Produk ke-N: HABIS" jika stok 0, atau "Produk ke-N: tersedia (jumlah)" jika stok > 0. Gunakan if/else di dalam loop.
TARGET OUTPUT
5 baris tercetak, sesuai indeks stok (indeks 0 → Produk ke-1, dst).
PETUNJUK
Pola sama seperti studi kasus antrian VIP di slide 17 — ganti kondisinya saja.

Rangkuman & Persiapan Minggu Depan

KonsepKegunaan
if / elif / elseMemilih satu jalur eksekusi dari beberapa kemungkinan kondisi
forMengulang sejumlah kali yang diketahui / atas setiap elemen data
whileMengulang selama sebuah kondisi masih True
break / continueMengendalikan alur loop secara halus
Pertemuan 4 — Minggu Depan

Konsep string: indexing, slicing, dan method string — membangun kalkulator toko online yang mengolah teks nama produk dan kode transaksi.

TUGAS MANDIRI
Selesaikan latihan antrian VIP + soal stok produk di rumah; simpan sebagai file .py, kumpulkan sebelum pertemuan berikutnya.