Rabu, 23 Maret 2011

INTERFACE

Disini akan dibahas mengenai INTERFACE, dimana nama lain dari ANTARMUKA ini merupakan penghubung antara dua sistem atau alat media penghubung antara satu subsistem dengan subsistem lainnya. Dan tentunya melalui penghubung ini memungkinkan sumber daya mengalir dari satu subsistem ke subsistem yang lainnya. Keluaran (output) dari suatu subsistem akan menjadi masukan (input) untuk subsistem lainnya dengan melalui penghubung. Dengan penghubung satu subsistem dapat terintegrasi dengan subsistem yang lainnya membentuk satu kesatuan.

Didalam INTERFACE ini :
  • perangkat yang dipakai untuk mengerjakan sesuatu, dan perangkat yang secara tidak langsung mengontrol perangkat lunak.
  • piranti input atau output
  • prosedur pemakaian perangkat

INTERFACE APLIKASI I/O

Ketika suatu aplikasi ingin membuka data yang ada dalam suatu disk, sebenarnya aplikasi tersebut harus dapat membedakan jenis disk apa yang akan diaksesnya. Untuk mempermudah pengaksesan, sistem operasi melakukan standarisasi cara pengaksesan pada peralatan I/O. Pendekatan inilah yang dinamakan INTERFACE APLIKASI I/O.
Selain itu, INTERFACE APLIKASI I/O melibatkan abstraksi, enkapsulasi, dan software layering. Abstraksi dilakukan dengan membagi-bagi detail peralatan-peralatan I/O ke dalam kelas-kelas yang lebih umum. Dengan adanya kelas-kelas yang umum ini, maka akan lebih mudah untuk membuat fungsi-fungsi standar(interface) untuk mengaksesnya. Lalu kemudian adanya device driver pada masing-masing peralatan I/O, berfungsi untuk enkapsulasi perbedaan-perbedaan yang ada dari masing-masing anggota kelas-kelas yang umum tadi. Device driver mengenkapsulasi tiap - tiap peralatan I/O ke dalam masing-masing 1 kelas yang umum tadi. Tujuan dari adanya lapisan device driver ini adalah untuk menyembunyikan perbedaan-perbedaan yang ada pada device controller dari subsistem I/O pada kernel. Karena hal ini, subsistem I/O dapat bersifat independen dari hardware.
Karena subsistem I/O independen dari hardware maka hal ini akan sangat menguntungkan dari segi pengembangan hardware. Tidak perlu menunggu vendor sistem operasi untuk mengeluarkan support code untuk hardware-hardware baru yang akan dikeluarkan oleh vendor hardware.


Setelah mengetahui sedikit tentang INTERFACE, berikut ini terdapat definisi INTERFACE dan kegunaannya ... mari di simak !!


INTERFACE merupakan jenis khusus dari blok yang hanya berisi method signature atau constant. selain itu, INTERFACE mendefinisikan sebuah (signature) dari sebuah kumpulan method tanpa tubuh serta mendefinisikan sebuah cara standar dan umum dalam menetapkan sifat-sifat dari
class-class. Mereka menyediakan class-class, tanpa memperhatikan lokasinya dalam hirarki class, untuk mengimplementasikan sifat-sifat yang umum ...

Mengapa memakai Interface?

menggunakan INTERFACE jika ingin class yang tidak berhubungan mengimplementasikan method yang sama. Melalui interface-interface, tentu dapat menangkap kemiripan diantara class yang tidak berhubungan tanpa membuatnya seolah - olah class yang berhubungan.

Contoh class Line dimana berisi method yang menghitung panjang dari garis dan membandingkan object Line ke object dari class yang sama. Sekarang, misalkan memiliki class yang lain yaitu MyInteger dimana berisi method yang membandingkan object MyInteger ke object dari class yang sama.

Seperti yang di lihat disini, kedua class-class mempunyai method yang mirip dimana membandingkan mereka dari object lain dalam tipe yang sama, tetapi mereka tidak berhubungan sama sekali. Supaya dapat menjalankan cara untuk memastikan bahwa dua class-class ini mengimplementasikan beberapa method dengan tanda yang sama, maka dapat menggunakan sebuah
INTERFACE untuk hal ini. Kita dapat membuat sebuah class INTERFACE, katakanlah INTERFACE Relation dimana mempunyai deklarasi method pembanding.

Adakah alasan lainnya ? ...
Untuk alasan lainnya dalam menggunakan INTERFACE pemrograman object adalah menyatakan
sebuah
INTERFACE  pemrograman object tanpa menyatakan classnya. Seperti yang dapat di lihat nanti dalam bagian INTERFACE vs class, maka akan dapat benar-benar menggunakan INTERFACE sebagai tipe data.

Akhirnya, perlu menggunakan
INTERFACE untuk pewarisan model jamak dimana
menyediakan class untuk mempunyai lebih dari satu superclass. Pewarisan jamak tidak
ditunjukkan di Java, tetapi ditunjukkan di bahasa berorientasi object lain seperti C++.


Bagaimana dengan hubungan dari Interface ke Class ... ??
 

Class dapat mengimplementasikan sebuah INTERFACE selama kode implementasi untuk semua method yang didefinisikan dalam INTERFACE tersedia. Hal lain yang perlu dicatat tentang hubungan antara INTERFACE ke class-class yaitu :

Class hanya dapat mengEXTEND SATU superclass,
tetapi
dapat mengIMPLEMENTASIkan BANYAK INTERFACE

*catatan bahwa sebuah interface bukan bagian dari hirarki pewarisan class. Class yang tidak berhubungan dapat mengimplementasikan interface yang sama


Pewarisan Antar Interface
 INTERFACE bukan bagian dari hirarki class. Bagaimanapun, INTERFACE dapat mempunyai hubungan pewarisan antara mereka sendiri. Contohnya, misalnya mempunyai dua INTERFACE StudentInterface dan PersonInterface. Jika StudentInterface meng-extend PersonInterface, maka akan mewariskan semua deklarasi method dalam PersonInterface.

---------------------------------------------------------
public interface PersonInterface {
...
}


public interface StudentInterface extends PersonInterface {
...
}

---------------------------------------------------------