Materi PWPB XI Penanganan Kesalahan Pada Program


PENANGANAN KESALAHAN PADA PROGRAM

 

KOMPETENSI INTI

3.      Memahami, menerapkan, menganalisis, dan mengevaluasi tentang pengetahuan faktual, konseptual, operasional dasar, dan metakognitif sesuai dengan bidang dan lingkup kerja Rekayasa Perangkat Lunak pada tingkat teknis, spesifik, detail, dan kompleks, berkenaan dengan ilmu pengetahuan, teknologi, seni, budaya, dan humaniora dalam konteks pengembangan potensi diri sebagai bagian dari keluarga, sekolah, dunia kerja, warga masyarakat nasional, regional, dan internasional.

4.      Melaksanakan tugas spesifik dengan menggunakan alat, informasi, dan prosedur kerja yang lazim dilakukan serta memecahkan masalah sesuai dengan bidang kerja Rekayasa Perangkat Lunak. Menampilkan kinerja di bawah bimbingan dengan mutu dan kuantitas yang terukur sesuai dengan standar kompetensi kerja. Menunjukkan keterampilan menalar, mengolah, dan menyaji secara efektif, kreatif, produktif, kritis, mandiri, kolaboratif, komunikatif, dan solutif dalam ranah abstrak terkait dengan pengembangan dari yang dipelajarinya di sekolah, serta mampu melaksanakan tugas spesifik di bawah pengawasan langsung. Menunjukkan keterampilan mempersepsi, kesiapan, meniru, membiasakan, gerak mahir, menjadikan gerak alami dala ranah konkret terkait dengan pengembangan dari yang dipelajarinya di sekolah serta mampu melaksanakan tugas spesifik di bawah pengawasan langsung.

 

KOMPETENSI DASAR

3.17   Menganalisis penanganan kesalahan pada program

4.17   Melakukan perbaikan penanganan kesalahan pada program

 

APERSEPSI

Dalam pemrograman PHP sering dijumpai eror karena ada kesalahan pada salah satu proses. Kesalahan tersebut bisa dikarenakan suatu komponen yang dibutuhkan program tidak ada atau syarat yang diminta tidak terpenuhi. Misalnya, sebuah program untuk membuka file, namun file yang dimaksud ternyata tidak ada maka otomatis browser akan menampilkan eror. Jika tampil pesan eror pada browser, program yang dibuat tersebut akan membuat celah yang membahayakan bagi keamanan program itu sendiri. Untuk itu, perlu dibuat sebuah penanganan eror yang menghentikan program dan menampilkan pesan eror sesuai kondisi yang terjadi.


 

MENGAMATI

Pelajarilah buku teks maupun sumber lain tentang operasi file dan penanganan kesalahan pada program dengan baik dan benar!

 

AYO PAHAMI

B.      Penanganan Kesalahan pada Program

Ketika membuat script dan aplikasi web, penanganan kesalahan adalah bagian penting. Jika sebuah kode program tidak memiliki prosedur kesalahan kode pada pengecekan, program tersebut akan membuka risiko keamanan. Default error handling di PHP sangat simpel, di mana pesan kesalahan dengan nama file, nomor baris, dan pesan yang menjelaskan kesalahan tersebut dikirim ke browser. Misalnya, dengan banyaknya simbol/kode dalam bahasa PHP, terdapat kemungkinan membuat kesalahan atau lupa. Secara umum, browser dan text editor akan memberi warning jika ada kesalahan penulisan selama prosedur error_reporting() diaktifkan ataupun mendapatkan error yang tidak sesuai dengan baris sesungguhnya. Hal tersebut dapat terjadi karena lupa memberikan kurung tutup pada saat mendeklarasikan kondisi IF..ELSE, looping FOR, WHILE, dan lain-lain.

1.      Konsep Penampilan Keselahan dalam Pemrograman

Seperti bahasa pemrograman lainnya, PHP juga memiliki mekanisme penanganan kesalahan dengan menampilkan pesan-pesan kesalahan sesuai dengan jenis kesalahannya. secara umum, sebuah kode PHP hanya membutuhkan waktu beberapa detik untuk menjalankan kode program. Apabila lebih dari waktu tersebut, dapat dipastikan terdapat kode yang salah, misalnya terjadinya infinity loop (kode perulangan yang tidak pernah berhenti).

a.      Undefined Variable

Pesan kesalahan jenis ini disebabkan oleh nama variable yang disebutkan pada baris yang ditunjuk tidak dikenal. Perhatikan potongan code berikut.


saat dieksekusi, berikut ini hasilnya.

Pada pesan eror di atas, terdapat nama variabel "name" yang tidak dikenal pada baris ke-4. Ada dua kemungkinan yang menjadi penyebabnya sebagai berikut.

