Dalam bahasa pemrograman web yang menggunakan PHP terdapat beberapa argumen, dimana argumen adalah parameter yang digunakan atau disertakan pada saat pemanggilan fungsi untuk diproses dalam fungsi. Pada penjelasan kali ini akan membahas mengenai argumen fungsi yang dilewatkan secara Pass by Value dan Pass By Reference. Dalam hal ini akan dijelaskan bagaimana kegunaan masing-masing fungsi ini dan contoh listing program sekaligus hasilnya...
1. Pass 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.
Berikut adalah salah satu contoh listing program dari pass 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>Pass By Value</title>
</head>
<body>
<p>Berikut adalah contoh program yang menggunakan fungsi pass by value</p>
<?php
function jumlah($nilai) {
$nilai++;
}
$input=8;
jumlah($input);
echo $input;
?>
</body>
</html>
<!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>Pass By Value</title>
</head>
<body>
<p>Berikut adalah contoh program yang menggunakan fungsi pass by value</p>
<?php
function jumlah($nilai) {
$nilai++;
}
$input=8;
jumlah($input);
echo $input;
?>
</body>
</html>
Berikut adalah penjelasan dari listing diatas
Pada saat fungsi jumlah dipanggil,
jumlah($input);
fungsi tersebut akan memasukkan nilai dari variabel $input kedalam argumennya, jadi disini argumen fungsi jumlah adalah 8 (ini adalah nilai aslinya). selanjutnya PHP meng-copy nilai asli tersebut, kemudian hasil copy-nya digunakan untuk proses manipulasi fungsi, sedangkan nilai yang asli dibiarkan tidak berubah. Proses manipulasinya sbb:
$nilai++;
$nilai = $nilai + 1
$nilai = 8 + 1
$nilai = 9
Untuk output,
echo $input;
nilai variabel $input yang diambil disini adalah nilai variabel aslinya, sehingga hasil manipulasi fungsi tadi tidak dipakai, karena bukan nilai asli. Jadi outputnya adalah 8
2. Pass 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.
Berikut adalah contoh listing program dari Pass By Reference...
<!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>Pass By reference</title>
</head>
<body>
<p>Ini merupakan hasil pengolahan fungsi pass by reference</p>
<?php
function jumlah2(&$nilai) {
$nilai++;
}
$input=8;
jumlah2($input);
echo $input;
?>
</body>
</html>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>Pass By reference</title>
</head>
<body>
<p>Ini merupakan hasil pengolahan fungsi pass by reference</p>
<?php
function jumlah2(&$nilai) {
$nilai++;
}
$input=8;
jumlah2($input);
echo $input;
?>
</body>
</html>
Dari listing diatas dapat dijelaskan bahwa pass by reference berbeda dengan passing by value yang bersifat mengkopi, passing by reference memberikan nilai aslinya untuk diakses
dan dimanipulasi, dengan contoh yang sama seperti diatas, kita akan modifikasi menjadi mekanisme passing by reference.Untuk mengubah jadi passing by reference, kita hanya cukup menambahkan operator & pada argumennya.Sesuai dengan penjelasan passing by reference diatas, nilai yang diakses & dimanipulasi adalah nilai aslinya, dengan begitu hasil manipulasi fungsilah yang gunakan sebagai outputnya, yaitu 9
Dari listing diatas didapatkan hasil sebagai berikut..
Tidak ada komentar:
Posting Komentar
<!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>Pass By Value</title>
</head>
<body>
<p>Berikut adalah contoh program yang menggunakan fungsi pass by value</p>
<?php
function jumlah($nilai) {
$nilai++;
}
$input=8;
jumlah($input);
echo $input;
?>
</body>
</html>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>Pass By reference</title>
</head>
<body>
<p>Ini merupakan hasil pengolahan fungsi pass by reference</p>
<?php
function jumlah2(&$nilai) {
$nilai++;
}
$input=8;
jumlah2($input);
echo $input;
?>
</body>
</html>