Pengant ar Pemrograman
Berorient asi Obj ek
Berorient asi Obj ek
-STRUKTURDATA-Muhammad Riza Hilmi, ST.
Pengant ar (1)
• Pem rogram an Terstruktur adalah suatu aktifitas pem rogram an den gan m em perhatikan urutan lan gkah-lan gkah perin tah secara sistem atis,
logis, dan tersusun berdasarkan algoritm a yan g sederhan a dan m udah dipaham i.
sederhan a dan m udah dipaham i.
• Pem rogram an Berorien tasi Objek (In ggris:
object-oriented program m in g disin gkat OOP)
m erupakan paradigm a pem rogram an yan g
berorien tasikan kepada objek, jadi sem ua data dan fun gsi di dalam paradigm a in i dibun gkus dalam kelas-kelas atau objek-objek.
Pengant ar (2)
• Perbedaan keduan ya adalah pada pem rogram an berorien tasi objek setiap objek dapat m en erim a pesan , m em proses data, dan m en girim pesan ke objek lain n ya.
• Sedan gkan un tuk pem rogram an terstruktur
• Sedan gkan un tuk pem rogram an terstruktur adalah sebuah cara pem rosesan data yan g
terstruktur (sistem atis) dalam an alisa, cara dan pen ulisan pem rogram an .
• Pem rogram an terstruktur un ggul dalam m elakukan pem rogram an sederhan a karen a lebih efisien dan lebih m udah dalam hal perawatann ya.
• Sem en tara itu pem rogram an berorien tasi objek m em liki beberapa keun tun gan seperti :
Main ten an ce, program lebih m udah dibaca dan
Pengant ar (3)
Main ten an ce, program lebih m udah dibaca dan dipaham i, dan pem rogram an berorien tasi obyek m en gon trol kerum itan program han ya den gan m en gijin kan rin cian yan g dibutuhkan un tuk program m er.
Pen gubahan program (berupa pen am bahan atau pen ghapusan fitur terten tu) disesuaikan den gan keperluan berdasarkan objekn ya.
Apa it u OOP?
• Paradigm a pem rogram an yan g m em an dan g sistem yan g akan diban gun berdasarkan
objek objek yan g terlibat dan in teraksin ya dalam sistem .
• Sistem diban gun den gan m em buat objek objek
• Sistem diban gun den gan m em buat objek objek dan m en gin teraksikan n ya un tuk m en yelesaikan suatu pekerjaan .
• Fun gsi dan data m en jadi satu kesatuan yan g disebut sebagai Ob je ct
• Program adalah seran gkaian object yan g
Pemrograman Berorient asi Obj ek
• OOP berputar pada kon sep dari obyek yan g m erupakan elem en dasar dari program .
• Ilustrasin ya adalah
Objek m obil m em pun yai atribut tipe tran sm isi, warn a dan m an ufaktur, m obil juga m em pun yai tin gkah laku berbelok, m en gerem dan berakselerasi.
Cara yan g sam a pula kita dapat m en defin isikan perbedaan sifat dan tin gkah laku dari sin ga.
Cara yan g sam a pula kita dapat m en defin isikan perbedaan sifat dan tin gkah laku dari sin ga.
Pada peran gkat lun ak, m en ggun akan atribut sebagai d a ta dan tin gkah laku sebagai m e th o d .
Class
• Kum pulan atas defin isi data dan fun gsi-fun gsi dalam suatu un it un tuk suatu tujuan terten tu.
Sebagai con toh 'class of dog' adalah suatu un it yan g terdiri atas defin isi-defin isi data dan fun gsi-fun gsi yan g m en un juk pada berbagai m acam
perilaku/ turun an dari an jin g.
• Class adalah suatu struktur dalam program yan g
• Class adalah suatu struktur dalam program yan g berisi satu atau beberapa m etode (dapat berupa fun gsi dan / atau prosedur) dan atribut (dapat berupa data ataupun variabel yan g akan
dipoerasikan dalam m etode).
• Den gan dem ikian atribut m erupakan an ggota kelas yan g bersifat statis, sedan gkan m etode m erupakan an ggota kelas yan g bersifat din am is.
Obj ect
• Setiap obyek diban gun dari sekum pulan data
(atribut) yan g disebut variabel un tuk m en jabarkan karakteristik khusus dari obyek, dan juga terdiri dari sekum pulan m ethod yan g m en jabarkan
tin gkah laku dari obyek.
• Bisa dikatakan bahwa obyek adalah sebuah
peran gkat lun ak yan g berisi sekum pulan variabel
• Bisa dikatakan bahwa obyek adalah sebuah
peran gkat lun ak yan g berisi sekum pulan variabel dan m ethod yg berhubun gan .
• Sebuah obyek adalah sebuah in stan ce (keturun an ) dari class.
Perbedaan Class dan Obj ect
• Misal, kita m em iliki sebuah class m obil dim an a dapat digun akan un tuk m edefin isikan beberapa obyek m obil. Pada tabel dibawah, m obil A dan m obil B adalah obyek dari class m obil. Class
m em iliki field n om or, plat, warn a, m an ufaktur dan kecepatan yan g diisi den gan n ilai pada obyek m obil A dan m obil B. Mobil juga dapat berakselerasi, berbelok dan m elakukan rem .
• Ketika diin isialisi, setiap obyek m en dapat satu set variabel yan g baru. Bagaim an apun , im p lem en tasi dari m ethod dibagi dian tara objek pada class yan g sam a. Class m en yediakan keun tun gan dari reusability . Program m er peran gkat lun ak dapat m en ggun akan sebuah kelas beberapa kali un tuk m em buat ban yak objek.
Met odologi PBO
• Terdapat 3 (tiga) m etodologi dasar PBO yaitu : 1. Pem odulan / pen gkapsulan (en capsulation )
2. Pen urun an / pewarisan (In heritan ce) 3. Polim orfism e (Polim orphism )
Pemodulan/ pengkapsulan
(encapsulat ion)
• Pem odulan adalah m etode un tuk m en ggabun gkan
data den gan fun gsi. Dalam kon sep in i data dan fun gsi digabun g m en jadi satu kesatuan yaitu ke la s .
• Kon sep in i erat kaitan n ya den gan kon sep
pen yem bun yian in form asi (in form ation hidin g).
• Co n to h : • Co n to h :
Mobil adalah sebuah kelas. Seoran g pen gen dara
m obil tidak harus tahu bagaim ana proses kerja m esin m obiln ya, pem bakaran bahan bakar, proses
pem in dahan tran sm isi gigi, dan seterusn ya. Yan g dia tahu adalah bahwa setir un tuk m en gen dalikan
jalan n ya m obil, pedal gas un tuk m en am bah
kecepatan , pedal rem un tuk m en guran gi kecepatan , dan seterusn ya. Sin gkatn ya dia han ya tahu bahwa m obiln ya berjalan den gan baik.
Penurunan/ pewarisan (Inherit ance)
• Dari kon sep pen urun an in i suatu kelas bisa diturun kan m en jadi kelas baru yan g m asih m ewarisi sifat-sifat kelas oran gtuan ya.
• H al in i dapat dian alogikan den gan kelas
m an usia. Man usia m erupakan turun an dari m an usia. Man usia m erupakan turun an dari
oran g tuan ya dan sifat-sifat oran g tua diwarisi olehn ya.
• Bisa ditarik kesim pulan bahwa sem ua kelas di dun ia selalu m em iliki hirarki yan g
• Co n to h :
Dari kelas ken daraan berm otor dapat
diturun kan beberapa kelas baru, m isaln ya: sepeda m otor, sedan , pick-up, m in i-bus, dan ken daraan roda ban yak.
Penurunan/ pewarisan (Inherit ance)
• Con toh 2: kelas sepeda m otor m un gkin m asih dibagi lagi m en jadi dua kelas, yaitu sepeda m otor 2 tak dan 4 tak. Sepeda m otor 2 tak m un gkin m asih dibagi lagi m en urut pabrik pem buatn ya, seperti H on da, Suzuki, Yam aha, dan seterusn ya. Masin g-m asin g pabrik m un gkin m asih m em pun yai beberapa kelas turun an lagi, seperti H on da Astrea Star, H on da Astrea Gran d, dan seterusn ya.
Keunt ungan Pewarisan
• Subclass m en yediakan state/ behaviour yan g spesifik yan g m em bedakan den gan superclass.
• Mem un gkin kan program m er un tuk
m en ggun akan ulan g source code dari superclass yan g telah ada.
yan g telah ada.
• Program m er dapat m en defin isikan superclass khusus yan g bersifat gen erik, yan g disebut
abstract class, un tuk m en defin isikan class den gan tin gkah laku dan state secara secara um um .
Polimorfisme (Polimorphism)
• Polim orfism e berarti kelas-kelas yan g berbeda
tetapi berasal dari satu oran g tua dapat m em pun yai m etode yan g sam a tetapi cara pelaksan aan n ya
berbeda-beda. Atau den gan kata lain , suatu fun gsi akan m em iliki perilaku berbeda jika dilewatkan ke kelas yan g berbeda-beda.
kelas yan g berbeda-beda.
• Co n to h : kelas un tuk in put soun d system . Sebuah
tape recorder dan CD player m em iliki tom bol PLAY yan g berfun gsi un tuk m em ain kan m usik yan g
dikehen daki. Tape recorder m en gim plem en tasikan tom bol PLAY den gan m em baca isyarat-isyarat yan g terekam di pita m agn etis kaset, sedan gkan CD
player m en ggun akan sin ar laser un tuk m em baca bit-bit digital yan g terekam di perm ukaan CD.
Bahasa Pemrograman
Bahasa pem rogram an yan g m en dukun g OOP an tara lain : • Visual Foxpro
• J ava
• C++
• Pascal (bahasa pem rogram an ) • Visual Basic.NET • SIMULA • SIMULA • Sm alltalk • Ruby • Python • PH P • C# • Delphi • Eiffel • Perl • Adobe Flash AS 3.0
Cont oh dalam C++
# in clu d e < io s tre a m .h > co n s t in t b a ta s = 8 0 ; cla s s p e ga w a i / / ke la s in d u k { p riva te : ch a r n a m a [ ba ta s ] ; p u blic: vo id ge td a ta ( ) { co u t < < e n d l < < " In p u t N a m a : "; cin > > n a m a ; } vo id p u td a ta ( ) { co u t < < e n d l < < " N a m a : " < < n a m a ; } { co u t < < e n d l < < " N a m a : " < < n a m a ; } } ; cla s s m a n a je r : p u b lic p e ga w a i / / ke la s tu ru n a n { p riva te : ch a r b a gia n [ ba ta s ] ; d o u b le tu n ja n ga n ; p u b lic: vo id ge td a ta ( ){ p e ga w a i::ge td a ta ( ) ; co u t < < " In p u t B a gia n : “; cin > > b a gia n ; } vo id p u td a ta ( )
{ p e ga w a i::p u td a ta ( ) ; co u t < < "\ n B a gia n : "< < ba gia n ; } } ;