Pengertian dasar dari encapsulation adalah penyembunyian data dengan membungkus
seluruh member dari class tersebut
sehingga nilainya tidak dapat diubah menjadi apa yang tidak diinginkan atau
menyelipkan sebuah proses bisnis didalamnya. Pengertian lainnya adalah sebuah
proses dalam menyatukan data yang kita kelola menjadi sebuah kelompok tertentu
dimana pembentukannya terjadi secara abstrak.
Ecapsulation
yaitu merupakan sebuah proses pengelompokan property
& method serta memberikan hak
akses kepada property & method yang menyebabkan property hanya dapat diakses melalui method accessor dan tidak dapat di rubah tanpa melalui prosedur yang
seharusnya yang diatur pada method mutator.
Di
dalam OOP encapsulation berbentuk class yang terdiri dari property & method yang mempunyai hak akses tertentu terhadap environment/lingkungannya, yang biasa
disebut Acces Modifier. Encapsulation biasa dilambangkan dengan
penggunaan accessor dan mutator atau disebut juga dengan metode get dan set. Dinamakan accessor (get) karena metode ini hanya mengambil
tanpa mengubah state dari member
tersebut, dan dinamakan mutator (set) karena metode ini juga mengubah state dari member tersebut. Method-method ini dideklarasikan sebagai
public, sedangkan variable
dideklarasikan sebagai private.
Berikut merupakan
contoh program pada C#, Java serta C++ mengenai proses metode encapsulation dengan study kasus
penambahan nilai a dan b dengan membentuk dua class
C#
/*
* Created by SharpDevelop.
* User: user
* Date: 25/04/2012
* Time: 19:45
*
* To change this template use Tools | Options | Coding | Edit Standard Headers.
*/
using System;
namespace encasulation
{
class Program
{
public static void Main(string[] args)
{
ec cc = new ec();
Console.Write("masukkan nama : ");
cc.Nama=Convert.ToString(Console.ReadLine());
Console.Write("masukkan alamat : ");
cc.Alamat=Convert.ToString(Console.ReadLine());
cc.tampil();
Console.Write("Press any key to continue . . . ");
Console.ReadKey(true);
}
}
class ec
{
//field
private string nama;//information hidding
private string alamat;//information hidding
//getset (encapsulation)
public string Nama
{
get { return nama; }
set { nama = value; }
}
public string Alamat
{
get { return alamat; }
set { alamat = value; }
}
//method
public void tampil()
{
//menampilkan atau panggil getset
Console.WriteLine("nama saya {0}",Nama);
Console.WriteLine("alamat saya {0}",Alamat);
}
}
}
* Created by SharpDevelop.
* User: user
* Date: 25/04/2012
* Time: 19:45
*
* To change this template use Tools | Options | Coding | Edit Standard Headers.
*/
using System;
namespace encasulation
{
class Program
{
public static void Main(string[] args)
{
ec cc = new ec();
Console.Write("masukkan nama : ");
cc.Nama=Convert.ToString(Console.ReadLine());
Console.Write("masukkan alamat : ");
cc.Alamat=Convert.ToString(Console.ReadLine());
cc.tampil();
Console.Write("Press any key to continue . . . ");
Console.ReadKey(true);
}
}
class ec
{
//field
private string nama;//information hidding
private string alamat;//information hidding
//getset (encapsulation)
public string Nama
{
get { return nama; }
set { nama = value; }
}
public string Alamat
{
get { return alamat; }
set { alamat = value; }
}
//method
public void tampil()
{
//menampilkan atau panggil getset
Console.WriteLine("nama saya {0}",Nama);
Console.WriteLine("alamat saya {0}",Alamat);
}
}
}
C++
#include <cstdlib>
#include <iostream>
using namespace std;
class ec
{
private : string nama ;
private : string alamat ;
//getset encapsulation
public : void setnama(string nm)
{
nama = nm;
}
public : string getnama()
{
return nama;
}
public : void setalamat(string alt)
{
alamat = alt;
}
public : string getalamat()
{
return alamat;
}
//method panggil
public : void tampil()
{
cout<<"nama saya : "<<getnama()<<endl;
cout<<"alamat saya : "<<getalamat()<<endl;
}
};
int main(int argc, char *argv[])
{
string nama,alamat;
ec cc;
cout<<"masukkan nama : ";
getline(cin,nama);
cc.setnama(nama);
cout<<"masukkan alamat : ";
cin>>alamat;
cc.setalamat(alamat);
cc.tampil();
system("PAUSE");
return EXIT_SUCCESS;
}
#include <iostream>
using namespace std;
class ec
{
private : string nama ;
private : string alamat ;
//getset encapsulation
public : void setnama(string nm)
{
nama = nm;
}
public : string getnama()
{
return nama;
}
public : void setalamat(string alt)
{
alamat = alt;
}
public : string getalamat()
{
return alamat;
}
//method panggil
public : void tampil()
{
cout<<"nama saya : "<<getnama()<<endl;
cout<<"alamat saya : "<<getalamat()<<endl;
}
};
int main(int argc, char *argv[])
{
string nama,alamat;
ec cc;
cout<<"masukkan nama : ";
getline(cin,nama);
cc.setnama(nama);
cout<<"masukkan alamat : ";
cin>>alamat;
cc.setalamat(alamat);
cc.tampil();
system("PAUSE");
return EXIT_SUCCESS;
}
java
package encapsulation;
import java.util.Scanner;
public class Main
{
private static Scanner input = new Scanner(System.in);
public static void main(String[] args)
{
String nama,alamat;
ec cc = new ec();
System.out.print("masukkan nama : ");
nama = input.nextLine();
cc.setnama(nama);
System.out.print("masukkan alamat : ");
alamat = input.next();
cc.setalamat(alamat);
cc.tampil();
}
}
class ec
{
private String nama ;
private String alamat ;
//getset encapsulation
public void setnama(String nama)
{
this.nama = nama;
}
public String getnama()
{
return this.nama;
}
public void setalamat(String alamat)
{
this.alamat = alamat;
}
public String getalamat()
{
return this.alamat;
}
//method panggil
public void tampil()
{
System.out.println("nama saya : "+getnama());
System.out.println("alamat saya : "+getalamat());
}
}
Tidak ada komentar:
Posting Komentar