Cara menggunakan assert in python

In Python, the assert statement is used to continue the execute if the given condition evaluates to True. If the assert condition evaluates to False, then it raises the

x = 10
assert x > 0
print('x is a positive number.')
0 exception with the specified error message.

Syntax

assert condition [, Error Message] 

The following example demonstrates a simple assert statement.

Example: assert

Copy

x = 10
assert x > 0
print('x is a positive number.')

Output

x is a positive number.

In the above example, the assert condition,

x = 10
assert x > 0
print('x is a positive number.')
1 evalutes to be True, so it will continue to execute the next statement without any error.

The assert statement can optionally include an error message string, which gets displayed along with the

x = 10
assert x > 0
print('x is a positive number.')
0. Consider the following assert statement with the error message.

Example: Assert Statement with Error Message

Copy

x = 0
assert x > 0, 'Only positive numbers are allowed'
print('x is a positive number.')

Output

Traceback (most recent call last):
    assert x > 0, 'Only positive numbers are allowed'
AssertionError: Only positive numbers are allowed

Above,

x = 10
assert x > 0
print('x is a positive number.')
3, so the assert condition
x = 10
assert x > 0
print('x is a positive number.')
1 becomes False, and so it will raise the
x = 10
assert x > 0
print('x is a positive number.')
0 with the specified message 'Only positive numbers are allowed'. It does not execute
x = 10
assert x > 0
print('x is a positive number.')
6 statement.

The following example uses the assert statement in the function.

Example: assert

Copy

def square(x):
    assert x>=0, 'Only positive numbers are allowed'
    return x*x

n = square(2) # returns 4
n = square(-2) # raise an AssertionError

Output

Traceback (most recent call last):
    assert x > 0, 'Only positive numbers are allowed'
AssertionError: Only positive numbers are allowed

Above,

x = 10
assert x > 0
print('x is a positive number.')
7 will return 4, whereas
x = 10
assert x > 0
print('x is a positive number.')
8 will raise an
x = 10
assert x > 0
print('x is a positive number.')
0 because we passed -2.

The

x = 10
assert x > 0
print('x is a positive number.')
0 is also a built-in exception that can be handled using try-except construct as shown below:

Example: AssertionError

Copy

def square(x):
    assert x>=0, 'Only positive numbers are allowed'
    return x*x

try:
    square(-2)
except AssertionError as msg:
    print(msg)

Output

Only positive numbers are allowed

Above, calling

x = 10
assert x > 0
print('x is a positive number.')
8 will raise an
x = 10
assert x > 0
print('x is a positive number.')
0, which will be handled by the except block. The error message in the assert statement will be passed as an argument to the exception argument
x is a positive number.
3, using
x is a positive number.
4 keyword.

Thus, the assert statement should generally be used to prevent possible errors and specify appropriate error messages.

Halo sahabat programmer kali ini kita akan membahas cara menangani eksepsi di python, seperti yang kita ketahui di dalam pemrograman kesalahan atau error adalah hal yang sering terjadi, tidak mungkin seorang programmer ketika membuat sebuah program tidak pernah mengalami hal ini. Bahkan programmer sering di sebut sebagai troble maker karena kegiatan programming memang tidak luput dari hal itu.

Kesalahan atau error bisa disebabkan beberapa hal seperti kesalahan pada penulisan kode sehingga program tidak dapat di eksekusi atau kesalahan juga bisa terjadi saat program sedang berjalan (run-time). Error karena kesalahan sintak mungkin cukup mudah untuk di deteksi tapi bagaimana jika kesalahan terjadi saat program telah berjalan??

Contoh misalnya kita membuat sebuah program utnuk menerima nilai yang di masukan dari pengguna dengan tipe integer, tetapi pengguna memasukan tipe karakter tentu ini akan menyebabkan error pada program yang sedang berjalan sehingga program akan dihentikan secara tidak normal.

Sebagai seorang programmer kita harus mampu mengantisipasi kejadian seperti ini agar program yang kita buat dapat berjalan dengan baik. Ketika ada peluang terjadinya kesalahan maka program mampu memberikan instruksi kepada pengguna tentang kesalahan yang terjadi sehingga program tetap berjalan dengan baik seakan-akan tidak terjadi sebuah kesalahan.

Daftar Isi

Pengertian Eksepsi

Eksepsi (exception) merupakan suatu kesalahan (error) yang terjadi saat proses eksekusi program sedang berjalan, kesalahan ini akan menyebabkan program berakhir dengan tidak normal. Kesalahan-kesalahan ini dapat diidentifikasikan dengan nama tertentu dan direpresentasikan sebagai objek di dalam python.

