Pemrograman berorientasi objek
15.3. Pemrograman berorientasi objek
Objek adalah kumpulan variabel dan method (fungsi) yang saling berkaitan. Mungkin kita pernah menggunakan struct dalam C atau record dalam Pascal/Delphi? Dalam struct dan record, kita bisa mengumpulkan tipe-tipe variabel yang berlainan. Nah, objek adalah perkembangan dari struct. Dalam objek, kita bisa mengumpulkan variabel-2 dengan tipe yang boleh berbeda-2 dan fungsi-2 yang disebut method.
Objek sebenarnya meniru konsep alam. Ilustrasinya seperti ini. Sebutlah suatu objek, misalnya anjing. Anjing memiliki kondisi: warna, tinggi, lapar, sakit, dll. Selain itu anjing juga memiliki hal-hal yang biasa dilakukan, seperti: menggonggong, menggigit, goyang
ekor, dan lain-lain. Jadi kondisi pada alam (misal anjing) ditiru dengan Variabel sedangkan hal-hal yang biasa dilakukan ditiru dengan Method. penggabungan antara Variabel dan Method itulah yang disebut Enkapsulasi.
Hal penting berikutnya dalam OOP adalah Message. Antara objek satu dengan objek yang lain berkomunikasi melalui Message. Ketika objek A ingin objek B melakukan sesuatu, maka objek A mengirim Message ke objek B.
Contoh: Misalnya objek A adalah ICT. Objek
B adalah Sepeda.
Jika ICT ingin memindahkan gigi sepedanya ke gigi 5, maka ICT akan mengirim Message ke Sepeda
Pemrograman Berorientasi Objek Bahasa Pemrorgraman
2008 | Direktorat Pembinaan SMK
diketahui sepeda memiliki kemampuan/Method pindahGigi) berbunyi pindahGigi(5). Lengkapnya dapat ditulis: Sepeda.pindahGigi(5). Message itu akan dilaksanakan oleh Sepeda. Kemampuan pindahGigi memerlukan informasi gigi yang diinginkan, dalam hal ini 5. Maka sekarang Variabel (nantinya kita sebut atribut) gigi bernilai 5. Bicara tentang Class, kita bayangkan dalam contoh sebelumnya bahwa Sepeda milik ICT adalah sepeda gunung (kita sebut SepedaGunung). Tentunya selain SepedaGunung terdapat sepeda lain seperti SepedaOnta, SepedaTandem, dll. Tapi yang jelas, jenis-jenis tadi termasuk Sepeda.
Jadi Sepeda Gunung adalah Instance dari Sepeda. SepedaGunung memiliki atribut- atribut(seperti gigi, roda, panjang, pedal, dan lain-lain) juga kemampuan(seperti pindahGigi(), belok(), dll) Sepeda. Ada perbedaan antara Object dan Class.
Class adalah blue print atau rancangan dari Object. Jadi dengan satu Class, kita dapat membuat berapapun Object. Inheritance adalah pewarisan sifat. Sebuah Subclass akan mewarisi sifat dari Superclass- nya. Dalam contoh di atas, Sepeda Gunung akan memiliki atribut gigi, roda dan panjang dan juga kemampuannya yaitu pindah Gigi dan belok. Tetapi Subclass tidak harus hanya memiliki sifat dan kemampuan yang sama persis dengan Superclassnya, tetapi biasanya ditambahkan sifat dan kemampuan lain yang membedakannya dengan Subclass lain dengan Superclass yang sama. Itulah yang membuat SepedaGunung dan SepedaOnta berbeda.
Subclass juga dapat melakukan Override terhadap sifat dan kemampuan warisan Superclassnya. Misalnya yang dilakukan oleh SepedaTandem. SepedaTandem memiliki lebih dari dua roda dan juga pedal sehingga perlu memiliki kemampuan untuk mengaturnya. Sehingga suatu kemampuan warisan dari class Sepeda dapat diganti atau ditambahkan.
Interface membuat satu class dapat berinteraksi dengan class lain yang benar-benar berbeda. Misalnya dalam Show Room yang menjual Mobil, Motor juga Sepeda. Tentu saja ManajerShowRoom harus bisa mengatur sepeda-sepeda bersama dengan Mobil-2 dan Motor-2. Masalahnya adalah perbedaan class yang sangat mencolok. Interface mengatasinya dengan cara: Mencari persamaan antara class-2
yang berbeda tanpa memaksa class tersebut saling berhubungan.
Membuat method yang ingin diterapkan pada class-class. Istilah-istilah yang digunakan dalam pemrograman berorientasi objek Class adalah blueprint atau
prototype dari object-objec tertentu yang memiliki kesamaan variable dan method.
Object atau insance of class merupakan software yang mengemas variable-variable dan methodmethod menjadi satu kesatuan.
Attribute adalah suatu bentuk karakteristik atau status dari suatu object.
Method atau behavior dari object adalah action yang bisa di kerjakan oleh suatu object
Bahasa Pemrograman Pemrograman Berorientasi Objek
Constructor merupakan method mempunyai sifat pemisahan data khusus yang berfungsi untuk dengan kode yang mengolahnya. inisialisi atau menciptakan suatu Pemrograman Berorientasi Objek object dari class
(PBO) adalah metode pemrograman yang meniru cara kita
Pemrograman Berorientasi memperlakukan sesuatu (benda). Objek sebenarnya bukanlah bahasa
Dalam pemrograman pemrograman baru, tetapi jalan baru
berorientasi obyek, class merupakan untuk berpikir dan merancang sebuah design, template, atau blue- aplikasi yang dapat membantu print. Dari suatu class dapat dibuat memecahkan suatu persoalan banyak objek/instance. Analoginya mengenai pengembangan perangkat
adalah seperti ini, bayangkan jika kita lunak. Pemrograman berorientasi seorang arsitek, sebelum objek disusun dan dipahami oleh membangun rumah tentunya akan ilmuwan yang memkitang dunia merancang dulu di kertas, jumlah dan sebagai populasi objek yang letak pintu, jendela, dan semuanya, berinteraksi antara satu yang satu itulah class. Kemudian dari gambar dengan objek yang lain.
rumah tersebut kita dapat Prosedur yang digunakan dalam
membangun banyak rumah sesuai objek dipkitang sebagai kepentingan
rancangan yang sudah dibuat. kedua karena tergantung pada objek
Masing-masing rumah jadi itu sendiri. Tentunya hal tersebut tersebut adalah yang disebut dengan berbeda dengan pemrograman objek/instance. terstruktur. Pemrograman terstruktur
The first instance
Class
Desain Template
The second instance
Blue print
n ...... instance
Gambar 15.1. Class Dalam Pemrograman Berorientasi Obyek
Ada empat ciri-ciri atau karakteristik komputer kita harus menentukan ciri- bahasa Pemrograman Berorientasi
ciri / sifat-sifat yang penting yang Objek, antara lain:
perlu direpresentasikan ke dalam sistem komputer. Ciri-ciri yang dipilih
bergantung dari apa yang akan kita Untuk memproses sesuatu dari lakukan di dalam sistem tersebut dan dunia nyata dengan menggunakan tergantung dari sudut pkitang yang
15.3.1. Abstraksi
melihatnya. Misalnya pada sebuah 508
Direktorat Pembinaan SMK | 2008
Pemrograman Berorientasi Objek Bahasa Pemrorgraman
kasus untuk menentukan attribute suatu class mobil pada :
Tabel 15.1. Attribute suatu class mobil
Kantor Polisi
Bengkel Mobil
No mesin
No registrasi Pemilik
Pemilik
Waktu Ganti Oli
Besar Pajak
Deskripsi servis
merupakan interface (antar muka) Penggabungan data dan method
15.3.2. Enkapsulasi
pengendara dengan sistem transmisi ke dalam suatu class atau dengan sepeda motor. kata lain mengkombinasikan sebuah
struktur dengan fungsi yang
15.3.3. Pewarisan
memanipulasinya untuk membentuk warisan sifat dari class induk tipe data baru yaitu kelas (class).
kepada class anaknya atau
Enkapsulasi merupakan suatu mendefinisikan suatu kelas dan mekanisme untuk menyembunyikan kemudian menggunakannya untuk atau memproteksi suatu proses dari membangun hirarki kelas turunan, kemungkinan interferensi atau yang mana masing-masing turunan penyalahgunaan dari luar sistem dan
mewarisi semua akses kode maupun sekaligus menyederhanakan data kelas dasarnya. penggunaan sistem itu sendiri. Akses
Sebagai manusia kita ke internal sistem diatur sedemikian sebenarnya terbiasa untuk melihat rupa melalui seperangkat interface.
objek yang berada disekitar kita Contoh sebuah kasus yang ada
tersusun secara hierarki berdasarkan dilapangan misalnya pada sebuah classnya masing-masing. Dari sini sepeda motor, dimana pada sistem kemudian timbul suatu konsep pemindahan gigi transmisi, maka tentang pewarisan yang merupakan pengendara tidak perlu tahu detail suatu proses dimana suatu class dari bagaimana proses pemindahan diturunkan dari class lainnya gigi itu dilakukan oleh mesin, cukup
sehingga ia mendapatkkan ciri atau tahu bagaimana cara menekan gigi sifat dari class tersebut. Perhatikan transmisi itu. Pedal gigi transmisi contoh hirarki berikut ini: yang diinjak pengendara itu
2008 | Direktorat Pembinaan SMK
Bahasa Pemrograman Pemrograman Berorientasi Objek
Gambar 15.2. Hirarki Pewarisan
Dari hirarki diatas dapat dilihat dimiliki oleh class binatang, karena bahwa, semakin kebawah, class sebagai class turunannya, ia akan akan semakin bersifat spesifik. Class
mendapatkan karakteristik dari class mamalia memiliki seluruh sifat yang binatang secara otomatis. Demikian dimiliki oleh binatang, demikian juga dengan class anjing, kucing dan halnya juga Anjing, kucing dan monyet, hanya perlu mendefinisikan Monyet memiliki seluruh sifat yang karakteristik yang spesifik dimiliki diturunkan dari class mamalia. oleh classnya masing-masing. Dengan konsep ini, karakteristik yang
Dengan memanfaatkan konsep dimiliki oleh class binatang cukup pewarisan ini dalam pemrograman, didefinisikan didefinisikan dalam maka hanya perlu mendefinisikan class binatang saja.
karakteristik yang lebih umum akan
Class mamalia tidak perlu didapatkan dari class darimana ia mendefinisikan ulang apa yang telah
diturunkan.