Panduan Enum untuk Pemula di Python
Halo semua, para penyihir Python masa depan! Hari ini, kita akan memulai perjalanan yang menarik ke dunia Enum di Python. Jangan khawatir jika Anda belum pernah mendengar tentang Enums sebelumnya - pada akhir tutorial ini, Anda akan menggunakannya seperti seorang profesional!
Apa itu Enums di Python?
Bayangkan Anda membuat sebuah permainan di mana pemain dapat memilih tingkat kesulitan yang berbeda. Anda dapat mewakili tingkat ini menggunakan string atau angka sederhana, tetapi apa jika Anda secara kesalahan mengeja salah satu tingkat atau menggunakan angka yang tidak valid? Itu saat Enums datang untuk menyelamat!
Enum, singkatan dari "enumeration," adalah sekumpulan nilai yang memiliki nama dan tidak berubah. Ini seperti daftar khusus dari pilihan yang telah ditentukan yang dapat Anda gunakan di kode Anda. Mari kita lihat contoh pertamanya:
from enum import Enum
class TingkatKesulitan(Enum):
MUDAH = 1
SEDANG = 2
SUSAH = 3
Dalam kode ini, kita mengimpor kelas Enum dari modul enum. Kemudian, kita membuat Enum milik kita sendiri yang dinamakan TingkatKesulitan
. Ini memiliki tiga anggota: MUDAH, SEDANG, dan SUSAH, masing-masing memiliki nilai yang terkait.
Mengapa menggunakan Enums?
- Keterbacaan: Enums membuat kode Anda lebih mudah dibaca. Dengan menggunakan nama yang berarti daripada angka yang sulit dipahami.
- Ketahanan Tipe: Enums membantu mencegah kesalahan dengan memastikan Anda hanya menggunakan nilai yang telah ditentukan.
- Organisasi: Mereka mengelompokkan konstanta yang terkait bersama, membuat kode Anda lebih terorganisir.
Mengakses Anggota di Enums
Sekarang bahwa kita telah membuat Enum kita, mari lihat bagaimana kita dapat menggunakannya di kode kita.
print(TingkatKesulitan.MUDAH) # Output: TingkatKesulitan.MUDAH
print(TingkatKesulitan.MUDAH.name) # Output: MUDAH
print(TingkatKesulitan.MUDAH.value) # Output: 1
# Membandingkan anggota Enum
print(TingkatKesulitan.MUDAH == TingkatKesulitan.SEDANG) # Output: False
print(TingkatKesulitan.SUSAH == TingkatKesulitan.SUSAH) # Output: True
Apa artinya:
- Kita dapat mengakses anggota Enum menggunakan notasi titik.
- Atribut
.name
memberikan kita nama anggota Enum sebagai string. - Atribut
.value
memberikan kita nilai yang terkait. - Kita dapat membandingkan anggota Enum menggunakan
==
.
Inovasi ini: Anggota Enum adalah objek singleton. Ini berarti bahwa tidak peduli berapa kali Anda mereferensikan TingkatKesulitan.MUDAH
, itu selalu adalah objek yang sama di memori. Itu seperti memiliki seorang teman terbaik yang selalu ada untuk Anda!
Mengulangi melalui Enums
Salah satu hal yang paling keren tentang Enums adalah kita dapat mengulangi melalui mereka. Ini sangat berguna ketika Anda ingin melakukan sesuatu dengan semua pilihan di Enum Anda.
for level in TingkatKesulitan:
print(f"Tingkat Kesulitan: {level.name}, Nilai: {level.value}")
# Output:
# Tingkat Kesulitan: MUDAH, Nilai: 1
# Tingkat Kesulitan: SEDANG, Nilai: 2
# Tingkat Kesulitan: SUSAH, Nilai: 3
Kode ini mengulangi semua anggota TingkatKesulitan
Enum kita, mencetak nama dan nilai masing-masing. Itu seperti memiliki pemandu wisata magis yang menunjukkan Anda semua pilihan!
Fitur Enum Lanjutan
Sekarang bahwa kita telah membahas dasar-dasar, mari lihat beberapa fitur lanjutan dari Enums.
Penomoran Otomatis
Jika Anda tidak ingin menetapkan nilai secara manual, Python dapat melakukan itu untuk Anda:
from enum import Enum, auto
class Arah(Enum):
UTARA = auto()
SELATAN = auto()
TIMUR = auto()
BARAT = auto()
print(list(Arah)) # Output: [<Arah.UTARA: 1>, <Arah.SELATAN: 2>, <Arah.TIMUR: 3>, <Arah.BARAT: 4>]
Fungsi auto()
secara otomatis menetapkan nilai integer yang meningkat dimulai dari 1.
Menggunakan Enums di fungsi
Enums sangat baik untuk parameter fungsi. Mereka membuat fungsi Anda lebih robust dan self-documenting:
def set_tingkat_kesulitan(level: TingkatKesulitan):
print(f"Tingkat kesulitan permainan diatur ke: {level.name}")
set_tingkat_kesulitan(TingkatKesulitan.SUSAH) # Output: Tingkat kesulitan permainan diatur ke: SUSAH
set_tingkat_kesulitan("MUDAH") # Ini akan menyebabkan TypeError
Dengan menentukan TingkatKesulitan
sebagai tanda petunjuk jenis untuk parameter level
, kita memberitahu Python (dan pengembang lainnya) bahwa fungsi ini mengharapkan anggota TingkatKesulitan
Enum.
Metode dan Atribut Enum
Berikut adalah tabel dari metode dan atribut Enum yang berguna:
Metode/Atribut | Deskripsi | Contoh |
---|---|---|
Enum.name |
Mengembalikan nama anggota Enum | TingkatKesulitan.MUDAH.name |
Enum.value |
Mengembalikan nilai anggota Enum | TingkatKesulitan.MUDAH.value |
Enum.__members__ |
Kamus semua anggota Enum | TingkatKesulitan.__members__ |
Enum(value) |
Mendapatkan anggota Enum oleh nilai | TingkatKesulitan(1) |
Kesimpulan
Selamat! Anda baru saja meningkatkan keterampilan Python Anda dengan menguasai Enums. Ingat, Enums seperti piringan keris di atas rak obat Anda - mereka mungkin tampak sederhana, tetapi mereka sangat versatile dan dapat membuat kode Anda lebih bersih, aman, dan lebih mudah dibaca.
Berikutnya Anda bekerja pada sebuah proyek dan menemukan diri Anda menggunakan sekumpulan konstanta yang terkait, pikirkan tentang menggunakan Enum. Anda masa depan (dan semua pengembang yang bekerja dengan kode Anda) akan berterima kasih kepada Anda!
Terus kode, terus belajar, dan ingat - di dunia pemrograman, setiap hari adalah kesempatan untuk menumerate keterampilan Anda! (Mengerti? Enum-erate? Baiklah, saya akan pergi sekarang. ?)
Credits: Image by storyset