Home about IT Motivation Course Sales Project About Me

Thursday, August 04, 2011

java: object oriented programming

di sarikan dari berbagai sumber:

Pemrograman Berorientasi Objek


Pemrograman yang menjadikan objek sebagai komponen utama dalam sistem. Objek adalah gabungan data dan fungsi, dimana sebuah objek dibuat dari sebuah kelas

Konsep OOP (Object Oriented Programming)

Kelas : mendefinisikan kerangka dari objek, yang mana objek itu diinstansiasi dari kelas
Objek : dibuat dari kelas yang mana objek memiliki data dan method
Method : Perilaku dari objek atau sebuah fungsi untuk mengerjakan tugas-tugas tertentu

Objek
Objek merupakan hasil dari sebuah kelas, diibaratkan kelas merupakan resep kue dan objek merupakan kue, Maka suatu resep kue dapat membuat beberapa kue.
Pembuatan objek dalam java adalah dengan menggunakan new ,pembuatannya sama dengan pembuatan variable.

Kelas objek = new Kelas();

Jika dalam kelas yang dibuat objek terdapat atribut/variable maka dapat dipanggil dengan cara berikut :
objek.atribut = value;

Kelas
Dalam java, kelas didefinisikan dengan kata kunci class. Contoh kelas sederhana sebagai berikut :

Code:

class Manusia{
String nama,umur;
}

Pada kode diatas kita telah membuat kelas manusia dengan atibut/variable nama dan umur.
Kita akan mencoba membuat objek dari kelas tersebut

Manusia MNS = new Manusa(); //MNS merupakan nama objek pada kelas Manusia

//mengubah nama dan umur pada kelas Manusia yang defaultnya adalah kosong menjadi ada isi nya
Code:

MNS.nama = "Kiki Oktarizky";
MNS.umur = "21 tahun";

Metode (Method)

Dalam java terdapat 2 method :
1. Fungsi : metode yang memiliki nilai kembalian jika metode tersebut dipanggil. Cara pembuatan fungsi adalah dengan menentukan nilai kembaliannya dulu lalu membuat nama method nya.
2. Prosedur : metode yang tidak memiliki nilai kembalian. Cara pembuatan nya sama dengan fungsi, namun nilai kembaliannya menggunakan kata kunci void.

Contoh :
Code:

class Dosen{
String nama;
String ambilNama(){
return nama;
}
void hapusNama(){
nama = " ";
}
}


Pada kode diatas terdapat satu buah fungsi bernama ambilNama() dan prosedur bernama hapusNama(). Untuk mengembalikan suatu fungsi harus menggunakan kata kunci return diikuti nilai yang akan dikembalikannya. Untuk mengambil nilai kembaliannya terdapat seperti kode dibawah :

Code:

Dosen DSN = new Dosen();
DSN.nama = "Bambang Siswoyo";
String nama = DSN.ambilNama();


Contoh Prosedur :
Code:

public class Rumah{
public static void meja(){
System.out.println("Ada Meja");
}
void jamDinding(){
System.out.println("Ada jam dinding");
}
}
class IsiRumah{
public static void main(String[] args){
Rumah.meja();
Rumah panggil = new Rumah();
panggil.jamDinding();
}
}


pada program diatas terdapat 2 buah prosedur bernama meja() dan jamDinding(). method meja bisa dipanggil secara langsung tanpa menggunakan objek pada class isiRumah karena ada keyword static, sedangkan method jamDinding harus dipanggil melalui objek.
Output dari program di atas adalah :

Code:

Ada Meja
Ada jam dinding

Inheritance
Inheritance merupakan kemampuan suatu kelas untuk mewariskan data dan method yang dimilikinya ke kelas lain
analogi nya bisa kita lihat dalam kehidupan sehari-hari seperti seorang anak yang mempunyai sifat yang diwarisi oleh ayah nya, dalam java kelas ayah tersebut (kelas parent) biasa disebut super class dan kelas dari yang mewarisinya disebut sub class.


Code:

//file Pegawai.java
public class Pegawai {
public long hitungGajiTotal(){
return 0;
}
}


Code:

