Pengertian Fungsi PHP dan Penggunaan
Pengertian Fungsi (Function) dalam PHP
Fungsi (atau Function) dalam bahasa pemograman adalah kode program yang dirancang untuk menyelesaikan sebuah tugas tertentu, dan merupakan bagian dari program utama. PHP dapat membuat fungsi sendiri, atau menggunakan fungsi yang dibuat oleh programmer lain.
Dalam dunia pemograman terdapat istilah ‘lazy progamming’ yang artinya bukanlah programmer yang malas. Tetapi, daripada membuat kode program umum dari dasar, bisa menggunakan fungsi yang telah dibuat oleh programmer lain. PHP bahkan menyediakan ribuan fungsi bawaan yang tersedia untuk membantu dalam merancang program.
Mengetahui cara penggunaan fungsi ini akan menghemat waktu pembuatan program dan membuat kode program menjadi lebih efisien. Lazy programming is smart programming.
Cara Menggunakan Fungsi PHP
Menggunakan fungsi dalam teori pemograman sering juga disebut dengan istilah ‘memanggil fungsi’ (calling a function). Fungsi dipanggil dengan menulis nama dari fungsi tersebut, dan diikuti dengan argumen (jika ada). Argumen ditulis di dalam tanda kurung, dan jika jumlah argumen lebih dari satu, maka diantaranya dipisahkan oleh karakter koma.
Setelah memproses nilai inputan, hampir semua fungsi akan memberikan nilai hasil pemrosesan tersebut (walaupun ada fungsi yang tidak memberikan nilai). Cara fungsi memberikan nilainya ini sering disebut dengan ‘mengembalikan nilai’ (return a value). Nilai yang dikembalikan oleh sebuah fungsi dapat ditampung ke dalam variabel, atau langsung ditampilkan ke web browser.
Pengertian Argumen dan Parameter dalam Fungsi PHP
Sebuah fungsi dalam memproses data, kadang memerlukan beberapa inputan atau nilai masukan. Inputan inilah yang dimaksud dengan argumen. Sebuah fungsi bisa membutuhkan 1, 2, atau 5 argumen, namun bisa juga tidak memerlukan argumen sama sekali.
Parameter adalah sebutan lain untuk argumen. Perbedaannya, parameter merujuk kepada inputan fungsi pada saat pendefenisian fungsi tersebut, dan agrumen adalah sebutan untuk inputan fungsi pada saat pemanggilan fungsi. Kita akan membahas perbedaan Argumen dan Parameter secara lebih dalam pada tutorial selanjutnya, namun pada dasarnya argumen dan parameter merujuk kepada hal yang sama, yaitu inputan kepada fungsi dan kedua istilah ini sering dipertukarkan.
Contoh Pemanggilan Fungsi PHP
Sebagai latihan dan prakter dalam menggunakan fungsi, Berikut adalah format dasar pemanggilan, dan pengembalian nilai fungsi:
$varibel_hasil_fungsi = nama_fungsi(argumen1, argumen2, argumen3)
- $varibel_hasil_fungsi adalah variabel yang akan menampung hasil pemrosesan fungsi. Tergantung fungsinya, hasil dari sebuah fungsi bisa berupa angka, string, array, bahkan objek.
- nama_fungsi adalah nama dari fungsi yang akan dipanggil
- argumen1, argumen2 adalah nilai inputan fungsi. Banyaknya argumen yang dibutuhkan, tergantung kepada fungsi tersebut. Jika sebuah fungsi membutuhkan argumen 2 buah angka, maka kita harus menginputnya sesuai dengan aturan tersebut, atau jika tidak, PHP akan mengeluarkan error.
Sebagai contoh, PHP menyediakan fungsi akar kuadrat, yakni sqrt(), berikut adalah cara penggunaannya:
<?php
$akar_kuadrat
= sqrt(49);
echo
"Akar kuadrat dari 49 adalah $akar_kuadrat"
;
// Akar kuadrat dari 49 adalah 7
?>
Dalam contoh diatas, fungsi sqrt() akan menghitung akar kuadrat dari nilai argumen yang diinput dan menambahkan argumen 49 sebagai inputan.
Nilai hasil dari fungsi sqrt(49), selanjutnya di tampung dalam variabel $akan_kuadrat, yang kemudian ditampilkan ke dalam web browser.
Selain ditampung di dalam variabel, bisa menampilkan hasil fungsi langsung ke web browser, seperti contoh berikut:
<?php
echo
"12 pangkat 2 adalah: "
.pow(12,2);
// 12 pangkat 2 adalah: 144
?>
Fungsi pow() adalah fungsi pemangkatan matematika bawaan PHP. Fungsi ini membutuhkan 2 argumen, argumen pertama adalah nilai awal yang ingin dihitung, dan argumen kedua adalah nilai pangkat. Pow(12,2) sama dengan 12 kuadrat.
Perlu juga diperhatikan adalah tipe parameter yang dibutuhkan oleh sebuah fungsi. Seperti 2 contoh kita diatas, fungsi sqrt() dan pow() adalah fungsi matematika. Kedua fungsi ini hanya bisa memproses parameter dengan tipe angka (interger dan float). Jika memasukkan parameter jenis string, maka PHP akan mengeluarkan error.
Jumlah dan urutan argumen juga harus sesuai dengan yang dibutuhkan oleh fungsi. Jika sebuah fungsi hanya membutuhkan 1 argumen, maka tidak bisa menambahkan argumen kedua, kecuali ada argumen yang bersifat opsional (dapat diabaikan).
Penulisan dan Pembuatan Fungsi PHP
Cara Penulisan Fungsi dalam PHP
Sebuah fungsi merupakan kode program yang dirancang untuk menyelesaikan sebuah tugas tertentu. Tujuan memisahkan sebuah kode menjadi fungsi adalah untuk kepraktisan dan kemudahan dalam membuat program utama. Karena jika dijadikan fungsi, maka untuk menjalankan tugas yang sama, tinggal memanggil fungsi tersebut, tanpa perlu membuat kembali kode programnya.
Untuk membuat fungsi di dalam PHP, berikut adalah format dasar pembuatan fungsi:
function nama_fungsi ( $parameter1 , $parameter2 ) { // kode program fungsi return $nilai_akhir } |
- Kata function adalah instruksi kepada PHP bahwa akan membuat fungsi
- nama_fungsi adalah nama dari fungsi yang akan ditulis
- $parameter1, $parameter2 adalah variabel perantara yang akan menyimpan inputan yang diperlukan dalam pemrosesan fungsi (argumen). Tergantung kebutuhan, hal bebas merancang seberapa banyak parameter yang dibutuhkan.
- return adalah perintah khusus untuk fungsi, dimana kata return menginstruksikan kepada PHP bahwa pemrosesan fungsi telah selesai. return $nilai_akhir berarti bahwa fungsi akan ‘mengembalikan’ $nilai_akhir sebagai hasil dari fungsi.
Perhatikan juga bahwa fungsi ini berada di dalam blok program yang ditandai dengan kurung kurawal pada baris pertama dan terakhir fungsi.
Contoh Pembuatan Fungsi PHP
Contoh pertama fungsi PHP, akan dibuat fungsi sederhana untuk perkalian 2 angka. Nama fungsi ini adalah perkalian, dan membutuhkan 2 argumen dengan tipe data angka (integer atau float), berikut adalah cara pembuatan dan penggunaan fungsi perkalian:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | <?php //pembuatan fungsi function perkalian( $angka1 , $angka2 ) { $a = $angka1 ; $b = $angka2 ; $hasil = $a * $b ; return $hasil ; } //pemanggilan fungsi $hasil =perkalian(4,5); echo "Perkalian 4 x 5 adalah $hasil" ; echo "<br />" ; echo "Perkalian 7 x 2 adalah " .perkalian(7,2); ?> |
Pada baris ke-3, saya mendefenisikan fungsi perkalian() yang memerlukan 2 parameter. SParameter ditulis sebagai variabel, dan bebas menentukan nama variabel ini, dalam contoh diatas, parameter untuk fungsi perkalian() adalah $angka1 dan $angka2.
Di dalam fungsi perkalian(), membuat variabel $a dan $b yang digunakan untuk menampung nilai $angka1 dan $angka2, pemindahan variabel ini sebenarnya tidak diperlukan, namun akan sering menemukan hal ini di dalam berbagai fungsi. Biasanya pemindahan ini dilakukan agar lebih mudah dan singkat dalam menggunakan variabel pada pemrosesan fungsi.
Variabel $hasil digunakan untuk menampung nilai akhir dari perkalian $a*$b, dan hasilnya di-kembalikan dengan perintah return $hasil. Return secara otomatis menutup fungsi, dan jika masih memiliki kode program setelah perintah return, perintah tersebut tidak akan diproses, oleh karena itu perintah return harus diletakkan di akhir penulisan fungsi.
Selanjutnya pada baris ke-12, memanggil fungsi perkalian() dengan menyimpan nilai kembaliannya ke dalam variabel $hasil, atau bisa dipanggil secara langsung dalam satu baris perintah echo, seperti pada baris ke-15.
Sebagai contoh fungsi kedua, akan membuat fungsi untuk menentukan luas lingkaran. Seperti yang ketahui, luas lingkaran didapat dengan rumus: pi*jari-jari*jari-jari. Berikut adalah program untuk menghitung luas lingkaran:
1 2 3 4 5 6 7 8 9 10 | <?php //pemanggilan fungsi echo "Luas Lingkaran dengan jari-jari 7cm = " .luas_lingkaran(7). "cm" ; //pembuatan fungsi function luas_lingkaran( $jari2 ) { return M_PI* $jari2 * $jari2 ; } ?> |
Memulai program dengan langsung memanggil fungsi luas_lingkaran(7), padahal fungsi tersebut belum didefenisikan. Hal ini dimungkinkan karena pada saat kode PHP dijalankan, web server akan men-compile fungsi-fungsi yang ada terlebih dahulu. Sehingga bisa memanggil fungsi yang di defenisikan setelah dipanggil.
Pada fungsi luas_lingkaran(), satu-satunya argumen yang diperlukan adalah panjang jari-jari lingkaran. M_PI adalah konstanta matematis yang disediakan PHP, yang nilainya sama dengan konstanta pi, yaitu 3,14. Namun juga bisa mengubahnya menjadi 3.14*$jari2*$jari2.
Perbedaan antara Argumen dan Paramater
Pada penjelasan tentang fungsi perkalian() dan luas_lingkaran(), saya menggunakan 2 istilah untuk nilai inputan fungsi, yakni argumen dan parameter.
Argumen merujuk kepada inputan fungsi pada saat fungsi dipanggil, contohnya pada saat memanggil fungsi perkalian(4,5), angka 4 dan 5 disebut argumen.
Sedangkan Parameter merujuk kepada inputan fungsi pada saat pendefenisian. Dalam hal ini membuat fungsi perkalian dengan perintah : function perkalian($angka1, $angka2), variabel $angka1 dan $angka2 adalah parameter.
Pengertian Variabel Scope, Global Variabel, dan Static Variabel PHP
Pengertian Variabel Scope
Variabel Scope (atau ruang lingkup variabel) adalah jangkauan kode program dimana perintah program masih bisa mengakses sebuah variabel.
Jika mendefenisikan sebuah variabel pada satu file PHP, maka variabel tersebut dapat diakses oleh seluruh kode program pada halaman yang sama. Namun jika variabel tersebut di defenisikan di dalam sebuah fungsi, variabel itu belum tentu bisa diakses dari luar fungsi tersebut. Hal inilah yang dimaksud dengan Variabel Scope.
Variabel yang didefenisikan di dalam sebuah fungsi, secara default tidak dapat diakses oleh kode program di luar fungsi tersebut. Dan begitu juga sebaliknya, variabel yang didefenisikan di luar fungsi, tidak bisa diakses dari dalam fungsi.
Contoh Variabel Scope dalam Fungsi PHP
Untuk memahami konsep variabel scope, berikut adalah contoh kode program dalam PHP:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | <?php $a = 5; function coba() { $a =10; $b =7; } // pemanggilan fungsi coba() coba(); echo $a ; // 5 echo $b ; // error:notice ?> |
Pada baris ke-2, mendefenisikan variabel $a, dan memberikan nilai awal = 5. Pada baris ke-4 membuat fungsi coba() dan mendefenisikan kembali variabel $a yang kali ini nilainya adalah 10, dan juga membuat sebuah variabel baru, yakni $b.
Setelah memanggil fungsi coba() pada baris ke-11, kemudian memeriksa nilai $a dengan perintah echo. Dan ternyata nilai $a adalah 5, bukan 10. Dan ketika ingin mengakses variabel $b, PHP akan mengeluarkan peringatan bahwa variabel $b belum di defenisikan, dengan pesan error: Notice: Undefined variable: b in D:\xampp\htdocs\belajar\test.php on line 13.
Hal ini terjadi karena variabel $a dan $b berada di dalam fungsi coba() yang merupakan variabel yang berbeda dengan variabel $a yang berada diluar fungsi. Jangkauan variabel $a dan $b hanya berada di dalam fungsi.
Contoh lainnya, perhatikan kode program berikut ini:
1 2 3 4 5 6 7 8 9 10 11 12 | <?php $b = 7; function coba() { $a =10; echo $a ; echo $b ; } coba(); ?> |
Pada program kali ini, mencoba mengakses variabel $b dari dalam fungsi coba(), namun PHP akan mengeluarkan pesan peringatan pada baris ke-8: Notice: Undefined variable: b in D:\xampp\htdocs\belajar\test.php on line 8 yang berarti bahwa PHP tidak menemukan adanya variabel $b. Variabel $b hanya dapat diakses dalam ruang lingkup di luar fungsi coba().
Konsep pembatasan variabel scope ini terkesan merepotkan, namun sebenarnya sangat berguna untuk men-isolasi penggunaan variabel agar tidak saling ‘menimpa’. Dengan menerapkan variabel scope, PHP dapat terhindar dari permasalahan tersebut.
Pengertian Global Variabel
Jika ingin menggunakan variabel yang didefenisikan di luar fungsi dan sebaliknya, PHP memperbolehkan hal tersebut dengan menambahkan sebuah kata kunci ‘global’ sebelum pendefenisian nama variabel.
Berikut contoh penggunaan keyword global:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | <?php $a = 7; function coba() { global $a ; global $b ; $b =15; echo $a ; //7 echo $b ; //15 } coba(); echo $a ; //7 echo $b ; //15 ?> |
Program diatas tidak akan menghasilkan error seperti sebelumnya, dan bisa mengakses nilai variabel $a dari dalam fungsi coba(), dan nilai variabel $b di luar fungsi.
Kata kunci global membuat fungsi dapat mengakses variabel yang didefenisikan diluar fungsi.
Pengertian Static Variabel
Static Variabel, atau variabel statis adalah jenis variabel yang mempertahankan nilainya pada setiap pemanggilan fungsi. Untuk variabel normal, nilai dari variabel tersebut akan secara otomatis dihapus pada saat fungsi selesai dijalankan, dan akan dibuat ulang pada saat fungsi dipanggil.
Namun jika sebuah variabel dinyatakan sebagai static variabel, maka nilai variabel tersebut akan tetap dipertahankan walaupun fungsi telah selesai dijalankan. Biasanya fungsi ini dimanfaatkan jika ingin menghitung berapa kali sebuah fungsi dipanggil.
Berikut adalah contoh program penggunaan variabel statis dalam PHP:
1 2 3 4 5 6 7 8 9 10 11 12 13 | <?php function coba() { static $a =0; $a = $a +1; return "Ini adalah pemanggilan ke-$a fungsi coba() <br />" ; } echo coba(); echo coba(); echo coba(); echo coba(); ?> |
Jika menghapus keyword static pada baris ke-4, variabel $a akan selalu bernilai 1, karena terdapat operasi $a=0 dan $a=$a+1 pada setiap kali pemanggilan fungsi coba(). Namun dengan membuat $a sebagai static variable, nilai dari $a akan terus dipertahankan sepanjang pemrosesan halaman oleh PHP.
Pengecekan Tipe Data Argumen untuk Fungsi PHP
Pentingnya Pengecekan Tipe Data Argumen
Pembuatan fungsi PHP, selain merancang cara kerja fungsi, juga harus memperkirakan berapa banyak parameter yang dibutuhkan untuk fungsi tersebut. Sebuah fungsi bisa memiliki 1, 2 atau 5 parameter, namun bisa juga tanpa parameter sama sekali.
Tergantung tujuannya, sebuah fungsi umumnya hanya memperbolehkan tipe data tertentu sebagai argumen. Misalnya, untuk fungsi yang berhubungan dengan matematika, biasanya hanya membutuhkan argumen dengan tipe data angka (integer atau float), dan fungsi penghitung kata, hanya membutuhkan tipe data string sebagai argumen.
Jika tipe data parameter tidak sesuai, maka fungsi tidak akan berjalan sebagaimana mestinya, dan biasanya PHP akan mengeluarkan pesan error. Cara elegan untuk mengatasi permasalahan ini adalah membuat kode program untuk memeriksa tipe data parameter ini sebelum masuk kepada pemrosesan di dalam fungsi.
Pengecekan tipe data dilakukan pada awal pemrosesan fungsi, dan jika tipe data tidak sesuai, bisa membuat pesan bahwa fungsi tidak dapat diproses. Pengecekan apakah suatu argumen merupakan bagian dari tipe data tertentu, dilakukan dengan fungsi khusus yang telah disediakan PHP.
Berikut adalah list fungsi pengecekan tipe data dalam PHP:
- is_array($var): fungsi pengecekan apakah tipe data adalah array
- is_bool($var): fungsi pengecekan apakah tipe data adalah boolean
- is_double($var): fungsi pengecekan apakah tipe data adalah float
- is_float($var): fungsi pengecekan apakah tipe data adalah float
- is_int($var): fungsi pengecekan apakah tipe data adalah integer
- is_integer($var): fungsi pengecekan apakah tipe data adalah integer
- is_long($var): fungsi pengecekan apakah tipe data adalah integer
- is_null($var): fungsi pengecekan apakah tipe data adalah null
- is_numeric($var): fungsi pengecekan apakah tipe data adalah angka (integer dan float)
- is_object($var): fungsi pengecekan apakah tipe data adalah objek
- is_real($var): fungsi pengecekan apakah tipe data adalah float
- is_resource($var): fungsi pengecekan apakah tipe data adalah resource (seperti variabel yang menampung koneksi ke database)
- is_scalar($var): fungsi pengecekan apakah tipe data adalah scalar (scalar adalah penyebutan untuk tipe data dasar, seperti integer, float, string atau boolean. Array, object dan resource bukan scalar)
- is_string($var): fungsi pengecekan apakah tipe data adalah string
Cara Pengecekan Tipe Data Argumen Fungsi
Fungsi-fungsi diatas dapat dimanfaatkan untuk pengecekan tipe data suatu variabel, dan tentu saja juga argumen fungsi. Agar lebih mudah dipahami, telah dirancang fungsi pangkat() yang berfungsi untuk melakukan pemangkatan bilangan.
Fungsi pangkat() rancang dengan 2 buah inputan atau parameter. Parameter pertama adalah angka yang akan dihitung, dan parameter kedua adalah nilai pangkatnya. pangkat(2,3) berarti 2 pangkat 3. pangkat(2,8) berarti 2 pangkat 8. Kedua parameter ini harus berupa angka, dan khusus untuk nilai pangkat, harus berupa angka bulat (integer).
Berikut adalah kode program fungsi pangkat():
<?php
function
pangkat(
$nilai
,
$pangkat
)
{
if
(
is_numeric
(
$nilai
) AND
is_int
(
$pangkat
))
//pengecekan tipe data argumen
{
//Jika argumen sesuai, maka jalankan proses fungsi
$hasil
=1;
for
(
$i
=1;
$i
<=
$pangkat
;
$i
++)
{
$hasil
=
$hasil
*
$nilai
;
}
return
$hasil
;
}
else
{
//Bagian ini akan dijalankan jika tipe data argumen bukan angka
return
"Tipe data argumen harus berupa angka"
;
}
}
//Test beberapa kasus inputan untuk fungsi pangkat()
echo
pangkat(5,2);
echo
"<br />"
;
echo
pangkat(5.6,2);
echo
"<br />"
;
echo
pangkat(2,8);
echo
"<br />"
;
echo
pangkat(5,2.9);
echo
"<br />"
;
echo
pangkat(
"lima"
,2);
echo
"<br />"
;
?>
Fungsi pangkat() diatas terasa sedikit panjang, namun jika telah mengikuti seluruh tutorial PHP di duniailkom, maka fungsi tersebut tidak akan terlalu sulit untuk dipahami.
Fungsi pangkat() rancang untuk menghitung pangkat dari sebuah angka. Variabel $nilai dan $pangkat adalah parameter yang akan menjadi variabel perantara.
Pada baris ke-4 membuat pengecekan masing-masing parameter di dalam logika IF. Fungsi is_numeric() dan is_int() akan menghasilkan nilai TRUE jika keduanya benar, sehingga menggabungkan keduanya kedalam logika AND. Seandainya logika AND ini salah, maka kondisi IF akan bernilai FALSE, dan bagian ELSE akan dijalankan (baris ke-13), dimana membuat kalimat “Tipe data argumen harus berupa angka” untuk memberitahu pengguna fungsi bahwa tipe argumennya harus berupa angka.
Jika kedua kondisi is_numeric() dan is_int() benar, maka saya membuat proses perulangan for untuk mencari hasil pemangkatan. Setelah hasilnya ditemukan, perintah return akan mengembalikan nilai tersebut (baris ke-11).
Dari hasil pemanggilan fungsi, dapat melihat bahwa logika alur program sudah berjalan benar, dan jika memberikan nilai argumen yang salah, hasil yang ditampilkan bukan kode error PHP, melainkan pesan kesalahan yang lebih informatif.
Dengan menggunakan fungsi seperti is_numeric() dan is_int() dapat melakukan pengecekan tipe data terlebih dahulu sebelum melakukan proses fungsi. Hal ini akan menghindari error program PHP, dan memberikan fleksibilitas untuk melakukan tindakan pencegahan jika tipe data yang diinput bukan yang seharusnya.
Pembuatan Default Parameter pada Fungsi PHP
Pengertian Default Parameter dalam PHP
Default Parameter adalah istilah untuk parameter yang memiliki nilai awal, atau nilai default.
Sebagai contoh, membuat fungsi sederhana: tambah(). Fungsi ini membutuhkan 2 buah parameter, yakni nilai yang ingin ditambahkan. Berikut adalah contoh programnya:
1 2 3 4 5 6 7 8 9 | <?php function tambah( $a , $b ) { return $a + $b ; } echo tambah(2,3); // hasil: 5 echo tambah(3,4); // hasil: 7 ?> |
Dengan menambahkan default parameter, bisa memanggil fungsi tambah() hanya dengan 1 inputan angka, atau bahkan tidak perlu sama sekali. Berikut adalah perubahannya:
1 2 3 4 5 6 7 8 9 10 | <?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, 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, 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 tidak harus menginputkan seluruh parameter, tetapi apa yang dianggap perlu saja.
Cara Penulisan Default Parameter dalam PHP
Untuk membuat default parameter, 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, akan diubah fungsi pangkat() yang telah dirancang pada Pengecekan Tipe Data Argumen untuk Fungsi PHP, berikut adalah contoh kode programnya:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | <?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 />" ; ?>
|
Pada contoh fungsi pangkat() kali ini 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 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 membuat 2 buah argumen.
Penempatan Default Parameter
Sebuah fungsi tidak dibatasi berapa banyak default parameter yang boleh digunakan, namun jika 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.
Default parameter merupakan fitur yang bisa dimanfaatkan untuk membuat fungsi lebih fleksibel, karena cara pemanggilan fungsi dapat dirancang dengan lebih sederhana.
Pengertian Variable Parameter dalam Fungsi PHP
Pengertian Variable Parameter
Variable Parameter adalah sebuah fitur dalam PHP dimana bisa membuat fungsi dengan jumlah parameter yang bisa berubah-ubah (variable). Umumnya sebuah fungsi membutuhkan parameter yang telah ditentukan sebelumnya, namun dengan beberapa fungsi khusus, PHP membolehkan untuk membuat fungsi dengan jumlah parameter tidak dibatasi, bisa 0, 2, 5, bahkan 100 parameter dengan 1 nama fungsi.
Cara Pembuatan Fungsi dengan Variable Parameter
Sebuah fungsi dengan jumlah parameter yang tidak diketahui tampaknya agak aneh, namun fleksibilitas ini dapat digunakan untuk kasus-kasus pemograman khusus.
Sebagai contoh akan membuat fungsi penambahan(), dimana fungsi ini akan menambahkan seluruh angka yang terdapat di dalam argumennya. Misalkan penambahan(2,6,8) akan menghasilkan 16, dan penambahan(1,2,3,4,5,6) akan menghasilkan nilai 21. Menginginkan fungsi ini mendukung berapapun jumlah argumen. Fungsi akan mengunakan fitur Variable Parameter.
Untuk membuat sebuah fungsi dengan jumlah parameter yang tidak diketahui, PHP menyediakan 3 fungsi tambahan untuk mengakses argumen yang diinput pada saat fungsi dipanggil. Ketiga fungsi tersebut adalah:
- func_get_args(): fungsi ini akan mengembalikan seluruh nilai argumen dalam sebuah fungsi. Hasilnya dalam bentuk array.
- func_num_args(): fungsi ini akan mengembalikan banyaknya jumlah argumen dalam pemanggilan fungsi, apakah 1 argumen, 3 argumen, atau 10 argumen.
- func_get_arg(no_urut_argumen): fungsi ini akan mengembalikan nilai dari argumen pada nomor urut yang diberikan kepadanya.
Agar mudah memahami fungsi ketiganya, langsung saja kita masuk ke dalam kode program:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | <?php function penambahan() { //ambil variable parameter $array_argumen = func_get_args(); $jumlah_argumen = func_num_args(); $nilai_argumen_ke_2 = func_get_arg(1); //index dimulai dari 0 //tampilkan hasil variable parameter echo "Jumlah argumen: $jumlah_argumen" ; echo "<br />" ; echo "Nilai argumen ke-2: $nilai_argumen_ke_2" ; echo "<br />" ; echo "Array Argumen: " ; var_dump( $array_argumen ); echo "<br />" ; echo "<br />" ; return ; } echo "Rincian dari fungsi penambahan(1,2) : " ; echo "<br />" ; penambahan(1,2); echo "Rincian dari fungsi penambahan(5,4,3,2,1) : " ; echo "<br />" ; penambahan(5,4,3,2,1); echo "Rincian dari fungsi penambahan(0,6,8,19) : " ; echo "<br />" ; echo penambahan(0,6,8,19); ?> |
Mari kita membahas kode PHP diatas:
Pada baris ke-2, mendefenisikan fungsi penambahan() tanpa menggunakan parameter. Untuk membuat fungsi variable parameter (dimana jumlah parameternya yang tidak ditentukan) dalam pendefenisian fungsi, dibuat tanpa parameter sama sekali.
Pad baris 5-7, menjalankan ke-3 fungsi khusus yang telah dijelaskan sebelumnya. Fungsi-fungsi ini akan mengambil nilai-nilai dari argumen yang diinputkan pada saat pemanggilan fungsi. Lalu nilai ini disimpan kedalam 3 variabel, yakni $array_argumen, $jumlah_argumen, dan $nilai_argumen_ke_2
Sebagai catatan, untuk mengambil nilai argumen ke-2, didapatkan nilainya dari fungsi func_get_arg(1). Karena argumen dihitung dari angka 0, sehingga argumen kedua berada di index ke 1.
Selanjutnya dari baris 11-20 menampilkan hasil masing-masing variabel. Penulisan echo ”<br/>” digunakan semata-mata agar tampilan di browser lebih rapi dan mudah dilihat.
Pada saat pemanggilan fungsi penambahan() pada baris ke 26, 30 dan 34, memanggilnya dengan jumlah argumen yang berbeda-beda, dan dapat melihat hasil dari ke-3 fungsi khusus variabel parameter.
Dengan ke-3 fungsi khusus telah sukses di jalankan, untuk membuat fungsi penambahan() yang sebenarnya, tinggal membuat perulangan (looping) untuk menambahkan seluruh argumen-argumen yang ada. Berikut adalah kode program fungsi penambahan versi final:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | <?php function penambahan() { //ambil variable parameter $jumlah_argumen = func_num_args(); //proses penambahan $nilai =0; for ( $i = 0; $i < $jumlah_argumen ; $i ++) { $nilai += func_get_arg( $i ); } return $nilai ; } echo "penambahan(1,2) = " .penambahan(1,2); echo "<br />" ; echo "penambahan(5,4,3,2,1) = " .penambahan(5,4,3,2,1); echo "<br />" ; echo "penambahan(0,6,8,19,20,44,21) = " .penambahan(0,6,8,19,20,44,21); ?> |