Atasi Error PHP! Belajar Debugging dan Penanganan Kesalahan untuk Pemula (Part 15)

Rifqi An Rifqi An
Maret 09, 2026

Pernah gak sih lagi asyik-asyiknya ngoding, tiba-tiba layar monitor penuh tulisan merah yang bikin jantung copot? Yap, itu dia, sang musuh bebuyutan para programmer: ERROR! Jangan khawatir, Bro & Sis! Di Part 15 dari seri belajar PHP kita ini, kita bakal kupas tuntas cara menaklukkan bug dan error PHP yang suka bikin kepala berasap. Siap-siap jadi detektif kode, karena kita akan belajar debugging dan penanganan kesalahan kayak profesional!

Daftar Isi

Apa Itu Error (dan Kenapa Dia Bikin Kita Pusing)?

Oke, biar kita satu frekuensi dulu. Error itu bukan kutukan, kok. Dia cuma sinyal dari PHP yang bilang, "Hei, ada yang salah nih di kode kamu!" Bisa karena salah ketik (human error paling umum), logika yang keliru, atau bahkan salah paham sama aturan main si PHP itu sendiri.

Meskipun kadang bikin pengen banting keyboard, error sebenarnya adalah teman. Dia nunjukkin di mana letak masalahnya, jadi kita bisa benerin. Bayangin kalau gak ada error, program kamu tiba-tiba gak jalan tanpa notifikasi, kan lebih horor?

Mengenali Jenis-Jenis Error PHP

PHP itu baik, dia ngasih tahu jenis-jenis kesalahannya. Dengan tahu jenisnya, kita bisa lebih gampang nyari solusinya. Ini dia beberapa yang paling sering nongol:

1. Parse Error (Syntax Error)

Ini nih yang paling sering muncul di awal-awal belajar ngoding. Biasanya gara-gara kita lupa titik koma (;), salah tutup kurung, atau ada tanda kutip yang jomblo. Intinya, kode kita gak sesuai sama kaidah tata bahasa PHP. Kompilasi gagal deh.


<?php
echo "Halo dunia" // Lupa titik koma di sini!
echo "Apa kabar";
?>

Outputnya kira-kira gini:


Parse error: syntax error, unexpected 'echo' (T_ECHO) in /path/to/your/file.php on line 3

Jelas banget kan, PHP bilang ada yang aneh di baris 3, tepatnya sebelum echo. Itu gara-gara baris sebelumnya gak selesai dengan titik koma!

2. Fatal Error

Nah, kalau yang ini lumayan serius. Fatal Error artinya program kita gak bisa dilanjutin lagi alias langsung berhenti total. Contohnya, manggil fungsi yang belum didefinisikan, atau pakai class yang gak ada. Pokoknya, ada sesuatu yang critical dan PHP menyerah.


<?php
fungsiYangBelumDidefinisikan(); // Fungsi ini tidak ada!
echo "Ini tidak akan pernah ditampilkan";
?>

Output:


Fatal error: Uncaught Error: Call to undefined function fungsiYangBelumDidefinisikan() in /path/to/your/file.php:3
Stack trace:
#0 {main}
  thrown in /path/to/your/file.php on line 3

Langsung crash kan? Makanya namanya juga fatal.

3. Warning

Kalau Warning, ini ibaratnya PHP cuma ngasih tahu, "Eh, ini kayaknya ada yang gak beres deh, tapi ya udah jalanin aja dulu." Program masih jalan, tapi ada potensi masalah di kemudian hari. Contohnya, include file yang gak ada, atau pakai variabel yang belum di-inisialisasi tapi di beberapa kasus dianggap normal.


<?php
include 'file_yang_tidak_ada.php'; // File ini tidak ada!
echo "Program masih jalan kok!";
?>

Output:


Warning: include(file_yang_tidak_ada.php): Failed to open stream: No such file or directory in /path/to/your/file.php on line 3
Warning: include(): Failed opening 'file_yang_tidak_ada.php' for inclusion (include_path='.:/usr/share/php') in /path/to/your/file.php on line 3
Program masih jalan kok!

Lihat? Pesan warning muncul, tapi tulisan "Program masih jalan kok!" tetap dieksekusi. Tetap aja, jangan diabaikan ya!

4. Notice

Ini level error paling "receh". PHP cuma ngasih tahu, "Kayaknya ini gak standar deh, tapi ya gak masalah-masalah amat." Biasanya muncul kalau kita pakai variabel yang belum didefinisikan. Di beberapa konfigurasi server, Notice ini sengaja dimatikan biar gak terlalu banyak "sampah" di layar.


<?php
echo $namaVariabel; // Variabel ini belum didefinisikan
?>

Output:


Notice: Undefined variable: namaVariabel in /path/to/your/file.php on line 3

Gak ada output teks dari echo-nya, cuma Notice aja. Penting buat tahu, kalau kita pakai variabel yang belum didefinisikan, PHP akan menganggapnya sebagai null.

Tools Wajib Buat Debugging (Senjata Anti-Bug)

Sekarang kita punya gambaran jenis-jenis error. Saatnya kita kenalan sama alat tempur buat ngatasinnya!

1. display_errors: Nyalakan Lampu Sorot!

Ini adalah pengaturan di PHP yang paling penting saat debugging. Kalau display_errors diset On, PHP akan menampilkan semua error langsung di browser. Berguna banget saat development, tapi jangan pernah aktifkan ini di lingkungan produksi (server live) karena bisa jadi celah keamanan!

Cara ngaktifinnya bisa di file php.ini atau di awal skrip PHP kamu:


<?php
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL); // Ini akan kita bahas di bawah
// Sekarang semua error akan terlihat!
?>

Kalau di php.ini, cari baris berikut:


display_errors = On

2. error_reporting(): Atur Tingkat Sensitivitas

Fungsi error_reporting() ini buat ngatur jenis error apa aja yang mau ditampilin. Mau semua jenis error? Mau cuma yang fatal-fatal aja? Bisa diatur di sini.

  • error_reporting(E_ALL);: Nampilin SEMUA jenis error, termasuk Notice dan Warning. Sangat direkomendasikan saat development!
  • error_reporting(E_ERROR | E_PARSE | E_COMPILE_ERROR);: Cuma nampilin error yang paling serius aja.
  • error_reporting(0);: MATIKAN semua pelaporan error. Ini yang dipakai di lingkungan produksi.

<?php
ini_set('display_errors', 1); // Pastikan error ditampilkan
error_reporting(E_ALL); // Tampilkan semua error
// Coba kode yang bikin notice atau warning
$variabelA = 10;
echo $variabelB; // Ini akan memicu Notice
?>

3. var_dump() dan print_r(): Intip Isi Variabel

Dua fungsi ini adalah BFF-nya para debugger! Keduanya dipakai buat ngelihat isi dari suatu variabel, apakah itu string, angka, array, atau object. Bedanya:

  • var_dump(): Menampilkan informasi lengkap, termasuk tipe data dan panjang (untuk string dan array).
  • print_r(): Menampilkan representasi yang lebih mudah dibaca untuk array dan object, tapi kurang detail.

<?php
$buah = array("apel", "jeruk", "pisang");
$umur = 25;
$is_aktif = true;

echo "<h3>Hasil var_dump:</h3>";
var_dump($buah);
var_dump($umur);
var_dump($is_aktif);

echo "<h3>Hasil print_r:</h3>";
print_r($buah);
print_r($umur); // Untuk skalar, print_r() sama dengan echo
print_r($is_aktif); // Untuk boolean, print_r() juga sama dengan echo (1 untuk true, kosong untuk false)
?>

Outputnya akan menunjukkan detail masing-masing variabel, berguna banget buat melacak kenapa sebuah variabel isinya gak sesuai ekspektasi.

Studi Kasus: Ngatasin Parse Error yang Bikin Mules

Anggaplah kamu lagi ngoding dan tiba-tiba dapat error kayak gini:


Parse error: syntax error, unexpected 'else' (T_ELSE) in /var/www/html/cek_harga.php on line 7

Dan ini kode kamu:


<?php
$harga = 15000;

if ($harga > 10000) {
    echo "Mahal banget!"
} else {
    echo "Lumayanlah";
}
?>

Dari pesan error, kita tahu masalahnya di baris 7, tepatnya sebelum else. Nah, kalau kita cek kode di baris 7, itu adalah else {. PHP bilang unexpected 'else', kenapa? Karena dia berharap ada sesuatu yang lain di baris 6 (yaitu titik koma atau penutup blok if) sebelum ketemu else.

Jeng jeng! Ternyata, di baris 5, echo "Mahal banget!" itu lupa titik koma! PHP jadi bingung, dikiranya baris 6 itu masih bagian dari perintah echo di baris 5.

Solusinya? Tambahin titik koma di baris 5:


<?php
$harga = 15000;

if ($harga > 10000) {
    echo "Mahal banget!"; // Tambahkan titik koma di sini!
} else {
    echo "Lumayanlah";
}
?>

Voila! Kode langsung jalan normal tanpa drama. Debugging itu intinya teliti dan paham pesan error dari PHP.

Latihan: Detektif Kode di Lapangan

Bos kamu, Pak Budi, tiba-tiba panik karena fitur kalkulator diskon di website toko online-nya gak jalan. Dia bilang, "Kemarin masih bisa! Sekarang malah kosong melompong!". Kamu disuruh ngecek kodenya:


<?php

$harga_asli = 50000;
$diskon = 0.20; // Diskon 20%

// Coba hitung harga setelah diskon
$harga_setelah_diskon = $harga_asli * (1 - $diskon)); // Eits, ada yang janggal?

echo "Harga normal: Rp. " . $harga_asli . "<br>";
echo "Diskon: " . ($diskon * 100) . "%<br>";
echo "Harga setelah diskon: Rp. " . $harga_setelah_diskon . "<br>";

?>

Tugasmu:

  1. Jalankan kode di atas. Apa error yang muncul?
  2. Gunakan teknik debugging yang sudah kita pelajari untuk menemukan letak masalahnya.
  3. Perbaiki kode tersebut sampai bisa menampilkan harga diskon dengan benar.
Clue-nya: Ini adalah error yang cukup fundamental, terkait dengan "tata bahasa" PHP. Jangan sungkan pakai var_dump() atau print_r() kalau ada variabel yang mencurigakan!

Penutup

Selamat! Kamu sekarang punya bekal dasar buat jadi detektif kode PHP. Ingat, ketemu error itu bukan berarti kamu gagal, tapi itu kesempatan buat belajar dan jadi lebih jago. Jangan takut salah, karena dari kesalahan itulah kita belajar jadi programmer sejati.

Di Part selanjutnya, kita bakal bahas lebih dalam lagi tentang penanganan error dengan mekanisme try-catch dan fungsi error handler custom yang lebih canggih. Pastikan kamu selalu stay tuned dan jangan lupa ngopi biar gak lembur sendirian!

Sampai jumpa di Part 16!

Bagikan Artikel Ini