skip to main |
skip to sidebar
Pemrograman Berorientasi Objek
OOP (Object Oriented Programming) merupakan terobosan baru dalam pemrograman setelah pemrograman prosedural. Selain memiliki class dan object, terdapat dua konsep utama yang ada di OOP yaitu: Inheritance (suatu kelas berasal dari turunan pertama atau lebih kelas lainnya)dan Polymorphism (kemampuan objek berubah menjadi objek yang lain).
Pemrograman berorientasi objek atau dalam bahasa Inggris disebut Object Oriented Programming dan lebih populer dengan sebutan OOP merupakan suatu pendekatan pemrograman yang menggunakan objek dan kelas (class & object).
OOP bukanlah sekadar cara penulisan sintaks program yang berbeda, tetapi lebih dari itu, bahwa OOP merupakan cara pandang dalam menganalisa sistem dan permasalahan pemrograman. Dalam OOP, setiap bagian dari program adalah objek (object). Sebuah objek mewakili suatu bagian program yang akan diselesaikan. Setiap objek dapat menerima pesan, memproses data, dan mengirim pesan ke objek lainnya.
Model data berorientasi objek dikatakan dapat memberi flexibilitas yang lebih, kemudahan mengubah program, dan diunakan luas dalam teknik piranti lunak skala besar.
2.Konsep Dasar
Konsep dasar pemrograman berorientasi objek ditekankan pada hal-hal sebagai berikut :
a. Encapsulation (Objek & kelas)
b. Polymorphisme
c. Inheritance (penurunan sifat)
Encapsulation (Objek & kelas)
Kelas : kumpulan atas definisi data dan fungsi-fungsi dalam suatu unit untuk suatu maksud tertentu. Sebuah kelas adalah dasar dari modularitas dan struktur dalam pemrograman berorientasi objek. Dengan modularias, 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. Sebagai contoh, kelas orang. Kelas orang setidaknya memiliki beberapa bagian seperti tangan, kaki, telinga, mulut dan sebaginya. Kelas orang juga harus bisa jalan, melihat, berlari dan sebagainya.
Objek : membungkus data dan fungsi bersama menjadi suatu unit dalam sebuah program komputer; objek merupakan dasar dari moudularitas dan struktur dalam sebuah program komputer berorientasi objek. Sebagai contoh, sebuah mobil adalah objek. Sebuah mobil mempunyai bagian-bagian di dalamnya, seperti mesin, roda, pintu dan sebagainya. Sebuah mobil juga dapat melakukan sesuatu seperti mengisi bensin, berjalan, mengerem dan sebagainya.
Dari penjelasan diatas, dapat dikatakan bahwa salah satu keunggulan konsep OOP adalah adanya pengkapsulan (Encapsulation) program dalam kelas dan objek, dimana programmer yang menggunakan kelas tidak perlu mengetahui isi dan jalannya kelas secara detail, tapi hanya tahu cara menggunakannya saja. Contoh yang lainnya adalah pada mobil, dimana pemilik mobil tentunya tidak perlu mengetahui bagian-bagian mobil secara keseluruhan dan juga tidak perlu mengetahui bagaimana mesin mobil bisa menggerakkan roda, dan sebagainya.
Polymorphisme
Suatu objek dapat memiliki berbagai bentuk, sebagai objek dari kelasnya sendiri atau objek dari superkelasnya. Contohnya, bila sebuah burung menerima pesan “gerak cepat”, dia akan menggerakkan sayapnya dan terbang.
Polymorphism Merupakan inti dari OOP. Sebab dengan satu baris perintah kita bisa menggunakannya untuk berbagai keperluan, fungsi itu akan menyesuaikan sendiri ke pemanggilnya. Ilustrasinya adalah tombol play. Dimana-mana tombol play fungsinya sama, untuk menjalankan. Coba liat, padahal kan beda cara kerja tombol play di vcd, tape recorder, dan radio.
Setelah melihat diberbagai referensi pun gak ada yang ngasih contoh yang mudah dipahami. Hanya itu contoh yang paling mudah dipahami. Inti Polymorphism adalah objek yang kita gunakan ini bisa berubah sesuai dengan kondisi yang terjadi. Jadi kita tidak perlu nulisin kode program panjang-panjang.
Mungkin dengan contoh polymorphism di bawah ini anda bisa ada gambaran.
class Mobil{
String Warna;
int TahunProduksi;
public Mobil( String Warna, int TahunProduksi) {
this.Warna = Warna;
this.TahunProduksi = TahunProduksi;
}
public void info(){
System.out.println("WARNA : " + this.Warna );
System.out.println("TAHUN PRODUKSI : " + this.TahunProduksi );
}
}
public class MobilKonstruktor{
public static void main(String[] arg){
Mobil mobilku = new Mobil("PINK", 2008);
mobilku.info();
}}
Inheritance
Mengatur polymorphisme dan encapsulation dengan mengijinkan objek didefinsikan dan diciptakan dengan jenis khusus dari objek yang sudah ada objek-objek ini dapat membagi perilaku mereka tanpa harus mengimplementasikan ulang perilaku tersebut.
Enheritance adalah mengembangkan class yang sudah ada. Jadi kita gak perlu ngebentuk dari awal lagi, class yang sudah ada bisa dimodifikasi
atau ditambah fungsinya sesuai dengan kebutuhan. Ada yang bisa ditambah ada yang dimodifikasi. Dulu mobil remote kontrol tanpa kabel hanya ada satu tombol. bila dipencet mobilnya akan maju, dan kalo gak dipencet mobilnya muter-muter terus searah jarum jam. Sekarang bisa bergerak sesuai keinginan kita.
Contoh lain adalah tentang televisi. Dulu fungsi jam tangan hanya nonton sinetron saja, tapi sekarang fungsinya sudah nambah, dari yang bisa untuk alarm sampai untuk main game playstation.
Sekarang contoh yang dimodifikasi. Jika dulu perseneling mobil hanya manual sekarang sudah ada yang otomatis.
Jadi, dengan inheritance semua perubahan itu gak ngerubah bulat-bulat objek yang ada, tetapi hanya menambah dan memodifikasi dengan mempertahankan objek (class) awalnya.
Contoh bagaimana memodifikasi mobil menjadi mobil Balap dengan mewariskan atribut dan method class mobil kepada class mobil balap:
class Mobil{
int kecepatan=0;
void tambahKecepatan(int pertambahanKecepatan){
kecepatan=kecepatan+pertambahanKecepatan;
System.out.println("Kecepatan:"+kecepatan);
}
class MobilBalap extendsMobil{
int setGigi;
public void setGigi(int jumlahGigi){
setGigi = jumlahGigi;
System.out.println("Gigi Perseneling:" + setGigi);
}
}
3.Penggunaan OOP
Dengan menggunakan OOP, maka dalam pemecahan suatu masalah, kita tidak melihat bagaimana cara menyelesaikan suatu masalah tersebut, tetapi objek-objek apa yang dapat melakukan pemecahan masalah tersebut.
Sebagai contoh, anggap kita memiliki sebuah jurusan (departemen) yang mempunyai manajer (ketua jurusan), sekretaris jurusan, administrasi data dan lainnya. Misal manajer (ketua jurusan) tersebut ingin memperoleh data dari bagian admnistrasi data, maka manajer tersebut tidak harus mengambilnya langsung data tersebut, tapi dapat menyuruh petugas bagian admnistrasi data untuk mengambilnya. Pada kasus ini, manajer tidak harus mengetahui bagaimana cara mengambil data tersebut, tetapi manajer bisa mendapatkan data tersebut melalui objek petugas administrasi data.
Jadi untuk menyelesaikan suatu masalah dengan kolaborasi antar objek-objek yang ada karena setiap objek memiliki deskripsi tugasnya sendiri.