Anda di halaman 1dari 5

Sistem Informasi Bisnis

Pemrograman Berorientasi Objek


Semester 3
Muhammad Alfriadi
1810120015
Tugas Konsep OOP

1. Inheritance / Pewarisan

Inheritance atau Pewarisan/Penurunan adalah konsep pemrograman dimana sebuah class dapat
‘menurunkan’ property dan method yang dimilikinya kepada class lain. Konsep inheritance digunakan
untuk memanfaatkan fitur ‘code reuse’ untuk menghindari duplikasi kode program.

• Inheritance (Pewarisan) merupakan salah Inheritance (Pewarisan) merupakan salah satu dari tiga
konsep dasar OOP.
• Konsep inheritance ini mengadopsi dunia Konsep inheritance ini mengadopsi dunia riil dimana
suatu entitas/obyek dapat mempy y un ai entitas/obyek turunan.
• Dengan konsep inheritance, sebuah class dap py at mempunyai class turunan.
• Suatu class yang mempunyai class 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.
• Karena suatu subclass dapat mewarisi apa Karena suatu subclass dapat mewarisi apa-apa yang
dipunyai oleh parent class-nya, maka 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 (extend) parent class nya.
• Dengan menambahkan kata kunci Dengan menambahkan kata kunci extends setelah deklarasi
nama class, kemudian diikuti dengan nama parent kemudian diikuti dengan nama parent class nya.
• Kata kunci extends tersebut memberitahu Kata kunci extends tersebut memberitahu kompiler Java
bahwa kita ingin melakukan perluasan class perluasan class.

• Method Overriding dilakukan saat kita ingin membuat ulang sebuah method pada sub-class atau
class anak. Method Overriding dapat dibuat dengan menambahkan anotasi @Override di atas nama
method atau sebelum pembuatan method.

Contoh :

BANGUN DATAR
==============
package inheritance;
public class BangunDatar {

float luas(){
System.out.println("Menghitung laus bangun datar");
return 0;
}
float keliling(){
System.out.println("Menghitung keliling bangun datar");
return 0;
}
}

PERSEGI
=======
package inheritance;

public class Persegi extends BangunDatar {


float sisi;
}

LINGKARAN
==========
package inheritance;

public class Lingkaran extends BangunDatar{

// jari-jari lingkaran
float r;

PERSEGI LINGKARAN
==================
package inheritance;

public class PersegiPanjang extends BangunDatar {


float panjang;
float lebar;

SEGITIGA
========
package inheritance;

public class Segitiga extends BangunDatar {

float alas;
float tinggi;

}
CLASS MAIN
===========
package inheritance;

public class Main {


public static void main(String[] args) {

// membuat objek bangun datar


BangunDatar bangunDatar = new BangunDatar();

// membuat objek persegi dan mengisi nilai properti


Persegi persegi = new Persegi();
persegi.sisi = 2;

// membuat objek Lingkaran dan mengisi nilai properti


Lingkaran lingkaran = new Lingkaran();
lingkaran.r = 22;

// membuat objek Persegi Panjang dan mengisi nilai properti


PersegiPanjang persegiPanjang = new PersegiPanjang();
persegiPanjang.panjang = 8;
persegiPanjang.lebar = 4;

// membuat objek Segitiga dan mengisi nilai properti


Segitiga mSegitiga = new Segitiga();
mSegitiga.alas = 12;
mSegitiga.tinggi = 8;

// memanggil method luas dan keliling


bangunDatar.luas();
bangunDatar.keliling();

persegi.luas();
persegi.keliling();

lingkaran.luas();
lingkaran.keliling();

persegiPanjang.luas();
persegiPanjang.keliling();

mSegitiga.luas();
mSegitiga.keliling();
}
}
Extend @Override

PERSEGI
=======
class Persegi extends BangunDatar {
float sisi;

@Override
float luas(){
float luas = sisi * sisi;
System.out.println("Luas Persegi: " + luas);
return luas;
}

@Override
float keliling(){
float keliling = 4 * sisi;
System.out.println("Keliling Persegi: " + keliling);
return keliling;
}
}

LINGKARAN
==========
package inheritance;

public class Lingkaran extends BangunDatar{

// jari-jari lingkaran
float r;

@Override
float luas(){
float luas = (float) (Math.PI * r * r);
System.out.println("Luas lingkaran: " + luas);
return luas;
}

@Override
float keliling(){
float keliling = (float) (2 * Math.PI * r);
System.out.println("Keliling Lingkaran: " + keliling);
return keliling;
}

}
PERSEGI PANJANG
================
package inheritance;

public class PersegiPanjang extends BangunDatar {


float panjang;
float lebar;

@Override
float luas(){
float luas = panjang * lebar;
System.out.println("Luas Persegi Panjang:" + luas);
return luas;
}

@Override
float keliling(){
float kll = 2*panjang + 2*lebar;
System.out.println("Keliling Persegi Panjang: " + kll);
return kll;
}
}

SEGITIGA
========
package inheritance;

public class Segitiga extends BangunDatar {

float alas;
float tinggi;

@Override
float luas() {
float luas = 1/2 * (alas * tinggi);
System.out.println("Luas Segitiga: " + luas);
return luas;
}

Untuk class Segitiga, kita hanya melakukan override terhadap method luas() saja. Karena untuk method
keliling(), segitiga memiliki rumus yang berbeda-beda. Atau mungkin bisa diturunkan lagi class segitiga
ini menjadi: SegitigaSiku, SegitigaSamaKaki, SegitigaSamaSisi, dsb.

Anda mungkin juga menyukai