object orientedprogramming - kartika firdausy's blog ... · – pada saat terjadi suatu event...
TRANSCRIPT
1
Object Oriented Programming
Pemrograman Visual (TH22012 )by Kartika [email protected]@ee.uad.ac.idblog.uad.ac.id/kartikafkartikaf.wordpress.com
Object Oriented Programming (OOP)
membuat suatu program yang terdiri dari
berbagai object yang saling berinteraksi
2
Object Oriented Programming (OOP)
Classpola / template (cetakan) yang
menggambarkan kumpulan object yang
mempunyai sifat / perilaku yang sama
� himpunan object sejenis
Objectimplementasi dari class
Class merupakan “cetakan” (template) untuk
instance (wujud nyata) entitas-entitas yang
direpresentasikannya
– Sebuah kelas dapat melahirkan lebih dari satu
instance
satu template
banyak instance
(wujud nyata)
3
Analogi :
pembangunan suatu gedung
� gambar desain gedung
� dibuat gedung nyatanya �
implementasi gambar gedung
Dari suatu class dapat dibuat beberapa
object yang sama.
� class
� object
Object
Sebuah instance (perwujudan nyata) dari suatu kelas
tertentupublic class SegiEmpat {int panjang;int lebar;string warna;public SegiEmpat(string w, int p, int l) {panjang = p; lebar = l; warna = w;}public setWarna (string w) {warna = w;}}SegiEmpat sPink = new SegiEmpat(“pink”, 20,10);SegiEmpat sPutih = new SegiEmpat(“putih”, 15,10);SegiEmpat sOrange = new SegiEmpat(“orange”, 30,15);
4
Definisi Kelas dan Objectpublic class SegiEmpat {int panjang;int lebar;string warna;public SegiEmpat(string w, int p, int l) {panjang = p; lebar = l; warna = w;}public setWarna (string w) {warna = w;}}SegiEmpat sPink = new SegiEmpat(“pink”, 20,10);field, menunjukkan atribut/property
constructor, untuk menciptakan
object (instance) baru dengan
property tertentu
methods atau member functions,
mendeskripsikan behaviour atau
aktivitas yang bisa dijalankan
memanggil constructor untuk membentuk
object baru
– Data
• analogikan sebagai variabel atau konstanta
• karakteristik dari objek
– Metode
• function/procedure
• aksi terhadap data
Objek = Data + Metode
5
– Program terdiri dari sekumpulan object yang saling berinteraksi / saling mengirimkan pesan.
– Asumsi: program adalah sebuah mobil• bagian-bagian dari mobil tersebut adalah object-object (mesin, rangka
mobil dan lain sebagainya)yang saling berhubungan dan menjadi satu kesatuan yang membangun mobil tersebut
– Object sebagai tipe “data buatan” (seperti struct). • Namun tipe “data buatan” ini memiliki kelebihan yaitu dapat menyimpan
informasi (sebagai property) dan juga dapat melakukan “aktivitas” (sebagai method/ fungsi)
– Setiap object memiliki “tipe” tersendiri. • Tipe di sini dimaksudkan agar dapat diketahui “pesan” apa yang dapat
dikirimkan terhadap object tersebut.
• dengan mengetahui “tipe” suatu object, dapat dipanggil fungsi yang terdapat di dalamnya ataupun informasi yang disimpan oleh object tersebut
– data-data di dalam objek dikenal dengan nama
property,
– perilaku atau fungsi yang dimilikinya dikenal
dengan nama method
– peristiwa-peristiwa yang terjadi pada objek dikenal
dengan nama event.
6
– Analogi dalam kehidupan sehari-hari,
– objek yang dimaksud misalnya orang.
– Properti: nama, berat badan, tinggi badan dan bentuk fisik lainnya.
– Method, misalnya berjalan, marah, makan, dan perilaku lain.
– Event (kejadian) yang dapat menimpa orang adalah ketika dipukul, lapar, mengantuk dan sebagainya.
– Pada saat terjadi suatu event terhadap orang, maka orang akan merespon event tersebut dengan cara melakukan method tertentu.
– Misalnya ’ketika lapar’ (event), orang akan melakukan sebuah pekerjaan, yaitu ’makan’ (Method).
Konsep dalam OOP
Class � Pengklasifikasian terhadap definisi data dan
fungsi untuk tujuan tertentu
– Misal: Class dari Kipas dapat terdiri dari KipasBerdiri dan
KipasDuduk
– Kumpulan atas definisi data dan fungsi-fungsi dalam
suatu unit untuk suatu tujuan tertentu.
– Sebagai contoh 'class of cat' adalah suatu unit yang
terdiri atas definisi-definisi data dan fungsi-fungsi yang
menunjuk pada berbagai macam perilaku/turunan dari
kucing.
7
Konsep dalam OOP
Objek
– membungkus data dan fungsi bersama menjadi
suatu unit dalam sebuah program
– objek merupakan dasar dari modularitas dan
struktur dalam sebuah program berorientasi
objek.
Konsep dalam OOP
Abstraksi: menjelaskan makna sebuah entitas
secara cepat dan mudah
Enkapsulasi: dapat menyembunyikan detil
yang tidak perlu
Modular: object adalah entitas yang
independen
8
Konsep dalam OOP
Contoh: abstraksi “sepeda”
– memiliki property
• “punya roda”, “punya rantai”, dsb.,
– behaviour “bisa berjalan”, “bisa berbelok”, dsb.
Sebagai abstraksi dari sebuah entitas, definisi
kelas harus mencerminkan karakteristik
sebenarnya dari entitas tsb.
Enkapsulasi• Enkapsulasi: lokalisasi fitur-fitur sebuah object (fields dan
methods) dalam definisi object tersebut
• Enkapsulasi menyembunyikan property dan behaviour object
dari pihak luar (object yang lain) � object lain melihat object
ini sebagai “black box” saja
• Enkapsulasi memisahkan antara bagian publik (yang bisa dilihat
oleh pihak luar (object lain) dan bagian privat (internal object
itu sendiri) dengan tegas � fitur ini memberi
keleluasaan/independensi untuk bekerja dengan aspek internal
tanpa harus bergantung pada aspek publik/eksternal
9
Enkapsulasipublic class SegiEmpat {int panjang;int lebar;string warna;public SegiEmpat(string w, int p, int l) {panjang = p; lebar = l; warna = w;}public setWarna (string w) {warna = w;}}sPinkSegiEmpat sPink = new SegiEmpat(“pink”, 20,10); setWarna(string w)
Pihak luar (object lain) melihat sPink
sebagai sebuah “kotak hitam” yang
tidak terlihat isinya, kecuali fields dan
methods yang memang dideklarasikan
secara publik
Object lain tidak bisa
melihat apa yang dilakukan
sPink secara internal
Inheritance (Pewarisan Sifat)
• Dalam dunia OO, beberapa object memiliki sifat/ciri yang mirip dengan yang
lain � sebuah kelas object dapat didefinisikan dari kelas yang lain
– Kemiripan ini membentuk hubungan sifat yang bersifat hirarkis
– “pesawat penyergap adalah sebuah pesawat terbang yang dilengkapi
dengan persenjataan dan dapat terbang melebihi kecepatan suara”
• “pesawat penyergap” memiliki ciri yang sama dengan “pesawat
terbang” � “pesawat penyergap” mewarisi sifat “pesawat terbang”
• “pesawat penyergap” memiliki ciri yang lebih khusus dibandingkan
“pesawat terbang” � “pesawat penyergap” adalah subclass dari
“pesawat terbang”
– Dalam OOP, hubungan inheritance (pewarisan sifat) ini
diimplementasikan melalui definisi kelas: sebuah kelas dapat
didefinisikan dari kelas yang lain
10
Inheritance
“bentuk”
poligon ellips
lingkaran
persegipanjang
segitiga
bujursangkar
Inheritance• Dalam pohon hirarki inheritance, sebuah subclass
mewujudkan abstraksi yang lebih spesifik dari
superclassnya: subclass = superclass + (fitur-fitur baru)
– Subclass dapat menambahkan fields dan methods baru
– Subclass dapat mengambil alih (override) method milik
superclass dan mengubah implementasi method tersebut
• Manfaat inheritance:
– Pemanfaatan kembali (reuse) kelas
– Menyediakan model yang bersifat generik (abstract class);
implementasi spesifiknya bisa dilakukan kemudian (mungkin
oleh pemrogram yang berbeda)
11
Polymorphism
• Poly: banyak; morphism: bentuk � sebuah fitur
(generik) bisa diimplementasikan dengan berbagai cara
hewan
anjing“menggonggong”
kucing“mengeong”
kuda“meringkik”
“bersuara”