Encapsulation

Encapsulation sering kali digunakan secara bergantian yang kadang masih menimbulkan perbedaan. Secara umum Information Hiding adalah menyembunyikan attribute suatu object dari object lain sedangkan encapsulation menyembunyikan methodnya. Penyembunyian method dan attribute dilakukan dengan cara memberikan modifier “private”.

Ada dua method yang digunakan dalam  Encapsulation yang masih dalam kelas yang sama, yaitu :

  1. Method Setter yang memberikan nilai pada attribute private
  2. Method Getter yang mengambil nilai dari attribute private

Berikut ini keuntungan dari prinsip encapsulation :

  • Bersifat independen. Suatu modul yang terenkapsulasi dengan baik akan bersifat independen dari yang lain. Sehingga dapat digunakan pada bagian manapun dari program.
  • Bersifat transparan. Jika Anda melakukan modifikasi pada suatu modul, maka perubahan tersebut akan dirasakan oleh semua bagian yang menggunakan modul tersebut.
  • Menghindari dari efek yang diluar perencanaan. Modul yang terenkapsulasi dengan baik hanya akan berinteraksi dengan bagian program melalui variable input dan output yang telah didefinisikan sebelumnya. Sehingga dapat mengurangi kemungkinan bug.

C#

</pre>
<b>using </b>System;

&nbsp;

<b>namespace </b>qa

{

class Program

{

<b>public </b>class Segi{

<b>private </b><b>double </b>sisiA;

<b>private </b><b>double </b>sisiB;

<b>public </b><b>Segi</b>(){

sisiA =0; sisiB=0;

}

<b>private </b><b>double </b><b>luas</b>(<b>double </b>a, <b>double </b>b)

{

return a*b;

}

<b>public </b>void <b>setSisiA</b>(<b>double </b>a)

{

<b>this</b>.sisiA=a;

}

<b>public </b>void <b>setSisiB</b>(<b>double </b>b)

{

<b>this</b>.sisiB=b;

}

&nbsp;

<b>public </b><b>double </b><b>getSisiA</b>()

{

return sisiA;

}

<b>public </b><b>double </b><b>getSisiB</b>(){

return sisiB;

}

<b>public </b><b>double </b><b>getluas</b>(){

return <b>luas</b>(sisiA, sisiB);

}

}

<b>public </b>static void <b>Main</b>(string[] args)

{

Segi st = <b>new </b><b>Segi</b>();

st.<b>setSisiA</b>(20);

st.<b>setSisiB</b>(10);

Console.<b>WriteLine</b>("Luas Persegi P * L");

Console.<b>WriteLine</b>("Sisi P : "+ st.<b>getSisiA</b>());

Console.<b>WriteLine</b>("Sisi L : "+ st.<b>getSisiB</b>());

Console.<b>WriteLine</b>("Luas  : "+ st.<b>getluas</b>());

Console.<b>Write</b>("Press any key to continue . . . ");

Console.<b>ReadKey</b>(<b>true</b>);

}

}

&nbsp;

}
<pre>

C#

Java

</pre>
package encap;

import java.util.*;

&nbsp;

/**

*

* @author epong

*/

public class Main {

&nbsp;

private static Scanner input = new Scanner(System.in);

public static void main(String[] args)

{

Satu s = new Satu();

&nbsp;

int a,b;

System.out.print("Input satu = ");

a = input.nextInt();

s.setA(a);

System.out.print("Input dua = ");

b = input.nextInt();

s.setB(b);

System.out.println("Hasil Penjumlahan = "+s.HasilJumlah());

System.out.println("Hasil Pengurangan = "+s.HasilKurang());

&nbsp;

System.out.println("\nPress any key to continue . . . ");

&nbsp;

}

}

&nbsp;

&nbsp;

&nbsp;

class Satu

{

private int a; //information hidding

private int b;

&nbsp;

public void setA(int a) //--->encapsulation

{

this.a = a;

}

&nbsp;

public int getA() //--->encapsulation

{

return this.a;

}

&nbsp;

public void setB(int b)

{

this.b = b;

}

&nbsp;

public int getB()

{

return this.b;

}

&nbsp;

public int HasilJumlah()

{

return getA()+getB();

}

&nbsp;

public int HasilKurang()

{

return getA()-getB();

}

}
<pre>

Capture
C++

</pre>
#include <iostream>

&nbsp;

using namespace std;

class Penjumlahan{

public:

Penjumlahan (int i = 0)

{

total = i;

}

void inputAngka(int angka)

{

cout<<"masukkan angka: ";

cin>>angka;

total += angka;

}

int hasilTotal()

{

return total;

};

// data yang disembunyikan

private:

int total;

};

int main( )

{

Penjumlahan a;

a.inputAngka (10);

a.inputAngka (20);

a.inputAngka (30);

cout << "Total " << a.hasilTotal() <<endl;

return 0;

&nbsp;

}
<pre>

C++

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