• Tidak ada hasil yang ditemukan

MENANGANI KESALAHAN. Pendahuluan. Macam-macam Kesalahan. Kesalahan Kaidah

N/A
N/A
Protected

Academic year: 2021

Membagikan "MENANGANI KESALAHAN. Pendahuluan. Macam-macam Kesalahan. Kesalahan Kaidah"

Copied!
12
0
0

Teks penuh

(1)

Serdiwansyah Nur Aisyah 1 nurwan_7@yahoo.co.id

MENANGANI KESALAHAN

Pendahuluan

Sebelum terlalu jauh mempelajari/menguasai pemrograman PHP. Pada kesempatan ini, Saya akan memperkenalkan berbagai cara menangani kesalahan, seperti mencegah kesalahan yang bertambah banyak, menghilangkan pesan kesalahan, dan juga cara mencari kesalahan.

Suatu kesalahan seringkali menyebabkan browser menampilkan pesan kesalahan yang akan membingunkan pemakai. Jadi alangkah baiknya kalau kesalahan-kesalahan yang dibangkitkan oleh PHP tidak tertampil di browser dan sebagai penggantinya Anda bisa mengatur sendiri pesan yang hendak disampaikan ke pemakai. Pesan kesalahan yang diberikan oleh PHP terkadang mengandung path berkas atau nama tabel data yang seharusnya bersifat rahasia (tidak boleh diketahui oleh pemakai).

Selain itu Anda juga dapat mengatur agar kalau sesuatu fungsi menghasilkan nilai False, maka pernyataan-pernyataan tertentu tidak dijalankan sehingga tidak menyebabkan kesalahan-kesalahan yang bersifat merambat.

Macam-macam Kesalahan

Secara prinsip, kesalahan dapat dikelompokkan menjadi tiga macam, yaitu: 1. Kesalahan kaidah (sintax error),

2. Kesalahan semantik, dan 3. Kesalahan nalar.

Kesalahan Kaidah

Kesalahan kaidah disebabkan oleh adanya kesalahan dalam menuliskan kaidah perintah. Sebagai contoh, skrip berikut akan membuat PHP menampilkan kesalahan sebagaimana diperlihatkan Gambar 1.

(2)

Serdiwansyah Nur Aisyah 2 nurwan_7@yahoo.co.id

Gambar 1 Kesalahan karena salah kaidah

Penulisan:

$x = ($x + 6 * 7;

Menimbulkan kesalahan, karena tanda (semestingan ditutup dengan tanda). Misalnya: $x = ($x + 6) * 7;

Kesalahan seperti itu terdeteksi sewaktu proses pengompilasian (diketahui oleh parser).

Penyebab utama kesalahan kaidah biasanya berupa salah satu dari hal berikut ini: PHP4 sampai PHP versi terbaru akan membuat seluruh kode diperiksa oleh parser terlebih dulu sebelum dijalankan. Prosesnya disebut dengan parsing atau kompilasi. Itulah sebabnya kesalahan kaidah juga disebut kesalahan kompilasi.

(3)

Serdiwansyah Nur Aisyah 3 nurwan_7@yahoo.co.id

 Salah ketik.

Misalnya print ditulis menjadi prin.

 Konstruksi tidak lengkap.

Misalnya kurang tanda } sebagaimana pada contoh skrip salah2.php.

 Kurang tanda titik koma di akhir suatu pernyataan. Contoh:

print(“Pemrograman”) print(“PHP”);

Tampak bahwa print pertama tidak diakhiri dengan titik koma.

 Suatu literal string belum diakhiri dengan tanda petik ganda (“). Contoh:

print(“PHP); Yang benar adalah: print(“PHP”);

Kesalahan kaidah harus segera dibetulkan supaya kode bisa dijalankan.

Kesalahan Semantik

Kesalahan semantik biasanya juga disebut kesalahan sewaktu eksekusi (runtime error). Kesalahan ini berlangsung ketika kode dijalankan. Sebagaimana contoh, perhatikan skrip berikut:

(4)

Serdiwansyah Nur Aisyah 4 nurwan_7@yahoo.co.id

Secara kaidah, tidak ada yang salah. Namun, jiika Anda memanggil skrip di atas maka akan terjadi kesalahan seperti berikut:

Gambar 2 Kesalahan hasil skrip salah2.php