Contoh:

Perhatikan program berikut:

a = 1
b = 'X'
print(a+b)

Program ini mencoba untuk menjumlahkan variabel a+b namun variabel b memiliki tipe data string, sehingga hal ini akan memicu bangkitnya eksepsi karena akan terjadi error.

Cara menggunakan assert in python

Dalam kasus ini eksepsi yang dibangkitkan adalah TypeError dimana operan tidak didukung penjumlahan antara tipe integer dan string.

Membangkitkan Eksepsi dengan raise

Di dalam python ada banyak tipe eksepsi di dalam python, yang semuanya bisa dibangkitkan baik pada saat penanganan kesalahan (error) atau bisa juga kita bangkitkan secara paksa dengan menggunakan perintah raise.

Cara menggunakan assert in python

Contoh di atas kita membangkitkan eksepsi dengan tipe TypeError menggunakan perintah raise, meskipun sebenarnya di dalam kode tersebut tidak ada kesalahan penggunaan tipe data yang tidak sesuai.

Penanganan Eksepsi Menggunakan Blok try … except

Jika kalian pernah belajar C++ atau Java penanganan eksepsi menggunakan blok try … catch, sedikit berbeda namanya dengan python menggunakan blok try … except bentuk umumnya seperti berikut:

try:
    # kode
except TipeEksepsi:
    # Penanganan kesalahan

Setiap kode program yang memungkinkan terjadinya eksepsi, maka perlu untuk di tempatkan di dalam blok try. Ketika ada kesalahan maka kode di blok except akan dieksekusi , sebaliknya jika program tidak memiliki kesalahan maka blok except akan di abaikan.

Contoh Blok try … except di python

Perhatikan program berikut:

import sys
try:
    a = int(input("Masukan nilai a : "))
    b = int(input("Masukan nilai b : "))
except ValueError:
    print("Nilai harus bertipe numerik")
    sys.exit()
hasil=a+b
print("Hasil Penjumlahan :",hasil)

Pada contoh program di atas kita akan menjumlahkan nilai a dan b yang akan di masukan oleh pengguna. Karena inputan dari pengguna memungkinkan terjadi kesalahan maka perintah tersebut kita tempatkan di dalam blok try, apabila terjadi eksepsi dengan tipe ValueError maka kode di dalam blok except akan di eksekusi.

Tipe eksepsi ValueError adalah eksepsi untuk menangani kesalahan konversi tipe data. ketika pengguna memasukan nilai selain integer maka eksepsi ini akan dibangkitkan. Selain itu kita juga menggunakan perintah exit() di dalam modul sys untuk menghentikan eksekusi program yang sedang berjalan saat terjadi eksepsi.

Apabila tidak terjadi eksepsi maka kode di dalam blok except tidak akan di eksekusi oleh program dan langsung melompat ke perintah program selanjutnya.

Menambahkan Klausa else dalam Blok try … except

try:
    a = int(input("Masukan nilai a : "))
    b = int(input("Masukan nilai b : "))
except ValueError:
    print("Nilai harus bertipe numerik")
else: 
    hasil=a+b
    print("Hasil Penjumlahan :",hasil)

Pada contoh kedua kita menambahkan klausa else, dimana kode-kode yang berada pada bagian else hanya akan dieksekusi ketika tidak terjadi kesalahan saat mengeksekusi kode di bagian try, ini berarti jika terjadi eksepsi kode pada bagian else tidak akan di eksekusi.

Perbedaan program pertama dan kedua selain ada penambahan klausa else, pada program kedua kita sudah tidak menggunakan fungsi exit() dari modul sys karena program akan melompat ke bagian else saat tidak terjadi eksepsi.

Menggunakan Perintah assert

Perintah assert merupakan bentuk sederhana untuk memeriksa suatu ekspresi bertipe boolean apakah bernilai benar (true) atau salah (false). Berikut ini adalah bentuk umumnya:

assert Ekspresi, Argumen

Jika ekspresi bernilai salah maka eksepsi akan di bangkitkan dengan tipe AssertionError.

a = int(input("Masukan nilai a : "))
assert a > 0, "Nilai harus lebih dari 0"
Cara menggunakan assert in python

Perintah assert biasanya digunakan untuk melacak kesalahan (debugging) di dalam kode program.

Kesimpulan

Demikian artikel kali ini mengenai cara menangani eksepsi di python baik menggunakan blok try … except dan perintah assert, semoga artikel ini bermanfaat dan menambah wawasan teman-teman semua.