( MAKALAH ) Inheritance, Polymorphism, Enkapsulasi Mata Kuliah Object Oriented Programming (OOP) Dosen Pembina Agung Darmawan
Disusun oleh:
1. 2. 3. 4. 5.
Ahmad Zainuri Ulil Albab Moh. Sholahuddin
UNIVERSITAS ISLAM LAMONGAN FAKULTAS TEKNIK INFORMATIKA SEMESTER V KAMPUS PONDOK PESANTREN SUNAN DRAJAT BANJARWATI PACIRAN LAMONGAN 2009
A. Peng Pengen enal alan an B. Penge engerrtian tian OBJECT ORIENTED PROGRAMMING •
Object -Oriented Programming (OOP) OOP) adal adalah ah sebu sebuah ah pend pendek ekat atan an untu untuk k peng pengem emba bang ngan an /
development suatu software dimana dalam struktur software tersebut didasarkan kepada interaksi object dalam penyelesaian suatu proses/tugas. Interaksi tersebut mengambil form dari pesan-pesan dan mengirimkannya kembali antar object tersebut. Object akan merespon pesan tersebut menjadi sebu sebuah ah tinda tindaka kan n /act /actio ion n atau atau meto metode. de. Baha Bahasa sa pemr pemrogr ogram aman an berb berbas asis is objec objectt meny menyed edia iakan kan mekanisme untuk bekerja dengan:
kelas dan object
methods
inheritance
polymorphism
reusability
programs terdiri terdiri dari objects yang berinteraksi berinteraksi satu sama lainnya lainnya untuk menyelesaikan menyelesaikan Object-oriented programs sebuah sebuah tugas. tugas. Sepert Sepertii dunia dunia nyata, nyata, users users dari dari softwa software re progra programs ms diliba dilibatka tkan n dari dari logika logika proses proses untuk untuk menyelesaikan tugas. Contoh, ketika kamu mencetak sebuah halaman diword processor, kamu berarti melakukan melakukan inisiali inisialisasi sasi tindakan dengan mengklik mengklik tombol printer. printer. Kemudian Kemudian kamu hanya menunggu menunggu respon respon apakah apakah job terseb tersebut ut sukses sukses atau atau gagal, gagal, sedang sedangkan kan proses proses terjad terjadii intern internal al tanpa tanpa kita kita ketahu ketahui. i. Tentunya setelah kamu menekan tombol printer, maka secara simultan object tombol tersebut berinteraksi dengan object printer untuk menyelesaikan job tersebut. Mengapa menggunakan OOP?
Mengapa OOP dibangun dalam sebuah paradigma yang luas untuk menyelesaikan masalah bisnis? Bahasa prosedural mengatur program dalam mode barisan linier yang bekerja dari atas ke bawah. Dengan kata kata lain lain,, progr program am adal adalah ah kump kumpul ulan an dari dari tahap tahapan an yang yang dija dijala lanka nkan n sete setela lah h yang yang lain lain berj berjal alan an.. Programming tipe ini bekerja dengan baik untuk program kecil yang berisi code relative sedikit, tetapi
pada saat program menjadi besar, mereka cenderung cenderung susah untuk di-manage di-manage dan di-debug di-debug . Dalam usaha untuk me-manage me-manage program, struktur programming diperkenalkan cara untuk mem-break mem-break down code-code tersebut melalui functions melalui functions dan procedures dan procedures.. Ini adalah sebuah langkah perbaikan, namun pada saat program dijalankan dalam sebuah fungsi bisnis yang yang komp komple leks ks dan dan beri berint nter erak aksi si deng dengan an sist sistem em lain lain,, maka maka kele kelema maha han n dari dari stru strukt ktur ur meto metodo dolo logi gi programming muncul kepermukaan meliputi:
1. Programs menjadi lebih susah untuk dimaintain. 2. Fungsi yang tersedia, susah untuk diubah tanpa harus mempengaruhi fungsi sistem secara keseluruhan. 3. Programming tidak baik untuk team development. Programmers harus mengetahui setiap aspek bagaimana program itu bekerja dan tidak menyebabkan terisolasi usaha mereka atas aspek yang lain dari sistem. 4. Butuh usaha yang keras untuk menterjemahkan menterjemahkan Business Models dalam dalam programming models. models. dll Karakteristik OOP
Dalam section ini, kita akan melihat beberapa konsep dasar dan term-term yang umum untuk seluruh bahasa OOP. Objects
Jika kita pikir maka kita sekarang hidup dalam sebuah dunia object -oriented. Kamu adalah object. Kamu berinteraksi berinteraksi dengan object lain. lain. Untuk Untuk menuli menuliss tugas tugas ini kami kami berint berintera eraksi ksi dengan dengan object komputer. Ketika saya bangun pagi, saya merespon pesan suara object alarm jam. Faktanya, kamu adalah object dengan data-data data-data seperti seperti tinggi tinggi dan warna rambut. rambut. Kamu mempunyai mempunyai metode-metode metode-metode yang kamu
akan lakukan, seperti makan dan berjalan. Jadi, apa itu objects? Dalam term OOP, object adalah sebuah structure yang menggabungkan data dan pro prose sedur dur untu untuk k beker bekerja ja bers bersam amaa-sa sama ma.. Cont Contoh, oh, jika jika kamu kamu tert tertar arik ik dala dalam m pela pelaca caka kan n data data yang yang dihubungkan dengan produk, kamu akan menciptakan sebuah object produk yang bertanggung jawab untuk me-maintenance me-maintenance dan bekerja dengan data yang bersinggungan dengan produk. Jika kamu ingin kemampuan mencetak dalam aplikasi kamu, kamu harus bekerja dengan sebuah object printer yang bertanggung jawab untuk data serta metode yang digunakan untuk berinteraksi dengan printermu. Abstraction
Ketika kamu berinteraksi dengan object-object di dunia ini, kamu sering hanya konsentrasi dengan sebuah bagian dari propertiesnya. Tanpa kemampuan untuk mensarikan/abstract atau menyaring untuk dibuang properties object yang asing / tidak ada hubungannya, maka kamu akan menemukan kesulitan abstraction, ketika 2 untuk memproses informasi yang kebanyakan membombarding kamu. Sebagai hasil abstraction, orang berbeda berinteraksi dengan object yang sama, mereka sering sering setuju setuju dengan bagian yang berbeda berbeda atas atribut. Ketika kami mengendarai mobil, kami perlu tahu kecepatan serta tujuan yang akan dicapai. Karena mobil itu otomatis, maka kami tidak perlu tahu berapa RPMs dari mesinnya, jadi kami akan membuang informasi ini. Tapi informasi ini sangat diperlukan oleh mekanik atau pembalap.
Keti Ketika ka memb membang angun un obje object ctss dalam dalam apli aplika kasi si OOP, OOP, adal adalah ah pent pentin ing g untu untuk k mengg menggab abun ungka gkan n konse konsep p abstraction ini. Jika kamu membangun aplikasi shipping aplikasi shipping , kamu harus membangun object produk dengan atribut seperti ukuran dan berat. Warna adalah contoh informasi yang tidak ada hubungannya dan harus dibuang dibuang.. Tetapi Tetapi ketika ketika kamu kamu membang membangun un order-entry order-entry applicatio application n, warna menjadi penting dan harus termasuk atribut object produk. Encapsulation
Ciri penting lainnya dari OOP adalah encapsulation. encapsulation. Encapsulation adalah sebuah proses dimana hidden. Jika kamu ingin mendapat data, kamu tidak ada akses langsung ke data yang diberikan, bahkan hidden. harus berinteraksi dengan object yang bertanggung jawab atas dara tersebut. Dalam contoh inventory, jika kita ingin melihat atau mengupdate informasi atas produk, kita seharusnya bekerja melalui object produk. Untuk membaca data, kita mengirimkan pesan ke object produk, kemudian object produk akan membaca pesan dan mengirim pesan balik ke kamu. Object produk mendefinisikan bahwa operasi dapat dilakukan pada data produk. Jika kamu mengirim
pesan untuk memodifikasi data dan jika object produk menentukan bahwa permintaan itu valid maka permintaan tersebut akan dilakukan dan akan mengirimkan pesan balik bersama hasilnya. Pikirkan mengenai Human Resource Department (HRD), yang meng-encapsulasi informasi mengenai karyawan. karyawan. Mereka menentukan menentukan bagaimana bagaimana data ini dapat digunakan da dimanipula dimanipulasi. si. Setiap Setiap permintaan permintaan data karyawan atau permintaan untuk mengupdate datanya harus dijalankan melalui mereka. Contoh lain, network security. Setiap permintaan informasi security atau perubahan kebijakan security harus dilakukan melalui network administrator. Data security di-encapsulate dari user network. Dengan melakukan encapsulasi pada data, berarti kamu membuat data dari sistemmu lebih secure dan terpercaya. Karena kamu mengetahui bagaimana data diakses dan operasi apa yang sedang berjalan pada data. data. Hal ini membuat membuat mainte maintenanc nancee progra program m menjad menjadii lebih lebih mudah. mudah. Kamu Kamu juga juga dapat dapat memodi memodifi fikas kasii metode yang digunakan untuk kerja pada data, dan jika kamu tidak merubah bagaimana metode itu diminta dan tipe response dikirim balik, maka kamu tidak dapat merubah object lain dengan menggunakan metode tersebut. Pikirkan ketika kamu mengirim surat melalui pos. Kamu membuat permintaan ke kantor pos agar mengantar surat, dan bagaimana kantor pos menyelesaikanny menyelesaikannyaa kita tidak perlu tahu. Jika ada perubahan rute yang digunakan, maka hal itu tidak mempengaruhi keinginan untuk kirim surat lewat kantor pos. Kamu tidak perlu tahu prosedur internal yang digunakan oleh kantor pos untuk mengantar surat. Polymorphism
Polymorphisms Polymorphisms adalah kemampuan 2 buah object yang berbeda untuk merespon pesan permintaan yang yang sama sama dala dalam m suat suatu u cara cara yang yang unik. unik. Conto Contoh, h, saya saya mela melati tih h anji anjing ng saya saya denga dengan n peri perint ntah ah untu untuk k menggonggong dan juga saya melatih burung untuk merespon perintah saya untuk berkicau. Saya lakukan
latihan untuk merespon kepada mereka dengan perintah lisan. Melalui polymorphism saya tahu bahwa anjing dan burung akan merespon dengan gonggongan atau kicauan. Bagaimana hal ini berhubungan dengan OOP? Kamu dapat membuat objects yang dapat merespon pesan yang sama dalam implementasi yang unik. Contohnya, kamu dapat mengirim pesan print ke object printer yang akan mencetak pada printer, dan kamu juga dapat mengirim pesan yang sama ke object screen yang akan menuliskan pada screen monitor. Dalam OOP, kamu menerapkan tipe polymorphism melalui proses yang disebut disebut overloading . Kamu dapat mengimplementasikan metode yang berbeda pada sebuah object yang mempunyai nama yang sama. Inheritance
Banyak objects diklasifikasikan menurut hirarki. Contoh, kamu dapat mengklasifikasikan sebuah mobil yang mempunyai karakteristik umumnya mobil, seperti mempunyai ban, mesin, serta body. Keturunan berik berikutn utnya ya diklas diklasifi ifikas kasikan ikan dengan dengan atribu atributt umum umum sepert sepertii ukuran, ukuran, jumlah jumlah roda, roda, isi silind silinder er dll atau atau mengklasifikasikan mereka atas dasar daya angkutnya. Contoh, ada kendaraan komersial atau kendaraan pri priba badi di,, ada ada truk truk atau atau mobi mobill penum penumpan pang. g. Kamu Kamu mengg menggun unaka akan n inheritance dala dalam m OOP OOP untu untuk k mengkl mengklasi asifik fikasi asikan kan object objectss dalam dalam progra program m sesuai sesuai karakt karakteri eristi stik k umum umum dan fungsi fungsinya nya.. Hal ini akan akan membuat pekerjaan bersama object lebih mudah dan lebih intuitif. Hal ini juga membuat programming lebih mudah karena memungkinkan kita untuk mengkombinasikan karakteristik umum kedalam object parent
dan
mewariskan
karakteristik
ini
ke
child
object.
Aggregation
Aggregation adalah kondisi ketika object berisi gabungan dari object-object yang berbeda dan bekerja bersama. Contoh mesin pemotong rumput terdiri dari object roda, objects mesin, object pisau dll. Obje Object ct mesi mesinp npun un meru merupa paka kan n gabun gabungan gan dari dari berba berbagai gai obje object ct.. Kemam Kemampu puan an untuk untuk meng menggun gunak akan an aggregation dalam OOP adalah satu feature yang powerful yang memungkinkan model menjadi akurat. Konsep dari object oriented programming (OOP) adalah lebih dari sekedar sebuah konsep pemrograman, Object oriented oriented programmin programming g adalah cara berpikir berpikir tentang tentang aplikasi aplikasi yang mempelajari mempelajari untuk berpikir bahwa aplikasi aplikasi bukan sekedar prosedur melainkan melainkan sebagai object dan real entity. entity. Object yang dimaksud disini memiliki pengertian suatu modul yang mengkombinasikan antara data dan kode program yang bekerja sama dalam program dengan melewatkan proses satu sama lain. Jadi object oriented programming merupa merupakan kan cara cara yang yang paling paling efisie efisien n untuk untuk menuli menuliss progra program m komput komputer er yang yang sangat sangat mudah mudah untuk untuk di kombinasikan dan untuk dipergunakan kembali. Object oriented programming lebih memfokuskan kepada manipulasi object. Kenapa seorang programmer harus mempelajari mempelajari object oriented oriented programmin programming g bahkan seorang programmer programmer yang tidak pernah bekerja dengan object oriented programing programing pun harus mempelajari mempelajarinya nya juga. Hal ini dikarenakan dikarenakan pada suatu hari nanti semua bahasa pemrograman akan menambahkan kemampuan object oriented programming pada
bahasanya. Object oriented programming yang paling populer adalah java dan C++, tetapi visual basic pun sudah ikut menambahakan kemampuan ini sejak meluncurkan VB 4.0. Pada kesempatan kali ini kita hanya hanya akan akan membah membahas as tentan tentang g visual visual basic basic dan C++ saja. saja. Sesuai Sesuai dengan dengan namany namanyaa object object orient oriented ed programming maka konsep object merupakan jantung dari object oriented programming.