Pengertian Encapsulation, Inheritance dan Polymorphism

Inherentance

Inheritanceatau pewarisan pada pemrograman berorientasi objek merupakan suatu hubungan dua buah kelas atau lebih. Dalam hal ini ada kelas yang memiliki atribut dan metode yang sama dengan kelas lainnya beserta atribut dan metode tambahan yang merupakan sifat khusus kelas yang menjadi turunannya. Sebagai contoh, misalkan ada sebuah kelas Titik yang mempunyai kelas turunan Titik3D:

   class Titik
      private integer x
      private integer y
         Titik()
            x < 0
            y < 0
         {end Titik}

         public getX() -> integer
            -> x
         {end getX}
         
         public getY() -> integer
            -> y
         {end getY}
   {end class}
   class Titik3D: Titik
      private integer z

      Titik3D()
         z <- 0
      {end Titik3D}

         public getZ() -> integer
            -> z
         {end getZ}
   
   {end class} 

Keterkaitan antara kelas Titik dan Titik3D adalah kelas Titik3D merupakan kelas turunan dari kelas Titik. Dalam hal ini kelas Titik disebut dengan kelas dasar atau super classatau base classsedangkan kelas Titik3D disebut sebagai kelas turunan atau derived classatau subclass.

Pada contoh di atas, ketika kelas Titik3D dibuat objeknya maka objek tersebut dapat menggunakan metode yang ada pada kelas Titik walau pada kode programnya metode itu tidak dituliskan, misalkan sebagai berikut:

   Titik3D p <-  new Titik3D()
   integer x <-  p.getX()
   integer y <-  p.getY()
   integer z <-  p.getZ()

Keuntungan dari pewarisan adalah tidak perlu mengutak atik kode kelas yang membutuhkan tambahan atribut atau metode saja, karena tinggal membuat kelas turunannya tanpa harus mengubah kode kelas dasarnya. Kelas dasar akan mewariskan semua atribut dan kodenya kecuali konstruktor dan destruktor yang memiliki izin akses publicdan protectedke kelas turunannya dengan izin akses yang sama dengan pada kelas dasar.

Ketika sebuah kelas turunan dibuat objeknya saat eksekusi, maka secara implisit konstruktor kelas dasar dipanggil terlebih dahulu baru kemudian konstruktor kelas turunan dijalankan. Begitu juga saat objek dimusnahkan maka secara destruktor kelas turunan akan dijalankan baru kemudian destruktor kelas dasar dijalankan.

Enkapsulasi

Enkapsulasi adalah pembungkus, pembungkus disini dimaksudkan untuk menjaga suatu proses program agar tidak dapat diakses secara sembarangan atau di intervensi oleh program lain. Konsep enkapsulasi sangat penting dilakukan untuk menjaga kebutuhan program agar dapat diakses sewaktu-waktu, sekaligus menjaga program tersebut.

Dalam kehidupan sehari hari enkapsulasi dapat dimisalkan sebagai arus listrik pada generator, dan sistem perputaran generator untuk menghasilkan arus listrik. Kerja arus listrik tidak mempengaruhi kerja dari sistem perputaran generator, begitu pula sebaliknya. Karena didalam arus listrik tersebut, kita tidak perlu mengetahui bagaimana kinerja sistem perputaran generator, apakah generator berputar kebelakang atau ke depan atau bahkan serong. Begitu pula dalam sistem perputaran generator, kita tidak perlu tahu bagaimana arus listrik, apakah menyala atau tidak.

Begitulah konsep kerja dari enkapsulasi, dia akan melindungi sebuah program dari akses ataupun intervensi dari program lain yang mempengaruhinya. Hal ini sangat menjaga keutuhan program yang telah dibuat dengan konsep dan rencana yang sudah ditentukan dari awal.

Contoh dalam program

Belajar.Java

class belajar{

public String x =”Pintar”;

private String y = “Java”;

}

Pintar.Java

public class Pintar{

public static void main(String[]args){

Coba panggil = new Belajar();

System.out.println(“Panggil X : “+panggil.x);

System.out.println(“Panggil Y : “+panggil.y);

}}

Tipe public dan private mempunyai fungsi yang berbeda. Fungsi public yang terdapat dalam class Coba pada variable x, memungkinkan nilai dari variable x dapat diakses oleh class Belajar. Sedangkan variable y yang menggunakan fungsi private tidak dapat dipanggil didalam class Belajar.

Polymorphisme

Polymorphism, suatu aksi yang memungkinkan pemrogram menyampaikan pesan tertentu keluar dari hirarki obyeknya, dimana obyek yang berbeda memberikan tanggapan/respon terhadap pesan yang sama sesuai dengan sifat masing-masing obyek.

Atau Polymorphic dapat berarti banyak bentuk, maksudnya yaitu kita dapat menimpa (override), suatu method, yang berasal dari parent class (super class) dimana object tersebut diturunkan, sehingga memiliki kelakuan yang berbeda.

Contoh program java nya :

Simpan dengan nama BeautyfullMahasiswa.java

