OBJECT ORIENTED PROGRAMMING (OOP)


1.
     Encapsulation (Enkapsulasi)
           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;
      void naikkanvolume(int 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);
    }
    }

           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