Rabu, 24 Oktober 2012

INFORMATION HIDING, INHERITANCE, ENCAPSULATION DAN POLYMORPHISM

INFORMATION HIDING, INHERITANCE, ENCAPSULATION DAN POLYMORPHISM

Dalam bahasa pemrograman berorentasi objek, program dibagi menjadi objek-objek yang saling berinteraksi satu sama lain. Objek adalah benda, baik benda yang berwujud nyata maupun benda yang tidak nyata (abstrak). Konsep-konsep dasar yang mendasari pemrograman berorientasi objek adalah inheritance (pewarisan), encapsulation (pengkapsulan) dan polymorphism.

A.   INHERITANCE
Inheritance adalah penurunan atribut dan method dari suatu kelas super/ kelas induk ke sub kelas/ kelas anak. Pewarisan ini bersifat menyeluruh sehingga semua attribute dan method yang dimiliki kelas super dapat diturunkan ke sub kelas.
Contohnya ; Jika kelas C merupakan turunan kelas B dan kelas B merupakan turunan kelas A, maka otomatis attribute dan method kelas A akan diwariskan pula ke kelas C.

Deklarasi :      [modifier] class NamaSubKelas extends NamaKelasSuper {
Class body;
}
Keterangan ; Kata kunci extends digunakan untuk menyatakan pewarisan.


B.   ENCAPSULATION
Encapsulation atau pengkapsulan adalah suatu kemampuan dalam pemrograman berorientasi objek untuk menyembunyikan atribut dan method suatu objek dari objek lain. Pengkapsulan dibuat agar orang lain tidak mengetahui bagaimana detil implementasi (listing program) dari modul tersebut. Mereka hanya perlu mengetahui variable-variabel apa saja yang menjadi input dan output, serta bagaimana interaksi modul tersebut dengan variable, method, kelas, interface atau package lain dengan modul tersebut. Dalam pemrograman, menyembunyikan detail ini disebut dengan istilah information hiding.
Pengkapsulan dilakukan dengan cara memberikan modifier private pada suatu method dan pada variable. Method untuk memberikan nilai pada suatu atribut private biasanya diawali dengan kata “set“, sedangkan method untuk mengambil nilai dari suatu atribut private biasanya diawali dengan kata “get“.

C.   POLYMORPHISM
Secara leksikal, polymorphism (polimorfisme) bermakna satu kata yang memiliki banyak arti. Polimorfisme dapat diilustrasikan dengan penggunaan kata “ mentah “ seperti kalimat berikut :
1.       Sayuran itu masi mentah.
2.       Pukulan petinju itu berhasil dimentahkan lawannya.
3.       Gagasan itu masih mentah sehingga perlu dibahas kembali.
Dalam pemrograman, istilah polimorfisme dapat diartikan sebagai modul yang memiliki nama yang sama, namun memiliki tingkah laku yang berbeda sehingga implementasinya berbeda.


LANGKAH-LANGKAH PRAKTIKUM

A.   Membuat program SuperClass.java
public class SuperClass{
        public SuperClass() {
                    System.out.println("Ini Konstruktor milik SuperClass");
        }
        public void methodSuperClass() {
                    System.out.println("Ini method milik SuperClass");
        }
}


B.   Membuat program SubClass.java
public class SubClass extends SuperClass {
        public SubClass() {
                    super();
        }

        public void methodSubClass() {
                    super.methodSuperClass() ;
        }
}


C.   Membuat program DemoInheritance.java
public class DemoInheritance {
        public static void main(String[] args) {
                    SubClass sc = new SubClass();
                    sc.methodSubClass();
        }
}


D.   Membuat program Persegi.java
public class Persegi {

        private double panjang;                   //atribut yang di sembunyikan
        private double lebar;                      //atribut yang di sembunyikan
        private double tinggi;                     //atribut yang di sembunyikan

        public Persegi () {
                    panjang = 0;
                    lebar = 0;
        }

        private double luas(double p,double l) {
                    return p*1;
        }

        public void setPanjang(double panjang1) {
                    this.panjang = panjang1;
        }

        public void setLebar(double lebar1) {
                    this.lebar = lebar1;
        }

        public double getPanjang() {
                    return panjang;
        }

        public double getLebar() {
                    return lebar;
        }

              public double getLuas() {
                    return luas(panjang, lebar);
        }
}


E.    Membuat program MainPersegi.java
public class MainPersegi {
        public static void main(String[] args) {
                    Persegi pg = new Persegi();
                    pg.setPanjang(10);
                    pg.setLebar(20);

                    System.out.println("Panjang : "+pg.getPanjang());
                    System.out.println("Lebar : "+pg.getLebar());
                    System.out.println("Luas : "+pg.getLuas());
        }
}


 F.    Membuat program Karyawan.java
 abstract class Karyawan {
        int gaji;
        Karyawan() {
                    gaji = 1000000;
        }

        int getGaji() {
                    return gaji;
        }

        abstract void naikGaji();
 }


G.  Membuat program Manager.java
class Manager extends Karyawan {
        Manager() {
                    gaji += 2000000;
        }

        void naikGaji() { gaji+=3000000; }
}


H.  Membuat program Receptionist.java
class Receptionist extends Karyawan {
        Receptionist() {
                    gaji += 1000000;
        }

        void naikGaji() { gaji+=1000000; }
}


I.     Membuat program Polymorphisme.java
class Polymorphisme {
        public static void main(String[] args) {
                    Karyawan K[] = new Karyawan[3];

                    K[0] = new Manager();
                    K[1] = new Receptionist();
                    K[2] = new Manager();

                    for (int i=0;i<3;i++)
                                System.out.println("Gaji karyawan "+i+" adalah "+K[i].getGaji());

                    for (int i=0;i<3;i++)
                                K[i].naikGaji();

                    for (int i=0;i<3;i++)
                                System.out.println("Gaji sekarang "+i+" adalah "+K[i].getGaji());
                    }
  }



Tidak ada komentar:

Posting Komentar