1 
BAB I 
DASAR TEORI 
1.1 Pengertian Dasar Inheritance 
Inheritance merupakan proses pewarisan data dan method dari suatu class yang telah ada kepada class baru. Class yang mewariskan disebut dengan kelas super (super class), sedangkan kelas yang mendapat warisan tersebut atau class yang diwariskan disebut dengan subkelas. 
1.2 Deklarasi Inheritance 
Untuk menggunakan inheritance, maka dibutuhkan keyword extends. Contoh deklarasi inheritance : 
Contoh diatas memberitahukan compiler java bahwa kita ingin meng-extends class A ke class B. Dengan kata lain, class B adalah subclass(class turunan) dari class A, sedangkan class A adalah parent class dari class B. 
1.3 Single Inheritance 
Pada konsep single inheritance hanya memperbolehkan suatu subclass mempunyai satu parent class. Dengan konsep single inheritance ini, pewarisan akan dapat diamati dengan mudah. 
public class B extends A { ... }
2 
1.4 Penerapan Inheritance 
Didalam inheritance bahwa suatu subclass adalah tidak lain hanya memperluas (extend) parent classnya. Contoh penerapan inheritance yaitu : 
Pada saat class manajer menurunkan atau memperluas class pegawai, maka ia mewarisi data member yang dipunyai oleh class pegawai. Dengan demikian, class manajer mempunyai data member yang dimilikinya yaitu departemen. 
1.5 Pengaksesan Member Dari Parent Class 
Pengaksesan member yang ada diparent class dari subclass tidak jauh berbeda dengan pengaksesan member subclass itu sendiri. Contohnya suatu parent class dapat tidak mewariskan sebagian membernya kepada subclass. Sejauh mana suatu member dapat diwariskan keclass lain ataupun suatu member dapat diakses dari class lain ini berhubugan dengan control pengaksesan. 
Public class Pegawai{ Public String nama; Public double gaji; } Public class Manajer extends Pegawai{ Public String departemen; }
3 
1.6 Kontrol Pengaksesan 
Didalam java, control pengaksesan dapat digambarkan dalam tabel seperti berikut: 
1.7 Kata Kunci Super 
Kata kunci super digunakan oleh subclass untuk memanggil constructor atau method yang ada pada superclass. Cara penulisan kata kunci super pada subclass untuk memanggil constructor pada superclass. 
Atau 
Sedangkan, cara penulisan super pada subclass untuk memanggil method pada superclass adalah sebagai berikut: 
Atau 
1.8 Konstruktor Tidak Diwariskan 
Dalam suatu class parent dapat tidak mewariskan membernya kepada subclassnya. Tetapi dengan menggunakan kata kunci super yang dimana dilakukan pemanggilan terlebih dahulu pada konstruktor subclass. 
Super () Super (parameter) Super.namaMethod() Super.namaMethod (parameter)
4 
BAB II PEMBAHASAN 
2.1 Percobaan 
2.1.1 Percobaan 1 
Menggunakan kata kunci super. Berikut ini merupakan listing penggunaan kata kunci super. 
Ketika Program tersebut dijalankan maka akan mengahasilkan tampilan seperti berikut ini 
Berdasarkan apa yang telah dilihat dari listing program tersebut dimana kelas child menurunkan atau memperluas (extends) dari class parent, class Parent { public int x = 5; } class Child extends Parent { public int x = 10; public void Info(int x) { System.out.println("Nilai x sebagai parameter = " + x); System.out.println("Data member x di class Child = " + this.x); System.out.println("Data member x di class Parent = " + super.x); } } public class NilaiX { public static void main(String args[]) { Child tes = new Child(); tes.Info(20); } }
5 
maka ia mewarisi data member yang dipunyai oleh class parent. Dengan demikian,class child mempunyai data member yang diwarisi oleh parent ditambah dengan data member yang dimilikinya sendiri. Dan pada class child terdapat kata kunci super yang digunakan untuk merujuk pada member dari class parent. 
2.1.2 Percobaan 2 
Kontrol pengaksesan. Membuat class Pegawai 
Kemudian Membuat class manajer 
Hasil running program 
Setelah dilihat dari hasil program yang dijalankan diclass manajer dimana terdapat kesalahan, ini membuktikan bahwa class manajer tidak mewarisi data member nama dari class pegawai yang bertindak sebagai parent. Letak kesalahan dari program tersebut diclass pegawai pada member nama menggunakan kata kunci private yang dimana private dapat diakses diclass yang sama saja. Sedangkan pada program tersebut public class Pegawai { private String nama; public double gaji; } public class Manajer extends Pegawai { public String departemen; public void IsiData(String n, String d) { nama=n; departemen=d; } }
6 
nama diakses dalam class yang berbeda. Jadi solusi yang dapat diberikan pada masalah ini yaitu mengganti kata kunci private menjadi public di class pegawai. 
2.1.3 Percobaan 3 
Konstruktor tidak diwariskan. 
Membuat class kosong yang bernama parent seperti dibawah ini: 
Membuat class child yang menurunkan class parent 
Setelah dilakukan kompilasi pada class child ternyata terdapat keerroran. Dan pesan kesalahan tersebut yaitu : 
Dimana fungsi super harus diletakkan terlebih dahulu. Sehingga sintak program yang benar yaitu : 
public class Parent { } public class Child extends Parent { int x; public Child() { x = 5; super(); } }
7 
Dan pada program tersebut dilakukan running tidak terjadi kesalahan lagi. Hasil setelah dirunning program. 
2.2 Latihan 
Mengimplementasikan UML class diagram dalam program untuk package perbankan 
public class Child extends Parent { int x; public Child() { super(); x = 5; } }
8 
Ubahlah mode akses atribut saldo pada tabungan menjadi protected. Lalu transformasikan class diagram diatas kedalam bentuk program? tuliskan listing program berikut ini sebagai pengetesan. 
Lakukan kompilasi pada program diatas dan dijalankan. jika tampilan dilayar tampak seperti dibawah ini, maka program anda sudah benar. Jika tidak sama,benahilah kembali program anda dan lakukan hal yang sama seperti diatas. 
Transformasi class diagram : 
 PenyimpananUang dalam program 
