🐘 PHP

Bahasa backend paling populer di web, dipakai hampir separuh internet — termasuk WordPress.

Pengenalan PHP

PHP (PHP: Hypertext Preprocessor) adalah bahasa server-side yang jalan di server, bukan di browser. Kode PHP diproses server dulu, hasilnya (biasanya HTML) baru dikirim ke browser.

Kode PHP selalu diapit tag <?php ... ?> dan file berekstensi .php.

💡 PHP bisa dicampur langsung dengan HTML di file yang sama — ini yang bikin PHP praktis untuk generate halaman web dinamis.
php
<?php
// Ini komentar satu baris
# Ini juga komentar satu baris

/*
 * Ini komentar
 * multi-baris
 */
echo "Halo Dunia!";
?>
📌 Bagian Penting: Setiap statement PHP wajib diakhiri titik koma ; — kecuali baris terakhir sebelum ?> (boleh tanpa titik koma, tapi tetap dibiasakan pakai supaya konsisten).
🐞 Error Umum di Bagian Ini
Parse error: syntax error, unexpected end of file
Lupa menutup tag ?>, atau ada kurung kurawal { yang tidak ditutup.
Fix: cek pasangan tanda kurung dan tag PHP sudah lengkap.
Parse error: syntax error, unexpected token "echo"
Lupa titik koma di statement sebelumnya.
Fix: tambahkan ; di akhir baris sebelum error.

Sintaks Dasar

PHP dijalankan di server. Struktur dasarnya simpel — tidak butuh fungsi main() seperti Java/C++.

  • <?php ... ?> — pembatas kode PHP
  • echo — buat nampilin output (paling umum dipakai)
  • print — mirip echo, tapi cuma bisa 1 argumen
  • ; — wajib di akhir statement
php
<?php
echo "Baris pertama\n";
echo "Ini ", "bisa ", "banyak ", "argumen\n";
print "Baris kedua pakai print\n";
?>
📌 Bagian Penting: echo bisa menerima banyak argumen dipisah koma, sedangkan print cuma bisa satu. Kebanyakan developer PHP lebih sering pakai echo karena lebih fleksibel.
🐞 Error Umum di Bagian Ini
Fatal error: Uncaught Error: Too few arguments to function print()
Mencoba memberi print lebih dari satu argumen dipisah koma — print hanya menerima satu.
Fix: pakai echo kalau butuh banyak argumen, atau gabungkan dengan operator titik ..

Variabel & Tipe Data

Semua variabel PHP wajib diawali tanda dollar $. PHP juga dynamic typing — mirip Python/JavaScript, tidak perlu deklarasi tipe.

php
<?php
$nama = "Budi";      // string
$umur = 21;          // int
$tinggi = 165.5;      // float
$aktif = true;        // bool

echo "Nama: $nama\n";          // variabel bisa langsung di dalam string ganda
echo 'Nama: $nama\n';          // TIDAK berlaku di string tunggal (tercetak apa adanya)
echo gettype($umur) . "\n";    // cek tipe data: integer

var_dump($tinggi); // tampilkan tipe + nilai sekaligus
?>
📌 Bagian Penting: Variabel di dalam string kutip dua ("Halo $nama") otomatis diganti nilainya. Tapi di string kutip satu ('Halo $nama'), teks $nama dicetak apa adanya, tidak diganti.
🐞 Error Umum di Bagian Ini
Warning: Undefined variable $nama
Memakai variabel yang belum pernah diberi nilai sebelumnya.
Fix: pastikan variabel sudah diisi dengan $nama = "..."; sebelum dipakai.
(tidak error, tapi hasil salah) 'Halo $nama' tercetak apa adanya, bukan "Halo Budi"
Memakai kutip satu, bukan kutip dua — kutip satu tidak memproses variabel di dalamnya.
Fix: ganti ke kutip dua kalau butuh variabel ikut diproses: "Halo $nama".

Operator

Aritmatika dan perbandingan mirip bahasa lain, tapi PHP punya operator penggabung string yang khas: titik .

php
<?php
$a = 15;
$b = 4;

echo $a + $b, "\n"; // 19
echo $a % $b, "\n"; // 3

// Penggabungan string pakai titik, BUKAN plus
$nama = "Budi";
echo "Halo, " . $nama . "!\n";

// Perbandingan: == vs ===
var_dump(5 == "5");   // true  (nilai sama, tipe beda -> dianggap sama)
var_dump(5 === "5");  // false (tipe beda -> dianggap beda)
?>
📌 Bagian Penting: PHP punya dua jenis perbandingan: == (cuma bandingkan nilai, tipe boleh beda) dan === (bandingkan nilai dan tipe, harus sama persis). Selalu pakai === kalau ingin perbandingan yang ketat dan menghindari bug tak terduga.
🐞 Error Umum di Bagian Ini
(tidak error, tapi hasil salah) "Halo" + $nama menghasilkan angka aneh atau 0
Salah pakai operator + untuk gabungkan string — di PHP, + itu operator matematika, bukan penggabung teks.
Fix: pakai titik . untuk menggabungkan string, bukan +.
(tidak error, tapi logika salah) if ($nilai == "0") true walau $nilai sebenarnya kosong
Memakai == yang longgar, jadi beberapa nilai yang "beda tipe tapi keliatan mirip" dianggap sama.
Fix: pakai === untuk perbandingan yang ketat dan lebih aman.

Kondisi

if-elseif-else dan switch — sintaksnya mirip C-family.

php
<?php
$nilai = 82;

if ($nilai >= 85) {
    echo "Grade A\n";
} elseif ($nilai >= 70) {
    echo "Grade B\n";
} else {
    echo "Grade C\n";
}

// Switch
$hari = 2;
switch ($hari) {
    case 1:
        echo "Senin\n";
        break;
    case 2:
        echo "Selasa\n";
        break;
    default:
        echo "Hari lain\n";
}
?>
📌 Bagian Penting: PHP menulis "else if" sebagai satu kata: elseif (tanpa spasi) — walau else if (dua kata) sebenarnya juga valid, kebiasaan komunitas PHP lebih sering pakai elseif.
🐞 Error Umum di Bagian Ini
(tidak error, tapi output salah — lebih dari satu case tercetak)
Lupa break; di salah satu case switch.
Fix: tambahkan break; di akhir setiap case.

Perulangan

for, while, dan foreach — foreach paling sering dipakai buat iterasi array di PHP.

php
<?php
// For
for ($i = 1; $i <= 5; $i++) {
    echo $i . " ";
}
echo "\n";

// While
$j = 1;
while ($j <= 5) {
    echo $j . " ";
    $j++;
}
echo "\n";

// Foreach — paling umum buat array
$buah = ["apel", "mangga", "jeruk"];
foreach ($buah as $index => $item) {
    echo ($index + 1) . ". $item\n";
}
?>
📌 Bagian Penting: foreach adalah cara paling PHP-idiomatic buat iterasi array — jauh lebih sering dipakai dibanding for biasa untuk keperluan ini, karena tidak perlu mikirin index secara manual.
🐞 Error Umum di Bagian Ini
(program hang, tidak pernah selesai)
Variabel counter di while tidak pernah di-update (lupa $j++;).
Fix: pastikan ada baris yang mengubah variabel kondisi di dalam badan loop.

Fungsi

Fungsi PHP pakai kata kunci function. Tipe parameter/return bersifat opsional (tapi disarankan ditulis biar jelas).

php
<?php
function sapa($nama) {
    return "Halo, $nama!";
}

echo sapa("Diki") . "\n";

// Dengan default parameter
function perkenalan($nama, $umur = 17) {
    echo "Nama: $nama, Umur: $umur\n";
}
perkenalan("Siti");        // pakai default umur
perkenalan("Budi", 22);    // override default

// Dengan type hint (opsional tapi direkomendasikan)
function kuadrat(int $x): int {
    return $x * $x;
}
echo kuadrat(5) . "\n";
?>
📌 Bagian Penting: Type hint seperti int $x dan : int di atas opsional di PHP — tapi sangat disarankan dipakai karena membuat kode lebih jelas dan membantu PHP mendeteksi bug lebih awal.
🐞 Error Umum di Bagian Ini
Fatal error: Uncaught ArgumentCountError: Too few arguments to function sapa()
Memanggil fungsi tanpa memberi argumen wajib yang tidak punya nilai default.
Fix: pastikan semua parameter wajib (tanpa default) diisi saat memanggil fungsi.
Fatal error: Uncaught TypeError: kuadrat(): Argument #1 ($x) must be of type int, string given
Fungsi punya type hint int $x, tapi dipanggil dengan argumen bertipe string.
Fix: pastikan argumen yang dikirim sesuai tipe yang diminta, atau konversi dulu dengan (int).

Array

PHP punya 2 jenis array: indexed array (index angka otomatis) dan associative array (key custom, mirip dictionary/object).

php
<?php
// Indexed array
$buah = ["apel", "mangga", "jeruk"];
echo $buah[0] . "\n"; // apel
$buah[] = "anggur";   // tambah di akhir

// Associative array
$user = [
    "nama" => "Diki",
    "umur" => 20,
];
echo $user["nama"] . "\n";
$user["email"] = "diki@mail.com"; // tambah key baru

// Fungsi array bawaan
echo count($buah) . "\n";      // jumlah elemen
print_r($user);                 // tampilkan struktur array
?>
📌 Bagian Penting: Associative array PHP ("key" => "value") fungsinya mirip dictionary di Python atau object di JavaScript — sangat sering dipakai untuk merepresentasikan data terstruktur seperti hasil query database.
🐞 Error Umum di Bagian Ini
Warning: Undefined array key "email"
Mencoba mengakses key yang belum ada di array.
Fix: cek dulu dengan isset($user["email"]) sebelum mengaksesnya, atau pastikan key sudah ditambahkan.

🚀 Mini Project: Sistem Belanja Sederhana

Gabungkan array asosiatif, fungsi, dan perulangan jadi program hitung total belanja dengan diskon.

💡 Contoh Implementasi
php
<?php
$keranjang = [
    ["nama" => "Kaos",   "harga" => 75000,  "qty" => 2],
    ["nama" => "Celana", "harga" => 150000, "qty" => 1],
];

function hitungSubtotal($item) {
    return $item["harga"] * $item["qty"];
}

function terapkanDiskon($total, $persen) {
    return $total - ($total * $persen / 100);
}

$total = 0;
echo "=== STRUK BELANJA ===\n";
foreach ($keranjang as $item) {
    $subtotal = hitungSubtotal($item);
    echo "{$item['nama']} x{$item['qty']} = Rp" . number_format($subtotal) . "\n";
    $total += $subtotal;
}

echo "-------------------\n";
echo "Subtotal: Rp" . number_format($total) . "\n";

$totalDiskon = terapkanDiskon($total, 10);
echo "Setelah diskon 10%: Rp" . number_format($totalDiskon) . "\n";
?>
📌 Tantangan: Coba tambahkan item ketiga, atau buat diskon bertingkat (mis. beli di atas Rp200.000 dapat diskon 15%).

✦ Coba Sendiri

Tulis kode PHP di kiri, klik Run — outputnya langsung tampil di kanan. Dijalankan via server online, gak perlu XAMPP!

Live PHP Editor
code
output
Output akan muncul di sini...
🎓

Selamat!

Telah menyelesaikan seluruh materi

PHP Beginner — web-ngoding
🔄 Versi baru tersedia