//file Dosen.java
class Dosen extends Pegawai {
private String nip,nidn,gol,j_Struktural,j_Fungsional;
private long t_Struktural,gajiPokok,t_Fungsional,honorMengajar;
int jamMengajar;
Dosen(String nip,String nidn,String gol,String j_Struktural,String j_Fungsional,int jamMengajar
,long honorMengajar){
this.nip = nip;
this.nidn = nidn;
this.gol = gol;
this.j_Struktural = j_Struktural;
this.j_Fungsional = j_Fungsional;
this.jamMengajar = jamMengajar;
this.honorMengajar = honorMengajar;
}
public String getNip(){
return nip;
}
public String getNidn(){
return nidn;
}
public String getGol(){
return gol;
}
public long getGajiPokok(){
if(gol=="IIIA")
gajiPokok = 2000000;
else if(gol=="IIIB")
gajiPokok = 2500000;
else if(gol=="IIIC")
gajiPokok = 3000000;
else
gajiPokok = 0;
return gajiPokok;
}
public String getJ_Struktural(){
return j_Struktural;
}
public long getT_Struktural(){
if(j_Struktural=="Rektor")
t_Struktural = 10000000;
else if(j_Struktural=="Dekan")
t_Struktural = 5000000;
else if(j_Struktural=="Kaprodi")
t_Struktural = 2000000;
else
t_Struktural = 0;
return t_Struktural;
}
public String getJ_Fungsional(){
return j_Fungsional;
}
public long getT_Fungsional(){
if(j_Fungsional=="Lektor")
t_Fungsional = 1000000;
else if(j_Fungsional=="Asisten Ahli")
t_Fungsional = 700000;
else
t_Fungsional = 0;
return t_Fungsional;
}
public int getJamMengajar(){
return jamMengajar;
}
public long getHonorMengajar(){
return honorMengajar;
}
public long hitungGajiTotal(){
long gajiTotal = gajiPokok+t_Struktural+t_Fungsional+honorMengajar;
return gajiTotal;
}
}



Code:

//file PegawaiInheritance.java
public class PegawaiInheritance {
public static void main(String[] args){
Dosen dsn = new Dosen("001","NIDN001","IIIA","Rektor","Lektor",1,50000);
System.out.println("PROGRAM HITUNG GAJI\n");
System.out.println("-----------------------------------");
System.out.println("DOSEN\n");
System.out.println("Nip = "+dsn.getNip());
System.out.println("Nidn = "+dsn.getNidn());
System.out.println("Golongan = "+dsn.getGol());
System.out.println("Gaji Pokok = "+dsn.getGajiPokok());
System.out.println("Jabatan Struktural = "+dsn.getJ_Struktural());
System.out.println("Tunjangan Struktural = "+dsn.getT_Struktural());
System.out.println("Jabatan Fungsional = "+dsn.getJ_Fungsional());
System.out.println("Tunjangan Fungsional = "+dsn.getT_Fungsional());
System.out.println("Jam Mengajar = "+dsn.getJamMengajar());
System.out.println("Honor Mengajar = "+dsn.getHonorMengajar());
System.out.println("Gaji Total = "+dsn.hitungGajiTotal());
System.out.println("-----------------------------------");
}
}


Pada program diatas terdapat satu super class bernama Pegawai dan satu sub class atau kelas turunannya bernama Dosen. Disini kelas Dosen memiliki method-method beserta variable nya tersendiri beserta access modifier masing-masing dan kelas Pegawai hanya mewariskan method yang dimiliki nya yaitu hitungGajiTotal().


Information Hiding dan Encapsulation

• Information Hiding adalah
menyembunyikan attribute dan method
suatu objek dari objek lain.
• Encapsulation adalah menyembunyikan
attribute suatu objek dari objek lain.
• Attribute maupun method disembunyikan
dengan cara memberikan modifier private.

Overrriding Attribute dan Method
• Overriding adalah kemampuan suatu
subkelas untuk memodifikasi attribute dan
method milik kelas supernya (bukan private
atau final).
• Modifikasi : jumlah parameter, tipe
parameter, tipe return value, ataupun
lingkungan pemrosesan datanya

Polymorphism
• artinya bersifat poly morphy (memiliki
banyak bentuk)
• Method‐method overloading dalam kelas
yang sama
• Method‐method overloading dalam kelas
yang berbeda (kelas turunannya)