Apa itu PHP?
PHP (Hypertext Preprocessor) adalah bahasa skrip sisi server (server-side) yang populer dan dirancang khusus untuk pengembangan web. Kode PHP dieksekusi di server, dan hasilnya dikirim ke browser sebagai HTML biasa. Ini memungkinkan PHP untuk membuat halaman dinamis, berinteraksi dengan database (seperti MySQL), mengelola sesi pengguna, mengirim email, dan banyak lagi.
Konsep & Sintaks Kunci
Kode PHP disisipkan langsung ke dalam dokumen HTML menggunakan tag
khusus <?php ... ?>. Ciri khas utamanya adalah
variabel yang selalu diawali dengan tanda dolar ($) dan
setiap pernyataan diakhiri dengan titik koma (;).
Variabel dan Echo
Variabel di PHP diawali dengan tanda $. Perintah
echo atau print digunakan untuk
menampilkan output ke halaman HTML.
Contoh Kode:
<?php
$salam = "Halo dari PHP!";
$tahun = 2025;
?>
<h1><?php echo $salam; ?></h1>
<p>Selamat datang di tahun <?php echo $tahun; ?>.</p>
Hasil HTML yang Diterima Browser:
Halo dari PHP!
Selamat datang di tahun 2025.
Struktur Kontrol (If-Else)
Sama seperti bahasa lain, PHP menggunakan struktur
if...elseif...else untuk membuat keputusan dalam
kode.
Contoh Kode:
<?php
$jam = date("H"); // Mengambil jam saat ini (format 24 jam)
if ($jam < "10") {
echo "Selamat pagi!";
} elseif ($jam < "18") {
echo "Selamat siang!";
} else {
echo "Selamat malam!";
}
?>
Kemungkinan Hasil HTML:
Selamat siang!
(Output akan bervariasi tergantung waktu server saat kode dieksekusi)Memproses Data Form
Salah satu kegunaan utama PHP adalah memproses data yang dikirim
dari form HTML. PHP dapat mengambil data menggunakan variabel
superglobal $_GET atau $_POST.
Contoh Kode (Form HTML dan Proses PHP):
<!-- File: form.html -->
<form action="proses.php" method="post">
Nama: <input type="text" name="nama">
<input type="submit">
</form>
<!-- File: proses.php -->
<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
// Mengambil nilai dari input 'nama'
$nama_pengguna = htmlspecialchars($_POST['nama']);
if (empty($nama_pengguna)) {
echo "Nama tidak boleh kosong.";
} else {
echo "Halo, " . $nama_pengguna . "!";
}
}
?>
Kemungkinan Hasil HTML (setelah submit nama "Budi"):
Halo, Budi!
Catatan: Fungsi
htmlspecialchars() penting untuk keamanan, yaitu
mencegah serangan Cross-Site Scripting (XSS) dengan mengubah
karakter khusus menjadi entitas HTML.
Array, Perulangan, dan Fungsi
Untuk membangun aplikasi dinamis, Anda perlu mengelola kumpulan data menggunakan array, melakukan iterasi menggunakan perulangan, dan mengorganisir logika Anda ke dalam fungsi.
Array di PHP
Array adalah variabel khusus yang dapat menampung lebih dari satu nilai. PHP mendukung beberapa jenis array:
- Indexed Array: Array dengan indeks numerik.
- Associative Array: Array yang menggunakan nama kunci (string) yang Anda tetapkan.
Contoh Kode:
<?php
// Indexed Array
$buah = array("Apel", "Pisang", "Ceri");
echo "Buah kedua adalah " . $buah[1]; // Output: Buah kedua adalah Pisang
echo "<br>";
// Associative Array
$umur = array("Budi" => 35, "Citra" => 28);
echo "Umur Budi adalah " . $umur["Budi"]; // Output: Umur Budi adalah 35
?>
Hasil HTML yang Diterima Browser:
Buah kedua adalah Pisang
Umur Budi adalah 35
Perulangan (Loops)
Perulangan foreach adalah cara yang paling umum dan
mudah untuk melakukan iterasi pada setiap elemen dalam sebuah
array.
Contoh Kode (foreach):
<?php
$warna = array("merah", "hijau", "biru");
echo "<ul>";
foreach ($warna as $w) {
echo "<li>Warna " . $w . "</li>";
}
echo "</ul>";
?>
Hasil HTML yang Diterima Browser:
- Warna merah
- Warna hijau
- Warna biru
Fungsi (Functions)
Fungsi adalah blok pernyataan yang dapat digunakan berulang kali dalam sebuah program. Ini membantu menghindari penulisan ulang kode yang sama.
Contoh Kode:
<?php
// Mendefinisikan sebuah fungsi
function hitungLuasPersegi($sisi) {
$luas = $sisi * $sisi;
return $luas;
}
// Memanggil fungsi
$luas_bidang = hitungLuasPersegi(10);
echo "Luas persegi dengan sisi 10 adalah " . $luas_bidang;
?>
Hasil HTML yang Diterima Browser:
Luas persegi dengan sisi 10 adalah 100
Superglobals, Include, dan OOP
Untuk membangun aplikasi web yang fungsional, Anda perlu memahami cara PHP menangani data dari pengguna dan browser, serta cara mengorganisir kode Anda secara efisien menggunakan file terpisah dan class.
Superglobals
Superglobals adalah variabel bawaan yang selalu dapat diakses, terlepas dari skopnya. Beberapa yang paling penting adalah:
-
$_GET: Berisi data yang dikirim melalui parameter URL (query string). -
$_POST: Berisi data yang dikirim dari form HTML denganmethod="post". -
$_SERVER: Berisi informasi tentang server dan lingkungan eksekusi. -
$_SESSION: Berisi variabel sesi yang datanya tersimpan di server, berguna untuk login pengguna.
Contoh Kode (Menggunakan $_GET):
<!-- Misalkan URL adalah: index.php?nama=Miyamura -->
<?php
if (isset($_GET['nama'])) {
$nama = htmlspecialchars($_GET['nama']);
echo "Halo, " . $nama . "!";
} else {
echo "Halo, pengunjung!";
}
?>
Hasil HTML (untuk URL di atas):
Halo, Miyamura!
Menyertakan File: include & require
include dan require mengambil semua
teks/kode/markup yang ada dalam file yang ditentukan dan
menyalinnya ke dalam file yang menggunakan pernyataan tersebut.
Ini sangat berguna untuk memisahkan bagian-bagian website
(seperti header, footer, atau konfigurasi) ke dalam file
terpisah.
Perbedaannya: require akan menghasilkan error fatal
dan menghentikan skrip jika file tidak ditemukan, sedangkan
include hanya akan menghasilkan peringatan dan
skrip akan terus berjalan.
Contoh Kode:
<!-- File: header.php -->
<h1>Selamat Datang di Website Saya</h1>
<!-- File: index.php -->
<?php require 'header.php'; ?>
<p>Ini adalah konten halaman utama.</p>
Dasar OOP dengan Class
Pemrograman Berorientasi Objek (OOP) memungkinkan Anda mengelompokkan properti (variabel) dan method (fungsi) yang terkait ke dalam sebuah "objek". Class adalah cetak biru untuk objek tersebut.
Contoh Kode:
<?php
class Pengguna {
// Properti
public $nama;
// Method (fungsi di dalam class)
public function sapa() {
return "Halo, nama saya adalah " . $this->nama;
}
}
// Membuat objek baru dari class Pengguna
$user1 = new Pengguna();
$user1->nama = "Budi"; // Menetapkan nilai properti
// Memanggil method
echo $user1->sapa();
?>
Hasil HTML yang Diterima Browser:
Halo, nama saya adalah Budi
Database, Composer, dan JSON
Untuk membangun aplikasi backend yang sesungguhnya, Anda perlu berinteraksi dengan database, mengelola pustaka eksternal dengan Composer, dan bekerja dengan format data umum seperti JSON.
Interaksi Database dengan MySQLi
PHP menyediakan beberapa cara untuk terhubung ke database. Salah satu yang paling umum adalah ekstensi MySQLi (MySQL Improved). Praktik terbaik adalah menggunakan Prepared Statements untuk mencegah serangan SQL Injection.
Contoh Kode (Koneksi dan Mengambil Data):
<?php
// 1. Informasi koneksi database
$server = "localhost";
$username = "root";
$password = "";
$database = "nama_database";
// 2. Membuat koneksi
$koneksi = new mysqli($server, $username, $password, $database);
// Periksa koneksi
if ($koneksi->connect_error) {
die("Koneksi gagal: " . $koneksi->connect_error);
}
// 3. Menyiapkan prepared statement
$stmt = $koneksi->prepare("SELECT nama, email FROM pengguna WHERE id = ?");
$id_pengguna = 1;
$stmt->bind_param("i", $id_pengguna); // "i" berarti tipe integer
// 4. Eksekusi dan ambil hasil
$stmt->execute();
$hasil = $stmt->get_result();
$pengguna = $hasil->fetch_assoc();
if ($pengguna) {
echo "Nama: " . $pengguna['nama'] . ", Email: " . $pengguna['email'];
}
// 5. Tutup koneksi
$stmt->close();
$koneksi->close();
?>
Catatan: Kode ini memerlukan server database yang berjalan dan sebuah database dengan tabel yang sesuai untuk dapat dieksekusi.
Manajemen Dependensi dengan Composer
Composer adalah manajer dependensi untuk PHP. Ia memungkinkan Anda mendeklarasikan pustaka yang dibutuhkan oleh proyek Anda dan akan mengelola (menginstal/memperbarui) pustaka tersebut untuk Anda. Ini adalah alat yang esensial dalam ekosistem PHP modern.
Cara Menggunakan (di Terminal):
# 1. Inisialisasi Composer di folder proyek Anda
# (akan membuat file composer.json)
composer init
# 2. Menambahkan pustaka (misalnya, pustaka untuk logging bernama 'monolog')
composer require monolog/monolog
# 3. Composer akan membuat folder 'vendor' dan file 'autoload.php'
# Sertakan autoloader di skrip Anda untuk menggunakan pustaka
require 'vendor/autoload.php';
# Sekarang Anda bisa menggunakan class dari Monolog
use Monolog\Logger;
use Monolog\Handler\StreamHandler;
// ... dan seterusnya
Bekerja dengan JSON
PHP memiliki fungsi bawaan untuk mengubah data PHP menjadi
format JSON (json_encode) dan sebaliknya
(json_decode). Ini sangat penting saat membuat atau
berkomunikasi dengan API.
Contoh Kode:
<?php
// Mengubah Array PHP menjadi String JSON
$data_array = array("nama" => "Budi", "umur" => 30);
$json_string = json_encode($data_array, JSON_PRETTY_PRINT);
echo "<pre>" . $json_string . "</pre>";
// Mengubah String JSON menjadi Objek PHP
$json_data = '{"kota": "Jakarta", "aktif": true}';
$objek_php = json_decode($json_data);
echo "Kota: " . $objek_php->kota; // Mengakses properti objek
?>
Hasil HTML yang Diterima Browser:
{
"nama": "Budi",
"umur": 30
}
Kota: Jakarta