Enumerasi di Python
Artikel ini menjelaskan tentang enumerasi di Python.
YouTube Video
Enumerasi di Python
enum
di Python adalah kelas khusus untuk mendefinisikan konstanta, meningkatkan keterbacaan, dan membantu mencegah kesalahan pengkodean.
Apa itu Enum
?
Enum
(singkatan dari enumeration) adalah kelas yang digunakan untuk mendefinisikan sekumpulan konstanta bernama. Ini biasanya digunakan untuk mengelompokkan konstanta yang saling terkait. Misalnya, ini cocok digunakan untuk merepresentasikan warna, hari dalam seminggu, atau arah.
Mengapa menggunakan Enum
?
Ada beberapa alasan untuk menggunakan Enum
.
- Peningkatan keterbacaan: Menggunakan konstanta bernama membuat kode lebih intuitif.
- Pencegahan bug: Ini mencegah perubahan atau penyalahgunaan nilai konstanta.
- Pengelompokan: Ini mengorganisasi konstanta yang saling terkait ke dalam satu kelas, merepresentasikan data terstruktur.
Penggunaan dasar Enum
Untuk menggunakan enum
, impor modul enum
dan definisikan sebuah kelas. Kelas tersebut harus mewarisi dari Enum
dan mendefinisikan nilai-nilai yang ingin Anda perlakukan sebagai konstanta.
Contoh dasar Enum
1from enum import Enum
2
3class Color(Enum):
4 RED = 1
5 GREEN = 2
6 BLUE = 3
7
8# Usage of Enum
9print(Color.RED) # Color.RED
10print(Color.RED.name) # RED
11print(Color.RED.value) # 1
Pada contoh ini, kami mendefinisikan kelas Enum
bernama Color
dengan tiga nilai. Setiap nama dapat diakses melalui atribut name
, dan nilai yang terkait dapat diakses melalui atribut value
.
Membandingkan Enum
Anggota Enum
dapat dibandingkan baik berdasarkan nama maupun nilai. Anda dapat menggunakan operator is
atau operator ==
untuk memeriksa identitas dan kesetaraan.
Contoh perbandingan
1from enum import Enum
2
3class Direction(Enum):
4 NORTH = 1
5 SOUTH = 2
6 EAST = 3
7 WEST = 4
8
9# Equality comparison
10print(Direction.NORTH == Direction.SOUTH) # False
11print(Direction.NORTH == Direction.NORTH) # True
12
13# Identity comparison using is
14print(Direction.NORTH is Direction.SOUTH) # False
15print(Direction.NORTH is Direction.NORTH) # True
Di sini, perbandingan Enum
menggunakan ==
dan is
ditunjukkan. Enum
dirancang untuk membandingkan objek dengan nama dan nilai yang sama secara akurat.
Penetapan nilai otomatis dengan auto()
Jika Anda ingin menetapkan nilai secara otomatis ke anggota Enum
, Anda dapat menggunakan enum.auto()
. auto()
memungkinkan Python menetapkan nilai secara otomatis, menghilangkan kebutuhan untuk penentuan manual oleh pengembang.
Contoh penggunaan auto()
1from enum import Enum, auto
2
3class Animal(Enum):
4 DOG = auto()
5 CAT = auto()
6 MOUSE = auto()
7
8# Check the values of Enum
9print(Animal.DOG.value) # 1
10print(Animal.CAT.value) # 2
11print(Animal.MOUSE.value) # 3
Dalam contoh ini, penggunaan auto()
menghilangkan kebutuhan untuk menentukan nilai secara eksplisit, sehingga membuat kode lebih ringkas.
Menetapkan beberapa nilai ke anggota Enum
Anggota Enum
juga dapat memiliki beberapa nilai, seperti tuple. Ini memungkinkan setiap anggota memiliki informasi tambahan yang terkait.
Contoh penggunaan tuple
1from enum import Enum
2
3class Status(Enum):
4 ACTIVE = (1, 'Active user')
5 INACTIVE = (2, 'Inactive user')
6 SUSPENDED = (3, 'Suspended user')
7
8# Accessing Enum members
9print(Status.ACTIVE.name) # ACTIVE
10print(Status.ACTIVE.value) # (1, 'Active user')
11print(Status.ACTIVE.value[1]) # Active user
Dalam contoh ini, anggota kelas Status
memiliki dua nilai masing-masing, mewakili status dan deskripsi. Ini berguna ketika Anda ingin menghubungkan beberapa informasi dengan anggota Enum
.
Menggunakan Enum
sebagai bendera
Enum
Python mencakup kelas Flag
yang dapat digunakan seperti bit bendera. Menggunakan Flag
memungkinkan Anda mengelola beberapa status secara kombinasi.
Contoh penggunaan Flag
1from enum import Flag, auto
2
3class Permission(Flag):
4 READ = auto()
5 WRITE = auto()
6 EXECUTE = auto()
7
8# Combining flags
9permission = Permission.READ | Permission.WRITE
10print(permission) # Permission.READ|WRITE
11print(Permission.EXECUTE in permission) # False
Dalam contoh ini, operasi bitwise digunakan untuk menggabungkan beberapa izin. Menggunakan Flag
memungkinkan Anda mengelola beberapa status secara ringkas.
Poin yang perlu diingat saat menggunakan Enum
Ketakberubahan Enum
Anggota Enum
tidak dapat diubah. Setelah didefinisikan, nama atau nilainya tidak dapat diubah. Ini merupakan karakteristik penting untuk menjaga konsistensi sebagai konstanta.
1from enum import Enum
2
3class Days(Enum):
4 MONDAY = 1
5 TUESDAY = 2
6
7# Example of immutability
8# Days.MONDAY = 3 # AttributeError: Cannot reassign members.
Larangan duplikasi anggota
Anggota Enum
harus memiliki nama dan nilai yang unik. Bahkan ketika nilai duplikat diizinkan, Python secara otomatis memprioritaskan anggota yang pertama.
Ringkasan
Modul enum
di Python adalah alat yang sangat berguna untuk mengelompokkan sekumpulan konstanta, meningkatkan keterbacaan, dan menjaga konsistensi kode. Beragam penggunaan dimungkinkan, mulai dari penggunaan dasar hingga penetapan nilai otomatis menggunakan auto()
, serta penggunaan sebagai bendera bit.
Memahami dan menguasai enum
dengan baik dapat meningkatkan kualitas kode dan membantu mencegah kesalahan.
Anda dapat mengikuti artikel di atas menggunakan Visual Studio Code di saluran YouTube kami. Silakan periksa juga saluran YouTube kami.