Object OrientedProgramming Pemrograman Visual (TH22012 ) by Kartika Firdausy 081.328.718.768 kartikaf@indosat.net.id kartika@ee.uad.ac.id 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 satu template banyak instance (wujud nyata) 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; public SegiEmpat(string w, int p, int l) { panjang = p; lebar = l; warna = w; public setwarna (string w) { warna = w; field, menunjukkan atribut/property 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 disini dimaksudkan agar dapat diketahui pesan apa yang dapat dikirimkan terhadap object tersebut. dengan mengetahui tipe suatu object, dapat dipanggil fungsi yang terdapat didalamnya 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 subclassdari 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 segitiga persegi panjang lingkaran 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