Sunday, April 28, 2013

Pemrograman Berorientasi Objek



Pemrograman  Berorientasi Objek 



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

Contact

Talk to us

Lorem ipsum dolor sit amet, consectetur adipisicing elit. Dolores iusto fugit esse soluta quae debitis quibusdam harum voluptatem, maxime, aliquam sequi. Tempora ipsum magni unde velit corporis fuga, necessitatibus blanditiis.

Address:

9983 City name, Street name, 232 Apartment C

Work Time:

Monday - Friday from 9am to 5pm

Phone:

595 12 34 567

Followers

I'am at Malang University

free counters

Chatroom

Clock