Kesalahan di atas tak akan terjadi seandainya berkas takada terdapat pada direktori kerja. Tampak bahwa kesalahan pada baris 6 terjadi karena kesalahan pada baris sebelumnya (baris 5). Untuk mengatasi kesalahan merambat seperti itu, Anda bisa menuliskan kode seperti berikut:

Bila Anda mencoba memanggil skrip di atas, Anda akan menjumpai kesalahan yang lebih sedikit dibandingkan dengan contoh sebelumnya.

(5)

Serdiwansyah Nur Aisyah 5 nurwan_7@yahoo.co.id

Gambar 3 Efek pencegahan kesalahan yang merambat

Agar pesan seperti diatas juga tidak muncul, Anda bisa melakukan penanganan dengan memeriksa berkas takada terlebih dulu, sebagaimana diperlihatkan pada skrip berikut:

(6)

Serdiwansyah Nur Aisyah 6 nurwan_7@yahoo.co.id

Gambar 4 Pesan kesalahan PHP tidak tertampil

Alternatif lain yaitu dengan menambahkan @ di depan fopen seperti pada skrip berikut:

Tanda @ digunakan untuk menghilangkan pesan yan dihasilkan oleh fopen kalau terjadi suatu kesalahan. Secara lengkap, pernyataan:

$fp = @fopen("takada", "r") or

die("Berkas takada tidak ditemukan");

dimaksudkan untuk membuka berkas takada. Sekiranya berhasil dibuka, fungsi fopen akan meletakkan pointer ke variabel fp. Namun, kalau fopen gagal membuka berkas takada, maka die akan dijalankan dan skrip berakhir.

(7)

Serdiwansyah Nur Aisyah 7 nurwan_7@yahoo.co.id

Kesalahan Nalar merupakan jenis kesalahan yang kadangkala sulit untuk mencari penyebabnya. Kesalahan ini tidak menimbulkan pesan kesalahan, tetapi memberikan hasil yang keliru. Sebagai contoh, Anda bermaksud meghitung pembayaran yang dipotong sebesar 10% terhadap total pembelian. Kode yang Anda tuliskan misalnya sebagai berikut:

Jika Anda panggil skrip di atas, Anda akan memperoleh hasilnya, walau salah. Penyebab kesalahan di atas adalah karena logika perhitungan pembayaran tidak benar. Seharusnya pernyataan:

$pembayaran = $pembelian - 10 * $pembelian; ditulis menjadi

$pembayaran = $pembelian – 10/100 * $pembelian; Atau

$pembayaran = $pembelian – 0.1 * $pembelian;

Pada program yang kompleks, kesalahan seperti ini terkadang sulit untuk dideteksi. Untuk mencari penyebab kesalahan seperti itu, biasanya dilakukan dengan menambahkan pernyataan print. Misalnya terdapat skrip seperti berikut:

(8)

Serdiwansyah Nur Aisyah 8 nurwan_7@yahoo.co.id

Bila diketahui bahwa hasil akhir (gaji bersih) salah, maka Anda bisa menelusuri penyebab kesalahan dengan menambahkan beberapa print. Sebagai contoh, Anda bisa menambahkan sejumlah print pada posisi tertentu seperti berikut:

Seperti pada gambar di atas, pada baris skrip 8 dan 12 merupakan pernyataan-pernyataan print yang ditambahkan.

(9)

Serdiwansyah Nur Aisyah 9 nurwan_7@yahoo.co.id

Pesan Kesalahan PHP

Kalau Anda memperhatikan, pesan kesalahan PHP mempunyai pola seperi berikut: Level kesalahan: pesan_kesalahan nama_berkas baris_kesalahan

Level kesalahan menyatakan tingkat kesalahan. Beberapa di antara level pesan kesalahan berupa:

Parse error, menyatakan kesalahan kaidah. Pada PHP3, kesalahan kaidah bisa terjadi setelah pernyataan-pernyataan yang benar dieksekusi. Pada PHP4, bila ada kesalahan sintaks, tak satupun pernyataan akan dijalankan.

Fatal Error, disebabkan kesalahan semantik yang menyebabkan PHP segera menghentikan eksekusi program.

Warning, akan membat kesalahan ditampilkan, tetapi pengeksekusian akan tetap dilakukan.

Notice

Pesan-pesan kesalahan sesungguhnya dapat diatur agar tidak tampil. Hal ini dapat dikerjakan dengan menggunakan fungsi error_reporting yang mempunyai format pemanggilan sebagai berikut:

