Python - Assertions (id)

Halo, pemrogram aspiran! Hari ini, kita akan mencoba untuk memahami assertions di dunia Python. Sebagai guru komputer ramah lingkungan Anda, saya sangat senang untuk membimbing Anda melalui topik yang menarik ini. Mari kita mulai perjalanan ini bersama-sama!

Python - Assertions

Assertions di Python

Bayangkan Anda sedang membangun rakit. Anda tidak akan memulai untuk mengepal rakit jika Anda belum memastikan bahwa fondasi Anda kokoh, kan? Itu adalah yang sama dengan apa yang dilakukan assertions dalam pemrograman. Mereka membantu kita untuk memeriksa jika beberapa kondisi adalah benar sebelum kita melanjutkan dengan kode kita.

Dalam Python, assertions adalah cara untuk mengatakan, "Saya percaya kondisi ini adalah benar, dan jika tidak, ada yang sangat salah!" Mereka seperti titik pemeriksaan kecil di kode Anda yang memastikan semuanya adalah seperti yang seharusnya.

Pernyataan assert

Sintaksis dasar dari assertion di Python sangat sederhana:

assert kondisi, pesan

Disini, kondisi adalah hal yang kita cek, dan pesan adalah penjelasan opsional yang muncul jika assertion gagal.

Mari kita lihat contoh sederhana:

x = 5
assert x == 5, "x harusnya 5"
print("Kode terus berlanjut...")

Dalam kasus ini, assertion lulus diam-diam karena x adalah benar-benar 5, dan kode kita terus berjalan. Tetapi apa jika kita mengubah nilai x?

x = 10
assert x == 5, "x harusnya 5"
print("Baris ini tidak akan pernah dicapai!")

Ups! Ini akan memunculkan AssertionError dengan pesan kostum kita, "x harusnya 5".

Menggunakan Assertions

Assertions sangat berguna dalam berbagai skenario. Mari kita jelajahi beberapa:

1. Memeriksa input fungsi

def hitung_luas_persegi_panjang(panjang, lebar):
assert panjang > 0 and lebar > 0, "Panjang dan lebar harus positif"
return panjang * lebar

# Ini akan bekerja
print(hitung_luas_persegi_panjang(5, 3))

# Ini akan memunculkan AssertionError
print(hitung_luas_persegi_panjang(-1, 3))

Disini, kita membuat yakin bahwa seseorang tidak mencoba untuk menghitung luas persegi panjang dengan dimensi negatif atau nol. Itu akan menjadi persegi panjang yang sangat khusus, kan?

2. Memverifikasi status internal

class RekeningBank:
def __init__(self, saldo_awal):
self.saldo = saldo_awal
assert self.saldo >= 0, "Saldo awal tidak boleh negatif"

def tarik(self, jumlah):
assert jumlah > 0, "Jumlah penarikan harus positif"
assert self.saldo >= jumlah, "Saldo tidak mencukupi"
self.saldo -= jumlah

rekening = RekeningBank(100)
rekening.tarik(50)  # Ini bekerja
rekening.tarik(60)  # Ini memunculkan AssertionError

Dalam contoh ini, kita menggunakan assertions untuk memastikan bahwa rekening bank kita ber perilaku dengan benar. Kita tidak bisa memulai dengan saldo negatif atau menarik lebih banyak uang daripada yang kita miliki. Jika saja bank nyata itu begitu ketat!

Pesan Kesalahan Kostum

Seperti yang kita lihat, kita dapat menambahkan pesan kesalahan kostum ke assertions kita. Pesan-pesan ini dapat sangat membantu saat debugging:

def bagi(a, b):
assert b != 0, f"Tidak dapat membagi {a} dengan nol"
return a / b

print(bagi(10, 2))  # Ini bekerja
print(bagi(10, 0))  # Ini memunculkan AssertionError dengan pesan kostum kita

Menangani AssertionError

Kadang-kadang, kita mungkin ingin menangkap dan menangani AssertionError daripada membiarkan mereka kericau program kita. Kita dapat melakukan ini menggunakan blok try-except:

def fungsi_beresiko(x):
assert x > 0, "x harus positif"
return 1 / x

try:
hasil = fungsi_beresiko(-5)
except AssertionError as e:
print(f"Sebuah assertion gagal: {e}")
hasil = None

print(f"Hasilnya adalah: {hasil}")

Ini memungkinkan program kita untuk terus berjalan meskipun assertion gagal, yang dapat berguna dalam beberapa situasi.

Assertions vs. Exceptions

Anda mungkin bertanya-tanya, "Mengapa menggunakan assertions ketika kita punya exceptions?" Pertanyaan yang bagus! Mari kita uraikan perbedaan utama:

Assertions Exceptions
Digunakan untuk memeriksa kesalahan pemrogram Digunakan untuk menangani kesalahan waktu menjalankan
Harus digunakan untuk kondisi yang seharusnya tidak pernah terjadi Digunakan untuk kondisi kesalahan yang diharapkan
Dapat dinonaktifkan secara global Selalu aktif
Utamanya adalah bantuan debugging Bagian dari strategi penanganan kesalahan

Assertions adalah seperti pemeriksaan keselamatan kita sebelum roller coaster mulai berjalan. Exceptions adalah seperti rakit penyelamatan yang menangkap kita jika ada yang salah selama perjalanan.

Dengan demikian, assertions adalah alat yang kuat dalam toolkit pemrogram Python. Mereka membantu kita menulis kode yang lebih kuat dan dapat dipercaya dengan mengambil potensi masalah lebih awal. Ingat, itu selalu lebih baik untuk gagal cepat dan gagal keras ketika terjadi hal yang tak terduga di kode Anda.

Sebagai Anda terus menjalankan perjalanan Python Anda, tetaplah ingat assertions. Mereka seperti penjaga yang setia, memantau kode Anda dan memastikan semuanya adalah seperti yang seharusnya. Happy coding, pemrogram Python masa depan!

Credits: Image by storyset