Pengertian Default Parameter dalam PHP

Default Parameter adalah istilah untuk parameter yang memiliki nilai awal, atau nilai default.

Sebagai contoh, misalkan kita membuat fungsi sederhana: tambah().
Fungsi ini membutuhkan 2 buah parameter, yakni nilai yang ingin ditambahkan. Berikut adalah contoh programnya:

	
<?php
function tambah($a,$b)
{
   return $a+$b;
}
 
echo tambah(2,3); // hasil: 5
echo tambah(3,4); // hasil: 7
?>

Dengan menambahkan default parameter, kita bisa memanggil
fungsi tambah() hanya dengan 1 inputan angka, atau bahkan tidak
perlu sama sekali. Berikut adalah perubahannya:

<?php
function tambah($a,$b=2)
{
   return $a+$b;
}
 
echo tambah(2); // hasil: 4
echo tambah(10); // hasil: 12
echo tambah(4,4); // hasil: 8
?>

Perhatikan di dalam pembuatan fungsi, saya menulis parameter kedua menjadi $b=2.
Inilah yang dimaksud dengan default parameter. Jika parameter $b tidak ditulis
pada saat pemanggilan fungsi, nilai 2 akan dijadikan nilai awal.

Dengan nilai default ini, kita bisa merancang fungsi dengan parameter yang
bersifat opsional. Parameter tersebut bisa diisi pada saat pemanggilan fungsi,
namun boleh juga diabaikan. Sehingga jika fungsi dipanggil tanpa parameter,
nilai ini akan menjadi nilai awal untuk fungsi tersebut.

Fitur default parameter bisa dimanfaatkan untuk membuat fungsi yang fleksibel,
karena pada saat pemanggilan fungsi kita tidak harus menginputkan seluruh
parameter, tetapi apa yang dianggap perlu saja.
Cara Penulisan Default Parameter dalam PHP

Untuk membuat default parameter, kita hanya butuh memberikan nilai awal pada
saat pendefenisian parameter. Berikut adalah format dasar penulisan default
parameter dalam PHP:

function nama_fungsi ($parameter1=nilai_default1
,$parameter2=nilai_default2)
{
   // proses fungsi
   return nilai_akhir;
}

nama_fungsi adalah nama dari fungsi yang akan dibuat
$parameter1, $parameter2 adalah variabel yang akan menampung inputan
atau argumen pada saat pemanggilan fungsi.
nilai_default1, nilai_default2 adalah nilai default untuk parameter.
Nilai ini akan digunakan jika pada saat pemanggilan fungsi nilai parameter
tidak diisi.
return nilai_akhir adalah instruksi untuk mengembalian hasil pemrosesan fungsi.

Agar lebih mudah memahami konsep default parameter, saya akan mengubah fungsi
pangkat() yang telah kita rancang pada tutorial Cara Pengecekan Tipe
Data Argumen untuk Fungsi PHP, berikut adalah contoh kode programnya:

<?php
function pangkat($nilai, $pangkat=2)
{
   $hasil=1;
   for ($i=1;$i<=$pangkat;$i++)
   {
      $hasil=$hasil*$nilai;
   }
   return $hasil;
}
 
//Test beberapa kasus inputan untuk fungsi pangkat()
echo "pangkat(5) = ".pangkat(5);
echo "<br />";
echo "pangkat(3) = ".pangkat(3);
echo "<br />";
echo "pangkat(2,8) = ".pangkat(2,8);
echo "<br />";
echo "pangkat(3.5,3) = ".pangkat(3.5,3);
echo "<br />";
?>

Contoh kode PHP untuk cara pembuatan Default Parameter
Pada contoh fungsi pangkat() kali ini saya tidak menggunakan
fitur pengecekan tipe data agar contoh program lebih sederhana.

Pada saat mendefenisikan fungsi pangkat(), saya menambahkan nilai
2 sebagai default parameter untuk parameter $pangkat. Sehingga
jika fungsi pangkat() dipanggil tanpa parameter ke-2,
berarti $pangkat akan diisi nilai 2.

Saat pemanggilan fungsi pangkat(5), maka kita hanya menggunakan 1 buah argumen.
Untuk argumen ke 2, akan diisi nilai default, yakni 2.
Sehingga fungsi yang akan dijalankan sebenarnya adalah pangkat(5,2).

Namun saat pemanggilan fungsi pangkat(2,8),
maka nilai parameter $pangkat akan menggunakan 8, bukan angka 2,
karena pada pemanggilan kali ini, saya membuat 2 buah argumen.
Penempatan Default Parameter

Sebuah fungsi tidak dibatasi berapa banyak default parameter yang boleh digunakan,
namun jika anda ingin membuat default parameter,
dan pada fungsi yang sama juga menggunakan parameter biasa,
maka default parameter harus diletakkan di akhir pendefenisian parameter.

Dengan kata lain, setelah pendefinisian parameter dengan nilai default,
tidak boleh ada parameter reguler sesudahnya.
Contoh pendefenisian fungsi berikut ini akan menyebabkan error dalam PHP:
function tambah($nilai1, $nilai2=3, $nilai3)

Hal ini terjadi karena default parameter diletakkan sebelum parameter biasa.
Contoh diatas seharusnya di tulis sebagai:
function tambah($nilai1, $nilai2, $nilai3=3)

//atau

function tambah($nilai1, $nilai2=3, $nilai3=3)

Dalam kedua contoh tersebut, dafault parameter di letakkan setelah
pendefenisian parameter biasa.