import perbankan.*; public class TesLatihan { public static void main(String args[]) { PenyimpananUang tabungan=new PenyimpananUang(5000,8.5/100); System.out.println("Uang yang ditabung : 5000"); System.out.println("Tingkat bunga sekarang : 8.5%"); System.out.println("Total uang anda sekarang : " + tabungan.cekUang()); } } public class PenyimpananUang extends Tabungan { private double tingkatBunga; public PenyimpananUang(int saldo, double tingkatBunga){ this.saldo=saldo; this.tingkatBunga=tingkatBunga;} public double cekUang(){ return (saldo*tingkatBunga)+saldo; } }
9 
 Tabungan kedalam bentuk program 
 Hasil Running 
Analisis : 
Dilihat dari hasil transformasi class diagram tersebut dimana pada class tabungan sebagai class parent yang menjadi akses member awalnya, sedangkan pada class penyimpananUang menurunkan atau memperluas class dari tabungan, dengan demikian class penyimpanan uang mempunyai data member yang diwarisi oleh class tabungan(saldo), ditambah dengan member yang dimilikinya sendiri yaitu tingkat bunga. Agar hasil pada perhitungan total uang anda sekarang menggunakan rumus (saldo*tingkat bunga)+saldo sehingga hasil yang diperoleh sama dengan apa yang diinginkan pada soal tersebut. 
public class Tabungan { protected int saldo; }
10 
BAB III TUGAS PRAKTIKUM 
3.1 Tugas 
Mengimplementasikan UML class diagram dalam program untuk package perbankan 
Transformasikan class diagram diatas ke dalam bentuk program? tuliskan listing program berikut ini sebagai pengetesan.
11 
Lakukan kompilasi pada program diatas dan dijalankan. Jika tampilan dilayar tampak seperti dibawah ini, maka anda sudah benar. Jika tidak sama, benahilah kembali program anda dan lakukan hal yang sama seperti diatas. 
Transformasi class diagram 
 Tabungan 
import perbankan.*; public class TesTugas { public static void main(String args[]) { PengambilanUang tabungan=new PengambilanUang(5000,1000); System.out.println("Uang yang ditabung : 5000"); System.out.println("Uang yang diproteksi : 1000"); System.out.println("-----------------"); System.out.println("Uang yang akan diambil : 4500 " + tabungan.ambilUang(4500)); System.out.println("Saldo sekarang : " + tabungan.getSaldo()); System.out.println("------------ -----"); System.out.println("Uang yang akan diambil : 2500 " + tabungan.ambil(2500)); System.out.println("Saldo sekarang : " + tabungan.getSaldo()); } } public class Tabungan { public int tingkatBunga; public int saldo; }
12 
 PengambilanUang 
 Hasil Running 
