partner : maulithaghaisani.blogspot.com
maulitha ghaisani 54410281
Inheritance adalah
konsep pemrograman berorientasi object yang memungkinkan membuat hubungan di
mana ada class yang mewarisi semua
attribute dan method dari class lain. Class baru yang lebih spesifik
disebut subclass atau class turunan, sedangkan class yang diturunkan disebut
superclass.
Kita dapat
mendefinisikan suatu kelas baru dengan mewarisi sifat dari kelas lain yang
sudah ada. Penurunan sifat ini bisa dilakukan secara bertingkat-tingkat,
sehingga semakin ke bawah kelas tersebut menjadi semakin spesifik. Sub kelas
memungkinkan kita untuk melakukan spesifikasi detail dan perilaku khusus dari
kelas supernya. Dengan konsep pewarisan, seorang programmer dapat menggunakan
kode yang telah ditulisnya pada kelas super berulang kali pada kelas-kelas
turunannya tanpa harus menulis ulang semua kode-kode itu.
Penurunan
sifat memungkinkan kita untuk membuat sebuah objek baru yang sama dengan objek
sebelumnya yang telah didefinisikan. Karakteristik dari suatu objek diturunkan
ke objek yang lain sehingga objek yang baru akan memiliki karakteristik yang
sama dengan induknya. Penurunan ini diawali dengan mendefinisikan objek induk,
sehingga dengan menggunakan objek induk tersebut, dapat membuat objek yang
bertumpu pada objek induknya. Sehingga akan terbentuk objek keturunan. Dimana
setiap objek turunannya dapat mengakses semua data dan program yang dimiliki
oleh objek induknya. Berikut ini contoh program sederhana menggunakan Java.
CONTOH PROGRAM
package inheritance;
//di class main ini baru akan terlihat bagaimana penurunan
di fungsikan
public class
Inheritance {
public static void
main(String[] args) {
//perhatikan
kode di bawah ini
//saya membuat
sebuah variabel dgn nama arta sebagai karyawan tetap
karyawanTetap
arta = new karyawanTetap();
float
gajiTetapPerusahaan= 1250000;
float
uangAkomdasiPerusahaan = 500000;
float
bonusPerusahaan = 250000;
float
intensifPerusahaan = 500000;
//lihat
perbedaannya arta mempunyai variabel nama karyawan yang dimiliki class karyawan
//padahal bila
kita lihat ke class karyawan tetap, tidak ada variabel nama karyawan
//disimpulkan
bahwa arta meawarisi sifat dari class karyawan
arta.namaKaryawan="Arta Pratiwi";
arta.npmKaryawan="51410134";
arta.alamat="jalan wahid khasim no. 83";
arta.email="arta.gunadarma@gmail.com";
arta.gajiTetap
= gajiTetapPerusahaan;
arta.uangAkomodasi = uangAkomdasiPerusahaan;
arta.bonus=bonusPerusahaan;
arta.intensif=intensifPerusahaan;
//panggil
fungsi yang ada di mother class
arta.cetakData();
//panggil
fungsi yang ada hanya di kelas karyawan tetap
System.out.println("gaji :" + arta.hitungGaji());
//sekarang
lihat perbedaan dengan karyawan lepas
karyawanLepas
maulitha = new karyawanLepas();
maulitha.namaKaryawan = "maulitha ghaisani";
maulitha.npmKaryawan
= "5041201";
maulitha.alamat="jalan sana sini";
maulitha.email="maulitha@gmail.com";
//karyawan
lepas tidak mempunyai bonus dan intensif
maulitha.gajiTetap=gajiTetapPerusahaan;
maulitha.uangAkomodasi=uangAkomdasiPerusahaan;
maulitha.cetakData();
System.out.println("gaji :" + maulitha.hitungGaji());
}
}
package inheritance;
public class Karyawan
{
//ini mother
classnya
//mendeklarasikan variabel
public String
namaKaryawan;
public String
npmKaryawan;
public String
alamat;
public String
email;
//membuat fungsi di mother class
//fungsi
menampilkan data dalam variabel yang telah di isi
public void
cetakData(){
System.out.println("------------------------------------------");
System.out.println("Nama Karyawan :" + namaKaryawan);
System.out.println("Npm Karyawan :" + npmKaryawan);
System.out.println("Alamat Karyawan :" + alamat);
System.out.println("email
Karyawan :" + email);
}
}
package inheritance;
//ini adalah child class
//perhatikan, child class mempunyai sifat mother class nya
dengan keyword extends
public class karyawanTetap
extends Karyawan{
//dengan kata lain
dia memiliki variabel yang sama dengan yang dimiliki mother class
//seperti nama,
npm, dan fungsi nya seperti yang tadi sudah dibuat di mother class
//membuat
deklarasi variabel baru untuk karyawan tetap
public float
gajiTetap;
public float
intensif;
public float
uangAkomodasi;
public float
bonus;
//membuat fungsi
untuk menghitung gaji karyawan tetap
public float
hitungGaji(){
//karena ini
fungsi dengan data type maka harus ada pengembalian nilai denga keyword return
float total;
total =
gajiTetap + intensif +uangAkomodasi+bonus;
return total;
}
}
package inheritance;
//ini juga merupakan child class dari Karyawan, dan jangan
lupa juga menggunakan extends
public class karyawanLepas
extends Karyawan{
//disini bisa
dilihat perbedaan antara karyawan tetap dan lepas
//karyawan lepas
tidak memiliki intensif & bonus
//tapi memiliki
sifat induknya yaitu memiliki npm, nama, email, dan fungsi dari class karyawan
//fungsi extends
adalah mendeklarasikan class ini merupakan turunan dari class karyawan
public float
gajiTetap;
public float
uangAkomodasi;
//membuat fungsi
perhitungan gaji untuk karyawan lepas
public float
hitungGaji(){
float total;
total =
gajiTetap + uangAkomodasi;
return total;
}
}
OUTPUT
Polimorfisme adalah kemampuan suatu
objek untuk mengungkapkan banyak hal melalui satu cara yang sama. Polimorfisme
mengizinkan kelas induk untuk mendefinisikan sebuah method general (bersifat
umum) untuk semua kelas turunanya, dan selanjutnya kelas-kelas turunan dapat
memperbaharui implementasi dari method tersebut secara lebih spesifik sesuai
dengan karakteristiknya masing-masing.
Contoh
Polimorfisme pada Bahasa Pemrograman Java Suatu kemampuan dari sebuah object
untuk membolehkan mengambil beberapa bentuk yang berbeda agar tidak terjadi
duplikasi object kita kenal sebagai polymorphism.
Antara penurununan sifat
(inheritance) maupun polymorphism merupakan konsep yang memungkinkan
digunakannya suatu interface yang sama untuk memerintah objek agar melakukan
aksi atau tindakan yang mungkin secara prinsip sama namun secara proses
berbeda. Dalam konsep yang lebih umum sering kali polymorphism disebut dalam
istilah tersebut.
Contoh :
Listing codenya :
• Membuat Class hewan
class hewan {
public void suara (){
System.out.println("Hewan bersuara :");
}
}
• Membuat kelas turunan kuda yang merupakan turunan dari class hewan :
public class kuda extends hewan {
public void suara(){
System.out.println("Kuda mengikik...");
}
}
• Membuat kelas turunan kucing yang merupakan turunan dari class hewan :
public class kucing extends hewan {
public void suara (){
System.out.println("Kucing mengeong...");
}
}
• Membuat kelas turunan ayam yang merupakan turunan dari class hewan :
public class ayam extends hewan {
public void suara(){
System.out.println("Ayam berkokok...");
}
}
• Membuat class suarahewan untuk mengetes class-class yang telah dibuat :
public class suarahewan {
public static void main(String[] args){
hewan HEWAN = new hewan();
kuda KUDA = new kuda();
kucing KUCING = new kucing();
ayam AYAM = new ayam();
HEWAN.suara();
HEWAN = KUDA;
HEWAN.suara();
HEWAN = KUCING;
HEWAN.suara();
HEWAN = AYAM;
HEWAN.suara();
}
}
Listing codenya :
• Membuat Class hewan
class hewan {
public void suara (){
System.out.println("Hewan bersuara :");
}
}
• Membuat kelas turunan kuda yang merupakan turunan dari class hewan :
public class kuda extends hewan {
public void suara(){
System.out.println("Kuda mengikik...");
}
}
• Membuat kelas turunan kucing yang merupakan turunan dari class hewan :
public class kucing extends hewan {
public void suara (){
System.out.println("Kucing mengeong...");
}
}
• Membuat kelas turunan ayam yang merupakan turunan dari class hewan :
public class ayam extends hewan {
public void suara(){
System.out.println("Ayam berkokok...");
}
}
• Membuat class suarahewan untuk mengetes class-class yang telah dibuat :
public class suarahewan {
public static void main(String[] args){
hewan HEWAN = new hewan();
kuda KUDA = new kuda();
kucing KUCING = new kucing();
ayam AYAM = new ayam();
HEWAN.suara();
HEWAN = KUDA;
HEWAN.suara();
HEWAN = KUCING;
HEWAN.suara();
HEWAN = AYAM;
HEWAN.suara();
}
}
OUTPUT
KESIMPULAN: Polimorfisme yaitu untuk menggunakan nama yang sama tapi implementasi berbeda. contoh, misalnya dibuat sebuah fungsi berikut : private void getData () { statement} dan untuk fungsi lagi private void gerData (int param) {statement}, nama funsi yang sama yaitu "getData" tetapi dengan pasing parameter yang berbeda, jadi fungsi yang telah tadi dibuat ada di mother class, fungsinya di buat lagi di child dengan implementasi yang berbeda.
sumber :