BAB 2(Encapsulation)

Enkapsulasi/pengkapsulan(Encapsulation)

1.apa yang di maksud dengan 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.

2.Mengapa harus  menggunakan Encapsulation?Encapsulation  yang terkadang disebut juga dengan information hiding pada dasarnya adalah kombinasi antara data
dan method pada sebuah class yang ditujukan untuk menyembunyikan detail dari user (pengakses class) terhadap
suatu object. Jika kita ambil contoh, maaf, yang agak sedikit vulgar tentang bagaimana orang lain “mengakses data”
milik kita. Anggaplah orang ingin tahu apakah kita mempunyai penyakit panu yang merupakan suatu “data” pada
diri kita. Sudah barang tentu, secara umum, kita tidak akan mengijinkan orang lain melihat langsung kulit kita
karena itu adalah bagian “pribadi”. Akan tetapi orang lain dapat mengetahuinya menggunakan “metode”
penyampaian yang kita berikan: “Saya tidak panuan”. Jadi ada bagian “publik” dan juga ada bagian “pribadi”.
Di dalam OOP, encapsulation dapat dilakukan dengan terlebih dahulu memahami  access modifier  yang
mendefiniskan bagaimana suatu data atau method dapat diakses.  Ada empat macam access modifier pada OOP,
yaitu:
–  Private   : hanya diakses class itu sendiri
–  Public  : dapat diakses dari manapun
–  Protected : hanya dapat diakses dari package (satu folder) dan subclass
–  Default  : tanpa modifier, hanya bisa diakses dari package dan class itu sendiri.
Dengan menggunakan encapsulation kita dapat membatasi akses  langsung suatu class atau program kecuali melalui
suatu method yang sudah diberikan.

3.di bawah ini adalah programnya:

C#

/*
* Created by SharpDevelop.
* User: user
* Date: 08/04/2013
* Time: 10:28
*
* To change this template use Tools | Options | Coding | Edit Standard Headers.
*/
using System;

namespace ecapsulation_1
{
class Program
{
public static void Main(string[] args)
{
Console.WriteLine("Mencari Nilai Persegi Panjang");
Console.WriteLine("");
persegipanjang sg = new persegipanjang();
sg.setPanjang(15);
sg.setLebar(10);
Console.WriteLine("panjang : "+sg.getPanjang());
Console.WriteLine("lebar   : "+sg.getLebar());
Console.WriteLine("luas    : "+sg.getLuas());

Console.Write("Press any key to continue . . . ");
Console.ReadKey(true);
}
}

class persegipanjang
{
private double panjang;
private double lebar;

public persegipanjang()
{
panjang=0;
lebar=0;
}
private double luas(double p,double l)
{
return (p*l);
}
public void setPanjang(double panjang)
{
this.panjang = panjang;
}
public void setLebar(double lebar)
{
this.lebar = lebar;
}
public double getPanjang()
{
return panjang;
}
public double getLebar()
{
return lebar;
}
public double getLuas()
{
return luas(panjang,lebar);
}
}

}

ini debugnya:
Capture

C++

#include <cstdlib>
#include <iostream>
using namespace std;
class segipanjang{
private :int panjang, lebar;
public : segipanjang()
{
panjang=0;
lebar=0;
}
private : int luas(int p,int l)
{
return (p*l);
}
public : void setPanjang(int pjg)
{
panjang = pjg;
}
public : void setLebar(int lbr)
{
lebar = lbr;
}
public : int getPanjang()
{
return panjang;
}
public :int getLebar()
{
return lebar;
}
public : int getLuas()
{
return luas(panjang,lebar);
}
};
int main(int argc, char *argv[])
{
segipanjang sg;
sg.setPanjang(15);
sg.setLebar(10);
cout<<"panjang : "  <<sg.getPanjang()<<"\n";
cout<<"lebar   : "  <<sg.getLebar()<<"\n";
cout<<"luas    : "  <<sg.getLuas()<<"\n";
cout<<endl;
system("PAUSE");
return EXIT_SUCCESS;
}

ini debugnya:

Capture2JAVA


package encapsultion;
public class Main
{
public static void main(String[] args)
{
segipanjang sg = new segipanjang();
sg.setPanjang(15);
sg.setLebar(10);
System.out.println("panjang : "+sg.getPanjang());
System.out.println("lebar   : "+sg.getLebar());
System.out.println("luas    : "+sg.getLuas());

}

}

class segipanjang
{
private double panjang;
private double lebar;

public segipanjang()
{
panjang=0;
lebar=0;
}
private double luas(double p,double l)
{
return (p*l);
}
public void setPanjang(double panjang)
{
this.panjang = panjang;
}
public void setLebar(double lebar)
{
this.lebar = lebar;
}
public double getPanjang()
{
return panjang;
}
public double getLebar()
{
return lebar;
}
public double getLuas()
{
return luas(panjang,lebar);
}
}

ini debugnya:
Capture1
itulah contoh dan penjelsan dari saya moga dapat bermanfaat dan menjadi baromater buat anda…

Tinggalkan Balasan

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

Logo WordPress.com

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

Gambar Twitter

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

Foto Facebook

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

Foto Google+

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

Connecting to %s