Sabtu, 14 Mei 2016

Pemrograman berorientasi Objek tentang Interface pada Hewan



A.    Definisi Interface
Interface adalah wadah dari kumpulan method yang bersifat abstrak atau tidak memiliki implementasi. Sedangkan method yang didefinisikan di dalam interface tersebut akan diimplementasikan oleh class yang mengimplementasikan interface tersebut. Interface merupakan bentuk perluasan dari kelas abstrak. Selain method, interface juga dapat berisi sekumpulan variable, namun variable yang dideklarasikan di dalam interface harus bersifat final (nilainya tidak dapat diubah /konstan).
Sebagai contoh : Dalam kehidupan nyata dapat diketahui ada manusia yang bekerja sebagai tentara, penyanyi, pengacara, dan sebagainya, tentunya manusia-manusia tersebut selain harus memiliki method standard sebagai seorang manusia, juga harus memiliki method yang sesuai dengan pekerjaannya. Dengan demikian untuk membuat objek manusia yang bekerja sebagai penyanyi, harus dibuat kelas yang merupakan turunan kelas manusia yang meng-implementasikan interface penyanyi.

Ciri-ciri dari interface
Method interface tidak punya tubuh, sebuah interface hanya dapat mendefinisikan konstanta dan interface tidak langsung mewariskan hubungan dengan class istimewa lainnya, mereka didefinisikan secara independent.
Tidak bisa membuat instance atau objek baru dari sebuah interface.
Ciri umum lain adalah baik interface maupun class dapat mendefinisikan method. Bagaimanapun, sebuah interface tidak punya sebuah kode implementasi sedangkan class memiliki salah satunya.

Beberapa perbedaan Interface dan Abstract Class :
- Interface hanya bisa mendefinisikan Method, tidak bisa mengimplementasikan, sedangkan Abstrat Class bisa mengimplementasikan Method
- Interface tidak boleh terdiri dari field atau property, Abstract Class bias
- Interface tidak boleh terdiri dari konstruktor dan destruktor, sedangkan Abstract class bisa:
Abstract class
Interface
Bisa berisi abstract dan non-abstract method.
Hanya boleh berisi abstract method.
Kita harus menuliskan sendiri modifiernya.
Kita tidak perlu susah2 menulis public abstract di depan nama method. 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 bersifatpublicstatic dan final.
Method boleh bersifat static.
Method tidak boleh bersifat static.
Method boleh bersifat final.
Method tidak boleh bersifat final.
Suatu abstact 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 dikatakan Abstract karena class tersebut tidak diimplementasikan secara langsung di class tersebut. Melainkan diimplementasikan di class lain yang merupakan class anak dari abstract class itu. Itulah sebabnya dinamakan abstract class. Berikut perbedaan antara class abstract dengan interface:
1.      Abstract class dapat memiliki tipe data dengan semua tipe data, sedangkan interface tipe datanya hanya berupa konstanta
2.      Method pada abstract class dapat berupa method kongkrit dan method abstract. Sedangkan pada interface semua method harus berupa method abstract.
3.      Interface Class jelas berbeda dengan abstract class. Karena class ini mengimplementasikan methodnya di class lain dihubungkan dengan kata "implements". Method class interface tadi diimplementasikan dengan nama method yang sama di class yang diimplementasikan.

Contoh Abstract Class :

public abstract class MahlukHidup {
          protected boolean BisaTerbang = false;
          protected String Nama;
                   abstract void bernafas ( ) ;



  Dari contoh di atas dapat kita lihat bahwa pada abstract class Mahluk hidup terdapat 1 method yang tidak memiliki implementasi. Implementasi method bernafas nanti akan diimplementasikan di class anak karena biasanya class abstract dapat menjadi class induk.

