Percabangan Efisien di Python: if-elif-else, dict, match-case

1. Pendahuluan

Python, karena kesederhanaannya dan sintaks yang intuitif, banyak digunakan oleh programmer, namun ada orang yang terkejut karena tidak ada struktur 「switch-case」 seperti di bahasa lain. Oleh karena itu, di Python Anda perlu menggunakan 「if-elif-else」 atau 「tipe kamus(dictionary)」 untuk mewujudkan proses serupa. Dalam artikel ini, kami akan menjelaskan secara berurutan metode percabangan kondisi tradisional di Python, alternatif yang menggunakan tipe kamus, serta pernyataan 「match-case」 baru yang diperkenalkan di Python 3.10. Dengan begitu, Anda dapat menguasai cara percabangan kondisi yang efisien di Python dan menerapkannya dalam pemrograman nyata.

2. Alasan Python tidak memiliki pernyataan switch

Python tidak mengadopsi pernyataan switch-case karena kesederhanaan dan keterbacaannya. Desainer Python berusaha membuat bahasa sesederhana mungkin dan menghilangkan duplikasi serta sintaks yang berlebihan. Pernyataan switch berguna di bahasa lain, tetapi di Python fungsi yang sama dapat dicapai dengan pernyataan “if-elif-else” atau menggunakan tipe kamus, sehingga tidak diperlukan penambahan pernyataan switch. Sebenarnya, dalam dokumentasi resmi Python juga disebutkan bahwa dengan menggunakan pernyataan if-elif-else, fungsi switch dapat dicakup. Berikut adalah contoh kode switch dalam bahasa C dan sejenisnya.
switch (value) {
  case 1:
    printf("Value is 1");
    break;
  case 2:
    printf("Value is 2");
    break;
  default:
    printf("Other value");
}
Di Python, ini dapat diubah menjadi seperti berikut.
value = 1
if value == 1:
    print("Value is 1")
elif value == 2:
    print("Value is 2")
else:
    print("Other value")
Dengan cara ini, Python dapat dengan mudah melakukan percabangan kondisi tanpa pernyataan switch.
RUNTEQ(ランテック)|超実戦型エンジニア育成スクール

3. Contoh penggunaan if-elif-else

Metode paling dasar untuk melakukan percabangan kondisi di Python adalah pernyataan “if-elif-else”. Ini sangat efektif ketika menjalankan proses yang berbeda berdasarkan beberapa kondisi. Berikut adalah contoh penggunaan tipikalnya.
value = 100
if value < 50:
    print("Nilai kecil")
elif value < 100:
    print("Nilai sedang")
else:
    print("Nilai besar")
Dalam kode ini, nilai variabel value akan menghasilkan pesan yang berbeda. Pernyataan if-elif-else memungkinkan percabangan kondisi yang sederhana dan intuitif.

Masalah ketika kondisi bertambah

Namun, ketika tingkat hierarki pernyataan if-elif-else menjadi dalam, kode dapat menjadi sulit dibaca. Khususnya, saat menangani kondisi yang kompleks, metode yang menggunakan “dictionary” yang akan diperkenalkan berikutnya sangat efektif.

4. Percabangan menggunakan tipe kamus (dictionary)

Dengan menggunakan tipe kamus Python, Anda dapat mengimplementasikan percabangan yang mirip dengan pernyataan switch-case. Tipe kamus adalah struktur data yang menyimpan pasangan kunci dan nilai, sehingga dapat mengekspresikan banyak percabangan secara ringkas. Pada contoh berikut, hasil yang sesuai akan ditampilkan berdasarkan nilai yang dimasukkan oleh pengguna.
numbers = {1: "Satu", 2: "Dua", 3: "Tiga"}
value = int(input("Masukkan angka 1-3: "))

if value in numbers:
    print(f"Angka yang dipilih: {numbers[value]}")
else:
    print("Masukkan angka 1-3")
Dengan cara ini, menggunakan tipe kamus memungkinkan kode tetap singkat dan mudah dibaca bahkan ketika ada banyak kondisi.

