Anda di halaman 1dari 13

LAPORAN PRAKTIKUM PEMROGRAMAN BERBASIS OBJEK

NAMA : Adi Dharma


NIM (ABSEN) : 1831710015 (01)
JOBSHEET/JUDUL : 7/OVERLOADING DAN OVERRIDING
TANGGAL PRAKTIKUM : 07 OKTOBER 2019

PERCOBAAN 1
Karyawan.java
Source Code
1 package Percobaan1;
2 public class Karyawan {
3 private String nama;
4 private String nip;
5 private String golongan;
6 private double gaji;
7
8 public void setNama(String nama){
9 this.nama = nama;
10 }
11 public void setNip(String nip){
12 this.nip = nip;
13 }
14 public void setGolongan(String golongan){
15 this.golongan = golongan;
16
17 switch(golongan.charAt(0)){
18 case '1' : this.gaji=5000000;
19 break;
20 case '2' : this.gaji=3000000;
21 break;
22 case '3' : this.gaji=2000000;
23 break;
24 case '4' : this.gaji=1000000;
25 break;
26 case '5' : this.gaji=750000;
27 break;
28 }
29 }
30 public void setGaji(double gaji){
31 this.gaji = gaji;
32 }
33
34 public String getNama() {
35 return nama;
36 }
37
38 public String getNip() {
39 return nip;
40 }
41
42 public String getGolongan() {
43 return golongan;
44 }
45
46 public double getGaji() {
47 return gaji;
48 }
49 }

PRAKTIKUM PEMROGRAMAN BERBASIS OBJEK


SEMESTER GENAP 2018/2019
LAPORAN PRAKTIKUM PEMROGRAMAN BERBASIS OBJEK
NAMA : Adi Dharma
NIM (ABSEN) : 1831710015 (01)
JOBSHEET/JUDUL : 7/OVERLOADING DAN OVERRIDING
TANGGAL PRAKTIKUM : 07 OKTOBER 2019

Manajer.java
Source Code
1 package Percobaan1;
2 public class Manager extends Karyawan{
3 private double tunjangan;
4 private String bagian;
5 private Staff st[];
6
7 public double getTunjangan() {
8 return tunjangan;
9 }
10
11 public void setTunjangan(double tunjangan) {
12 this.tunjangan = tunjangan;
13 }
14
15 public String getBagian() {
16 return bagian;
17 }
18
19 public void setBagian(String bagian) {
20 this.bagian = bagian;
21 }
22
23 public void setSt(Staff[] st) {
24 this.st = st;
25 }
26
27 public void viewStaff(){
28 int i;
29 System.out.println("--------------");
30 for (i = 0; i < st.length; i++) {
31 st[i].lihatInfo();
32 }
33 System.out.println("---------------");
34 }
35 public void lihatInfo(){
36 System.out.println("Manager : "+this.getBagian());
37 System.out.println("NIP : "+this.getNip());
38 System.out.println("Nama : "+this.getNama());
39 System.out.println("Golongan : "+this.getGolongan());
40 System.out.printf("Tunjangan : %.0f\n",
41 this.getTunjangan());
42 System.out.printf("Gaji :%.0f\n", this.getGaji());
43 System.out.println("Bagian : "+this.getBagian());
44 this.viewStaff();
45 }
46 public double getGaji(){
47 return super.getGaji()+tunjangan;
48 }
49 }

PRAKTIKUM PEMROGRAMAN BERBASIS OBJEK


SEMESTER GENAP 2018/2019
LAPORAN PRAKTIKUM PEMROGRAMAN BERBASIS OBJEK
NAMA : Adi Dharma
NIM (ABSEN) : 1831710015 (01)
JOBSHEET/JUDUL : 7/OVERLOADING DAN OVERRIDING
TANGGAL PRAKTIKUM : 07 OKTOBER 2019

