Dosen Pengampu : Prof. Dr. Suhartono, M.Kom

Lembaga : Universitas Islam Negeri Maulana Malik Ibrahim Malang

Fakultas : Sains dan Teknologi

Jurusan : Teknik Informatika

NIM : 210605110034

Sering kali fungsi atau sintaks yang kita tulis menghasilkan error sehingga output yang kita harapkan tidak terjadi. Debugging merupakan langkah untuk mengecek error yang terjadi. Debugging adalah proses mengidentifikasi dan menghapus bug atau error di dalam kode. Bug inilah menyebabkan sebuah aplikasi atau software tidak berjalan dengan semestinya. Misalnya, gagal login, error saat input data, disfungsi fitur, blue screen, dll.

Karena sistem pengkodean suatu program biasanya rumit dan kompleks, maka satu saja kesalahan kode dapat berpengaruh pada keseluruhan program. Tidak heran juga kalau debugging bisa memakan waktu lebih lama dibandingkan saat menulis program itu sendiri. Itu kenapa proses debug sangat penting dilakukan. Baik sebelum perilisan aplikasi maupun sesudahnya.

Untuk lebih memahami proses debugging, berikut penulis sajikan contoh error pada suatu fungsi dapat terjadi:

f1 <- function(x){
xsq <- x^2
xsqminus4 <- xsq - 4
print(xsqminus4)
log(xsqminus4-4) }
f1(6:1)
## [1] 32 21 12  5  0 -3
## Warning in log(xsqminus4 - 4): NaNs produced
## [1] 3.332205 2.833213 2.079442 0.000000      NaN      NaN

Untuk mengecek error yang terjadi dari sintaks tersebut, kita dapat menggunakan fungsi debug(). Pembaca tinggal memasukkan nama fungsi kedalam fungsi debug(). Fungsi tersebut akan secara otomatis akan menampilkan hasil samping dari pengaplikasian fungsi f1() untuk melihat sumber atau tahapan dimana error mulai muncul.

debug(f1)
f1(1:6)
## debugging in: f1(1:6)
## debug at <text>#1: {
##     xsq <- x^2
##     xsqminus4 <- xsq - 4
##     print(xsqminus4)
##     log(xsqminus4 - 4)
## }
## debug at <text>#2: xsq <- x^2
## debug at <text>#3: xsqminus4 <- xsq - 4
## debug at <text>#4: print(xsqminus4)
## [1] -3  0  5 12 21 32
## debug at <text>#5: log(xsqminus4 - 4)
## Warning in log(xsqminus4 - 4): NaNs produced
## exiting from: f1(1:6)
## [1]      NaN      NaN 0.000000 2.079442 2.833213 3.332205

Berdasarkan hasil debugging, NaN (missing value) muncul pada tahapan debug ke-4 (pembaca dapat melakukan enter terus menerus sampai proses debug selesai). Hal ini disebabkan karena terdapat nilai negatif pada objek xsqminu4-4 yang selanjutnya dilakukan transformasi logaritmik. Untuk menghentikan proses debugging pembaca dapat mengetikkan undebug(f1).

Referensi

https://bookdown.org/moh_rosidi2610/Metode_Numerik/dataviz.html#plotfunc

https://www.niagahoster.co.id/blog/debugging-adalah/