Pelajaran 12 dari 12
12. Debugging dan Testing Dasar
Debugging dan testing adalah keterampilan penting untuk memastikan kode berjalan dengan benar.
Debugging dengan pdb
# Python Debugger (pdb) import pdb def hitung_rata_rata(angka): pdb.set_trace() # Breakpoint total = sum(angka) return total / len(angka) data = [1, 2, 3, '4', 5] print(hitung_rata_rata(data))
Unit Testing dengan unittest
# Contoh unit test sederhana import unittest def tambah(a, b): return a + b class TestTambah(unittest.TestCase): def test_tambah_positif(self): self.assertEqual(tambah(2, 3), 5) def test_tambah_negatif(self): self.assertEqual(tambah(-1, -1), -2) def test_tambah_campuran(self): self.assertEqual(tambah(5, -3), 2) if __name__ == '__main__': unittest.main()
Assert Statement
# Assert untuk pengecekan sederhana def bagi(a, b): assert b != 0, "Pembagi tidak boleh nol" return a / b print(bagi(10, 2)) # Output: 5.0 print(bagi(10, 0)) # Akan raise AssertionError
Latihan:
Buat fungsi yang menghitung faktorial dan tulis unit test untuk menguji beberapa kasus (angka positif, nol, dan input invalid).
# Solusi contoh import unittest def faktorial(n): if not isinstance(n, int) or n < 0: raise ValueError("Input harus bilangan bulat positif") if n == 0: return 1 return n * faktorial(n-1) class TestFaktorial(unittest.TestCase): def test_faktorial_positif(self): self.assertEqual(faktorial(5), 120) def test_faktorial_nol(self): self.assertEqual(faktorial(0), 1) def test_faktorial_invalid(self): with self.assertRaises(ValueError): faktorial(-1) with self.assertRaises(ValueError): faktorial(3.5) if __name__ == '__main__': unittest.main()