Beda pass-by-value dan pass-by-reference

October 4, 2010

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:


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.

Pass-by-reference:

  1. Berlaku pada tipe data array dan objek.
  2. Bisa memodifikasi nilai baik di dalam maupun di luar fungsi.

Untuk lebih jelasnya, diberikan contoh sbb.
Contoh kode untuk pass-by-value:

public class CobaTestByValue {
	public static void main(String[] args){
		int i = 11;
		System.out.println(i);
		
		test(i);
		System.out.println(i);
	}
	public static void test(int j){
		j = 22;
	}
}

Jika dijalankan, maka hasilnya:

Tidak terjadi perubahan data pada method utama.

Kemudian contoh kode untuk pass-by-reference:

public class CobaTestByReference {
	public static void main(String args[]){
		int ages[] = {10, 20, 30};
		for (int i=0; i<ages.length; i++){
			System.out.println(ages[i]);
		}
		
		test(ages);
		for (int i=0; i<ages.length; i++){
			System.out.println(ages[i]);
		}
	}
	
	public static void test(int arr[]){
		for (int i=0; i<arr.length; i++)
			arr[i] = i + 100;
	}
}

Jika dijalankan, maka hasilnya:

Terjadi perubahan data pada method utama.

5 Responses to “Beda pass-by-value dan pass-by-reference”

  1. Fandi Akhmad Says:

    😀 waw sangat clear sekali. Thanks ya

  2. The Petarung Says:

    @Fandi & Fahrizal.Smg bisa membantu:mrgreen:

  3. tedi Says:

    sangatt jelasss


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: