Memahami Fungsi Pada PHP dan Cara Membuatnya

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:

  1. Mendefinisikan fungsi sendiri, jika fungsi yang kita inginkan belum disediakan oleh PHP
  2. 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.

Menulis - Membuat Fungsi Pada PHP

Pada kondisi tertentu nama fungsi ini tidak ditulis, lihat bagian V. Anonymous function atau closure

Penulisan nama fungsi harus mengikuti ketentuan sebagai berikut:

  1. Harus diawali huruf atau underscore(_) kemudian dapat diikuti dengan huruf, angka, dan underscore
  2. 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)

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

Komitmen Kami: Kami senantiasa menghargai privasi Anda dan tidak akan membagikan identitas Anda ke pihak manapun.

2 Feedback dari pembaca

Silakan tinggalkan komentar

Newsletter

Jadilah yang pertama tahu berita terbaru dari Jagowebdev.com