PHP adalah bahasa pemrograman yang jalan di server, komputer tempat website kamu tinggal. Tugas utamanya menyusun halaman sebelum halaman itu dikirim ke browser. Bayangin Warung Bu Tini: pembeli memesan di depan (itu browser yang mengirim request), Bu Tini memasak di dapur (itu PHP yang jalan di server), dan yang keluar cuma piring berisi makanan jadi (itu HTML). Pembeli gak pernah melihat dapurnya. Browser juga gak pernah melihat kode PHP-nya.
🧪 Tebakan cepat: file
warung.phpberisi<p>Total: <?php echo 15000 * 2; ?></p>. Pengunjung membuka halamannya lalu klik View Source. Yang dia lihat<?php echo 15000 * 2; ?>,15000 * 2, atau30000? Tebak dulu, jawabannya ada di bagian "PHP jalan di server".
PHP jalan di server
Satu kunjungan ke http://localhost:8000/warung.php berjalan begini:
| Langkah | Di mana | Yang terjadi |
|---|---|---|
| 1 | Browser | mengirim request GET /warung.php |
| 2 | Server | menemukan file warung.php dan menyerahkannya ke PHP |
| 3 | PHP | menjalankan kode di antara <?php dan ?>, sisanya dikirim apa adanya |
| 4 | Server | mengirim hasilnya, HTML biasa, sebagai response |
| 5 | Browser | menggambar HTML itu |
Ini isi warung.php, campuran HTML dan PHP:
<h1>Warung Bu Tini</h1>
<?php
echo "<p>Menu hari ini: Nasi Goreng</p>";
echo "<p>Harga: Rp15.000</p>";
?>
<p>Buka jam 07.00</p>
Dan ini yang diterima browser, persis seperti yang muncul di View Source:
<h1>Warung Bu Tini</h1>
<p>Menu hari ini: Nasi Goreng</p><p>Harga: Rp15.000</p><p>Buka jam 07.00</p>
- Baris di luar
<?php ... ?>dikirim apa adanya. echomenulis teks ke hasil, tepat di tempat kodenya berada.- Kode PHP-nya sendiri gak ikut terkirim. Jadi di tebakan tadi pengunjung cuma melihat
<p>Total: 30000</p>: PHP sudah menghitung15000 * 2di server. Itu jawaban tebakannya.
Karena itu PHP dipakai untuk hal yang harus terjadi di server: mengambil data dari database, mengecek password saat login, menyimpan pesanan. Namanya singkatan dari PHP: Hypertext Preprocessor, singkatan yang menyebut dirinya sendiri: dia memproses halaman (hypertext) sebelum dikirim.
Script PHP pertamamu
File yang isinya PHP saja ditulis begini:
<?php
// warung.php
echo "Selamat datang di Warung Bu Tini!";
Jalankan di terminal dengan php warung.php:
$ php warung.php
Selamat datang di Warung Bu Tini!
<?phpadalah tag pembuka. Semua yang ada sesudahnya dibaca sebagai kode PHP.//membuka komentar satu baris: catatan buat manusia, gak dijalankan. Komentar beberapa baris ditulis di antara/*dan*/.echomenulis teks. Teksnya ditulis di antara tanda kutip.;(titik koma) menutup satu perintah, seperti titik di akhir kalimat.- Di file yang isinya PHP saja, tag penutup
?>boleh (dan sebaiknya) gak ditulis.
print "Halo"; juga menulis teks dengan hasil yang sama, tapi yang paling sering dipakai echo.
Di latihan BelajarWeb.dev, tombol Jalankan menjalankan kodemu dengan simulator PHP di browser, jadi kamu belum perlu meng-install apa pun. Di komputermu sendiri, perintah php -S localhost:8000 di folder project menyalakan server kecil untuk belajar, lalu http://localhost:8000/warung.php bisa dibuka di browser.
Kalau titik koma lupa
<?php
echo "Halo Dunia"
echo "Selamat datang";
PHP menolak file ini dengan pesan:
Parse error: syntax error, unexpected token "echo", expecting "," or ";" in /app/warung.php on line 3
- PHP membaca seluruh file dulu sebelum menjalankan apa pun. Kalau ada kesalahan tulis (parse error), gak ada satu baris pun yang jalan, termasuk HTML di atasnya.
- Nomor baris di pesannya menunjuk tempat PHP sadar ada yang salah: baris 3, padahal titik koma yang hilang ada di akhir baris 2. Selalu cek juga baris sebelumnya.
- Perintah terakhir yang gak ditutup, seperti
<?php echo "Halo Dunia", berakhir denganParse error: syntax error, unexpected end of file, expecting "," or ";".
⚠️ Jebakan yang sering ketemu
- Lupa
<?php. Tanpa tag pembuka, PHP menganggap seluruh file teks biasa dan mengirimnya apa adanya. Pengunjung melihat kodemu sendiri, misalnyaecho "...";, di halaman. - Membuka file
.phplangsung dari folder. Dobel-klik file membukanya tanpa server, jadi PHP gak pernah jalan. Buka lewat server, misalnyahttp://localhost:8000/warung.php. - Kutip gak ditutup. Di
echo "Halo;PHP mencari kutip penutup sampai akhir file, dan error-nya muncul jauh di bawah baris yang salah. - Tutorial lama. Banyak contoh di internet masih PHP 5 atau 7. Di sini dipakai PHP 8.4.
TL;DR: PHP (PHP: Hypertext Preprocessor) jalan di server: dia menjalankan kode di antara <?php dan ?>, lalu mengirim hasilnya sebagai HTML, jadi browser dan View Source gak pernah melihat kode PHP-nya. File PHP diawali <?php, echo (atau print) menulis teks, dan tiap perintah ditutup ;. Titik koma yang lupa membuat seluruh file gagal dengan Parse error, dan nomor baris di pesannya sering satu baris sesudah tempat yang salah.