Lompat ke konten utama

Kompetisi Ajak Teman: hadiah total Rp1.000.000 tunai untuk 3 pengajak terbanyak. Berakhir 29 November 2026. Ikut kompetisi

←

Java Dasar: Membaca dan Memperbaiki Kode

Pelajaran 13 dari 16

Objek, interface, dan exception

Kelas sendiri dan objek

Setelah pelajaran ini kamu bisa membaca kelas dengan field dan konstruktor, membedakan salinan nilai dari dua referensi ke satu objek, dan mengenali NullPointerException.

±13 menitDiperiksa 5 Okt 2026

Materi

Kelas adalah cetak biru; objek adalah barang yang dibuat darinya dengan kata new. Field menyimpan data tiap objek, konstruktor mengisi field saat objek dibuat, dan method instance bekerja pada field objek itu. Konstruktor ditulis seperti method tanpa tipe balik, dengan nama yang sama persis dengan kelasnya.

class Rekening {
    String pemilik;
    int saldo;

    Rekening(String pemilik, int saldo) {
        this.pemilik = pemilik;
        this.saldo = saldo;
    }

    void setor(int jumlah) {
        saldo += jumlah;
    }
}

Di konstruktor itu, parameter pemilik bernama sama dengan field pemilik. this.pemilik menunjuk field, sedangkan pemilik saja menunjuk parameter. Tanpa this, baris pemilik = pemilik hanya mengisi parameter dengan dirinya sendiri, dan fieldnya tetap bernilai bawaan: null untuk objek, 0 untuk int.

Variabel bertipe kelas menyimpan referensi. Rekening b = a; tidak menyalin rekeningnya; a dan b kini menunjuk satu objek yang sama, sehingga setoran lewat b terlihat lewat a. Ini berbeda dari int b = a;, yang menyalin angkanya. Perilaku ini sama dengan objek di Python dan JavaScript.

Latihan

0/3 lulus

Jawaban diperiksa di server. Lulus berarti kamu memahami contohnya, bukan penilaian seluruh pekerjaanmu.

Latihan 1 dari 3

Apa keluaran program ini?

public class Bank {
    public static void main(String[] args) {
        Rekening a = new Rekening("Ayu", 100000);
        Rekening b = a;
        b.setor(50000);
        System.out.println(a.saldo + " " + b.saldo);
    }
}

class Rekening {
    String pemilik;
    int saldo;

    Rekening(String pemilik, int saldo) {
        this.pemilik = pemilik;
        this.saldo = saldo;
    }

    void setor(int jumlah) {
        saldo += jumlah;
    }
}
Pilih satu jawaban

Latihan 2 dari 3

Apa keluaran program ini?

public class Bank {
    public static void main(String[] args) {
        Rekening r = new Rekening("Ayu", 100000);
        System.out.println(r.pemilik + " " + r.saldo);
    }
}

class Rekening {
    String pemilik;
    int saldo;

    Rekening(String pemilik, int saldo) {
        pemilik = pemilik;
        saldo = saldo;
    }
}
Pilih satu jawaban

Latihan 3 dari 3

Apa yang terjadi saat program ini dijalankan?

public class Bank {
    public static void main(String[] args) {
        Rekening r = null;
        System.out.println("Mulai");
        r.setor(1000);
        System.out.println(r.saldo);
    }
}

class Rekening {
    int saldo;

    void setor(int jumlah) {
        saldo += jumlah;
    }
}
Pilih satu jawaban

Catatanmu

Memuat catatan…

tersimpan otomatis, ikut tercetak · 0/4.000

Luluskan semua latihan dulu untuk menandai pelajaran ini selesai.

Lanjutkan ke

Sebagian materi kelas ini diadaptasi dari Exercism — jalur Java (concept exercises) (MIT).