Sabtu, 13 Maret 2010

PASSING BY VALUE VS PASSING BY REFERENCE

A.PASSING BY VALUE VS PASSING BY REFERENCE:
1.PASSING BY VALUE

Argumen fungsi yang dilewatkan secara pass by value (default dalam php) berarti membuat copy dari argumen yang asli sehingga argumen asli tersebut tidak ikut berubah dengan adanya proses pada fungsi terhadap argumen tersebut.
Secara default, semua nilai yang di-pass masuk atau keluar dari fungsi adalah passing by value, bukan by reference. Ini berarti PHP membuat copian dari nilai original dan nilai copian itulah yang kita akses dan kita manipulasi, bukan nilai originalnya. Dengan begitu bagaimanapun kita ubah nilai itu, tidak akan mengubah nilai originalnya.

Contoh:
Sintaks:

<?php
function jumlah($nilai) {
$nilai++;
}
$input=5;
jumlah($input);
echo $input;
?>

Simpan dengan nama misal function.php

Penjelasan:
Pada saat fungsi jumlah dipanggil, jumlah($input);
fungsi tersebut akan memasukkan nilai dari variabel $input kedalam argumennya, jadi disini argumen fungsi jumlah adalah 5 (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 = 5 + 1
$nilai = 6
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 5.
Hasil:



Tetapi apabila menggunakan passing by reference akan bernilai 6.


2.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.
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.
Sintaks:

<?php
function jumlah(&$nilai) {
$nilai++;
}
$input=5;
jumlah($input);
echo $input;
?>

Simpan dengan nama Function2.php


Penjelasan:

Sesuai dengan penjelasan passing by reference diatas, nilai yang diakses & dimanipulasi adalah nilai aslinya, dengan begitu hasil manipulasi fungsilah yang gunakan sebagai outputnya, yaitu 6.

Hasil:



Contoh Lain:
Sintaks:


<?php
function add_some_extra (& $string )
{
$string .= Reference.' ;
}
$str = 'Passing by ' ;
add_some_extra ( $str );
echo $str ; // outputs 'Passing by Reference.'
?>


Simpan dengan nama Passing.php

Hasil:




B.Definisi
1.Fungsi merupakan subprogram/subrutin program yang terdiri dari sekumpulan perintah yang akan melaksanakan suatu tugas tertentu
2.Fungsi memungkinkan program menjadi lebih terstruktur dan juga memudahkan pelacakan kesalahan.
3.Menggunakan fungsi akan mempersingkat waktu pemrogram untuk menuliskan sekumpulan perintah yang sama berkali-kali.

Sintaks:

function nama_fungsi ($arg1, $arg2,..., $arg_n)
{
blok pertanyaan fungsi
}

Keterangan:
Nama_fungsi adalah nama yang akan digunakan untuk memanggil fungsi
$arg1, $arg2, …, $arg_n adalah argumen-argumen (parameter) yang akan disertakan pada saat pemanggilan fungsi untuk diproses dalam fungsi.
Blok pernyataan fungsi adalah pernyataan-pernyataan yang terdapat dalam apitan tanda ({ }) dimana dikerjakan fungsi untuk tugas tertentu.

•Contoh pemanggilan fungsi tanpa parameter:
<?
$x=2+3;
$y=$x+5;
echo " $y<br>";

$x=2+3;
$y=$x+5;
echo " $y<br>";

$x=2+3;
$y=$x+5;
echo " $y<br>";

$x=2+3;
$y=$x+5;
echo " $y<br>";
?>

Jika kita perhatikan kode di atas, maka penjumlahan yang sama berulang-ulang dituliskan beberapa kali dan merupakan pemborosan. Dengan adanya fungsi maka program diatas bisa dibuatkan ke dalam fungsi dan bisa dipanggil beberapa kali.


seLesai..... seLamaT mencoba dan semoga bermanfaat....


Tidak ada komentar:

Posting Komentar

​​​​​​​​​​