Senin, 09 Maret 2009

Konsep Pemrograman Berorientasi Objek

Pemrograman berorientasi objek (OOP) merupakan paradigma 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.
Beberapa konsep dalam OOP :
• Konsep utama Pemrograman Berorientasi Objek (OOP) yaitu melakukan permodelan objek dari kehidupan nyata ke dalam tipe data abstrak.
• Pemrograman Berorientasi Objek merupakan konsep pemrograman untuk memodelkan objek yang kita gunakan dalam kehidupan sehari-hari, dan konsep seperti ini membawa perubahan yang mendasar dalam konsep pemrograman terstruktur.
• Setiap objek dalam kehidupan nyata dapat kita pandang sebagai kelas, misalnya kelas Hewan, kelas Manusia, kelas Mobil.
• Sedangkan objek dari kelas tersebut misalnya sapi dan kambing untuk kelas Hewan; Lukman dan Rahma untuk kelas Manusia; serta Toyota dan Honda untuk kelas Mobil.
• Dengan OOP, kita dapat mengimplementasikan objek data yang tidak hanya memiliki ciri khas (attribut), melainkan juga memiliki metode untuk memanipulasi attribut tersebut.
• OOP memiliki keunggulan dari konsep pemrograman terstruktur, selain itu juga memiliki kemampuan untuk mengimplementasikan objek dalam kehidupan nyata.
Istilah yang terdapat dalam Pemrograman Berorientasi Objek sebagai berikut :
• Object : komponen di dalam sebuah program
• Method : aksi yang dapat dilakukan oleh object
• Property : karakteristik yang dimiliki object
• Event : kejadian yang dapat dialami oleh object
Sebagai ilustrasi kita dapat menganggap sebuah mobil sebagai objek yang memiliki property, method dan event. Perhatikan gambar berikut :



Pemrograman orientasi-objek menekankan konsep berikut:
1. 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 ijin 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. Dengan enkapsulasi dapat menyembunyikan didalam objek, baik data maupun fungsi / prosedur. Hanya dengan interface objek maka kita dapat mengakses datanya.
• Pemodulan (Encapsulation) adalah suatu metode / konsep dasar untuk menggabungkan data dengan fungsi sehingga menjadi satu kesatuan yang disebut dengan obyek.
• Konsep ini erat kaitannya dengan konsep menyembunyikan atau memproteksi suatu proses dari kemungkinan interferensi atau penyalahgunaan dari luar sistem sekaligus menyederhanakan penggunaan system itu sendiri. Akses ke internal sistem diatur sedemikian rupa melalui seperangkat interface.
Contoh kasus sepeda motor, pada sistem pemindahan gigi transmisi, maka pengendara tidak perlu tahu detail dari bagaimana proses pemindahan gigi itu dilakukan oleh mesin, cukup tahu bagaimana menekan gigi transmisi itu.
2. Inheritance ( Penurunan Sifat / Pewarisan )
Penurunan sifat memungkinkan kita untuk membuat sebuah objek baru yang sama dengan objek sebelumnya yang telah didefinisikan. Karakteristik dari suatu objek diturunkan ke objek yang lain sehingga objek yang baru akan memiliki karakteristik yang sama dengan induknya. Penurunan ini diawali dengan mendefinisikan objek induk, sehingga dengan menggunakan objek induk tersebut, dapat membuat objek yang bertumpu pada objek induknya sehingga akan terbentuk objek keturunan, dimana setiap objek turunannya dapat mengakses semua data dan program yang dimiliki oleh objek induknya.
Kemudian muncul suatu konsep tentang Inheritance (Penurunan Sifat / Pewarisan) yang merupakan suatu proses dimana suatu kelas diturunkan dari kelas lainnya sehingga ia mendapatkkan ciri atau sifat dari kelas tersebut.
Perhatikan contoh hirarki berikut ini :



• Dari hirarki sebelumnya dapat dilihat bahwa semakin ke bawah, kelas akan semakin bersifat spesifik.
• Dengan konsep ini, karakteristik yang dimiliki oleh kelas binatang cukup didefinisikan dalam kelas binatang saja. Kelas Mamalia tidak perlu mendefinisikan ulang apa yang telah dimiliki oleh kelas binatang, karena sebagai kelas turunannya, ia akan mendapatkan karakteristik dari kelas binatang secara otomatis.
• Dengan kata lain bahwa pewarisan / penurunan sifat (inheritance) merupakan sarana untuk menghilangkan penulisan ulang terhadap kode yang dapat digunakan berulang kali yang didasarkan pada hubungan relasional hirarki.
3. Polimorphism ( Keanekaragaman )
Adalah untuk membuat sebuah objek baru yang menunjukkan fungsi-fungsi yang sama dengan objek induknya, namun fungsi fungsi yang sama tersebut memiliki operasi yang berbeda-beda. objek yang masih didalam suatu hierarki dapat menyusun objek yang lainnya, sesuai dengan kebutuhan dari objek tersebut, yang artinya pemrograman berorientasi objek ini menyangkup keanekaragaman objek yang menjamin terhimpunnya perpaduan keanekaragaman data dengan prosedur atau fungsi.
Contoh ilustrasi mengenai polimorfisme :



• Pada ilustrasi di atas dapat dilihat bahwa terdapat sebuah kelas manusia, yang diturunkan menjadi dua buah kelas, yaitu kelas guru dan kelas militer.
• Kelas manusia mempunyai sebuah aksi yang dapat dilakukan, yaitu berjalan
• Aksi tersebut oleh kelas guru dan kelas militer diimplementasikan dengan cara yang berbeda. Kelas guru mengimplementasikan aksi berjalan dengan cara berjalan santai, sedangkan kelas militer mengimplementasikan aksi berjalan dengan cara berjalan tegap.
Dengan kata lain bahwa polimorfisme merupakan suatu kondisi dimana dua obyek atau lebih mempunyai interface yang identik namun mempunyai perilaku berbeda.

Contoh:

Class Manusia{
String nama, alamat;
boolean status;

public void berjalan(){
System.out.println(”berjalan”);
}
public void minum(){
System.out.println(”minum”);
}
public void membaca(){
System.out.println(”membaca”);
}
}

contoh :

class Animal{
void mamalia(){
System.out.println(”Mamalia adalah salah satu jenis binatang yang menyusui”);
}
void reptilia(){
System.out.println(”Reptilia adalah salah satu jenis binatang yang melata”);
}
}
class Kerbau extends Animal{
public void makanRumput(){
System.out.println(”Kerbau jenis binatang pemakan Rumput”); }
}
public class KerbauBeraksi{
public static void main(String[] args){
Kerbau kerbauku= new Kerbau();
kerbauku.mamalia();
kerbauku.makanRumput();}}

0 komentar: