Pemrograman berorientasi objek (Inggris: object-oriented programming disingkat OOP) merupakan paradigma pemrograman yang berorientasikan kepada objek. Semua data dan fungsi di dalam paradigma ini dibungkus dalam kelas-kelas atau objek-objek.
PBO diciptakan karena masih dirasakan adanya keterbatasan pada bahasa pemrograman tradisional yang dikenal dengan istilah procedural language seperti C, Pascal dan yang sejenisnya.
Konsep PBO adalah bahwa semua pemecahan masalah dibagi ke dalam kelas (class). Dalam PBO data dan fungsi-fungsi yang akan mengoperasikan data digabungkan menjadi satu kesatuan yang bisa disebut sebagai kelas.
Dalam Pemrograman Berorientasi Objek setiap objek akan memiliki data (sifat, berupa variabel maupun konstanta) dan method (perilaku, atau kemampuan untuk melakukan sesuatu, berupa fungsi). Jadi, objek dapat di definisikan sebagai suatu entitas yang memiliki data dan method.
Pemrograman orientasi-objek menekankan konsep berikut:
1. kelas (class) — kumpulan/kelompok data yang mempunyai ciri sama.
Sebagai contoh 'class Tumbuhan' adalah suatu unit yang berisikan tentang data-data (seperti jenis, bentuk, sifat dll) dari tumbuhan dan fungsi-fungsi yang menunjuk pada berbagai macam perilaku/turunan dari Tumbuhan.
Sebuah class adalah inti dalam pemrograman berorientasi object. Sebuah class sebaiknya dapat dikenali oleh seorang non-programmer, dan kode yang terdapat dalam sebuah class sebaiknya (relatif) bersifat mandiri dan independen (sebagaimana kode tersebut digunakan jika tidak menggunakan OOP).
2 Objek - Objek sendiri dapat dikatakan sebagai instance atau perwujudan dari class. misalnya class "tumbuhan" memiliki objek padi, mangga, kelapa dll.
3.Methode - sedangkan methode sendiri merupakan perilaku, atau kemampuan untuk melakukan sesuatu, berupa fungsi. mislanya class "tumbuhan" objek "padi" mempunyai methode "berfotosintesis", "berkembang biak" dll.
4.Atribut segala sesutu yang menjelaskan objek tersebut. misalnya objek "padi" meiliki Atribut "umur", "jenis daun", jenis akar" dll.
Dalam class atribut disebut sebagai variabel
5. Abstraksi - Abstraksi data adalah mengabstrakkan atau menyamarkan data-data yang ada.
Contoh : jam tangan
o Orang tidak perlu tahu bagaimana cara jam mengatur dan merubah detik kemenit, atau menit ke jam.
o Orang tidak perlu tahu siapa yang bertanggung jawab menggerakkan jarum jam.
6. ENCAPSULATION (Enkapslasi) (menyembunyikan cara kerja dan sistem)
Enkapsulasi adalah penyembunyian detail informasi dan fungsionalitas yang ada pada suatu kelas. Jadi kita tidak perlu mengetahui bagaimana detail dari kelas-kelas tersebut. Yang harus kita ketahui adalah bagaimana cara menggunakan kelas tersebut.
*Contoh: jam tangan
o Penting sekali untuk mengetahui waktu.
o Cara jam mencatat waktu dengan baik antara jam bertenaga baterai atau bertenaga gerak tidaklah penting kita ketahui.
* Dalam OOP, konsep enkapsulasi sebenarnya merupakan perluasan dari struktur dalam bahasa C.
7. INHERITANCE (Pewarisan)
Pewarisan merupakan sebuah Kelas (Class) yang mewarisi atau menurunkan Attribute (State) dan behaviour dari kelas lain yang sejenis.
Misalnya Kelas yang memberikan turunan Attribute (State) dan behaviour adalah Superkelas, untuk selanjutnya Kelas yang menjadi turunannya adalah Subkelas. Sehingga pada akhirnya Subkelas akan mewarisi apa yang dimiliki oleh Superkelas.
Pewarisan mempunyai beberapa manfaat diantaranya :
1. Superkelas yang sudah kita buat, dapat digunakan kembali dan membuat kelas-kelas baru berdasarkan Superkelas tersebut. Kelas-kelas baru tersebut tentu mempunyai karakteristik yang lebih khusus dari behaviour yang dimiliki oleh Superkelas.
2. Kita dapat membuat superkelas yang hanya mendefinisikan behaviour namun tidak memberi implementasi dari metode yang ada.
8. POLYMORPHISME
Polymorphisme adalah objek yang dapat memiliki berbagai bentuk yang berbeda, adalah konsep sederhana dalam bahasa pemrograman berorientasi objek yang berarti kemampuan dari suatu variabel referensi objek untuk memiliki aksi berbeda bila method yang sama dipanggil, dimana aksi method tergantung dari tipe objeknya.
Polymorphisme terdiri dari Overloading dan Overriding.
• Overloading adalah penggunaan satu nama untuk beberapa method yang berbeda parameter
• Overriding adalah terjadi ketika deklarasi method subclass sama dengan method dari superclass
Contoh dari PBO:
Manusia adalah suatu intentitas yang memiliki data-data (misalnya:nama, jenis kelamin, tinggi badan, berat badan, dll) dan juga method (misalnya: cara bicara, cara berjalan, cara marah, dll)
dari masalah diatas berarti yang merupakan class adalah Manusia, Atributnya adalah nama, jenis kelamin, tinggi badan, berat badan. Sedangkan Methodenya adalah cara bicara, cara berjalan, cara marah, dll.
Instance??
Di dalam pemrograman, suatu objek di abstraksikan ke dalam sebuah kelas. berarti objek tersebut itu masih belum menjadi suatu bentuk yang nyata/rill melainkan hanyalah sebuah abstrak, nah lalu bagaimana membuat suatu bentuk yang nyata dari objek yang abstrak tersebut? yaitu dengan membuat Instance, karena wujud nyata dari suatu kelas disebut instance. contoh: apabila terdapat kelas manusia, maka contoh instance -nya adalah: Aritha, Boy, Joko, Ezri, Marshanda dll.
misalnya kita membuat class "artis" yang mempunyai objek "Marshanda" agar mendapatkan objek yang rill, kita jadikan objek tersebut menjadi instance
misalnya pada java
Artis marshanda = new Artis();
beberapa keuntungan yg di dapat dari model Pemrograman Berorientasi Objek adalah:
- Objek-objeknya dapat digunakan ulang (reuseable) untuk program-program lain
- programnya lebih terstruktur dan lebih mudah untuk dikembangkan
- bersifat natural atau alami, karena perilaku dan sifat-sifat objek di dalam program akan disesuaikan dengan objek-objek nyata yang ada di alam sekitarnya
- Reusabilitas
- Pembangunan program lebih cepat
- Fleksibelitas lebih tinggi
- Ekstensibilitas
- Less Maintenance
Bahasa pemrograman yang mendukung OOP antara lain:
1. Visual Foxpro
2. Java
3. C++
4. Pascal (bahasa pemrograman)
5. Visual Basic.NET
6. SIMULA
7. Smalltalk
8. Ruby
9. Python
10. PHP
11. C#
12. Delphi
13. Eiffel
14. Perl
Referensi:
http://id.wikipedia.org/wiki/Pemrograman_berorientasi_objek
http://blogagusalim.blogspot.com/
http://anniepbo.wordpress.com/materi/
0 comments:
Post a Comment