Cara Menghilangkan Pesan Notice, Warning dan deprecated di PHP

Beberapa hal yang paling sering ditanyakan pengunjung blog ini adalah

1. “mas, program ga jalan?” atau “mas, programmnya error parse-error-syntax-error-unexpected-end-of-file..”
2. “mas, program jalan sih, tapi muncul notice…?”
3. “Mas kok saat di coba ada warningnya ya?”
4. “Mas, program jalan sih, tapi kok ada pesan deprecated?”.

Empat pertanyaan diatas adalah pertanyaan yang paling sering ditanyakan di komentar tutorial. Apakah anda salahsatunya? Hal yang perlu diketahui adalah program yang saya buat entah itu free code atau tutorial sudah di uji bahwa program itu berjalan dengan benar. Namun karena perbedaan sistem operasi serta perbedaan versi PHP dan konfigurasinya maka ketika anda coba, munculah 4 jenis error seperti yang ada dipertanyaan. Empat alasan itulah yang membuat saya menulis artikel ini, agar di kemudian hari jika ada yang bertanya seperti ini cukup saya beri referensi artikel ini saja tanpa harus bolak balik memberi tahu berkali kali.

“mas program ga jalan?”

Jika tutorial yang saya buat sama sekali tidak berjalan dan tidak kadang nge-blank putih di webnya, maka kemungkinan terbesar adalah karena short_open_tag off di php yang anda pakai, entah anda pakai Linux, Webhosting, XAMPP, Wamp atau pake yang lain, asal pakai php, solusinya aktifkan short_open_tag di php.ini.

baca artikel saya yang lain

  1. Mengenal File konfigurasi PHP, baca pada bagian short_open_tag.
  2. Mengatasi error di php

“mas, program jalan sih, tapi muncul notice….kenapa ya?”

notice adalah salah satu pesan error dari php yang menandakan kode yang kita tulis tidak mengikuti standar yang disarankan oleh php. Penyebab lain adalah sebuah variable dideklarasikan namun belum diberi nilai.
Cara termudah adalah dengan menambahkan satu bari kode diawal file php tersebut.

<?php
error_reporting(0);
//kode php yang lain
.....
//end of code 
?>

Kekurangan cara ini adalah anda akan kesulitan jika terjadi syntax error atau fatal error yang disebabkan kesalahan syntax atau logika program. Bagaimana menganalisa terjadi error, cara termudah ganti error_reporting(0) menjadi error_reporting(1). Jadi kesimpulan dasarnya saat koding dan debuging nilai error_reporting=1 dan saat website sudah live error_reporting=0.

Cara lain meliat error adalah dengan membaca error_log. Error_Log di webhosting biasanya ada di folder public_html. Jika kita masih dalam development menggunakan XAMPP, letak eror ini ada di folder XAMPP\apache\logs\error.log.

“Mas kok saat di coba ada warningnya ya?”

Warning sering biasanya saat melakukan query msyql dengan fungsi mysql_query(). Cara mengatasinya bisa dibaca di artikel saya yang berjudul
mengatasi error mysql_query(). Selain karena query mysql, kadang warning juga muncul saat php gagal mengakses file. Untuk hal ini pembahasannya panjang. Intinya perbaiki cara kodingnya, terutama membiasakan dengan gaya koding try....catch.. sehingga saat gagal diakses tidak muncul pesan warning,namun muncul pesan yang kita definisikan sendiri. misalkan kita buat dialogbox, maaf file gagal diakses.

“Mas, program jalan sih, tapi kok ada pesan deprecated?”.

Error keempat ini disebabkan karena kita memakai fungsi yang sudah usang alias ketinggalan jaman. Fungsi seperti mysql_querysession_register() dan fungsi lain yang dinyatakan usang, sebaiknya tidak dipakai lagi.PHP terbaru biasanya sudah mengganti fungsi deprecated dengan fungsi baru yang lebih aman atau lebih cepat. Contohnya mysql_query(), fungsi ini sudah ada sejak lebih dari 10 tahun lalu. Selain itu, jika anda membaca buku terbitan lama, maka makin banyak pesan deprecated yang muncul dilayar. Cara termudah untuk mengatasi deprecated adalah menggunakan cara pertama yaitu menambahkan error_reporting(0); di awal file.

Cara yang lebih bagus, gunakan fungsi fungsi terbaru. sebagai contoh untuk akses mysql sebaiknya gunakan msyqli atau PDO. tutorial untuk pemrograman PHP Mysql dengan teknik mysqli dan PDO bisa anda baca di artikel saya dengan judul:


  1. Tutorial PHP dan mySQLi


  2. Pemrograman Database PHP dengan PDO

