Rabu, 11 April 2012

ENKAPSULASI


Istilah enkapsulasi sebenarnya adalah kombinasi data dan fungsionalitas dalan sebuah unit tunggal sebagai bentuk untuk menyembunyikan detail informasi. Inilah salah satu konsep dalam OOP  yang tidak terdapat pada procedural programming. Tipe data record pada Pascal atau Stuct pada C hanya mengumpulkan data namun tidak untuk fungsi atau operasi. Kecuali pada borland delpi 2006, record telah berevolusi menjadi bentuk yang lebih maju. Record bisa memiliki constructor, property, method, data field, dan tipe bersarang. Bedanya dengan keals adalah, record tidak mendukung pewarisan, record bisa mempunyai data variant sementara kelas tidak,record dihantarkan by value, kelas by reference,record dialokasikan secara otomatis sementara kelas harus secara eksplisit, record tidak mempunyai destructor, kata kunci virtual,dynamic, dan message tidak dapat digunakan pada record.

Kelas menyatukan data dengan operasi dalam satu kesatuan. Sebagai tambahan dalam enkapsulasi, OOP lebih dikarakterisasikan dengan pewarisan(inheritance) dan polimorfisme(Polymorphism). Proses enkapsulasi memudahkan kita untuk menggunakan sebuah objek dari suatu kelas karena kita tidak perlu mengetahui segala hal secara rinci. Enkapsulasi menekankan pada antarmuka suatu kelas, atau dengan kata lain bagaimana menggunakan objek kelas tertentu. Sebuah contoh, kelas mobil meyediakan antarmuka fungsi untuk menjalankan mobil tersebut, tanpa kita perlu tahu komposisi bahan bakar, udara, dan kalor yang diperlukan untuk proses tersebut. Disini terjadi proses enkpsulasi  terhadap rincian bagaimana sebuah mobil dijalankan.

Contoh Program Enkapsulasi :

                LISTING



public class ContohBaik{
            public static void main(String[] args){
                        BujurSangkar bs = new BujurSangkar (8);
                          System.out.println("Luas bs dengan sisi 8 = "+ bs.cariLuas());
                          System.out.println("Keliling  bs dengan sisi 8 = "+ bs.cariKeliling());
                          System.out.println(" ");
                        PersegiPanjang pp = new PersegiPanjang(5,2);
                          System.out.println("Luas pp dengan p = 5 dan l = 2 adalah " + pp.cariLuas());
System.out.println("Keliling pp dengan p = 5 dan l = 2 adalah " +         pp.cariKeliling());
                          System.out.println(" ");
                        BangunDatar bd = new BujurSangkar (8);
                         System.out.println("Luas bd dengan sisi 8 = " + bs.cariLuas());
                         System.out.println("Keliling bd dengan sisi 8 = " + bs.cariKeliling());
                         System.out.println(" ");
                        bd = new PersegiPanjang(5,2);
                         System.out.println("Luas pp dengan p = 5 dan l = 2 adalah "+ pp.cariLuas());
System.out.println("Keliling pp dengan p = 5 dan l = 2 adalah "+  pp.cariKeliling());
            }
}
abstract class BangunDatar {
            abstract double cariLuas();
            abstract double cariKeliling();
}
class PersegiPanjang extends BangunDatar {
            private int lebar = 1;
            private int panjang = 1;
            PersegiPanjang (int p,int l){
            panjang = p;
            lebar = l;
        }
            double cariLuas(){
                        return panjang * lebar;
            }
            double cariKeliling(){
                        return 2 * (panjang + lebar);
            }
}
class BujurSangkar extends BangunDatar {
            private int sisi = 1;
        BujurSangkar (int s){
            sisi = s;
            }
        double cariLuas(){
                        return sisi * sisi;
            }
            double cariKeliling(){
                        return 4 * sisi;
            }
}




               OUTPUT



Prinsip OOP yang dapat diterapkan di contoh diatas adalah :
1. Adanya abstraksi kelas-kelas;
2. Adanya pewarisan (inheritance) -->adanya kata kunci extends;
3. Adanya enkapsulasi (variabel dalam dibuat private);
4. Adanya polymorphism.

Nama : Esra Febrina Siregar
Kelas : 2IA13
NPM : 52410444

sumber : Widiarta Wisnu .2007 .Dari Pascal ke Java .Bandung.Informatika Bandung

Tidak ada komentar:

Posting Komentar