2. Encapsulation

5

Encapsulation merupakan cara membungkus data dan method yang menyusun kelas dan menyembunyikannya dari dunia luar. Jika kita telah melakukan information hiding terhadap suatu attribut pada suatu class, lalu bagaimana cara melakukan perubahan terhadap attribut yang kita sembunyikan tersebut, caranya adalah dengan membuat suatu interface berupa method untuk menginisialisasi atau merubah nilai dari suatu attribut tersebut.

Enkapsulasi

encapsulation

Enkapsulasi adalah pembungkus, pembungkus disini dimaksudkan untuk menjaga suatu proses program agar tidak dapat diakses secara sembarangan atau di intervensi oleh program lain. Konsep enkapsulasi sangat penting dilakukan untuk menjaga kebutuhan program agar dapat diakses sewaktu-waktu, sekaligus menjaga program tersebut.

Dalam kehidupan sehari hari enkapsulasi dapat dimisalkan sebagai arus listrik pada generator, dan sistem perputaran generator untuk menghasilkan arus listrik. Kerja arus listrik tidak mempengaruhi kerja dari sistem perputaran generator, begitu pula sebaliknya. Karena didalam arus listrik tersebut, kita tidak perlu mengetahui bagaimana kinerja sistem perputaran generator, apakah generator berputar kebelakang atau ke depan atau bahkan serong. Begitu pula dalam sistem perputaran generator, kita tidak perlu tahu bagaimana arus listrik, apakah menyala atau tidak.

Begitulah konsep kerja dari enkapsulasi, dia akan melindungi sebuah program dari akses ataupun intervensi dari program lain yang mempengaruhinya. Hal ini sangat menjaga keutuhan program yang telah dibuat dengan konsep dan rencana yang sudah ditentukan dari awal.

Contoh dalam program


<strong>Belajar.Java</strong>

<strong>class belajar{</strong>

<strong>public String x =”Pintar”;</strong>

<strong>private String y = “Java”;</strong>

<strong>}</strong>

<strong>Pintar.Java</strong>

<strong>public class Pintar{</strong>

<strong>public static void main(String[]args){</strong>

<strong>Coba panggil = new Belajar();</strong>

<strong>System.out.println(“Panggil X : “+panggil.x);</strong>

<strong>System.out.println(“Panggil Y : “+panggil.y);</strong>

<strong>}</strong>

<strong>}</strong>

Tipe public dan private mempunyai fungsi yang berbeda. Fungsi public yang terdapat dalam class Coba pada variable x, memungkinkan nilai dari variable x dapat diakses oleh class Belajar. Sedangkan variable y yang menggunakan fungsi private tidak dapat dipanggil didalam class Belajar.

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.

Dalam OOP, Encapsulation di wujudkan dalam bentuk “class”. Dalam sebuah class terdapat property dan method yang memiliki hak akses tertentu terhadap environment/lingkungan-nya, hak akses ini biasa di sebut Access Modifier, access modifier terdiri dari private, protected, dan public.

  • private
    memberikan hak akses hanya kepada anggota class tersebut untuk menggunakan dan/atau mengubah nilai dari property atau method tersebut.
  • protected
    memberikan hak akses kepada anggota class nya dan anggota class hasil inheritance (penurunan sifat) dari class tersebut.
  • public
    memberikan hak akses kepada property dan method agar dapat digunakan diluar class tersebut.

Kesimpulan :

Encapsulasi adalah suatu pembungkusan pemrograman agar tidak dapat diakses secara sembarangan atau juga penyembunyian suatu data. konsep kerja encapsulasi ini melindungi suatu program dari akses program lain yang mempengaruhinya, manfaatnya adalah menjaga keutuhan program yang telah dibuat dengan konsep dan rencana yang sudah ditentukan dari awal.

Adapun cara membuat Encapsulation adalah dengan merubah modifier public menjadi private.taukan modifier privte itu hanya bisa diakses oleh class itu sendiri.contoh dibawah ini variabel panjang, lebar dan luas adalah mengunakan modifier private artinya variabel ini dikatagorikan sebagai data encapsulasi.

Tujuan encapsulation adalah untuk menyembunyikan atau memproteksi suatu proses dari kemungkinan interfensi atau penyalahgunaan dari luar system dan sekaligus menyederhanakan system itu sendiri.

ini adalah contoh programnya dengan tiga bahasa :


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

