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) 2 Object Oriented Programming membuat suatu program yang terdiri dari berbagai object yang saling berinteraksi 1 Object Oriented Programming (OOP) 3 4 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(wujudnyata) entitas-entitasyang direpresentasikannya Sebuah kelas dapat melahirkan lebih dari satu instance satu template banyak instance (wujud nyata) 1
pembangunan suatu gedung Analogi: gambar desain gedung class dibuat gedung nyatanya implementasi gambar gedung object Dari suatu class dapat dibuat beberapa object yang sama. 5 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); 6 Definisi Kelas dan Object 7 8 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); 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 Objek = Data + Metode Data analogikan sebagai variabel atau konstanta karakteristik dari objek Metode function/procedure aksi terhadap data 2
9 10 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. 11 12 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). 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. 3
13 14 Objek membungkus data dan fungsi bersama menjadi suatu unit dalam sebuah program objek merupakan dasar dari modularitas dan struktur dalam sebuah program berorientasi objek. Abstraksi: menjelaskan makna sebuah entitas secara cepat dan mudah Enkapsulasi: dapat menyembunyikan detil yang tidak perlu Modular: object adalahentitasyang independen 15 16 Contoh: abstraksi sepeda memilikiproperty punyaroda, punyarantai, 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 Enkapsulasimenyembunyikanproperty danbehaviourobject daripihakluar(object yang lain) object lain melihatobject ini sebagai black box saja Enkapsulasi memisahkan antara bagian publik(yang bisa dilihat olehpihakluar(object lain) danbagianprivat(internal object itu sendiri) dengan tegas fitur ini memberi keleluasaan/independensiuntukbekerjadenganaspekinternal tanpa harus bergantung pada aspek publik/eksternal 4
Enkapsulasi 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); Pihak luar (object lain) melihat spink sebagai sebuah kotak hitam yang tidak terlihat isinya, kecuali fields dan methods yang memang dideklarasikan secara publik spink Object lain tidak bisa melihat apa yang dilakukan spink secara internal setwarna(string w) 17 Inheritance (Pewarisan Sifat) DalamduniaOO, beberapaobject memilikisifat/ciriyang miripdenganyang 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 18 19 20 Inheritance segitiga poligon persegi panjang bujur sangkar bentuk ellips lingkaran Inheritance Dalampohonhirarkiinheritance, sebuahsubclass 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 Menyediakanmodel yang bersifatgenerik(abstract class); implementasi spesifiknya bisa dilakukan kemudian(mungkin oleh pemrogram yang berbeda) 5
Polymorphism 21 Poly: banyak; morphism: bentuk sebuah fitur (generik) bisa diimplementasikan dengan berbagai cara hewan bersuara anjing menggonggong kucing mengeong kuda meringkik 6