🐍 Python
Bahasa pemrograman serba guna — simpel, powerful, dan paling populer di dunia.
🧱 Fundamental Python
Sebelum masuk detail syntax satu-satu, pahami dulu konsep-konsep inti ini. Cuma butuh beberapa menit, tapi bakal bikin materi selanjutnya jauh lebih gampang dicerna.
Pengenalan Python
Python adalah bahasa pemrograman high-level yang terkenal karena sintaksnya yang bersih dan gampang dibaca. Diciptakan oleh Guido van Rossum dan pertama kali rilis tahun 1991. Daripada langsung dijejali teori, yuk kita bangun pemahaman ini pelan-pelan lewat program pertamamu.
Kenapa Python?
Python dipakai untuk banyak hal keren: web backend (Django, Flask, FastAPI), data science & machine learning (NumPy, Pandas, TensorFlow), AI & otomasi, sampai scripting sehari-hari. Alasan utama Python populer: sintaksnya mendekati bahasa manusia, jadi lebih cepat dipelajari dibanding bahasa lain.
Baris kode pertamamu: print()
print() adalah fungsi bawaan untuk menampilkan sesuatu ke layar (output). Cukup taruh apapun yang ingin ditampilkan di dalam tanda kurung.
print("Halo Dunia!")Komentar — catatan yang diabaikan Python
Baris yang diawali tanda pagar # disebut komentar — Python akan mengabaikannya sepenuhnya saat program dijalankan. Berguna untuk menjelaskan maksud kodemu ke diri sendiri atau orang lain.
# Ini komentar, tidak akan dieksekusi
print("Halo Dunia!") # ini juga komentar, di akhir barisTidak perlu titik koma
Berbeda dari JavaScript atau Java, Python tidak mewajibkan titik koma ; di akhir baris. Satu baris = satu perintah, titik.
print("Baris pertama")
print("Baris kedua")Simpan sesuatu dengan variabel, lalu tampilkan
Kita bisa menyimpan nilai ke sebuah nama (variabel) lalu memakainya di print(). print() juga bisa menerima lebih dari satu nilai sekaligus, dipisah koma.
nama = "Diki"
print("Halo,", nama) # Halo, DikiIndentasi — aturan wajib Python
Ini yang paling membedakan Python dari bahasa lain: Python memakai indentasi (spasi/tab di awal baris) sebagai bagian dari sintaks, bukan sekadar rapi-rapi. Blok kode yang segaris/sejajar dianggap satu kelompok. Kita akan bahas detailnya di section Kondisi, tapi contoh kecil berikut menunjukkan kenapa ini penting.
if True:
print("Ini di dalam blok if") # 4 spasi indentasi
print("Ini juga di dalam blok") # harus sejajar
print("Ini di luar blok if") # tanpa indentasi📋 Rekap: Fondasi Python
- print() — menampilkan output ke layar
- # — membuat komentar (diabaikan Python)
- Tidak perlu titik koma di akhir baris
- Variabel menyimpan nilai untuk dipakai ulang
- Indentasi menentukan blok kode — wajib konsisten
Variabel & Tipe Data
Python nggak perlu deklarasi tipe data seperti int atau string di depan — tipe ditentukan otomatis dari nilainya. Ini disebut dynamic typing. Yuk kita bedah satu-satu tipe data dasarnya.
Integer — bilangan bulat
Angka tanpa desimal disebut int. Cek tipe data pakai fungsi bawaan type().
umur = 20
print(umur)
print(type(umur)) # <class 'int'>Float — bilangan desimal
Angka yang punya titik desimal disebut float, meskipun angkanya bulat seperti 170.0.
tinggi = 170.5
print(tinggi)
print(type(tinggi)) # <class 'float'>String — teks
Teks dibungkus tanda kutip — boleh kutip dua "..." atau kutip satu '...', bebas asal konsisten.
nama = "budi"
print(nama)
print(type(nama)) # <class 'str'>Boolean — benar/salah
bool cuma punya dua kemungkinan nilai: True atau False (perhatikan huruf besar di awal — beda dengan JavaScript).
aktif = True
print(aktif)
print(type(aktif)) # <class 'bool'>None — "tidak ada nilai"
None dipakai untuk menyatakan sebuah variabel memang sengaja belum/tidak punya nilai — mirip null di JavaScript.
data = None
print(data) # None
print(type(data)) # <class 'NoneType'>Konversi antar tipe data
Kadang kamu butuh mengubah satu tipe ke tipe lain, misalnya angka yang tersimpan sebagai teks. Pakai int(), float(), atau str().
angka_str = "42"
angka_int = int(angka_str) # ubah teks jadi angka
print(angka_int + 8) # 50
umur = 20
umur_teks = str(umur) # ubah angka jadi teks
print("Umur: " + umur_teks) # Umur: 20📋 Rekap: Tipe Data Dasar Python
- int — bilangan bulat, mis. 20
- float — bilangan desimal, mis. 170.5
- str — teks, dibungkus kutip
- bool — True / False
- None — tidak ada nilai
- type() — cek tipe data · int()/float()/str() — konversi tipe
String
String di Python super fleksibel. Banyak method bawaan yang bikin pengolahan teks jadi gampang.
nama = "andi pratama"
# f-string — cara modern & direkomendasikan (Python 3.6+)
umur = 20
sapa = f"Halo, {nama}! Umur {umur} tahun."
print(sapa) # Halo, andi pratama! Umur 20 tahun.
# Method string bawaan
print(nama.upper()) # ANDI PRATAMA
print(nama.title()) # Andi Pratama
print(nama.replace("andi", "budi")) # budi pratama
print(len(nama)) # 12
print(nama.split(" ")) # ['andi', 'pratama']
print(nama.strip()) # hapus spasi di ujung
# Slicing string
teks = "Python"
print(teks[0]) # P
print(teks[-1]) # n
print(teks[0:3]) # Pyt
print(teks[::-1]) # nohtyP (dibalik)
# Cek isi string
print("andi" in nama) # True
print(nama.startswith("andi")) # True
print(nama.endswith("tama")) # True
Contoh lain yang sering banget kepakai — menggabungkan string dan mengecek isi input:
# Menggabung string (concatenation)
depan = "Budi"
belakang = "Santoso"
lengkap = depan + " " + belakang
print(lengkap) # Budi Santoso
# f-string dengan ekspresi matematika di dalamnya
harga = 15000
qty = 3
print(f"Total: Rp{harga * qty}") # Total: Rp45000
# f-string dengan pembulatan angka desimal
pi = 3.14159265
print(f"Pi dibulatkan: {pi:.2f}") # Pi dibulatkan: 3.14
# Cek apakah string kosong / hanya berisi angka
kode = "12345"
print(kode.isdigit()) # True
print(kode.isalpha()) # False
teks_kosong = " "
print(teks_kosong.strip() == "") # True → cuma spasi
# Join — gabungkan list jadi satu string
kata = ["Python", "itu", "seru"]
kalimat = " ".join(kata)
print(kalimat) # Python itu seru
Kondisi (if / elif / else)
Python pakai if, elif, dan else. Ingat: indentasi wajib, nggak pakai kurung kurawal.
nilai = 82
if nilai >= 90:
print("A - Sangat Baik")
elif nilai >= 75:
print("B - Baik") # ini yang jalan
elif nilai >= 60:
print("C - Cukup")
else:
print("D - Perlu Belajar Lagi")
# Ternary — kondisi satu baris
status = "Lulus" if nilai >= 75 else "Tidak Lulus"
print(status) # Lulus
# Operator logika
umur = 20
punya_ktp = True
if umur >= 17 and punya_ktp:
print("Boleh masuk") # ini jalan
if umur < 17 or not punya_ktp:
print("Tidak boleh masuk") # tidak jalan
# Membandingkan banyak nilai sekaligus
x = 5
if 1 <= x <= 10:
print(f"{x} ada di antara 1 dan 10") # jalan
Contoh nyata: validasi form sederhana yang mengecek beberapa syarat sekaligus.
# Validasi pendaftaran akun sederhana
username = "budi123"
password = "rahasia99"
umur = 16
if len(username) < 5:
print("Username terlalu pendek, minimal 5 karakter")
elif len(password) < 8:
print("Password terlalu pendek, minimal 8 karakter")
elif umur < 17:
print("Maaf, minimal umur 17 tahun")
else:
print("Pendaftaran berhasil! Selamat datang,", username)
# Nested if — kondisi di dalam kondisi
cuaca = "hujan"
ada_payung = False
if cuaca == "hujan":
if ada_payung:
print("Aman, bawa payung!")
else:
print("Mending nunggu reda dulu di rumah")
else:
print("Cuaca cerah, aman keluar!")
Perulangan (for & while)
Loop for di Python bisa iterasi langsung ke list, string, range, dan banyak lagi. while terus jalan selama kondisi terpenuhi.
# for dengan range()
for i in range(1, 6):
print(f"Nomor {i}") # 1 sampai 5
# for iterasi list
buah = ["apel", "mangga", "jeruk"]
for item in buah:
print(item)
# for dengan index — pakai enumerate()
for i, item in enumerate(buah, start=1):
print(f"{i}. {item}")
# while loop
angka = 0
while angka < 5:
print(angka)
angka += 1 # PENTING: jangan lupa update variabel!
# break — berhenti paksa
for i in range(10):
if i == 5:
break
print(i) # cetak 0-4 saja
# continue — skip iterasi ini
for i in range(6):
if i == 3:
continue # skip angka 3
print(i) # cetak 0,1,2,4,5
Contoh nyata: menghitung total belanja dan mencari nilai tertinggi dari sekumpulan data.
# Hitung total belanja dari daftar harga
harga_barang = [15000, 32000, 8500, 21000]
total = 0
for harga in harga_barang:
total += harga
print(f"Total belanja: Rp{total}") # Rp76500
# Cari nilai tertinggi tanpa fungsi max()
nilai_siswa = [78, 92, 65, 88, 95, 70]
tertinggi = nilai_siswa[0]
for n in nilai_siswa:
if n > tertinggi:
tertinggi = n
print(f"Nilai tertinggi: {tertinggi}") # 95
# Loop bersarang (nested loop) — bikin pola tabel perkalian
for i in range(1, 4):
for j in range(1, 4):
print(f"{i} x {j} = {i*j}")
print("---")
# while dengan input sentinel (berhenti kalau ketemu nilai tertentu)
angka_list = [4, 8, 15, -1, 16, 23]
i = 0
while i < len(angka_list) and angka_list[i] != -1:
print("Proses angka:", angka_list[i])
i += 1
print("Berhenti di index:", i)
Fungsi
Fungsi dibuat pakai kata kunci def. Python juga punya lambda untuk fungsi singkat tanpa nama.
# Fungsi dasar
def sapa(nama):
return f"Halo, {nama}!"
print(sapa("Diki")) # Halo, Diki!
print(sapa("Siti")) # Halo, Siti!
# Default parameter
def perkenalan(nama, umur=17):
print(f"Nama: {nama}, Umur: {umur}")
perkenalan("Siti") # Nama: Siti, Umur: 17
perkenalan("Budi", 22) # Nama: Budi, Umur: 22
# Return banyak nilai sekaligus
def hitung(a, b):
return a + b, a - b, a * b
tambah, kurang, kali = hitung(10, 3)
print(tambah, kurang, kali) # 13 7 30
# Lambda — fungsi satu baris
kuadrat = lambda x: x ** 2
print(kuadrat(5)) # 25
# *args — terima berapapun argumen
def jumlah(*angka):
return sum(angka)
print(jumlah(1, 2, 3, 4, 5)) # 15
# **kwargs — argumen dengan nama
def profil(**info):
for k, v in info.items():
print(f"{k}: {v}")
profil(nama="Diki", kota="Jakarta", hobi="Coding")
Contoh nyata: fungsi-fungsi kecil yang bisa dipakai ulang untuk keperluan sehari-hari.
# Fungsi cek bilangan prima
def is_prima(n):
if n < 2:
return False
for i in range(2, n):
if n % i == 0:
return False
return True
for angka in range(2, 15):
if is_prima(angka):
print(angka, "adalah prima")
# Fungsi hitung diskon — dipakai berkali-kali dengan input beda
def hitung_harga_akhir(harga, persen_diskon):
diskon = harga * (persen_diskon / 100)
return harga - diskon
print(hitung_harga_akhir(100000, 20)) # 80000.0
print(hitung_harga_akhir(50000, 10)) # 45000.0
# Fungsi rekursif — memanggil dirinya sendiri
def faktorial(n):
if n <= 1:
return 1
return n * faktorial(n - 1)
print(faktorial(5)) # 120 (5*4*3*2*1)
List & Dictionary
List dan Dictionary adalah struktur data yang paling sering dipake di Python. Wajib dikuasai!
# ── LIST — urutan, bisa diubah ──
buah = ["apel", "mangga", "jeruk"]
print(buah[0]) # apel
print(buah[-1]) # jeruk (dari belakang)
print(buah[0:2]) # ['apel', 'mangga']
print(len(buah)) # 3
buah.append("anggur") # tambah di akhir
buah.insert(1, "pisang") # sisipkan di index 1
buah.remove("apel") # hapus by nilai
popped = buah.pop() # hapus & kembalikan item terakhir
buah.sort() # urutkan ascending
buah.reverse() # balik urutan
print(buah)
# ── DICTIONARY — pasangan key: value ──
user = {
"nama": "Diki",
"umur": 20,
"aktif": True
}
print(user["nama"]) # Diki
print(user.get("email", "tidak ada")) # tidak ada (aman, no error)
user["email"] = "diki@mail.com" # tambah/update key
del user["aktif"] # hapus key
# Iterasi dict
for key, value in user.items():
print(f"{key}: {value}")
# Cek key
print("nama" in user) # True
Contoh nyata: mengolah data nilai siswa memakai list of dictionary — pola yang sangat sering dipakai di dunia nyata.
# List berisi banyak dictionary — mirip "tabel data"
siswa = [
{"nama": "Andi", "nilai": 85},
{"nama": "Budi", "nilai": 72},
{"nama": "Citra", "nilai": 91},
]
# Cetak semua nama dan nilai
for s in siswa:
print(f"{s['nama']}: {s['nilai']}")
# Cari siswa dengan nilai tertinggi
terbaik = siswa[0]
for s in siswa:
if s["nilai"] > terbaik["nilai"]:
terbaik = s
print(f"Nilai tertinggi: {terbaik['nama']} ({terbaik['nilai']})")
# Filter siswa yang lulus (nilai >= 75)
lulus = [s for s in siswa if s["nilai"] >= 75]
print("Yang lulus:", [s["nama"] for s in lulus])
# Hitung rata-rata nilai
rata2 = sum(s["nilai"] for s in siswa) / len(siswa)
print(f"Rata-rata: {rata2:.1f}")
# Menggabungkan 2 list jadi dictionary dengan zip()
nama_list = ["Andi", "Budi", "Citra"]
kota_list = ["Jakarta", "Bandung", "Surabaya"]
peta_kota = dict(zip(nama_list, kota_list))
print(peta_kota) # {'Andi': 'Jakarta', 'Budi': 'Bandung', 'Citra': 'Surabaya'}
Module & Import
Python punya banyak module bawaan yang langsung bisa dipake tanpa install. Tinggal import!
import math
import random
from datetime import datetime
# ── math ──
print(math.pi) # 3.141592653589793
print(math.sqrt(16)) # 4.0
print(math.pow(2, 10)) # 1024.0
print(math.floor(3.9)) # 3
print(math.ceil(3.1)) # 4
print(math.factorial(5)) # 120
# ── random ──
print(random.randint(1, 10)) # angka random 1–10
print(random.choice(["apel","mangga","jeruk"])) # pilih random
angka = [1, 2, 3, 4, 5]
random.shuffle(angka) # acak urutan list
print(angka)
# ── datetime ──
sekarang = datetime.now()
print(sekarang) # 2025-01-15 09:30:00.123456
print(sekarang.year) # 2025
print(sekarang.strftime("%d/%m/%Y %H:%M")) # 15/01/2025 09:30
Contoh nyata: memakai beberapa module sekaligus untuk membuat program undian sederhana.
import random
import string
# Bikin kode voucher acak — gabungan huruf & angka
def buat_kode_voucher(panjang=6):
karakter = string.ascii_uppercase + string.digits
return "".join(random.choice(karakter) for _ in range(panjang))
print("Kode voucher:", buat_kode_voucher()) # mis. A3F9K1
print("Kode voucher:", buat_kode_voucher(8)) # mis. B7X2M9QZ
# Undian pemenang dari daftar peserta
peserta = ["Andi", "Budi", "Citra", "Dewi", "Eka"]
pemenang = random.sample(peserta, k=2) # ambil 2 tanpa duplikat
print("Pemenang:", pemenang)
# Module os — info dasar sistem (aman dipakai, read-only)
import os
print("Nama platform:", os.name) # posix / nt
Error Handling (try / except)
Program yang bagus nggak langsung crash waktu ada error. Pakai try / except untuk nangkap dan handle error dengan elegan.
# Contoh dasar — tanpa error handling
# print(10 / 0) # ZeroDivisionError!
# ── try / except dasar ──
try:
hasil = 10 / 0
except ZeroDivisionError:
print("Error: tidak bisa bagi dengan nol!")
# ── tangkap berbagai jenis error ──
def bagi(a, b):
try:
return a / b
except ZeroDivisionError:
print("Pembagi tidak boleh nol!")
except TypeError:
print("Input harus angka!")
print(bagi(10, 2)) # 5.0
print(bagi(10, 0)) # Error: Pembagi tidak boleh nol!
print(bagi(10, "x")) # Error: Input harus angka!
# ── try / except / else / finally ──
try:
angka = int("123") # berhasil
except ValueError:
print("Bukan angka valid!")
else:
print(f"Berhasil convert: {angka}") # ini jalan
finally:
print("Blok finally selalu jalan") # ini selalu jalan
# ── raise — lempar error sendiri ──
def validasi_umur(umur):
if umur < 0:
raise ValueError("Umur tidak boleh negatif!")
return f"Umur valid: {umur}"
try:
print(validasi_umur(20)) # Umur valid: 20
print(validasi_umur(-5)) # raise ValueError
except ValueError as e:
print(f"Error: {e}")
Contoh nyata: validasi input dari pengguna yang sering menyebabkan error kalau tidak ditangani.
# Simulasi input umur — sering error kalau user salah ketik
def proses_umur(teks_umur):
try:
umur = int(teks_umur)
if umur < 0 or umur > 150:
raise ValueError("Umur tidak masuk akal")
return f"Umur kamu: {umur} tahun"
except ValueError as e:
return f"Input tidak valid: {e}"
print(proses_umur("25")) # Umur kamu: 25 tahun
print(proses_umur("abc")) # Input tidak valid: invalid literal...
print(proses_umur("-5")) # Input tidak valid: Umur tidak masuk akal
# Menangkap beberapa jenis error sekaligus dalam satu except
def akses_list(data, index):
try:
return data[index]
except (IndexError, TypeError) as e:
return f"Gagal akses data: {e}"
angka = [10, 20, 30]
print(akses_list(angka, 1)) # 20
print(akses_list(angka, 10)) # Gagal akses data: list index out of range
OOP Dasar (Class & Object)
OOP (Object-Oriented Programming) adalah cara memodelkan dunia nyata ke dalam kode. Di Python, kamu bikin class sebagai cetakan, dan object sebagai hasil jadinya.
# Bikin class — cetakan untuk object
class Kucing:
# __init__ = constructor, jalan saat object dibuat
def __init__(self, nama, warna):
self.nama = nama # attribute
self.warna = warna
# Method — fungsi milik class
def suara(self):
return f"{self.nama} bersuara: Meow!"
def info(self):
return f"Nama: {self.nama}, Warna: {self.warna}"
# Buat object dari class
kucing1 = Kucing("Mochi", "putih")
kucing2 = Kucing("Shadow", "hitam")
print(kucing1.suara()) # Mochi bersuara: Meow!
print(kucing2.info()) # Nama: Shadow, Warna: hitam
# ── Inheritance — class anak warisi class induk ──
class Hewan:
def __init__(self, nama):
self.nama = nama
def makan(self):
return f"{self.nama} sedang makan"
class Anjing(Hewan): # Anjing turunan dari Hewan
def __init__(self, nama, ras):
super().__init__(nama) # panggil __init__ induk
self.ras = ras
def gonggong(self):
return f"{self.nama} ({self.ras}): Woof!"
anjing = Anjing("Buddy", "Golden Retriever")
print(anjing.makan()) # Buddy sedang makan (dari Hewan)
print(anjing.gonggong()) # Buddy (Golden Retriever): Woof!
Contoh nyata: memodelkan rekening bank sederhana — pola OOP yang sering dipakai untuk menjaga data tetap konsisten.
class RekeningBank:
def __init__(self, pemilik, saldo_awal=0):
self.pemilik = pemilik
self.saldo = saldo_awal
def setor(self, jumlah):
if jumlah <= 0:
return "Jumlah setor harus positif"
self.saldo += jumlah
return f"Berhasil setor Rp{jumlah}. Saldo: Rp{self.saldo}"
def tarik(self, jumlah):
if jumlah > self.saldo:
return "Saldo tidak cukup!"
self.saldo -= jumlah
return f"Berhasil tarik Rp{jumlah}. Saldo: Rp{self.saldo}"
rekening = RekeningBank("Diki", 100000)
print(rekening.setor(50000)) # Saldo: Rp150000
print(rekening.tarik(30000)) # Saldo: Rp120000
print(rekening.tarik(999999)) # Saldo tidak cukup!
# Class dengan banyak object berbeda, tapi struktur sama
rekening2 = RekeningBank("Siti", 500000)
print(rekening2.setor(25000)) # Saldo: Rp525000
File Handling
Python bisa baca dan tulis file teks dengan gampang. Gunakan with open() supaya file otomatis tertutup setelah selesai.
import io
# ── Tulis file (di komputer asli) ──
# with open("catatan.txt", "w") as f:
# f.write("Baris pertama\n")
# f.write("Baris kedua\n")
# ── Baca file (di komputer asli) ──
# with open("catatan.txt", "r") as f:
# isi = f.read()
# print(isi)
# ── Baca per baris (di komputer asli) ──
# with open("catatan.txt", "r") as f:
# for baris in f:
# print(baris.strip())
# Simulasi file dengan StringIO (bisa dijalankan di browser)
data = "Nama: Diki\nKota: Jakarta\nHobi: Coding"
file_simulasi = io.StringIO(data)
for baris in file_simulasi:
print(baris.strip())
# Mode file:
# "r" = read (baca) — default
# "w" = write (tulis, buat baru / timpa)
# "a" = append (tambah di akhir)
# "rb" = read binary (gambar, dll)
# ── JSON — format data populer ──
import json
data_dict = {"nama": "Diki", "umur": 20, "aktif": True}
# Dict → JSON string
json_str = json.dumps(data_dict, indent=2)
print(json_str)
# JSON string → Dict
data_balik = json.loads(json_str)
print(data_balik["nama"]) # Diki
Contoh nyata: menyimpan dan membaca "database" sederhana dalam format JSON — pola umum dipakai aplikasi kecil sebelum pakai database sungguhan.
import json
# Data "database" sederhana
produk = [
{"nama": "Kaos", "harga": 75000, "stok": 20},
{"nama": "Celana", "harga": 150000, "stok": 12},
]
# Simpan sebagai string JSON (biasanya ditulis ke file .json)
json_str = json.dumps(produk, indent=2)
print(json_str)
# Baca kembali dari string JSON (biasanya dibaca dari file)
data_baca = json.loads(json_str)
for p in data_baca:
print(f"{p['nama']}: Rp{p['harga']} (stok: {p['stok']})")
# Update salah satu data, lalu simpan ulang
data_baca[0]["stok"] -= 1
print("Stok kaos setelah terjual 1:", data_baca[0]["stok"])
List Comprehension
List comprehension adalah cara Python yang singkat dan elegan untuk membuat list dari loop + kondisi. Ini yang bikin Python terasa seperti sihir! ✨
# Cara biasa vs List Comprehension
# ── Biasa (5 baris) ──
kuadrat_biasa = []
for x in range(1, 6):
kuadrat_biasa.append(x ** 2)
print(kuadrat_biasa) # [1, 4, 9, 16, 25]
# ── List Comprehension (1 baris) ──
kuadrat = [x ** 2 for x in range(1, 6)]
print(kuadrat) # [1, 4, 9, 16, 25]
# ── Dengan kondisi (filter) ──
genap = [x for x in range(1, 11) if x % 2 == 0]
print(genap) # [2, 4, 6, 8, 10]
# ── Dengan transformasi + kondisi ──
nilai = [55, 78, 92, 45, 88, 63]
lulus = [n for n in nilai if n >= 75]
print(lulus) # [78, 92, 88]
# ── String transformation ──
buah = ["apel", "mangga", "jeruk"]
uppercase = [b.upper() for b in buah]
print(uppercase) # ['APEL', 'MANGGA', 'JERUK']
# ── Dictionary comprehension ──
kuadrat_dict = {x: x**2 for x in range(1, 6)}
print(kuadrat_dict) # {1: 1, 2: 4, 3: 9, 4: 16, 5: 25}
# ── Nested comprehension ──
matriks = [[i * j for j in range(1, 4)] for i in range(1, 4)]
for baris in matriks:
print(baris)
Contoh nyata: memakai list comprehension untuk mengolah data secara ringkas — pola yang bakal sering kamu pakai di project sungguhan.
# Ambil nama-nama dari list of dictionary
siswa = [
{"nama": "Andi", "nilai": 85},
{"nama": "Budi", "nilai": 60},
{"nama": "Citra", "nilai": 91},
]
nama_lulus = [s["nama"] for s in siswa if s["nilai"] >= 75]
print(nama_lulus) # ['Andi', 'Citra']
# Bikin list harga setelah diskon 10% dari list harga asli
harga_asli = [50000, 120000, 75000]
harga_diskon = [h * 0.9 for h in harga_asli]
print(harga_diskon) # [45000.0, 108000.0, 67500.0]
# Gabungkan dua list dengan syntax comprehension + zip
kota = ["Jakarta", "Bandung"]
kode_pos = ["10110", "40111"]
gabungan = [f"{k} ({kp})" for k, kp in zip(kota, kode_pos)]
print(gabungan) # ['Jakarta (10110)', 'Bandung (40111)']
# Set comprehension — otomatis buang duplikat
angka = [1, 2, 2, 3, 3, 3, 4]
unik_kuadrat = {x**2 for x in angka}
print(unik_kuadrat) # {1, 4, 9, 16}
🚀 Kalkulator, Todo List, Mini Quiz, Tebak Angka
Contoh-contoh program lengkap (yang gabungin banyak konsep sekaligus) sekarang ada di halaman terpisah — kodenya sengaja gak bisa di-copy, biar kamu beneran ketik ulang sendiri dan paham tiap barisnya, bukan cuma copy-paste. Setelah paham, coba bikin ulang sendiri di Terminal Python di bawah!
🧪 Buka Python Contoh →🔁 Kilas Balik
Otak manusia gampang lupa kalau materi cuma dibaca sekali. Di sini, soal-soal dari section yang udah kamu selesaikan bakal muncul acak biar makin nempel di ingatan jangka panjang — coba jawab lagi walau kamu ngerasa udah paham!
✦ Terminal Python
Tulis kode Python langsung di browser dan jalankan sungguhan — termasuk input() yang benar-benar interaktif, persis seperti terminal Python di komputer. Kode kamu otomatis tersimpan, aman walau di-refresh.