public class MutasiObjek {

    // Mutasi field lewat salinan referensi: perubahan terlihat pemanggil
    static void isiSaldo(Rekening rekening, double jumlah) {
        rekening.saldo = rekening.saldo + jumlah;
    }

    // Mengganti referensi parameter ke objek baru: TIDAK terlihat pemanggil
    static void gantiRekening(Rekening rekening) {
        rekening = new Rekening("Siti", 999999);
        rekening.saldo = 0;
    }

    public static void main(String[] args) {
        Rekening tabungan = new Rekening("Budi", 100000);
        System.out.println("awal          : " + tabungan.pemilik + " - Rp" + tabungan.saldo);

        isiSaldo(tabungan, 50000);
        System.out.println("setelah isi   : " + tabungan.pemilik + " - Rp" + tabungan.saldo);

        gantiRekening(tabungan);
        System.out.println("setelah ganti : " + tabungan.pemilik + " - Rp" + tabungan.saldo);
    }
}