Semoga, setelah ini 4 pertanyaan diatas tidak lagi muncul di komentar. Selamat belajar PHP!, Happy Coding!

Mengenal Alternatif Syntax di PHP

PHP merupakan bahasa yang flexible. Flexibilatas ini bisa dilihat dari Metode pemrogramannya ataupun dari syntaxnya. Dilihat dari cara membuat program, kita bisa menggunakan pendekatan OOP atau prosedural. Dilihat dari syntax pembukanya, kita bisa menggunakan short open tag dan standar tag. Dilihat dari struktur kontrolnya ada standar syntax, short syntax dan alternatif syntax. Agar pembahasan tidak melebar, saya akan menjelaskan hanya dari sisi syntax saja.

Short open tag

Short open tag adalah syntax pendek yang disediakan oleh php. berikut ini adalah contoh syntax standar dan syntax short open tag.

//contoh stndar syntax 
<?php
echo " selamat datang di PHP";
?>

//contoh short open tag 
<?
echo " selamat datang di PHP";
?>

Saat ini, kebanyakan seting PHP Menonaktifkan short open tag. Jadi sangat direkomendasikan gunakan standar tag saja mengingat walaupun syntaxnya panjang sedikit. Saya dulu juga sering menggunakan Short open tag namun sekarang tidak lagi karena sering bermasalah di server ataupun di XAMPP terbaru. Jika anda mencoba tutorial yang ditulis ditahun tahun 2014 kebawah, maka anda akan menemukan syntax code yang saya buat menggunakan short open tag.

Cara ini kadang mengakibatkan program tidak jalan, program mengalami pesan error unxexpected end of line. Untuk menghilangkan error tesebut, ganti setiap <? ?> dengan <?php ….?> . Cara lain namun tidak saya rekomendasikan adalah aktifkan short_open_tag di PHP.ini. Petunjuk cara mengaktifkannya bisa dibaca disini.

Short syntax

short syntax adalah syntax alternatif dari kode if...else jika hanya punya dua kondisi. contoh syntax if yang dijadikan short syntax.

//standar if 
$status="";
if($nilai>50)
{
$status= " lulus ";
}
else
{
$status="gagal";
}
//contoh short syntax dari kode diatas adalah 
$status=$nilai > 50 ? 'lulus' : 'gagal';


Contoh penggunaan short syntax ini bisa anda baca di sini.

Alternatif syntax di Struktur Control PHP

alternatis syntax disini adalah menggantikan kurung buka tutup dengan titik dua dan kata penutup seperti endif,endwhile,endfor dsb.

//Kita akan mencoba menggunakan alternatif syntax 
//untuk if else untuk kode if else nilai diatas. 
if($nilai>50):
$status="lulus";
else:
$status="gagal";
endif;

//berikut ini contoh perulangan loop dengan for 

//standar syntax
for ($i=1;i<10;i++)
{
echo " nomor ".$i;
}

//alternatif syntax  for
for($i=1;i<10;i++):
echo "nomor ".$i;
endfor;

//Contoh alternatif while 

///ceritanya habis ambil data dari msyql 
while($data=mysql_fetch_object($res))
{
echo $data->nama;
}
//alternatif syntax untuk while
while($data=mysql_fetch_object($res)):
echo $data->nama;
endwhile;

Penjelasan alternatif syntax bisa dibaca dokumentasi resmi php.

Mengapa kita perlu alternatif syntax?

Alasan utama adalah memahami gaya pemrograman PHP, terutama memahami kode yang ditulis oleh programer lain. Jika anda perogramer wordpress atau plugin wordpress, anda akan sering melihat alternatif syntax seperti ini. Selain itu menggunakan alternatif syntax membuat kode lebih mudah dibaca, terutam jika di letakan di Nested control. Saya beri contoh berikut ini.

anggaplah kita ingin menampilkan nilai dari database. jika nilai kurang dari 50, maka status tidak lulus, jika > 50 berarti lulus. Berikut ini adalah alternatif syntaxnya.

while($data=mysql_fetch_object($res)):
$nilai=$data->nilai;
    if(nilai>80):
          echo "Lulus memuaskan";
    elseif(nilai>50):
         echo "lulus standar ":
    elseif($nilai>0):
         echo "Tidak lulus ";
    endif;
endwhile;

Perhatikan penulisan kode diatas. Bukankah kode sekarang lebih mudah dibaca karena tidak ada lagi kurang buka tutup? . Anda bebas menggunakan syntax yang mana, manun secara pribadi saya sekarang lebih suka dengan alternatif syntax ini karena mudah dibaca. Semoga bermanfaat!