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.
Object dan Classclass
Dalam dunia nyata, kita sering
berinteraksi dengan banyakobject. Kita tinggal di rumah, rumah adalah suatu
object, dalamterminology OOP rumah kita adalah instance dari suatu class
rumah.Misal kita tinggal dalam suatu komplek perumahan, sebelum membangunrumah,
developer akan berpanduan pada rancang bangun rumah (blueprint) yang telah
dibuat seorang arsitek. Blue print dari rumah adalahclass, sedang rumah yang
kita tinggal (rumah-rumah dalam komplek)disebut instance.Manusia adalah sebuah
class ; anda, saya, kita adalah instance dari classmanusia.
Object
Object adalah instance dari class.
Jika class secara umummerepresentasikan (template) sebuah object, sebuah
instance adalahrepresentasi nyata dari class itu sendiri.
Bekerja dengan Object
Ketika anda membuat program dengan
Java, anda akan mendefinisikanbeberapa class, anda juga akan menggunakan class
untuk membuatsuatu instance dan tentu saja akan bekerja dengan
instance-instancetersebut.
Membuat Object
Untuk membuat object, kita
menggunakan perintah
new dengan sebuah nama class yang akan dibuat sebagai instance dari
class tersebut.
String str = new String();
Random r = new Random();
Pegawai p2 = new PEgawai();
Date hari = new Date();
hari adalah object reference dari
class Date yang akan digunakan untukmengakses class Date.
Sedangkan operator new adalah operator
yang akan menghasilkan harisebagai reference ke instance dari class Date().
Contoh :
Kita akan menggunakan class Date
untuk membuat suatu object Date.
import java.util.Date;
class CreateDates {
public static void main(String args[]){
Date d1,d2,d3;
d1 = new Date();
System.out.println(“Hari 1 : “ + d1);
d2 = new Date(71,4,14,8,35);
System.out.println(“Hari 2 : “ + d2);
d3 = new Date(“September 3 1976 2:25 PM”);
System.out.println(“Hari 3 : “ + d3);
}
}
Ketika anda memanggil operator new terjadi
beberapa hal :
1. Instance baru yang telah
diberikan oleh class dicipakan
2. Memori dialokasikan untuk
instance tersebut
3. Special Method didefinisikan pada
class (Konstruktor)
Konstruktor : Suatu method tertentu
untuk membuat danmenginsialisasi sebuah instance baru dari class.
Konstruktormenginisialiasasi object-object baru dan variable-variabel.Pemberian
nama method Konstruktor harus sama dengan namaclassnya. (Penjelasan tentang
Konstruktor akan dibahas dalampertemuan berikutnya)
0 komentar:
Posting Komentar