Anda di halaman 1dari 12

LAPORAN PRAKTIKUM

MODUL IV

PEWARISAN TUNGGAL
(Inheritance)

Nama :
Nur Almahdi (20102108)

Dosen :

Agus Priyanto, S.Kom., M.Kom

PROGRAM STUDI S1 TEKNIK INFORMATIKA


FAKULTAS INFORMATIKA
INSTITUT TEKNOLOGI TELKOM
PURWOKERTO 2022
I. TUJUAN
a. Mengerti dan memahami tentang konsep pewarisan tunggal (Inheritance).
b. Mampu mewujudkan bentuk pewarisan tunggal dalam C++ dan Java.

II. TOOL
a. NetBeans IDE 8.1 atau
b. NetBeans IDE 12.3
c. Java SE Development Kit 8

III. DASAR TEORI


Beberapa prinsip-prinsip dalam inheritance (pewarisan) antara lain:

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.

b. Visibilitas bagi attribute dan method


Dalam sebuah kelas memiliki sebuah hak akses untuk pengaksesan attribute dan method,
visibility berguna pada beberapa kondisi salah satunya adalah untuk mengamankan
sebuah data.
1. Public
Memberikan visibility public berarti hak akses penuh untuk kelas tersebut dan
kelas lain juga bisa mengakses isi data kelas tersebut
2. Private
Private membatasi hak akses sebuah kelas terhadap attribute dan method
miliknya untuk kelas itu sendiri kelas lain tidak bisa akses
3. Protected
Protected membuat hak akses sebuah kelas hanya bisa diakses oleh objek dalam
kelas itu sendiri dan objek dari kelas turunannya.

c. Constructor
Constructor adalah fungsi untuk mengisi variable kelas tersebut dimana Namanya juga
sama dengan nama kelas.

d. Method overloading dan operator overloading


Overloading adalah method yang sama nama satu kelasnya dengan kelas turunannnya.

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.

Anda mungkin juga menyukai