error_reporting([level]);

bila level kesalahan tidak disebutkan, fungsi ini memberikan nilai balik berupa bilangan bulat yang menyatakan level-level kesalahan yang akan ditampikan sekiranya kesalahan terjadi. Adapun argument fungsi ini dapat berupa nilai level pesan kesalahan yang akan ditampilkan sekiranya kesalahan tersebut terjadi. Tabel 1 memperlihatkan nilai pesan kesalahan berserta nama konstantanya.

Tabel 1 Level kesalahan

Level Kesalahan Konstanta Kesalahan

1 E_ERROR Fatal error

2 E_WARNING Warning

4 E_PARSER Parse error

8 E_NOTICE Notice

Untuk mematikan semua penampilan pesan kesalahan, Anda bisa memanggil:

Beberapa kemungkinan nilai untuk mengatur error_reporting dapat dilihat pada PHP manual.

(10)

Serdiwansyah Nur Aisyah 10 nurwan_7@yahoo.co.id

error_reporting(0);

untuk menghidupkan penampilan semua kesalahan, gunakan: error_reporting(E_ALL);

Untuk menampilkan pesan kesalahan yang tergolong sebagai parser error dan warning, Anda bisa memanggil:

error_reporting(E_PARSER | E_WARNING); Skrip berikut merupakan pengembangan dari skrip1.php.

Bila skrip dipanggil akan diperoleh hasil kosong. Tak ada peringatan yang ditampilkan (bandingkan dengan hasil pada gambar 1).

(11)

Serdiwansyah Nur Aisyah 11 nurwan_7@yahoo.co.id

 Pada proses pembuatan skrip, sebaiknya Anda jangan mematikan fasilitas pelaporan kesalahan karena akan menyulitkan Anda sendiri dalam melakukan pencarian kesalahan.

 Bila Anda ingin mengatur level pesan kesalahan yang akan tertampil untuk semua skrip, Anda bisa mengaturnya melalui direktif error_reporting php.ini

(12)

Serdiwansyah Nur Aisyah 12 nurwan_7@yahoo.co.id

Referensi

Beberapa buku yang saya pakai sebagai referensi dalam membuat tutorial pembelajaran ini adalah:

Kadir, Abdul, Dasar Pemrograman Web Dinamis Menggunakan PHP, Penerbiat Andi, Yogyakarta, 2002

Gambar

Gambar 1 Kesalahan karena salah kaidah
Gambar 2 Kesalahan hasil skrip salah2.php
Gambar 3 Efek pencegahan kesalahan yang merambat
Gambar 4 Pesan kesalahan PHP tidak tertampil
+2

Referensi

Dokumen terkait

Berdasarkan hasil analisa data yang diperoleh saat melakukan hand hygiene diperoleh nilai kepatuhan para petugas rumah sakit dalam kepatuhan mereka melakukan cuci

Puji syukur penulis panjatkan kepada Tuhan Yang Maha Esa atas berkat dan rahmat-Nya lah penulisan skripsi dengan judul “AUDIT OPERASIONAL PROSES PRODUKSI DAN KESELAMATAN

Metode perancangan Tugas Akhir menjelaskan tentang sejarah singkat dan perkenalan seni tari modern baru yang di sajikan dalam unsur Desain Komunikasi Visual dengan bentuk

Dengan Peraturan Bupati ini, Tarif Retribusi Golongan Perizinan Tertentu sebagaimana dimaksud dalam Pasal 2 Peraturan Daerah Kabupaten Lombok Timur Nomor 13 tahun 2010

Bagi Bapak/Ibu dan Saudara/i yang baru pertama kali mengikuti kegiatan ibadah dalam persekutuan di Jemaat GPIB CINERE - Depok dan berkerinduan menjadi anggota jemaat, agar

Seperti pada alat-alat bukti yang lain, maka seumpama suatu Visum et Repertum dibuat baik oleh dokter ahli Kedokteran Kehakiman atau oleh dokter bukan ahli,

Pejabat eselon II yang secara fungsional bertanggung jawab di bidang kepegawaian yang bersangkutan kepada Sekretaris Jenderal Departemen, Sekretaris Jenderal Lembaga Tinggi

Hasil penelitian menunjukkan bahwa: (1) hasil belajar siswa yang diterapkan model pembelajaran inquiry training berbasis multimedia lectora lebih baik dibandingkan model