Keuntungan tipe kamus

Percabangan menggunakan tipe kamus memiliki keuntungan utama yaitu tetap menjaga keterbacaan kode bahkan ketika kondisi bertambah, sehingga memudahkan pemeliharaan. Khususnya, ketika ada beberapa proses untuk nilai, ini lebih efisien dibandingkan pernyataan if-elif-else.

5. Fitur baru Python 3.10: Pengenalan pernyataan match-case

Pernyataan “match-case” yang diperkenalkan sejak Python 3.10 memiliki sintaks yang sangat mirip dengan perataan switch-case, memungkinkan penulisan beberapa kondisi secara ringkas. Fitur baru ini khususnya kuat dalam pencocokan pola, dan dibandingkan dengan metode tradisional menggunakan pernyataan if-elif-else atau menggunakan tipe kamus, secara signifikan meningkatkan keterbacaan dan pemeliharaan kode.

Struktur dasar match-case

Berikut adalah contoh penggunaan dasar pernyataan match-case.
def check_value(value):
    match value:
        case 1:
            print("Satu dipilih")
        case 2:
            print("Dua dipilih")
        case _:
            print("Pilihan selain 1 atau 2")
Dalam kode ini, proses yang berbeda dijalankan sesuai dengan nilai variabel value. case _ berfungsi sebagai proses default yang dijalankan ketika tidak ada kondisi yang terpenuhi.

6. Contoh Penerapan match-case

Pernyataan match-case cocok untuk percabangan kondisi yang lebih kompleks dan pencocokan pola. Misalnya, dapat melakukan pemrosesan berdasarkan jumlah elemen dalam daftar atau tipe data.

Pernyataan match-case yang Menangani Beberapa Kondisi

def process_data(data):
    match data:
        case [x, y]:
            print(f"Daftar berisi 2 elemen: {x}, {y}")
        case [x, y, z]:
            print(f"Daftar berisi 3 elemen: {x}, {y}, {z}")
        case _:
            print("Jumlah elemen daftar berbeda")
Dalam contoh ini, pemrosesan berbeda dilakukan berdasarkan jumlah elemen daftar. Pernyataan match-case memiliki keunggulan dapat menuliskan beberapa kondisi atau pola secara sederhana.

7. Perbandingan if-elif-else, tipe kamus, dan match-case

Setiap metode percabangan kondisi memiliki kelebihan dan kekurangannya masing-masing. Berikut tabel perbandingannya.
MetodeKelebihanKekurangan
if-elif-elseSederhana dan intuitifJika banyak kondisi, kode menjadi rumit
Tipe kamus(dictionary)Mudah dibaca, efektif ketika banyak kondisiTidak semua kondisi dapat dimasukkan ke dalam kamus
match-caseEfektif untuk banyak percabangan kondisi dan pencocokan polaHanya tersedia pada Python 3.10 ke atas
Dengan tabel perbandingan ini, Anda dapat lebih mudah memilih metode percabangan kondisi yang paling tepat. Khususnya, pernyataan match-case sangat cocok untuk pencocokan pola yang kompleks, dan keunggulannya adalah dapat menghindari kerumitan pernyataan if-elif-else.

8. Ringkasan

Meskipun Python tidak memiliki pernyataan switch-case, dengan memanfaatkan pernyataan if-elif-else, tipe kamus, dan pernyataan match-case di Python 3.10, kita dapat melakukan percabangan kondisi secara efektif. Khususnya, pernyataan match-case kuat dalam pencocokan pola, dan memungkinkan penulisan percabangan kondisi yang kompleks secara sederhana, sehingga akan sangat berguna dalam pengembangan di masa depan. Dengan menggunakan teknik‑teknik ini sesuai kondisi, kita dapat membuat kode yang efisien dan mudah dibaca. Dengan memperdalam pemahaman masing‑masing teknik, kita dapat memilih pendekatan yang optimal sesuai dengan proyek nyata.
年収訴求