Pada kesempatan kali ini kita
akan membahas tentang fungsi pada PHP, termasuk cara membuat fungsi pada PHP
karena di dalam pemrograman dalam bahasa apapun, penggunaan fungsi (function)
adalah hal mutlak, oleh karena itu lah penting bagi kita untuk mempelajarinya.
Fungsi ini diciptakan agar
sekumpulan tugas yang dilakukan berulang ulang dapat ditulis dalam satu
kode saja, sehingga jika ada tugas yang sama ingin dikerjakan lagi, tinggal
menjalankan fungsi tersebut.
Mengenai fungsi, ada dua hal
pokok yang dapat kita lakukan, yaitu:
- Mendefinisikan fungsi sendiri, jika fungsi yang kita inginkan belum disediakan oleh PHP
- Memanggil fungsi, baik built-in function dan user-defined function cara memanggilnya sama yaitu menuliskan nama fungsi kemudian diikuti tanda kurung, misal kita memanggil fungsi cetak, maka kita menuliskan: cetak()
Jenis Fungsi Pada PHP
Fungsi pada PHP dibagi
menjadi dua yaitu built-in function yang merupakan fungsi
bawaan PHP dan user-defined function, dimana kita membuat fungsi
sendiri.
Banyak sekali fungsi yang
disediakan php, seperti sbstr(), dll yang dapat kita gunakan langsung,
list lengkapnya dapat dilihat pada halaman: PHP: Function and Method Listing – Manual
Kita tidak perlu menghafal semua
fungsi tersebut dan ketika memerlukan tidak perlu mencarinya disana, karena
tetap akan sulit mencarinya, sebaliknya, gunakan saja google.
Menulis / Membuat Fungsi Pada PHP
Membuat fungsi pada PHP dapat
dilakukan dengan mudah, yaitu (1) menuliskan keyword function (2)
kemudian diikuti dengan nama fungsi (3) diikuti dengan tanda
kurung () sebagai tempat argumen, (4) kemudian diikuti dengan kurung
kurawa {} sebagi block statement yang akan dijalankan ketika fungsi
dipanggil.
Pada kondisi tertentu nama fungsi
ini tidak ditulis, lihat bagian V. Anonymous function atau closure.
Penulisan nama fungsi harus
mengikuti ketentuan sebagai berikut:
- Harus diawali huruf atau underscore(_) kemudian dapat diikuti dengan huruf, angka, dan underscore
- Case in-sensitive (tidak membedakan huruf kecil dan besar)
1. Argumen Fungsi
Argumen fungsi ditulis dalam
tanda kurung dan dapat berupa tipe data apapun baik string, array, object,
boelan, dsb.., selain itu argumen juga dapat dikosongkan, contoh:
<?php
// Tanpa argumen
function nama_bulan() {
echo 'Agustus';
}
nama_bulan(); // Hasil Agustus
Contoh berikutnya kita
definisikan argumen, sehingga kita dapat mencetak nama bulan sesuai dengan yang
kita inginkan:
function nama_bulan($bulan) {
echo $bulan;
}
nama_bulan('Januari'); // Hasil
Januari
Lebih lanjut, argumen dari fungsi
ini dapat kita definisikan lebih dari satu, caranya, pisahkan argumen dengan
tanda koma, contoh:
function nama_bulan($bulan, $tahun) {
echo $bulan . ' ' . $tahun;
}
nama_bulan('Januari', 2016); // Hasil Januari 2016
2. Nilai Default Argumen
Kita dapat mendefinisikan nilai
default dari argumen, sehingga memudahkan pemanggilan fungsi karena tidak perlu
menulis argumen terlalu banyak, contoh:
function nama_bulan($bulan, $tahun = 2016) {
echo
$bulan . ' ' . $tahun;
}
nama_bulan('Januari'); // Hasil Januari 2016
Nilai default argumen ini bisa
kita isi tipe data apa saja seperti boelan (true, false), null, array, object,
dll
3. Memanggil Fungsi
Pemanggilan fungsi dilakukan
dengan menulis nama fungsi tersebut, seperti pada contoh sebelumnya, kita
memanggil fungsi dengan menulis nama_bulan() dan nama_bulan('Januari', 2016)
Jika fungsi memerlukan argumen,
maka kita juga harus menulis argumen tersebut.
Catatan: Ketika melakukan pemanggilan fungsi, maka penulisan
argumen harus lengkap, jika fungsi terdiri dari 3 argumen, maka kita harus
menuliskan ketiganya, jika tidak maka akan muncul pesan error, KECUALI argumen
tersebut memiliki nilai default (dibahas dibawah)
Nilai Kembalian – Return Value
1. Menggunakan return
Nilai kembalian ini maksudnya
fungsi yang kita panggil tadi akan menghasilkan nilai tertentu, nilai tersebut
bisa bertipe apa jasa seperti: boelan, float, array, object, dll
Nilai kembalian ini dijalankan
dengan menggunakan keyword return, contoh:
<?php
function nama_bulan($bulan) {
$nama_bulan
= array (1 => 'Januari', 2 => 'Februari', 3 => 'Maret');
return
$nama_bulan[$bulan];
}
// date('n') akan menghasilkan bulan sekarang dalam
bentuk 1 digit, misal 3 untuk Januari
$bulan = nama_bulan(date('n')); // Hasil Maret
echo $bulan . ' ' . date('Y'); // Hasil Maret 2016
Keyword ini dapat diletakkan
dimana saja di dalam fungsi dan ketika php menemukan keyword ini, maka seketika
pemanggilan fungsi akan dihentikan dan PHP kembali ke baris dimana fungsi tadi
dipanggil.
Karakteristik tersebut dapat
memudahkan kita mengatur penulisan kode, sehingga, ketika menulis fungsi, kita
harus selalu mempertimbangkan kemungkinan penggunaan return di tengah
code, terutama ketika menggunakan conditional if
Contoh:
function report($bulan) {
if
($bulan < 3) {
$status
= 'Report belum tersedia';
} else {
$status
= 'Report sudah tersedia';
}
return
$status;
}
echo report(2); // Hasil Report belum tersedia;
Untuk lebiih efisien, kode tersebut dapat diubah
menjadi:
function report($bulan) {
if
($bulan < 3) {
return
'Report belum tersedia';
} else {
return
'Report sudah tersedia';
}
}
Pada script pertama, PHP akan
membaca seluruh kode pada fungsi, sebaliknya untuk script kedua, ketika
sampai if maka fungsi berhenti karena bertemu return, Hal ini tentu akan
mempercepat proses eksekusi terlebih jika script yang kita tulis panjang.
Return value lebih dari satu nilai
Return value HANYA memberikan
nilai kembalian sebanyak satu nilai, misal pada contoh diatas hanya
menghasilkan nama bulan, jika ingin menghasilkan nilai kembalian lebih dari
satu, maka kita gunakan array, contoh:
<?php
function nama_bulan($bulan) {
$nama_bulan
= array (1 => 'Januari', 2 => 'Februari', 3 => 'Maret');
$semester
= $bulan < 7 ? 1 : 2;
return
array('bulan' => $nama_bulan[$bulan],
'semester'
=> $semester
);
}
$bulan = nama_bulan(3);
echo '<pre>'; print_r($bulan);
/* HASIL:
Array
(
[bulan]
=> Maret
[semester]
=> 1
)*/
Fungsi Alias Pada PHP
Untuk alasan tertentu seperti
penamaan fungsi yang lebih relevan dengan tugas fungsi tersebut, PHP
menyediakan fungsi baru yang tugasnya sama persis dengan fungsi lama, yang
disebut fungsi alias (Function Aliases)
Fungsi baru tersebut tidak
memiliki kode sendiri, melainkan ketika dipanggil, dia memanggil fungsi yang
lama.
Contoh dari fungsi alias ini
adalah: die(), key_exists() dan join() yang merupakan
alias dari fungsi exit(), array_key_exists() dan implode().
Dari contoh tersebut terlihat
bahwa die(), key_exists dan join lebih pendek dan
lebih memiliki arti, untuk list lengkap dari alias ini, dapat dilihat pada
halaman: PHP: List of Function Aliases –
Manual
Beberapa orang mempermasalahkan
performa dari fungsi alias ini, karena fungsinya yang menjalankan fungsi lain,
namun sebenarnya tidak masalah menggunakan fungsi ini, karena perbedaan
speed nya sangat tidak signifikan.
Anonymous Function
Anonymous function atau disebut
juga closure dapat diartikan fungsi tanpa nama (anonymous).
Fungsi ini umumnya digunakan pada fungsi-fungsi yang membutuhkan callback (fungsi
yang dipanggil oleh fungsi lainnya).
Fungsi yang membutuhkan callback
ini bisa built-in function seperti preg_replcace_callback,
array_map, array_walk, dll maupun user-defined function
<?php
$kendaraan =
array('Mobil', 'Motor', 'Sepeda');
$upper =
array_map('toupper', $kendaraan);
function toupper($array_val) {
return
strtoupper($array_val);
}
echo '<pre>'; print_r($upper);
Nah, seperti disampaikan
sebelumnya, tujuan dibuatnya function adalah agar dapat digunakan
kembali (re-use), karena fungsi toupper() HANYA digunakan
sekali, maka fungsi tersebut dapat kita gabungkan ke dalam
fungsi array_map sehingga bentuknya menjadi anonymous function:
<?php
$kendaraan = array('Mobil', 'Motor', 'Sepeda');
$upper = array_map(function($value) {
return
strtoupper($value);
}, $kendaraan);
echo '<pre>'; print_r($upper);
Contoh lain pada user-defined function:
function nama_bulan($bulan, $callback) {
$list_bulan
= array (1 => 'Januari', 2 => 'Februari', 3 => 'Maret');
$nama =
$list_bulan[$bulan];
if
(is_callable($callback)) {
return
$callback($nama);
}
return
$nama;
}
$bulan = nama_bulan(2, function($val) {
return
strtoupper($val);
});
echo $bulan; // Hasil: FEBRUARI
Sekian artikel kali ini, semoga bermanfaat dan wasalam...
Tidak ada komentar