Pemberian Variable Dalam Method

Wah dah lama ane ga posting di blog ini, bukan karena apa, tapi memang jadwal kuliah yang padat dan tugas-tugas yang sangat menumpuk(yah curhat…)🙂 . Oke langsung aja menuju topik yang kita bahas kali ini yaitu tentang Pemberian Variable Dalam Method atau biasanya disebut Passing Variable. Dalam Passing Variable dalam method ada 2 tipe yaitu Pass By Value dan Pass By Reference.

  1.  Pass By Value : Pada tipe ini, nilai dari variable akan dikopi dan dikirimkan pada method dimana method ini tidak dapat secara langsung memodifikasi nilai variable pengirimnya meskipun nilai dari parameter telah diubah didalam methodnya. Berikut ini contoh programnya :
    public class PassByValue {
        public static void main(String[] args) {
            int x=35;
            System.out.println("nilai x : "+x);
    
            test(x);
            System.out.println(x);
        }
    
        public static void test(int y){
            y=6428734;
        }
    }
    

    Output :

    nilai x pada test(x) tidak akan berubah meskipun nilai dari parameter y pada method test(int y) diubah karena seperti yang sudah dijelaskan diatas bahwa Pass by Value itu mengkopikan nilai dari variable ke method.

  2. Pass By Reference : pada tipe ini method menyalin alamat memori dari variable yang dilewatkan pada method sehingga method dapat memodifikasi variable asli dengan menggunakan alamat memori tersebut. Untuk lebih mudahnya silahkan pahami kode berikut :
    public class PassByReference {
    
        public static void main(String[] args) {
            int[] data = {1, 2, 3};
            System.out.println("Data Sebelum Passing");
            for (int i = 0; i < data.length; i++) {
                System.out.print(data[i] + " ");
            }
            System.out.println();
    
            test(data);
    
            System.out.println("Data Sesudah Passing");
            for (int i = 0; i < data.length; i++) {
                System.out.print(data[i] + " ");
            }
            System.out.println();
        }
    
        public static void test(int[] arr) {
            for (int i = 0; i < arr.length; i++) {
                arr[i] = i + 10;
            }
        }
    }

    Output :

Perlu diingat bahwa java memanipulasi objek-objek dengan cara by Refence akan tetapi java mengirimkan alamat objek kedalam method dengan cara by value. Oke sekian dulu untuk episode kali ini , sekian dan terimakasih.

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s