Enum
Kelompokkan konstanta bernama dalam satu tipe.
Pahami konsepnya
Enum (enumeration) mendefinisikan kelompok konstanta bernama: class Warna(Enum): MERAH = 1, HIJAU = 2, BIRU = 3. Ini menggantikan angka sihir (0, 1, 2) dengan nama yang terbaca — Warna.MERAH jelas, angka 1 tidak.
Anggota enum bisa diakses lewat nama (Warna.MERAH) atau nilai (Warna(1) memberi Warna.MERAH). name dan value memberi keduanya. Iterasi for w in Warna: menyusuri seluruh anggota. Enum bisa jadi kunci dict dan dibandingkan dengan == atau is.
Auto-numbering: from enum import Enum, auto; MERAH = auto() memberi nilai otomatis berurutan — tak perlu menomori manual. Python 3.11+ menambah StrEnum untuk anggota yang berperilaku seperti string.
Coba contoh kode
from enum import Enum
class Level(Enum):
BRONZE = 1
SILVER = 2
GOLD = 3
member = Level.GOLD
print(member.name, member.value)
for lv in Level:
print(lv)
# sebagai kunci dict
diskon = {Level.BRONZE: 5, Level.SILVER: 10, Level.GOLD: 20}
print(f"Diskon {member.name}: {diskon[member]}%")Enum mengubah "diskon level 3" menjadi "diskon Level.GOLD" — jelas dan aman dari salah ketik. Iterasi menyusuri anggota; dict berenum sebagai kunci adalah pola yang bersih untuk lookup berbasis level/status.
Latihan singkat
Uji: enum Hari, Hari(3).name harus `RABU`.