python 12 July 2026

Bagian 3: Operator & Ekspresi — Bicara dengan Komputer Lewat Simbol

Bagian 3: Operator & Ekspresi — Bicara dengan Komputer Lewat Simbol

Saya masih ingat, minggu lalu di kelas XII RPL 2, ada siswa yang mengetik 2 + 2 di terminal Python lalu bertanya, “Pak, kenapa nggak keluar 4? Cuma nongol 4 doang, nggak ada kata ‘hasilnya adalah’?”

Saya tersenyum. Dia berharap komputer menjawab seperti manusia. Padahal komputer cuma paham simbol.

Ingat: Python tidak “bicara” bahasa kita. Dia bicara lewat operator — simbol-simbol kecil yang membawa kekuatan besar. Kalian yang harus belajar bahasa dia, bukan sebaliknya.

Kali ini kita tidak cuma hitung. Kita belajar berpikir seperti mesin — logis, berurutan, dan tidak kenal “mungkin”.


1. Operator Aritmatika — Matematika yang Kalian Kenal, Tapi Bedah Sedikit

Buka terminal atau VS Code. Ketik ini:

# operator_aritmatika.py
# File ini menunjukkan operator matematika dasar di Python

a = 17
b = 5

print("=== Operator Aritmatika ===")
print(f"a = {a}, b = {b}")
print()

print(f"Penjumlahan      : a + b  = {a + b}")
print(f"Pengurangan      : a - b  = {a - b}")
print(f"Perkalian        : a * b  = {a * b}")
print(f"Pembagian        : a / b  = {a / b}")      # Hasil selalu float
print(f"Pembagian Bulat  : a // b = {a // b}")    # Buang koma, ambil bulat
print(f"Modulus (Sisa)   : a % b  = {a % b}")     # Sisa bagi
print(f"Pangkat          : a ** b = {a ** b}")    # 17 pangkat 5

Jalankan. Lihat perbedaan / dan //. Itu yang sering bikin siswa binggu di Ujian Praktik.

Catatan dari meja guru:
Operator // dan % itu sahabat karib kalian saat bikin program genap/ganjil, detik ke jam, atau paginasi. Hafal bukan, tapi paham kapan dipakai.


2. Prioritas Operator — Siapa yang Dikerjakan Duluh?

Ingat jaman SD? Kali bagi dulu, baru tambah kurang. Python juga begitu. Tapi dia punya aturan sendiri yang lebih lengkap.

Coba tebak hasil ini sebelum jalankan:

# prioritas_operator.py
# Uji apakah kalian paham urutan eksekusi

hasil = 10 + 3 * 2 ** 2 - 8 // 4 % 3
print(f"10 + 3 * 2 ** 2 - 8 // 4 % 3 = {hasil}")

# Mari pecah manual:
# 1. **       -> 2 ** 2 = 4
# 2. * / // % -> 3 * 4 = 12, 8 // 4 = 2, 2 % 3 = 2
# 3. + -      -> 10 + 12 - 2 = 20

