PRODI SISTEM INFORMASI FAKULTAS TEKNIK UNIVERSITAS NUSANTARA PGRI KEDIRI PRAKTIKUM III & IV PEMROGRAMAN BERORIENTASI OBJEK
Inheritance (Pewarisan) Konsep inheritance pada pemrograman berorientasi objek sama dengan konsep pewarisan sifat pada manusia. Manusia selalu mewariskan sifat fisik atau karakter pada keturunannya. Hal ini sama dengan data dan method pada pemrograman yang diwariskan oleh kelas induk pada kelas keturunannya. Kelas induk atau kelas yang mewariskan disebut dengan Super Class, dan kelas anak atau kelas yang diwarisi disebut dengan Sub Class.
List 1. tampilprogram.java public class tampilprogram { public static void main(String[] args){ System.out.println("----------------------"); System.out.println("Program INHERITANCE"); System.out.println("----------------------\n"); SubClass sc = new SubClass(); sc.method_SubClass(); } } class SuperClass { public SuperClass(){ System.out.println("Ini adalah konstruktor SuperClass\n"); } public void method_SuperClass(){ System.out.println("Method milik SuperClass\n"); } } class SubClass extends SuperClass { public SubClass(){ super(); } public void method_SubClass(){ super.method_SuperClass(); } }
List 1 adalah program sederhana untuk menjalankan konsep pewarisan dalam pemrograman berorientasi objek. Terdapat 3 kelas dalam satu file tampilprogram.java, yaitu kelas tampilprogram, SuperClass dan SubClass. Ketiga kelas tersebut memiliki yang berbeda. Kelas SuperClass adalah kelas induk yang akan mewariskan data dan method. Kelas SubClass adalah kelas anak yang menerima warisan dari SuperClass atau kelas induknya. Sedangkan kelas tampilprogram adalah sebagai main class atau kelas yang manampilkan data dan methode dari SubClass. Coba buat file tersendiri untuk masing-masing kelas SuperClass dan SubClass. Apakah tampilprogram masih bisa berjalan sebagaimana mestinya?
Oleh: Nisa Miftachurohmah, S. Kom
PRODI SISTEM INFORMASI FAKULTAS TEKNIK UNIVERSITAS NUSANTARA PGRI KEDIRI Encapsulation (Enkapsulasi / Pengkapsulan) Konsep enkapsulasi sama seperti yang sudah dibahas dalam praktikum sebelumnya, yakni mengenai pemberian hak akses data atau method. List 2. tampilenkapsulasi.java public class tampilenkapsulasi { public static void main(String[] args){ System.out.println("--------------------------------------------------"); System.out.println("Program Perhitungan Gaji dengan konsep ENKAPSULASI"); System.out.println("--------------------------------------------------"); GajiKaryawan gk = new GajiKaryawan(); gk.setGaji(2500000); gk.hitungGaji(); System.out.println ("Gaji Kotor : "+gk.getGajiKotor()); System.out.println ("Gaji Bersih : "+gk.getGajiBersih()); } } class GajiKaryawan { private double gajikotor; private double gajipotongpajak; public double gajibersih; private double potongan = 75000.00; public void setGaji(double gaji){ gajikotor = gaji; } public void hitungGaji() { gajipotongpajak = gajikotor - (0.2 * gajikotor); gajibersih = gajipotongpajak - potongan; } public double getGajiKotor() { return gajikotor; } public double getGajiBersih() { return gajibersih; } }
List 2 merupakan contoh program sederhana untuk penerapan konsep enkapsulasi. Terdapat dua kelas dalam satu file tampilenkapsulasi.java. Kelas GajiKaryawan berisi informasi penting mengenai gaji karyawan. Beberapa data seperti gajikotor, gajipotonganpajak dan potongan merupakan data rahasia, maka dari itu diberi batasan untuk hak aksesnya. Dalam hal ini bersifat private. Sedangkan gajibersih adalah data yang boleh diakses oleh siapapun, maka dari itu diberi batasan akses untuk semua atau public. Kelas tampilenkapsulasi berisi kelas main yang menjalankan data dan method yang terdapat pada GajiKaryawan. Coba buat file terpisah untuk kelas GajiKaryawan. Apakah tampilenkapsulasi masih bisa berjalan sebagaimana mestinya?
Oleh: Nisa Miftachurohmah, S. Kom
PRODI SISTEM INFORMASI FAKULTAS TEKNIK UNIVERSITAS NUSANTARA PGRI KEDIRI Polymorphism (Polimorfisme) Dalam pemrograman berorientasi objek, ada sifat objek dengan memiliki yang sama namun memiliki behaviour atau tingkah laku yang berbeda. Hal ini disebut dengan polymorphism (polimorfisme). List3. Tampilpolimorfisme.java public class tampilpolimorfisme { public static void main( String [] args ) { System.out.println("-------------------------------------------"); System.out.println("Tampilan Harga Komputer dengan Polimorfisme"); System.out.println("-------------------------------------------"); PameranKomputer ObjKom = new PameranKomputer(); corei3 ci3 = new corei3(); corei5 ci5 = new corei5(); corei7 ci7 = new corei7(); PameranKomputer [] pKom = new PameranKomputer[4]; pKom[0] = ObjKom; pKom[1] = ci3; pKom[2] = ci5; pKom[3] = ci7; System.out.println( System.out.println( System.out.println( System.out.println( }
"Pameran "Pameran "Pameran "Pameran
Komputer[0]: Komputer[1]: Komputer[2]: Komputer[3]:
" " " "
+ + + +
pKom[0].pamer()); pKom[1].pamer()); pKom[2].pamer()); pKom[3].pamer());
} class PameranKomputer { public String pamer() { return ("Harga Macam-macam Spesifikasi Komputer\n"); } } class corei3 extends PameranKomputer { public String pamer() { return ("Core i3, RAM 2 GB, 500 HDD: Rp. 4.000.000\n"); } } class corei5 extends PameranKomputer { public String pamer() { return ("Core i5, RAM 2 GB, 500 HDD: Rp. 5.000.000\n"); } } class corei7 extends PameranKomputer { public String pamer() { return ("Core i7, RAM 2 GB, 500 HDD: Rp. 6.000.000\n"); } }
List3 merupakan program sederhana untuk mengimplementasikan polimorfisme. Terdapat 5 kelas dalam satu file.
Oleh: Nisa Miftachurohmah, S. Kom
PRODI SISTEM INFORMASI FAKULTAS TEKNIK UNIVERSITAS NUSANTARA PGRI KEDIRI Tugas: Program di bawah ini merupakan penerapan dari ketiga konsep PBO yang telah dijelaskan di atas. Ketik dan jalankan program berikut: Jelaskan alur programnya berdasarkan konsep pewarisan, enkapsulasi dan polimorfisme. Tuliskan UML-nya. Tugas dikumpulkan berupa softcopy tanggal 3 November 2012 dan dibahas. karyawan.java public class karyawan { private String namaKar; public karyawan( String nama ) { namaKar = nama; } public String namaKaryawan() { return namaKar; } } presdir.java public class presdir extends karyawan { private double gajipresdir; private double divSaham; public presdir(String nama, double gaji, double dividen) { super(nama); setGajiPresdir(gaji); setDividen(dividen); } public void setGajiPresdir(double gaji ){ if (gaji > 0) gajipresdir = gaji; else gajipresdir = 0; } public void setDividen(double dividen ){ if (dividen > 0) divSaham = dividen; else divSaham = 0; } public String nama() { return super.namaKaryawan(); } public String jabatan() {
Oleh: Nisa Miftachurohmah, S. Kom
PRODI SISTEM INFORMASI FAKULTAS TEKNIK UNIVERSITAS NUSANTARA PGRI KEDIRI return "Presiden Direktur"; } public double gajiPerBulan() { return gajipresdir; } public double labaDividen() { return divSaham; } public double income() { return (gajipresdir + divSaham); } } manajer.java public class manajer extends karyawan { private double gajimanajer; public manajer(String nama, double gaji) { super(nama); setGajiManajer(gaji); } public void setGajiManajer( double gaji ){ if (gaji > 0) gajimanajer = gaji; else gajimanajer = 0; } public String nama() { return super.namaKaryawan(); } public String jabatan() { return "Manajer"; } public double income() { return gajimanajer; } }
Oleh: Nisa Miftachurohmah, S. Kom
PRODI SISTEM INFORMASI FAKULTAS TEKNIK UNIVERSITAS NUSANTARA PGRI KEDIRI runningprogram.java import java.text.DecimalFormat; public class runningprogram { public static void main( String args[] ) { DecimalFormat digitPresisi = new DecimalFormat("0.00"); presdir d = new presdir("Wahyu", 12000000.00, 7500000.00); manajer m = new manajer("Tuti", 5000000.00); System.out.println("--------------------------------------------------"); System.out.println("Aplikasi INHERITANCE, ENKAPSULATION, POLYMORPHISM"); System.out.println("--------------------------------------------------"); System.out.println( "Nama "Jabatan "Gaji
: " + d.namaKaryawan() + "\n" + : " + d.jabatan() + "\n" + : " + digitPresisi.format(d.gajiPerBulan()) + "\n" + "Dividen : " + digitPresisi.format(d.labaDividen()) + "\n" + "Total Gaji: " + digitPresisi.format(d.income()) + "\n");
System.out.println( "Nama : " + m.namaKaryawan() + "\n" + "Jabatan : " + m.jabatan() + "\n" + "Gaji : " + digitPresisi.format(m.income()) + "\n"); } }
Referensi Buku: Menguasai Java 2 & Object Oriented Programming, Benny Hermawan. Object Oriented Programming using Java, Simon Kendall.
Oleh: Nisa Miftachurohmah, S. Kom