Lompat ke konten utama

Kompetisi Ajak Teman: hadiah total Rp1.000.000 tunai untuk 3 pengajak terbanyak. Berakhir 29 November 2026. Ikut kompetisi

←

Pengujian Perangkat Lunak

Pelajaran 1 dari 15

Test pertama: assert dan doctest

Hasil harapan dan pernyataan assert

Setelah pelajaran ini kamu bisa menulis test sebagai pasangan masukan dan hasil harapan, memeriksanya dengan assert, dan membandingkan pecahan dengan math.isclose.

±14 menitDiperiksa 3 Okt 2026

Materi

Test adalah potongan kode yang memanggil kode lain dengan masukan tertentu, lalu membandingkan hasilnya dengan hasil harapan yang sudah ditulis sebelumnya. Bila keduanya sama, test lulus dan tidak ada yang perlu dilakukan. Bila berbeda, test gagal dan menunjuk fungsi serta masukan yang hasilnya menyimpang. Kelas Membaca Pesan Error & Debugging mengajarkan cara mencari penyebab galat yang sudah muncul; kelas ini mengajarkan cara menuliskan perilaku yang benar sebagai kode, supaya penyimpangan tertangkap sendiri setiap kali program diubah, sebelum ada pengguna yang melapor.

Alat paling sederhana di Python adalah pernyataan assert, bentuknya assert ekspresi, pesan. Bila ekspresinya bernilai benar, tidak terjadi apa-apa. Bila salah, Python melempar AssertionError yang membawa pesan tadi. Dokumentasi Python menjelaskan pernyataan ini sebagai pemeriksaan if not ekspresi: raise AssertionError(pesan) yang hanya berjalan selama mode debug menyala.

def luas_ruang(panjang, lebar):
    return panjang * lebar


assert luas_ruang(4, 5) == 20, "ruang 4 x 5 meter"
assert luas_ruang(3, 0) == 0, "lebar nol"
print("semua assert lulus")

Satu test punya tiga bagian: masukan yang dipilih, pemanggilan fungsinya, dan hasil harapan. Hasil harapan dihitung sendiri dari aturannya — dari kalimat "potongan 10 persen untuk belanja minimal Rp100.000" — bukan disalin dari keluaran fungsi. Menyalin keluaran fungsi berarti mengunci perilakunya apa adanya, termasuk kesalahannya.

Bilangan pecahan butuh perlakuan khusus. Komputer menyimpan 0,1 dan 0,2 sebagai pecahan biner yang tidak persis, sehingga 0.1 + 0.2 menghasilkan 0.30000000000000004 dan perbandingan dengan 0.3 bernilai salah. Pembandingnya adalah math.isclose(a, b), yang menganggap dua angka sama bila selisihnya sangat kecil dibanding besarnya.

import math

print(0.1 + 0.2)                      # 0.30000000000000004
print(0.1 + 0.2 == 0.3)               # False
print(math.isclose(0.1 + 0.2, 0.3))   # True

Latihan

0/3 lulus

Jawaban diperiksa di server. Lulus berarti kamu memahami contohnya, bukan penilaian seluruh pekerjaanmu.

Latihan 1 dari 3

Baris assert (total == 15000, "total salah") dijalankan ketika total bernilai 12000. Apa yang terjadi?

Pilih satu jawaban

Catatanmu

Memuat catatan…

tersimpan otomatis, ikut tercetak · 0/4.000

Luluskan semua latihan dulu untuk menandai pelajaran ini selesai.

Lanjutkan ke