MODUL IV
PEWARISAN TUNGGAL
(Inheritance)
Nama :
Nur Almahdi (20102108)
Dosen :
II. TOOL
a. NetBeans IDE 8.1 atau
b. NetBeans IDE 12.3
c. Java SE Development Kit 8
a. Pewarisan (inheritance)
Inheritance merupakan proses pewarisan data dan method dari suatu class yang telah ada
kepada suatu class baru. Class yang mewariskan disebut dengan superclass / parent
class / base class, sedangkan class yang mewarisi (class yang baru) disebut dengan
subclass / child class / derived class. Akan tetapi subclass tidak dapat mewarisi anggota
private dari superclass-nya. Dengan inheritance, class yang baru (subclass) akan mirip
dengan class yang lama (superclass), namun memiliki karakteristik yang baru. Dalam
Java, subclass hanya bisa memiliki satu superclass (single inheritance) sedangkan
superclass bisa memiliki satu sublass atau lebih.
c. Constructor
Constructor adalah fungsi untuk mengisi variable kelas tersebut dimana Namanya juga
sama dengan nama kelas.
IV. GUIDE
1. ProjectPoint
Program diatas memakai tiga buah kelas yaitu kelas Point, kelas Circle,
kelas Main. Kelas Circle memakai keyword parent warisan dari kelas point
attributnya berupa x dan y, dengan method cetakPoint(). Kelas cetak
Memakai radius dan konstruktor serta melakukan override. Dikelas Main
membuat objek dari kelas circle warisan kelas induk.
2. ProjectSpeak
Kelas Mammal
Kelas Dog
Kelas Duck
Kelas Horse
Kelas MikeWallace
Kelas MikeSafer
Kelas Owl
Kelas Main
Program diatas memiliki banyak kelas antara lain kelas Main (utama), kelas
Mammal (kelas induk), kelas turunan (dog, horse, owl, dll). Kelas Mammal
mewariskan attribute (nama) dan method (sleep) kepada kelas turunannya.
Dikelas main terdapat kode untuk membuat objek dari tiap turunan kelas
Mammal.
V. UNGUIDED
Kelas Pegawai
1. package com.deva.pertemuan4.unguided;
2.
3. /**
4. *
5. * @author Deva
6. */
7. public class Pegawai {
8. protected String NIP;
9. protected String nama;
10. protected String alamat;
11. protected int gaji_pokok;
12. protected int tahun_masuk_kerja;
13.
14. public Pegawai()
15. {
16. this.NIP = "1234";
17. this.nama = "ahmad";
18. this.alamat = "purwokerto";
19. this.gaji_pokok = 1500000;
20. this.tahun_masuk_kerja = 2005;
21. }
22. protected int HitungGajiAkhir(int gaji_pokok, int bonus_tunjangan_komisi)
23. {
24. int gaji_akhir = gaji_pokok + bonus_tunjangan_komisi;
25. return gaji_akhir;
26. }
27.
28.
29. }
30.
Kelas Pegawai adalah kelas induk dari kelas Satpam, Sales, Manager. Kelas Pegawai
memakai attribute visibility protected, konstruktor, dan method(HitungGajiAkhir).
Kelas Satpam
1. package com.deva.pertemuan4.unguided;
2.
3. /**
4. *
5. * @author Deva
6. */
7. public class Satpam extends Pegawai{
8.
9. private int jam_lembur;
10.
11. public Satpam()
12. {
13. super();
14. }
15.
16. public void setSatpam(String nama, String NIP, String alamat, int
tahun_masuk_kerja, int gaji_pokok, int jam_lembur) {
17. this.nama = nama;
18. this.NIP = NIP;
19. this.alamat = alamat;
20. this.tahun_masuk_kerja = tahun_masuk_kerja;
21. this.gaji_pokok = gaji_pokok;
22. this.jam_lembur = jam_lembur;
23. }
24.
25. protected void cetakSatpam()
26. { int bonus = 10000 * jam_lembur;
27. int gaji_akhir = super.HitungGajiAkhir(this.gaji_pokok, bonus);
28.
29. System.out.println("NIP : "+this.NIP);
30. System.out.println("Nama : "+this.nama);
31. System.out.println("Alamat : "+this.alamat);
32. System.out.println("Tahun masuk kerja : "+this.tahun_masuk_kerja);
33. System.out.println("Gaji pokok : "+this.gaji_pokok);
34. System.out.println("Jam lembur : "+this.jam_lembur);
35. System.out.println("Gaji akhir : "+gaji_akhir);
36. System.out.println("");
37. }
38. }
39.
Kelas Satpam turunan dari kelas Pegawai memakai attribute tambahan yaitu
jam_lembur, method setSatpam() untuk mengisi setiap attribute dari kelas Satpam,
dan method cetakSatpam().
Kelas Sales
1. package com.deva.pertemuan4.unguided;
2.
3. /**
4. *
5. * @author Deva
6. */
7. public class Sales extends Pegawai{
8.
9. private int jumlah_pelanggan;
10.
11. public Sales()
12. {
13. super();
14. }
15.
16. public void setSales(String nama, String NIP, String alamat, int tahun_masuk_kerja,
int gaji_pokok, int jumlah_pelanggan) {
17. this.nama = nama;
18. this.NIP = NIP;
19. this.alamat = alamat;
20. this.tahun_masuk_kerja = tahun_masuk_kerja;
21. this.gaji_pokok = gaji_pokok;
22. this.jumlah_pelanggan = jumlah_pelanggan;
23. }
24.
25. protected void cetakSales()
26. { int komisi = 50000 * jumlah_pelanggan;
27. int gaji_akhir = super.HitungGajiAkhir(this.gaji_pokok, komisi);
28.
29. System.out.println("NIP : "+this.NIP);
30. System.out.println("Nama : "+this.nama);
31. System.out.println("Alamat : "+this.alamat);
32. System.out.println("Tahun masuk kerja : "+this.tahun_masuk_kerja);
33. System.out.println("Gaji pokok : "+this.gaji_pokok);
34. System.out.println("Jumlah pelanggan : "+this.jumlah_pelanggan);
35. System.out.println("Gaji akhir : "+gaji_akhir);
36. System.out.println("");
37. }
38.
39. }
Kelas Sales turunan dari kelas Pegawai memakai attribute tambahan yaitu
jumlah_pelanggan, method setSales() dan method cetakSales().
Kelas Manager
1. package com.deva.pertemuan4.unguided;
2.
3. /**
4. *
5. * @author Deva
6. */
7. public class Manager extends Pegawai{
8. private String divisi;
9. private int tunjangan_jabatan;
10.
11.
12. public Manager()
13. {
14. super();
15. }
16.
17. public void setManager(String nama, String NIP, String alamat, int
tahun_masuk_kerja, int gaji_pokok, String divisi) {
18. this.nama = nama;
19. this.NIP = NIP;
20. this.alamat = alamat;
21. this.tahun_masuk_kerja = tahun_masuk_kerja;
22. this.gaji_pokok = gaji_pokok;
23. this.divisi = divisi;
24. }
25. protected void cetakManager()
26. {
27.
28. if(2015 - this.tahun_masuk_kerja >= 5){
29. tunjangan_jabatan = (10 * this.gaji_pokok) / 100;
30. }else if(2015 - this.tahun_masuk_kerja >= 3){
31. tunjangan_jabatan = (5 * this.gaji_pokok) / 100;
32. }
33. int gaji_akhir = super.HitungGajiAkhir(this.gaji_pokok, tunjangan_jabatan);
34.
35. System.out.println("NIP : "+this.NIP);
36. System.out.println("Nama : "+this.nama);
37. System.out.println("Alamat : "+this.alamat);
38. System.out.println("Tahun masuk kerja : "+this.tahun_masuk_kerja);
39. System.out.println("Gaji pokok : "+this.gaji_pokok);
40. System.out.println("Tunjangan jabatan : "+tunjangan_jabatan);
41. System.out.println("Gaji akhir : "+gaji_akhir);
42. System.out.println("");
43. }
44.
45. }
Kelas Manager turunan dari kelas Pegawai memakai attribute tambahan yaitu divisi
dan tunjangan_jabatan, method setManager() dan method cetak setManager().
Kelas Main
1. package com.deva.pertemuan4.unguided;
2.
3. /**
4. *
5. * @author Deva
6. */
7. public class Main {
8. public static void main(String[] args) {
9. Satpam S = new Satpam();
10. Sales T = new Sales();
11. Manager M = new Manager();
12.
13. S.setSatpam("Rendra", "0042", "Jl. Itik 15", 2000, 300000, 5);
14. T.setSales("Wibisana", "0185", "Jl. Ayam 78", 2006, 500000, 10);
15. M.setManager("Adi", "0005", "Jl. Angsa 56", 1999, 1500000, "Keuangan");
16. System.out.println("\n\n== DISPLAY DATA KARYAWAN==");
17. S.cetakSatpam();
18. T.cetakSales();
19. M.cetakManager();
20.
21. }
22. }
Kelas Main kelas utama membuat instance dari 3 kelas(satpam, sales, manager),
memanggil method setSatpam, setSales, setManager.
VI. KESIMPULAN
Pada modul IV berisi konsep tentang pewarisan karakter ke kelas turunannnya.