Constants & Enum in Pyhton

Constants (konstanta) adalah nilai-nilai yang tidak berubah selama program berjalan. Meskipun Python tidak memiliki dukungan bawaan untuk mendeklarasikan konstanta, Kita dapat menggunakan penamaan konvensi tertentu untuk menunjukkannya.

Cara Mendefinisikan Constants

Gunakan huruf kapital untuk menandai konstanta. Biasanya, konstanta didefinisikan pada awal file atau dalam modul terpisah.

# Definisi konstanta
PI = 3.14159
GRAVITY = 9.8
SPEED_OF_LIGHT = 299792458

print("Nilai PI:", PI)
print("Gravitasi:", GRAVITY, "m/s^2")
print("Kecepatan Cahaya:", SPEED_OF_LIGHT, "m/s")

Catatan:
Python tidak akan memberikan error jika konstanta diubah secara tidak sengaja, jadi pastikan untuk tidak mengubahnya dalam kode.

Enum di Python

Enum (Enumerasi) adalah cara untuk mendefinisikan sekumpulan konstanta yang terkait. Python menyediakan modul bawaan enum untuk mendukung pembuatan enumerasi.

Cara Membuat Enum

Gunakan kelas Enum dari modul enum untuk membuat enumerasi:

from enum import Enum

class Color(Enum):
    RED = 1
    GREEN = 2
    BLUE = 3

Akses Anggota Enum

print(Color.RED)          # Output: Color.RED
print(Color.RED.name)     # Output: RED
print(Color.RED.value)    # Output: 1

Membandingkan Anggota Enum

Dua anggota Enum dapat dibandingkan menggunakan operator identitas (is) atau kesetaraan (==):

if Color.RED == Color.GREEN:
    print("Sama")
else:
    print("Berbeda")
# Output: Berbeda

Enum dengan Nilai String

Kita juga dapat membuat Enum dengan nilai string:

class Status(Enum):
    NEW = "New"
    IN_PROGRESS = "In Progress"
    COMPLETED = "Completed"

print(Status.NEW.value)  # Output: New

Enum dengan Anggota Duplikat

Gunakan dekorator @enum.unique untuk mencegah adanya anggota duplikat:

from enum import Enum, unique

@unique
class Status(Enum):
    NEW = "New"
    IN_PROGRESS = "In Progress"
    COMPLETED = "Completed"

Jika terdapat nilai duplikat, Python akan memberikan error.

Enum Otomatis Menggunakan auto()

Kita dapat menggunakan fungsi auto() untuk menetapkan nilai secara otomatis:

from enum import Enum, auto

class Animal(Enum):
    DOG = auto()
    CAT = auto()
    BIRD = auto()

print(Animal.DOG.value)  # Output: 1
print(Animal.CAT.value)  # Output: 2
print(Animal.BIRD.value) # Output: 3

Studi Kasus: Status Transaksi

Misalnya, Kita memiliki berbagai status transaksi dalam sistem:

from enum import Enum

class TransactionStatus(Enum):
    PENDING = 1
    COMPLETED = 2
    FAILED = 3
    REFUNDED = 4

def check_status(status):
    if status == TransactionStatus.COMPLETED:
        print("Transaksi selesai.")
    elif status == TransactionStatus.PENDING:
        print("Transaksi masih dalam proses.")
    elif status == TransactionStatus.FAILED:
        print("Transaksi gagal.")
    elif status == TransactionStatus.REFUNDED:
        print("Transaksi telah dikembalikan.")

# Contoh penggunaan
check_status(TransactionStatus.PENDING)

Kesimpulan

  1. Constants digunakan untuk nilai yang tidak berubah dalam program.
  2. Gunakan modul enum untuk mendefinisikan sekumpulan nilai konstanta yang terkait.
  3. Enum membantu membuat kode lebih terorganisir, mudah dibaca, dan minim error.

Untuk informasi lebih lanjut, kunjungi dokumentasi resmi Python:

Kode sumber bisa di download di github pada link berikutĀ python-days

hyvercode

Leave a Reply

Your email address will not be published. Required fields are marked *