Download PBO Pertemuan 12

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts
no text concepts found
Transcript
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