Program Pertama

Menulis program PHP pertama dengan tag PHP dan echo, dijalankan lewat CLI dan browser.

Daftar isi

Topik ini membahas cara menulis dan menjalankan program PHP pertama secara utuh. Program yang dibuat tetap sederhana, tetapi seluruh langkahnya nyata: berkas dibuat, kode ditulis, perintah dijalankan, dan keluaran dibaca dari dua sasaran yang berbeda, yaitu command line dan browser. Setelah topik ini dibaca, pembuatan berkas .php baru dan pemilihan cara menjalankannya tidak lagi memerlukan panduan tambahan.

Tag PHP dan pernyataan echo#

Mesin PHP hanya menafsirkan teks yang berada di antara tag pembuka <?php dan tag penutup ?>. Teks di luar kedua tag itu dilewatkan apa adanya ke keluaran tanpa diolah. Berkas yang isinya murni kode PHP biasanya tidak menyertakan tag penutup sama sekali, karena baris kosong setelah tag penutup ikut terkirim dan sering menjadi sumber error yang sulit dilacak. Dokumentasi resmi PHP menyarankan menghilangkan tag penutup pada berkas yang seluruh isinya kode PHP.

Pernyataan echo mengirim teks ke keluaran, dan setiap pernyataan berakhir dengan tanda titik koma. Konstanta PHP_EOL menyediakan karakter baris baru yang sesuai dengan sistem operasi tempat program berjalan, sehingga teks yang mengikutinya ditampilkan pada baris tersendiri di terminal. Berkas berikut adalah program pertama yang akan dijalankan berulang kali pada topik ini.

php halo.php
<?php

echo "Halo, dunia!" . PHP_EOL;
echo "Program pertama berhasil dijalankan." . PHP_EOL;
text Keluaran
Halo, dunia!
Program pertama berhasil dijalankan.

Berkas halo.php memuat dua pernyataan echo yang dijalankan berurutan dari atas ke bawah. Tanda titik di antara teks dan PHP_EOL menggabungkan keduanya menjadi satu baris keluaran. Mekanisme penggabungan teks ini dibahas lebih rinci pada topik operator.

Menjalankan program lewat command line#

Cara paling langsung menjalankan PHP adalah melalui command line. Program php dipanggil dengan satu argumen berupa nama berkas yang hendak dieksekusi, dan perintahnya dijalankan dari folder tempat berkas itu berada. Apabila nama berkas salah ketik, PHP menjawab dengan pesan Could not open input file tanpa menjalankan apa pun. Karena itu, nama berkas adalah hal pertama yang diperiksa ketika perintah tidak merespons seperti biasa.

bash
# jalankan dari folder tempat halo.php berada
php halo.php
text Keluaran
Halo, dunia!
Program pertama berhasil dijalankan.

Program PHP tidak perlu dikompilasi terlebih dahulu. Setiap kali perintah dijalankan, mesin PHP membaca ulang berkasnya dari awal, sehingga perubahan kode langsung terlihat pada eksekusi berikutnya. Perilaku ini membuat siklus penyuntingan menjadi cepat, dan itulah sebabnya mode command line menjadi tempat menguji logika program pada banyak contoh di jalur ini. Jalur berkas juga boleh ditulis lengkap dari akar folder, tetapi kebiasaan berpindah ke folder proyek terlebih dahulu membuat perintahnya tetap pendek dan konsisten.

Menjalankan program lewat browser#

Program PHP juga dapat dijalankan sebagai halaman web. Server bawaan PHP (built-in server) melayani permintaan HTTP tanpa konfigurasi tambahan, sehingga cocok untuk mencoba program di browser selama tahap pengembangan. Server ini dijalankan dengan opsi -S yang diikuti alamat dan port. Folder tempat perintah dijalankan kemudian menjadi folder dokumen yang melayani berkas.

Berkas salam.php memperlihatkan ciri khas PHP: teks HTML ditulis bebas di luar tag, sedangkan bagian yang dinamis ditempatkan di dalam tag PHP.

php salam.php
<?php
$nama = "Dewi";
?>
<!DOCTYPE html>
<html lang="id">
<head>
<meta charset="utf-8">
<title>Contoh salam</title>
</head>
<body>
<h1>Halo, <?php echo $nama; ?>!</h1>
<p>Halaman ini dihasilkan oleh PHP.</p>
</body>
</html>
text Keluaran
<!DOCTYPE html>
<html lang="id">
<head>
<meta charset="utf-8">
<title>Contoh salam</title>
</head>
<body>
<h1>Halo, Dewi!</h1>
<p>Halaman ini dihasilkan oleh PHP.</p>
</body>
</html>

