Friday, October 2, 2009

Object Oriented Programming (OOP)

Object Oriented Programming


Apa itu Object Oriented Programming ?
OOP merupakan paradigma pemrograman yang berorientasikan kepada objek. Semua data dan fungsi di dalam paradigma ini dibungkus dalam class atau object. OOP mampu memberikan solusi kaidah pemrograman modern. Meskipun demikian, bukan berarti bahwa pemrograman prosedural sudah tidak layak lagi .

OOP diciptakan karena dirasakan masih adanya keterbatasan pada bahasa pemrograman tradisional. Konsep dari OOP sendiri adalah, semua pemecahan masalah dibagi ke dalam objek. Dalam OOP data dan fungsi-fungsi yang akan mengoperasikannya digabungkan menjadi satu kesatuan yang dapat disebut sebagai objek. Proses perancangan atau desain dalam suatu pemrograman merupakan proses yang tidak terpisah dari proses yang mendahului, yaitu analisis dan proses yang mengikutinya. Pembahasan mengenai orientasi objek tidak akan terlepas dari konsep objek seperti inheritance (penurunan sifat), encapsulation (pembungkusan) dan polymorphism. Konsep-konsep ini merupakan fundamental dalam orientasi objek yang perlu sekali dipahami serta digunakan dengan baik, dan menghindari penggunaannya yang tidak tepat.


Class dan Object
Dalam lingkungan program berorientasi objek, pemrogram mendefinisikan class secara statik. Pada saat run-time, class akan diinstantiasi menjadi objek. Ada pun objek yang merupakan instantiasi dari suatu class selalu dapat diacu melalui current objek, apa pun nama instant-nya.

Dapat didefinisikan bahwa class merupakan struktur data dari suatu objek, lebih jelasnya adalah sebuah bentuk dasar atau blueprint yang mendefinisikan variabel method umum pada semua objek dari beberapa macam. Objek sendiri adalah kumpulan variabel dan fungsi yang dihasilkan dari template khusus atau disebut class. objek adalah elemen pada saat run-time yang akan diciptakan, dimanipulasi, dan dihancurkan ketika eksekusi. Ada pun class merupakan definisi statik dari himpunan objek yang mungkin diciptakan sebagai instantiasi dari class. Sederhananya adalah kumpulan objek yang mempunyai atribut sama. Dengan demikian, pada saat run-time maka yang kita miliki adalah objek.

Atau lebih mudahnya, sebagai contoh : Dalam dunia makhluk hidup ada banyak jenis misalnya kucing, macan, manusia, dll. Anggaplah jenis makhluk hidup ini sebagai class. Maka misal kita ambil contoh manusia/orang, orang mempunyai properti nama, tempat tinggal, hobi, dst. Nah ini yang disebut dengan properties. Orang bisa melakukan kegiatan seperti berlari, berjalan, menulis, membaca, dan sebagainya. Ini yang disebut dengan method dalam satu object dalam paradigma pemrograman OOP.

Mengikuti analogi di atas, maka object dari class ORANG adalah Susan, Andi. Mereka adalah CONTOH dari class ORANG. Semua dari mereka adalah ORANG yang mempunyai nama, tempat tinggal, dst. Dan bisa berlari, membaca, menulis, dan sebagainya


Class biasanya dibuat seperti ini
Class nama_classnya{
//berisi sekumpulan fungsi,variabel dan
//statement-statement lainnya
}

Contoh :
class NamaClass {
public:
int atribut1;
int atribut2;
int operasi(){retun nilai_int}
};


Inheritance

Inheritance atau pewarisan adalah kalimat yang pasti ada di dalam pemerograman berorientasi objek disebut juga dengan istilah reusable. Ketika kita menggunakan kembali atau mengganti method dari class yang sudah ada, serta ketika menambahkan field instant dan method baru, maka pada saat itulah Anda bekerja dengan inheritance. Konsep ini merupakan konsep yang fundamental dalam orientasi objek dan harus digunakan dengan baik.

Misalkan kita akan membuat class yang lebih spesifik dari orang yaitu siswa/student. Maka class ini mempunyai properti tambahan sekolah tempat dia belajar. Akan tetapi, semua properti sebagai orang ada juga pada class siswa ini.

Encapsulation
Encapsulation adalah proses pengelompokan property dan method dengan memberikan hak akses kepada property dan method sehingga property hanya dapat di akses melalui method accessor dan tidak dapat di rubah tanpa melalui prosedur yang seharusnya yang diatur pada method mutator.

Dalam OOP Encapsulation di wujudkan dalam bentuk "class". Dalam sebuah class terdapat property dan method yang memiliki hak akses tertentu terhadap environment/lingkungan-nya, hak akses ini biasa di sebut Access Modifier, access modifier terdiri dari private, protected, dan public.
  • private
    memberikan hak akses hanya kepada anggota class tersebut untuk menggunakan dan/atau mengubah nilai dari property atau method tersebut.
  • protected
    memberikan hak akses kepada anggota class nya dan anggota class hasil inheritance (penurunan sifat) dari class tersebut.
  • public
    memberikan hak akses kepada property dan method agar dapat digunakan diluar class tersebut.
Contoh dalam hal ini, misal si Susan (suatu object) sedang menulis (method). Maka detail dari cara dia menulis (bagaimana otot tangan Susan bekerja untuk menulis, bagaimana sistem saraf pusat Susan memerintahkan untuk menulis) kita tidak perlu mengerti. Kita hanya melihat si Susan sedang menulis.

Polymorphism
Kemampuan sebuah variabel reference untuk merubah behavior sesuai dengan apa yang dipunyai object.

Polymorphism membuat objek-objek yang berasal dari subclass yang berbeda, diperlakukan sebagai objek-objek dari satu superclass. Hal ini terjadi ketika memilih method yang sesuai untuk diimplementasikan ke objek tertentu berdasarkan pada subclass yang memiliki method bersangkutan.

Misalkan kita punya satu class orang dan diturunkan menjadi dua class orang_perancis dan orang_inggris. Ketika orang inggris melakukan method berbicara maka yang dilakukan adalah berbicara dengan bahasa inggris, dan ketika orang perancis juga berbicaramaka dia akan menggunakan bahasa perancis. Keduanya melakukan aksi yang sama yaitu berbicara akan tetapi hasilnya lain.

No comments:

Post a Comment