OBJECT ORIENTED PROGRAMMING (OOP)
Enkapsulasi adalah suatu cara untuk menyembunyikan informasi detail dari
suatu class. Dua hal yang mendasar dalam enkapsulasi yakni : Information
hiding , Interface to access data. Anggota
class dapat diakses baik berupa atribut maupun method secara langsung dengan
menggunakan objek yang dibuat. Hal ini dikarenakan akses kontrol yang diberikan
kepada atribut maupun method yang ada di dalam class tersebut adalah ‘public’.
Informasi dapat disembunyikan dari suatu class sehingga anggota class tersebut
tidak dapat diakses dari luar, caranya adalah hanya dengan memberikan akses
kontrol ‘private’ ketika mendeklarasikan atribut atau method.
Proses ini disebut dengan information hiding.
Jika telah dilakukan information hiding terhadap suatu atribut pada suatu
class, lalu bagaimana cara melakukan perubahan terhadap atribut yang
disembunyikan tersebut, caranya adalah dengan membuat suatu interface berupa
method untuk menginisialisasi atau merubah nilai dari suatu atribut tersebut
yang dinamakan dengan interface to access data.
Source Code Sample :
public class Siswa
{
public String nama;
public String nrp;
public void Info()
{
System.out.println(“Saya adalah”);
System.out.println(“Nama ” + nama);
System.out.println(“Nrp ” + nrp);
}
}
public
class IsiData
{
public static void main(String[] args)
{
Siswa IT = new Siswa();
IT.nama = “Mirna”;
IT.nrp = “0320110013″;
IT.Info();
}
}
Source Code Sample :
/*
Disimpan dalam file “manusia.java”
*/
class manusia
{
public String nama;
public manusia(String n)
{
this.nama = n;
}
public String
tampilkanNama()
{
return nama;
}
public void
makan()
{
System.out.println("Nyamyam...
nyam...");
}
public void kerja()
{
System.out.println("Kerjaerjaaa...");
}
private void
bunuhDiri()
{
System.out.println("Dor...bruk...");
}
}
/*
Disimpan dalam file “andi.java”
*/
class andi
{
public static void
main(String arg[])
{
manusia andi= new
manusia("Andi");
System.out.println("Nama= "+
andi.tampilkanNama());
andi.makan();
}
}
2. Inheritance
Inheritance merupakan
pewarisan atribut dan method pada sebuah class yang diperoleh dari class yang
telah terdefinisi tersebut. Setiap subclass akan mewarisi state
(variabel-variabel) dan behaviour (method-method) dari
superclass-nya. Subclass kemudian dapat menambahkan state dan behaviour baru
yang spesifik dan dapat pula memodifikasi (override) state dan behaviour yang
diturunkan oleh superclass-nya.
Subclass atau kelas turunan menyediakan state/behaviour yang spesifik
yang membedakannya dengan superclass atau kelas induk , hal ini akan
memungkinkan programmer Java untuk menggunakan ulang source code dari
superclass yang telah ada. Programmer Java dapat mendefinisikan superclass
khusus yang bersifat generik, yang disebut abstract class, untuk
mendefinisikan class dengan behaviour dan state secara umum.
Ada dua keyword utama dalam inheritance,
Super dan Extends. Extends harus kita tambahkan pada definisi class yang
menjadi subclass. Sedangkan Super digunakan untuk memanggil konstruktor dari
superclass atau menjadi variabel yang mengacu pada superclass.
Istilah dalam inheritance yang
perlu diperhatikan :
a. Extends
Keyword ini harus kita
tambahkan pada definisi class yang menjadi subclass.
b. Superclass
Superclass digunakan untuk
menunjukkan hirarki class yang berarti class dasar dari
subclass/class anak.
c. Subclass
Subclass adalah class
anak atau turunan secara hirarki dari
superclass.
d. Super
Keyword ini digunakan untuk memanggil konstruktor dari superclass atau
menjadi variabel yang mengacu pada superclass.
e. Metode Overriding
Pendefinisian ulang method yang sama pada
subclass.
Source Code Sample :
public class TipeRumah
{
public
static void main ( String[]args )
{
rumahindah
C = new rumahindah();
C.info();
}
}
class Rumah
{
private
String a = " Rumahmewah ";
public void info() {
//System.out.println
(" Dipanggil pada = "+this);
System.out.println
(" ");
System.out.println
(" Rumah = "+a);
}
}
class rumahindah extends Rumah
{
private
String b = " tombol alarm ";
public void
info(){
System.out.println ("
");
super.info();namun
dengan parameter yang berbeda
System.out.println ("
rumahindah = "+b);
}
}
3. Polymorphisme (Polimorfisme)
Polimorfisme atau perubahan bentuk merupakan kemampuan dari
reference untuk mengubah sifat menurut object apa yang dijadikan acuan. Dengan
kata lain, kita bisa menggunakan variabel dalam program untuk mengaplikasikan
objek untuk memanggil method yang berbeda. Keuntungan dari polimorfisme
menyediakan multiobject dari subclasses yang berbeda untuk diperlakukan sebagai
object dari superclass tunggal, secara otomatis menunjuk method yang tepat
untuk menggunakannya ke particular object berdasar subclass yang termasuk di
dalamnya.
Polimorfisme tak lengkap jika tanpa overloading. Overloading
adalah suatu keadaan yakni beberapa method memiliki nama yang sama tetapi
memiliki fungsionalitas yang berbeda. Ciri-ciri overloading yaitu nama method
harus sama, sedangkan parameter harus berbeda. Overloading memungkinkan
polimerfisme pada kelas super dan sub kelasnya. Constructor yang terdiri dari
dua atau lebih disebut overloading constructor yang termasuk ciri polimorfisme.
Source Code Sample :
public class StudentInfo
{
public static void main(String[] args)
{
StudentGrad myStudent = new StudentGrad();
myStudent.Write(92,
1,"Candra","Dwi Putro", 2013,"Trunojoyo University of
Madura");
myStudent.Display();
}
}
class Student
{
public void Write(int ID, int Grad, String Fname,
String Lname)
{
m_ID = ID;
m_Graduation = Grad;
m_First = Fname;
m_Last = Lname;
}
public void Display(){
System.out.println("Student"
+ m_ID);
System.out.println("Student :
"+m_First + " " + m_Last);
System.out.println("Graduated
m_Graduation);
}
private int m_ID,
m_Graduation;
private String m_First;
private String m_Last;
}
class StudentGrad
extends Student
{
public void
Write(int ID, int Grad, String Fname, String Lname, int yrGrad, String unSch)
{
super.Write(ID, Grad,
Fname, Lname);
m_UndergradSchool =
unSch;
m_Grad = Grad;
YearGraduated =
yrGrad;
}
public void Display()
{
super.Display();
System.out.println("Graduated:
"+ m_UndergradSchool);
System.out.println("Graduation
: "+ YearGraduated);
}
private Integer
YearGraduated,m_Grad;
private String m_UndergradSchool;
private String m_Major;
}
4.
Abstraction
Abstraction dapat
diartikan sebagai cara pandang kita terhadap suatu sistem yang terdiri dari
kumpulan subsistem yang saling berinteraksi. Subsistem dapat pula diartikan sebagai suatu objek. Contohnya pada Televisi. Dalam Televisi terdapat bermacam
macam subsistem, antara lain : sistem antena dan channel, sistem playback,
sistem pewarnaan, sistem on, sistem off dan lain sebagainya. Semua objek ( sub
sistem ) yang terdapat dalam sistem televisi tersebut saling berinteraksi satu
sama lain. Interaksi disini berupa “pesan” yang dapat disebut juga sebagai
parameter. Contoh penerapan Abstraction dapat dilihat dibawah ini :
class Televisi
{
int volume = 0;
{
int volume = 0;
void naikkanvolume(int
volume)
{
this.volume = this.volume + volume;
System.out.println(“Volume Televisi : ” + this.volume);
}
}
{
this.volume = this.volume + volume;
System.out.println(“Volume Televisi : ” + this.volume);
}
}
public class
TelevisiBeraksi
{
public static void main (String[] args)
{
Televisi televisiku = new Televisi();
televisiku.naikkanvolume(5);
}
}
{
public static void main (String[] args)
{
Televisi televisiku = new Televisi();
televisiku.naikkanvolume(5);
}
}
Dari contoh diatas,
dapat dilihat terjadinya interaksi antar objek didalam system Televisi, saya mengambil contoh volume televisi. Dari public class TelevisiBeraksi
berinteraksi dengan class Televisi dengan mengirimkan pesan informasi yang
berupa parameter –> naikkanvolume(5).
Komentar
Posting Komentar