Keluaran di atas adalah teks mentah yang dihasilkan PHP. Variabel $nama sudah tergantikan oleh nilainya, yaitu Dewi, sedangkan struktur HTML tetap utuh. Teks inilah yang dikirim server sebagai respons HTTP, dan browser merendernya menjadi judul serta paragraf. Berikut adalah cara memeriksa respons itu tanpa membuka browser.

bash
# jalankan server bawaan dari folder topik, di latar belakang
php -S localhost:8010 >/dev/null 2>&1 &
# tunggu sebentar hingga server siap melayani
sleep 1
# minta salam.php sebagaimana browser memintanya
curl -s http://localhost:8010/salam.php
# hentikan server
kill %1
text Keluaran
<!DOCTYPE html>
<html lang="id">
<head>
<meta charset="utf-8">
<title>Contoh salam</title>
</head>
<body>
<h1>Halo, Dewi!</h1>
<p>Halaman ini dihasilkan oleh PHP.</p>
</body>
</html>

Teks respons pada contoh curl identik dengan keluaran yang dihasilkan PHP di atas. Perbedaannya terletak pada penerimanya: curl menampilkan teks mentah di terminal, sedangkan browser merender teks itu menjadi tampilan halaman. Pola inilah yang bekerja pada setiap halaman web PHP, dari halaman statis sederhana sampai aplikasi besar.

Alur eksekusi dari berkas ke keluaran#

Eksekusi program PHP mengikuti pola yang sama pada kedua mode. Mesin PHP membaca berkas dari awal, memeriksa keabsahan sintaksnya, menafsirkan kode di antara tag PHP, lalu mengumpulkan keluaran untuk dikirim ke penerima. Tidak ada fase penyimpanan hasil antara dua eksekusi, sehingga dua kali menjalankan berkas yang sama menghasilkan pekerjaan yang sama persis.

Diagram berikut merangkum kedua jalur tersebut.

Mode command linehalo.phpmesin PHPphp halo.phpteks keluarandi terminalMode browsersalam.phpmesin PHP di serverserver bawaanrespons HTMLdirender browser
Dua jalur eksekusi program PHP

Kedua jalur pada diagram menggunakan mesin PHP yang sama. Perbedaannya hanya pada penerima keluaran dan cara keluaran itu ditampilkan. Karena itu, kemampuan menjalankan program lewat command line tetap berguna meskipun tujuan akhirnya aplikasi web, misalnya untuk menguji satu fungsi tanpa membuka browser.

Kesalahan umum#

Tiga kesalahan berikut paling sering muncul saat program pertama ditulis.

  • Berkas tanpa tag pembuka <?php dianggap bukan kode PHP. Seluruh isinya, termasuk perintah echo, dicetak ke keluaran sebagai teks biasa. Perbaikannya adalah mengawali setiap berkas PHP dengan tag <?php.
  • Pernyataan tanpa titik koma menghentikan program dengan pesan parse error. PHP berhenti membaca pada baris yang dilaporkan, tetapi penyebabnya sering berada di baris sebelumnya, sehingga baris di atas pesan error perlu diperiksa juga.
  • Ekstensi berkas yang bukan .php membuat server menyerahkan isi berkas tanpa mengeksekusinya. Berkas halo.txt atau halo.html yang berisi kode PHP ditampilkan apa adanya di browser. Perbaikannya adalah menyimpan program dengan ekstensi .php.
php Contoh: pernyataan tanpa titik koma
// tidak-dijalankan
echo "Baris pertama"       // tanda titik koma hilang di sini
echo "Baris kedua" . PHP_EOL;

Kesalahan ketiga sering luput karena program terlihat benar di editor, tetapi perilakunya berbeda saat dijalankan. Memastikan ekstensi berkas dan keberadaan tag pembuka adalah dua pemeriksaan pertama ketika keluaran tidak sesuai harapan.

Ringkasan#

  • Mesin PHP hanya menafsirkan kode di antara tag <?php dan ?>, sedangkan teks di luar tag dilewatkan apa adanya, dan berkas yang murni kode PHP tidak memerlukan tag penutup.
  • Program dijalankan lewat command line dengan perintah php nama-berkas.php, atau lewat browser dengan server bawaan yang dijalankan php -S localhost:PORT.
  • Keluaran program adalah teks yang dikirim pernyataan echo. Mode command line menampilkannya di terminal, sedangkan mode browser mengirimnya sebagai respons HTML yang dirender.
  • Setiap eksekusi membaca ulang berkas dari awal, sehingga perubahan kode langsung berlaku pada eksekusi berikutnya.

Referensi#