Staff.java
Source Code
1 package Percobaan1;
2 public class Staff extends Karyawan {
3 private int lembur;
4 private double gajiLembur;
5
6 public void setLembur(int lembur){
7 this.lembur = lembur;
8 }
9
10 public int getLembur() {
11 return lembur;
12 }
13
14 public double getGajiLembur() {
15 return gajiLembur;
16 }
17
18 public void setGajiLembur(double gajiLembur) {
19 this.gajiLembur = gajiLembur;
20 }
21 public double getGaji(int lembur, double gajiLembur){
22 return super.getGaji()+lembur*gajiLembur;
23 }
24 public double getGaji(){
25 return super.getGaji()+lembur*gajiLembur;
26 }
27 public void lihatInfo(){
28 System.out.println("NIP : "+this.getNip());
29 System.out.println("Nama : "+this.getNama());
30 System.out.println("Golongan : "+this.getGolongan());
31 System.out.println("Jml Lembur : "+this.getLembur());
32 System.out.printf("Gaji Lembur : %.0f\n",
33 this.getGajiLembur());
34 System.out.printf("Gaji : %.0f\n", this.getGaji());
35 }
36 }

PRAKTIKUM PEMROGRAMAN BERBASIS OBJEK


SEMESTER GENAP 2018/2019
LAPORAN PRAKTIKUM PEMROGRAMAN BERBASIS OBJEK
NAMA : Adi Dharma
NIM (ABSEN) : 1831710015 (01)
JOBSHEET/JUDUL : 7/OVERLOADING DAN OVERRIDING
TANGGAL PRAKTIKUM : 07 OKTOBER 2019

