Penggunaan Inheritance/Pewarisan Pada Java (Menghitung Volume Bangun Ruang)

Konsep Inheritance ini mengadopsi dunia riil dimana suatu entitas/objek dapat mempunyai entitas/objek turunan. Dengan konsep inheritance, sebuah kelas dapat mempunyai class turunan. Suatu class yang mempunyai class turunan dinamakan parent class atau base class. Sedangkan class turunan itu sendiri seringkali disebut subclass atau child class. Suatu subclass dapat mewarisi apa-apa yang dipunyai oleh parent class-nya, sehingga member dari suatu subclass adalah terdiri dari apa-apa yang ia punyai dan juga apa-apa yang ia warisi dari class parent-nya. Kesimpulannya, boleh dikatakan bahwa suatu subclass adalah tidak lain hanya memperluas (extend) parent class-nya.

Di dalam Java untuk mendeklarasikan sutu class sebagai subclass dilakukan dengan cara menambahkan kata kunci extends setelah deklarasi nama class, kemudian diikuti dengan nama parent class-nya. Kata kunci extends tersebut memberitahu kompiler Java bahwa kita ingin melakukan perluasan class.

Contoh: Suatu class Bagun Ruang (Tabung, Balok, Kubus) mewarisi sifat dari Bangun Datar (Lingkran, Persegi, Persegi Panjang), dimana untuk menghitung salah satu bangun ruang tersebut dibutuhkan luas dari bangun datar. Luas bangun datar dihitung pada kelas bangun datar (Lingkaran, Persegi, Persegi Panjang) sehingga hasil perhitungan tersebut akan dilanjutkan pada class bangun ruang (Tabung, Kubus, Balok)
Untuk lebih jelasnya tentang konsep inheritance ini, langsung saja ikuti langkah-langkahnya:

1. Buat New Project (Ctrl+Shift+N) beri nama BangunRuang dan masukkan kode berikut:

package bangunruang;
import javax.swing.JOptionPane;
public class BangunRuang{
    public static void main(String[] args) {
        
        int pilihan = Integer.parseInt(JOptionPane.showInputDialog("Menu; 1.Lingkaran & Tabung; 2.Persegi Panjang & Balok; 3.Persegi & Kubus"));
        switch (pilihan){
                case 1:
                    double r,t, volume,luasling;
                    r = Double.parseDouble(JOptionPane.showInputDialog("Masukan jari :"));
                    t = Double.parseDouble(JOptionPane.showInputDialog("Masukan tinggi : "));
        
                    Tabung Tabung1 = new Tabung();
                    Lingkaran L = new Lingkaran();
        
                    
                    JOptionPane.showMessageDialog(null,"Luas Lingkaran adalah : "+L.VolTabung(r, t));
        
                    volume = Tabung1.VolTabung(r,t);
                    JOptionPane.showMessageDialog(null,"Volume Tabung adalah : "+volume);
                    break;
                    
                case 2:
                    double p,l,t2,luaspp,volumeb;
                    p = Double.parseDouble(JOptionPane.showInputDialog("Masukkan Panjang: "));
                    l = Double.parseDouble(JOptionPane.showInputDialog("Masukkan Lebar: "));
                    t = Double.parseDouble(JOptionPane.showInputDialog("Masukkan Tinggi: "));
                    
                    PersegiPanjang PP = new PersegiPanjang();
                    Balok B = new Balok();
                    
                    luaspp = PP.luasPersegiPanjang(p, l);
                    JOptionPane.showMessageDialog(null,"Luas Persegi Panjang adalah: "+luaspp);
                    
                    volumeb = B.VolBalok(p, l, t);
                    JOptionPane.showMessageDialog(null,"Volume Balok adalah: "+volumeb);
                    break;
                    
                case 3: 
                    double s,luasPersegi,volKubus;
                    s = Double.parseDouble(JOptionPane.showInputDialog("Masukkan Sisi: "));
                    
                    Persegi P = new Persegi();
                    Kubus K = new Kubus();
                    
                    luasPersegi = P.luasPersegi(s);
                    JOptionPane.showMessageDialog(null,"Luas Persegi adalah: "+luasPersegi);
                    
                    volKubus = K.volKubus(s);
                    JOptionPane.showMessageDialog(null,"Volume Kubus adalah: "+volKubus);
        }
    
    }
}

2. Buat Class Lingkaran, dan masukkan kode berikut:

package bangunruang;
public class Lingkaran {
    
    private double luasLing(double r){
        double luasling;
        luasling = 3.14 * r * r;
        return luasling;
    }
    public double VolTabung(double r, double t){
        double voltabung ;
        voltabung = luasLing(r) * t;
        return voltabung;
    }
}

3. Buat Class Tabung, dan masukkan kode berikut:

package bangunruang;
public class Tabung extends Lingkaran {
    public double VolTabung(double r, double t){
        double voltabung ;
        voltabung = luasLing(r) * t;
        return voltabung;
    }
}

4. Buat Class Persegi, dan masukkan kode berikut:

package bangunruang;
import javax.swing.JOptionPane;
public class Persegi {
     public double luasPersegi(double s){
        double luasPersegi;
        luasPersegi = s*s;
        return luasPersegi;
    }
}

5. Buat Class Kubus, dan masukkan kode berikut:

package bangunruang;
import javax.swing.JOptionPane;
public class Kubus extends Persegi{
   public double volKubus(double s){
       double volKubus;
       volKubus = luasPersegi(s)*s;
       return volKubus;
   }
}

6. Buat Class PersegiPanjang, dan masukkan kode berikut:

package bangunruang;
public class PersegiPanjang {
    public double luasPersegiPanjang (double p, double l){
        double luaspp;
        luaspp = p * l;
        return luaspp;
    }
}

7. Buat Class Balok, dan masukkan kode berikut:

package bangunruang;
public class Balok extends PersegiPanjang {
    public double VolBalok (double p, double l, double t){
        double volbalok;
        volbalok = luasPersegiPanjang(p,l)*t;
        return volbalok;
    }
}



References:
- Modul Praktikum OOP STMIK STIKOM Indonesia
- Contoh Penggunaan Pewarisan Pada Java by ViosCodes

Share this

Related Posts

Previous
Next Post »