Part 4 — Operator & Ekspresi

Operator aritmatika, perbandingan, logika, dan precedence di Python.
Fundamental
Operator
Diterbitkan

26 Februari 2026

Fundamental Series — Part 4 of 20

Operator adalah simbol yang melakukan operasi pada nilai. Part ini membahas operator aritmatika, perbandingan, dan logika di Python.


Operator Aritmatika

10 + 3     # 13  — penjumlahan
10 - 3     # 7   — pengurangan
10 * 3     # 30  — perkalian
10 / 3     # 3.333... — pembagian (selalu float!)
10 // 3    # 3   — floor division (bilangan bulat)
10 % 3     # 1   — modulo (sisa bagi)
2 ** 3     # 8   — pangkat
CatatanPython vs R
Operasi R Python
Pangkat ^ **
Floor division %/% //
Modulo %% %
Pembagian / (bisa int) / (selalu float)

Fungsi Matematika

abs(-5)              # 5
round(3.14159, 2)    # 3.14

import math
math.sqrt(16)        # 4.0
math.log(100)        # 4.605 (natural log)
math.log10(100)      # 2.0
math.exp(1)          # 2.718
math.ceil(3.2)       # 4
math.floor(3.8)      # 3

Operator Perbandingan

Menghasilkan True atau False:

5 == 5     # True  — sama dengan
5 != 3     # True  — tidak sama dengan
5 > 3      # True  — lebih besar
5 < 3      # False — lebih kecil
5 >= 5     # True  — lebih besar atau sama
5 <= 3     # False — lebih kecil atau sama

Chained Comparison (unik Python!)

# Python mendukung comparison berantai
1 < 3 < 5       # True (sama dengan: 1 < 3 and 3 < 5)
10 <= 10 < 20    # True

Operator Logika

# and — keduanya harus True
True and True      # True
True and False     # False

# or — salah satu cukup True
True or False      # True
False or False     # False

# not — membalik
not True           # False
not False          # True
Peringatanand/or/not vs &/|/~
Konteks Gunakan Contoh
Skalar / if-else and, or, not if x > 0 and y > 0:
NumPy / pandas &, |, ~ df[(df.x > 0) & (df.y > 0)]

Untuk filter DataFrame, harus pakai & | ~ dan tambahkan kurung!

Contoh: Filter DataFrame

import pandas as pd

df = pd.DataFrame({
    "kota": ["Jakarta", "Bandung", "Surabaya", "Medan"],
    "populasi": [10.5, 2.4, 2.9, 2.1],
    "pulau": ["Jawa", "Jawa", "Jawa", "Sumatera"]
})

# Kota di Jawa dengan populasi > 3 juta
df[(df["pulau"] == "Jawa") & (df["populasi"] > 3)]

# Kota di Sumatera ATAU populasi < 2.5
df[(df["pulau"] == "Sumatera") | (df["populasi"] < 2.5)]

Operator Keanggotaan: in

# Cek elemen dalam collection
5 in [1, 3, 5, 7]         # True
4 in [1, 3, 5, 7]         # False
"a" in "abcdef"            # True
"key" in {"key": "value"}  # True (cek di keys)

Untuk pandas: .isin()

df[df["kota"].isin(["Jakarta", "Surabaya"])]

Operator Precedence

Dari prioritas tinggi ke rendah:

Prioritas Operator
1 (tertinggi) **
2 - (unary)
3 *, /, //, %
4 +, -
5 <, >, <=, >=, ==, !=, in
6 not
7 and
8 (terendah) or
2 + 3 * 4       # 14 (bukan 20) — perkalian dulu
(2 + 3) * 4     # 20

2 ** 3 ** 2     # 512 (= 2^9, bukan 8^2) — ** right-to-left!
(2 ** 3) ** 2   # 64
TipGunakan Kurung!

Selalu gunakan kurung untuk kejelasan: (x > 5) and (x < 10) jauh lebih aman daripada x > 5 and x < 10.


Latihan

BahayaLatihan 4.1 — Aritmatika
# Tanpa menjalankan, prediksi hasilnya:
7 % 3
7 // 3
2 ** 3 ** 2
(2 ** 3) ** 2
10 / 3
10 // 3
BahayaLatihan 4.2 — Logika
import numpy as np
x = np.array([12, 5, 28, 3, 17, 45, 8, 31])

# 1. Ambil elemen yang > 10 DAN < 30
# 2. Ambil elemen yang < 5 ATAU > 40
# 3. Ambil elemen yang BUKAN kelipatan 3 (hint: x % 3 != 0)
# 4. Berapa jumlah elemen yang > 20? (hint: np.sum())
BahayaLatihan 4.3 — Filter DataFrame
import seaborn as sns
tips = sns.load_dataset("tips")

# 1. Bill antara 20 dan 30 (inklusif)
# 2. Day == "Sun" ATAU day == "Sat" (pakai .isin())
# 3. Tip > 5 DAN smoker == "No"
# 4. Berapa jumlah baris yang memenuhi kondisi 3?

Ringkasan

Operator Fungsi Contoh
+ - * / Aritmatika dasar 10 + 3
% Modulo 10 % 3 → 1
// Floor division 10 // 3 → 3
** Pangkat 2 ** 3 → 8
== != > < Perbandingan 5 == 5 → True
and or not Logika (skalar) True and False
& | ~ Logika (array/DataFrame) (x > 5) & (x < 10)
in / .isin() Keanggotaan 5 in [1,3,5]

Sebelumnya: Part 3 — DataFrame Selanjutnya: Part 5 — Kontrol Alur: Conditional