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());
                    }
  }



Rabu, 17 Oktober 2012

CLASS, METHOD, CONSTRUCTOR, MODIFIER dan OBJECT


LAPORAN PRAKTIKUM  2

CLASS, METHOD, CONSTRUCTOR, MODIFIER dan OBJECT

DASAR TEORI
Pada pemrogrman berorientasi objek terdapat dua istilah yang sangat terkenal yaitu kelas dan objek. Kelas dapat di analogikan sebagai cetakan dari suatu benda (objek), sedangkan objek adalah benda/hasil produksi dari cetakan (kelas) tersebut. Perbedaan kelas dan objek dapat dijelaskan dengan analogi, misalnya kelas itu seperti cetakan kue, kelas adalah cetakan untuk objek.
Atribut adalah keadaan yang dimiliki oleh objek. Sedangkan method adalah apa-apa yang menurut subjek harus dapat dilakukan objek. Method yang dimiliki objek berkelas mobil dapat berupa cara menghidupkan mesin dan cara mengoper persneling.

A.   CLASS
Class merupakan bagian utama pada pemrograman Java. Class digunakan untuk membuat object, dan berperan sebagai tipe dari objek. Class merupakan sarana pengkapsulan kumpulan-kumpulan data dan kumpulan method yang mengoperasikan data tersebut. Kelas pada java di defenisikan dengan menggunakan kata kunci class. Berikut  ini merupakan deklarasi atau bentuk umum Class pada Java:
       [modifier1] class Namakelas [modifier2]{
                   Class body;
}

B.   METHOD
Method merupakan tingkah laku dari suatu objek atau class, jika bersifat static berarti tingkah laku semua objek dalam kelas tersebut. Method diletakkan didalam classbody sebaliknya tidak diletakkan dalam method lain. Method digunakan untuk memodularisasi program melalui pemisahan satu tugas menjadi satu unit tersendiri.
Deklarasi method pada Java :
       [modifier1]tipeNilaiKembalian namaMethod(parameter input){
                   Method body;
       }

C.   CONSTRUCTOR
Pada prinsipnya constructor adalah method yang tidak memiliki return value (secara implicit adalah instant dari kelasnya). Constructor merupakan method yang namanya sama dengan nama kelas dimana method itu berada. Constructor digunakan untuk menginisialisasi nilai awal (memberikan nilai default) pada atribut-atribut yang dimiliki oleh  suatu objek saat objek itu pertama kali dibuat.
Sifat-sifat constructor yaitu :
1.   Namanya sama dengan nama class
2.   Boleh memiliki argument lebih dari satu atau tidak sama sekali.
3.   Tidak boleh mengembalikan nilai (termasuk tidak ada kata-kata void).
Bentuk umum Constructor yaitu :
[modifier] namaConstructor (tipe namaparameter) {
            constructorbody;
}

D.   MODIFIER
Adalah sifat yang dimiliki oleh setiap atribut, method maupun kelas dalam java. Modifier akses adalah modifier yang selalu digunakan untuk member tanda hak akses pada resource tertentu. Modifier akses terdiri dari Private, Default, Protected, dan Public dan beberapa Modifier lainnya yaitu  Static dan Final. Ini sering di implementasikan pada class, method, variable.
·      Static yaitu modifier yang digunakan agar suatu atribut maupun method dapat diakses oleh objek atau kelas lain meski tanpa dilakukan instansiasi terhadap kelas dimana atribut maupun method itu berada. Method main adalah salah satu contoh method modifier static yang sering digunakan
·      Final yaitu modifier yang digunakan untuk mencegah kemungkinan modifikasi terhadap atribut maupun method. Dengan modifier suatu atribut akan berlaku sebagai konstanta.

E.    OBJECT
Object adalah instance dari class. Jika class secara umum merepresentasikan (template) sebuah objek, sebuah instance adalah representasi nyata dari class itu sendiri. Sebuah class dapat digunakan untuk membuat banyak objek, setiap objek dapat diperlakukan secara berbeda oleh objek-objek lain yang menggunakannya. Dibutuhkan operator NEW untuk membuat objek dari suatu class.
 Objek dibuat dengan cara menuliskan:
1.   NamaKelas NamaObjek= new NamaConstructor();
2.   NamaKelas namaObjek;
NamaObjek=new NamaConstructor();
Proses diatas disebut instansiasi. Ketika objek selesai dibuat, objek tersebut disimpan di dalam memori dan dapat diakses oleh objek-objek lain melalui nama-nama objeknya.

LANGKAH-LANGKAH PRAKTIKUM
A.        Contoh Program  Disket.java
Public class Disket {
     Int panjang = 10;
     Final int LEBAR = 10;
     String  warna = “kuning”;
     String bentuk = “segiempat”;
     String data = “ “;
void simpanData (String data1) {
                 this.data += data1;
}
void hapusData () {
     Data = “ “;
}
String bacaData() {
     Return data;
}
}

B.         Contoh Program MainDisket.java
Class MainDisket {
public static void main (String[] args) {
     Disket disk1 = new Disket();
     System.out.println(“Panjang disket = “+ disk1.panjang);
     System.out.println(“Lebar disket = “+ disk1.LEBAR);
     System.out.println(“Warna disket = “+ disk1.warna);
     System.out.println(“Bentuk disket = “+ disk1.bentuk);
     System.out.println(“data mula-mula = “+ disk1.bacaData());
     disk1.simpanData(“Belajar java”);
     System.out.println(“Setelah SimpanData = “+ disk1.bacaData());
     disk1.hapusData();
     System.out.println(“Setelah hapusData = “+ disk1.bacaData());
                 }
     } 

C.       Mengimplementasikan konstruktor pada class Disket 
1.Buka file Disket.java
           2. Tambahkan source kode dibawah ini pada baris ke 7. Setelah  di tambahkan lalu simpan, compile dan run kelas Disket.java
     Disket () {
                 Panjang = 100;
     }
     Disket (int panjang1) {
                 This.panjang = panjang1;
     }

D.        Ubah source kode pada baris ke 3 dari MainDisket.java dangan source kode di bawah ini :
     Disket disk1 = new Disket(50);