160 likes | 554 Views
Konsep Interface: Membangun Interoperabilitas. Lukito Edi Nugroho. Apakah Interface ?. Secara umum, interface menunjukkan batas-batas antara dua pihak (hardware, software, pemakai) yang saling berkomunikasi
E N D
Konsep Interface:Membangun Interoperabilitas Lukito Edi Nugroho
Apakah Interface ? • Secara umum, interface menunjukkan batas-batas antara dua pihak (hardware, software, pemakai) yang saling berkomunikasi • Pada umumnya menjelaskan tentang abstraksi sebuah entitas yang ingin ditunjukkan ke pihak lain (publik) • Interface memisahkan fitur (layanan) dari implementasinya menerapkan prinsip information hiding
Ilustrasi Interface privat publik “pesan nasi goreng” “memasak nasi goreng” Nasi goreng Mie goreng Mie bakso Interface berupa menu menunjukkan abstraksi tentang layanan yang dapat disediakan oleh warung makan
Interface Memisahkan Publik & Privat Publik Privat server (object implementation) client X interface Y Z implementasi
Interface dalam RPC • Interface Definition Language (IDL) • Mendefinisikan karakteristik prosedur di sisi server yg dapat dipanggil oleh client • Nama prosedur • Parameter, tipe datanya, dan kategorinya (in, out, inout) • Spesifikasi interface dlm IDL dapat dikompilasi utk digunakan oleh bhs pemrograman yg berlainan client & server dpt ditulis scr independen • Contoh: Sun RPC • Dirancang utk komunikasi client-server pd Sun NFS • IDL: XDR, kompiler IDL: rpcgen • Bahasa pemrograman: C
Interface dalam RPC // In file Person.idl struct Person { string name; string place; long year; } ; interface PersonList { readonly attribute string listname; void addPerson(in Person p) ; void getPerson(in string name, out Person p); long number(); };
Interface dalam Bahasa Pemrograman • Interface mendefinisikan behaviour yang dapat diimplementasikan oleh sembarang kelas dalam struktur hirarki kelas • Dalam bahasa pemrograman, interface diwujudkan sebagai sekumpulan definisi method (tanpa implementasi)
Contoh: Interface dalam Java public class StockApplet extends Applet implements StockWatcher { ... public void valueChanged(String tickerSymbol, double newValue) { if (tickerSymbol.equals(sunTicker)) { ... } else if (tickerSymbol.equals(oracleTicker)) { ... } else if (tickerSymbol.equals(ciscoTicker)) { ... } } }
Interface dalam CORBA • Definisi interface harus menggunakan bahasa yang “netral” • Bahasa khusus: Interface Definition Language (IDL) • Secara sintaks mirip C, tapi tidak memiliki struktur kendali program • Focus pada what, bukan how
Interface dalam Sistem-Sistem Lain • OLE/COM • .NET • Web service