alexa-tracking

Main Content

1024
1024
KASKUS
51
244
https://www.kaskus.co.id/thread/52c51a213f42b29e438b45ce/passing-parameter-by-reference-java
Passing parameter by reference [JAVA]
Ane punya code seperti ini gan
Code:

public static void main(String[] args){
int x = 1;
System.out.println(x);
changeByReference(x);
System.out.println(x);
}

public static void changeByReference(int x){
x++;
System.out.println(x);
}

Hasilnya:
Code:

1
2
1


Yang mau ane tanyain, kenapa nilai x yang ada diluar method "changeByReference()" gak berubah gan?


Thanks gan buat yang udah mau jawab emoticon-Smilie

gak bisa kalo gitu
bisanya dimasukin class dulu, trus class yang di jadiin param atau kalo mau ya I-nya ditaruh diluar
semua parameter passing di java pass by value gan emoticon-Malu (S)
bisa sih dibikin seakan-akan pass by reference, tapi intinya tetep aja pass by value

kalo di kode agan itu karena si variabel di pass by value sebagai parameter fungsi, jadi nilai aslinya nggak keganti
Quote:Original Posted By erakhman
Ane punya code seperti ini gan
Code:

public static void main(String[] args){
int x = 1;
System.out.println(x);
changeByReference(x);
System.out.println(x);
}

public static void changeByReference(int x){
x++;
System.out.println(x);
}

Hasilnya:
Code:

1
2
1


Yang mau ane tanyain, kenapa nilai x yang ada diluar method "changeByReference()" gak berubah gan?


Thanks gan buat yang udah mau jawab emoticon-Smilie



Quote:Original Posted By BreakMyFall
semua parameter passing di java pass by value gan emoticon-Malu (S)
bisa sih dibikin seakan-akan pass by reference, tapi intinya tetep aja pass by value

kalo di kode agan itu karena si variabel di pass by value sebagai parameter fungsi, jadi nilai aslinya nggak keganti



kodenya ga berubah gara2 primitives.
Quote:Original Posted By lunan





kodenya ga berubah gara2 primitives.


Setuju. Cuma objects yang pass by reference. Kalau primitive data types (int, String, dll) yg bukan Object itu pass by value.
Quote:Original Posted By kkonline


Setuju. Cuma objects yang pass by reference. Kalau primitive data types (int, String, dll) yg bukan Object itu pass by value.


object pun pass by value gan, yg di pass by value alamat pointer objectnya (emang agak ngebingungin sih ngejelasinnya kalo nggak pernah pusing-pusing di pointernya C)

http://stackoverflow.com/questions/4...s-by-reference
Quote:Original Posted By BreakMyFall
object pun pass by value gan, yg di pass by value alamat pointer objectnya (emang agak ngebingungin sih ngejelasinnya kalo nggak pernah pusing-pusing di pointernya C)

http://stackoverflow.com/questions/4...s-by-reference


Justru biar ngga ngebingungin yg baru lg belajar saya pikir mending soal definisi ketatnya diabaikan aja dulu emoticon-Smilie

Yg penting kan taunya kalau parameter nya itu object, kalau property dari object itu diganti di dalam method itu, property nya object yg di luar keganti juga. Kan hasilnya seolah2 itu pass by reference (berdasarkan definisi C/C++).
Quote:Original Posted By kkonline


Justru biar ngga ngebingungin yg baru lg belajar saya pikir mending soal definisi ketatnya diabaikan aja dulu emoticon-Smilie

Yg penting kan taunya kalau parameter nya itu object, kalau property dari object itu diganti di dalam method itu, property nya object yg di luar keganti juga. Kan hasilnya seolah2 itu pass by reference (berdasarkan definisi C/C++).


menurut ane kalo udah bicara object harus sekalian ngertiin object-orientednya juga sih gan emoticon-Malu (S) gimana objek itu dimanipulasi, dsb.
Quote:Original Posted By BreakMyFall
menurut ane kalo udah bicara object harus sekalian ngertiin object-orientednya juga sih gan emoticon-Malu (S) gimana objek itu dimanipulasi, dsb.

Iya sih tiap orang cara belajar-mengajar nya beda sih ya. Makasih masukannya gan emoticon-Smilie
Quote:Original Posted By kkonline

Iya sih tiap orang cara belajar-mengajar nya beda sih ya. Makasih masukannya gan emoticon-Smilie


sama-sama gan, lagi sama-sama belajar juga kok ini emoticon-Cendol (S)