#trik_pojok { position:fixed;_position:absolute;bottom:0px; left:0px; clip:inherit; _top:expression(document.documentElement.scrollTop+ document.documentElement.clientHeight-this.clientHeight); _left:expression(document.documentElement.scrollLeft+ document.documentElement.clientWidth - offsetWidth); }

Jumat, 02 November 2012

BAB 4. ABSTRACT CLASS, INTERFACE, INNER CLASS



1.         Abstract Class
Abstract class adalah suatu class yang dinyatakan abstract, umumnya memiliki satu atau abstract method, abstract method adalah suatu method yang belum memiliki implementasi dan menggunakan modifier abstract. Abstract class biasanya dijadikan parent atau super class dari kelas – kelas yang dapat membuat objek, abstract class tidak dapat diinstanisasi.

*         Analogi Inheritance dan Abstract Class :
Inheritence dapat dianalogikan seperti penggolongan kelas, ordo, phylum dalam biologi. Makhluk hidup dapat diturunkan atau diextend atau diperluas (di-inherit) menjadi burung, reptile, ikan dan lain – lain, jenjang penurunan tersebut disebut inheritance.
Kita mengetahui bahwa suatu kelas dapat diinstanisasi menjadi suatu objek, misal kelas manusia dapat diinstanisasi menjadi Joko, Susi, Ari, dan lain – lain, namun kita tidak mungkin dapat menginstanisasi kelas makhluk hidup, maupun kelas hewan, sebab kelas tersebut terlalu umum (abstract), kelas seperti inilah yang desebut sebagai abstract class, apabila class makhluk hidup mempunyai method bernafas, maka kita tidak dapat menentukan (meng-implementasikan) cara makhluk hidup tersebut bernafas, dengan paru – paru, insang atau stomata, dengan demikian kita dapat menyatakan bahwa di dalam kelas makhluk hidup, bernafas merupakan method yang abstract.


2.         Interface
Interface adalah suatu class yang berisi method – method tanpa imlementasi, namun tanpa modifier abstract, apabila suatu interface memiliki atribut, maka atributnya akan berlaku sebagai konstanta (static final).

*         Analogi Interface
Interface dapat dianaligikan sebagai kontrak yang dapat dipakai oleh setiap kelas. Dalam kehidupan nyata kita mengetahui bahwa ada yang bekerja sebagai penyayi, pengacara, pelawak, dsb, tentunya manusia –manusia tersebut selain harus memiliki method standar seorang manusia, juga harus memiliki method yang sesuai dengan pekerjaannya. Dengan demikian untuk membuat seorang objek Joko penyayi kita harus membuat kelas yang merupakan turunan kelas manusia yang mengimplementasikan interface penyayi.

3.         Inner Class
Inner Class adalah kelas yang disisipkan  di dalam kelas yang lain. Fungsi kelas sisipan ini adalah mendukung suatu proses yang akan dijalankan oleh kelas utamanya. Inner Class bersifat tersarang terhadap kelas – kelas utamanya, seperti halnya blok penyeleksian  (if, for) yang tersarang pada blok penyeleksian lainnya atau method yang tersarang pada method lainnya.
*         Analogi Inner Class
Inner Class dapat dianalogikan sebagi hubungan antara manusia dan paru – paru. Setipa manusia pasti bernafas dengan menggunakan paru – paru. Dalam hal ini berarti kinerja dari paru – paru turut mendukung/menetukan kinerja dari manusia. Dalam bahasa pemrograman berorientasi objek manusia dapat dikatakan sebagai outer class dan paru – paru sebagai inner  class-nya.

LANGKAH - LANGKAH PRAKTIKUM 
 A. MEMBUAT PROGRAM MakhlukHidup.java
public abstract class MakhlukHidup {
        protected boolean BisaTerbang = false;
        protected String Nama;
        protected int JlhKaki;

        public MakhlukHidup(String Nama1, int JlhKaki,boolean BisaTerbang1) {
                this.Nama = Nama1;
                this.JlhKaki = JlhKaki;
                this.BisaTerbang = BisaTerbang1;
        }

        abstract void bernafas();

        public void status() {
                        System.out.println("Nama : " +Nama);
                        System.out.println("Jumlah Kaki : " +JlhKaki);
                        System.out.println("Bisa terbang : " +BisaTerbang);
                }
}
 
B. MEMBUAT PROGRAM Manusia.java
public class Manusia extends MakhlukHidup {
        Manusia (String nama) {
                super (nama, 2, false);
        }

        public void bernafas() {
                System.out.println(Nama+ " bernafas dengan menghirup O2");
        }

        public static void main (String [] args) {
                Manusia m = new Manusia ("Sayuti");
                m.status();
                m.bernafas();
        }
}

C. MEMBUAT PROGRAM Tumbuhan.java
public class Tumbuhan extends MakhlukHidup {
        Tumbuhan(String nama) {
                super (nama, 0, false);
        }

        public void bernafas() {
                System.out.println(Nama+ "bernafas dengan mengirup CO2");
        }

        public static void main(String [] args) {
                Tumbuhan t = new Tumbuhan("Bayam");
                t.status();
                t.bernafas();
        }
}
D. MEMBUAT PROGRAM Pekerjaan.java

interface Pekerjaan {
        public void namaPekerjaan();
        public void gaji();
}

E. MEMBUAT PROGRAM Sasya.java
public class Sasya extends Manusia implements Pekerjaan {
        public Sasya() {
                super ("Sasya");
        }

        public void namaPekerjaan() {
                System.out.println("Pekerjaan : Sekretaris");
        }

        public void gaji() {
                System.out.println("Gaji : Rp. 3.000.000");
        }

        public static void main(String[] args) {
                Sasya s = new Sasya();
                s.status();
                s.bernafas();
                s.namaPekerjaan();
                s.gaji();
        }
}

F. MEMBUAT PROGRAM JantungManusia.java
class Orang {
        private int jumlKaki = 2;

        public void dengarBunyiJantung() {
                Jantung j = new Jantung();
                j.bunyiJantung();
        }

        public void tahanNafas() {
                System.out.println("Jantung berhenti berdetak!");
        }

        //inner class
        class Jantung {
                public void bunyiJantung() {
                        System.out.println("deg...deg...deg...");
                }

                public void istirahat() {
                        System.out.println("Silangkan ke "+jumlKaki+" kaki.");
                        tahanNafas();
                }
        }

}

class JantungManusia {
        public static void main(String[] args) {
                Orang o = new Orang();
                Orang.Jantung p = o.new Jantung();
                o.dengarBunyiJantung();
        }
}


 









 





Tidak ada komentar:

Posting Komentar