Anda di halaman 1dari 25

Fungsi

PHP function, what’s your


function?
Fungsi
0
• Definisi: fungsi
adalah satu blok
code yang memiliki
input dan output
dan dapat di-reuse.
• Suatu blok kode
yang
menyembunyikan
detil dari
implementasi 1
Kategori Fungsi

• Fungsi ada 2:
• Built-in function
• User defined function
Built-in Function

• Merupakan fungsi bawaan dari PHP


yang tinggal dipakai sesuai keperluan.
• 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, …)
{

return ($returnValue);
}

• Syntax pemanggilan fungsi:


$returnVal = namaFungsi($p1, …);
Contoh Fungsi Buatan Sendiri

<?php
function isLeapYear( $year )
{
if (((($year % 4) == 0) &&
(($year % 100) != 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 suhu


Fahrenheit ke Celcius.
• Rumus:
Fungsi dengan Parameter Default
<?php
function 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
<?php
function birthday() Variable static tidak
{ akan hilang
// initialize once
static $age = 0; walaupun
return( ++$age ); pemanggilan fungsi
// same results? telah selesai.
// return( $age++ );
}
Nilainya akan tetap
for ( $i = 0 ; $i < 5 ; $i++ ) tersimpan hingga
{
printf( "Age: %d<br />", browser ditutup.
birthday() );
}
?>
Pass by Value vs
Pass by Reference
Passing Variables: The Inside
Story
• Apa yang
sebenarnya terjadi
pada variable yang
dikirim ke suatu
fungsi?
Pass by Value
• Pass by Value membuat variable lokal yang hanya
berlaku di dalam fungsi.
• Sesudah keluar dari fungsi, variable dan nilai di
dalamnya dibersihkan. Jika nilainya diperlukan maka
perlu dikembalikan via statemen return.

function()
Name: $x $y Name:
Address: 1005 value 1010 Address:
Data: 123 copied 123 Data:
12
Contoh Pass by Value
<?php
function passByValue( $y )
{
$y = 321; // function value
printf( "%s Inside: %d<br />",
str_repeat( "&nbsp;", 3 ),
$y );
}

$x = 123; // initial value


printf( "Before: %d<br />", $x );
passByValue( $x );
printf( "After: %d<br />", $x );
?>
Kelebihan - Kekurangan

• Kelebihan: kode program menjadi lebih


ter-enkapsulasi.
• 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
dibersihkan namun data asal masi tetap ada.

Name: $x &$y Name:


Address: 1005 address 1010 Address:
Data: 123 copied 1005 Data:
Contoh Pass by Reference
<?php
function passByRef( &$y )
{
$y = 321;
printf( "%sInside: %d<br />",
str_repeat( "&nbsp;", 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
• 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.
Including Files
Pernyataan include

• Mirip seperti #include pada C.


• Membolehkan fungsi dibuat dalam file php
tersendiri sehingga dapat di-reuse dan
dipanggil bila perlu.
• Syntax:
• include( ‘namafile’ );
• Jika ada error:
• Warning message ditampilkan dan proses tetap
dilanjutkan.
Contoh include
functions.php
<?php
function add($a, $b)
{
return($a + $b);
}
?>
callInclude.php
<?php
include('functions.php');

echo add( 2, 3 );
?>
Pernyataan include_once

• Hampir sama seperti include namun tidak


akan memasukkan file yang telah pernah di-
include sebelumnya.
• Syntax:
• include_once( ‘namafile’ );
• Jika ada error:
• Warning message ditampilkan dan proses
dilanjutkan.
Contoh include_once
misc.php
<?php
math.php function wonderful()
<?php {
include('misc.php'); ...
?>
}
html.php ?>
<?php
include('misc.php');
?>

include_once.php db.php
<?php <?php
include_once(‘math.php’); include('misc.php');
?>
include_once(‘html.php’);
include_once(‘db.php’);
?>
Pernyataan require

• Mirip seperti include namun berbeda


dari segi penanganan error
• Syntax:
• require( ‘namafile’ );
• Jika ada error:
• Warning message ditampilkan dan
program berhenti.
Pernyataan require_once

• Mirip seperti require namun file yang


telah ter-include sebelumnya tidak akan
dimasukkan lagi.
• Syntax:
• Require_once( ‘namafile’ );
• Jika ada error:
• Warning message ditampilkan dan
program berhenti.

Anda mungkin juga menyukai