Object Oriented Programming Pemrograman Visual (TH22012 ) by Kartika Firdausy 081.328.718.768
[email protected] [email protected] blog.uad.ac.id/kartikaf kartikaf.wordpress.com
Object Oriented Programming (OOP) membuat suatu program yang terdiri dari berbagai object yang saling berinteraksi
1
Object Oriented Programming (OOP)
Class pola / template (cetakan) yang menggambarkan kumpulan object yang mempunyai sifat / perilaku yang sama himpunan object sejenis
Object implementasi dari class
Class merupakan “cetakan” (template) untuk instance (wujud nyata) entitas-entitas yang direpresentasikannya – Sebuah kelas dapat melahirkan lebih dari satu instance banyak instance (wujud nyata) satu template
2
Analogi : pembangunan suatu gedung gambar desain gedung class dibuat gedung nyatanya implementasi gambar gedung object Dari suatu class dapat dibuat beberapa object yang sama.
Object Sebuah instance (perwujudan nyata) dari suatu kelas tertentu
public 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);
3
Definisi Kelas dan Object public class SegiEmpat { int panjang; int lebar; string warna;
field, menunjukkan atribut/property
public SegiEmpat(string w, int p, int l) { panjang = p; lebar = l; warna = w; }
}
public setWarna (string w) { warna = w; }
constructor, untuk menciptakan object (instance) baru dengan property tertentu methods atau member functions, mendeskripsikan behaviour atau aktivitas yang bisa dijalankan
SegiEmpat sPink = new SegiEmpat(“pink”, 20,10);
memanggil constructor untuk membentuk object baru
Objek = Data + Metode
– Data • analogikan sebagai variabel atau konstanta • karakteristik dari objek – Metode • function/procedure • aksi terhadap data
4
–
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.
5
– – – – – – –
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.
6
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
7
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
8
Enkapsulasi public class SegiEmpat { int panjang; int lebar; string warna; public SegiEmpat(string w, int p, int l) { panjang = p; lebar = l; warna = w; }
}
Pihak luar (object lain) melihat sPink sebagai sebuah “kotak hitam” yang tidak terlihat isinya, kecuali fields dan methods yang memang dideklarasikan secara publik
public setWarna (string w) { warna = w; }
SegiEmpat sPink = new SegiEmpat(“pink”, 20,10);
sPink
setWarna(string w)
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
9
Inheritance “bentuk”
poligon
ellips
persegi panjang lingkaran
segitiga bujur sangkar
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)
10
Polymorphism • Poly: banyak; morphism: bentuk sebuah fitur (generik) bisa diimplementasikan dengan berbagai cara hewan “bersuara”
anjing “menggonggong”
kucing “mengeong”
kuda “meringkik”
11