Fungsi var_dump(), Senjata Para Master PHP Menghadapi Error

Sebenarnya niat saya menulis artikel ini untuk share pengalaman saja dengan teman-teman semua tentang trik sederhana namun masih jarang dipakai oleh programmer pemula dalam mengembangkan aplikasi kebanggaannya. Walaupun sangat sederhana namun kita perlu tau apa dan bagaimana menangani error yang sering membuat kita pusing tujuh keliling saat program kita tidak berjalan sesuai yg kita harapkan, padahal solusinya ternyata cukup mudah.


Tentang Error di PHP
Syntax Error : Ini error yang relatif mudah kita atasi, error ini sering kita dapatkan saat kita salah ketik, lupa titik koma, lupa mendeklarasikan variabel dan semacamnya. Error ini terjadi karena compiler tidak mengenali bagian sourcecode atau menemukan codingan yang tidak sesuai dengan struktur sintaks yang seharusnya. Misalnya kita mendapatkan error :
Parse error: syntax error, unexpected T_ECHO in /var/www/andi/example.php on line 3
dari pesan error itu dengan mudah kita tau ternyata kita lupa memberi titik koma ( ; ) di baris sebelum baris 3.

Semantic Error : Nah, error ini yang sering bikin kita pusing dan tidak jarang membuat kita putus asa karena relatif susah diatasi. Error semantik tidak menampilkan pesan error seperti pada sintaks error karena program kita berjalan lancar tanpa hambatan namun hasil atau output yang keluar tidak sesuai dengan harapan kita. Jika kita bertemu dengan error semacam ini maka tidak perlu khawatir karena seperti kata pepatah "dimana ada kemauan disitu ada jalan". Salah satu senjata yang akan kita gunakan adalah fungsi var_dump();


Apa itu var_dump?
Secara sederhana fungsi var_dump() mirip dengan echo, sama-sama bisa menampilkan isi dari variabel, bedanya var_dump() bisa menampilkan informasi terstruktur dari suatu ekspresi baik berupa variabel, object, array, dan lainnya.

Lalu kalau var_dump hampir sama dengan echo kenapa tidak pakai echo saja? Jawabannya sederhana, karena echo tidak bisa memberikan apa yang kita butuhkan saat debug aplikasi. Masih penasaran juga? mari kita perhatikan contoh berikut ini:

Contoh 1 :
<?php
$data = array('apel', 'manggis', 'jeruk', 'durian');
echo $data;
?>

Outputnya:
Array

mari kita ubah sedikit menjadi :
<?php
$data = array('apel', 'manggis', 'jeruk', 'durian');
var_dump($data);
?>

Outputnya :
array(4) { [0]=> string(4) "apel" [1]=> string(7) "manggis" [2]=> string(5) "jeruk" [3]=> string(6) "durian" }

Nah, sudah tau kan bedanya? hmmm tapi sepertinya output masih tidak rapi dan tidak mudah dibaca, mari kita tambahi tag <pre> yang mengapit var_dump(). tag <pre> berguna untuk membuat teks yg diapit tampil apa adanya seperti teks biasa di notepad.

<?php
$data = array('apel', 'manggis', 'jeruk', 'durian');
echo '<pre>';
var_dump($data);
echo '</pre>';
?>
Outputnya:
array(4) {
  [0]=>
  string(4) "apel"
  [1]=>
  string(7) "manggis"
  [2]=>
  string(5) "jeruk"
  [3]=>
  string(6) "durian"
}

Nah, contoh berikutnya kita akan belajar menangani error yang dibilang cukup bikin bingung kita-kita yang masih pemula alias newbie kata orang madura :v

Contoh 2:
<?php
$a = 2;
$b = 4 * 0.5;

if ($a === $b) {
    echo 'A sama dengan B';
} else {
    echo 'A tidak sama dengan B';
}
?>

Kalau dilihat sekilas maka outputnya :
A sama dengan B

tapi tunggu dulu, output program diatas adalah :
A tidak sama dengan B

padahal kan
4 * 0.5 = 2

kenapa $a tidak sama dengan $b?
Mari kita cek dengan fungsi var_dump()

<?php
$a = 2;
$b = 4 * 0.5;

var_dump($a);

var_dump($b);

var_dump($a === $b);

if ($a === $b) {
    echo 'A sama dengan B';
} else {
    echo 'A tidak sama dengan B';
}
?>

Output:
int(2)
float(2)
bool(false)
A tidak sama dengan B

Ternyata dari output di atas kita jadi tau ternyata variabel $a tipe datanya integer sedangkan variabel $b tipe datanya float sehingga jika kita bandingkan dengan operator perbandingan === hasilnya false karena operator perbandingan tersebut selain membandingkan value juga membandingkan tipe datanya apakah sama atau tidak.

Untuk memperbaikinya bisa dengan mengganti operator perbandingan === menjadi == saja, contoh :
<?php
$a = 2;
$b = 4 * 0.5;

if ($a == $b) {
    echo 'A sama dengan B';
} else {
    echo 'A tidak sama dengan B';
}
?>

Output:
A sama dengan B

Mungkin cukup sekian, selebihnya silakan teman-teman meng-explore sendiri contoh-contoh yang lain. Akhirnya saya tunggu kritik dan sarannya, Salam Blogger Madura.

BAGIKAN KE:

3 komentar:

  1. Hahaha.. ternyata itu ya Kang manafaat vardum.. biasa baca di php.net tapi ora pham blaz.. yaes, pakai echo kalau buat bux..hehehe..

    Suwun Kang..
    asanoer.com

    BalasHapus
  2. Kebetulan lagi belajar beginian.. tks pak

    BalasHapus