Python - Pernyataan Match-Case: Panduan bagi Pemula

Hai semua, pemrogram Python yang aspiratif! Hari ini, kita akan menyelam ke salah satu fitur Python yang baru: pernyataan match-case. Pikirkan tentang hal itu sebagai pilihan yang lengkap bagi penanganan berbagai skenario dalam kode Anda. Mari kita mulai perjalanan yang menarik ini bersama-sama!

Python - Match-Case Statement

Apa itu Pernyataan Match-Case?

Pernyataan match-case, diperkenalkan di Python 3.10, seperti superhero versi dari struktur if-elif-else. Ini memungkinkan kita untuk membandingkan nilai dengan beberapa pola dan menjalankan kode berdasarkan pola yang cocok pertama kali.

Sintaks Dasar

match subject:
case pattern1:
# Kode untuk pattern1
case pattern2:
# Kode untuk pattern2
case _:
# Kasus default

Mari kita pecahkan ini dengan contoh yang menarik:

def ucapan_superhero(hero):
match hero:
case "Spider-Man":
print("Dengan kekuatan besar datang tanggung jawab besar!")
case "Iron Man":
print("Saya adalah Iron Man.")
case "Black Widow":
print("Saya selalu membersihkan setelah kamu semua.")
case _:
print("Saya tidak tahu superhero itu, tapi mungkin dia keren!")

ucapan_superhero("Spider-Man")
ucapan_superhero("Wonder Woman")

Dalam contoh ini, kita mencocokkan variabel hero dengan nama superhero yang berbeda. Kasus _ bertindak sebagai default, menangkap setiap hero yang tidak dikenal.

Kasus gabungan dalam Pernyataan Match

Kadang-kadang, kita ingin menangani beberapa pola dengan kode yang sama. Python telah menyiapkan untuk kita!

def klasifikasi_angka(num):
match num:
case 0:
print("Nol adalah angka yang unik!")
case 1 | 2 | 3:
print("Ini adalah angka positif kecil.")
case -1 | -2 | -3:
print("Ini adalah angka negatif kecil.")
case _:
print("Ini adalah angka yang lebih besar.")

klasifikasi_angka(2)
klasifikasi_angka(-2)
klasifikasi_angka(100)

Di sini, kita menggunakan operator | untuk menggabungkan kasus. Ini seperti mengatakan "atau" dalam bahasa Inggris.

Daftar sebagai Argumen dalam Pernyataan Match Case

Pernyataan match-case tidak hanya untuk nilai sederhana. Ini dapat menangani struktur yang kompleks seperti daftar juga!

def analisis_koordinat(point):
match point:
case [0, 0]:
print("Titik Origin")
case [0, y]:
print(f"Di atas sumbu Y pada y = {y}")
case [x, 0]:
print(f"Di atas sumbu X pada x = {x}")
case [x, y]:
print(f"Titik di ({x}, {y})")
case _:
print("Bukan titik 2D yang valid")

analisis_koordinat([0, 0])
analisis_koordinat([5, 0])
analisis_koordinat([3, 4])
analisis_koordinat([1, 2, 3])

Contoh ini menunjukkan bagaimana kita dapat mencocokkan dengan pola daftar. Ini seperti memberikan kode Anda visi sinar X untuk melihat ke dalam daftar!

Menggunakan "if" dalam "Kasus" Klause

Untuk saat-saat saat kita memerlukan presisi sedikit lebih dalam pematching kita, kita dapat menambahkan kondisi pengawal menggunakan if:

def kategorikan_umur(age):
match age:
case n if n < 0:
print("Peringatan wisatawan waktu! Umur negatif terdeteksi.")
case n if n < 13:
print("Kamu adalah anak. Nikmati masa mudimu!")
case n if n < 20:
print("Selamat datang di masa remaja!")
case n if n < 65:
print("Hidup dewasa, mari kita mulai!")
case _:
print("Kebijaksanaan datang dengan umur. Kamu penuh dengan itu!")

kategorikan_umur(8)
kategorikan_umur(15)
kategorikan_umur(30)
kategorikan_umur(70)

Di sini, kita menggunakan kondisi if untuk memperhalus kasus kita. Ini seperti memberikan pernyataan match Anda kaca pembesar!

Aplikasi Praktis

Sekarang bahwa kita telah membahas dasar-dasar, mari lihat contoh yang lebih kompleks yang menggabungkan berbagai aspek dari pernyataan match-case:

def proses_perintah(command):
match command.split():
case ["quit"]:
print("Keluar dari program. Selamat tinggal!")
return False
case ["hello" | "hi" | "hey", name]:
print(f"Halo, {name}! Senang bertemu dengan kamu.")
case ["add", *numbers] if all(n.isdigit() for n in numbers):
result = sum(int(n) for n in numbers)
print(f"Hasil penjumlahan adalah: {result}")
case ["multiply", *numbers] if all(n.isdigit() for n in numbers):
result = 1
for n in numbers:
result *= int(n)
print(f"Hasil perkalian adalah: {result}")
case _:
print("Saya tidak mengerti perintah itu.")
return True

while True:
user_input = input("Masukkan perintah: ")
if not proses_perintah(user_input):
break

Contoh ini menunjukkan sebuah pengolah perintah yang dapat menangani berbagai jenis input:

  • Dapat keluar dari program
  • Dapat menyapa pengguna
  • Dapat menambahkan atau mengalikan angka
  • Dapat menangani perintah yang tidak dikenal dengan baik

Pernyataan match-case menyinari dalam skenario seperti ini, di mana kita perlu menangani beberapa jenis input dalam cara yang jelas dan ringkas.

Kesimpulan

Pernyataan match-case adalah alat yang kuat dalam toolkit Python Anda. Ini memungkinkan kode yang lebih dapat dibaca dan dipelihara saat menangani beberapa kondisi. Ingat, seperti setiap alat, itu tentang menggunakan itu dalam situasi yang tepat. Jangan paksa itu di tempat yang simple if-else akan cukup, tetapi ikuti itu saat Anda perlu menangani skenario pematching pola yang kompleks.

Sebagai Anda terus menjalankan perjalanan Python Anda, Anda akan menemukan lebih banyak situasi di mana pernyataan match-case dapat menyederhanakan kode Anda dan membuatnya lebih ekspresif. Happy coding, dan semoga pertandingan Anda selalu menemukan kasus yang sempurna!

Tabel Referensi Cepat

Fitur Contoh
Match-Case Dasar match value: case pattern: ...
Kasus Default case _: ...
Kasus Gabungan case pattern1 | pattern2: ...
Pematching Daftar case [x, y]: ...
Kondisi Pengawal case pattern if condition: ...

Ingat, praktek membuat perfect. Jadi, jangan sungkan, eksperimen dengan pola ini, dan lihat kemampuan Python Anda ketinggian!

Credits: Image by storyset