public class BeautyfullMahasiswa extends Mahasiswa{

public void printNama(){

System.out.println(“Hallo, saya Mahasiswa yg cantik n baik”);

Super.printNama();

}

}

Simpan dengan nama Main.java

public class Main{

public static void main(String[] args]) {

BeautyfullMahasiswa mhs = new BeautyfullMahasiswa();

mhs.setNim(“09530524”);

mhs.setNama(“Afrida Asna”);

mhs.printNim();

mhs.printNama();

}

}

Kemudian compile dan run.

C:\>javac BeautyfullMahasiswa.java

C:\>javac Main.java

C:\>java Main

Kontruksi objek mahasiswa

Nim:09530524

Hallo, saya Mahasiswa yg cantik  n baik

Nama: Afrida Asna

C:\>

Terlihat bahwa disini kita mengoverride method printNama(), dengan menambahkan beberapa teks tambahan, sehingga method printNama(), pada class BeautyfullMahasiswa, memiliki perilaku yang berbeda dengan class Mahasiswa.

About these ads

About Ansafhany

Love me or just hate me, but spare me with your indiffirence.....

Posted on 14 April 2010, in Uncategorized. Bookmark the permalink. 17 Komentar.

  1. sip… mantap. ternyata u juga suka pemrograman ya. oya… setelah aku baca keliatanya ada yang kurang contohnya yaitu pada class Mahasiswa nya belum ada, tu kalo ditambah kan bisa lebih bagus…

  2. suka dengan pemrogaman ya rupanya… mantab mantab.. keep blogging..
    blogging for sharing.. salam kenal dari ku,,

  3. dari ratusan mahasiswa di Teknik Informatika Unmuh Ponorogo, baru kali ini aku temukan mahasiswa yang suka ama Bahasa Java… bisa jadi temen sharing ilmu nih…

  4. boleh tw literturx drimna..?

    kuk kayake kebalik.. conto2x..

    thank..
    lanjutkan..

  5. Pengertian Encapsulation, Inheritance dan Polymorphism

    14 April 2010 pada 10:34 (Uncategorized)
    Inherentance

    Inheritanceatau pewarisan pada pemrograman berorientasi objek merupakan suatu hubungan dua buah kelas atau lebih. Dalam hal ini ada kelas yang memiliki atribut dan metode yang sama dengan kelas lainnya beserta atribut dan metode tambahan yang merupakan sifat khusus kelas yang menjadi turunannya. Sebagai contoh, misalkan ada sebuah kelas Titik yang mempunyai kelas turunan Titik3D:

    class Titik
    private integer x
    private integer y
    Titik()
    x < 0
    y integer
    -> x
    {end getX}

    public getY() -> integer
    -> y
    {end getY}
    {end class}
    class Titik3D: Titik
    private integer z

    Titik3D()
    z integer
    -> z
    {end getZ}

    {end class}

    Keterkaitan antara kelas Titik dan Titik3D adalah kelas Titik3D merupakan kelas turunan dari kelas Titik. Dalam hal ini kelas Titik disebut dengan kelas dasar atau super classatau base classsedangkan kelas Titik3D disebut sebagai kelas turunan atau derived classatau subclass.

    Pada contoh di atas, ketika kelas Titik3D dibuat objeknya maka objek tersebut dapat menggunakan metode yang ada pada kelas Titik walau pada kode programnya metode itu tidak dituliskan, misalkan sebagai berikut:

    Titik3D p <- new Titik3D()
    integer x <- p.getX()
    integer y <- p.getY()
    integer z javac BeautyfullMahasiswa.java

    C:\>javac Main.java

    C:\>java Main

    Kontruksi objek mahasiswa

    Nim:09530524

    Hallo, saya Mahasiswa yg cantik n baik

    Nama: Afrida Asna

    C:\>

    Terlihat bahwa disini kita mengoverride method printNama(), dengan menambahkan beberapa teks tambahan, sehingga method printNama(), pada class BeautyfullMahasiswa, memiliki peril

  6. keren tutorialnya, sangat membantu.karena saya lagi mau migrasi ke java.:)
    kinjungi juga blog saya di http://www.agungvibi.wordpress.com

  7. mw tw dapat literatur dr mn ???

  8. Siiippp gan,,,,,,, mantab,,, thanks,,,,

  9. thanx tutorialnya… smga dapat membantu saia.. :)

  10. Keren banget bisa ngerti soal pemrograman Java, koq kayak.nya susah banget pemrograman ini….
    Saya juga ingin bisa lebih ngerti soal Java, gmana sich solusinya , sist ? :-)

  11. terima kasih ya.,., artikel ni sudah membantu tgas kuliah saya.,., good luck for you.,., :D

Berikan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Logout / Ubah )

Twitter picture

You are commenting using your Twitter account. Logout / Ubah )

Facebook photo

You are commenting using your Facebook account. Logout / Ubah )

Google+ photo

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

Ikuti

Get every new post delivered to your Inbox.

%d blogger menyukai ini: