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
Selamat datang kembali di mata kuliah Algoritma dan Pemrograman. Pertemuan lalu Anda sudah belajar variabel, tipe data, dan operasi dasar — hari ini kita naik satu tingkat: bagaimana caranya program bisa "berpikir" dan mengambil keputusan sendiri, lalu bagaimana program bisa mengerjakan tugas berulang tanpa Anda ketik satu-satu. Bayangkan Anda membangun sistem kasir toko online sederhana seperti yang dipakai UMKM di Tokopedia atau Shopee: sistem itu harus bisa memutuskan "apakah pelanggan ini dapat diskon atau tidak", dan harus bisa memproses puluhan pesanan tanpa Anda menulis kode yang sama berulang-ulang. Itulah inti kontrol seleksi dan perulangan yang akan kita bedah tuntas hari ini, lengkap dengan contoh kasus bisnis digital Indonesia. Siapkan editor kode Anda karena kita akan langsung praktik menulis dan menelusuri jalannya program baris demi baris. 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.
Mari kita lihat dua capaian besar hari ini. Pertama, Anda akan mampu menulis struktur seleksi — yaitu percabangan keputusan menggunakan if, elif, dan else — dan yang lebih penting, mampu menelusuri langkah demi langkah bagaimana Python mengevaluasi kondisi tersebut. Kedua, Anda akan mampu menulis perulangan menggunakan for dan while, memahami kapan masing-masing dipakai, serta mengendalikan alurnya dengan break dan continue. Anggap saja hari ini Anda sedang belajar dua "otot" dasar pemrograman yang nanti akan terus dipakai di hampir setiap pertemuan berikutnya, termasuk saat kita membahas fungsi, list, dan bahkan object-oriented programming di pertemuan-pertemuan mendatang. Jangan khawatir kalau terasa abstrak dulu — kita akan langsung praktik dengan kasus toko online dan UMKM supaya terasa nyata. Bagian 1 dari 3
Kontrol Seleksi: if / elif / else
Bagaimana program memilih jalur eksekusi berdasarkan sebuah kondisi bernilai benar atau salah.
Kita mulai dari bagian pertama, yaitu kontrol seleksi. Dalam kehidupan sehari-hari, Anda terus-menerus mengambil keputusan bersyarat: kalau hujan, bawa payung; kalau tidak, jalan biasa. Program komputer bekerja dengan logika yang persis sama, hanya saja ditulis dalam sintaks yang harus benar-benar presisi. Di bagian ini kita akan bahas bagaimana Python mengevaluasi kondisi menjadi True atau False, dan bagaimana menyusun beberapa kondisi bertingkat menggunakan if, elif, dan else. Setelah bagian ini selesai, Anda akan bisa membuat program yang "mengerti" aturan bisnis sederhana, misalnya aturan diskon bertingkat di toko online. 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 kondisi Benar? True Jalankan blok False Lewati / else Operator perbandingan yang menghasilkan boolean: == (sama dengan), != (tidak sama), >, <, >=, <=. Operator logika: and, or, not.
Perhatikan diagram ini baik-baik karena ini adalah pola dasar yang akan terus berulang. Program mengecek sebuah kondisi, misalnya "apakah total belanja lebih dari lima ratus ribu rupiah", dan kondisi itu hanya bisa bernilai True atau False — inilah yang disebut tipe data boolean, tidak ada nilai di antaranya. Kalau hasilnya True, blok kode di dalam if dijalankan; kalau False, Python melewatinya dan mengecek blok berikutnya. Perhatikan juga bahwa tanda sama dengan ganda, dua tanda sama dengan berderet, itu untuk membandingkan nilai, berbeda dengan satu tanda sama dengan yang dipakai untuk memberi nilai ke variabel — ini kesalahan yang sangat sering dilakukan pemula, jadi tolong dicatat baik-baik. Operator and, or, dan not memungkinkan Anda menggabungkan beberapa syarat sekaligus, misalnya "jika pelanggan member DAN total belanja di atas satu juta". 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.
Sekarang kita masuk ke sintaks resminya. Kata kunci if artinya "jika", elif adalah singkatan dari "else if" atau "atau jika", dan else artinya "selain itu". Python akan mengecek kondisi if terlebih dahulu; kalau False, ia turun ke elif; kalau semua elif juga False, barulah blok else dijalankan sebagai jalan terakhir. Yang membedakan Python dari bahasa pemrograman lain seperti Java atau C adalah penggunaan indentasi, yaitu spasi di awal baris, untuk menandai blok kode mana yang termasuk bagian dari if tersebut — bukan tanda kurung kurawal. Kalau indentasi Anda tidak konsisten, misalnya campur tab dan spasi, Python akan langsung memunculkan error. Contoh di layar ini mensimulasikan sistem tarif member toko online sederhana: total belanja tujuh ratus lima puluh ribu rupiah jatuh ke kategori Silver karena memenuhi syarat elif kedua. 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 .
Langkah Perhitungan Nilai 1. Simpan total belanja total_belanja = 750000 750.000 2. Cek if 750.000 ≥ 1.000.000 ? False 3. Cek elif 750.000 ≥ 500.000 ? True 4. Hitung diskon 10% × 750.000 75.000 5. Hitung total bayar 750.000 − 75.000 675.000
TOTAL BAYAR AKHIR
Rp675.000
elif kedua terpenuhi, diskon 10%
Mari kita telusuri kode ini persis seperti komputer menjalankannya, satu langkah pada satu waktu. Langkah pertama, variabel total_belanja diisi tujuh ratus lima puluh ribu rupiah. Langkah kedua, Python mengecek kondisi if pertama: apakah tujuh ratus lima puluh ribu lebih besar atau sama dengan satu juta? Jawabannya False, jadi Python tidak masuk ke blok if dan lanjut ke elif berikutnya. Langkah ketiga, ia mengecek elif: apakah tujuh ratus lima puluh ribu lebih besar atau sama dengan lima ratus ribu? Jawabannya True, jadi blok inilah yang dijalankan, sementara else di bawahnya dilewati sama sekali. Perhatikan bahwa begitu satu kondisi terpenuhi, Python tidak lagi mengecek kondisi-kondisi sesudahnya — inilah keunggulan elif dibanding menulis if terpisah-pisah, dan hasil akhirnya pelanggan membayar enam ratus tujuh puluh lima ribu rupiah setelah dipotong diskon sepuluh persen. Coba Sendiri: Geser Belanja, Nonton Cabang Menyala Geser total belanja 0–2 juta dan lihat cabang if/elif/else mana yang jalan, berapa potongannya, dan kapan else menjadi jaring pengaman.
Alat ini menghidupkan tabel trace di slide sebelumnya. Minta mahasiswa menggeser slider ke nilai-nilai kunci: 400 ribu, tepat 500 ribu, 750 ribu, tepat 1 juta — dan setiap kali bertanya cabang mana yang menyala sebelum panel terbaca. Titik tepat 500 ribu dan 1 juta mengajarkan arti tanda lebih-besar-sama-dengan: nilai sama tetap masuk cabang diskon. Tekankan pula baris cabang yang mengabu: begitu satu kondisi True, kondisi sesudahnya tidak pernah dicek — inilah alasan menaruh ambang paling ketinggalan paling atas. Tutup dengan tantangan: ubah urutan if dan elif di kepala, apa yang salah? Nested If vs. Rantai Elif Dua cara menulis kondisi bertingkat — hasilnya bisa sama, tapi keterbacaan berbeda.
if status == "member":
if poin >= 100:
diskon = 20
else:
diskon = 10
else:
diskon = 0 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.
Sering kali ada lebih dari satu cara menulis logika yang sama. Di kiri, kita punya if di dalam if — disebut nested if atau if bersarang — di mana pengecekan poin loyalitas hanya dilakukan setelah kita tahu pelanggan itu member. Di kanan, logika yang sama ditulis ulang sebagai rantai elif dengan operator and untuk menggabungkan dua syarat sekaligus dalam satu baris kondisi. Kedua versi ini menghasilkan diskon yang identik untuk kombinasi input yang sama, tapi versi elif biasanya lebih mudah dibaca ketika pilihannya berjajar rapi seperti tingkatan member Silver, Gold, Platinum. Sebagai programmer pemula, jangan terlalu memaksakan satu gaya — yang penting kode Anda benar dan mudah dipahami orang lain, termasuk diri Anda sendiri tiga bulan kemudian. 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)
Sekarang kita coba kasus yang lebih realistis: kalkulator ongkos kirim seperti yang biasa Anda lihat saat checkout di Tokopedia atau Shopee. Berat paket tiga koma lima kilogram akan jatuh ke cabang elif kedua karena tidak lebih dari satu kilogram tapi tidak lebih dari lima kilogram, sehingga rumus yang dipakai adalah tarif dasar sembilan ribu rupiah ditambah tiga ribu rupiah untuk setiap kilogram di atas satu kilogram. Kalau Anda hitung, selisih beratnya dua koma lima kilogram dikalikan tiga ribu rupiah sama dengan tujuh ribu lima ratus rupiah, sehingga totalnya enam belas ribu lima ratus rupiah. Perhatikan penggunaan f-string, yaitu format teks yang memudahkan menyisipkan nilai variabel langsung ke dalam kalimat, lengkap dengan format ribuan. Ini adalah contoh nyata bagaimana if/elif/else dipakai di logika bisnis sungguhan, bukan sekadar latihan abstrak. Bagian 2 dari 3
Kontrol Perulangan: for / while
Bagaimana program mengerjakan tugas yang sama berkali-kali tanpa Anda menulis ulang kodenya.
Sekarang kita masuk ke bagian kedua kuliah hari ini, yaitu perulangan atau looping. Bayangkan Anda harus mengirim ucapan Terima Kasih ke seratus pelanggan UMKM satu per satu — tanpa perulangan, Anda harus menulis seratus baris kode print yang hampir identik. Dengan perulangan, cukup beberapa baris kode saja dan komputer yang mengulang-ulang pekerjaannya untuk Anda. Kita akan bahas dua jenis perulangan utama di Python: for, yang dipakai ketika Anda tahu persis berapa kali atau atas kumpulan data apa Anda ingin mengulang, dan while, yang dipakai ketika perulangan bergantung pada sebuah kondisi yang bisa berubah-ubah. Kedua alat ini akan sangat sering Anda pakai, terutama nanti saat kita membahas list dan dictionary di beberapa pertemuan mendatang. 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 = 0 i = 1 i = 2 i = 3 i = 4 loop selesai range(5) → 0, 1, 2, 3, 4 (5 iterasi, tidak sampai 5)
Diagram di layar ini menunjukkan apa yang terjadi kalau kita menulis "for i in range(5)": Python akan menjalankan blok kode di dalamnya sebanyak lima kali, dengan variabel i berturut-turut bernilai nol, satu, dua, tiga, dan empat, lalu berhenti. Ini sering membingungkan pemula karena range(5) menghasilkan lima angka mulai dari nol, bukan sampai angka lima — jadi angka terakhirnya adalah empat, bukan lima. Setiap satu kali blok kode dijalankan disebut satu iterasi, dan kata "iterasi" ini akan terus kita pakai sepanjang mata kuliah ini, jadi tolong diingat baik-baik. For loop paling cocok dipakai ketika Anda tahu persis berapa kali ingin mengulang, atau ketika Anda ingin mengulang atas setiap elemen dalam sebuah daftar, misalnya daftar nama produk di toko online Anda. Coba Sendiri: Jalankan for + range() Satu Iterasi Sekali Pilih bentuk range, tekan Iterasi Berikutnya, dan lihat kotak i menyala berurutan beserta total berjalan total += i.
Diagram kotak i di slide sebelumnya kini bisa dimainkan. Pilih preset range(5) dan minta kelas meneriakkan nilai i berikutnya sebelum tombol ditekan — perhatikan kotak kelima berisi 4, bukan 5, dan itulah jebakan yang paling sering menggigit saat ujian. Lanjut ke range(1, 6) untuk pola nomor urut mulai satu, lalu range(0, 10, 2) untuk step dua. Panel total += i menabung nilai i setiap putaran; saat loop selesai, bandingkan jumlah iterasi dengan nilai akhir i untuk memantapkan intuisi berhenti-sebelum-batas-atas. 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.
Contoh ini mensimulasikan sebuah toko UMKM yang menjual kopi robusta, keripik tempe, dan batik tulis, lalu ingin menampilkan daftar produknya dengan nomor urut. Fungsi len(produk) menghitung jumlah elemen dalam daftar, yaitu tiga, sehingga range(len(produk)) menghasilkan nol, satu, dua — tiga iterasi yang pas dengan tiga produk. Perhatikan bahwa produk[i] mengambil elemen pada posisi i, dan i + 1 dipakai supaya nomor yang tampil dimulai dari satu, bukan nol, karena manusia biasanya menghitung mulai dari satu sementara komputer menghitung mulai dari nol. Saya sengaja perlihatkan pola range(len(...)) ini dulu karena sangat umum ditemukan, tapi begitu kita belajar list lebih dalam di pertemuan ketujuh, Anda akan mengenal cara yang lebih ringkas seperti yang saya sebutkan di catatan biru ini. 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.
Berbeda dengan for yang jumlah pengulangannya jelas sejak awal, while cocok dipakai ketika kita tidak tahu persis berapa kali harus mengulang, tapi kita tahu kapan harus berhenti — yaitu ketika kondisinya menjadi False. Contoh di layar ini mensimulasikan pemrosesan stok barang: selama stok masih lebih dari nol, sistem terus memproses satu pesanan dan mengurangi stok sebanyak satu, sampai akhirnya stok mencapai nol dan loop berhenti dengan sendirinya. Ini adalah kesalahan paling umum yang dilakukan pemula: lupa mengubah nilai variabel yang dicek di kondisi while, sehingga kondisinya selamanya True dan program menjadi infinite loop, yaitu perulangan tak berhenti yang membuat program Anda macet total dan komputer terasa hang. Kalau ini terjadi saat praktikum, jangan panik — cukup tekan kombinasi tombol Ctrl+C di terminal atau tombol stop di editor untuk menghentikan paksa programnya. Hitung dari Nol: Trace While Loop Menelusuri kode pemrosesan stok di slide sebelumnya, mulai stok = 5 pesanan yang harus diproses.
Iterasi Cek Kondisi Aksi & Stok Baru 1 5 > 0 ? True proses 1 pesanan → stok = 4 2 4 > 0 ? True proses 1 pesanan → stok = 3 3 3 > 0 ? True proses 1 pesanan → stok = 2 4 2 > 0 ? True proses 1 pesanan → stok = 1 5 1 > 0 ? True proses 1 pesanan → stok = 0 6 0 > 0 ? False loop berhenti
TOTAL PESANAN DIPROSES
5
loop berjalan 5 kali sebelum kondisi False
Mari kita telusuri persis seperti komputer mengeksekusinya, baris demi baris, putaran demi putaran. Pada iterasi pertama, stok bernilai lima, kondisi lima lebih besar dari nol adalah True, jadi satu pesanan diproses dan stok berkurang menjadi empat. Proses ini berulang persis dengan pola yang sama sampai iterasi kelima, saat stok tinggal satu, diproses menjadi nol. Pada percobaan keenam, Python mengecek lagi: apakah nol lebih besar dari nol? Jawabannya False, sehingga loop berhenti tanpa menjalankan blok kode di dalamnya sama sekali pada putaran ini. Total ada lima kali proses pesanan yang benar-benar terjadi, sama persis dengan jumlah stok awal — inilah cara berpikir yang harus Anda latih setiap kali membaca kode while: selalu telusuri nilai variabel dan hasil kondisinya satu per satu, jangan menebak. Coba Sendiri: Telusuri while Loop, Lalu Sulap Jadi Infinite Atur stok awal, jalankan while putaran demi putaran — lalu aktifkan mode BUG yang lupa mengurangi stok dan saksikan kondisi tak pernah False.
Alat ini menggandakan tabel trace while di slide sebelumnya dengan satu twist pedagogis. Jalankan dulu mode benar dari stok lima sampai habis; mahasiswa harus menebak hasil cek kondisi tiap putaran sebelum tombol ditekan, dan putaran terakhir yang menghasilkan False adalah momen kunci yang harus dicatat. Kemudian alihkan ke mode BUG: stok tidak pernah berkurang, kondisi selamanya True, dan log menunjukkan putaran yang berulang identik — di sinilah mereka merasakan sendiri mengapa infinite loop disebut berbahaya dan mengapa Ctrl+C ada. Sebelum lanjut ke break dan continue, minta mereka merumuskan syarat sendiri: tubuh while wajib menggerakkan variabel kondisi menuju False. Mengendalikan Loop: break dan continue for produk in daftar:
if produk == "Habis":
break
print(produk) Keluar dari loop seketika saat kondisi terpenuhi.
for produk in daftar:
if produk == "Nonaktif":
continue
print(produk) Lompat ke iterasi berikutnya , sisa blok dilewati.
Dua kata kunci ini memberi Anda kendali lebih halus atas jalannya perulangan. Break artinya "hentikan total" — begitu Python menemukan produk dengan status Habis, ia langsung keluar dari loop sepenuhnya, tidak peduli masih ada berapa produk lagi di daftar setelahnya. Continue artinya "lewati putaran ini saja" — kalau produk berstatus Nonaktif, baris print di bawahnya dilewati untuk iterasi itu, tapi loop tetap lanjut memproses produk-produk berikutnya di daftar. Bayangkan Anda sedang memindai daftar pesanan masuk: break cocok dipakai saat Anda mencari satu pesanan spesifik dan berhenti begitu ketemu, sedangkan continue cocok dipakai saat Anda ingin melewati pesanan yang dibatalkan tapi tetap memproses sisanya. Perbedaan kecil ini sering tertukar oleh pemula, jadi coba ingat: break itu seperti keluar ruangan sepenuhnya, continue itu seperti melompat ke antrian berikutnya. 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.
Perulangan bersarang, atau nested loop, adalah loop yang diletakkan di dalam loop lainnya, dan ini sangat berguna ketika data Anda punya dua dimensi, seperti mencetak struk belanja yang punya baris produk dan sub-baris jumlah. Pada contoh ini, loop luar berjalan sebanyak dua kali karena ada dua jenis produk, kopi dan roti. Untuk setiap putaran loop luar, loop dalam berjalan sesuai jumlah pesanan produk tersebut: dua kali untuk kopi, tiga kali untuk roti, sehingga total baris yang tercetak adalah dua ditambah tiga, sama dengan lima baris. Cara termudah memahami nested loop adalah membayangkan jam analog: loop luar seperti jarum jam yang bergerak lambat, loop dalam seperti jarum detik yang harus menyelesaikan satu putaran penuh sebelum jarum jam bergerak satu langkah. 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.
Sekarang kita rangkum tiga struktur kontrol yang baru saja kita pelajari dengan alat bantu ini. Saya minta satu mahasiswa maju untuk menekan tombol langkah berikutnya secara perlahan, dan perhatikan baik-baik baris kode mana yang tersorot aktif serta bagaimana nilai variabel di panel samping berubah setiap kali kondisi if dievaluasi atau setiap kali loop berputar. Coba juga contoh nested loop, perhatikan bagaimana loop dalam harus menyelesaikan seluruh putarannya dulu sebelum loop luar melangkah satu langkah. Setelah Anda yakin bisa menebak baris berikutnya sebelum tombol ditekan, kita lanjut menggabungkan seleksi dan perulangan dalam satu studi kasus nyata. Bagian 3 dari 3
Kombinasi Seleksi + Perulangan
Kasus bisnis nyata jarang memakai satu struktur kontrol saja — biasanya keduanya digabung.
Di bagian terakhir ini, kita akan menggabungkan dua alat yang sudah kita pelajari: seleksi dan perulangan, sekaligus dalam satu program. Ini adalah pola yang paling sering Anda temui di dunia nyata — misalnya sistem antrian toko yang harus memproses setiap pelanggan satu per satu, sambil setiap kali memutuskan apakah pelanggan itu perlu dilayani prioritas atau tidak. Kita juga akan membahas kesalahan-kesalahan umum yang sering dilakukan pemula, supaya Anda bisa menghindarinya sejak awal. Setelah bagian ini, Anda sudah punya cukup bekal untuk menyelesaikan latihan praktik dan tugas mandiri minggu ini. 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.
Sekarang perhatikan bagaimana seleksi dan perulangan bekerja sama dalam satu program utuh, seperti yang akan sering Anda tulis di tugas dan proyek nanti. For loop di sini bertugas berjalan melewati setiap posisi dalam antrian, dari nomor satu sampai nomor lima. Tapi di dalam setiap putaran itu, ada keputusan yang harus diambil: apakah pelanggan pada posisi ini berstatus VIP atau Reguler? Keputusan itulah yang diambil oleh if/else di dalam loop. Jadi loop menjawab pertanyaan "berapa kali dan atas data apa saya mengulang", sementara if/else menjawab pertanyaan "apa yang harus dilakukan pada setiap putaran itu" — kombinasi keduanya inilah yang membuat program bisa menangani logika bisnis yang jauh lebih kompleks daripada jika hanya memakai satu struktur kontrol saja. Kesalahan Umum Pemula 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 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 Sebelum kita masuk ke latihan, mari saya rangkum kesalahan-kesalahan yang paling sering saya lihat dari mahasiswa yang baru belajar Python. Untuk seleksi, kesalahan paling klasik adalah menulis satu tanda sama dengan padahal maksudnya membandingkan nilai, yang seharusnya dua tanda sama dengan berderet; ini akan menyebabkan error atau bahkan perilaku aneh karena satu tanda sama dengan sebenarnya berarti "berikan nilai", bukan "bandingkan". Kesalahan lain adalah lupa titik dua di akhir baris kondisi, dan indentasi yang tidak konsisten. Untuk perulangan, kesalahan paling berbahaya adalah lupa mengubah nilai variabel yang dicek while sehingga terjadi infinite loop, serta salah paham batas range yang membuat elemen terakhir tidak terproses atau justru mencoba mengakses index yang tidak ada. Simpan slide ini sebagai referensi cepat saat Anda mengerjakan tugas nanti malam. 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.
Sekarang giliran Anda praktik langsung. Silakan berpasangan dengan teman sebelah, buka editor kode masing-masing, dan kerjakan soal di layar ini dalam waktu sepuluh menit. Soalnya mirip persis dengan studi kasus antrian VIP yang baru saja kita bahas, hanya saja sekarang Anda mengecek apakah stok sebuah produk habis atau masih tersedia, bukan mengecek status VIP atau Reguler. Gunakan for untuk berjalan melewati kelima produk, dan if/else di dalamnya untuk memutuskan pesan apa yang dicetak untuk tiap produk. Kalau Anda selesai lebih cepat, coba tantangan tambahan: hitung juga berapa total produk yang statusnya habis menggunakan sebuah variabel counter yang bertambah setiap kali stok bernilai nol — saya akan berkeliling membantu kalau ada yang mengalami kebuntuan. Rangkuman & Persiapan Minggu Depan Konsep Kegunaan 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
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.
Sebagai penutup pertemuan hari ini, mari kita rangkum apa yang sudah kita pelajari. Kita belajar if, elif, dan else untuk mengambil keputusan bertingkat; for untuk perulangan dengan jumlah yang diketahui; while untuk perulangan berdasarkan kondisi; serta break dan continue untuk mengendalikan alur loop secara lebih halus. Kombinasi keduanya, seperti pada studi kasus antrian VIP tadi, adalah pola yang akan terus Anda pakai sepanjang mata kuliah ini bahkan sampai ke topik-topik lanjutan seperti fungsi dan OOP. Minggu depan kita akan membahas konsep string secara mendalam, termasuk cara mengiris dan mengolah teks, yang akan sangat berguna saat Anda membangun kalkulator toko online yang lebih lengkap. Jangan lupa selesaikan tugas mandiri malam ini dan simpan file Python Anda dengan rapi — sampai jumpa di pertemuan berikutnya.