Information hidding adalah Penyembunyian sebuah Filed dari kelas lain agar tidak bisa di akses secara langsung. Information Hidding di lakukan dengan cara memberikan modifier private pada filed yang di sembunyikan dari kelas lain.
Encapsulation adalah proses pengelompokan Filed dan method dengan memberikan hak akses kepada Filed dan method sehingga Filed hanya dapat di akses melalui method accessor.
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.
Csharp
class Program
{
public static void Main(string[] args)
{
Satu s = new Satu();
Console.Write("Input satu = ");
s.A = Convert.ToInt32(Console.ReadLine());
Console.Write("Input dua = ");
s.B = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Hasil Penjumlahan = {0}",s.HasilJumlah());
Console.WriteLine("Hasil Pengurangan = {0}",s.HasilKurang());
Console.Write("\nPress any key to continue . . . ");
Console.ReadKey(true);
}
}
class Satu
{
private int a; //information hidding
private int b;
public int A // ---> encapsulation
{
get { return a; }
set { a = value; }
}
public int B
{
get { return b; }
set { b = value; }
}
public int HasilJumlah()
{
return A+B;
}
public int HasilKurang()
{
return A-B;
}
}
Java
package OOPpraktikum;
import java.util.*;
public class MainClass
{
private static Scanner input = new Scanner(System.in);
public static void main(String[] args)
{
Satu s = new Satu();
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());
System.out.println("\nPress any key to continue . . . ");
}
}
class Satu
{
private int a; //information hidding
private int b;
public void setA(int a) //--->encapsulation
{
this.a = a;
}
public int getA() //--->encapsulation
{
return this.a;
}
public void setB(int b)
{
this.b = b;
}
public int getB()
{
return this.b;
}
public int HasilJumlah()
{
return getA()+getB();
}
public int HasilKurang()
{
return getA()-getB();
}
}
C++
#include <cstdlib>
#include <iostream>
using namespace std;
class Satu //--->Class
{
private : int a; //information hidding
private : int b;
public : void setA(int c) //--->encapsulation
{
a = c;
}
public : int getA() //--->encapsulation
{
return a;
}
public : void setB(int d)
{
b = d;
}
public : int getB()
{
return b;
}
public : int HasilJumlah()
{
return getA()+getB();
}
public : int HasilKurang()
{
return getA()-getB();
}
};
int main(int argc, char *argv[])
{
Satu s;
int a,b;
cout<<"Input satu = ";
cin>>a;
s.setA(a);
cout<<"Input dua = ";
cin>>b;
s.setB(b);
cout<<"Hasil Penjumlahan = "<<s.HasilJumlah()<<endl;
cout<<"Hasil Pengurangan = "<<s.HasilKurang()<<endl;
system("PAUSE");
return EXIT_SUCCESS;
}