namespace Widy_Encapsulation
{
using System;
class layang2
{
int diagonal1;
int diagonal2;

public layang2()
{
Console.WriteLine("Menghitung Luas Layang-Layang");
Console.WriteLine();
}
public int Diagonal1
{
set {diagonal1 = value;}
get {return diagonal1;}
}
public int Diagonal2
{
set {diagonal2 = value;}
get {return diagonal2;}
}
public void nilai()
{
Console.WriteLine("Diagonal1 = {0}", diagonal1);
Console.WriteLine("Diagonal2 = {0}", diagonal2);
}
public void LuasLayang2()
{
Console.WriteLine("Luas Layang-layang = {0}",diagonal1*diagonal2/2);

}
}
class Program
{
public static void Main(string[] args)
{
int diagonal1 = 25;
int diagonal2 = 25;

layang2 dia = new layang2();
dia.Diagonal1 = diagonal1;
dia.Diagonal2 = diagonal2;

dia.nilai();
dia.LuasLayang2();

Console.WriteLine();
Console.Write("Press any key to continue . . . ");
Console.ReadKey(true);
}
}
}

Hasilnya Sebagai Berikut  :Capture4.1

 Yang Berikut Ini Adalah Contoh Program Dengan Menggunakan C++

#include <iostream>

 using namespace std;

 class layang2
 {
 int diagonal1;
 int diagonal2;

 public : layang2()
 {
 cout<<"Menghitung Luas Layang=layang"<<endl;
 cout<<endl;
 }
 public : void setDiagonal1(int a)
 {
 diagonal1 = a;
 }
 public : int getDiagonal1()
 {
 return diagonal1;
 }
 public : void setDiagonal2(int b)
 {
 diagonal2 = b;
 }
 public : int getDiagonal2()
 {
 return diagonal2;
 }
 public : void nilai()
 {
 cout<<"Diagonal1  : "<<getDiagonal1()<<endl;
 cout<<"Diagonal2  : "<<getDiagonal2()<<endl;
 cout<<endl;
 }
 public : void LuasLayang2()
 {
 cout<<"Luas Layang-layang   : "<<getDiagonal1()*getDiagonal2()/2<<endl;
 }
 };

 int main(int argc, char *argv[])
 {
 int diagonal1 = 25;
 int diagonal2 = 25;

 layang2 dia;
 dia.setDiagonal1(diagonal1);
 dia.setDiagonal2(diagonal2);

 dia.nilai();
 dia.LuasLayang2();

 cout<<endl;
 return 0;
 }

Hasilnya Seperti ini :
Capture4.2
Ini Contoh Program Java :

package oop2_widy1_encapsulation;

 import java.util.Set;

 class layang2
 {
 int diagonal1;
 int diagonal2;

 public layang2()
 {
 System.out.println("Menghitung Luas Layang-layang");
 System.out.println();
 }
 public void setDiagonal1(int a)
 {
 this.diagonal1 = a;
 }
 public int getDiagonal1()
 {
 return diagonal1;
 }
 public void setDiagonal2(int b)
 {
 this.diagonal2 = b;
 }
 public int getDiagonal2()
 {
 return diagonal2;
 }
 public void nilai()
 {
 System.out.println("Diagonal 1 : "+getDiagonal1());
 System.out.println("Diagonal 2 : "+getDiagonal2());
 System.out.println();
 }
 public void LuasLayang2()
 {
 System.out.println("Luas Layang = "+getDiagonal1()*getDiagonal2()/2);
 }
 }

 public class Main
 {
 public static void main(String[] args)
 {
 int diagonal1 = 25;
 int diagonal2 = 25;

 layang2 dia = new layang2();
 dia.setDiagonal1(diagonal2);
 dia.setDiagonal2(diagonal2);

 dia.nilai();
 dia.LuasLayang2();
 }
 }

Hasilnya :

Capture4.3

9 responses to “2. Encapsulation

  1. Blogx keren. byk gadget
    suka’, info yg berwawasan mbk yu. trmkshh

  2. Niceee People. bEauty, smart!!

  3. bisa di pakek contoh nie blog
    mksiih y mbk

  4. Siippppp!!!!! (Y) mbk broooo
    blogx lengkap mbk.. 🙂

  5. cantik blognya.. pinter lagiii

  6. No koment dh mbk… udh kereennnn

  7. Woowww…!!! Keren mbak brooo cantik!
    sneng dh liat isi blogx. slam kenal ya
    smoga makin pnter aja

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s