Pemrograman
Berorientasi Objek atau yang dikenal dengan istilah Object Oriented Programming
(OOP)merupakan pemrograman yang berorientasikan kepada objek.
Semua data dan fungsi di dalam
paradigma ini dibungkus dalam kelas-kelas atau objek-objek.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.
Ada beberapa contoh konsep dari pemrograman orientasi Objek
(Object Oriented Programming) yaitu sebagai berikut:
1. Kelas atau Class
Dalam object oriented programming, class (kelas)
adalah blueprint atau prototype, yang mendefinisikan variabel dan method-method
pada seluruh object tertentu untuk membuat
anggota dirinya sendiri mengarah kepada class instance, class object, instance
object atau simply object. Suatu class (kelas) mendefinisikan unsur anggota
yang memungkinkan contoh class (kelas) ini memiliki perilaku dan kemampuan
khusus sendiri.
Class (Kelas) adalah struktur data yang
berisi data-data (konstanta-konstanta dan field-field), fungsi-fungsi (method,
property,event, indexer, operator, constructor,destructor,dan static
constructor) dan class dalam class.
Class (Kelas) adalah kumpulan atas definisi
data dan fungsi-fungsi dalam suatu unit untuk suatu tujuan tertentu. Sebuah class
(kelas) adalah dasar dari modularitas
dan struktur dalam pemrograman berorientasi object. Class (kelas) merupakan sarana pengkapsulan kumpulan data dan kumpulan method java, class
(kelas) digunakan untuk membuat objek, dan berperan sebagai tipe data dari objek.
Sebuah class
(kelas) 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 ini akan menyederhanakan
pemetaan dari masalah ke sebuah program ataupun sebaliknya. Sebuah class
merupakan dasar dari modularitas dan struktur dalam pemrograman berorientasi
object.
Jika
diilustrasikan hubungan antara class dan object seperti pada gambar dibawah ini
:
Suatu class dapat berisi property,field,method dan event
dari suatu object, gabungan dari property,field,method dan event dari suatu
object biasanya member dari class.
Penamaan
suatu class mempunyai aturan umum :
a. Tidak
menggunakan spasi atau menggunakan spasi dengan diganti “_” (misal class Sarjana_Mipa)
b. Tidak
menggunakan kata-kata yang telah dipakai oleh compiler (reserved Word, lihat
bab sebelumnya)
Modifier saat deklarasi
kelas adalah :
a. Tidak
ditentukan (default) Kelas tersebut dapat diakses oleh kelas lain dalam satu
package.
b. Public
Ø
Main Class/ Class Induk
Modifier1 Class Namaclass modifier2 {
//tipedata namaatribut/variable
Public static void main (String[ ] args){
//character yang akan di tampilkan
}
}
}
Contoh sederhana dari deklarasi sebuah class :
Class Mahasiswa {
String
nim; //deklarasi
variabel atau atribut
String
nama; //deklarasi
variabel atau atribut
}
2. Object
Object
adalah elemen dasar dari konsep pemrograman, merupakan sesuatu yang memiliki
identitas (nama), pada umumnya juga memiliki data tentang dirinya maupun object
lain dan mempunyai kemampuan untuk melakukan sesuatu dan bisa bekerja sama
dengan objek lainnya. Pada dasarnya semua benda yang ada di dunia dapat
dianggap sebagai sebuah object.Rumah, mobil, sepeda motor, meja, dan komputer
merupakan contoh-contoh object yang ada di dunia nyata. Setiap object memiliki
dua karakteristik yang utama yaitu, atribut dan behavior. Atribut merupakan
status object dan behavior merupakan tingkah laku dari object tersebut.
3. Abstraksi
Abstraksi
adalah pengabstrakan atau penyembunyian kerumitan dari suatu proses. Sebagai
contoh, orang tidak perlu berpikir bahwa mobil adalah kumpulan dari puluhan
atau ribuan bagian-bagian kecil (mesin, kabel, baut, roda, rem, dsb). Orang
hanya perlu berpikir bahwa mobil adalah sebuah objek yang telah memiliki
prilaku spesifik, yang dapat digunakan sebagai alat transportasi, sehingga
dia/mereka tinggal menggunakannya atau mengendarainya tanpa harus mengetahui
kerumitan proses yang terdapat di dalam mobil tersebut. ini artinya, si pembuat
mobil telah menyembunyuikan semua kerumitan-kerumitan proses yang terdapat
didalam mobil dan pengguna tidak perlu mengetahui bagaimana sistem mesin ,
transmisi, dan rem berkerja. Konsep seperti inilah yang dinamakan dengan abstraksi.
Cotoh
abstraksi dalam model pemrograman berorientasi objek, kita sebagai
programmer atau pengembang program tidak perlu tahu secara detail bagaimana
cara membuat sebuah tombol, yang perlu kita ketahui adalah bagaimana cara
menggunakan objek tombol yang sudah ada (baik data/propeti maupun method-nya). Dalam kasus ini, si pembuat objek telah mengabstraksikan semua proses yang
berkaitan dengan pembuatan tombol.
Contoh Abstraksi:
· Contoh berikut akan menjelaskan penggunaan class abstrak
dalam pemrograman Objek dalam Java. Kelas abstrak yang dibuat adalah kelas
Animal, kemudian dengan dua jenis variabel, jumlah kaki dan warna. Ditambahkan
method berdasarkan cara jalan dan suaranya
:
public
abstract class Hewan {
private int jmlKaki;
private Color warna;
public abstract void jalan();
public abstract void suara();
{
4. Pembungkusan (Encapsulation)
Secara kode program,
proses abstraksi yang telah kita bicarakan tadi diatas dapat dilakukan dengan
cara membungkus semua kode dan data yang berkaitan ke dalam satu entitas
tunggal yang disebut dengan objek, dengan kata lain sebenarnya proses
pembungkusan itu sendiri merupakan cara atau mekanisme untuk melakukan
abstraksi.
Dalam pemrograman
tradisional, proses semacam ini dinamakan dengan penyembunyian informasi
(information Hidding). Dalam melakukan pembungkusan kode dan data didalam java,
terdapat 3 tingkat akses, yaitu :
· Tingkat Akses Private,
Dengan mendeklarasikan data dan method menggunakan tingkat akses private, maka
data dan method tersebut hanya dapat diakses oleh kelas yang memilikinya saja.
Ini berarti data dan method tersebut tidak boleh diakses atau digunakan oleh
kelas-kelas lain yang terdapat di dalam program. Untuk mendeklarasikan suatu
data atau method dengan tingkat akses pivate, gunakan kata kunci ”private
“.
Private : Memberikan hak
akses hanya kepada anggota class tersebut untuk menggunakan dan/atau mengubah
nilai dari property atau method tersebut.
· Tingkat Akses Protected,
Suatu data maupun method, yang di deklarasikan dengantingkat akses protected
dapat diakses oleh kelas yang memilikinya dan juga oleh kelas–kelas yang masih
memiliki hubungan turunan.Sebagai contoh, apabila terdapat kelas B yang
merupakan turunan dari kelas A, dan data X terdapat pada kelas A, maka kelas B
diizinkan untuk mengakses data tersebut, tetapi apabila ada kelas lain (kelas
C) yang bukan merupakan turuna dari kelas A, maka kelas C tersebut tidak
diizinkan untuk mengakses data x yang terdapat pada kelas A. Untuk
mendeklarasikan suatu data atau method dengan tingkat akses protected, gunakan
kata kuci ”protected“.
Protected : Memberikan hak
akses kepada anggota class nya dan anggota class hasil inheritance (penurunan
sifat) dari class tersebut.
· Tingkat Akses Public,
merupakan kebalikan dari tingkat akses private, Data maupun method yang
bersifat publik dapat diakses oleh semua bagian di dalam program. Dengan kata
lain , data-data maupun method-method yang dideklarasikan dengan tingkat akses
public akan dikenali atau dapat diakses oleh semua kelas yang ada didalam
program, baik yang merupakan kelas turunan maupaun yang tidak memiliki hubungan
sama sekali. Untuk mendeklarasikan suatu data atau method dengan tingkat akses
public, gunakan kata kunci “public“.
Public : Memberikan hak akses kepada
property dan method agar dapat digunakan diluar class tersebut.
5. Pewarisan (Inherintance)
Inheritance adalah proses pewarisan
data dan method dari suatu kelas kepada kelas yang lain. Pewarisan ini bersifat
menyeluruh, sehingga semua data dan method yang dimiliki oleh kelas asalnya
akan diturunkan kepada kelas baru. Kelas yang mewarisi disebut kelas “SUPER
(super class)” dan kelas yang diwarisi disebut “SUBKELAS (sub class)”.
Manfaat penggunaan konsep pewarisan antara
lain:
· pertama, kita dapat menggunakan kembali kelas-kelas yang
kita buat (sebagai superkelas) dan membuat kelas-kelas baru berdasar superkelas
tersebut dengan karakteristik yang lebih khusus dari behaviour umum yang
dimiliki superkelas.
·
Kedua, kita dapat membuat superkelas yang hanya
mendefinisikan behaviour namun tidak memberi implementasi dari metode-metode
yang ada. Hal ini berguna jika kita ingin membuat semacam template kelas. Kelas
semacam ini disebut kelas abstrak, karena behaviournya masih abstrak dan belum
diimplementasikan. Subkelas-subkelas dari kelas semacam ini, yang disebut kelas
konkret, mengimplementasikan behaviour abstrak tersebut sesuai dengan kebutuhan
masing-masing.
Sedikit penjelasan mengenai kelas abstrak,
kelas ini bisa memiliki hanya satu atau lebih metode abstrak.Subkelas dari
kelas ini bertanggung jawab untuk memberikan implementasi untuk metode-metode
abstrak tersebut.Sebagai akibat dari keberadaan metode abstrak ini, kelas
abstrak tidak dapat diinstanskan (dibuatkan instansnya) atau digunakan untuk
menciptakan sebuah objek dari kelas tersebut.
Contoh : terdapat class sepeda dan sepeda
gunung. Sepeda termasuk superclass.Sepeda gunung termasuk subclass.Hal ini
dikarenakan sepeda gunung memiliki variabel dan method yang dimiliki oleh
sepeda.
Prinsip dasar inheritance yaitu
persamaan-persamaan yang dimiliki oleh beberapa kelas dapat digabungkan dalam
sebuah class induk sehingga setiap kelas yang diturunkannya memuat hal-hal yang
spesifik untuk kelas yang bersangkutan.