Traffine I/O

Bahasa Indonesia

2022-04-02

Operasi Enum

Operasi Enum

Enum dalam Python menyediakan cara yang powerful untuk mendefinisikan dan bekerja dengan tipe-tipe terenumerasi. Enumerasi terdiri dari anggota-anggota yang diberi nama yang memiliki nilai-nilai terkait, memungkinkan untuk referensi dan pengambilan yang mudah. Dalam artikel ini, saya akan membahas berbagai aspek dari Enum Python, termasuk cara mengekstrak kunci-kunci dari sebuah Enum, mengekstrak nilai-nilai dari sebuah Enum, mengonversi Enum menjadi kamus (dictionary), dan mengambil kunci-kunci berdasarkan nilai-nilai.

Mengekstrak Kunci dari Enum

Dalam Enum Python, kunci-kunci mewakili nama-nama anggota enumerasi. Kunci-kunci ini digunakan untuk mengakses nilai Enum yang spesifik. Setiap Enum memiliki kunci-kunci unik, dan kunci-kunci ini dapat berupa identifikasi Python yang valid.

Python menyediakan cara yang elegan untuk mengekstrak kunci-kunci dari sebuah Enum. Berikut adalah demonstrasi sederhana:

python
from enum import Enum

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

# Get list of keys
keys = [member.name for member in Color]

print(keys)  # Outputs: ['RED', 'GREEN', 'BLUE']

Pada kode ini, kita pertama-tama mengimpor kelas Enum dari modul enum dan kemudian mendefinisikan Enum Color dengan tiga anggota: RED, GREEN, dan BLUE. Selanjutnya, kita menggunakan list comprehension untuk mengekstrak kunci-kunci (nama-nama anggota) dari Enum.

Mengekstrak Nilai dari Enum

Nilai-nilai Enum mewakili nilai-nilai yang berbeda yang diberikan kepada anggota enumerasi. Nilai-nilai ini dapat berupa tipe data apa pun dan terkait dengan kunci-kunci Enum untuk referensi dan pengambilan yang cepat dan mudah.

Untuk mendapatkan nilai-nilai dari sebuah Enum, Anda dapat menggunakan properti .value. Berikut adalah cara melakukannya:

python
from enum import Enum

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

# Get list of values
values = [member.value for member in Color]

print(values)  # Outputs: [1, 2, 3]

Pada kode ini, kita mendefinisikan Enum Color yang sama seperti sebelumnya. Kemudian, menggunakan list comprehension, kita mengekstrak nilai-nilai dari setiap anggota menggunakan properti .value.

Mengonversi Enum menjadi Kamus (Dictionary)

Setiap anggota Enum adalah pasangan kunci-nilai, di mana kunci adalah nama anggota (juga dikenal sebagai kunci Enum), dan nilai adalah nilai yang terkait. Pasangan ini membentuk suatu asosiasi yang memungkinkan Anda untuk mendapatkan nilai dengan menggunakan kunci dan sebaliknya.

Kita dapat dengan mudah mengonversi Enum menjadi kamus (dictionary), yang menyimpan anggota-anggota Enum sebagai pasangan kunci-nilai. Hal ini dapat dilakukan menggunakan dictionary comprehension, seperti yang ditunjukkan di bawah:

python
from enum import Enum

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

# Convert Enum to dictionary
enum_dict = {member.name: member.value for member in Color}

print(enum_dict)  # Outputs: {'RED': 1, 'GREEN': 2, 'BLUE': 3}

Pada contoh ini, kita sekali lagi menggunakan Enum Color. Kita membuat kamus enum_dict di mana kunci-kunci Enum menjadi kunci-kunci kamus, dan nilai-nilai Enum menjadi nilai-nilai kamus.

Mendapatkan Kunci dari Nilai

Hubungan antara kunci dan nilai dalam Enum adalah korespondensi satu-satu. Setiap kunci dipetakan ke nilai yang unik, dan setiap nilai terkait dengan kunci yang unik pula. Oleh karena itu, dengan diberikan suatu nilai, kita dapat menemukan kunci yang sesuai.

Berikut adalah contoh bagaimana Anda dapat mendapatkan kunci dari suatu nilai dalam Enum:

python
from enum import Enum

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

# Get key from value
def get_key(val):
    for color in Color:
        if color.value == val:
            return color.name

print(get_key(2))  # Outputs: 'GREEN'

Pada kode ini, kita mendefinisikan sebuah fungsi get_key() yang melintasi Enum Color dan mengembalikan kunci (nama) dari anggota yang nilainya cocok dengan val yang diberikan sebagai input.

Ryusei Kakujo

researchgatelinkedingithub

Focusing on data science for mobility

Bench Press 100kg!