public class PengambilanUang extends Tabungan { public int proteksi; public PengambilanUang(int saldo){ this.saldo=saldo; } public PengambilanUang(int saldo, int tingkatBunga){ this.saldo=saldo; this.tingkatBunga=tingkatBunga; } public int getSaldo(){ return saldo; } public boolean ambilUang(int jumlah) { if (jumlah < saldo) return false; else jumlah =saldo-jumlah; return true; } public boolean ambil(int jumlah) { if (jumlah > saldo) return false; else saldo=saldo-jumlah; return true; } }
13 
Analisis: 
Dilihat dari sintak program diatas dimana untuk member saldo dan tingkat Bunga diletakkan di tabungan, dalam class pengambilan uang mewarisi member tabungan yaitu saldo dan tingkat Bunga ditambah dengan proteksi. Dan pada pengambilan uang dilakukan dua Boolean yang dimana bertujuan hasil yang dijalankan sama yang diinginkan pada tugas tersebut.
14 
BAB IV 
KESIMPULAN 
Berdasarkan yang telah dilakukan pada percobaan dan latihan maka dapat ditarik beberapa kesimpulan diantaranya : 
1. Inheritance merupakan proses pewarisan data dan method dari suatu class yang telah ada kepada class baru. 
2. Pada konsep single inheritance hanya memperbolehkan suatu subclass mempunyai satu parent class. 
3. Beberapa istilah dalam inheritance yaitu : 
 Extends 
Keyword ini harus kita tambahkan pada definisi class yang menjadi subclass. 
 Superclass 
Superclass digunakan untuk menunjukkan hirarki class yang berarti class dasar dari subclass/class anak. 
 Subclass 
Subclass adalah class anak atau turunan secara hirarki dari superclass. 
 Super 
Keyword ini digunakan untuk memanggil konstruktor dari superclass atau menjadi variabel yang mengacu pada superclass.
15 
DAFTAR PUSTAKA 
http://saptadihandoko.wordpress.com/2013/10/14/java-inheritance-adalah/ 
http://www.academia.edu/5550543/Inheritance-Polymorpisme 
http://hadityasyafei.blogspot.com/2013/11/penerapan-inheritance-pada-java.html 
http://www.varia.web.id/2013/05/penerapan-inheritance.html

