Materi Function Lengkap di PHP
1. Pengertian Function
Function (fungsi) adalah sekumpulan kode yang dibungkus dalam satu nama, dan dapat dipanggil berulang kali.
Tujuan penggunaan function:
- Menghindari duplikasi kode.
- Membuat program lebih rapi dan mudah dibaca.
- Memudahkan perawatan dan pengembangan.
2. Cara Membuat Function
Bentuk dasar:
function namaFungsi() {
// kode yang dijalankan
}
Contoh:
<?php
function salam() {
echo “Halo, Selamat Datang di PHP!”;
}
salam(); // memanggil function
?>
3. Function dengan Parameter
Parameter digunakan untuk mengirim data ke dalam function.
<?php
function sapa($nama) {
echo “Halo, $nama! Selamat belajar PHP.<br>”;
}
sapa(“Budi”);
sapa(“Siti”);
?>
Output:
Halo, Budi! Selamat belajar PHP.
Halo, Siti! Selamat belajar PHP.
4. Function dengan Return Value
return digunakan agar function menghasilkan nilai.
<?php
function tambah($a, $b) {
return $a + $b;
}
$hasil = tambah(5, 7);
echo “Hasil penjumlahan: $hasil”;
?>
Output:
Hasil penjumlahan: 12
5. Default Parameter
Kita bisa memberi nilai default pada parameter.
<?php
function sapa($nama = “Pengunjung”) {
echo “Halo, $nama!<br>”;
}
sapa(“Andi”);
sapa(); // akan pakai default
?>
Output:
Halo, Andi!
Halo, Pengunjung!
6. Function dengan Multiple Parameter
Function bisa punya lebih dari satu parameter.
<?php
function hitungLuasPersegiPanjang($panjang, $lebar) {
return $panjang * $lebar;
}
echo “Luas: ” . hitungLuasPersegiPanjang(5, 10);
?>
7. Variable Scope
- Local: hanya bisa diakses di dalam function.
- Global: bisa diakses dari luar function dengan global.
- Static: menyimpan nilai terakhir meskipun function selesai dipanggil.
<?php
$nama = “Ani”; // global
function tampilNama() {
global $nama; // akses variabel global
echo “Nama: $nama<br>”;
}
function counter() {
static $count = 0;
$count++;
echo “Counter: $count<br>”;
}
tampilNama();
counter();
counter();
counter();
?>
Output:
Nama: Ani
Counter: 1
Counter: 2
Counter: 3
8. Anonymous Function (Closure)
Function tanpa nama, disimpan dalam variabel.
<?php
$halo = function($nama) {
return “Halo $nama!”;
};
echo $halo(“Budi”);
?>
9. Arrow Function (PHP 7.4+)
Penulisan singkat function.
<?php
$tambah = fn($a, $b) => $a + $b;
echo $tambah(10, 5); // 15
?>
10. Recursive Function
Function yang memanggil dirinya sendiri.
<?php
function faktorial($n) {
if ($n == 1) return 1;
return $n * faktorial($n – 1);
}
echo “5! = ” . faktorial(5);
?>
Output:
5! = 120
11. Built-in Functions di PHP
PHP menyediakan banyak function bawaan, misalnya:
- strlen(“teks”) → panjang string.
- strtoupper(“abc”) → huruf besar.
- date(“Y-m-d”) → tanggal.
- rand(1, 10) → angka random.
- count($array) → jumlah elemen array.
12. Studi Kasus: Program Kasir Sederhana
<?php
function hitungTotal($harga, $jumlah) {
return $harga * $jumlah;
}
function formatRupiah($angka) {
return “Rp ” . number_format($angka, 0, ‘,’, ‘.’);
}
$produk = [
[“Apel”, 10000, 5],
[“Jeruk”, 12000, 3],
[“Mangga”, 15000, 2]
];
$totalBayar = 0;
foreach ($produk as $p) {
$subTotal = hitungTotal($p[1], $p[2]);
echo $p[0] . ” – ” . formatRupiah($p[1]) . ” x ” . $p[2] . ” = ” . formatRupiah($subTotal) . “<br>”;
$totalBayar += $subTotal;
}
echo “<b>Total Bayar: ” . formatRupiah($totalBayar) . “</b>”;
?>
Output:
Apel – Rp 10.000 x 5 = Rp 50.000
Jeruk – Rp 12.000 x 3 = Rp 36.000
Mangga – Rp 15.000 x 2 = Rp 30.000
Total Bayar: Rp 116.000
13. Best Practices Function di PHP
- Gunakan nama yang jelas (misal hitungLuasLingkaran() bukan hitung() saja).
- Jika function panjang, bagi jadi function kecil.
- Gunakan return untuk mengembalikan nilai, jangan hanya echo.
- Gunakan type hinting (PHP 7+):
function tambah(int $a, int $b): int {
return $a + $b;
}
Jadi, function di PHP itu sangat penting, mulai dari yang sederhana (sapa()) sampai yang lebih kompleks (kasir, perhitungan, format data).
Modul Latihan Function di PHP
Pertemuan: Function Dasar
Materi Singkat
- Function digunakan untuk mengelompokkan kode agar lebih rapi.
- Ada 2 cara: function tanpa parameter & function dengan parameter.
- Function bisa return nilai.
Latihan Soal
Soal 1.
Buat sebuah function bernama salam() yang menampilkan teks:
Halo, Selamat Datang di Pemrograman PHP!
Soal 2.
Buat function hitungKelilingPersegi($sisi) yang menghitung keliling persegi (rumus: 4 * sisi).
Soal 3.
Buat function hitungDiskon($harga, $diskon) yang menerima harga barang dan persentase diskon, lalu mengembalikan harga setelah diskon.
Soal 4.
Buat function cekGenap($angka) yang menampilkan apakah angka tersebut “Genap” atau “Ganjil”.
Soal 5.
Buat function luasSegitiga($alas, $tinggi) yang mengembalikan luas segitiga (rumus: (alas * tinggi) / 2).
Kunci Jawaban
Jawaban 1
<?php
function salam() {
echo “Halo, Selamat Datang di Pemrograman PHP!”;
}
salam();
?>
Jawaban 2
<?php
function hitungKelilingPersegi($sisi) {
return 4 * $sisi;
}
echo “Keliling persegi = ” . hitungKelilingPersegi(5);
?>
Jawaban 3
<?php
function hitungDiskon($harga, $diskon) {
$potongan = $harga * ($diskon / 100);
return $harga – $potongan;
}
echo “Harga setelah diskon = ” . hitungDiskon(100000, 20);
?>
Jawaban 4
<?php
function cekGenap($angka) {
if ($angka % 2 == 0) {
echo “$angka adalah Genap”;
} else {
echo “$angka adalah Ganjil”;
}
}
cekGenap(7);
?>
Jawaban 5
<?php
function luasSegitiga($alas, $tinggi) {
return ($alas * $tinggi) / 2;
}
echo “Luas segitiga = ” . luasSegitiga(10, 5);
?>
Pertemuan: Function Lanjutan
Materi Singkat
- Function bisa punya default parameter.
- Function bisa berbentuk anonymous function (closure).
- Bisa dibuat recursive function (function memanggil dirinya sendiri).
Latihan Soal
Soal 6.
Buat function sapa($nama = “Pengunjung”) yang menampilkan:
Halo, [nama]!
Jika tidak ada nama yang dimasukkan, tampilkan “Halo, Pengunjung!”.
Soal 7.
Buat anonymous function untuk menghitung luas lingkaran dengan jari-jari 7.
Soal 8.
Buat recursive function faktorial($n) untuk menghitung nilai faktorial.
Soal 9.
Buat function formatRupiah($angka) yang mengembalikan angka dalam format rupiah (contoh: 10000 → Rp 10.000).
Soal 10. (Studi Kasus)
Buat program daftar produk dengan function:
- hitungTotal($harga, $qty)
- formatRupiah($angka)
Produk:
- Apel, harga 5000, jumlah 3
- Jeruk, harga 7000, jumlah 2
Tampilkan dalam format:
Apel – Rp 5.000 x 3 = Rp 15.000
Jeruk – Rp 7.000 x 2 = Rp 14.000
Total Bayar = Rp 29.000
Kunci Jawaban
Jawaban 6
<?php
function sapa($nama = “Pengunjung”) {
echo “Halo, $nama!”;
}
sapa(“Budi”);
sapa();
?>
Jawaban 7
<?php
$luasLingkaran = function($r) {
return 3.14 * $r * $r;
};
echo “Luas lingkaran = ” . $luasLingkaran(7);
?>
Jawaban 8
<?php
function faktorial($n) {
if ($n == 1) return 1;
return $n * faktorial($n – 1);
}
echo “5! = ” . faktorial(5);
?>
Jawaban 9
<?php
function formatRupiah($angka) {
return “Rp ” . number_format($angka, 0, ‘,’, ‘.’);
}
echo formatRupiah(10000);
?>
Jawaban 10
<?php
function hitungTotal($harga, $qty) {
return $harga * $qty;
}
function formatRupiah($angka) {
return “Rp ” . number_format($angka, 0, ‘,’, ‘.’);
}
$produk = [
[“Apel”, 5000, 3],
[“Jeruk”, 7000, 2]
];
$total = 0;
foreach ($produk as $p) {
$subTotal = hitungTotal($p[1], $p[2]);
echo $p[0] . ” – ” . formatRupiah($p[1]) . ” x ” . $p[2] . ” = ” . formatRupiah($subTotal) . “<br>”;
$total += $subTotal;
}
echo “<b>Total Bayar = ” . formatRupiah($total) . “</b>”;
?>