Materi 8 PHP - Function

Download Report

Transcript Materi 8 PHP - Function

Functions/Fungsi
As’ad Djamalilleil
http://kampusku.uni.me
[email protected]
Definisi Fungsi
• Sebuah fungsi dapat didefinisikan
menggunakan sintaks seperti berikut:
function anu($arg1, $arg2, ..., $argN){
echo "Contoh fungsi.\n";
return $nilaibalik;
}
Argumen Fungsi
• Informasi dapat diberikan ke fungsi lewat
satu atau lebih argumen, yang dipisah
menggunakan tanda koma ( , )
• PHP mendukung pemberian argumen
dengan nilai (passing by value) (default),
pemberian dengan referensi (passing by
reference), dan nilai argumen default
Passing By Value
• Argumen fungsi secara default akan dikirim
nilainya (variabel atau konstanta) ke dalam
fungsi
• Perubahan nilai dari argumen di dalam
fungsi tidak mengubah nilai variabel di luar
fungsi
• Contoh :
function hitung($x, $y){
echo "Jumlahnya = " . $x + $y;
$x = 10;
}
$a = 2; $b = 3;
hitung($a, $b);
echo $a;
• Output :
Jumlahnya = 5
2
• Contoh fungsi yang menerima argumen
berupa array:
function terima($b){
echo "$b[0] + $b[1] = ",
$b[0]+$b[1];
}
$a = array(4, 7);
terima($a);
Passing By Reference
• Bila ingin perubahan pada nilai argumen di
dalam fungsi berpengaruh pula pada variabel
di luar fungsi, maka harus dikirim sebagai
referensi ke dalam fungsi
• Caranya adalah dengan menambahkan
tanda ampersand (&) di depan nama
argumen pada definisi fungsi
• Contoh :
function hitung(&$x, $y){
echo "Jumlahnya = " . $x + $y;
$x = 10;
}
$a = 2; $b = 3;
hitung($a, $b);
echo $a;
• Output :
Jumlahnya = 5
10
function coba(&$string){
$string
.= 'dan tambahannya';
}
$str = 'Ini sebuah string, ';
coba($str);
echo $str;
• Output:
Ini sebuah string, dan tambahannya
• Jika kita ingin mengirimkan sebuah variabel
sebagai referensi ke sebuah fungsi yang
tidak didefinisikan untuk menerima argumen
sebagai referensi, maka kita dapat
menambahkan tanda ampersand di depan
nama argumen pada pemanggil fungsi:
function hitung($x, $y){
echo "Jumlahnya = " . $x + $y;
$x = 10;
}
$a = 2; $b = 3;
hitung(&$a, $b);
echo $a;
• Output :
Jumlahnya = 5
10
function lagi($abc) {
$abc
.=
' dan tambahannya';
}
$str = 'Ini sebuah string, ';
lagi($str);
echo $str;
Output: Ini sebuah string
lagi(&$str);
echo $str;
Output:
Ini sebuah string, dan tambahannya
Nilai Default Argumen
• Sebuah fungsi dapat didefinisi memiliki nilai
default fungsi untuk argumen bertipe skalar:
function kopi($jenis = "cappucino"){
return "Membuat secangkir $jenis\n";
}
echo kopi();
Output: Membuat secangkir cappucino
echo kopi("espresso");
Output: Membuat secangkir espresso
• Nilai default dari argumen harus berupa
konstanta, bukan sebuah variabel atau
anggota class
PENTING:
• Ketika menggunakan argumen default, harus
berada di sebelah kanan dari argumen nondefault. Contoh penulisan argumen default
yang salah :
function minum($jenis = "susu", $rasa){
……… //argumen default seharusnya
//berada di sebelah kanan
Nilai Balik Fungsi
• Nilai dikembalikan dengan menggunakan
statement opsional return. Tipe apapun
dapat dikembalikan, termasuk list dan objek
function kotak($num){
return $num * $num;
}
echo kotak(4);
Output: 16
• Tidak dapat mengembalikan lebih dari satu
nilai dari sebuah fungsi, tapi hasil yang sama
dapat diperoleh dengan cara mengembalikan
sebuah list
function angka(){
return array (0, 1, 2);
}
list($nol, $satu, $dua) = angka();
• Untuk mengembalikan sebuah referensi dari
sebuah fungsi, harus menggunakan operator
referensi ( & ) pada deklarasi fungsi dan
ketika memberikan nilai balik kepada
variabel:
function &kembali(){
return $anu;
}
$baru =& kembali();
Fungsi Variabel
• PHP mendukung konsep dari fungsi variabel.
Ini berarti bahwa jika sebuah nama variabel
memiliki tanda kurung (parentheses)
dibelakangnya, maka PHP akan mencari
fungsi dengan nama yang sama dengan nilai
dari variabel tersebut, dan mencoba untuk
mengeksekusi fungsi tersebut
function coba() {
echo "Pada fungsi coba()<br>\n";
}
function lagi($arg = '') {
echo "Pada fungsi lagi(); argumennya
'$arg'<br>\n";
}
$func = 'coba';
$func();
$func = 'lagi';
$func('percobaan');