1. Kurang Titik-Koma
Jenis error program
ini merupakan error yang paling sering ditemui. Penyebabnya karena kurang
menambahkan titik-koma ( ; ) pada akhir suatu perintah (statement). Solusi dalam mencari letak kesalahan
programnya membutuhkan kejelian dan ketelitian. Namun demikian, umumnya akan
ditunjukkan baris dimana error tersebut muncul. Mulailah dari baris tersebut,
namun tidak selamanya penyebab kesalahan berada pada baris yang ditunjukkan. Terkadang
penyebab kesalahan justru berada di baris atas atau sebelumnya.
Berikut ini beberapa
contoh program beserta tampilan error yang akan muncul jika program dijalankan:
1.
<?php
2.
$nim = "1111500111";
3.
$nama = "Achmad
Solichin"
4.
echo $nim;
5.
echo $nama;
6.
?>
Jika program di atas
dijalankan maka akan ditampilkan error sebagai berikut:
Parse error: syntax error, unexpected T_ECHO
in /home/achmatim/public_html/artikel_demo/error-php/error1.1.php on line 4
Baris yang ditunjukkan
pada tampilan error di atas adalah baris ke-4, namun jika diperhatikan program
1.1 di atas ternyata penyebab error justru bukan di baris ke-4. Penyebab error
berada pada baris 3, dimana statement tidak diakhiri dengan titik-koma ( ; ).
Mengapa PHP justru menunjuk ke baris 4? Hal ini disebabkan karena proses
pemeriksaan sintaks oleh PHP dilakukan secara berurutan (sekuensial) dari baris
pertama hingga terakhir. Pada baris ketiga belum terjadi error, namun statement
masih memerlukan adanya titik-koma ( ; ). Saat PHP berada di baris 4, bukan
titik-koma ( ; ) yang ditemukan, namun justru perintah “echo”, sehingga
disinilah PHP akan menunjukkan errornya. PHP tidak akan mengetahui penyebab
errornya dimana, namun PHP akan menunjukkan pada baris mana error mulai
terjadi. Tips: periksa program pada
baris yang ditunjukkan oleh pesan error, jika tidak ditemukan, periksa baris
atasnya. Demikian dan seterusnya hingga penyebab error ditemukan.
1.
<?php
2.
$user = "achmatim";
3.
$pass = "123"
4.
if ($user == "achmatim"
&&
$pass
==
"123") {
5.
echo "Login
Berhasil";
6.
} else {
7.
echo "Login Gagal";
8.
}
9.
?>
Jika program di atas
dijalankan maka akan ditampilkan error sebagai berikut:
Parse error: syntax error, unexpected T_IF
in /home/achmatim/public_html/artikel_demo/error-php/error1.2.php on line 4
Sama seperti program
1.1, penyebab errornya adalah kurang titik-koma. Pada program 1.1, letak
kesalahan diikuti dengan perintah echo sehingga pesan kesalahan mengatakan
“unexpected T_ECHO”. Sedangkan pada program 1.2, letak kesalahan diikuti dengan
perintah if,
sehingga pesan kesalahan yang ditampilkan adalah “unexpected T_IF”. Dari pesan
kesalahan tersebut, kita dapat mengetahui letak kesalahan pasti berada sebelum
perintah if,
tepatnya pada baris ke-3, statement tidak diakhiri dengan titik-koma ( ; ).
1.
<?php
3.
switch ($day) {
4.
case 'Sun' : $hari = "Minggu"; break;
5.
case 'Mon' : $hari = "Senin"; break;
6.
case 'Tue' : $hari = "Selasa"; break;
7.
case 'Wed' : $hari = "Rabu"; break;
8.
case 'Thu' : $hari = "Kamis"; break;
9.
case 'Fri' : $hari = "Jum'at"; break;
10. case 'Sat' : $hari = "Sabtu"; break;
11. default : $hari = "Kiamat";
12.}
13.echo "Hari ini hari <b>$hari</b>";
14.?>
Jika program di atas
dijalankan maka akan ditampilkan error sebagai berikut:
Parse error: syntax error, unexpected T_SWITCH in
/home/achmatim/public_html/artikel_demo/error-php/error1.3.php on line 3
Seperti dua contoh
sebelumnya, jelas bahwa pada program 1.3 letak kesalahan berada sebelum
perintah switch, tepatnya pada baris ke-2, statement tidak diakhiri dengan
titik-koma ( ; ). Jadi, jika muncul pesan kesalahan yang mirip seperti di atas,
langsung saja cari perintah switch dan perhatikan baris perintah sebelumnya.
1.
<?php
2.
/* contoh
1 */
3.
$i = 1
4.
while ($i <= 10) {
5.
echo $i++;
6.
}
7.
?>
Jika program di atas
dijalankan maka akan ditampilkan error sebagai berikut:
Parse error: syntax error, unexpected T_WHILE
in /home/achmatim/public_html/artikel_demo/error-php/error1.4.php on line 4
Pada contoh program
1.4 di atas, letak kesalahan berada tepat di atas perintah while, tepatnya di baris ke-3. Statement seharusnya
diakhiri dengan titik-koma.
1.
<?php
2.
function cetak_ganjil ($awal, $akhir) {
3.
for ($i=$awal; $i<$akhir; $i++) {
4.
if ($i%2 == 1) {
5.
echo "$i ";
6.
}
7.
}
8.
}
9.
//pemanggilan
fungsi
10.$a = 10;
11.$b = 50;
12.echo "<b>Bilangan ganjil dari $a sampai $b :
</b><br>"
13.cetak_ganjil($a, $b);
14.?>
Jika program di atas
dijalankan maka akan ditampilkan error sebagai berikut:
Parse error: syntax error, unexpected T_STRING,
expecting ',' or ';' in
/home/achmatim/public_html/artikel_demo/error-php/error1.5.php on line 13
Pada contoh program
1.5 di atas, sudah jelas bahwa letak kesalahannya pada baris ke-12 dimana
statement tidak diakhiri titik-koma. Error dengan pesan “unexpected T_STRING”
perlu dicermati dengan lebih teliti karena error tidak hanya terjadi karena
kurangnya titik-koma, namun dapat juga karena kurang koma ( , ) atau operator
penggabungan string berupa titik ( . ). Namun demikian, umumnya terjadi karena
penulisan string yang tidak lengkap.
1.
<?php
2.
echo "test"
3.
function cetak_ganjil ($awal, $akhir) {
4.
for ($i=$awal; $i<$akhir; $i++) {
5.
if ($i%2 == 1) {
6.
echo "$i ";
7.
}
8.
}
9.
}
10.//pemanggilan fungsi
11.$a = 10;
12.$b = 50;
13.echo "<b>Bilangan ganjil dari $a sampai $b :
</b><br>";
14.cetak_ganjil($a, $b);
15.?>
Jika program di atas
dijalankan maka akan ditampilkan error sebagai berikut:
Parse error: syntax error, unexpected T_FUNCTION,
expecting ',' or ';' in /home/achmatim/public_html/artikel_demo/error-php/error1.6.php
on line 3
Contoh program 1.6 di
atas mirip dengan contoh program sebelumnya, hanya saja letak kesalahannya
sekarang berada pada baris ke-2, sebelum pendefinisian fungsi. Pada baris
tersebut, seharusnya diakhiri dengan titik-koma ( ; ).
1.
<?php
2.
$nim = "0411500400";
3.
$nama = 'Chotimatul Musyarofah';
4.
$umur = 23;
5.
$nilai = 82.25;
6.
$status = TRUE;
7.
echo "NIM : " . $nim . "<br>";
8.
echo "Nama : $nama<br>";
9.
print "Umur : " . $umur; print "<br>";
11.
12.if ($status)
13. echo "Status : Aktif"
14.else
15. echo "Status : Tidak Aktif";
16.?>
Jika program di atas
dijalankan maka akan ditampilkan pesan kesalahan sebagai berikut:
Parse error: syntax error, unexpected T_ELSE,
expecting ',' or ';' in
/home/achmatim/public_html/artikel_demo/error-php/error4.1.php on line 14
Letak kesalahan pada
contoh program 1.7 bukanlah pada baris ke-14 seperti ditunjukkan di atas, namun
terletak di baris ke-13 (sebelum perintah ELSE) dimana statement tidak diakhiri
dengan titik-koma.
2. Kekurangan atau Kelebihan Kutip
Penyebab error program
yang kedua berkaitan dengan tanda kutip, baik kutip tunggal (‘) maupun kutip
ganda (“). Seperti kita ketahui bahwa di PHP, string dapat dituliskan dengan
diapit oleh tanda kutip tunggal (‘) dan kutip ganda (“). Error program akan
terjadi jika penyajian tanda kutip yang tidak tepat, misalnya tidak ditutup
(kurang kutip) atau kelebihan kutip.
Berikut ini beberapa
contoh program PHP yang error karena permasalahan tanda kutip:
1.
<?php
2.
$nim = "0411500400;
3.
$nama = 'Chotimatul Musyarofah';
4.
echo "NIM : " . $nim . "<br>";
5.
echo "Nama : $nama";
6.
?>
Jika program di atas
dijalankan maka akan ditampilkan pesan kesalahan sebagai berikut:
Parse error: syntax error, unexpected T_STRING in
/home/achmatim/public_html/artikel_demo/error-php/error2.1.php on line 4
Perhatikan contoh
program 2.1 di atas. Pesan kesalahan menunjuk pada baris ke-4, tetapi penyebab
kesalahan justru ada di baris ke-2. Hal tersebut terjadi karena pada baris ke-2
terdapat string yang dibuka dengan kutip ganda (“) namun tidak ada penutup atau
pasangannya. Pada proses kompilasi, PHP akan memeriksa sintaks program secara
berurutan. Saat ditemukan tanda kutip, maka program akan menganggap teks
berikutnya sebagai sebuah string hingga ketemu pasangannya. Seperti pada contoh
program 2.1 di atas, program tidak menemukan pasangan dari kutip ganda (“) yang
ada di baris kedua pada baris yang sama, namun justru ditemukan kutip ganda (“)
pada baris ke-4. Kutip ganda pada baris keempat dianggap sebagai pasangan
(penutup) kutip ganda pada baris kedua. Setelah ditemukan penutup dari kutip
tersebut, maka program akan menganggap bahwa penyajian string (statement) sudah
lengkap dan harus ditutup dengan titik-koma atau operator penggabungan string.
Ternyata program tidak menemukan penutup statement setelahnya, sehingga
terjadilah error di baris ke-4.
Untuk mengatasi error
pada program 2.1 di atas tentunya cukup dengan menambahkan kutip ganda sebelum
titik-koma pada baris kedua. Menemukan letak kesalahan yang berkaitan dengan
tanda kutip memang terkadang agak sulit dilakukan, terutama pada program yang
cukup panjang. Letak kesalahan seringkali berada pada baris yang sama sekali
berbeda dengan petunjuk pada pesan kesalahannya. Oleh karena itu, pemahaman
terhadap penanganan string menjadi cukup penting dan sangat membantu kita dalam
menemukan letak kesalahan dengan cepat. Jika perlu, pelajari kembali buku
gratis Pemrograman Web dengan PHP & MySQL terutama Bab 6 mengenai String dan
Tanggal. Selain itu,
penggunaan editor program yang baik dan sesuai juga sangat membantu menemukan
kesalahan dengan cepat, karena pada umumnya editor memiliki pewarnaan yang
berbeda antara string, nama variabel maupun perintah bawaan PHP. Sebagai
contoh, bandingkan contoh program 1.7 dan 2.1 di atas. Perintah echo pada
program 1.7 semuanya berwarna kuning, namun perintah echo pada program 2.1
berwarna biru. Hal tersebut menunjukkan bahwa pada program 2.1 pasti terjadi
kesalahan.
1.
<?php
2.
$nim = "0411500400";
3.
$nama = 'Chotimatul Musyarofah;
4.
echo "NIM : " .
$nim . "<br>";
5.
echo "Nama :
$nama";
6.
?>
Jika program di atas
dijalankan maka akan ditampilkan pesan kesalahan sebagai berikut:
Parse error: syntax error, unexpected
T_ENCAPSED_AND_WHITESPACE in
/home/achmatim/public_html/artikel_demo/error-php/error2.2.php on line 3
Penyebab error pada
program 2.2 di atas sudah cukup jelas, yaitu kurangnya pasangan tanda kutip
tunggal ( ‘ ) pada baris ketiga. Sama seperti error pada program sebelumnya,
kita juga dapat menganalisa kesalahan program dengan memperhatikan warna source code yang ditampilkan oleh editor.
1.
<?php
2.
$nim = 0411500400";
3.
$nama = 'Chotimatul Musyarofah';
4.
echo "NIM : " . $nim . "<br>";
5.
echo "Nama : $nama";
6.
?>
Jika program di atas
dijalankan maka akan ditampilkan pesan kesalahan sebagai berikut:
Parse error: syntax error, unexpected '"' in
/home/achmatim/public_html/artikel_demo/error-php/error2.3.php on line 2
Perhatikan baris kedua
program 2.3 di atas. Terlihat bahwa nilai dari variabel $nim bertipe string, sehingga harus diapit dengan
tanda kutip. Inisialisasi variabel $nim tidak diawali dengan tanda kutip ganda ( “ )
sehingga menyebabkan error program.
3. Kurang Operator Penggabungan String
Seperti kita ketahui
bahwa suatu string dapat digabungkan dengan variabel atau string lainnya
menggunakan operator penggabungan titik ( . ). Error akan ditampilkan jika pada
penggabungan string yang tidak menggunakan operator tersebut. Berikut ini
contoh program PHP yang error dalam hal penggabungan string.
1.
<?php
2.
$nim = "0411500400";
3.
$nama = 'Chotimatul Musyarofah';
4.
echo "NIM : " $nim . "<br>";
5.
echo "Nama : $nama";
6.
?>
Jika program di atas
dijalankan maka akan ditampilkan pesan kesalahan sebagai berikut:
Parse error: syntax error, unexpected T_VARIABLE,
expecting ',' or ';' in
/home/achmatim/public_html/artikel_demo/error-php/error3.1.php on line 4
Perhatikan baris
keempat program 3.1 di atas. Antara string “NIM : “ dan variabel $nim seharusnya terdapat operator penggabungan
titik ( . ), seperti pada penggabungan $nim dan string “<br>”. Selain
dengan menggunakan operator penggabungan, string dan variabel juga dapat
digabungkan dengan memasukkan nama variabel ke dalam string yang diapit dengan
kutip ganda, seperti pada contoh baris ke-5 program 3.1 di atas.
4. Kurang atau Kelebihan Kurung Kurawal
Pada bahasa
pemrograman PHP, kurung kurawal, baik { maupun }, digunakan untuk
mengelompokkan suatu blok perintah tertentu, seperti pada struktur kondisi
IF-ELSE, perulangan WHILE, pendefinisian fungsi, dan sebagainya. Penanganan
error program yang berkaitan dengan kelengkapan kurung kurawal terkadang
sedikit sulit dilakukan, terutama jika program sudah cukup kompleks dan gaya
penulisan program (coding style)
tidak baik dan teratur. Kerapihan dalam penulisan program sangat berguna bagi
programmer dalam mengelola program di kemudian hari, maupun dalam melakukan
penelusuran kesalahan (error).
Gaya penulisan program
atau coding
style memang setiap
programmer memang berbeda, namun demikian biasakanlah untuk mengikuti coding
style yang baik. Di antara coding style yang baik adalah konsistensi dalam
penulisan nama variabel, fungsi dan class, penggunaan indentasi (indenting) untuk blok dengan level yang berbeda,
penambahan keterangan atau komentar program dan sebagainya. Kita dapat
mengikuti salah satu coding standard yang sudah ada dan banyak digunakan oleh programmer di seluruh
dunia, seperti Zend Framework Coding Standard dan PEAR Coding Standard.
Beberapa contoh
program berikut ini akan mempermudah pemahaman kita dalam menangani kesalahan
program terkait kurung kurawal.
1.
<?php
3.
switch ($day) {
4.
case 'Sun' : $hari = "Minggu"; break;
5.
case 'Mon' : $hari = "Senin"; break;
6.
case 'Tue' : $hari = "Selasa"; break;
7.
case 'Wed' : $hari = "Rabu"; break;
8.
case 'Thu' : $hari = "Kamis"; break;
9.
case 'Fri' : $hari = "Jum'at"; break;
10. case 'Sat' : $hari = "Sabtu"; break;
11. default : $hari = "Kiamat";
12.
13.echo "Hari ini hari <b>$hari</b>";
14.?>
Jika program di atas
dijalankan maka akan ditampilkan pesan kesalahan sebagai berikut:
Parse error: syntax error, unexpected $end in
/home/achmatim/public_html/artikel_demo/error-php/error4.1.php on line 15
Saat kita menemukan
pesan kesalahan seperti di atas, terkadang kita bingung sendiri karena
kesalahan justru menunjuk pada baris yang tidak ada perintah apapun yaitu baris
ke-15. Error tersebut merupakan salah satu indikasi bahwa penyebab error adalah
kurangnya kurung kurawal penutup. Yang harus dilakukan adalah dengan memeriksa
setiap blok dalam program dan pastikan bahwa setiap kurawal buka { memiliki
pasangan }. Disinilah kerapihan penulisan program akan sangat membantu
penelusuran. Pada contoh program 4.1 di atas letak kesalahannya ada di baris
ke-12 dimana kurawal buka pada blok SWITCH-CASE belum memiliki pasangan (belum ditutup).
1.
<?php
2.
function cetak_ganjil ($awal, $akhir) {
3.
for ($i=$awal; $i<$akhir; $i++) {
4.
if ($i%2 == 1) {
5.
echo "$i ";
6.
}
7.
}
8.
}
9.
}
10.//pemanggilan fungsi
11.$a = 10;
12.$b = 50;
13.echo "<b>Bilangan ganjil dari $a sampai $b :
</b><br>";
14.cetak_ganjil($a, $b);
15.?>
Jika program di atas
dijalankan maka akan ditampilkan pesan kesalahan sebagai berikut:
Parse error: syntax error, unexpected '}' in
/home/achmatim/public_html/artikel_demo/error-php/error4.2.php on line 9
Berbeda dengan contoh
program 4.1, pada contoh program 4.2 justru kelebihan kurung kurawal penutup
sehingga ditampilkan error program seperti di atas. Pada pesan kesalahan
ditunjukkan bahwa error berada pada baris ke-9, namun sebenarnya kelebihan
kurawal berada di baris ke-8. Hapus kurawal } pada baris ke-8. Sekali lagi
disini gaya penulisan program yang baik akan sangat membantu proses
identifikasi kesalahan. Jika salah dalam menghapus kurung kurawal seringkali
akan menimbulkan error yang lain, sehingga diperlukan ketelitian dan pengalaman
dalam menangani error serupa.
5. Kesalahan Nama Variabel
Variabel merupakan
tempat penyimpanan suatu nilai dalam program. Variabel terdiri dari 2 (dua)
jenis, yaitu variabel bawaan (built-in) dari PHP dan variabel yang didefinisikan oleh programmer. Untuk jenis yang kedua, kita dapat
mendefinisikan variabel sesuai kebutuhan, namun penamaannya harus mengikuti
aturan-aturan yang telah ditetapkan PHP. Beberapa aturan dasar antara lain
harus diawali dengan tanda $ dan diikuti dengan huruf atau garis bawah ( _ ),
tidak boleh diawali dengan angka, tidak boleh mengandung karakter khusus
seperti spasi, tanda ‘$’ dan tanda ‘+’, dan seterusnya. Kesalahan dalam
penamaan variabel dapat menyebabkan error program.
Berikut ini contoh
error program yang disebabkan karena kesalahan penamaan variabel.
1.
<?php
2.
$nim = "0411500400";
3.
$nama = 'Chotimatul Musyarofah';
4.
$umur = 23;
5.
$3nilai = 82.25;
6.
$status = TRUE;
7.
echo "NIM : " . $nim . "<br>";
8.
echo "Nama : $nama<br>";
9.
print "Umur : " . $umur; print "<br>";
11.
12.if ($status)
13. echo "Status : Aktif";
14.else
15. echo "Status : Tidak Aktif";
16.?>
Jika program di atas
dijalankan maka akan ditampilkan pesan kesalahan sebagai berikut:
Parse error: syntax error, unexpected T_LNUMBER,
expecting T_VARIABLE or '$' in /home/achmatim/public_html/artikel_demo/error-php/error5.1.php
on line 5
Pada baris ke-5
program 5.1 di atas terdapat pendefinisian variabel $3nilai. Nama variabel
tersebut tidak diijinkan karena setelah tanda $ terdapat karakter angka.
Seharusnya setelah tanda $ diikuti oleh huruf atau karakter garis-bawah ( _ ).
Untuk memperbaiki program di atas, tentu dengan mengganti nama variabel sesuai
dengan ketentuan penamaan variabel yang benar.
6. Variabel Belum Didefinisikan
Dalam hal penanganan
variabel, PHP memang memiliki keleluasaan seperti variabel tidak perlu
dideklarasikan. Kita dapat langsung mendefinisikan isi dari variabel tanpa
perlu dipusingkan dengan deklarasi atau tipe data dari variabel. Tipe data akan
ditentukan oleh PHP berdasarkan isi dari variabelnya. Namun demikian, kita
tetap perlu memahami bahwa pada suatu kondisi, penggunaan variabel yang belum
terdefinisikan sebelumnya dapat menyebabkan munculnya error program. Sebagai
contoh dalam program 6.1 berikut ini.
1.
<?php
2.
for($i=1; $i<=10; $i++) {
3.
$total = $total + $i;
4.
}
5.
echo $total;
6.
?>
Jika program di atas
dijalankan maka akan ditampilkan pesan kesalahan sebagai berikut:
Notice: Undefined variable: total in
/home/achmatim/public_html/artikel_demo/error-php/error6.1.php on line 3
Maksud dari program
6.1 di atas adalah ingin menghitung dan menampilkan total dari 10 bilangan
bulat yang dimulai dari 1. Dengan demikian terdapat variabel $total yang akan
diisikan hasil penjumlahan untuk setiap bilangan dari 1 hingga 10. Perhatikan
baris ke-3 program dimana terdapat perintah $total = $total + $i;. Pesan kesalahan muncul karena pada saat
perulangan baru dimulai ($i = 1) nilai awal dari $total yang ditambahkan dengan
nilai $i belum terbentuk atau belum ada. Untuk mengatasi error tersebut, kita
perlu mendefinisikan nilai awal dari $total sebelum perulangan untuk menghitung
total. Karena $total pasti akan bernilai bilangan bulat, maka kita dapat
memberi nilai awal $total dengan 0, sehingga perintah yang perlu ditambahkan
adalah $total = 0.
7. Mengakses Index Array yang Tidak Ada
Seperti halnya
variabel, dalam hal penanganan array, PHP juga tidak memerlukan pendeklarasian
awal maupun penentuan jumlah elemen dari array. Akan tetapi, pengaksesan elemen
array yang tidak ada atau belum terbentuk akan menyebabkan error seperti pada
contoh program 7.1 berikut ini.
1.
<?php
3.
echo $arrBuah[0]; //Mangga
4.
echo $arrBuah[4]; //Jeruk
5.
?>
Jika program di atas
dijalankan maka akan ditampilkan pesan kesalahan sebagai berikut:
Notice: Undefined offset: 4 in
/home/achmatim/public_html/artikel_demo/error-php/error7.1.php on line 4
Pada program 7.1
diatas terdapat sebuah variabel array dengan nama $arrBuah yang didefinisikan berisi 4 elemen. Index dari
elemen array secara default diawali dengan 0, sehingga elemen array tersebut
dapat diakses dengan index 0, 1, 2 dan 3. Pesan kesalahan terjadi karena pada
baris ke-4, program mengakses elemen dengan index 4, dimana index array
tersebut tidak ada atau belum terbentuk. Jika ingin mengakses elemen terakhir
dari $arrBuah tersebut, maka seharusnya menggunakan index 3.
8. Mengakses Index array yang Tidak Ada (dari $_POST)
Seperti halnya
variabel, dalam hal penanganan array khususnya dari $_POST, $_POST berfungsi
menyimpan data dari komponen form yang methodnya post. Pendeklarasiannya berasal
dari atribut name dari komponen from. Akan tetapi, pengaksesan index array $_POST
yang tidak ada atau belum terbentuk akan menyebabkan error seperti pada contoh
program 7.2 berikut ini.
|
Contoh Program 7.2
|
Halaman form.php
1. <form action=”proses.php” method=”post”>
2. Nama Admin <input type=”text” name=”nama_admin”>
3. <input type=”submit” name=”klik” value=”klik”>
4. </form>
Proses.php
1. <?php
2. Echo $_POST[‘nama_admin’];
3. Echo $_POST[‘kelas’];
4. ?>
Jika program di atas
dijalankan maka akan ditampilkan pesan kesalahan sebagai berikut:
Notice: Undefined index: kelas in
/home/achmatim/public_html/artikel_demo/error-php/proses.php on line 3
Pada program 7.2
diatas terdapat file form.php yang mana berisi komponen form yang masing-masing
memiliki attribute name.jika input type=”submit” diklik, maka akan memproses
halaman proses.php. sehingga script proses.php akan dijalankan. Akan tetapi
akan muncul error seperti diatas. Yaitu pada line 3. Kesalahannya karena tidak
ada komponen form yang memiliki name kelas yang ada di file form.php. untuk
penanganannya silahkan ditambah komponen form seperti <input name=”kelas” type=”text”>
9. Mengakses Index array yang Tidak Ada (dari $_GET)
Seperti halnya
variabel, dalam hal penanganan array khususnya dari $_GET, $_ GET berfungsi
menyimpan data dari variable url. Pendeklarasiannya berasal dari variable url.
Akan tetapi, pengaksesan index array $_GET yang tidak ada atau belum terbentuk
akan menyebabkan error seperti pada contoh program 7.3 berikut ini.
|
Contoh Program 7.3
|
Proses.php
1. <?php
2. Echo $_GET[‘nama_admin’];
3. Echo $_GET[‘kelas’];
4. ?>
Jika program di atas
dijalankan dengan url: Proses.php?nama_admin=budi maka akan ditampilkan pesan kesalahan sebagai
berikut:
Notice: Undefined index: kelas in
/home/achmatim/public_html/artikel_demo/error-php/proses.php on line 3
Pada program 7.3
penanganan error diatas dengan menambah variable url kelas menjadi seperti ini
url: proses.php?nama_admin=budi&kelas=XI.
10. Mengakses Index array yang Tidak Ada (dari $_SESSION)
$_SESSION berfungsi
menyimpan data dan akan tetap tersimpan dalam jangka waktu tertentu. Syarat mengaktifkan
session dengan mengetikkan script session_start(); diatasnya. Setelah itu Pendeklarasiannya seperti
halnya variable biasa.
Akan tetapi,
pengaksesan index array $_SESSION yang tidak ada atau belum terbentuk akan
menyebabkan error seperti pada contoh program 7.4 berikut ini.
|
Contoh Program 7.4
|
Proses.php
1. <?php
2. Session_start();
3. $_SESSION[‘nama_admin’]=”budi”;
4. Echo $_ESSION[‘nama_admin’];
5. Echo $_ESSION[‘kelas’];
6. ?>
Jika program di atas
dijalankan maka akan ditampilkan pesan kesalahan sebagai berikut:
Notice: Undefined index: kelas in
/home/achmatim/public_html/artikel_demo/error-php/proses.php on line 5
Pada program 7.4
penanganan error diatas dengan menambahkan pendeklarasian variable session kelas,
misal seperti ini
7.
<?php
8.
Session_start();
9.
$_SESSION[‘nama_admin’]=”budi”;
10. $_SESSION[‘kelas’]=”XI”;
11. Echo $_ESSION[‘nama_admin’];
12. Echo $_ESSION[‘kelas’];
13. ?>
11. Pembagian dengan Nol
Perhitungan matematika
di dalam program seringkali diperlukan, misalnya dalam kaitannya dengan
perhitungan gaji, perhitungan total pemesanan barang, dan sebagainya. Terkait
dengan perhitungan matematis tersebut, kita perlu jeli dalam penerapannya,
terutama jika berkaitan dengan pembagian. Dalam matematika, pembagian dengan
bilangan 0 akan menghasilkan nilai yang tidak terdefinisi. Dalam program, pembagian
dengan bilangan 0 akan menyebabkan adanya error “Division by zero”. Berikut ini contoh sederhananya:
1.
<?php
2.
$a = 10;
3.
$b = 0;
4.
5.
echo $a / $b;
6.
?>
Jika program di atas
dijalankan maka akan ditampilkan pesan kesalahan sebagai berikut:
Warning: Division by zero in
/home/achmatim/public_html/artikel_demo/error-php/error8.1.php on line 5
Perhatikan program 8.1
di atas. Nilai variabel $a adalah 10, $b adalah 0. Pada baris ke-5 terdapat
perintah untuk menampilkan hasil pembagian $a / $b, yang berarti 10 / 0. Tentu
hal tersebut akan menyebabkan error seperti terlihat pada contoh di atas.
12. Memanggil Fungsi yang Belum Terdefinisi
Setiap fungsi, baik
fungsi built-in maupun fungsi buatan, yang dipanggil dalam program PHP, harus
sudah didefinisikan terlebih dahulu. Fungsi built-in sudah didefinisikan oleh
PHP sehingga tidak perlu didefinisikan lagi, contohnya fungsi strlen(),
addslashes(), explode(), date() dan sebagainya. Sementara itu, fungsi buatan
harus didefinisikan sendiri oleh programmer dan letak pendefinisian fungsi
dapat diakses oleh bagian program yang memanggilnya. Pemanggilan fungsi yang
belum terdefinisi atau kesalahan penulisan nama fungsi saat pemanggilan sering
terjadi sehingga menyebabkan pesan kesalahan.
Pada contoh program
berikut ini terdapat kesalahan penulisan fungsi addslashes() sehingga
menyebabkan error “Call to undefined function”.
1.
<?php
2.
$str = "Is your name
O'Reilly ?";
3.
$str2 = addlashes ($str);
5.
echo "<b>String
asli</b> : $str";
6.
echo "<br><b>addslashes()</b>
: $str2";
7.
echo "<br><b>stripslashes()</b>
: $str3";
8.
?>
Jika program di atas
dijalankan maka akan ditampilkan pesan kesalahan sebagai berikut:
Fatal error: Call to undefined function
addlashes() in /home/achmatim/public_html/artikel_demo/error-php/error9.1.php
on line 3
13. Menyertakan File (Include) yang Tidak Ada
Pada aplikasi berbasis
PHP, menyertakan (include) file sudah biasa dilakukan. Misalnya pada saat
program harus menyertakan library seperti Smarty, FPDF, JPGraph dan sebagainya.
Untuk menyertakan file lain dalam PHP dapat menggunakan fungsi include(),
include_once(), require() atau require_once(). Masing-masing memiliki perbedaan
penggunaannya. Penyertaan file yang tidak benar, baik karena filenya tidak ada,
path atau lokasi file yang salah maupun akses terhadap file tidak diijinkan,
dapat menyebabkan error program. Contohnya pada program 10.1 berikut ini.
1.
<?php
2.
include "koneksi.php";
3.
echo "testing";
4.
?>
Jika program di atas
dijalankan maka akan ditampilkan pesan kesalahan sebagai berikut:
Warning: include(koneksi.php): failed to open
stream: No such file or directory in
/home/achmatim/public_html/artikel_demo/error-php/error10.1.php on line 2
Warning: include(): Failed opening 'koneksi.php' for inclusion
(include_path='.:/usr/share/php:/usr/share/pear') in
/home/achmatim/public_html/artikel_demo/error-php/error10.1.php on line 2
File koneksi.php yang disertakan dalam program 10.1 di atas
tidak ada sehingga pesan kesalahan “failed to open stream” muncul. Dengan
demikian, kita harus pastikan bahwa file yang kita include-kan benar-benar ada
dan diakses dengan benar.
Demikianlah 13 Penyebab
Error Program dalam PHP beserta 19 contoh programnya. Semoga dengan artikel ini, kita
semua dapat lebih memahami bagaimana menangani pesan kesalahan atau error
program yang terjadi dalam proses pembelajaran kita. Dan yang terpenting dalam
proses pembelajaran PHP adalah konsistensi serta kesungguhan kita dalam mencoba
sebanyak-banyaknya contoh program sehingga kemampuan PHP akan semakin
meningkat.


0 komentar:
Post a Comment