Konsep Inheritance

  • 1.
    1 BAB I DASAR TEORI 1.1 Pengertian Dasar Inheritance Inheritance merupakan proses pewarisan data dan method dari suatu class yang telah ada kepada class baru. Class yang mewariskan disebut dengan kelas super (super class), sedangkan kelas yang mendapat warisan tersebut atau class yang diwariskan disebut dengan subkelas. 1.2 Deklarasi Inheritance Untuk menggunakan inheritance, maka dibutuhkan keyword extends. Contoh deklarasi inheritance : Contoh diatas memberitahukan compiler java bahwa kita ingin meng-extends class A ke class B. Dengan kata lain, class B adalah subclass(class turunan) dari class A, sedangkan class A adalah parent class dari class B. 1.3 Single Inheritance Pada konsep single inheritance hanya memperbolehkan suatu subclass mempunyai satu parent class. Dengan konsep single inheritance ini, pewarisan akan dapat diamati dengan mudah. public class B extends A { ... }
  • 2.
    2 1.4 PenerapanInheritance Didalam inheritance bahwa suatu subclass adalah tidak lain hanya memperluas (extend) parent classnya. Contoh penerapan inheritance yaitu : Pada saat class manajer menurunkan atau memperluas class pegawai, maka ia mewarisi data member yang dipunyai oleh class pegawai. Dengan demikian, class manajer mempunyai data member yang dimilikinya yaitu departemen. 1.5 Pengaksesan Member Dari Parent Class Pengaksesan member yang ada diparent class dari subclass tidak jauh berbeda dengan pengaksesan member subclass itu sendiri. Contohnya suatu parent class dapat tidak mewariskan sebagian membernya kepada subclass. Sejauh mana suatu member dapat diwariskan keclass lain ataupun suatu member dapat diakses dari class lain ini berhubugan dengan control pengaksesan. Public class Pegawai{ Public String nama; Public double gaji; } Public class Manajer extends Pegawai{ Public String departemen; }
  • 3.
    3 1.6 KontrolPengaksesan Didalam java, control pengaksesan dapat digambarkan dalam tabel seperti berikut: 1.7 Kata Kunci Super Kata kunci super digunakan oleh subclass untuk memanggil constructor atau method yang ada pada superclass. Cara penulisan kata kunci super pada subclass untuk memanggil constructor pada superclass. Atau Sedangkan, cara penulisan super pada subclass untuk memanggil method pada superclass adalah sebagai berikut: Atau 1.8 Konstruktor Tidak Diwariskan Dalam suatu class parent dapat tidak mewariskan membernya kepada subclassnya. Tetapi dengan menggunakan kata kunci super yang dimana dilakukan pemanggilan terlebih dahulu pada konstruktor subclass. Super () Super (parameter) Super.namaMethod() Super.namaMethod (parameter)
  • 4.
    4 BAB IIPEMBAHASAN 2.1 Percobaan 2.1.1 Percobaan 1 Menggunakan kata kunci super. Berikut ini merupakan listing penggunaan kata kunci super. Ketika Program tersebut dijalankan maka akan mengahasilkan tampilan seperti berikut ini Berdasarkan apa yang telah dilihat dari listing program tersebut dimana kelas child menurunkan atau memperluas (extends) dari class parent, class Parent { public int x = 5; } class Child extends Parent { public int x = 10; public void Info(int x) { System.out.println("Nilai x sebagai parameter = " + x); System.out.println("Data member x di class Child = " + this.x); System.out.println("Data member x di class Parent = " + super.x); } } public class NilaiX { public static void main(String args[]) { Child tes = new Child(); tes.Info(20); } }
  • 5.
    5 maka iamewarisi data member yang dipunyai oleh class parent. Dengan demikian,class child mempunyai data member yang diwarisi oleh parent ditambah dengan data member yang dimilikinya sendiri. Dan pada class child terdapat kata kunci super yang digunakan untuk merujuk pada member dari class parent. 2.1.2 Percobaan 2 Kontrol pengaksesan. Membuat class Pegawai Kemudian Membuat class manajer Hasil running program Setelah dilihat dari hasil program yang dijalankan diclass manajer dimana terdapat kesalahan, ini membuktikan bahwa class manajer tidak mewarisi data member nama dari class pegawai yang bertindak sebagai parent. Letak kesalahan dari program tersebut diclass pegawai pada member nama menggunakan kata kunci private yang dimana private dapat diakses diclass yang sama saja. Sedangkan pada program tersebut public class Pegawai { private String nama; public double gaji; } public class Manajer extends Pegawai { public String departemen; public void IsiData(String n, String d) { nama=n; departemen=d; } }
  • 6.
    6 nama diaksesdalam class yang berbeda. Jadi solusi yang dapat diberikan pada masalah ini yaitu mengganti kata kunci private menjadi public di class pegawai. 2.1.3 Percobaan 3 Konstruktor tidak diwariskan. Membuat class kosong yang bernama parent seperti dibawah ini: Membuat class child yang menurunkan class parent Setelah dilakukan kompilasi pada class child ternyata terdapat keerroran. Dan pesan kesalahan tersebut yaitu : Dimana fungsi super harus diletakkan terlebih dahulu. Sehingga sintak program yang benar yaitu : public class Parent { } public class Child extends Parent { int x; public Child() { x = 5; super(); } }
  • 7.
    7 Dan padaprogram tersebut dilakukan running tidak terjadi kesalahan lagi. Hasil setelah dirunning program. 2.2 Latihan Mengimplementasikan UML class diagram dalam program untuk package perbankan public class Child extends Parent { int x; public Child() { super(); x = 5; } }
  • 8.
    8 Ubahlah modeakses atribut saldo pada tabungan menjadi protected. Lalu transformasikan class diagram diatas kedalam bentuk program? tuliskan listing program berikut ini sebagai pengetesan. Lakukan kompilasi pada program diatas dan dijalankan. jika tampilan dilayar tampak seperti dibawah ini, maka program anda sudah benar. Jika tidak sama,benahilah kembali program anda dan lakukan hal yang sama seperti diatas. Transformasi class diagram :  PenyimpananUang dalam program import perbankan.*; public class TesLatihan { public static void main(String args[]) { PenyimpananUang tabungan=new PenyimpananUang(5000,8.5/100); System.out.println("Uang yang ditabung : 5000"); System.out.println("Tingkat bunga sekarang : 8.5%"); System.out.println("Total uang anda sekarang : " + tabungan.cekUang()); } } public class PenyimpananUang extends Tabungan { private double tingkatBunga; public PenyimpananUang(int saldo, double tingkatBunga){ this.saldo=saldo; this.tingkatBunga=tingkatBunga;} public double cekUang(){ return (saldo*tingkatBunga)+saldo; } }
  • 9.
    9  Tabungankedalam bentuk program  Hasil Running Analisis : Dilihat dari hasil transformasi class diagram tersebut dimana pada class tabungan sebagai class parent yang menjadi akses member awalnya, sedangkan pada class penyimpananUang menurunkan atau memperluas class dari tabungan, dengan demikian class penyimpanan uang mempunyai data member yang diwarisi oleh class tabungan(saldo), ditambah dengan member yang dimilikinya sendiri yaitu tingkat bunga. Agar hasil pada perhitungan total uang anda sekarang menggunakan rumus (saldo*tingkat bunga)+saldo sehingga hasil yang diperoleh sama dengan apa yang diinginkan pada soal tersebut. public class Tabungan { protected int saldo; }
  • 10.
    10 BAB IIITUGAS PRAKTIKUM 3.1 Tugas Mengimplementasikan UML class diagram dalam program untuk package perbankan Transformasikan class diagram diatas ke dalam bentuk program? tuliskan listing program berikut ini sebagai pengetesan.
  • 11.
    11 Lakukan kompilasipada program diatas dan dijalankan. Jika tampilan dilayar tampak seperti dibawah ini, maka anda sudah benar. Jika tidak sama, benahilah kembali program anda dan lakukan hal yang sama seperti diatas. Transformasi class diagram  Tabungan import perbankan.*; public class TesTugas { public static void main(String args[]) { PengambilanUang tabungan=new PengambilanUang(5000,1000); System.out.println("Uang yang ditabung : 5000"); System.out.println("Uang yang diproteksi : 1000"); System.out.println("-----------------"); System.out.println("Uang yang akan diambil : 4500 " + tabungan.ambilUang(4500)); System.out.println("Saldo sekarang : " + tabungan.getSaldo()); System.out.println("------------ -----"); System.out.println("Uang yang akan diambil : 2500 " + tabungan.ambil(2500)); System.out.println("Saldo sekarang : " + tabungan.getSaldo()); } } public class Tabungan { public int tingkatBunga; public int saldo; }
  • 12.
    12  PengambilanUang  Hasil Running public class PengambilanUang extends Tabungan { public int proteksi; public PengambilanUang(int saldo){ this.saldo=saldo; } public PengambilanUang(int saldo, int tingkatBunga){ this.saldo=saldo; this.tingkatBunga=tingkatBunga; } public int getSaldo(){ return saldo; } public boolean ambilUang(int jumlah) { if (jumlah < saldo) return false; else jumlah =saldo-jumlah; return true; } public boolean ambil(int jumlah) { if (jumlah > saldo) return false; else saldo=saldo-jumlah; return true; } }
  • 13.
    13 Analisis: Dilihatdari sintak program diatas dimana untuk member saldo dan tingkat Bunga diletakkan di tabungan, dalam class pengambilan uang mewarisi member tabungan yaitu saldo dan tingkat Bunga ditambah dengan proteksi. Dan pada pengambilan uang dilakukan dua Boolean yang dimana bertujuan hasil yang dijalankan sama yang diinginkan pada tugas tersebut.
  • 14.
    14 BAB IV KESIMPULAN Berdasarkan yang telah dilakukan pada percobaan dan latihan maka dapat ditarik beberapa kesimpulan diantaranya : 1. Inheritance merupakan proses pewarisan data dan method dari suatu class yang telah ada kepada class baru. 2. Pada konsep single inheritance hanya memperbolehkan suatu subclass mempunyai satu parent class. 3. Beberapa istilah dalam inheritance yaitu :  Extends Keyword ini harus kita tambahkan pada definisi class yang menjadi subclass.  Superclass Superclass digunakan untuk menunjukkan hirarki class yang berarti class dasar dari subclass/class anak.  Subclass Subclass adalah class anak atau turunan secara hirarki dari superclass.  Super Keyword ini digunakan untuk memanggil konstruktor dari superclass atau menjadi variabel yang mengacu pada superclass.
  • 15.
    15 DAFTAR PUSTAKA http://saptadihandoko.wordpress.com/2013/10/14/java-inheritance-adalah/ http://www.academia.edu/5550543/Inheritance-Polymorpisme http://hadityasyafei.blogspot.com/2013/11/penerapan-inheritance-pada-java.html http://www.varia.web.id/2013/05/penerapan-inheritance.html