Saturday 19 March 2011

Cara melakukan pass by reference integer di Java

Sekadar sharing saja. Mungkin anda sudah tahu bahwa di Java kita tidak bisa melakukan pass by reference terhadap tipe data integer. Bahkan dengan menggunakan class Integer sekalipun, kita memiliki keterbatasan karena class Integer itu immutable (tidak bisa diubah-ubah nilainya).

Ini merupakan cara bodoh yang cukup efektif untuk melakukan pass by reference integer di Java. Saya akan menggunakan contoh bagaimana cara menukar dua buah bilangan menggunakan fungsi swap.


public static void main(String args[]){
  int[] bil = new int[2];
  bil[0] = 10;
  bil[1] = -7;

  System.out.println("Before = " + bil[0] + " " + bil[1]);

  doSwap(bil);

  System.out.println("After = " + bil[0] + " " + bil[1]);
}

dan method doSwap kita adalah :


public static void doSwap(int[] bil){
  int temp = bil[0];
  bil[0] = bil[1];
  bil[1] = temp;
}

Jadi yang kita lakukan adalah membuat sebuah array of integer (yang tentunya bisa di pass by reference) lalu mem-pass kan array tersebut ke method doSwap.

Semoga beguna.

3 comments:

  1. Bukannya bisa dicasting jadi kelas Integer yang bisa direference ama Java ya? *perasaan bu Yani ngomong gini, setengah sadar sih

    ReplyDelete
  2. Keknya aku dah nulis deh di postingan ini apa yang terjadi kalo di casting jadi kelas Integer.

    ReplyDelete
  3. Dan ini tidak hanya berlaku untuk Integer saja, tapi juga Boolean, dan juga mungkin kelas yang merupakan kelas dasar. Baru saja menghabiskan 1 jam, sebelum teringat postingan ini. Untung pernah baca :D Terima Kasih gogo :)

    ReplyDelete