Pemrograman berorientasi objek (Inggris: object-oriented
programming disingkat OOP) merupakan paradigma pemrograman berdasarkan konsep "objek", yang dapat
berisi data, dalam
bentuk field atau dikenal juga sebagai atribut; serta kode, dalam bentuk
fungsi/prosedur atau dikenal juga sebagai method. 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 peranti 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
1.
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.
Ø
Bahasa pemrograman
Bahasa pemrograman yang mendukung OOP antara lain: