Programmu sudah bisa bertanya — hari ini dia belajar berhitung: 7 operator + logika True/False.
/ vs // vs %and/or/not+ - * / // % **== != < > <= >=) — hasilnya True/Falseand, or, not* expression = gabungan nilai + operator yang menghasilkan satu nilai · modulo = sisa pembagian.
Sisa pembagian menjawab: genap atau ganjil? berapa hari 37 jam? boleh dibagi rata ke berapa orang?
Operator = tombol mesin kasir — tambah, kurang, kali sudah akrab. Yang baru ada tiga serangkai: /, //, %.
Berapa penuh? Berapa sisa? — dua pertanyaan pembagian sehari-hari.
input() — program bisa bertanya & menungguint()/float() sebelum hitungsep/end — atur cetakan print()Sekarang programmu bisa bertanya & menyimpan jawaban. Tapi pekerjaannya baru menjumlah umur — minggu ini kita kasih dia berhitung utuh.
input() selalu kembalikan?int() atau float(). Dan hari ini kamu lihat: hasil perbandingan operator menghasilkan boolean — bahan bakar Sesi 07.Peta perjalanan: kamu di barisan ke-6 dari 17 — sudah 35% perjalanan!
a = 10
b = 3
print(a + b) # 13
print(a - b) # 7
print(a * b) # 30
print(a / b) # 3.3333...
print(a // b) # 3
print(a % b) # 1
print(a ** b) # 1000
2 ** 3 = 8Tiga serangkai pembagian — / · // · % — dibongkar habis di slide berikutnya. Ini bagian yang paling sering salah paham.
/ vs // vs % — bedanya apa?print(37 / 24) # 1.5416...
print(37 // 24) # 1 hari penuh
print(37 % 24) # 13 jam sisa
// = berapa penuh (membulat ke bawah) · % = sisanya · / = jawaban desimal lengkap.
print(10 / 3) # 3.3333...
print(10 // 3) # 3
print(10 % 3) # 1
% sering kurang dipahami — makanya kita kasih waktu ekstra. Trik: x % 2 hasilnya 0 berarti genap, 1 berarti ganjil.
Tebak dulu tanpa kalkulator: 37 % 24 — berapa? Tulis tebakanmu, lalu Run. Salah tebak justru bagus: itu tandanya konsepnya lagi terbentuk.
a = 10
b = 3
print(a == 10) # True — sama nggak?
print(a != b) # True — beda nggak?
print(a > b) # True
print(b >= 5) # False
= itu mengisi (menulis nama di label kotak — Sesi 04) · == itu membandingkan (mencocokkan dua label). Mantra: "= isi, == tanya".
6 operator perbandingan: == != < > <= >= — hasilnya selalu boolean, bukan kalimat, bukan angka.
Kenapa ini penting? Karena Sesi 07: if memakai True/False ini buat memilih jalan.
and · or · not — rangkai pertanyaannyanilai = 82
hadir = 85
print(nilai >= 75 and hadir >= 80)
# True — keduanya harus benar
print(nilai >= 90 or hadir >= 80)
# True — salah satu cukup
print(not (nilai >= 90))
# False — kebalikan
Pilih operator itu keputusan logika: "dua-duanya wajib" = and · "salah satu saja sudah" = or. Salah pilih = program keputusannya salah.
print(2 + 3 * 4) # 14 — kali dulu!
print((2 + 3) * 4) # 20 — kurung menang
print(2 ** 3 ** 2) # 512 — kanan dulu!
print(True or False and False)
# True — and dihitung dulu
3 ** 2 = 9 dulu, baru 2 ** 9 = 512 — bukan 64False and False dihitung dulu → True or False = TrueRagu? Pakai kurung. Kurung itu gratis, membuat kode kebaca manusia, dan menghabiskan semua debat.
Bonus kejutan: True + True = 2 — karena True dihitung 1. Trik ini dipakai di kasir mini sebentar lagi.
float), cetak a + b dan a * b dengan f-string- dan /. Uji dengan 10 & 3 — kok hasilnya 3.3333...?0. Baca errornya: itu ZeroDivisionError, dan itu perilaku matematika, bukan bugInput selalu string — jangan lupa float(input(...)). Cetak pakai f-string biar rapi: f"{a} + {b} = {a + b}".
Waktu: 15 menit. Yang cepat: tambah baris // dan % ke kalkulatormu.
total = harga * jumlah
dapat_diskon = jumlah > 5
# True dihitung 1, False dihitung 0:
potongan = int(total * 0.5 * dapat_diskon)
jumlah > 5 menghasilkan boolean. Dan boolean ikut berhitung: True = 1, False = 0. Beli 7 → diskon 50% penuh; beli 3 → potongan nol.
Perhatikan: dapat_diskon itu perbandingan yang disimpan ke variabel — bukti materi slide 06 sudah kepakai di program nyata.
Genap? dan hasilnya: angka % 2 == 0. Uji 12 (True) & 17 (False)25 dan 37// jawab berapa penuh, % jawab sisanya — tiga serangkai slide 05 dalam satu masalah nyata.
Waktu: 10 menit. Tugas ini digabung di Challenge — dua-duanya pakai % dan // sekaligus.
int) — cetak genap/ganjil via % 2 == 0angka % 3 == 0 — cetak hasilnya jugahari // 24 + sisa % 24 dengan f-stringint(input()) dari Sesi 05 · % // dari hari ini · f-string. Tidak ada yang baru — ini digabung, bukan dipelajari baru.
Waktu: 10 menit. Mentok? Slide berikutnya bahas cara menyelesaikannya — coba dulu minimal 5 menit!
angka = int(input("Tulis angka: "))
print("Genap?", angka % 2 == 0)
print("Kelipatan 3?", angka % 3 == 0)
total_jam = int(input("Total jam: "))
hari = total_jam // 24
sisa = total_jam % 24
print(f"{total_jam} jam = {hari} hari {sisa} jam")
angka % 2 == 0 — sisa 0 berarti genap; hasilnya boolean yang dicetak apa adanya// dan % — satu pembagian, dua jawaban: penuh & sisaUji 9: ganjil + kelipatan 3 · uji 25 jam = 1 hari 1 jam · uji 48 jam — sisa berapa? Kalau 0 hari 0 jam, itu benar!
Yang sampai sini dengan usaha sendiri — kamu sudah memakai satu konsep untuk tiga masalah.
a = 10
b = 0
print(a / b) # ZeroDivisionError!
Ini perilaku matematika, bukan bug. Uji kalkulator dengan 0 memang akan kena — sambut baik-baik, catat sebagai "input tidak sopan".
a = 10 # mengisi kotak
a == 10 # bertanya: sama nggak?
Mantra: "= isi, == tanya". Salah ketik di sini = asal banyak SyntaxError hari ini.
print(2 + 3 * 4) # 14, bukan 20!
print(2 ** 3 ** 2) # 512, bukan 64!
Kali lebih dulu dari tambah; pangkat dievaluasi kanan ke kiri. Solusi abadi: ragu = pakai kurung.
print(10 / 3) # 3.3333333333333335
Bukan bug — / selalu float dan float punya presisi terbatas. Mau rapi: round(10 / 3, 2). Mau bulat: //.
Bonus: hasil TypeError saat menjumlah input? Itu bekas Sesi 05 — "10" + 3 tidak bisa. Bungkus int()/float() dulu.
+ - * / // % **; / selalu float, // bulat ke bawah% = sisa pembagian — genap/ganjil, konversi jam, kelipatan: satu kunci banyak pintuand dua-duanya · or salah satu · not kebalikan — pilih sesuai aturan mainnyaHari ini programmu menghasilkan True/False — minggu depan jawaban itu akhirnya dipakai: True jalur A, False jalur B.
Kalkulator jadi lebih pintar, dan program pertama yang mengambil keputusan lahir minggu depan — bekal utama Mini Project 1.
10 % 4, 100 // 7, 2 ** 4 — lalu buktikan15000, bayar 50000 — kembalian berapa?