Pages

Labels

Rabu, 17 Maret 2010

passing by value dan by reference

Pada pemrograman PHP, fungsi merupakan kumpulan dari suatu kode yang didefinisikan dengan tugas tertentu dan dapat merupakan bagian dari suatu kode yang didefinisikan dengan tertentu dan dapat merupakan bagian dari suatu program yang lain. Suatu fungsi dapat memiliki satu argumen atau beberapa argumen atau beberapa argumen.Salah satu kelebihan fungsi adalah nama fungsi yang dapat membawa suatu nilai.

Passing by Value
Argumen fungsi yang dilewatkan secara pass by value (default dalam php) berarti membuat kopi dari argumen yang asli sehingga argumen asli tersebut tidak ikut berubah dengan adanya proses pada fungsi terhadap argumen tersebut. Arti by value adalah jika nilai parameter berbuah, tidak akan ikut mengubah nilai variabel pada pemanggilan statemen. Untuk lebih jelasnya dapat dilihat pada contoh berikut ini:

<!DOCTYPE  HTML  PUBLIC  "-//W3C//DTD  HTML  4.0  Transitional//EN">
<html  xmlns="http://www.w3.org/1999/xhtml"  xml:lang="en"  lang="en">
<head>
<title>Passing by value</title>
</head>


<body bgcolor=#ADD8E6>
<font color=purple size=5 face=impact>Argumen Fungsi by Value</font>
<br/><hr style="color:blue"  />
<?php
function cetak($a)
{
 $a=$a * 5;
 echo("$a<br/>\n");
}
$a=5;
echo("$a<br/>\n");
cetak($a);
echo ($a);
?>
</body>
</html>   

Tampilan hasilnya adalah sebagai berikut:



Ada pula contoh lain dari passing by value



<!DOCTYPE  HTML  PUBLIC  "-//W3C//DTD  HTML  4.0  Transitional//EN">
<html  xmlns="http://www.w3.org/1999/xhtml"  xml:lang="en"  lang="en">
<head>
<title>Fungsi dengan pass by value</title>
</head>

<body bgcolor=#E6E6FA>
<font color=green size=5 face=impact>Argumen Fungsi by Value</font>
<br/><hr style="color:blue"  />

<?php
function kuadrat($x)
{
 $z=$x * $x;
 return($z);
}
$a=5;
printf ("$a kuadrat = %.2f <br/> ",kuadrat($a));
$a=-2.5;
printf ("$a kuadrat = %.2f <br/> ",kuadrat($a));
?>
</body>
</html> 


Tampilan hasilnya adalah sebagai berikut:


Passing by Reference
Argumen fungsi yang dilewatkan secara pass by reference berarti membawa argumen asli ke dalam fungsi sehingga argumen asli tersebut akan ikut berubah dengan adanya proses pada fungsi terhadap argumen tersebut. Kebalikan dari cara di atas adalah transfer nilai by reference nilai by reference, di mana perubahan variabel parameter akan mengubah variabel pemanggilan. Indikasi suatu transfer nilai by reference dengan menambahkan di awal parameter tanda "&". Lebih jelasnya lihat syntax di bawah ini...

<!DOCTYPE  HTML  PUBLIC  "-//W3C//DTD  HTML  4.0  Transitional//EN">
<html  xmlns="http://www.w3.org/1999/xhtml"  xml:lang="en"  lang="en">
<head>
<title>Passing by reference</title>
</head>

<body bgcolor=#C0C0C0>
<font color=blue size=5 face="comic sans ms">Argumen Fungsi by Reference</font>
<br/><hr style="color:blue"  />
<?php
function prosen(&$gaji,$persen)
{
 $gaji+=$gaji * $persen/100;
}
$gaji=1000000;
echo("Gaji sebelum bonus : $gaji<br/>\n");

prosen($gaji,4);
echo ("Gaji setelah bonus: $gaji <br/>\n");
?>
</body>
</html> 

 Hasilnya adalah sebagai berikut...















































0 komentar:

Posting Komentar

 

Blogger news

Blogroll

Blogger templates