Minggu, 13 Mei 2012

information hidding dan encapsulotion


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





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



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