Selasa, 19 Mei 2009

OOP

KONSEP OBJECT-ORIENTED PROGRAMMING (OOP)


Pemrograman berorientasi objek pada Java, secara umum konsep konsep yang digunakan sama dengan yang digunakan oleh pemrograman bahasa-bahasa lainnya. Artinya sebagaian besar konsep yang dibahas pada pemrograman java juga terdapat pada bahasa pemrograman yang lain. Hanya terkadang terdapat perbedaan-perbedaan kecil pada penerapan konsep-konsep tersebut pada masing-masing bahasa. Perbedaan-perbedaan tersebut akan dijelaskan pada penjelasan di masing-masing konsep.

1. Kelas
Kelas adalah semacam cetakan, atau template, untuk membuat objek. Kita ibaratkan sebuah cetakan kue yang digunakan untuk membuat berbagai macam bentuk kue. Kue yang dihasilkan dari cetakan tersebut adalah objek dari kelas cetakan kue.
2. Objek
Dalam sebuah program objek memiliki dua karakteristik, yaitu state dan behaviour. State adalah keadaan dari sebuah objek, seperti mobil memiliki state warna, model, tahun pembuatan, kondisi, dan lain-lain. Sedang behaviour adalah kelakuan dari objek tersebut, seperti mobil dapat melaju, membelok, membunyikan klakson, dll. Objek menyimpan statenya dalam satu atau lebih variabel, dan mengimplementasikan behaviournya dengan metode.

3. Pewarisan
Pewarisan (inheritance) berarti sebuah kelas mewarisi state dan behaviour dari kelas lain. Sebagai contoh, sebuah kelas Sepeda akan mewarisi state dan behaviour dari kelas SepedaBalap. Kelas SepedaBalap disebut subkelas, atau kelas anak, dari kelas sepeda, yang disebut superkelas, atau kelas induk.Seluruh subkelas akan mewarisi (inherits) state dan behaviour dari superkelasnya. Dengan begitu, semua subkelas dari superkelas yang sama akan memiliki state dan behaviour yang sama. Namun, masing-masing subkelas bisa menambah sendiri state atau behaviournya.
4. Engkapsulasi

Engkapsulasi dapat dianggap sebagai sebuah wadah. Engkapsulasi inilah yang diimplementasikan dalam sebuah kelas bahwa di dalam sebuah kelas terdiri data atribute dan method yang diletakkan dalam suatu kelas, engkapsulasi pada sebuah kelas bertujuan untuk melindungi atribut dan method-method yang ada didalam kelas agar tidak sembarangan diakses oleh kelas lain.


public class MobilLengkap {
String gigitambah,gigikurang,gastambah,gaskurang,kontakon,kontakof;
int gigihidup,gigimati;
//method
void hidupkanMobil(){
System.out.println("Cara Menghidupkan Mobil");
System.out.println("Stop Kontak:"+kontakon);
System.out.println("Posisi Porseneleng"+gigihidup);
System.out.println("Pedal Gasnya:"+gastambah);
}
void matikanMobil(){
System.out.println("Cara Mematikan Mobil");
System.out.println("Pedal Gasnya:"+gaskurang);
System.out.println("Posisi Porseneleng"+gigimati);
System.out.println("Stop Kontak:"+kontakof);
}
void ubahGigi(){
System.out.println("Cara Ganti Gigi");
System.out.println("Pedal Gasnya:"+gaskurang);
System.out.println("Kalo Tambah Gigi Posisi Porseneleng"+gigitambah);
System.out.println("Kalo MengurangiGigi Posisi Porseneleng"+gigikurang);
}
}

public class MobilLengkapBeraksi {
public static void main(String[]args){
MobilLengkap mobilku=new MobilLengkap();
mobilku.gigihidup=1;
mobilku.gigimati=0;
mobilku.gigikurang="-1";
mobilku.gigitambah="+1";
mobilku.gaskurang="Lepaskan Pelan-pelan Pedal Gasnya";
mobilku.gastambah="Injak Pelan-pelan Pedal Gasnya";
mobilku.kontakof="off";
mobilku.kontakon="on";
mobilku.hidupkanMobil();
mobilku.matikanMobil();
mobilku.ubahGigi();
}}