Ekskul CSSE · SMAS St. John — BINUSPertemuan 6
06
Mulai Coding · Sesi 06 — Operators & Expressions
Operators &
Expressions

Programmu sudah bisa bertanya — hari ini dia belajar berhitung: 7 operator + logika True/False.

TUJUAN 01
7 operator aritmatika — dan bedanya / vs // vs %
TUJUAN 02
Perbandingan menghasilkan boolean + gabung dengan and/or/not
TUJUAN 03
Prioritas operator — dan kenapa ragu = pakai kurung
Target Hari Ini

Hari ini programmu belajar berhitung

Tujuan Pembelajaran
  • Mengenali 7 operator aritmatika: + - * / // % **
  • Menggunakan perbandingan (== != < > <= >=) — hasilnya True/False
  • Menggabungkan kondisi dengan and, or, not
  • Memprediksi urutan eksekusi — dan pakai kurung biar jelas
+ - * /// % **True / Falseand · or · notZeroDivisionError

* expression = gabungan nilai + operator yang menghasilkan satu nilai · modulo = sisa pembagian.

%
Kenapa penting?

Sisa pembagian menjawab: genap atau ganjil? berapa hari 37 jam? boleh dibagi rata ke berapa orang?

Analogi hari ini

Operator = tombol mesin kasir — tambah, kurang, kali sudah akrab. Yang baru ada tiga serangkai: /, //, %.

Berapa penuh? Berapa sisa? — dua pertanyaan pembagian sehari-hari.

Sebelum gas — minggu lalu kamu ndapetin apa?

Rekap Sesi 05 · Input & Output

Yang sudah kamu pegang
  • input() — program bisa bertanya & menunggu
  • Input selalu string — konversi int()/float() sebelum hitung
  • f-string — kalimat rapi, variabel masuk langsung
  • sep/end — atur cetakan print()

Sekarang programmu bisa bertanya & menyimpan jawaban. Tapi pekerjaannya baru menjumlah umur — minggu ini kita kasih dia berhitung utuh.

Kuis kilat — coba jawab dulu!
ATipe data apa yang input() selalu kembalikan?
BSebelum angka dari input bisa dihitung, kamu bungkus dengan apa?
jawabannya A = string — B = 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!

Tiga sudah akrab — empat lainnya senjata baru

7 operator aritmatika dalam satu layar

Code — a = 10, b = 3
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
Peta cepat 7 operator
+ - *tambah, kurang, kali — sudah akrab
/pembagian biasa — selalu float
//pembagian bulat ke bawah — berapa penuh
%modulo — berapa sisa-nya
**pangkat — 2 ** 3 = 8
→

Tiga serangkai pembagian — / · // · % — dibongkar habis di slide berikutnya. Ini bagian yang paling sering salah paham.

37 jam itu berapa hari? Tiga operator, tiga jawaban berbeda

/ vs // vs % — bedanya apa?

37 jam = ?
print(37 / 24)    # 1.5416...
print(37 // 24)   # 1 hari penuh
print(37 % 24)    # 13 jam sisa
Cara baca

// = berapa penuh (membulat ke bawah) · % = sisanya · / = jawaban desimal lengkap.

10 dibagi 3?
print(10 / 3)     # 3.3333...
print(10 // 3)    # 3
print(10 % 3)     # 1
Catatan kurikulum

% 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.

Pertanyaan ya/tidak — Python menjawab dengan dua kata

Perbandingan menghasilkan True / False

Code — tiap baris = satu pertanyaan
a = 10
b = 3
print(a == 10)    # True — sama nggak?
print(a != b)      # True — beda nggak?
print(a > b)       # True
print(b >= 5)     # False
Jebakan klasik: = vs ==

= itu mengisi (menulis nama di label kotak — Sesi 04) · == itu membandingkan (mencocokkan dua label). Mantra: "= isi, == tanya".

Output
True
True
True
False

6 operator perbandingan: == != < > <= >= — hasilnya selalu boolean, bukan kalimat, bukan angka.

→

Kenapa ini penting? Karena Sesi 07: if memakai True/False ini buat memilih jalan.

Satu syarat jarang cukup — dunia nyata butuh gabungan

and · or · not — rangkai pertanyaannya

Code — tiga cara gabung
nilai = 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
Analogi gerbang
andmasuk SMA: lolos PSB and bayar — dua-duanya
ornot
!

Pilih operator itu keputusan logika: "dua-duanya wajib" = and · "salah satu saja sudah" = or. Salah pilih = program keputusannya salah.

Kok hasilnya bukan 20? Python punya urutan rahasianya

Prioritas operator — siapa dihitung duluan

Code — urutan itu bukan gaya-gayaan
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
Dua kejutan urutan
** kanan dulu3 ** 2 = 9 dulu, baru 2 ** 9 = 512 — bukan 64
and > orFalse and False dihitung dulu → True or False = True
Aturan praktisnya cuma satu

Ragu? 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.

Giliran kamu — mesin kasirnya belum jalan

Tugas 1 · Kalkulator mini

Kerjakan berurutan — 3 level
  1. Dua operasi — input 2 angka (float), cetak a + b dan a * b dengan f-string
  2. Empat operasi — tambah - dan /. Uji dengan 10 & 3 — kok hasilnya 3.3333...?
  3. Uji input jahat — isi angka kedua dengan 0. Baca errornya: itu ZeroDivisionError, dan itu perilaku matematika, bukan bug
Petunjuk

Input selalu string — jangan lupa float(input(...)). Cetak pakai f-string biar rapi: f"{a} + {b} = {a + b}".

Contoh jalannya program
Angka pertama: 10
Angka kedua: 3
10.0 + 3.0 = 13.0
10.0 * 3.0 = 30.0
10.0 - 3.0 = 7.0
10.0 / 3.0 = 3.3333333333333335
⏱

Waktu: 15 menit. Yang cepat: tambah baris // dan % ke kalkulatormu.

Operator yang tadi dilatih — sekarang gaji pertamamu

Studi kasus · Kasir mini (diskon otomatis)

Inti logikanya — 4 baris
total = harga * jumlah
dapat_diskon = jumlah > 5
# True dihitung 1, False dihitung 0:
potongan = int(total * 0.5 * dapat_diskon)
Kenapa trik ini jalan

jumlah > 5 menghasilkan boolean. Dan boolean ikut berhitung: True = 1, False = 0. Beli 7 → diskon 50% penuh; beli 3 → potongan nol.

Contoh jalannya program (keputusan 06: kode.py)
Nama barang: Buku Tulis Harga satuan: 5000 Jumlah beli: 7 Uang bayar: 50000 -------------------------- Barang : Buku Tulis Total belanja: 35000 Dapat diskon 50% (beli > 5): True Potongan : 17500 Total bayar : 17500 Kembalian : 32500
!

Perhatikan: dapat_diskon itu perbandingan yang disimpan ke variabel — bukti materi slide 06 sudah kepakai di program nyata.

Level up — satu konsep %, dua masalah nyata

Tugas 2 · Genap/ganjil & konversi jam

Kerjakan berurutan — 2 level
  1. Genap/ganjil — input satu angka, cetak Genap? dan hasilnya: angka % 2 == 0. Uji 12 (True) & 17 (False)
  2. Konversi jam — input total jam, cetak berapa hari penuh + sisa jam. Uji 25 dan 37
Kerangka level 2
total_jam = int(input("Total jam: "))
hari = total_jam // 24
sisa = total_jam % 24
print(f"... hari ... jam")
Contoh jalannya program
Tulis angka: 12
Genap? True

Total jam: 37
37 jam = 1 hari 13 jam

// 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.

Tantangan terakhir — tiga materi jadi satu program

Challenge · Genap/ganjil + kelipatan + konversi jam

Misi — satu blok program
  1. Input satu angka (int) — cetak genap/ganjil via % 2 == 0
  2. Cek kelipatan 3: angka % 3 == 0 — cetak hasilnya juga
  3. Input total jam — konversi ke hari // 24 + sisa % 24 dengan f-string
Alat yang kamu pegang

int(input()) dari Sesi 05 · % // dari hari ini · f-string. Tidak ada yang baru — ini digabung, bukan dipelajari baru.

Contoh jalannya program
Tulis angka: 12 Genap? True Kelipatan 3? True Total jam: 37 37 jam = 1 hari 13 jam
⏱

Waktu: 10 menit. Mentok? Slide berikutnya bahas cara menyelesaikannya — coba dulu minimal 5 menit!

Gimana cara menyelesaikannya?

Pembahasan Challenge — kode lengkap

Salah satu solusi (ada banyak variasi yang benar)
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")
Kenapa kode ini jalan?
  • angka % 2 == 0 — sisa 0 berarti genap; hasilnya boolean yang dicetak apa adanya
  • // dan % — satu pembagian, dua jawaban: penuh & sisa
  • f-string menyusun semuanya jadi kalimat
Uji dirimu

Uji 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.

Kalkulatormu meledak? Mungkin kamu kena salah satu ini

Kotak masalah — 4 jebakan operator

Jebakan 01
Bagi nol → ZeroDivisionError
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".

Jebakan 02
= vs == tertukar
a = 10      # mengisi kotak
a == 10     # bertanya: sama nggak?

Mantra: "= isi, == tanya". Salah ketik di sini = asal banyak SyntaxError hari ini.

Jebakan 03
Salah baca prioritas
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.

Jebakan 04
Kaget hasil 3.3333... panjang
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.

Rangkuman · Yang kita bawa pulang

5 poin hari ini — berhitung dikuasai

01
7 operator aritmatika — + - * / // % **; / selalu float, // bulat ke bawah
02
% = sisa pembagian — genap/ganjil, konversi jam, kelipatan: satu kunci banyak pintu
03
Perbandingan menghasilkan boolean — dan mantra abadi: "= isi, == tanya"
04
and dua-duanya · or salah satu · not kebalikan — pilih sesuai aturan mainnya
05
Ragu? Pakai kurung — kali dulu dari tambah, pangkat dari kanan; True = 1, False = 0
Mesin hitung menyala — tinggal kasih kemudi Next → Conditional Programming
Next & Referensi — langkah selanjutnya

Minggu depan:
Conditional Programming

Sesi 07 — Conditional Programming

Hari 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.

intip:
angka = int(input("Tulis angka: "))
if angka % 2 == 0:
  print("Genap")
else:
  print("Ganjil")
if / elif / elseindentasikondisi gabungan
PR iseng (opsional)
  • Prediksi tanpa Run: 10 % 4, 100 // 7, 2 ** 4 — lalu buktikan
  • Bikin kalkulator beli nasi goreng: harga 15000, bayar 50000 — kembalian berapa?
  • Tidak ada laptop? Tulis 5 baris kalkulator di kertas — minggu depan ketik bareng
Sampai jumpa di Sesi 07! / · // · % · and · or · not