Hack Your Skills! to be Professional Mechatronics

Solusi Peringatan "Notice: Undefined offset: N" pada PHP

No comments

Pesan "Notice" merupakan pesan peringatan (Warning) yang muncul akibat adanya bug pada script php yang kita buat. Walaupun pesan tersebut muncul, script php tetap akan berjalan sebagaimana mestinya. Jadi pesan tersebut merupakan peringatan bahwa kita dianjurkan untuk menjadi programmer yang baik untuk menerapkan sintaks dan logika bahasa pemrograman sesuai aturan. :)

Pesan "Notice: Undefined offset: N", dimana N adalah angka, merupakan pesan peringatan yang biasa muncul ketika kita bermain-main dengan data array. Pesan tersebut muncul ketika posisi array yang kita tunjuk tidak ada isinya atau belum diinisialisasi. Perhatikan contoh berikut :

//script 1
$a=array();
echo $a[1];

//output
Notice: Undefined offset:  1 in Command line code on line 2

//script 2
$a=array('a','b');
echo $a[1];

//output
b

//script 3
$a=array('a','b');
echo $a[2];

//output
Notice: Undefined offset:  2 in Command line code on line 1

Dari ketiga contoh script di atas, peringatan Notice akan muncul ketika meminta nilai dari posisi array yang belum ada isinya. Misal contoh pertama, kita hanya membuat variabel array 'a' tapi belum diisi, kemudian kita minta data pada posisi ke 1 untuk ditampilkan, maka akan muncul peringatan. Kemudian pada script yang ketiga, kita hanya punya 2 data yaitu pada posisi ke 0 dan 1 ('a' dan 'b'), akan tetapi kita minta posisi ke 2, maka juga akan muncul error.

SOLUSI

Solusi untuk menghilangkan peringatan ini ada dua cara, pertama kita nonaktifkan saja pesan peringatannya. Walaupun ada peringatan, toh script kita tetap bisa jalan dengan normal. Cara yang kedua kita perbaiki scriptnya, caranya adalah memeriksa terlebih dahulu apakah posisi array yang kita minta sudah ada atau sudah diset apa belum, misal dengan perintah if(isset(array[posisi])).

Cara yang pertama, kita modifikasi file php.ini. File ini merupakan konfigurasi untuk php, biasanya jadi satu di dalam folder instalasi php. Di dalam file tersebut ada tulisan "error_reporting" tanpa ada tanda titik koma ';' di depannya. Kemudian di belakang tulisan tersebut biasanya ada tulisan "E_ALL", dll. Untuk menonaktigkan pesan ini kita ganti baris tersebut dengan
error_reporting = E_ALL & ~E_NOTICE

Penting!! Jangan lupa setelah menyimpan perubahan file php.ini tersebut kita harus merestart Web Servernya (misal Apache). Jika web server belum di restart, perubahan tersebut tidak akan berefek.

Cara yang kedua, menyisipkan script isset() untuk memeriksa apakah data yang kita minta dari array ada isinya apa belum. Berikut contoh modifikasi dari script di atas.
//script 1
$a=array();
if(isset($a[1])) echo $a[1];

//output
(kosong)

//script 2
$a=array('a','b');
echo $a[1];

//output
b

//script 3
$a=array('a','b');
if(isset($a[2])) echo $a[2];

//output
(kosong)

Nah, begitulah kira-kira penjelasan singkatnya. :)

Karena tulisan ini dipicu oleh pertanyaan mas 'adpermana' pada artikel Implementasi KMP di PHP, maka modifikasi script kmp.php yang sudah tidak muncul peringatan "Notice" bisa dicek di Modifikasi Core Algoritma Knuth-Morris-Pratt .
Referensi tentang pemrograman komputer, jaringan, elektronika, dan materi lainnya yang mungkin bisa menginspirasi tentang ide penelitian, bisa dicek di Kumpulan Materi Algoritma dan Pemrograman Komputer dan Kumpulan Teori dan Rangkaian Elektronika.


Klik tombol di bawah ini untuk membagikan ke temen-temen lainnya...

No comments :

Post a Comment