Monday, 7 May 2012

Information Hidding dan Encapsulation di Java, C# dan C++ || OOP


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;
}  

1 comment:

  1. Hello, just wanted to say, I enjoyed this blog post. It was inspiring.
    Keep on posting!

    Feel free to visit my web blog - coupon codes for JCpenney

    ReplyDelete