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;
}
class Manusia{
String nama,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";
MNS.nama = "Kiki Oktarizky";
MNS.umur = "21 tahun";
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 = " ";
}
}
class Dosen{
String nama;
String ambilNama(){
return nama;
}
void hapusNama(){
nama = " ";
}
}
Code:
Dosen DSN = new Dosen();
DSN.nama = "Bambang Siswoyo";
String nama = DSN.ambilNama();
Contoh Prosedur :
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();
}
}
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();
}
}
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("-----------------------------------");
}
}
//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("-----------------------------------");
}
}
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)