contoh latihan inheritance di java (bangun datar)

saya ingin membuat program sederhana yang berfungsi untuk menghitung luas dari bangun datar, dimana bangun datarnya diantaranya segi empat, persegi panjang dan segitiga. apa yang harus dilakukan ? ikuti langkah berikut :

1.buat kelas bangun datar dengan nama BangunDatar.java, bangun datar ini hanya memiliki fungsi menghitung luas dan keliling yang belum jelas.

[sourcecode language=”java”]
public class BangunDatar {

public void hitungLuas()
{
System.out.println("belum terdefinisi / belum jelas luas apa yang di hitung");
}

public void hitungKeliling(){
System.out.println("belum terdefinisi / belum jelas keliling apa yang di hitung");
}
}
[/sourcecode]

2. lalu buat kelas turunan dari kelas BangunDatar, atau dengan kata lain buat subclass dari BangunDatar, saya ambil contoh kelasnya adalah kelas segi empat dengan nama SegiEmpat.java, kelas ini sudah jelas dapat menghitung luas segi empat dengan cara mendefiniskan ulang method superclass nya atau istilahnya mengoverride method dari superclass nya yaitu kelas BangunDatar, method yang di override adalah method hitungLuas. kini methodnya sudah jelas dapat melakukan sesuatu yaitu menghitung luas, kita juga mengoverride method hitungKeliling.

[sourcecode language=”java”]
public class SegiEmpat extends BangunDatar{
//deklarasi variabel
double sisi;

//deklarasi method konstruktor tanpa parameter
public SegiEmpat(){
}
//deklarasi method konstruktor dengan parameter
public SegiEmpat(double inputsisi){
this.sisi = inputsisi; // menentukan nilai dari variabel sisi adalah parameter inputsisi
}

//deklarasi method untuk menentukan nilai dari variabel sisi
public void setSisi(double inputsisi){
this.sisi = inputsisi;
}
//deklarasi method untuk menghitung luas dengan mengoverride method hitungLuas
//dari superclass nya (kelas BangunDatar)

@Override
public void hitungLuas(){
double luas ; //deklarasi variabel lokal
luas = this.sisi * this.sisi;
//mencetak luas
System.out.println("luas segi empat dengan sisi "+sisi+" cm adalah "+luas+" cm kuadrat");

public void hitungKeliling(){
double keliling ; //deklarasi variabel lokal
keliling = this.sisi * 4;
//mencetak luas
System.out.println("keliling segi empat dengan sisi "+sisi+" cm adalah "+keliling+" cm.");

}

}
[/sourcecode]

3. selanjutnya kita tinggal membuat kelas yang berfungsi untuk mengetes apakah kelas BangunDatar dan kelas turunannya yaitu SegiEmpat bisa berjalan dengan baik. kita beri nama kelas ini BangunDatarTest.java , pembuatan kelas ini agar bisa mengetesnya adalah sebagai berikut :
a. buat kelasnya

public class BangunDatarTest{
}

b.agar bisa di RUN maka kelas ini membutuhkan method khusus yaitu method “main”, kode kita menjadi

public class BangunDatarTest {
public static void main(String[] args){

}

}

c. setelah method main ada, maka kita akan menciptakan object dari masing – masing kelas dan kode kita akan menjadi seperti ini

[sourcecode language=”java”]
public class BangunDatarTest {
public static void main(String[] args){
//buat objek dari kelas BangunDatar
BangunDatar bd = new BangunDatar();
//membuat objek bd melakukan sesuatu
bd.hitungLuas();
bd.hitungKeliling();

//buatObjek dari Kelas SegiEmpat dengan nama sg
SegiEmpat sg = new SegiEmpat(500);
//membuat objek sg melakukan sesuatu sesuai method yang dipunyai oleh kelas segiempat
sg.hitungLuas();
sg.hitungKeliling();
}

}

[/sourcecode]

sebagai latihan anda juga bisa membuat kelas turunan lainnya dari BangunDatar seperti kelas persegi panjang, kelas segitiga . tentu variabel dan methodnya akan menyesuaikan dengan kegunaan dari kelas masing masing, misal untuk kelas persegi panjang variabelnya adalah panjang dan lebar, lalu untuk segitiga variabelnya adalah alas dan tinggi, untuk methodnya buatlah methodnya dapat menghitung luas dan keliling sesuai dengan jenis bangun datarnya.
sekian materi yang bisa saya sampaikan , semoga bermanfaat 🙂 selamat belajar.

previous inheritance di java daftar materi java next polymorfisme
7 Comments

Add a Comment

Your email address will not be published. Required fields are marked *