Operator Python — Python

Operator Python Operator Aritmatika a + b # Penjumlahan a - b # Pengurangan a * b # Perkalian a / b # Pembagian (selalu float) a // b # Floor division…

Operator adalah tanda yang mengolah nilai: menjumlah, membagi, membandingkan. Bayangin Pak Darto menata 17 gelas kopi ke nampan yang muat 5 gelas. Pertanyaannya ada tiga: kalau dibagi rata, satu nampan dapat berapa? Berapa nampan yang penuh? Berapa gelas yang tersisa? Di Python, tiga pertanyaan itu dijawab tiga operator yang berbeda: /, //, dan %.

🧪 Tebakan cepat: print(10 / 5) menulis 2 atau 2.0? Tebak dulu, jawabannya ada di bagian "Tiga cara membagi".

Operator aritmatika

Operator Artinya Contoh Hasil
+ tambah 15000 + 5000 20000
- kurang 50000 - 45000 5000
* kali 15000 * 3 45000
/ bagi 17 / 5 3.4
// bagi, dibulatkan ke bawah (floor division) 17 // 5 3
% sisa bagi (modulo) 17 % 5 2
** pangkat 2 ** 8 256

Urutannya seperti di matematika: ** dulu, lalu *, /, //, %, baru + dan -. Jadi 2 + 3 * 4 hasilnya 14, dan (2 + 3) * 4 hasilnya 20.

Tiga cara membagi

gelas = 17
per_nampan = 5

print(gelas / per_nampan)    # 3.4
print(gelas // per_nampan)   # 3, nampan yang penuh
print(gelas % per_nampan)    # 2, gelas yang tersisa
print(10 / 5)                # 2.0

10 / 3 menulis 3.3333333333333335. Float disimpan dalam biner dengan sekitar 16 digit, jadi digit terakhirnya bisa "aneh". Itu bukan error, memang begitu Python menulis hasil itu.

Pangkat itu **, bukan ^

2 ** 8 artinya 2 dipangkatkan 8, hasilnya 256. Tanda ^ di Python artinya hal lain (XOR, operasi pada bit), jadi 2 ^ 8 hasilnya 10, tanpa error. Satu lagi: -2 ** 2 hasilnya -4, karena pangkat dihitung sebelum tanda minus. Tulis (-2) ** 2 kalau maksudnya 4.

Bilangan negatif: // membulatkan ke bawah

print(-17 / 5)    # -3.4
print(-17 // 5)   # -4
print(-17 % 5)    # 3

Float gak selalu pas

print(0.1 + 0.2)          # 0.30000000000000004
print(0.1 + 0.2 == 0.3)   # False
print(89000 / 3)          # 29666.666666666668

Komputer menyimpan float dalam biner, dan 0,1 gak bisa disimpan persis, sama seperti 1/3 gak bisa ditulis persis dalam desimal. Karena itu harga dan uang di kasir disimpan sebagai int rupiah: 15000, bukan 15.0 ribu. Hasil bagi seperti tagihan Rp89.000 untuk 3 orang dirapikan saat ditampilkan, caranya ada di pelajaran string.

Perbandingan dan logika

total = 89000
print(total >= 50000)                       # True
print(total >= 50000 and total < 100000)    # True
print(total < 50000 or total > 100000)      # False
print(not total >= 50000)                   # False

📌 Walrus :=

Operator := (Python 3.8 ke atas) menempel nilai ke nama sekaligus memakai nilai itu di tempat yang sama:

data = [1, 2, 3, 4, 5]
if (n := len(data)) > 3:
    print(n)   # 5

⚠️ Jebakan yang sering ketemu

TL;DR: + - * seperti biasa, ** untuk pangkat (2 ** 8 = 256, ^ itu XOR). Membagi ada tiga: / selalu float (10 / 5 = 2.0, 10 / 3 = 3.3333333333333335), // membulatkan ke bawah (17 // 5 = 3, -17 // 5 = -4), dan % memberi sisanya (17 % 5 = 2). Float gak selalu pas (0.1 + 0.2 = 0.30000000000000004), jadi uang disimpan sebagai int. Perbandingan menghasilkan True/False, digabung dengan and, or, not. Walrus := menyimpan nilai sekaligus memakainya.

Yang akan kamu pelajari