Abstraksi
pada dasarnya adalah menemukan hal-hal yang esensial pada suatu objek dan
mengabaikan hal-hal yang sifatnya insidental. Kita menentukan apa
ciri-ciri(atribut) yang dimiliki oleh objek tersebut serta apa saja yang bisa
dilakukan(fungsi) oleh objek tersebut.
Contohnya adalah abstraksi pada manusia.
Ciri-ciri (atribut) : punya tangan,
berat, tinggi, dll. (kata benda, atau kata sifat)
Fungsi (perilaku): makan, minum, berjalan,
dll. (kata kerja)
Pengkapsulan adalah
proses pemaketan data objek bersama method-methodnya. Manfaat utama pengkapsulan
adalah penyembunyian rincian-rincian implementasi dari pemakai/objek lain yang
tidak berhak. Enkapsulasi memprotek suatu proses dari kemungkinan interferensi
atau penyalahgunaan dari luar sistem.
Fungsi dari
enkapsulasi adalah:
a. Penyembunyian
data
Penyembunyian
data (data hiding) mengacu perlindungan data internal objek. Objek tersebut disusun dari antarmuka public
method dan private data. Manfaat utama adalah bagian internal dapat berubah
tanpa mempengaruhi bagian-bagian program yang lain.
b. Modularitas
Modularitas
(modularity) berarti objek dapat
dikelola secara independen. Karena kode sumber bagian internal objek dikelola
secara terpisah dari antarmuka, maka kita bebas melakukan modifikasi yang tidak
menyebabkan masalah pada bagian-bagian lain. Manfaat ini mempermudah
mendistribusikan objek-objek di sistem
Contoh
ilustrasi pada mobil.
Mobil
memiliki sistem transmisi dan sistem ini menyembunyikan proses yang terjadi di
dalamnya tentang bagaimana cara ia bekerja, mulai dari bagaimana cara ia mengatur
percepatan dan apa yang dilakukan terhadap mesin untuk mendapat percepatan
tersebut. Kita sebagai pengguna
hanya cukup memindah-mindahkan tongkat transmisi untuk mendapatkan percepatan
yang diinginkan. Tongkat transmisi adalah satu-satunya interface yang digunakan
dalam mengatur sistem transmisi mobil tersebut. Kita tidak dapat menggunakan
pedal rem untuk mengakses sistem transmisi tersebut dan sebaliknya dengan
mengubah-ubah sistem transmisi kita tidak akan bisa menghidupkan radio mobil
atau membuka pintu mobil. Konsep yang sama dapat pula kita terapkan dalam
pemrograman orientasi objek.
Pewarisan adalah proses penciptaan class
baru (yang disebut subclass atau kelas turunan) dengan mewarisi karakteristik
dari class yang telah ada (superclass atau kelas induk), ditambah karakteristik
unik class baru itu. Karakteristik
unik tersebut bisa merupakan perluasan atau spesialisasi dari superclass. Kelas turunan
akan mewarisi anggota-anggota suatu kelas yang berupa data (atribut) dan fungsi
(operasi) dan pada kelas turunan memungkinkan menambahkan data serta fungsi
yang baru. Secara praktis berarti bahwa jika superclass telah mendefinisikan
perilaku yang kita perlukan, maka kita tidak perlu mendefinisi ulang perilaku
itu, kita cukup membuat class yang merupakan subclass dari superclass yang
dimaksud.
Reuseability
adalah kemampuan untuk menggunakan kembali kelas yang sudah ada. Karakteristik
ini dimiliki oleh OOP, sehingga kita tidak perlu membuat ulang definisi
perilaku jika perilaku tersebut sudah ada di suatu class lain.
Polymorphism
berasal dari bahasa
Yunani yang berarti banyak bentuk. Konsep ini memungkinkan digunakannya suatu
antarmuka (interface) yang sama untuk memerintah suatu objek agar dapat
melakukan suatu aksi atau tindakan yang mungkin secara prinsip sama tapi secara
proses berbeda. Seringkali Polymorphism
disebut dalam istilah “satu interface banyak aksi”. Mekanisme Polymorphism dapat dilakukan dengan
dengan beberapa cara, seperti overloading method, overloading constructor,
maupun overriding method. Semua akan dibahas pada bab selanjutnya.
Contoh
ilustrasi pada mobil. Mobil yang ada di pasaran terdiri atas berbagai tipe dan
merek, tetapi semuanya memilki interface kemudi yang hampir sama seperti setir,
tongkat transmisi, pedal gas, dll. Jika
kita dapat mengemudikan satu jenis mobil saja dari satu merek tertentu, maka
boleh dikatakan kita dapat mengemudikan hampir semua jenis mobil yang ada
karena semua mobil tersebut menggunakan interface yang sama. Misal, ketika kita
menekan pedal gas pada mobil A, kita telah berhasil menggerakkan mobil A
tersebut dengan percepatan yang tinggi. Sebaliknya, ketika kita menggunakan
mobil B dan sama-sama menekan pedal gas, mobil B ini bergerak agak lambat.
Jadi, dapat disimpulkan dengan sama-sama kita menekan pedal gas pada dua mobil
ini akan didapatkan hasil yang berbeda pada keduanya.
Objek
yang bertindak sendirian jarang berguna, kebanyakan objek memerlukan
objek-objek lain untuk melakukan banyak hal. Oleh karena itu, objek-objek tersebut saling berkomunikasi dan berinteraksi
lewat message. Ketika berkomunikasi,
suatu objek mengirim pesan (dapat berupa pemanggilan method) untuk memberitahu
agar objek lain melakukan sesuatu yang diharapkan. Seringkali pengiriman message juga disertai informasi untuk
memperjelas apa yang dikehendaki. Informasi yang dilewatkan beserta message adalah parameter message. [ Modul PBO IF LAB]