pythonoperatorkondisiPemula4 mnt baca

Operator dan Percabangan

Operator aritmatika, perbandingan, logika, plus if/elif/else untuk pengambilan keputusan.

Operator dan kondisi: wasit dalam program

Analogi: bayangkan penjaga gerbang tol. Setiap mobil yang datang dicek: "saldo cukup? ya, lewat jalur A; tidak, lewat jalur B". Program melakukan hal yang sama jutaan kali: mengecek kondisi, lalu memilih jalur. Operator adalah alat ukurnya (lebih besar? sama dengan?), dan if/elif/else adalah gerbangnya.

Kenapa konsep ini ada? Karena program yang hanya jalan lurus (atas ke bawah, tanpa belok) tidak bisa merespons dunia nyata. Diskon hanya untuk belanja di atas Rp100 ribu, status "lulus" hanya untuk nilai di atas 75, segmen "Platinum" hanya untuk pelanggan besar. Semua aturan bisnis pada dasarnya adalah kondisi, dan hampir semua analisis data adalah penerapan kondisi ke banyak baris sekaligus.

Contoh 1: operator aritmatika dan perbandingan (super sederhana)

python
a, b = 10, 3
print(a + b)   # 13, tambah
print(a - b)   # 7, kurang
print(a * b)   # 30, kali
print(a / b)   # 3.333..., bagi (hasilnya selalu float)
print(a // b)  # 3, bagi bulat (floor, dibulatkan ke bawah)
print(a % b)   # 1, sisa bagi (modulo)
print(a ** b)  # 1000, pangkat

Tiga yang paling sering dipakai analyst: / untuk rata-rata dan rasio, % untuk pola berulang (misalnya n % 2 == 0 artinya n genap, berguna untuk sampling), dan // untuk pengelompokan (misalnya membagi data jadi batch berisi 100 baris).

Lalu operator perbandingan, yang hasilnya selalu True atau False:

python
print(5 == 5)   # True, sama dengan (DUA tanda =)
print(5 != 3)   # True, tidak sama dengan
print(7 > 5)    # True
print(3 <= 2)   # False

Dan operator logika untuk menggabungkan kondisi:

python
umur = 20
punya_ktp = True

print(umur >= 17 and punya_ktp)  # True, keduanya harus benar
print(umur < 17 or punya_ktp)    # True, salah satu cukup
print(not punya_ktp)             # False, kebalikan

Cara membaca and/or seperti bahasa sehari-hari: "umur minimal 17 DAN punya KTP". Kalau diterjemahkan ke kalimat Indonesia terdengar aneh, kondisi itu mungkin perlu ditulis ulang.

Catatan teknis: Satu tanda = itu assignment (menyimpan nilai), dua tanda == itu perbandingan (mengecek kesamaan). Tertukar keduanya adalah bug pemula paling umum di semua bahasa pemrograman, bukan cuma Python.

Contoh 2: segmentasi pelanggan (lebih nyata)

Inilah versi mini pekerjaan analyst: mengelompokkan pelanggan berdasarkan total belanja. Pola if/elif/else seperti inilah yang nanti dipakai untuk memberi label ribuan baris data.

python
# Data satu pelanggan
nama = "Budi"
total_belanja = 750000
jumlah_transaksi = 12

# Tentukan segmen berdasarkan total belanja
if total_belanja >= 1000000:
    segmen = "Platinum"
elif total_belanja >= 500000:
    segmen = "Gold"
elif total_belanja >= 100000:
    segmen = "Silver"
else:
    segmen = "Bronze"

# Bonus: pelanggan setia dapat sapaan khusus
if jumlah_transaksi >= 10 and segmen in ("Gold", "Platinum"):
    sapaan = "terima kasih pelanggan setia"
else:
    sapaan = "terima kasih sudah berbelanja"

print(nama, "masuk segmen", segmen + ",", sapaan)

Dua hal penting di sini. Pertama, Python mengecek kondisi dari atas ke bawah dan berhenti di yang pertama benar, jadi urutan itu krusial: batas tertinggi harus di atas. Kedua, kondisi bisa digabung dengan and dan memakai in untuk mengecek keanggotaan dalam grup, pola yang sangat analyst.

Catatan teknis: Python mendukung chained comparison yang elegan: if 500000 <= total_belanja < 1000000: artinya "di antara 500 ribu dan 1 juta". Di banyak bahasa lain kamu harus menulis total >= 500000 and total < 1000000; di Python cukup satu baris yang terbaca seperti matematika.

Kesalahan umum pemula

SALAH: Memakai = (assignment) di dalam kondisi.

python
nilai = 82
if nilai = 90:      # SyntaxError
    print("A")

BENAR: Perbandingan memakai ==:

python
if nilai == 90:
    print("A")

SALAH: Menulis kondisi ganda seperti bahasa sehari-hari.

python
if nilai > 75 and < 90:   # SyntaxError
    print("B")

BENAR: Ulangi variabelnya, atau pakai chained comparison:

python
if nilai > 75 and nilai < 90:
    print("B")
# atau lebih Pythonic:
if 75 < nilai < 90:
    print("B")

SALAH: Urutan elif dari batas terkecil, sehingga kondisi besar tidak pernah tercapai.

python
if total >= 100000:      # 750000 lolos di sini...
    segmen = "Silver"
elif total >= 500000:    # ...baris ini tidak pernah dicek
    segmen = "Gold"

BENAR: Selalu urutkan dari batas tertinggi ke terendah:

python
if total >= 500000:
    segmen = "Gold"
elif total >= 100000:
    segmen = "Silver"

SALAH: Lupa titik dua atau indentasi tidak konsisten.

python
if nilai >= 75
    print("lulus")
  print("selesai")   # IndentationError: kedalaman beda

BENAR:

python
if nilai >= 75:
    print("lulus")
print("selesai")     # 4 spasi konsisten, di luar blok

Tantangan

Klasifikasi suhu

Buat variabel suhu (mis. 32). Dengan if/elif/else, cetak: "Panas" jika >= 30, "Hangat" jika >= 25, "Sejuk" jika >= 20, dan "Dingin" jika di bawahnya. Coba ganti nilai suhu dan lihat hasilnya berubah.