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).