1. Prinsip OOP
Prinsip utama OOP adalah memperlakukan masing-masing
bagian dari sebuah aplikasi sebagai object. Berbeda dengan Procedural
Programming, di mana sebuah aplikasi terdiri kumpulan function dan instruksi.
Masing-masing object pada OOP dapat menerima pesan, memproses data, dan
mengirim pesan pada object lainnya, serta dapat dilihat sebagai sebuah item
yang berdiri sendiri dengan tanggung jawab dan aturan tertentu. Pada sebuah
object, tidak perlu mengetahui bagaimana object itu bekerja. Kita hanya perlu
mengetahui apa yang dilakukan object tersebut. Terdapat banyak contoh untuk
menjelaskan konsep OOP, hal yang umum diberikan adalah contoh pada dunia nyata.
Misalnya sebuah mobil, seekor anjing, ataupun makhluk dan benda lain yang dapat
mewakili sebuah object.
Konsep Object Oriented sebenarnya bukanlah barang
baru dalam dunia bahasa pemrograman. Konsep ini sudah lama ada dimulai dari
bahasa pemrograman Small Talk, LISP, C ++, dan beberapa bahasa pemrograman
lainnya.
Pemrograman Object Oriented dimaksudkan adalah membuat
suatu program yang terdiri dari berbagai object yang saling berinteraksi (dalam
beberapa buku diartikan dengan bertukar pesan antar object). Kenapa kita
menggunakan pemrograman berbasis object, sementara kita masih bisa menggunakan
konsep pemrograman prosedural? Dalam membangun program yang masih sederhana
tentunya konsep object oriented ini akan terasa sangat menyusahkan, akan tetapi
ketika kita membuat sebuah program yang ruang lingkupnya luas konsep object
oriented akan terasa sangat membantu karena akan terasa lebih mudah untuk
mengorganisir program yang telah kita buat.
Secara
garis besar, suatu bahasa pemrograman dapat dikatakan sebagai bahasa pemrograman berorientasi objek (atau Object
Oriented Programming / OOP) apabila ia mendukung konsep abstraksi
(abstraction), enkapsulasi (encapsulation), polimorfisme (polymorphism), dan
pewarisan (inheritance). Selain konsep –
konsep ini, ada beberapa konsep fundamental lainnya, seperti kelas, objek, dan
message.
2.
Kelas
Kelas
mendefinisikan karakteristik – karakteristik
abstrak dari sesuatu (objek), termasuk
karakteristik dan perilaku (behavior) dari “sesuatu” itu sendiri. Kelas
dapat diilustrasikan sebagai sebuah
cetak biru (blueprint), prototipe, atau pabrik (factory) yang berfungsi
untuk menghasilkan objek – objek.
Bentuk
kelas yang paling sederhana diperlihatkan sebagai berikut:
3.
Objek
Dalam
terminology OOP, objek adalah instans (atau manifestasi) dari sebuah kelas.
Dengan demikian, dalam konteks desain, kita berbicara mengenai kelas, saat run
time, yang kita bicarakan adalah objek.
Baik
di dunia nyata maupun di dalam pemrograman, sebuah objek memiliki dua
karakteristik utama, yaitu state (status) dan behavior (perilaku). Sebagai
contoh, kucing memiliki state (nama, warna, dan sebagainya) dan behavior
(mengeong, melompat dan sebagainya).
4.
Field
Field
adalah variable yang didefinisikan di dalam kelas, dan disebut juga sebagai
member variable. Field dan juga member – member kelas lainnya dapat
dideklarasikan dengan level akses
tertentu. Berkaitan dengan level akses ini, ada beberapa jenis level dari yang
umum sampai yang restriktif.
Access
Modifier
|
Keterangan
|
Public
|
Untuk mendefinisikan tipe yang bisa di
akses oleh siapa saja
|
Friend
|
Untuk mendefinisikan tipe yang bisa di
akses dari current project, atau dari assembly di mana tipe tersebut di
deklarasikan
|
Protected
|
Mendefinisikan tipe yang hanya bisa di
akses oleh member – member kelas itu sendiri atau member kelas turunan
|
Protected Friend
|
Untuk mendefinisikan tipe yang bisa di
akses oleh member – member dalam satu assembly atau kelas turunannya
|
Private
|
Mendefinisikan tipe yang hanya bisa di
akses oleh member – member di mana tipe tersebut di deklarasikan
|
5.
Pewarisan
(Inheritance)
Istilah
inheritance (pewarisan) mengacu pada kemampuan dari sebuah kelas untuk mewarisi state dan behavior kelas lain.
Dengan demikian, atribut – atribut dan method - method kelas yang diwarisi
(superkelas) secara intrinsic menjadi bagian dari kelas yang mewarisinya (subkelas). Terlepas dari warisan
yang telah diperoleh, subkelas dapat menambahkan atau memodifikasi atribut - atribut
dan method-method superkelas.
Gambar.
Hubungan pewarisan
Konsep
inheritance melahirkan sejumlah pasangan istilah yang menggambarkan
hubungan antara dua kelas terkait, seperti
superkelas - subkelas, supertipe - subtipe, kelas dasar - kelas turunan,
ancestor - descendant, parent - heir, dan leluhur - turunan.
Dengan fitur ini maka
sebuah class dapat diturunkan dari class yang sudah ada. Class yang dijadikan
sebagai parent class biasanya disebut super class, dan class yang diturunkan
disebut child class / inherited class / sub kelas. Setelah sub class nya dibuat
maka semua fungsionalitas yang terdapat di dalam super classnya akan ikut
terwarisi juga. Artinya secara code kita tidak perlu lagi menambahkan fitur
yang sudah terdapat di super class nya, kecuali kalau kita mau extend
fungsionalitasnya. Di VB dan C# (.net platform) hanya bisa dilakukan single inheritance,
artinya sebuah sub class tidak dapat diturunkan lebih dari satu class. Yang
dapat melakukan multiple inheritance hanya C++.
6.
Kelas Abstrak
Kelas
abstrak (abstract class) adalah kelas yang mengandung konsep abstrak, dan tidak
akan pernah bisa di instansiasi. Kelas abstrak didefinisikan dengan tujuan
untuk digunakan dan diperluas oleh kelas
lain. Dengan demikian, kelas ini merupakan cikal bakal super kelas.
Kelas abstrak di VB.NET
didefinisikan dengan menggunakan keyword MustInherit. Keyword ini sekaligus
mengindikasikan bahwa kelas abstrak harus diperluas oleh kelas lainnya.
Gambar
Kelas abstrak buah
7.
Interface
Interface
merupakan suatu tipe abstrak yang mendefinisikan komunikasi antara dua entitas.
Interface merepresentasikan sebuah kontrak, di mana kelas yang
mengimplementasikan interface harus menerapkan tiap – tiap aspek interface
secara nyata sebagaimana yang telah didefinisikan.
Tujuan
utama penggunaan interface adalah memungkinkan kelas – kelas yang mirip
untuk memiliki behavior standar. Jadi,
interface memiliki sedikit kemiripan dengan kelas abstrak, di mana keduanya sama – sama didesain untuk
digunakan oleh kelas lain.
Di
balik beberapa persamaan antara interface dan kelas abstrak, terdapat perbedaan –perbedaan di antara
keduanya.
8.
Polimorfisme
(Polymorphism)
Polimorfisme
secara harfiah dapat diartikan banyak bentuk. Konsep ini memiliki arti kemampuan untuk mendefinisikan perilaku yang
berbeda Singkatnya, secara teknis,
method atau konstruktor dengan nama sama dapat memiliki perilaku berbeda
bergantung pada argument atau tipe objeknya.
Jadi, kata kunci untuk merepresentasikan konsep polimorfisme adalah satu nama, banyak bentuk.
Konsep polimorfisme
membentuk paradigma pemrograman
yang ampuh yang mampu
menyederhanakan definisi client dan secara dinamis mendukung pengubahan
keterhubungan antar objek saat runtime.
Kondisi
yang harus dipenuhi supaya Polimorfisme dapat di implementasikan adalah:
- Method yang dipanggil harus melalui variable dari basis class atau superclass.
- Method yang dipanggil harus juga menjadi method dari basis class.
- Signature method harus sama baik pada superclass maupun subclass.
- Method access atribut pada subclass tidak boleh lebih terbatas dari basis class
9. Overloading Method
Overloading method
adalah kemampuan untuk mendefinisikan beberapa method di sebuah kelas dengan
nama sama. Ini mengimplikasikan bahwa method yang di-overload harus memiliki
jumlah atau tipe argumen berbeda. Adapun jika jumlah dan tipe argumennya sama,
maka urutannya harus berbeda.
10.
Overriding Method
Pada hubungan
pewarisan, membawa secara intrinsik semua atribut dan method tidak selalu
dikehendaki. Adakalanya kita ingin memodifikasi perilaku dari superkelas.
Langkah ini kita lakukan dengan cara mengoverride method superkelas.
Subkelas dapat mengesampingkan method yang didefinisikan di superkelas
dengan menyediakan implementasi baru. Di VB.NET, implementasi overriding
memerlukan tahapan khusus.
Secara dasar, class turunan mendapatkan warisan method dari class induknya.Jika property atau
method yang di wariskan perlu untuk
berperilaku lain di dalam class turunan, maka property atau method itu bisa dioverride /ditulis ulang, yaitu,memberikan definisi
baru dari method tersebut di class turunan. Agar suatu method di class induk
dapat di override , maka perlu menggunakan kata kunci Overridable di
method class induk. Sedangkan untuk mendefinisikan ulang method tersebut, maka
menggunakan kata kunci Overrides di class turunan.
11. Encapsulation
Merupakan cara menyembunyikan suatu
proses dari sebuah system dalam rangka menyederhanakan pengaplikasian dari
system tersebut dan menghindari gangguan dari system tersebut.atau memastikan
pengguna sebuah objek tidak dapat mengganti keadaan dalam dari sebuah objek dengan
cara yang tidak layak; hanya metode dalam objek tersebut yang diberi ijin untuk
mengakses keadaannya. Setiap objek mengakses interface yang menyebutkan
bagaimana objek lainnya dapat berinteraksi dengannya. Objek lainnya tidak akan
mengetahui dan tergantung kepada representasi dalam objek tersebut.contohnya :
stang pada motor, tombol stater pada motor, Tombol ON/OFF pada remote TV.
12. Properties.
Property dapat
didefi nisikan untuk class, structure, dan interface. Umumnya property dapat
dibaca (readable) dan ditulis (writable), walaupun dapat juga
diperlakukan read-only atau write-only.
13. Methods.
Merupakan function atau subrutin yang
tersedia pada sebuah class, structure, interface, atau delegate. Pada sebuah
method terdapat parameter atau argumen yang dapat dikirimkan by value
atau by reference. Bagi programer Visual Basic 6.0 sudah tentu tidak
asing lagi dengan parameter by value maupun by reference yang biasa digunakan
dalam pembuatan function/procedure. By value berarti perubahan nilai pada
variabel parameter yang dikirimkan hanya akan berlaku di dalam function,
sementara by reference berarti perubahan nilai pada variabel di dalam function
akan tetap berlaku pada saat function tersebut selesai dieksekusi dan kembali
pada pemanggil. Dengan menggunakan keyword ByVal atau ByRef, Anda dapat
menentukan bagaimana parameter dikirimkan.
14. Events.
Pada Visual
Basic versi sebelumnya, Anda tentu telah mengenal event yang menimbulkan
istilah event-driven programming. Event merupakan sebuah function yang
dipanggil untuk merespon kejadian/event tertentu, seperti klik mouse, penekanan
tombol keyboard, perubahan nilai field pada database, dan lain-lain. Umumnya
event mengirimkan dua parameter, yaitu object yang mengindikasikan
sender/pengirim event, dan object yang menyediakan informasi pada event
tersebut.
15. Constructor & Destructor
Constructor
adalah function khusus yang
dipanggil secara otomatis ketika sebuah class dibuat. Dalam VB.Net, anda harus
menggunakan New( ) untuk
membuat constructor. Constructor sendiri
dapat di overload seperti halnya function. Destructor adalah function khusus yang dipanggil
secara otomatis ketika sebuah clas dihancurkan / selesai masa aktifnya. Dalam
VB.Net, anda harus menggunakan Finalize(
) untuk menciptakan Destructor.
0 komentar:
Post a Comment