Jumat, 14 Desember 2012

Pass-by-value VS Pass-by-reference


Pass-by-value VS Pass-by-reference


Ada 2 tipe data passing dalam java, yakni yang pertama disebut pass-by-value dan yang kedua disebut pass-by-reference. Secara konsep, perbedaan kedua tipe data passing tersebut adalah:

Sering kali kita membuat fungsi yang mengirimkan parameter. Parameter yang dikirimkan dapat berupa by value maupun by reference.
Jika menggunakan konsep passing by value maka isi atau nilai dari variabel yang ada di parameter aktual akan dicopykan ke parameter dari fungsi pemanggil. Dengan demikian tidak ada hubungannya parameter aktual dengan parameter pemanggilnya. Sehingga perubahan pada parameter pemanggil tidak akan mengubah parameter aktual.

Pass-by-Value:
  1. Berlaku pada tipe data primitif (byte,short,int,long,float,double, dan char).
  2. Hanya bisa memodifikasi nilai di dalam fungsi, tidak bisa diluar fungsi.
Jika menggunakan konsep passing by reference maka yang dilewatkan bukan nilainya melainkan alamat(reference) dari nilai tertentu yang dilewatkan. Dengan demikian, jika ada perubahan terhadap nilai yang dilakukan oleh fungsi pemanggil maka nilai pada parameter aktual-pun ikut berubah. 

Pass-by-reference:
  1. Berlaku pada tipe data array dan objek.
  2. Bisa memodifikasi nilai baik di dalam maupun di luar fungsi.