1)      Belum deklarasi variabel dengan nama tersebut.

2)      Variabel sudah dideklarasi, tetapi terjadi kesalahan dalam menulis. Misalnya, mendeklarasikan $nama, tetapi yang dipanggil justru $name. Cara memperbaikinya adalah dengan menyamakan nama variabel yang dideklarasikan dengan yang disebut.

b.      Undefined Index

Pesan kesalahan jenis ini lebih terfokus pada index di baris yang bersangkutan. Secara mendasar, index sering dipakai sebagai array.


Informasi eror seperti gambar di atas dapat terjadi karena sering menggunakan pengiriman data lewat form HTML ke PHP. Berikut ini beberapa penyebab terjadinya eror tersebut.

1)      Atribut method atau method pada form HTML tidak sesuai dengan method yang disebutkan di PHP. Misalnya, di HTML membuat [form action="..." method="post"] tetapi di PHP justru  memanggilnya dengan perintah $_GET[...].

2)      Tidak adanya nama di tag-tag input yang akan dikirim. Hal tersebut harus diteliti ulang pada tag [input], [select], ataupun [textareal yang belum diberikan atribut name="…".

3)      Nama atribut di HTML berbeda dengan yang dipanggil di PHP. Jika sebuah coding di HTML membuat [input name="nim"], pada PHP membuat kode panggil $_POST['NIM']. Hal yang perlu dipahami adalah PHP menggunakan sistem Case Sensitive sehingga harus hati-hati dalam menggunakan besar kecilnya huruf yang digunakan.

c.       Undefined Constant

Notice Undefined Constant muncul ketika dl bagian yang seharusnya diberikan tanda petik (baik petik 1 atau petik 2), tetapi lupa mengisinya. Berikut ini aturan dalam penggunaan tanda petik.

1)      Petik 1 ( ‘ ) digunakan untuk mendefinisikan sebuah string maupun sebuah index. Misalnya pada echo 'komputer', atau $_POST[‘komputer’].

2)      Petik 2 ( “ ) fungsinya sama petik 1( ‘ ) , tetapi di dalam petik 2 tersebut masih bisa diisi variabel lainnya. Misalnya, echo "Nama saya adalah $nama".

3)      Tanpa petik digunakan untuk string yang biasanya menggunakan petik I ( ‘ ), tetapi sedang diapit oleh petik 2 ( “ ). Misalnya echo "nama saya adalah $_POST[nama]".

d.      Pesan error WARNING

Secara umum, pesan error notice di PHP hanya berupa peringatan dan script tetap dilanjutkan seperti biasa. Beberapa jenis eror dengan level penanganan lebih tinggi, di antaranya sebagai berikut.

1)      Pesan kesalahan: [nama fungsi] Expect at least (n) parameter

Pesan kesalahan tersebut biasanya muncul pada saat memanggil sebuah function, terlepas function tersebut buatan sendiri maupun function bawaan PHP. Fungsi explode() pada PHP seharusnya diinputkan minimal 2 parameter, tetapi hanya diinputkan l. Untuk mengatasi error warning tersebut, Anda harus menggunakan fungsi yang ada dengan baik dan benar.

2)      Pesan kesalahan: Warning mysql_fetch_array() expects parameter 1 to be resourcen dan Invalid Arguments Suplied for Foreach

Pesan eror jenis ini pada dasarnya berkaitan erat dengan database, baik menggunakan engine mysql maupun PDO. Dua eror peringatan tersebut bisa muncul hanya karena sebuah penyebab yang sama. yaitu SQL yang tidak valid. Cara memperbaikinya adalah dengan memastikan SQL inputan di perulangan while maupun foreach sudah benar. Perhatikan bentuk pesan eror berikut.

e.      Pesan Parse Error

Secara umum, pesan parse error dikategorikan sebagai berikut.

1)      Syntax Error

Jenis kesalahan yang paling sering ditemukan pada saat membuat program adalah kesalahan syntax error, di mana perintah (statement) yang diketikkan menyalahi aturan pengodean yang dimiliki oleh bahasa pemrograman yang digunakan. Syntax Error merupakan jenis kesalahan yang paling sering ditemui, tetapi juga pada umumnya paling mudah untuk ditanggulangi. Syntax Error cukup mudah diketahui dan diperbaiki jika bahasa pemrograman yang digunakan menunjukkan baris kesalahan dengan tepat dan menarnpilkan pesan kesalahan yang benar. Beberapa penyebab terjadinya pesan parse error, antara lain adanya kurung kurawal yang tidak ditutup, kutipan yang tidak ditutup, kurang titik koma, dan kelebihan atau kekurangan tanda kurung. Parse Error jenis ini dapat terjadi karena adanya kesalahan sintaks dalam script (bans coding) dan pesan kesalahan muncul pada output-nya ketika dijalankan. Dengan adanya pesan parse error, proses eksekusi script akan menghentikan. Ada banyak alasan ketika terjadinya parse error di PHP. Perhatikan contoh berikut.

