Solusi Peringatan "Notice: Undefined offset: N" pada PHP - Elang Sakti
Download Ebook Belajar Arduino PDF, Arduino untuk pemula
Jasa Pembuatan Program Arduino, pemrograman Arduino
# Hack Your Skills! to be Professional Mechatronics

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

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

Written by ElangSakti
Solusi Peringatan "Notice: Undefined offset: N" pada PHP
Bahasan: Pesan "Notice" merupakan pesan peringatan (Warning) yang muncul akibat adanya bug pada script php yang kita buat. Walaupun pesan...
Published at Sabtu, 13 April 2013, Updated at Sabtu, 13 April 2013
Reviewed by dr. on
Rating: 4.7

7 komentar :

  1. Terimakasih artikelnya sangat membantu :)

    BalasHapus
  2. Wah, ternyata begitu ya bro..
    Sangat membantu artikelnya.
    Cuma saya masih bingung bro.
    Boleh nggak saya minta emailnya biar saya coba kirimin script yang saya buat. Kalo berkenan. Saya buat email untk sign up newsletter, nah selalu muncul Undefine Offset = 1.
    Ini email saya bro: simri_n@yahoo.com
    Thanks sebelumnya

    BalasHapus
  3. penjelasan artikel sangat membantu, makasih bro. Sukses selalu.

    BalasHapus
  4. dari beberapa situs. ini yang terbaik cara menjelaskannya. yaitu beangkat dari kemungkinan error.., luar biasa..!

    BalasHapus
  5. penjelasan artikel sangat membantu, makasih bro. Sukses selalu.

    BalasHapus
  6. Boleh minta variabel asli error_reportingnya saya terlanjur diubah

    BalasHapus