print("\n--- Dengan Kurung (Eksplisit) ---")
hasil_kurung = 10 + (3 * (2 ** 2)) - ((8 // 4) % 3)
print(f"Hasil pakai kurung: {hasil_kurung}")

Output:

10 + 3 * 2 ** 2 - 8 // 4 % 3 = 20.0
--- Dengan Kurung (Eksplisit) ---
Hasil pakai kurung: 20

Tips Pak Rifqi:
Jangan hafal tabel prioritas. Pakai kurung () kalau ragu. Kurung itu gratis, tapi kebingungan mahal.
Kode yang jelas > kode yang pintar tapi membingungkan.


3. Operator Perbandingan — Menanya “Benar atau Salah?”

Python punya jawaban biner: True atau False. Tidak ada “gak yakin”, “mungkin”, “entar”.

# operator_perbandingan.py
# Membandingkan nilai — hasilnya selalu Boolean

nilai_ujian = 78
kkm = 75

print("=== Operator Perbandingan ===")
print(f"Nilai: {nilai_ujian}, KKM: {kkm}")
print()

print(f"Lebih dari (>)        : {nilai_ujian > kkm}")      # True
print(f"Kurang dari (<)       : {nilai_ujian < kkm}")      # False
print(f"Lebih dari sama (>=)  : {nilai_ujian >= kkm}")     # True
print(f"Kurang dari sama (<=) : {nilai_ujian <= kkm}")     # False
print(f"Sama dengan (==)      : {nilai_ujian == kkm}")     # False
print(f"Tidak sama (!=)       : {nilai_ujian != kkm}")     # True

Peringatan Kelas XII:
= itu assignment (isi variabel). == itu perbandingan (tanya sama tidak).
Saya sudah berkali-kali lihat siswa nulis if nilai = 100: lalu bingung kenapa error.
Satu tanda sama dengan = perintah. Dua tanda sama dengan = pertanyaan.


4. Operator Logika — Menggabungkan Pertanyaan

Hidup itu penuh keputusan bersyarat. “Kalau hujan DAN saya punya payung, saya keluar.” Python paham and, or, not.

# operator_logika.py
# Logika untuk keputusan kompleks

hujan = True
punya_payung = False
cuaca_cerah = not hujan  # Kebalikan

print("=== Operator Logika ===")
print(f"Hujan: {hujan}, Punya Payung: {punya_payung}")
print()

# AND -> keduanya harus True
keluar_and = hujan and punya_payung
print(f"Hujan AND Punya Payung -> Keluar? {keluar_and}")  # False

# OR -> salah satu True sudah cukup
keluar_or = hujan or punya_payung
print(f"Hujan OR Punya Payung -> Keluar? {keluar_or}")    # True

# NOT -> balikkan
print(f"NOT Hujan (Cerah)? {cuaca_cerah}")                # False

Metafora kecil:
and itu kayak orang tua keduanya harus setuju kalau mau keluar malam.
or itu kayak cukup satu orang tua izinkan, sudah bisa.
not itu membalik dunia — hujan jadi cerah, benar jadi salah.


5. Praktik Nyata: Kalkulator Sederhana — Gabungin Semua

Sekarang kita buat sesuatu yang bisa dipakai. Bukan cuma print di layar.

# kalkulator_sederhana.py
# Kalkulator CLI sederhana — pakai semua operator yang sudah dipelajari

def tampilkan_menu():
    print("\n" + "=" * 35)
    print("    KALKULATOR PYTHON SEDERHANA")
    print("=" * 35)
    print("1. Penjumlahan (+)")
    print("2. Pengurangan (-)")
    print("3. Perkalian (*)")
    print("4. Pembagian (/)")
    print("5. Pembagian Bulat (//)")
    print("6. Modulus (%)")
    print("7. Pangkat (**)")
    print("0. Keluar")
    print("-" * 35)

def ambil_angka(pesan):
    """Minta input angka, ulang kalau bukan angka"""
    while True:
        try:
            return float(input(pesan))
        except ValueError:
            print("  > Input harus berupa angka. Coba lagi.")

def hitung(angka1, angka2, operator):
    """Lakukan operasi sesuai pilihan"""
    if operator == '1':
        return angka1 + angka2, '+'
    elif operator == '2':
        return angka1 - angka2, '-'
    elif operator == '3':
        return angka1 * angka2, '*'
    elif operator == '4':
        if angka2 == 0:
            return "Error: Tidak bisa dibagi nol", '/'
        return angka1 / angka2, '/'
    elif operator == '5':
        if angka2 == 0:
            return "Error: Tidak bisa dibagi nol", '//'
        return angka1 // angka2, '//'
    elif operator == '6':
        if angka2 == 0:
            return "Error: Modulus nol tidak terdefinisi", '%'
        return angka1 % angka2, '%'
    elif operator == '7':
        return angka1 ** angka2, '**'
    else:
        return None, ''

# Program utama
print("Selamat datang di Kalkulator Python!")

while True:
    tampilkan_menu()
    pilihan = input("Pilih operasi (0-7): ").strip()

    if pilihan == '0':
        print("\nTerima kasih sudah pakai kalkulator ini. Sampai jumpa!")
        break

    if pilihan not in ['1', '2', '3', '4', '5', '6', '7']:
        print("  > Pilihan tidak valid. Pilih 0-7.")
        continue

    a = ambil_angka("Masukkan angka pertama: ")
    b = ambil_angka("Masukkan angka kedua: ")

    hasil, simbol = hitung(a, b, pilihan)

    if isinstance(hasil, str):  # Error message
        print(f"\n  ⚠ {hasil}")
    else:
        print(f"\n  Hasil: {a} {simbol} {b} = {hasil}")

Coba jalankan. Mainkan. Coba bagi nol. Coba masukkan huruf saat minta angka. Lihat bagaimana try-except dan if melindungi program.

Pengalaman nyata:
Siswa saya bikin ini lalu dibawa ke Project Akhir Semester. Dia tambahkan history kalkulasi pakai list. Nilai A, tapi yang lebih penting — dia bangga.
Kode pertama yang “bermanfaat” bagi orang lain, itu yang bikin kalian jatuh cinta pada pemrograman.


Penutup: Simbol Kecil, Kekuatan Besar

Operator itu seperti kata kunci dalam percakapan dengan mesin. + bukan cuma tambah. Itu perintah: “Jumlahkan.” == bukan cuma tanda sama dengan. Itu pertanyaan: “Apakah sama?”

Kalian baru belajar menanya. Nanti kalian belajar memerintahkanif, for, while, fungsi, kelas. Tapi fondasinya tetap sama: logika yang jujur, urut, dan tidak berbelit.

Mesin tidak peduli seberapa keren kalian. Dia hanya peduli: apakah instruksi kalian jelas?

Besok kita bahas Struktur Kontrol (if, elif, else) — di mana operator perbandingan dan logika hari ini jadi penentu nasib alur program.

Siapkan kopi. Atau teh manis. Yang pasti, bawa logika kalian.


→ Lanjut ke Bagian 4: Percabangan & Keputusan (if-elif-else)

Saya menunggu di kolom komentar kalau ada yang error, bingung, atau cuma mau bilang “Pak, kalkulatornya jalan!”