Utama.java
Source Code
1 package Percobaan1;
2 public class Utama {
3 public static void main(String[] args) {
4 System.out.println("Program Testing Class Manager &
5 Staff");
6 Manager man[] = new Manager[2];
7 Staff staff1[] = new Staff[2];
8 Staff staff2[] = new Staff[3];
9
10 man[0] = new Manager();
11 man[0].setNama("Tedjo");
12 man[0].setNip("101");
13 man[0].setGolongan("1");
14 man[0].setTunjangan(5000000);
15 man[0].setBagian("Administrasi");
16
1 man[1] = new Manager();
17 man[1].setNama("Atika");
18 man[1].setNip("102");
29 man[1].setGolongan("1");
20 man[1].setTunjangan(2500000);
21 man[1].setBagian("Pemasaran");
22
23 staff1[0] = new Staff();
24 staff1[0].setNama("Usman");
25 staff1[0].setNip("0003");
26 staff1[0].setGolongan("2");
27 staff1[0].setLembur(10);
28 staff1[0].setGajiLembur(10000);
39
30 staff1[1] = new Staff();
31 staff1[1].setNama("Anugrah");
32 staff1[1].setNip("0005");
33 staff1[1].setGolongan("2");
34 staff1[1].setLembur(10);
35 staff1[1].setGajiLembur(55000);
36 man[0].setSt(staff1);
37
38 staff2[0] = new Staff();
49 staff2[0].setNama("Hendra");
40 staff2[0].setNip("0004");
41 staff2[0].setGolongan("3");
42 staff2[0].setLembur(15);
43 staff2[0].setGajiLembur(5500);
44
45 staff2[1] = new Staff();
46 staff2[1].setNama("Arie");
47 staff2[1].setNip("0006");
48 staff2[1].setGolongan("4");
59 staff2[1].setLembur(5);
50 staff2[1].setGajiLembur(100000);
51
52 staff2[2] = new Staff();
53 staff2[2].setNama("Mentari");

PRAKTIKUM PEMROGRAMAN BERBASIS OBJEK


SEMESTER GENAP 2018/2019
LAPORAN PRAKTIKUM PEMROGRAMAN BERBASIS OBJEK
NAMA : Adi Dharma
NIM (ABSEN) : 1831710015 (01)
JOBSHEET/JUDUL : 7/OVERLOADING DAN OVERRIDING
TANGGAL PRAKTIKUM : 07 OKTOBER 2019

54 staff2[2].setNip("0007");
55 staff2[2].setGolongan("3");
56 staff2[2].setLembur(6);
57 staff2[2].setGajiLembur(20000);
68 man[1].setSt(staff2);
69
60 man[0].lihatInfo();
61 man[1].lihatInfo();
62 }
63 }

Screenshot hasil percobaan :

PRAKTIKUM PEMROGRAMAN BERBASIS OBJEK


SEMESTER GENAP 2018/2019
LAPORAN PRAKTIKUM PEMROGRAMAN BERBASIS OBJEK
NAMA : Adi Dharma
NIM (ABSEN) : 1831710015 (01)
JOBSHEET/JUDUL : 7/OVERLOADING DAN OVERRIDING
TANGGAL PRAKTIKUM : 07 OKTOBER 2019

PRAKTIKUM PEMROGRAMAN BERBASIS OBJEK


SEMESTER GENAP 2018/2019
LAPORAN PRAKTIKUM PEMROGRAMAN BERBASIS OBJEK
NAMA : Adi Dharma
NIM (ABSEN) : 1831710015 (01)
JOBSHEET/JUDUL : 7/OVERLOADING DAN OVERRIDING
TANGGAL PRAKTIKUM : 07 OKTOBER 2019

LATIHAN
PerkalianKu.java
Source Code
1 package Latihan;
2 public class PerkalianKu {
3 void perkalian(int a, int b){
4 System.out.println(a*b);
5 }
6 void perkalian(int a, int b, int c){
7 System.out.println(a*b*c);
8 }
9 public static void main(String[] args) {
10 PerkalianKu objek = new PerkalianKu();
11 objek.perkalian(25, 43);
12 objek.perkalian(34, 23, 56);
13 }
14 }

Screenshot hasil percobaan

Jawaban Pertanyaan

1. Letak overloading terdapat pada baris 6-8 yakni method perkalian


dengan 3 parameter.

PRAKTIKUM PEMROGRAMAN BERBASIS OBJEK


SEMESTER GENAP 2018/2019
LAPORAN PRAKTIKUM PEMROGRAMAN BERBASIS OBJEK
NAMA : Adi Dharma
NIM (ABSEN) : 1831710015 (01)
JOBSHEET/JUDUL : 7/OVERLOADING DAN OVERRIDING
TANGGAL PRAKTIKUM : 07 OKTOBER 2019

2. ada 3 parameter yakni a,b,c


Ikan.java
Source Code
1 package Latihan;
2 public class Ikan {
3 public void swim(){
4 System.out.println("Ikan bisa berenang!");
5 }
6 }
Piranha.java
Source Code
1 package Latihan;
2 public class Piranha extends Ikan{
3 public void swim(){
4 System.out.println("Piranha bisa makan daging");
5 }
6 }
Fish.java
Source Code
1 package Latihan;
2 public class Fish {
3 public static void main(String[] args) {
4 Ikan a = new Ikan();
5 Ikan b = new Piranha();
6 a.swim();
6 b.swim();
7 }
8 }
Screenshot hasil percobaan

3. Letak overloading terdapat pada class Piranhaa dimana Piranha ialah anak
dari Ikan dengan method swim

PRAKTIKUM PEMROGRAMAN BERBASIS OBJEK


SEMESTER GENAP 2018/2019
LAPORAN PRAKTIKUM PEMROGRAMAN BERBASIS OBJEK
NAMA : Adi Dharma
NIM (ABSEN) : 1831710015 (01)
JOBSHEET/JUDUL : 7/OVERLOADING DAN OVERRIDING
TANGGAL PRAKTIKUM : 07 OKTOBER 2019

4. source coding diatas terdapat overriding pada class Piranha dimana


Piranha ialah anak dari Ikan dengan method swim. Disebut terdapat
overriding diakarenakan :
 Mode akses overriding method harus sama atau lebih luas dari pada overridden
method. Metode akses yang digunakan ialah public sama dengan metode akses
padda class parent
 Terdapat 1 method yang di oveerride method dari superclass
 Overriding method tidak boleh throw checked exceptions yang tidak
dideklarasikan oleh overridden method.

PRAKTIKUM PEMROGRAMAN BERBASIS OBJEK


SEMESTER GENAP 2018/2019
LAPORAN PRAKTIKUM PEMROGRAMAN BERBASIS OBJEK
NAMA : Adi Dharma
NIM (ABSEN) : 1831710015 (01)
JOBSHEET/JUDUL : 7/OVERLOADING DAN OVERRIDING
TANGGAL PRAKTIKUM : 07 OKTOBER 2019

Tugas

1. Implementasi konsep overloading :


Diagram class :

Segitiga.java
Source Code
1 package Tugas;
2 public class Segitiga {
3 private int sudut;
4
5 public int totalSudut(int sudutA){
6 return sudut = 180-sudutA;
7 }
8 public int totalSudut(int sudutA, int sudutB){
9 return sudut = 180-(sudutA+sudutB);
10 }
11 public int keliling(int sisiA, int sisiB, int sisiC){
12 int keliling;
13 return keliling = sisiA+sisiB+sisiC;
14 }
15 public double keliling(int sisiA, int sisiB){
16 double c;
17 double keliling;
18 c = ((sisiA*sisiA)+(sisiB+sisiB));
19 c = Math.sqrt(c);
20 keliling = sisiA+sisiB+c;
21 return keliling ;
22 }
23 }

PRAKTIKUM PEMROGRAMAN BERBASIS OBJEK


SEMESTER GENAP 2018/2019
LAPORAN PRAKTIKUM PEMROGRAMAN BERBASIS OBJEK
NAMA : Adi Dharma
NIM (ABSEN) : 1831710015 (01)
JOBSHEET/JUDUL : 7/OVERLOADING DAN OVERRIDING
TANGGAL PRAKTIKUM : 07 OKTOBER 2019

TestSegitiga.java
Source Code
1 package Tugas;
2 public class TestSegitiga {
3 public static void main(String[] args) {
4 Segitiga a = new Segitiga();
5
6 System.out.println("Total sudut dengan 1 parameter :
7 "+a.totalSudut(50));
8 System.out.println("Total sudut dengan 2 parameter :
9 "+a.totalSudut(90, 45));
10 System.out.println("Keliling segitiga dengan 3 sisi :
11 "+a.keliling(12, 8, 9));
12 System.out.println("Keliling segitga dengan 2 sisi :
13 "+a.keliling(12, 5));
14 }
15 }

Hasil Output :

PRAKTIKUM PEMROGRAMAN BERBASIS OBJEK


SEMESTER GENAP 2018/2019
LAPORAN PRAKTIKUM PEMROGRAMAN BERBASIS OBJEK
NAMA : Adi Dharma
NIM (ABSEN) : 1831710015 (01)
JOBSHEET/JUDUL : 7/OVERLOADING DAN OVERRIDING
TANGGAL PRAKTIKUM : 07 OKTOBER 2019

2. Implementasi konsep overriding :


Diagram class :

Manusia.java
Source Code
1 package Tugas;
2 public class Manusia {
3 public void bernafas(){
4 System.out.println("Manusia bisa bernafas");
5 }
6 public void makan(){
7 System.out.println("Manusia bisa makan");
8 }
9 }

Dosen.java
Source Code
1 package Tugas;
2 public class Dosen extends Manusia {
3 public void makan(){
4 System.out.println("Dosen bisa makan");
5 }
6 public void lembur(){
7 System.out.println("Dosen bisa lembur");
8 }
9 }

Mahasiswa.java
Source Code
1 package Tugas;
2 public class Mahasiswa extends Manusia {
3 public void makan(){
4 System.out.println("Mahasiswa bisa makan");
5 }
6 public void tidur(){
7 System.out.println("Mahasiswa bisa tidur");
8 }
9 }

TestManusia.java

PRAKTIKUM PEMROGRAMAN BERBASIS OBJEK


SEMESTER GENAP 2018/2019
LAPORAN PRAKTIKUM PEMROGRAMAN BERBASIS OBJEK
NAMA : Adi Dharma
NIM (ABSEN) : 1831710015 (01)
JOBSHEET/JUDUL : 7/OVERLOADING DAN OVERRIDING
TANGGAL PRAKTIKUM : 07 OKTOBER 2019

Source Code
1 package Tugas;
2 public class TestManusia {
3 public static void main(String[] args) {
4 Dosen dos = new Dosen();
5 Mahasiswa mhs = new Mahasiswa();
6
7 dos.makan();
8 mhs.makan();
9
10 }
11 }

Hasil Output :

PRAKTIKUM PEMROGRAMAN BERBASIS OBJEK


SEMESTER GENAP 2018/2019

Anda mungkin juga menyukai