fungsi - informatika.unsyiah.ac.idinformatika.unsyiah.ac.id/~viska/pbw/01-fungsi.pdf · fungsi •...
TRANSCRIPT
Fungsi
PHP function, what’s your PHP function, what’s your function?function?
Fungsi
• Definisi: fungsiadalah satu blokcode yang memiliki
00
code yang memilikiinput dan output dan dapat di-reuse.
• Suatu blok kodeyang menyembunyikandetil dariimplementasi 1111
Kategori Fungsi
• Fungsi ada 2:
• Built-in function
• User defined function• User defined function
Built-in Function
• Merupakan fungsi bawaan dari PHP yang tinggal dipakai sesuai keperluan.
• Contoh:• Contoh:• phpinfo();
• echo (“”Open the door!);
• $encrypted = md5($password);
• $nospasi = trim(“ teks berspasi ”);
• $kuadrat = sqrt(9);
• $waktu = time();
User Defined Function
• Fungsi yang dibuat sendiri.
• Syntax fungsi:function namaFungsi($param1, …)function namaFungsi($param1, …)
{
…
return ($returnValue);
}
• Syntax pemanggilan fungsi:$returnVal = namaFungsi($p1, …);
Contoh Fungsi Buatan Sendiri
<?phpfunction isLeapYear( $year ){
if (((($year % 4) == 0) &&(($year % 100) != 0)) ||(($year % 400) == 0))(($year % 400) == 0))
$result = TRUE;else
$result = FALSE;
return( $result );}
$yr = 2000;printf( "Year %d ", $yr );
$status = isLeapYear( $yr ) ?"is" : "is not";
printf( "%s a leap year",$status );
?>
Latihan
• Buat fungsi yang mengkonversi suhuFahrenheit ke Celcius.
• Rumus: • Rumus:
Fungsi dengan Parameter Default
<?phpfunction myLog( $exp, $base = 10 ){
return( log( $exp, $base ) );}}
$result = myLog( 1000 );
printf( "log10(1000): %.0f<br />",$result );
$result = myLog( 8, 2 );
printf( "log2(8): %d<br />",$result );
?>
Variable Static
<?phpfunction birthday(){
// initialize oncestatic $age = 0;
Variable static tidakakan hilangwalaupunpemanggilan fungsi
static $age = 0;return( ++$age );
// same results?// return( $age++ );
}
for ( $i = 0 ; $i < 5 ; $i++ ){
printf( "Age: %d<br />",birthday() );
}?>
pemanggilan fungsitelah selesai.
Nilainya akan tetaptersimpan hinggabrowser ditutup.
Pass by Value vsPass by Reference
Passing Variables: The Inside Story
• Apa yang sebenarnya terjadipada variable yang pada variable yang dikirim ke suatufungsi?
Pass by Value
• Pass by Value membuat variable lokal yang hanyaberlaku di dalam fungsi.
• Sesudah keluar dari fungsi, variable dan nilai didalamnya dibersihkan. Jika nilainya diperlukan makadalamnya dibersihkan. Jika nilainya diperlukan makaperlu dikembalikan via statemen return.
$x
1005
123
Name:Address:
Data:
$y
1010
123
Name:Address:Data:
function()
value value copiedcopied
12
Contoh Pass by Value
<?phpfunction passByValue( $y ){
$y = 321; // function valueprintf( "%s Inside: %d<br />",printf( "%s Inside: %d<br />",
str_repeat( " ", 3 ),$y );
}
$x = 123; // initial valueprintf( "Before: %d<br />", $x );passByValue( $x );printf( "After: %d<br />", $x );
?>
Kelebihan - Kekurangan
• Kelebihan: kode program menjadi lebihter-enkapsulasi.
• Kekurangan:• Kekurangan:
• Memerlukan memory lebih banyak
• Lebih lambat untuk dataset yang besar
• Hanya satu variable saja yang bisa di-return.
Pass by Reference
• Pass by Reference mengcopy lokasi memori. Bertindak sebagai pointer.
• Sesudah keluar dari fungsi, alamat hasil copy • Sesudah keluar dari fungsi, alamat hasil copy dibersihkan namun data asal masi tetap ada.
$x
1005
123
Name:Address:
Data:
&$y
1010
1005
Name:Address:Data:
addressaddresscopiedcopied
Contoh Pass by Reference
<?phpfunction passByRef( &$y ){
$y = 321;printf( "%sInside: %d<br />",printf( "%sInside: %d<br />",
str_repeat( " ", 3 ),$y );
}
$x = 123;printf( "Before: %d<br />", $x );passByRef( $x );printf( "After: %d<br />", $x );
?>
Kelebihan - Kekurangan
• Kelebihan:
• Lebih cepat karena nilai tidak perlu dicopy
• Ideal untuk dataset besar• Ideal untuk dataset besar
• Dapat mengembalikan banyak nilai
• Kekurangan: fungsi menjadi kurang ter-enkapsulasi.
Latihan
• Buat fungsi yang dapat menukar (swap) 2 nilai. Gunakan pass by reference untuk mengembalikan nilai.untuk mengembalikan nilai.
Including Files
Pernyataan include
• Mirip seperti #include pada C.
• Membolehkan fungsi dibuat dalam file phptersendiri sehingga dapat di-reuse dantersendiri sehingga dapat di-reuse dandipanggil bila perlu.
• Syntax:• include( ‘namafile’ );
• Jika ada error:
• Warning message ditampilkan dan proses tetapdilanjutkan.
Contoh include
functions.php
<?phpfunction add($a, $b){{
return($a + $b);}
?>callInclude.php
<?phpinclude('functions.php');
echo add( 2, 3 );?>
Pernyataan include_once
• Hampir sama seperti include namun tidakakan memasukkan file yang telah pernah di-include sebelumnya.include sebelumnya.
• Syntax:• include_once( ‘namafile’ );
• Jika ada error:
• Warning message ditampilkan dan prosesdilanjutkan.
Contoh include_oncemisc.php
<?phpfunction wonderful(){
...}
?>
math.php<?php
include('misc.php');?>
html.php ?>html.php<?php
include('misc.php');?>
db.php<?php
include('misc.php');?>
include_once.php
<?phpinclude_once(‘math.php’);include_once(‘html.php’);include_once(‘db.php’);?>
Pernyataan require
• Mirip seperti include namun berbedadari segi penanganan error
• Syntax:• Syntax:• require( ‘namafile’ );
• Jika ada error:
• Warning message ditampilkan danprogram berhenti.
Pernyataan require_once
• Mirip seperti require namun file yang telah ter-include sebelumnya tidak akandimasukkan lagi.dimasukkan lagi.
• Syntax:• Require_once( ‘namafile’ );
• Jika ada error:
• Warning message ditampilkan danprogram berhenti.