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.
Bandingkan dengan logika pemrograman terstruktur. Setiap objek dapat
menerima pesan, memproses data, dan mengirim pesan ke objek lainnya.
II Konsep Pemrograman Berorientasi Obyek
Hidup di dunia terdiri dari banyak objek. Objek ini berada disekitar, bisa dibuat, dipakai dalam bisnis dan dalam produk yang kita gunakan. Objek ini bisa dikategorikan, digambarkan, dimanipulasi dan dibuat. Oleh karena itu bukanlah suatu hal yang baru, bahwa pandangan yang berorientasi objek diusulkan untuk pengembangan perangkat lunak komputer.
II Konsep Pemrograman Berorientasi Obyek
Hidup di dunia terdiri dari banyak objek. Objek ini berada disekitar, bisa dibuat, dipakai dalam bisnis dan dalam produk yang kita gunakan. Objek ini bisa dikategorikan, digambarkan, dimanipulasi dan dibuat. Oleh karena itu bukanlah suatu hal yang baru, bahwa pandangan yang berorientasi objek diusulkan untuk pengembangan perangkat lunak komputer.
Pemrograman berorientasi objek
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. Bandingkan dengan logika pemrograman
terstruktur. Setiap objek dapat menerima pesan, memproses data, dan
mengirim pesan ke objek lainnya,
Model data berorientasi objek dikatakan dapat memberi fleksibilitas yang lebih, kemudahan mengubah program, dan digunakan luas dalam teknik piranti lunak skala besar. Lebih jauh lagi, pendukung OOP mengklaim bahwa OOP lebih mudah dipelajari bagi pemula dibanding dengan pendekatan sebelumnya, dan pendekatan OOP lebih mudah dikembangkan dan dirawat.
== Konsep dasar dari Pemrograman Berorientasi Objek Pemrograman orientasi-objek menekankan konsep berikut:
- Kelas — kumpulan atas definisi data dan fungsi-fungsi dalam suatu unit untuk suatu tujuan tertentu. Sebagai contoh 'class of dog' adalah suatu unit yang terdiri atas definisi-definisi data dan fungsi-fungsi yang menunjuk pada berbagai macam perilaku/turunan dari anjing. Sebuah class adalah dasar dari modularitas dan struktur dalam pemrograman berorientasi object. Sebuah class secara tipikal sebaiknya dapat dikenali oleh seorang non-programmer sekalipun terkait dengan domain permasalahan yang ada, dan kode yang terdapat dalam sebuah class sebaiknya (relatif) bersifat mandiri dan independen (sebagaimana kode tersebut digunakan jika tidak menggunakan OOP). Dengan modularitas, struktur dari sebuah program akan terkait dengan aspek-aspek dalam masalah yang akan diselesaikan melalui program tersebut. Cara seperti ini akan menyederhanakan pemetaan dari masalah ke sebuah program ataupun sebaliknya.
- Objek - membungkus data dan fungsi bersama menjadi suatu unit dalam sebuah program komputer; objek merupakan dasar dari modularitas dan struktur dalam sebuah program komputer berorientasi objek.
- Abstraksi - Kemampuan sebuah program untuk melewati aspek informasi yang diproses olehnya, yaitu kemampuan untuk memfokus pada inti. Setiap objek dalam sistem melayani sebagai model dari "pelaku" abstrak yang dapat melakukan kerja, laporan dan perubahan keadaannya, dan berkomunikasi dengan objek lainnya dalam sistem, tanpa mengungkapkan bagaimana kelebihan ini diterapkan. Proses, fungsi atau metode dapat juga dibuat abstrak, dan beberapa teknik digunakan untuk mengembangkan sebuah pengabstrakan.
- Enkapsulasi - Memastikan pengguna sebuah objek tidak dapat mengganti keadaan dalam dari sebuah objek dengan cara yang tidak layak; hanya metode dalam objek tersebut yang diberi izin 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.
- Polimorfisme melalui pengiriman pesan. Tidak bergantung kepada pemanggilan subrutin, bahasa orientasi objek dapat mengirim pesan; metode tertentu yang berhubungan dengan sebuah pengiriman pesan tergantung kepada objek tertentu di mana pesa tersebut dikirim. Contohnya, bila sebuah burung menerima pesan "gerak cepat", dia akan menggerakan sayapnya dan terbang. Bila seekor singa menerima pesan yang sama, dia akan menggerakkan kakinya dan berlari. Keduanya menjawab sebuah pesan yang sama, namun yang sesuai dengan kemampuan hewan tersebut. Ini disebut polimorfisme karena sebuah variabel tungal dalam program dapat memegang berbagai jenis objek yang berbeda selagi program berjalan, dan teks program yang sama dapat memanggil beberapa metode yang berbeda di saat yang berbeda dalam pemanggilan yang sama. Hal ini berlawanan dengan bahasa fungsional yang mencapai polimorfisme melalui penggunaan fungsi kelas-pertama.
- Dengan menggunakan OOP maka dalam melakukan pemecahan suatu masalah kita tidak melihat bagaimana cara menyelesaikan suatu masalah tersebut (terstruktur) tetapi objek-objek apa yang dapat melakukan pemecahan masalah tersebut. Sebagai contoh anggap kita memiliki sebuah departemen yang memiliki manager, sekretaris, petugas administrasi data dan lainnya. Misal manager tersebut ingin memperoleh data dari bag administrasi maka manager tersebut tidak harus mengambilnya langsung tetapi dapat menyuruh petugas bag administrasi untuk mengambilnya. Pada kasus tersebut seorang manager tidak harus mengetahui bagaimana cara mengambil data tersebut tetapi manager bisa mendapatkan data tersebut melalui objek petugas adminiistrasi. Jadi untuk menyelesaikan suatu masalah dengan kolaborasi antar objek-objek yang ada karena setiap objek memiliki deskripsi tugasnya sendiri.
Penggunaan Pemrograman berorientasi objek pertama kali diusulkan akhir
tahun 1960. Walaupun demikian perlu 20 tahun sehingga teknologi ini
mulai banyak digunakan. Antara tahun 1990-1995, pemrograman berorientasi
objek menjadi paradigma pilihan bagi pengembang produk perangkat lunak,
karena dengan teknik ini pembuatan akan lebih cepat dan menghasilkan
program yang berkualitas baik.Model data berorientasi objek dikatakan dapat memberi fleksibilitas yang lebih, kemudahan mengubah program, dan digunakan luas dalam teknik piranti lunak skala besar. Lebih jauh lagi, pendukung OOP mengklaim bahwa OOP lebih mudah dipelajari bagi pemula dibanding dengan pendekatan sebelumnya, dan pendekatan OOP lebih mudah dikembangkan dan dirawat.
== Konsep dasar dari Pemrograman Berorientasi Objek Pemrograman orientasi-objek menekankan konsep berikut:
- Kelas — kumpulan atas definisi data dan fungsi-fungsi dalam suatu unit untuk suatu tujuan tertentu. Sebagai contoh 'class of dog' adalah suatu unit yang terdiri atas definisi-definisi data dan fungsi-fungsi yang menunjuk pada berbagai macam perilaku/turunan dari anjing. Sebuah class adalah dasar dari modularitas dan struktur dalam pemrograman berorientasi object. Sebuah class secara tipikal sebaiknya dapat dikenali oleh seorang non-programmer sekalipun terkait dengan domain permasalahan yang ada, dan kode yang terdapat dalam sebuah class sebaiknya (relatif) bersifat mandiri dan independen (sebagaimana kode tersebut digunakan jika tidak menggunakan OOP). Dengan modularitas, struktur dari sebuah program akan terkait dengan aspek-aspek dalam masalah yang akan diselesaikan melalui program tersebut. Cara seperti ini akan menyederhanakan pemetaan dari masalah ke sebuah program ataupun sebaliknya.
- Objek - membungkus data dan fungsi bersama menjadi suatu unit dalam sebuah program komputer; objek merupakan dasar dari modularitas dan struktur dalam sebuah program komputer berorientasi objek.
- Abstraksi - Kemampuan sebuah program untuk melewati aspek informasi yang diproses olehnya, yaitu kemampuan untuk memfokus pada inti. Setiap objek dalam sistem melayani sebagai model dari "pelaku" abstrak yang dapat melakukan kerja, laporan dan perubahan keadaannya, dan berkomunikasi dengan objek lainnya dalam sistem, tanpa mengungkapkan bagaimana kelebihan ini diterapkan. Proses, fungsi atau metode dapat juga dibuat abstrak, dan beberapa teknik digunakan untuk mengembangkan sebuah pengabstrakan.
- Enkapsulasi - Memastikan pengguna sebuah objek tidak dapat mengganti keadaan dalam dari sebuah objek dengan cara yang tidak layak; hanya metode dalam objek tersebut yang diberi izin 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.
- Polimorfisme melalui pengiriman pesan. Tidak bergantung kepada pemanggilan subrutin, bahasa orientasi objek dapat mengirim pesan; metode tertentu yang berhubungan dengan sebuah pengiriman pesan tergantung kepada objek tertentu di mana pesa tersebut dikirim. Contohnya, bila sebuah burung menerima pesan "gerak cepat", dia akan menggerakan sayapnya dan terbang. Bila seekor singa menerima pesan yang sama, dia akan menggerakkan kakinya dan berlari. Keduanya menjawab sebuah pesan yang sama, namun yang sesuai dengan kemampuan hewan tersebut. Ini disebut polimorfisme karena sebuah variabel tungal dalam program dapat memegang berbagai jenis objek yang berbeda selagi program berjalan, dan teks program yang sama dapat memanggil beberapa metode yang berbeda di saat yang berbeda dalam pemanggilan yang sama. Hal ini berlawanan dengan bahasa fungsional yang mencapai polimorfisme melalui penggunaan fungsi kelas-pertama.
- Dengan menggunakan OOP maka dalam melakukan pemecahan suatu masalah kita tidak melihat bagaimana cara menyelesaikan suatu masalah tersebut (terstruktur) tetapi objek-objek apa yang dapat melakukan pemecahan masalah tersebut. Sebagai contoh anggap kita memiliki sebuah departemen yang memiliki manager, sekretaris, petugas administrasi data dan lainnya. Misal manager tersebut ingin memperoleh data dari bag administrasi maka manager tersebut tidak harus mengambilnya langsung tetapi dapat menyuruh petugas bag administrasi untuk mengambilnya. Pada kasus tersebut seorang manager tidak harus mengetahui bagaimana cara mengambil data tersebut tetapi manager bisa mendapatkan data tersebut melalui objek petugas adminiistrasi. Jadi untuk menyelesaikan suatu masalah dengan kolaborasi antar objek-objek yang ada karena setiap objek memiliki deskripsi tugasnya sendiri.
Objek, Metode Instansi dan Variable Instansi
Pemrograman
berorientasi objek bermaksud untuk memecahkan masalah programming mirip
dengan cara berfikir manusia dan bagaimana manusia berinteraksi dengan
dunia. Kita telah melihat bagaimana masalah programming dipecahkan
dengan membaginya menjadi instruksi-instruksi kecil yang dirangkai
menjadi suatu kesatuan tugas. Cara ini disebut juga dengan pemrograman
berdasarkan prosedur.
Pada
pemrograman berorientasi objek, kita membagi masalah pemrograman
berdasarkan objek atau "sesuatu" benda. Objek ini diibaratkan seperti
makhluk hidup, yaitu memiliki ciri-ciri fisik dan juga perilaku. Dalam
pemrograman berorientasi objek, ciri-ciri fisik ini disebut juga sebagai
atribut, pada dasarnya berisi informasi tentang objek tersebut.
Sedangkan perilaku disebut sebagai metode, yaitu bagaimana suatu objek
bertindak atau melakukan sesuatu.
Dengan
cara ini diharapkan pemrograman berorientasi objek merupakan
pemrograman yang lebih alami dibandingkan dengan pemrograman
berorientasi prosedur, karena cara fikir kita sudah terbiasa dengan
bagaimana kita berinteraksi dengan dunia.
Sampai
tingkat tertentu, PBO hanya merubah cara pandang programmer. Objek
dalam kaitannya dengan dasar pemrograman adalah gabungan dari variabel
(dalam hal ini atribut) dan subrutin (yaitu metode) yang berinteraksi
dengan variabel pada objek.
Banyak
bahasa pemrograman lain yang juga mendukung konsep PBO, akan tetapi
Java merupakan bahasa yang mendukung penuh PBO, di antaranya karena Java
memiliki beberapa fitur penting yang berbeda dari bahasa standar. Untuk
menggunakan fitur ini, kita harus mengubah cara pandang kita terlebih
dahulu.
Objek
terkait erat dengan kelas. Kita telah bahas dan mencoba beberapa contoh
kelas pada bab-bab sebelumnya. Seperti kita lihat pula bahwa kelas
memiliki variabel dan subrutin.
Jika
objek juga memiliki variabel dan subrutin, lalu apa bedanya dengan
kelas? Lalu mengapa kita harus memiliki cara pandang berbeda dengan cara
kita melihat kelas? Sepertinya apabila kita lihat contoh-contohnya
sebelumnya, perbedaannya hanya menghilangkan kata "
static" dari deklarasi variabel dan subrutinnya, khan?
Seperti disebutkan sebelumnya bahwa kelas mendeskripsikan suatu objek, atau lebih tepatnya, bagian non "
static"
mendeskripsikan suatu objek. Mungkin bahasa biologi, kelas adalah
species, sedangkan objek merupakan individu. Human sapiens (nama biologi
manusia) adalah kelas, sedangkan Anda, saya, ibu, bapak, pak hansip
adalah objek. Masing-masing dari kita memiliki "blueprint" atau cetak
biru yang sama, tetapi kita memiliki ciri-ciri yang berbeda, rambut,
mata, telinga, tinggi badan, berat badan, dan juga perilaku kita saat
makan, minum, belajar, dan lain-lain.
Dalam
sudut pandang pemrograman, kelas digunakan untuk menciptakan suatu
objek. Atau dengan kata lain, kelas adalah pabrik pembuat objek. Bagian
non-statik dari suatu kelas adalah bagian yang memuat detail suatu
objek, yaitu apa isi variabel dan metodenya. Perbedaan kelas dan objek
adalah : Objek diciptakan dan dihancurkan ketika program berjalan,
sehingga kita bisa memiliki beberapa objek sekaligus.
Bahasa pemrograman
Adapun berbagai Bahasa pemrograman yang mendukung OOP antara lain:
- Visual Foxpro
- Java
- C++
- Pascal (bahasa pemrograman)
- Visual Basic.NET
- SIMULA
- Smalltalk
- Ruby
- Python
- PHP
- C#
- Delphi
- Eiffel
- Perl
- Adobe Flash AS 3.0
Adapun berbagai Bahasa pemrograman yang mendukung OOP antara lain:
- Visual Foxpro
- Java
- C++
- Pascal (bahasa pemrograman)
- Visual Basic.NET
- SIMULA
- Smalltalk
- Ruby
- Python
- PHP
- C#
- Delphi
- Eiffel
- Perl
- Adobe Flash AS 3.0







0 komentar:
Posting Komentar