Tidak adanya titik koma di baris kedua pada kode di atas akan mengakibatkan terjadinya parse error atau syntax error yang menghentikan eksekusi script.

2)      Unexpected End of File

Pesan eror jenis ini disebabkan oleh kurangnya tanda kurung tutup (biasanya kurung kurawal) yang lupa diberikan. Cara mengatasinya adalah dengan membuat coding dari awal atau mengeeek semua tanda kurung buka dan kurung tutup satu per satu. Perhatikan bentuk pesan eror berikut.

f.        Pesan Fata/ Error

Pesan eror jenis dapat diatasi dengan meneliti ulang semua coding yang ada, misalnya salah menyebutkan atau salah mengetik pada nama fungsi yang digunakan.

g.      Pesan Blank

Penyebab utama terjadinya blank error adalah kesalahan logika atau kesalahaan dalam membuat IF tanpa ELSE. Jadi, ketika menjalankan sebuah coding tiba-tiba terjadi masalah yang tidak diketahui, bahkan di bagian di coding sendiri juga membuat sebuah kondisi untuk mengantisipasi kesalahan tersebut, yang terjadi adalah pesan blank error

2.      Prosedur Program Penanganan Kesalahan

Sulit dibayangkan jika seorang web programmer dapat mengetikkan ratusan baris kode program tanpa ditemukan kesalahan pada saat dijalankan atau dikompilasi untuk pertama kalinya. Penyebabnya adalah hampir tidak ada aplikasi yang berjalan sempurna sebelum melewati berbagai rentetan kesalahan. Makin besar aplikasi yang dibuat, makin banyak kesalahan yang dapat timbul.

a.      Menangani Error pada PHP dengan Fungsi die()

Dari berbagai cara dan metode dalam menangani eror yang dimiliki oleh PHP, terdapat satu cara yang paling praktis dan simple, yaitu menggunakan fungsi die(). Caranya adalah dengan menyeleksi kondisi lalu, jika tidak terpenuhi dapat menaruh fungsi die(). Jika fungsi die() dieksekusi, program akan berhenti dan script program di bawahnya tidak akan dijalankan. Berikut ini bentuk penggunaan fungsi die().



Fungsi die() diletakkan pada kondisi jika fungsi file_exist() membalikkan nilai FALSE karena file tidak ada. Dengan fungsi die(), eksekusi script akan dihentikan dan kode program di bawahnya (baris ke-7 sampai akhir) tidak dijalankan.

b.      Menangani Error dengan Custom Error Handler dan Trigger Error

Guna menangani eror pada PHP dapat menggunakan fungsi Custom Error dam membuat Handler untuk menanganinya.

1)      Membuat Custom Error

Untuk membuat custom error digunakan aturan penulisan sebagai berikut.



Beberapa hal yang berhubungan dengan parameter dapat dilihat pada



2)      Membuat Custom Error

Berikut ini pembuatan custom error dengan coding.

3)      Mengeset Error Handler

Pengesetan Error Handler dapat menggunakan fungsi set_error_handler("Custom Error"). Berikut ini bentuk penulisan

Script Custom Error dan Set Error Handler.



c.       Menangani Error dengan Sistem Reporting Melalui E-mail

Selain menggunakan fungsi Custom Error dan membuat Handler cara dalam menangani eror adalah melaporkan eror tersebut yang akan dikirimkan melalui e-mail. Bentuk penulisan script membuat error reporting melalui e-mail adapat dilihat sebagai berikut.



 

 

MENGEKSPLORASI

Buatlah sebuah kelompok kemudian kumpulkan data tentang infinity loop (kode perulangan yang tidak pernah berhenti) terutama yang berkaitan dengan solusi penanganan kesalahannya!

 

 

MENGASOSIASIKAN DAN MENGOMUNIKASIKAN

·         Uraikan kembali informasi yang diperoleh tentang masalah prosedur program penanganan kesalahan terutama menangani eror pada PHP dengan fungsi die()!

·         Presentasikan kesimpulan masalah menangani eror dengan custom error handler dan trigger error terutama pada implementasinya!



Lihat Materi Versi PDF

Download Materi


Assessmen !

Klik Link Berikut Ini

Tidak ada komentar:

Posting Komentar

Thank you for visiting Edu High School. This comment is an Auto Answer from our system please wait if your comment needs to be replied to urgently.
Greetings from us Edu High School.