Monday, April 29, 2013

Kelas Abstrak, Interface dan Polymorphism

   

ABSTRACT CLASS, INTERFACE DAN POLYMORPHISM




      Kelas Abstract (Abstract Class)

            Kelas abstrak adalah kelas yang terletak di posisi tertinggi dalam hierarki class. Kelas ini tidak dapat di instansiasi karena masih bersifat abstrak. Kelas ini hanya berisi variable – variable umum dan deklarasi method tanpa detail implementasi. Selanjutnya kelas – kelas yang menjadi turunan dari kelas abstraklah yang akan mengimplementasikan method – method tanpa implementasi tersebut.

            Kelas abstrak dideklarasikan menggunakan keyword abstract. Abstract method merupakan suatu method yang tidak mempunyai badan method. Hanya berupa nama method dan parameter inputan method. Ketika suatu abstract class diturunkan / di-extends, maka subclass harus mengimplementasikan semua method abstract pada parent/ base class. Jika tidak mengimplementasikan semua method abstract maka subclass harus dideklarasikan sebagai abstract class. Method abstrak ditandai dengan modifier abstract,  tidak memiliki implementasi, dan diakhiri dengan tanda titik koma ( ; ).

public void myAbstractMethod();




      Interface

          Interface memungkinkan pemrogram untuk berbagi konstanta atau menentukan bentuk metode yang dapat digunakan oleh sejumlah kelas. Interface adalah kumpulan method yang hanya memuat deklarasi dan struktur method, tanpa detail implementasinya. Sedangkan detail dari method berada pada class yang mengimplementasikan interface tersebut. Interface digunakan bila Anda ingin mengaplikasikan suatu method yang spesifik, yang tidak diperoleh dari proses inheritance. Tipe data yang boleh pada interface hanya tipe data konstan. Interface adalah sebuah blok yang berisi deklarasi metode saja untuk diimplementasikan pada class lain. Jadi, metode yang ada di dalam interface tidak memiliki kode program (bersifat abstract).

                  Dalam Ananda dkk.(2009:73) dijelaskan bahwa “interface adalah prototype kelas yang berisi definisi konstanta dan deklarasi method (hanya nama method tanpa definisi kode programnya). Dalam sebuah interface didapatkan sifat-sifat berikut: semua atribut pada interface adalah public, static, dan final; semua method adalah abstract dan public; tidak boleh ada deklarasi konstruktor. Interface digunakan untuk menyatakan spesifikasi fungsional beberapa kelas secara umum. Dengan adanya interface, Java menyediakan sebuah fitur untuk keperluan pewarisan jamak (multiple inheritance).

                  Pendefinisian sebuah diagram kelas yang bersifat interface mirip dengan kelas abstrak. Perbedaannya terletak pada kata kunci yang digunakan yaitu interface. Diagram kelas di bawah ini adalah diagram kelas dari sebuah interface. Sementara itu kata kunci implements digunakan untuk mengimplementasikan sebuah interface yang bersangkutan.

Mendeklarasikan  method dalam interface mirip dengan mendeklarasikan method abstract, dimana deklarasi method tidak diakhiri pasangan kurung kurawal, melainkan tanda titik koma (;) return - type namaMethod ([daftar parameter]). Field field yang didefinisikan pada interface secara otomatis bersifat static dan final, yang berarti mereka hanya bertindak sebagai  konstanta. 



Ø                   Perbedaan antara interface dengan kelas abstrak :

Abstract Class
Interface
Bisa berisi abstract dan non abstract method
Hanya boleh berisi abstract method
Harus menuliskan sendiri modifiernya
Tidak perlu susah-susah menulis public abstract di depan nama methid. Karena secara implisit, modifier untuk method di interface adalah public dan abstract
Bisa mendeklarasikan constant dan instance variable
Hanya bisa mendeklarasikan constant. Secara implisit variable yang dideklarasikan di interface bersifat public, static dan final
Method boleh bersifat static
Method tidak boleh bersifat static
Method boleh bersifat final
Method tidak boleh bersifat final
Suatu abstract class hanya bisa meng-extend satu abstract class lainnya
Suatu interface bisa meng-extend satu atau lebih interface lainnya
Suatu abstract class hanya bisa meng-extend satu abstract class dan meng-implement beberapa interface
Suatu interface hanya bisa meng-extend interface lainnya. Dan tidak bisa meng-implement class atau interface lainnya
Abstract class dapat memiliki tipe data dengan semua tipe data
Interface tipe datanya hanya berupa konstanta
Abstract classdengan keyword abstract
Interface dideklarasikan dengan keyword interface
Abctract class dapatdiimplementasikan
Interface tidak memiliki implementasii
Abstract method harus meng-override semua abstract method dan mungkinmeng-override method-method virtual.
Interface hanya bias digunakan bila implementasinya berubah
Abstract class dapat digunakan bila meng-implementasi framework
Interface meningkatkan keamanan dengan menyembunyikan implementasinya



     Polymorphism

                  Polymorphism merupakan konsep sederhana dalam bahasa pemrograman berorientasi obyek yang berarti kemampuan sebuah obyek untuk menghasilkan aksi yang berbeda, bila method yang sama dipanggil, dimana aksi method yang dikerjakan tergantung dari tipe obyeknya.

            Polymorphism terbagi menjadi 2 bagian yaitu :

            a. Function Overloading.

                 Function yang bisa dideklarasikan lebih dari 1 kali dengan menggunakan nama yang sama namun menggunakan parameter yang berbeda.

            b. Function overriding.

Kemampuan suatu objek untuk menjalankan/memanggil method dengan cara yang berbeda.

Kondisi yang harus dipenuhi supaya polimorfisme dapat diimplementasikan adalah :  

-          Method yang dipanggil harus melalui variable dari basis class atau superclass

-          Method yang dipanggil harus juga menjadi method dari basis class. 

-          Signature method harus sama baik pada superclass maupun subclass. 

-          Method access attribute pada subclass tidak boleh lebih terbatas dari basis class.  

      Kegunaan dari polimorfisme adalah agar kita dapat mendefinisikan beberapa konstruktor atau metode dengan karakteristik yang berbeda – beda agar nantinya dapat digunakan untuk kasus – kasus yang berbeda.

1 comment:

Contact

Talk to us

Lorem ipsum dolor sit amet, consectetur adipisicing elit. Dolores iusto fugit esse soluta quae debitis quibusdam harum voluptatem, maxime, aliquam sequi. Tempora ipsum magni unde velit corporis fuga, necessitatibus blanditiis.

Address:

9983 City name, Street name, 232 Apartment C

Work Time:

Monday - Friday from 9am to 5pm

Phone:

595 12 34 567

Followers

I'am at Malang University

free counters

Chatroom

Clock