Dosen Pengampu : Prof. Dr. Suhartono, M.Kom
Lembaga : Universitas Islam Negeri Maulana Malik Ibrahim Malang
Jurusan : Teknik Informatika
Debugging adalah proses mendeteksi dan menghapus bug atau potential error dalam kode yang dapat menyebabkan sistem tidak dapat berfungsi dengan baik atau crash. Bug sendiri berarti cacat atau kesalahan pada suatu program yang menyebabkan hasil yang tidak sesuai atau tidak terduga.
Biasanya, bug muncul karena adanya kesalahan yang dibuat dari desain program dan source code yang digunakan oleh programmer. Dengan proses debugging ini, maka programmer atau developer akan memastikan bahwa sistem terbebas dari bug sehingga dapat berjalan sesuai dengan spesifikasi yang sudah ditetapkan atau diinginkan.
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. 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).
https://bookdown.org/moh_rosidi2610/Metode_Numerik/programmingandfunction.html\#loopapply
Bloomfield, V.A. 2014. Using R for Numerical Analysis in Science and Engineering. CRC Press
Primartha, R. 2018. Belajar Machine Learning Teori dan Praktik. Penerbit Informatika : Bandung.
Rosadi,D. 2016. Analisis Statistika dengan R. Gadjah Mada University Press: Yogyakarta.
https://www.logique.co.id/blog/2020/09/23/apa-itu-debugging/