Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Pemrograman Berorientasi Object Interface I Made Suartana, S.Kom, M.Kom Materi • Interface Interface class class • Final class • Encapsulasi/information hiding l i/i f i hidi Section 1 INTERFACE Intro Dalam Dalam pemrograman Berorientasi Objek yang pemrograman Berorientasi Objek yang terpenting adalah apa yang dapat dilakukan sebuah objek bukan bagaimana objek sebuah objek, bukan bagaimana objek melakukan sesuatu. Pengguna hanya perlu tahu apa yang bisa Pengguna hanya perlu tahu apa yang bisa dilakukan sebuah program, bukan bagaimana sebuah program mengerjakan suatu sebuah program mengerjakan suatu instruksi. Interface Interface Interface Interface merupakan komponen dalam vital merupakan komponen dalam vital dalam pemrograman berorientasi objek. Suatu interface merupakan suatu kontrak Suatu interface merupakan suatu kontrak atau kesepakatan mengenai apa yang bisa dikerjakan oleh sebuah objek dikerjakan oleh sebuah objek. Contoh Interface Interface 2 Modifier 2 Modifier In In the Java programming language, an interface the Java programming language an interface is a is a reference type, similar to a class, that can contain only constants, method signatures, and nested constants method signatures and nested types. There are no method bodies. Interfaces cannot be instantiated—they cannot be instantiated they can only be can only be implemented by classes or extended by other interfaces. interfaces • http://docs.oracle.com/javase/tutorial/java/IandI/createinterface.html Fungsi Interface • There There are a number of situations in software are a number of situations in software engineering when it is important for disparate groups of programmers to agree to a groups of programmers to agree to a "contract" that spells out how their software interacts Each group should be able to write interacts. Each group should be able to write their code without any knowledge of how the other group'ss code is written. Generally other group code is written Generally speaking, interfaces are such contracts. http://docs.oracle.com/javase/tutorial/java/IandI/createinterface.html Fungsi Interface Interface ‐2‐ 2 • For example, imagine a futuristic society where p , g y computer‐controlled robotic cars transport passengers through city streets without a human operator Automobile manufacturers write operator. Automobile manufacturers write software that operates the automobile—stop, start, accelerate, turn left, and so forth. Another i d ti l industrial group, electronic guidance instrument l t i id i t t manufacturers, make computer systems that receive GPS (Global Positioning System) position ( g y )p data and wireless transmission of traffic conditions and use that information to drive the car. car http://docs.oracle.com/javase/tutorial/java/IandI/createinterface.html Fungsi Interface Interface ‐3‐ 3 • The auto manufacturers must publish an industry‐ p y standard interface that spells out in detail what methods can be invoked to make the car move (any car from any manufacturer) The guidance car, from any manufacturer). The guidance manufacturers can then write software that invokes the methods described in the interface to command the car. Neither industrial group needs to know how h h d l d k h the other group's software is implemented. In fact, g p g yp p y each group considers its software highly proprietary and reserves the right to modify it at any time, as long as it continues to adhere to the published interface. http://docs.oracle.com/javase/tutorial/java/IandI/createinterface.html Interface & Multiple Inheritance Interface & Multiple Inheritance Java tidak Java tidak mendukung multiple inheritance multiple inheritance Interface merupakan alternati menerapkan konsep multiple inheritance pada multiple inheritance pada java Ilustrasi ‐2‐ 2 Media Player Play() CD DVD Play() Play() Combo ??? Solusi Solusi Interface Deklarasi interface Deklarasi interface terdiri interface terdiri dari modifiers, modifiers kata kunci(keyword) interface, nama interface super/parent dari interface(kalau interface, super/parent dari ada) ditulis dengan pemisah (,) kalau lebih dari satu parent, body interface: parent body interface: Contoh Contoh 2 Deklarasi interface interface ‐2‐ 2 Modifier interface dibuat od e te ace d buat pub public agar interface c aga te ace bisa diakses dari class dan package dari mana saja. Interface bisa diturunkan dari interfaces lain, sama seperti class yang bisa diturunkan dari class lain. Hanya l l i H saja j interface bisa i t f bi diturunkan dit k dari satu atau lebih interface lain ( sedangkan class hanya bisa diturunkan dari satu class lain). class hanya class lain). Tanda (,) digunakan sebagai pemisah kalau interface diturunkan lebih dari satu interface. Interface Body Interface Body Interface body terdiri te ace body te d da dari de deklarasi a as se semua ua method yang dibutuhkan dalam interface. p interface tidak boleh memiliki Method pada body/implementasi dari method dan modifier dari method bersifat public. Interface bisa memiliki atribut constant (konstanta). All All constant values defined in an interface are t t l d fi d i i t f implicitly public, static, and final. Once again, these modifiers can be omitted these modifiers can be omitted. ModifierInterface Modifier 3 3 Implementasi Untuk menggunakan/meng menggunakan/meng’implementasikan implementasikan interface dalam class, dengan menambahkan keyword “implements” keyword implements setelah setelah nama class diikuti nama interface Modifier Modifier 4 4 Point penting Point penting Interface • Class yang mengimplementasikan class interface harus mengimplementasikan method yang dideklarasikan pada class interface(Override) method pada class interface adalah class interface adalah method method • Semua method pada public dan abstract • Class interface tidak bisa di’instant menjadi objek • Instance dari I t d i class interface melalui l i t f l l i implementasi i l t i dari d i class interface • Class interface bisa diturunkan(extend) dari ( ) satu atau Beberapa class interfaces. Sebuah class hanya bisa diturunkan dari satu class tetapi bisa g p beberapa p interface meng’implementasikan Constructor Constructor Perbedaan penggunaan abstract vs abstract vs interface • Kelas Kelas abstrak abstrak digunakan ketika perlu mendefinisikan template untuk di digunakan k sekelompok subclass k l k b l • Interface digunakan jika sebuah peran diperlukan untuk kelas lain, terlepas dari konsep penurunan(inheritance) Section 2 FINAL CLASS DAN METHOD Modifier Modifier 5 5 Final class dan Final class dan method • Dideklarasikan menggunakan keyword keyword “final” final • Final class tidak bisa diturunkan(extend). • Final method tidak i l h d id k bisa bi di’override’ di’ id ’ Modifier Modifier 5 contoh 5 • Final class Final class • Final Method Section 3 ENKAPSULASI & INFORMATION & INFORMATION HIDING Modifier Modifier 5 5 Hiding Enkapsulasi & Information & Information Hiding • Information Information hiding hiding adalah penyembunyian attribut suatu objek dari objek lain. • Enkapsulasi adalah penyembunyian method method suatu objek dari objek lain Set modifier menjadi private Set modifier menjadi Latihan