Tutorial PHP Dasar
Panduan lengkap mempelajari PHP dari nol untuk pemula
1. Pengenalan PHP
1
Apa itu PHP
PHP (PHP: Hypertext Preprocessor) adalah bahasa pemrograman server-side yang digunakan untuk membuat website dinamis.
Karakteristik PHP:
- Server-side scripting language (dijalankan di server)
- Open source dan gratis
- Support berbagai database (MySQL, PostgreSQL, MongoDB)
- Mudah dipelajari oleh pemula
- Digunakan oleh jutaan website (WordPress, Facebook, Instagram)
2
Perbedaan Client-side dan Server-side
Perbandingan
CLIENT-SIDE:
- JavaScript, HTML, CSS
- Dijalankan di browser pengguna
- Tidak bisa akses database langsung
- Lebih cepat (tidak perlu request ke server)
SERVER-SIDE:
- PHP, Python, Node.js, Java
- Dijalankan di server
- Bisa akses database dan file
- Lebih aman (kode tidak terlihat di browser)
3
Keuntungan Belajar PHP
- Mudah dipelajari dibanding bahasa backend lain
- Banyak framework populer (Laravel, Symfony, CodeIgniter)
- Permintaan kerja tinggi di industry
- Documentasi lengkap dan komunitas besar
- Bisa hosting dengan harga murah
- Setup mudah tanpa konfigurasi rumit
2. Requirements dan Setup
1
Kebutuhan Software
Untuk memulai belajar PHP, Anda memerlukan:
- Web Server (Apache atau Nginx)
- PHP Interpreter (PHP 8.0+)
- Database Server (MySQL atau MariaDB)
- Text Editor atau IDE (VS Code, Sublime Text, PHPStorm)
Solusi mudah: Install XAMPP yang sudah include semua diatas!
2
Install XAMPP
Langkah Instalasi XAMPP
LANGKAH 1: Download
1. Buka https://www.apachefriends.org/
2. Download XAMPP untuk Windows (PHP 8.2+)
3. Jalankan file installer
LANGKAH 2: Instalasi
1. Pilih folder: C:\xampp (default)
2. Pilih komponen: Apache, MySQL, PHP
3. Klik Next hingga selesai
LANGKAH 3: Verifikasi
1. Buka XAMPP Control Panel
2. Klik "Start" untuk Apache
3. Klik "Start" untuk MySQL
4. Tunggu status menjadi "Running" (hijau)
3
Setup Text Editor (VS Code)
Setup VS Code
LANGKAH 1: Download dan Install
1. Buka https://code.visualstudio.com/
2. Download untuk Windows
3. Jalankan installer
LANGKAH 2: Install Extensions
1. Buka VS Code
2. Klik Extensions (icon kotak di kiri)
3. Install extensions:
- PHP Intelephense
- PHP Extension Pack
- REST Client
LANGKAH 3: Setup Local Server
1. Install extension "Live Server"
2. Atau gunakan: php -S localhost:8000
4
Buat File PHP Pertama
Langkah
1. Buat folder: C:\xampp\htdocs\belajar-php
2. Buat file: index.php
3. Tulis kode PHP pertama
4. Buka di browser: http://localhost/belajar-php/index.php
3. Syntax dan Pengenalan
1
Tag PHP Dasar
Setiap code PHP harus dimulai dengan <?php dan diakhiri dengan ?>
index.php
<?php
echo "Halo, Dunia!";
?>
Tag penutup ?> opsional jika hanya PHP di file tersebut
2
Statement dan Comment
Statement dan Comment
<?php
// Ini adalah single line comment
# Ini juga single line comment
/*
Ini adalah multi-line comment
Bisa lebih dari satu baris
*/
echo "Statement harus diakhiri dengan semicolon;
echo "Ini string dengan double quote";
echo 'Ini string dengan single quote';
// Print juga bisa digunakan seperti echo
print "Ini menggunakan print";
?>
3
Output dengan echo dan print
Output
<?php
// echo bisa output multiple parameter
echo "Halo", " ", "Dunia"; // Output: Halo Dunia
// print hanya satu parameter
print "Ini print"; // Output: Ini print
// Bisa juga tanpa parenthesis
echo("String");
print("String");
// Menggabung string dengan dot (.)
echo "Nama saya " . "Ahmad" . " Hidayat";
// Output: Nama saya Ahmad Hidayat
?>
4
Escape Character
Escape Sequences
<?php
echo "Baris pertama\nBaris kedua"; // \n = newline
echo "Tab\tspasi"; // \t = tab
echo "Kutip \" dalam string"; // \" = double quote
echo 'Kutip \' dalam string'; // \' = single quote
echo "Backslash \\"; // \\ = backslash
// HTML di echo
echo "<h1>Ini heading</h1>";
echo "<br>"; // Line break HTML
?>
4. Variabel dan Naming
1
Pengenalan Variabel
Variabel adalah tempat menyimpan data yang bisa digunakan ulang.
Variabel Dasar
<?php
// Deklarasi dan inisialisasi variabel
$nama = "Ahmad";
$umur = 20;
$tinggi = 170.5;
// Menggunakan variabel
echo "Nama saya adalah " . $nama;
echo "Umur saya " . $umur . " tahun";
// Update nilai variabel
$nama = "Budi"; // sekarang $nama = "Budi"
echo $nama;
?>
2
Aturan Naming Variabel
Aturan
BENAR:
$nama = "Ahmad"; // Huruf
$nama_lengkap = "Ahmad"; // Underscore
$namaLengkap = "Ahmad"; // camelCase
$_nama = "Ahmad"; // Underscore di awal
$nama2 = "Ahmad"; // Angka (tidak di awal)
SALAH:
$2nama = "Ahmad"; // Tidak boleh mulai dengan angka
$nama-lengkap = "Ahmad"; // Tidak boleh dash/minus
$nama lengkap = "Ahmad"; // Tidak boleh spasi
$nama@lengkap = "Ahmad"; // Tidak boleh simbol khusus
CASE SENSITIVE:
$nama = "Ahmad";
$Nama = "Budi";
$NAMA = "Citra";
// Ketiga variabel di atas BERBEDA
3
Konvensi Naming
- Gunakan camelCase untuk nama variabel (namaLengkap)
- Gunakan snake_case untuk array/object ($user_data)
- Hindari single letter kecuali untuk loop ($i, $x)
- Gunakan nama yang deskriptif ($nama_pengguna bukan $n)
5. Tipe Data
1
Tipe Data String
String
<?php
// Double quote - bisa interpolasi variabel
$nama = "Ahmad";
echo "Halo $nama"; // Output: Halo Ahmad
echo "Halo {$nama}"; // Output: Halo Ahmad
// Single quote - literal
echo 'Halo $nama'; // Output: Halo $nama (literal)
// String concatenation
$kata1 = "Selamat";
$kata2 = "Pagi";
echo $kata1 . " " . $kata2; // Output: Selamat Pagi
// String dengan heredoc
$text = <<<EOT
Ini adalah
string multiline
dengan heredoc
EOT;
// String dengan nowdoc (seperti single quote)
$text = <<<'EOT'
Ini tidak akan interpolasi $variabel
EOT;
// Fungsi string
echo strlen("Ahmad"); // 5 - panjang string
echo strtoupper("ahmad"); // AHMAD - uppercase
echo strtolower("AHMAD"); // ahmad - lowercase
echo str_replace("Ahmad", "Budi", "Halo Ahmad"); // Halo Budi
?>
2
Tipe Data Integer dan Float
Angka
<?php
// Integer - bilangan bulat
$umur = 20;
$tahun = 2025;
$suhu = -5;
// Float - bilangan desimal
$tinggi = 170.5;
$berat = 65.75;
$pi = 3.14159;
// Operasi matematika
$a = 10;
$b = 3;
echo $a + $b; // 13
echo $a - $b; // 7
echo $a * $b; // 30
echo $a / $b; // 3.33...
echo $a % $b; // 1 (sisa bagi/modulo)
echo $a ** $b; // 1000 (pangkat)
// Fungsi math
echo abs(-5); // 5 - absolute value
echo round(3.6); // 4 - pembulatan
echo floor(3.9); // 3 - pembulatan ke bawah
echo ceil(3.1); // 4 - pembulatan ke atas
echo max(10, 20, 5); // 20 - nilai terbesar
echo min(10, 20, 5); // 5 - nilai terkecil
echo rand(1, 100); // Random 1-100
// Cek tipe data
var_dump($umur); // Output: int(20)
var_dump($tinggi); // Output: float(170.5)
?>
3
Tipe Data Boolean
Boolean
<?php
// Boolean - true atau false
$aktif = true;
$admin = false;
// Hasil perbandingan adalah boolean
$umur = 20;
echo $umur > 18; // true (output: 1)
echo $umur < 18; // false (output: empty)
// Fungsi yang return boolean
echo is_int(20); // true
echo is_float(20.5); // true
echo is_string("Ahmad"); // true
echo is_bool(true); // true
echo is_array([1, 2, 3]); // true
echo is_null($undefined); // true
// Boolean di echo menampilkan 1 atau nothing
echo true; // 1
echo false; // (empty)
// Gunakan var_dump untuk melihat dengan jelas
var_dump(true); // bool(true)
var_dump(false); // bool(false)
?>
4
Tipe Data NULL
NULL
<?php
// NULL - variabel tanpa nilai
$nama = NULL;
$kosong = null; // case insensitive
// Variabel yang tidak didefinisikan otomatis NULL
// echo $undefined; // Error (undefined variable)
// Unset variabel
$umur = 20;
unset($umur);
// $umur sekarang tidak ada
// Cek apakah variabel NULL
$data = null;
echo is_null($data); // true
// Operasi dengan NULL
$hasil = null + 5; // 5 (NULL = 0 dalam operasi)
?>
5
Type Casting
Konversi Tipe
<?php
// Casting ke integer
$angka = (int)"20"; // 20
$desimal = (int)20.9; // 20
$bool = (int)true; // 1
$bool = (int)false; // 0
// Casting ke float
$angka = (float)"20.5"; // 20.5
$bilangan = (float)20; // 20.0
// Casting ke string
$angka = (string)20; // "20"
$bool = (string)true; // "1"
// Casting ke boolean
$angka = (bool)0; // false
$angka = (bool)1; // true
$angka = (bool)""; // false
$angka = (bool)"text"; // true
// Casting ke array
$string = (array)"Ahmad"; // Array ( [0] => Ahmad )
// Automatic type juggling
echo "20" + 5; // 25 (string + int = int)
echo "20x" + 5; // 25 (string numeric dibaca)
echo "x20" + 5; // 5 (string non-numeric = 0)
?>
6. Operator
Aritmatika
+, -, *, /, %, ** untuk operasi matematika
Perbandingan
==, ===, !=, !==, <, >, <=, >= untuk membandingkan
Logika
&&, ||, ! untuk operasi boolean
Assignment
=, +=, -=, *=, /= untuk assign nilai
1
Operator Aritmatika
Aritmatika
<?php
$a = 10;
$b = 3;
echo $a + $b; // 13 - Penjumlahan
echo $a - $b; // 7 - Pengurangan
echo $a * $b; // 30 - Perkalian
echo $a / $b; // 3.33... - Pembagian
echo $a % $b; // 1 - Modulo (sisa bagi)
echo $a ** $b; // 1000 - Pangkat
echo -$a; // -10 - Negasi
// Increment dan Decrement
$x = 5;
echo ++$x; // 6 - Pre-increment (increment dahulu)
echo $x++; // 6 - Post-increment (output dahulu)
echo $x; // 7
$y = 5;
echo --$y; // 4 - Pre-decrement
echo $y--; // 4 - Post-decrement
echo $y; // 3
?>
2
Operator Perbandingan
Perbandingan
<?php
$a = 10;
$b = 20;
echo $a == $b; // false - sama dengan
echo $a != $b; // true - tidak sama dengan
echo $a < $b; // true - kurang dari
echo $a > $b; // false - lebih dari
echo $a <= $b; // true - kurang dari sama dengan
echo $a >= $b; // false - lebih dari sama dengan
// Strict comparison (tipe data juga dibandingkan)
echo 10 == "10"; // true (value sama)
echo 10 === "10"; // false (type berbeda)
echo 10 !== "10"; // true
// Spaceship operator (<=>)
echo 10 <=> 20; // -1 (10 lebih kecil)
echo 20 <=> 20; // 0 (sama)
echo 30 <=> 20; // 1 (30 lebih besar)
// Null coalescing (??)
$nama = null;
echo $nama ?? "Tidak ada"; // Output: Tidak ada
?>
3
Operator Logika
Logika
<?php
$a = true;
$b = false;
// AND operator
echo $a && $b; // false
echo $a and $b; // false (alternatif)
// OR operator
echo $a || $b; // true
echo $a or $b; // true (alternatif)
// NOT operator
echo !$a; // false
echo !$b; // true
// XOR operator
echo $a xor $b; // true
// Contoh di kondisi
$umur = 20;
$kendaraan = true;
if ($umur > 18 && $kendaraan) {
echo "Bisa naik mobil"; // Dicetak
}
if ($umur < 18 || $kendaraan) {
echo "Bisa menggunakan kendaraan"; // Dicetak
}
?>
4
Operator Assignment
Assignment
<?php
$x = 10;
$x = 20; // x = 20
$x += 5; // x = x + 5 = 25
$x -= 5; // x = x - 5 = 20
$x *= 2; // x = x * 2 = 40
$x /= 4; // x = x / 4 = 10
$x %= 3; // x = x % 3 = 1
// String concatenation assignment
$nama = "Ahmad";
$nama .= " Hidayat"; // nama = nama . " Hidayat"
echo $nama; // Ahmad Hidayat
// Ternary operator (shorthand if-else)
$umur = 20;
$status = ($umur > 18) ? "Dewasa" : "Anak-anak";
echo $status; // Dewasa
// Elvis operator (shorthand ternary)
$nama = null;
echo $nama ?: "Tidak ada"; // Tidak ada
?>
7. Array
1
Array Indexed
Indexed Array
<?php
// Deklarasi array indexed
$buah = ["Apel", "Pisang", "Jeruk"];
// Akses elemen
echo $buah[0]; // Apel
echo $buah[1]; // Pisang
echo $buah[2]; // Jeruk
// Tambah elemen
$buah[3] = "Mangga";
$buah[] = "Nanas"; // Otomatis index 4
// Loop array
foreach ($buah as $item) {
echo $item . "\n";
}
// Loop dengan index
foreach ($buah as $index => $item) {
echo $index . ": " . $item . "\n";
}
// Fungsi array
echo count($buah); // 5 - jumlah elemen
echo in_array("Apel", $buah); // true - cek keberadaan
// Array functions
$buah2 = ["Manggis", "Duku"];
$semua = array_merge($buah, $buah2); // Gabung array
sort($buah); // Sort ascending
rsort($buah); // Sort descending
?>
2
Array Associative
Associative Array
<?php
// Deklarasi dengan key-value
$siswa = [
"nama" => "Ahmad",
"umur" => 20,
"kelas" => "XII RPL"
];
// Akses dengan key
echo $siswa["nama"]; // Ahmad
echo $siswa["umur"]; // 20
// Tambah elemen
$siswa["email"] = "ahmad@sekolah.id";
// Loop
foreach ($siswa as $key => $value) {
echo $key . ": " . $value . "\n";
}
// Function array associative
echo isset($siswa["nama"]); // true
echo array_key_exists("nama", $siswa); // true
echo in_array("Ahmad", $siswa); // true
// Get keys
$keys = array_keys($siswa);
var_dump($keys); // ["nama", "umur", "kelas", "email"]
// Get values
$values = array_values($siswa);
var_dump($values); // ["Ahmad", 20, "XII RPL", "ahmad@sekolah.id"]
?>
3
Array Multidimensi
Multidimensional Array
<?php
// Array 2D
$siswa = [
["Ahmad", "20", "XII RPL"],
["Budi", "19", "XII TKJ"],
["Citra", "20", "XII RPL"]
];
echo $siswa[0][0]; // Ahmad
echo $siswa[1][1]; // 19
echo $siswa[2][2]; // XII RPL
// Array 2D dengan associative
$siswa = [
[
"nama" => "Ahmad",
"umur" => 20,
"kelas" => "XII RPL"
],
[
"nama" => "Budi",
"umur" => 19,
"kelas" => "XII TKJ"
]
];
echo $siswa[0]["nama"]; // Ahmad
echo $siswa[1]["umur"]; // 19
// Loop multidimensi
foreach ($siswa as $item) {
echo "Nama: " . $item["nama"] . "\n";
echo "Umur: " . $item["umur"] . "\n";
}
?>
4
Array Functions
Fungsi-fungsi Array
<?php
$angka = [3, 1, 4, 1, 5, 9, 2, 6];
// Sorting
sort($angka); // Ascending
rsort($angka); // Descending
asort($angka); // Ascending (maintain index)
arsort($angka); // Descending (maintain index)
ksort($array); // Sort by key
// Array functions
echo count($angka); // 8 - jumlah elemen
echo array_sum($angka); // 31 - jumlah nilai
echo array_product($angka); // 97920 - perkalian
// Searching
echo in_array(5, $angka); // true
echo array_search(5, $angka); // 4 - index
// Manipulasi
$flip = array_flip($angka); // Reverse key-value
$unique = array_unique($angka); // Remove duplicate
$reverse = array_reverse($angka); // Reverse order
// Map dan filter
$times2 = array_map(function($x) {
return $x * 2;
}, $angka);
$genap = array_filter($angka, function($x) {
return $x % 2 == 0;
});
// Reduce
$total = array_reduce($angka, function($carry, $item) {
return $carry + $item;
}, 0); // 31
?>
8. Kontrol Alur Program
1
If, Elseif, Else
Percabangan If
<?php
$umur = 20;
// If sederhana
if ($umur > 18) {
echo "Anda dewasa";
}
// If-else
if ($umur > 18) {
echo "Anda dewasa";
} else {
echo "Anda masih anak-anak";
}
// If-elseif-else
if ($umur < 13) {
echo "Anak-anak";
} elseif ($umur < 18) {
echo "Remaja";
} elseif ($umur < 60) {
echo "Dewasa";
} else {
echo "Lansia";
}
// Multiple conditions
$umur = 20;
$kendaraan = true;
if ($umur > 18 && $kendaraan) {
echo "Boleh naik mobil";
}
if ($umur > 18 || $kendaraan) {
echo "Boleh menggunakan kendaraan";
}
// Nested if
if ($umur > 18) {
if ($kendaraan) {
echo "Boleh naik mobil pribadi";
} else {
echo "Boleh naik kendaraan umum";
}
}
?>
2
Switch Statement
Switch
<?php
$hari = "Selasa";
switch ($hari) {
case "Senin":
echo "Awal minggu";
break;
case "Selasa":
case "Rabu":
case "Kamis":
echo "Tengah minggu";
break;
case "Jumat":
echo "Hampir weekend";
break;
case "Sabtu":
case "Minggu":
echo "Weekend";
break;
default:
echo "Hari tidak valid";
}
// Switch dengan condition complex
$nilai = 85;
switch (true) {
case $nilai >= 90:
echo "A";
break;
case $nilai >= 80:
echo "B";
break;
case $nilai >= 70:
echo "C";
break;
default:
echo "D";
}
?>
3
Loop For
For Loop
<?php
// For loop standar
for ($i = 1; $i <= 5; $i++) {
echo $i . " ";
} // Output: 1 2 3 4 5
// For loop descending
for ($i = 5; $i >= 1; $i--) {
echo $i . " ";
} // Output: 5 4 3 2 1
// For loop dengan step
for ($i = 0; $i <= 10; $i += 2) {
echo $i . " ";
} // Output: 0 2 4 6 8 10
// Nested for loop (tabel perkalian)
for ($i = 1; $i <= 3; $i++) {
for ($j = 1; $j <= 3; $j++) {
echo $i * $j . " ";
}
echo "\n";
}
// Break dan continue
for ($i = 1; $i <= 10; $i++) {
if ($i == 5) {
break; // Keluar dari loop
}
if ($i % 2 == 0) {
continue; // Skip ke iterasi berikutnya
}
echo $i . " ";
} // Output: 1 3
?>
4
Loop While dan Do-While
While Loop
<?php
// While loop
$i = 1;
while ($i <= 5) {
echo $i . " ";
$i++;
} // Output: 1 2 3 4 5
// While dengan break
$i = 1;
while (true) {
echo $i . " ";
if ($i == 5) {
break;
}
$i++;
}
// Do-while (minimal 1x dijalankan)
$i = 1;
do {
echo $i . " ";
$i++;
} while ($i <= 5); // Output: 1 2 3 4 5
// Do-while dengan kondisi false
$i = 10;
do {
echo "Dijalankan 1x meski kondisi false\n";
} while ($i < 5);
// Foreach loop (untuk array)
$buah = ["Apel", "Pisang", "Jeruk"];
foreach ($buah as $item) {
echo $item . "\n";
}
// Foreach dengan key dan value
$siswa = ["Ahmad" => 90, "Budi" => 85, "Citra" => 92];
foreach ($siswa as $nama => $nilai) {
echo $nama . ": " . $nilai . "\n";
}
?>
9. Fungsi
1
Pengenalan Fungsi
Fungsi Dasar
<?php
// Deklarasi fungsi sederhana
function sapaNama() {
echo "Halo, dunia!";
}
// Memanggil fungsi
sapaNama(); // Output: Halo, dunia!
// Fungsi dengan parameter
function greeting($nama) {
echo "Halo, " . $nama;
}
greeting("Ahmad"); // Output: Halo, Ahmad
greeting("Budi"); // Output: Halo, Budi
// Fungsi dengan multiple parameter
function jumlah($a, $b) {
return $a + $b;
}
echo jumlah(5, 3); // 8
// Fungsi dengan default parameter
function sapa($nama = "Teman") {
echo "Halo, " . $nama;
}
sapa(); // Output: Halo, Teman
sapa("Ahmad"); // Output: Halo, Ahmad
?>
2
Return Value
Return
<?php
// Fungsi return nilai
function tambah($a, $b) {
return $a + $b;
}
$hasil = tambah(5, 3);
echo $hasil; // 8
// Fungsi return string
function salam($nama) {
return "Selamat datang, " . $nama;
}
echo salam("Ahmad"); // Selamat datang, Ahmad
// Fungsi return array
function getData() {
return ["Ahmad", 20, "XII RPL"];
}
$data = getData();
echo $data[0]; // Ahmad
// Fungsi return multiple dengan list
function getUserData() {
return ["Ahmad", "ahmad@gmail.com", 90];
}
list($nama, $email, $nilai) = getUserData();
echo $nama; // Ahmad
// Atau dengan array destructuring (PHP 7.1+)
[$nama, $email, $nilai] = getUserData();
// Fungsi return boolean
function isBilangan($var) {
return is_numeric($var);
}
echo isBilangan(20); // 1 (true)
echo isBilangan("abc"); // (empty/false)
?>
3
Type Hinting dan Return Type
Type Declaration
<?php
// Type hinting untuk parameter
function jumlah(int $a, int $b): int {
return $a + $b;
}
echo jumlah(5, 3); // 8
// jumlah(5, "3"); // Error
// Type hinting string
function greeting(string $nama): string {
return "Halo, " . $nama;
}
echo greeting("Ahmad"); // Halo, Ahmad
// Type hinting array
function printArray(array $data): void {
foreach ($data as $item) {
echo $item . " ";
}
}
printArray([1, 2, 3]); // 1 2 3
// Nullable type
function profile(?string $nama): ?string {
if ($nama == null) {
return "Tidak ada nama";
}
return "Nama: " . $nama;
}
echo profile(null); // Tidak ada nama
echo profile("Ahmad"); // Nama: Ahmad
// Union type (PHP 8.0+)
function proses(int|string $data): void {
if (is_int($data)) {
echo "Angka: " . $data;
} else {
echo "String: " . $data;
}
}
proses(20); // Angka: 20
proses("Ahmad"); // String: Ahmad
?>
4
Variable Functions dan Anonymous Functions
Advanced Functions
<?php
// Variable functions
function greeting() {
echo "Halo!";
}
$func = "greeting";
$func(); // Halo! - memanggil via variable
// Anonymous function (closure)
$greeting = function($nama) {
return "Halo, " . $nama;
};
echo $greeting("Ahmad"); // Halo, Ahmad
// Arrow function (PHP 7.4+)
$tambah = fn($a, $b) => $a + $b;
echo $tambah(5, 3); // 8
// Callback function
function prosesArray(array $data, $callback) {
foreach ($data as $item) {
$callback($item);
}
}
prosesArray([1, 2, 3], function($item) {
echo $item . " ";
}); // 1 2 3
// Use variable dari parent scope
$multiplier = 2;
$kali = function($x) use ($multiplier) {
return $x * $multiplier;
};
echo $kali(5); // 10
?>
5
Variadic Functions dan Spread Operator
Variable Arguments
<?php
// Fungsi dengan parameter unlimited
function jumlahSemua(...$angka) {
$total = 0;
foreach ($angka as $num) {
$total += $num;
}
return $total;
}
echo jumlahSemua(1, 2, 3); // 6
echo jumlahSemua(1, 2, 3, 4, 5); // 15
// Mix parameter tetap dan variadic
function greeting($prefix, ...$nama) {
foreach ($nama as $n) {
echo $prefix . " " . $n . "\n";
}
}
greeting("Halo", "Ahmad", "Budi", "Citra");
// Spread operator
$angka = [1, 2, 3];
echo jumlahSemua(...$angka); // 6
// Spread untuk merge array
$array1 = [1, 2, 3];
$array2 = [4, 5, 6];
$merged = [...$array1, ...$array2];
var_dump($merged); // [1, 2, 3, 4, 5, 6]
?>
Kesimpulan dan Langkah Berikutnya
1
Ringkasan Materi
- Pengenalan PHP dan setup awal
- Syntax dasar dan statement
- Variabel dan naming convention
- Tipe data: String, Number, Boolean, NULL
- Operator aritmatika, perbandingan, logika, assignment
- Array indexed, associative, multidimensional
- Kontrol alur: if-else, switch, for, while, foreach
- Fungsi, return, type hinting, anonymous functions
2
Langkah Selanjutnya
Topik lanjutan untuk memperdalam kemampuan PHP:
- OOP (Object Oriented Programming) - Class dan Object
- String Functions - Manipulasi string
- File Handling - Baca/tulis file
- Regular Expression - Pattern matching
- Session dan Cookie - Menyimpan data user
- Database - MySQL dan MySQLi
- Form Processing - GET dan POST
- Error Handling - Try-catch exception
- PHP dengan Framework - Laravel, CodeIgniter
- API Development - RESTful API
3
Tips Belajar
- Praktik secara teratur dengan membuat mini project
- Buat catatan dari setiap materi
- Jangan hanya membaca, tapi ketik ulang kode
- Eksperimen dengan mengubah-ubah nilai dan kondisi
- Gunakan var_dump() untuk debug
- Baca error message dengan seksama
- Join komunitas programmer untuk berbagi pengalaman
- Buat project dari nol dan deploy ke server
4
Resources Berguna
Link Dokumentasi
Official PHP Documentation:
https://www.php.net/docs.php
PHP Manual:
https://www.php.net/manual/en/
W3Schools PHP Tutorial:
https://www.w3schools.com/php/
PHP The Right Way:
https://phptherightway.com/
Stack Overflow (Q&A):
https://stackoverflow.com (tag: php)