 Contoh Interface Class :


interface Pekerjaan {
           public void namaPekerjaan ( ) ;



Pada contoh interface class di atas  dapat dilihat perbedaan antara abstract class dan interface class. Interface class memiliki method yang tidak memiliki implementasi.


A.    Mendeklarasikan Interface

Untuk mendeklarasikan sebuah interface, digunakan kata kunci interface sebelum nama interface sebagaimana sintak pendeklarasian di bawah ini.




public interface NamaInterface {
// metode  -tanpa implementasi
//definisi konstata
}


Variabel dalam interface hanya diperkenankan untuk menggunakan penentu akses public static final, yang sebenarnya menyatakan  suatu konstata (bukan variable). Kalau  public static tidak disertakan, secara implisit akan diperlakukan seperti public static  telah diberikan.
Contoh berikut ini yang menunjukan interface yang berisi konstata ;


public interface InterfaceWarna {
public static int HITAM = 255;
public static int PUTIH = 0;
}


Mengingat public static dalam interface tidak harus disedutkan secara explisit, deklarasi interface Warna diatas dapat ditulis menjadi :

public interface InterfaceWarna {
 int HITAM = 255;
int PUTIH = 0;
}
 

Adapun penentu akses untuk dalam interface dengan metode yang bertipe abstract. Penentu ini harus dituliskan secara explisit karena java akan menggunakan penentu tersevut yang sekirannya tidak disebutkan.
Contoh interface yang mengandung metode tanpa konstata :


public interface InterfaceWarna {
public abstract void gambar ( );
public abstract void setWarna ( );
}


Perhatika bahwa tubuh metode gambar ( ) dan setWarna ( ) tidak ada, karena hanya menyertakan bentuk metode.
Mengingat public abstract tidak diharuskan untuk ditulis maka deklarasi interface diatas dapat ditulis menjadi :

public interface InterfaceBentuk {
void gambar ( );
void setWarna ( );
}



A.    Pewarisan Interface

Suatu interface juga dapat mewarisi interface yang lain seperti subkelas diatas yang dapat ditulis menjadi :

public interface WarnaLebihLengkap extends InterfaceWarna {
int ABU_ABU = 128;
}


Pada contoh diatas interface WarnaLebihLengkap tidak hanya memiliki konstata ABU_ABU saja, tetapi juga terdapat HITAM dan PUTIH yang diwarisinya dari interface InterfaceWarna.
Berbeda denga kelas lain jika suatu interface dapat mewarisi lebih dari satu interface. Untuk contohnya seperti dibawah ini :



public interface NamaInterface extends InterfaceA, InterfaceB{
// tubuh interface
}



A.    Menggunakan Interface
Sebuah kelas dapat menggunakan interface melalui kata kunci implements. Bentuknya sebagai berikut :


class NamaKelas1 [ extends NamaKelas2]
 implements NamaInterface1 [,NamaInterface2] {
// tubuh kelas
}


Jika interface yang digunakan lenih dari satu maka antar interface dipisahkan oleh tanda koma (,).


A.    Contoh Program yang menggunakan interface
Study Case :  Hewan yang mewarisi data kepada burung merpati dan kucing, yang diwarisi adalah bernafas, terbang, bersuara dan berlari.

1.      Buat class dengan nama nafas

 
2.      Buat class dengan nama terbang
 
 
3.      Buat class dengan nama suara

 
4.      Buat class dengan nama lari

5.      Buat class hewan yang berfungsi sebagai class yang mewarisi

 
6. Buat class burung merpati yang akan mewarisi class hewan
 



7.      Buat class kucing yang akan mewarisi class hewan

 
 
8.      Tuliskan code berikut di class main menu ( Contoh_Interface ) untuk memanggil seluruh class pewarisan

Hasil Outputnya




Penjelasan :
Pada program diatas terdapat 4 buah interface yaitu nafas, terbang, suara dan lari. Kemudian class hewan mewarisi data kepada class burungMerpati dan class kucing. Class hewan sebagai yang mewarisi data untuk class BurungMerpati dan kucing dan untuk menuliskan pewarisan terebut menggunakan extends kemudian implements contohnya :
 




Fungsi dari extends sendiri adalah untuk memanggil data yang ada pada class hewan. Sedangkan fungsi dari Implements yaitu sama memanggil data yang ada di class hewan dan jika dalam fungsi Implements tidak dicantumkan nama data pewarisan sedangkan class BurungMerpati dan kucing tidak mewarisi data tersebut maka dalam outputnya muncul tidak mewarisi data itu.


KESIMPULAN

Interface merupakan class yang hanya berisi deklarasi method tanpa memiliki implementasi dan semua property yang dimilikiny bersifat final. Interface mirip dengan class abstract, tetapi interface tidak terkait dengan class hierarki. Interface mendefinisikan sebuah (signature) dari sekumpulan method tanpa tubuh.
















Daftar Pustaka ;

Kadir, Abdul. 2005. Dasar Pemrograman Java 2. Yogyakarta : C.V Andi Offset.
Dwi, Dinar. 2014. Class abstract, Package, Interface, Pewarisan, Interface Pada Java. //dinardc.blogspot.co.id/2014/03/class-abstractpackage-interface.html. Diakses 29 April 2016.





2 komentar:

  1. Free Slots Games at CasinoTopTotheCasino.org
    to win more slots games, the 알바로 모라타 game 배당토토 is also a bit of fun for the player, the bonus is a 예스 벳 bonus, so if you are already on a 승인전화없는토토 good 토토 배당률 day of

    BalasHapus