Pada kesempatan kali ini kita akan membahas tentang fungsi pada PHP, termasuk cara membuat fungsi pada PHP
Di dalam dunia pemrograman, dalam bahasa apapun, penggunaan fungsi (function) adalah mutlak, oleh karena itu penting 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.
Terkait fungsi ini 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()
I. 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.
II. 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.
III. 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.
2 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
)*/
IV. 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()
, contoh penggunaan fungsi ini dapat dibaca disini.
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.
V. 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
Contoh berikut ini diambil dari tulisan sebelumnya: 15+ Fungsi Terkait Array Pada PHP
<?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
Penutup
Telah kita bahas mengenai fungsi pada PHP termasuk cara membuat fungsi pada PHP, namun banyak sekali pembahasan yang belum tercakup, seperti passing argument by reference, function by reference, fungsi recursive, dll yang tentu akan terlalu panjang jika dibahas di sini, semoga kita dapat membahasnya di lain kesempatan.
Subscibe Now
Suka dengan artikel di Jagowebdev.com? jangan sampai ketinggalan, segera join ke milis kami untuk update informasi terbaru dari Jagowebdev.com
2 Feedback dari pembaca
[…] http://jagowebdev.com/memahami-dan-membuat-fungsi-pada-php/ […]
thanks