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.

C#


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Bab2
{
 class hitung
 {
 private double a=0; // information hiding
 private double b=0;

public double nilaiA
 {
 set { a = value; }
 get { return a; }
 }
 public double nilaiB
 {
 set { b = value; }
 get { return b; }
 }
 public double hasilkali()
 {
 return a * b;
 }
 public double hasilbagi()
 {
 return a / b;
 }
 }

class Program
 {
 static void Main(string[] args)
 {
 hitung h = new hitung();

Console.Write("Masukan Nilai A = ");
 h.nilaiA = Convert.ToDouble(Console.ReadLine());
 Console.Write("Masukan Nilai B = ");
 h.nilaiB = Convert.ToDouble(Console.ReadLine());

Console.WriteLine();

Console.WriteLine("Hasil Perkalian = "+h.hasilkali());
 Console.WriteLine();
 Console.WriteLine("Hasil Pembagian = "+h.hasilbagi());

Console.ReadKey();

}
 }
}

C++


#include <cstdlib>
#include <iostream>

using namespace std;

class hitung
{
 private : int a;
 private : int b;

 public : void setA (int e)
 {
 a=e;
 }
 public : int getA()
 {
 return a;
 }
 public : void setB (int w)
 {
 b=w;
 }
 public : int getB()
 {
 return b;
 }
 public : int hasilkali()
 {
 return getA()*getB();
 }
 public : int hasilbagi()
 {
 return getA()/getB();
 }
};

int main(int argc, char *argv[])
{
 hitung h;
 int a,b;

 cout<<"Masukan Nilai A = ";
 cin>>a;
 h.setA(a);
 cout<<"Masukan Nilai B = ";
 cin>>b;
 h.setB(b);
 cout<<"Hasil Perkalian = "<<h.hasilkali()<<endl;
 cout<<"Hasil Pembagian = "<<h.hasilbagi()<<endl;

 system("PAUSE");
 return EXIT_SUCCESS;
}



Java
</div>
<div>

package bab2;
import java.util.*;
class hitung
{
 private double a;
 private double b;

public void setA(int a)
 {
 this.a=a;
 }
 public double getA()
 {
 return this.a;
 }
 public void setB(int b)
 {
 this.b=b;
 }
 public double getB()
 {
 return this.b;
 }
 public double hasilkali()
 {
 return getA()*getB();
 }
 public double hasilbagi()
 {
 return getA()/getB();
 }
}

public class Main {

private static Scanner input = new Scanner(System.in);
 public static void main(String[] args)
 {
 hitung h = new hitung();
 int a,b;

System.out.print("Masukan Nilai A = ");
 a = input.nextInt();
 h.setA(a);
 System.out.print("Masukan Nilai B = ");
 b = input.nextInt();
 h.setB(b);

System.out.println("Hasil Perkalian = "+h.hasilkali());
 System.out.println("Hasil Pembagian = "+h.hasilbagi());
 }

}

</div>
<div>