ENKAPSULASI, INHERITAS, POLIMORPHISME, & PACKAGE PADA PBO

  1. ENKAPSULASI (bahasa Inggris:encapsulation), secara umum merupakan suatu proses yang membuat satu jenis paket data jaringan menjadi jenis data lainnya. Enkapsulasi terjadi ketika sebuah protokol yang berada pada lapisan yang lebih rendah menerima data dari protokol yang berada pada lapisan yang lebih tinggi dan meletakkan data ke format data yang dipahami oleh protokol tersebut.
    – Pembungkusan data
    Pembungkusan atau pengkapsulan merupakan proses membuat paket data objek bersama dengan metode-metodenya. Berdasarkan kode program, proses memisahkan aspek-aspek objek dilakukan dengan cara pembungkusan.
    Dalam melakukan pembungkusan kode dan data di dalam java, terdapat tiga tingkat akses yang harus diketahui, yaitu private, protected, dan public.
    – Modifier
    Ada 4 tipe access modifier dalam Java:
    Modifier Public : Modifier public adalah modifier yang memberi kemampuan tak terbatas bagi variabel atau method untuk diakses. Artinya, variabel atau method yang menggunakan modifier public akan dapat diakses dari mana saja, baik dari dalam class sendiri, maupun dari class lain. Setiap attribut atau method dengan akses modifier public maka dapat di akses oleh objek lain dan tidak ada batasan.
    Modifier Protected :
    Modifier protected memberikan kemampuan pada variabel atau method agar dapat diakses semua kelas dalam satu paket. Attribut atau method dengan akses modifier protected  tidak dapat diakses oleh kelas lain di luar paket (kecuali kelas turunan).  Attribut atau method dengan akses modifier protected  dapat diakses oleh kelas yg merupakan subclass dari kelas dimana attribut atau method tersebut ditempatkan.
    Modifier Default :
    Attribut atau method dengan akses modifier  default maka variabel atau method tersebut dapat di akses oleh kelas lain dalam paket yang sama. Tidak ada keyword khusus untuk mendeklarasikan modifier default access sehingga ketika attribut atau method didefinisikan tanpa akses modifier maka sebenarnya akses modifiernya adalah default.
    Modifier Private :
    Merupakan modifier yang membatasi aksesibilitas variabel atau method, sehingga hanya dapat diakses dari kelas yang sama maka attribut atau method dengan akses modifier ini hanya bisa diakses oleh kelas itu sendiri.
    -Akses data
    Hak akses suatu class atau method yang juga biasanya disebut enkapsulasi dalam bahasa pemrograman java. Enkapsulasi itu sendiri merupakan sebuah pelindung atau dapat disebut juga sebuah pembungkus program atau data yang akan kita buat dalam pemrograman java. Nah, enkapsulasi tersebut terdiri dari tiga jenis yaitu PUBLIC, PROTECTED, dan PRIVATE :
    Public
    Merupakan kata kunci yang digunakan dalam java yang memungkinkan setiap variabel dan method
    yang di deklarasikan dalam class public dapat di akses oleh semua class yang sama, subclass atau non subclass yang sama di package yang sama, subclass dan non subclass di package yang berbeda.
    Protected
    Merupakan kata kunci yang di deklarasikan untuk memproteksi suatu class agar setiap variabel dan method yang dideklarasikan tidak dapat di akses oleh non subclass di dalam package yang sama. Dalam class protected, yang dapat mengakses variabel dan method nya adalah jika methodnya berada pada classnya sama, subclass dan non sub yang sama di package yang sama, dan subclass di package yang berbeda.
    Private
    Merupakan kata kunci yang dideklarasikan dalam suatu class agar setiap variabel dan method yang berada dalam class private ini hanya dapat diakses oleh class yang sama. Didalam bahasa pemgrograman java class yang bersifat private memproteksi agar semua variabel dan methodnya tidak dapat di akses oleh semua subclass dan non subclass di package yang sama, dan subclass dan non subclass di package yang berbeda.
    Contoh Listing Program Enkapsulasi:

    //pertama kita buat class mahasiswa.
    public class Mahasiswa{
    private String nama;
    private String alamat;
    private String agama;
    public Mahasiswa(String n, String almt,String agma) {
    this.nama = n;
    this.alamat = almt;
    this.agama = agma;
    }
    public String tampilkanNama() {
    return nama;
    }
    public String tampilkanalamat() {
    return alamat;
    }
    public String tampilkanagama() {
    return agama;
    }
    }
    // Lalu kita membuat class main
    public class main{
    public static void main(String[] args) {
    Mahasiswa Intan = new Mahasiswa(“Bayu “, “Bogor”,”Islam”);
    System.out.println(“Nama \t : ” + Bayu.tampilkanNama());
    System.out.println(“Alamat \t : ” +  Bayu.tampilkanalamat());
    System.out.println(“Agama \t : ” +  Bayu.tampilkanagama());
    System.out.println();
    Mahasiswa Nurjanah = new Mahasiswa(“Patar”, “Depok”,”Kristen Protestan”);
    System.out.println(“Nama \t : ” + Patar.tampilkanNama());
    System.out.println(“Alamat \t : ” + Patar.tampilkanalamat());
    System.out.println(“Agama \t : ” + Patar.tampilkanagama());
    System.out.println();
    }
    }
    OUTPUT PROGRAM :
  2. INHERITAS
    Pewarisan (Inheritance) merupakan sifat dalam bahasa berorientasi objek yang memungkinkan sifat-sifat dari suatu kelas diturunkan ke kelas lain. Sistem OOP memungkinkan kita untuk mendefinisikan suatu kelas baru dengan mewarisi sifat dari kelas lain yang sudah ada. Penurunan sifat ini bisa dilakukan dilakukan secara bertingkat-tingkat, sehingga semakin ke bawah maka kelas tersebut semakin spesifik.

    pewarisan memberikan atau mewariskan sesuatu kepada keturunan berikutnya. misalnya, seorang anak pasti akan mewarisi beberapa sifat atau perilaku yang dimiliki oleh ibu/bapaknya. dalam konteks ini, suatu kelas dalam program dapat diturunkan menjadi kelas-kelas baru lainnya yang akan mewarisi beberapa sifat atau perilaku dari kelas induknya. sebagai contoh, apabila anda memiliki kelas A dalam program yang anda buat maka anda dapat membentuk kelas-kelas turunan dari kelas A tersebut(Misalnya, kelas B) yang mewarisi sifat-sifat yang terkandung dalam kelas A. dalam proses pembuatan kelas turunan tersebut, Anda dapat menambahkan sifat dan perilaku baru ke dalam kelas B, yang sebelumnya tidak dimiliki dalam kelas A. Dalam terminologi java, kelas induk dinamakan dengan superclass dankelas turunan dinamakan dengan subclass. untuk membuat kelas anak atau kelas turunan berdasarkan class yang ada, anda dapat menggunakan kata kunci extends.

    keterangan : extends artinya diturunkan.

    Contoh Listing Program :

    program induk kakek.java

    public class kakek
    {
        protected String namekakek;
        protected String address;
        public kakek()
        {
            System.out.println(“\n Program Demo Inheritance”);
            System.out.println(“============================”);
            System.out.println(”   Masukan construktor kakek  “);
            System.out.println(“–Dijalankan oleh class Bapak–“);
            namekakek=”Doni wijaya”;
            address=”Merauke”;
        }
        public kakek(String name,String address)
        {
            this.namekakek=namekakek;
            this.address=address;
        }    
        public String getName()
        {
            return namekakek;
        }
        public String getAddress()
        {
            return address;
        }
    }

    program anak/turunan:

    program bapak.java

    public class bapak extends kakek
    {
        protected String namebapak;
        protected String addressbapak;
        public bapak()
        {
            System.out.println(“Nama Kakek :”+namekakek);
            System.out.println(“Address kakek :”+address);
            System.out.println(“\n”);
            System.out.println(” Masukan Construktor Bapak “);
            System.out.println(“—-dijalankan class cucu—-“);
            namebapak=”Ridho Saputra”;
            addressbapak=”Yogyakarta”;
            }
            public bapak(String namebapak,String addressbapak)
            {
                this.namebapak=namebapak;
                this.addressbapak=addressbapak;
            }
            public String getNama()
            {
                return namebapak;
            }
            public String getAddress()
            {
                return addressbapak;
            }
            public static void main(String []args)
            {
                bapak sari=new bapak();
            }
    }

    program cucu.java

    public class cucu extends bapak
    {
        public cucu()
        {
            System.out.println(“Nama Bapak  :”+namebapak);
            System.out.println(“Address Bapak :”+addressbapak);
        }
        public static void main(String []args)
        {
            String namacucu;
            cucu lagan=new cucu();
            System.out.println(“\nSaya adalah CUCU”);
            System.out.println(“Nama Saya : Samuel”);
            System.out.println(“”);
        }
    }

    jika ingin menjalankan program datas makan kita perlu mengkompile terlebih dahulu class kakek.java, jangan di run karena main programnya terdapat dalam class bapak.java dan cucu.java.

    jika kita menjalankan class bapak maka akan seperti berikut tampilannya:

     

  3. POLYMORPHISM merupakan salah satu konsep penting dalam object oriented programming (OOP) khususnya di bahasa pemrograman Java setelah abstraction dan inheritance. Polymorphism berarti banyak bentuk. Ada beberapa definisi berbeda tentang polymorphism yang berkaitan dengan pemrograman berorientasi obyek. Sedangkan apa yang dimaksud dengan polymorphism sendiri, sebenarnya sulit untuk didefinisikan. Sejalan dengan contoh yang diberikan, Anda diharapkan dapat mengerti dan memahami konsep polymorphism itu sendiri.

    Polymorphism sering dikaitkan dengan penggunaan lebih dari satu metoda dengan nama sama. Penggunaan metoda dengan nama sama dapat diterapkan dengan method overloading dan method overriding. Peran polymorphism sebenarnya tidak terbatas hanya pada hal tersebut. Ada keterkaitan antara polymorphism dan inheritance (turunan).

    Dalam konsep turunan, saat obyek dari subclass dikonstruksi, obyek dari superclass juga ikut dikonstruksi. Jadi setiap instance dari subclass adalah juga instance dari superclass. Apabila Anda mendeklarasikan metoda dengan parameter dari tipe superclass, Anda diperbolehkan untuk memberi argumen berupa obyek subclass yang merupakan turunan dari superclass tersebut.

    Berikut ini adalah contoh program yang dapat memberikan gambaran berkaitan dengan konsep polymorphism. Perlu dipahami dan dimengerti bahwa kelas Object merupakan akar dari semua kelas Java dan menduduki puncak tertinggi dalam hirarkhi kelas. Program akan mendefinisikan kelas yang berkaitan dengan bidang datar secara sederhana termasuk beberapa kelas turunannya (kelas PersegiPanjang dan Balok) dan membatasi hanya pada penerapan method overriding.

    Contoh Listing Program :

    // Nama file : Polimorphism.java
    // Contoh penerapan konsep polimorphism
    public class Polimorphism {
       public static void main(String[ ] args) {
          cetakObyek(new Balok());
          cetakObyek(new PersegiPanjang());
          cetakObyek(new BangunDatar());
          cetakObyek(new Object());
       }
       
       public static void cetakObyek(Object obyek) {
          System.out.println(obyek);
       }
    } // Akhir kelas Polimorphism
    class Balok extends PersegiPanjang {
       public String toString() {
          return "Mempunyai sisi panjang, lebar dan tinggi";
       }
    }
    class PersegiPanjang extends BangunDatar {
       public String toString() {
          return "Mempunyai sisi panjang dan lebar";
       }
    }
    class BangunDatar extends Object {
       public String toString() {
          return "Mempunyai berbagai bentuk";
       }
    }

    Output Program :
    Konsep polimorfisme (polymorphism) di Java

  4. PACKAGE
    Package adalah suatu cara untuk memanage class-class yang kita buat. Package akan sangat bermanfaat Jika class-class yang kita buat sangat banyak sehingga perlu dikelompokkan berdasarkan kategori tertentu.
    -Menyimpan program
    Misalnya saja kita mempunyai 3 buah class menu makanan, dimana yang pertama adalah class Pagi untuk menupagi , yang kedua adalah class Siang untuk menusiang, dan yang ketiga adalah class Sore untuk menusore. Kita tetap dapat mendeklarasikan 3 class tersebut dengan nama masing-masing, dengan cara mendeklarasikannya package masingmasing class seperti yang tampak di bawah ini:
    deklarasi-package2

    Yang perlu kita perhatikan pada saat deklarasikan package, bahwa class tersebut harus disimpan pada suatu direktori yang sama dengan nama package-nya. Berkenaan dengan class Pagi diatas, class Pagi pada package menupagi harus disimpan pada direktori menupagi, class Siang pada package menusiang harus disimpan pada direktori menusiang, class Sore pada package menusore harus disimpan pada direktori menusore, lihat gambar 1 dan 2.
    posisi direktori package

    Pada gambar 1 terlihat bahwa folder menupagi,folder menusiang,dan folder menusore disimpan sejajar dengan program class pemanggil package yaitu RestoranBeraksi.java pada folder projek restoran.

    posisi-kelas
    Pada gambar 2 terlihat bahwa folder menu pagi berisi program class Pagi.java yang menyimpan package menupagi,folder menusiang berisi program class Siang.java yang menyimpan package menusiang,dan folder menusore berisi program class Sore.java yang menyimpan package menusore.

    Selanjutnya posisi class yang menyimpan package
    posisi-kelas
    Pada gambar 2 terlihat bahwa folder menupagi berisi program class Pagi.java yang menyimpan package menupagi,folder menusiang berisi program class Siang.java yang menyimpan package menusiang,dan folder menusore berisi program class Sore.java yang menyimpan package menusore.

    – Import class
    Suatu class dapat meng-import class lainnya sesuai dengan nama package yang dipunyainya.
    Misalnya saja kita dapat meng-import class Pagi.java dalam package menupagi dengan deklarasikan kata kunci import.

    import menupagi.Pagi;
    public class RestoranBeraksi {

    }

    Jika kita ingin meng-import semua class yang ada pada package menupagi, maka kita dapat mendeklarasikannya
    dengan menuliskan tanda *.
    import menupagi.*;

    Satu hal yang perlu kita ketahui, pada saat kita ingin meng-import suatu class dalam suatu package, pastikan letak package tersebut satu direktori dengan class yang ingin meng-import. Dalam contoh gambar 1 terlihat bahwa program RestoranBeraksi.Java berada satu direktori dengan folder paket-paket yaitu folder Projek Restoran.
    Jika letak package tersebut tidak satu direktori dengan class yang ingin meng-import, maka letak direktori package itu haruslah terdaftar dalam CLASSPATH.

    – Projek lengkap Restoran
    1. Program package menupagi (Pagi.java)
    Buatlah program class Pagi.java yang disimpan pada folder menupagi, seperti terlihat pada gambar di bawah ini
    menupagi

    2. Program package menusiang (Siang.java)
    Buatlah program class Siang.java yang disimpan pada folder menusiang, seperti terlihat pada gambar di bawah ini

    menusiang

    3. Program package menusore (Sore.java)

    Buatlah program class Sore.java yang disimpan pada folder menusore, seperti terlihat pada gambar di bawah ini

    menusore

    4. Program Class pemanggil package (RestoranBeraksi.java)

    Buatlah program class Objek RestoranBeraksi.java yang disimpan pada folder Projek Restoran, seperti terlihat pada gambar di bawah ini

    restoranberaksi

    Setelah selesai eksekusi RestoranBeraksi.java maka hasilnya adalah
    hasil-eksekusi

    Sumber :
    http://ebestmateri.blogspot.co.id/2010/07/pembungkusan-enkapsulasi-pada-java.html

    http://dantikpuspita.com/polymorphism-pada-konsep-pbo-java-programming/

    http://updatenewbie.blogspot.co.id/2016/01/materi-tentang-enkapsulasi-java.html

    JAVA: Pewarisan (Inheritance) pada java & contoh program Inheritance

    https://mu4n4m.wordpress.com/2008/12/22/package-dalam-bahasa-java/

    http://www.termasmedia.com/pemrograman/java/250-memahami-konsep-polimorfisme-polymorphism-di-java.html

Tinggalkan komentar