Encapsulation
adalah sebuah konsep Object Oriented Programming digunakan untuk
membungkus data dan fungsi, untuk menjaga tetap terjaga agar tidak
adanya penyalahgunaan. Konsep encapsulation menyebabkan sebuah konsep
OOP yang bernama “Abstraction” atau “Data Hiding”.
Encapsulation
adalah sebuah teknik untuk membuat antar muka dan menyembunyikan
mekanisme atau isi secara menyeluruh terhadap pengguna, dengan hal itu
pengguna tidak diperbolehkan untuk mengakses data yang disembunyikan
secara langsung. tapi bisa menggunakan dan memahami dengan mudah
berdasarkan antar muka yang telah disediakan.
Pada
dunia nyata kita dapat ambil contoh sebuah Remote TV untuk
menggambarkan encapsulation. Apa yang kita liat pada Remote TV adalah
sebuah bentuk dan banyak tombol di atasnya. Encapsulation pada Remote TV
adalah dimana mesin atau mekanisme cara kerja dan data yang dimiliki
Remote tersembunyi pada kulitnya yang keras, dan kita dilarang untuk
membongkar, mengakses, memodifikasi secara langsung. Dan apa yang bisa
kita gunakan adalah tombol-tombol yang telah disediakan untuk memberi
perintah kepada Remote TV melakukan pekerjaanya.
Contoh program Encapsulation
#include <iostream>
using namespace std;
class remoteTV{
private:
string tombolNo[10];
public:
void setTombolNo(int i, string value){
tombolNo[i] = value;
}
string getTombolNo(int i){
return tombolNo[i];
}
};
int main(){
remoteTV ruangTamu;
ruangTamu.setTombolNo(0, "Channel BCPP");
ruangTamu.setTombolNo(1, "Channel BelajarCPP");
ruangTamu.setTombolNo(2, "Channel CPP");
ruangTamu.setTombolNo(3, "Channel C");
cout<<ruangTamu.getTombolNo(0)<<endl;
cout<<ruangTamu.getTombolNo(1)<<endl;
cout<<ruangTamu.getTombolNo(2)<<endl;
cout<<ruangTamu.getTombolNo(3)<<endl;
return 0;
}
using namespace std;
class remoteTV{
private:
string tombolNo[10];
public:
void setTombolNo(int i, string value){
tombolNo[i] = value;
}
string getTombolNo(int i){
return tombolNo[i];
}
};
int main(){
remoteTV ruangTamu;
ruangTamu.setTombolNo(0, "Channel BCPP");
ruangTamu.setTombolNo(1, "Channel BelajarCPP");
ruangTamu.setTombolNo(2, "Channel CPP");
ruangTamu.setTombolNo(3, "Channel C");
cout<<ruangTamu.getTombolNo(0)<<endl;
cout<<ruangTamu.getTombolNo(1)<<endl;
cout<<ruangTamu.getTombolNo(2)<<endl;
cout<<ruangTamu.getTombolNo(3)<<endl;
return 0;
}
Pada
contoh program di atas menggunakan konsep Encapsulation dimana kita
tidak bisa dengan mudah mengakses variabel tombolNo secara langsung, dan
harus menggunakan perantara menggunakan fungsi yang dinamakan teknik
“Setter dan Getter”.
Syarat Encapsulation
Setelah penulis contohkan di atas, untung mengimplementasikan sebuah konsep encapsulation, dibutuhkan syarat sebagai berikut: Data dan fungsi yang disembunyikan harus berlabel private atau protected(jika dibutuhkan untuk hubungan antar class), agar tidak bisa diakses secara sembarang dan disalahgunakan.
Setelah penulis contohkan di atas, untung mengimplementasikan sebuah konsep encapsulation, dibutuhkan syarat sebagai berikut: Data dan fungsi yang disembunyikan harus berlabel private atau protected(jika dibutuhkan untuk hubungan antar class), agar tidak bisa diakses secara sembarang dan disalahgunakan.
Data dan fungsi yang digunakan untuk antarmuka harus berlabel public.
Mengenal Getter and Setter pada Java programming
Getter
dan setter digunakan untuk secara efektif melindungi data Anda,
terutama saat membuat kelas. Untuk setiap variabel, metode get
mengembalikan nilai, sedangkan metode set, meng set kan nilai.
Getter mulai dengan get, lalu diikuti dengan nama variabel, dengan huruf pertama dari nama variabel dikapitalisasi.
Setter mulai dengan set, diikuti dengan nama variabel, dengan huruf pertama dari nama variabel dikapitalisasi.
Setter mulai dengan set, diikuti dengan nama variabel, dengan huruf pertama dari nama variabel dikapitalisasi.
Contoh kelas pakai Getter dan Setter
/**
@Author Firman Hidayat
**/
public class ContohKelasPakaiGetterSetter {
private String nim;
private String nama;
protected String alamat;
protected String jurusan;
public String getNim() {
return nim;
}
public void setNim(String nim) {
this.nim = nim;
}
public String getNama() {
return nama;
}
public void setNama(String nama) {
this.nama = nama;
}
public String getAlamat() {
return alamat;
}
public void setAlamat(String alamat) {
this.alamat = alamat;
}
public String getJurusan() {
return jurusan;
}
public void setJurusan(String jurusan) {
this.jurusan = jurusan;
}
}
@Author Firman Hidayat
**/
public class ContohKelasPakaiGetterSetter {
private String nim;
private String nama;
protected String alamat;
protected String jurusan;
public String getNim() {
return nim;
}
public void setNim(String nim) {
this.nim = nim;
}
public String getNama() {
return nama;
}
public void setNama(String nama) {
this.nama = nama;
}
public String getAlamat() {
return alamat;
}
public void setAlamat(String alamat) {
this.alamat = alamat;
}
public String getJurusan() {
return jurusan;
}
public void setJurusan(String jurusan) {
this.jurusan = jurusan;
}
}
Contoh kelas pemanggil Getter dan Setter
/**
@Author Firman Hidayat
**/
public class KelasPemanggilGetterSetter {
public static void main(String[] buaya) {
// Mengeset nilai atribut objek-objek instance kelas
// ContohKelasPakaiGetterSetter
ContohKelasPakaiGetterSetter objekKelas_1 = new ContohKelasPakaiGetterSetter();
objekKelas_1.setNim("AAA111");
objekKelas_1.setNama("PAK BEYE");
objekKelas_1.setAlamat("Cigondewah");
objekKelas_1.setJurusan("Ilmu Palak");
ContohKelasPakaiGetterSetter objekKelas_2 = new ContohKelasPakaiGetterSetter();
objekKelas_2.setNim("BBB222");
objekKelas_2.setNama("ANI YUDO");
objekKelas_2.setAlamat("Cikawao");
objekKelas_2.setJurusan("Ilmu Pertanian");
// Mengambil nilai atribut dari objek-objek instanc kelas
// ContohKelasPakaiGetterSetter
String nim_1 = objekKelas_1.getNim();
String nama_1 = objekKelas_1.getNama();
String alamat_1 = objekKelas_1.getAlamat();
String jurusan_1 = objekKelas_1.getJurusan();
String nim_2 = objekKelas_2.getNim();
String nama_2 = objekKelas_2.getNama();
String alamat_2 = objekKelas_2.getAlamat();
String jurusan_2 = objekKelas_2.getJurusan();
// Tampilkan output nilai atribut setiap objek
System.out.println("NIM : " + nim_1 + "\tNAMA : " + nama_1
+ "\tALAMAT : " + alamat_1 + "\tJURUSAN : " + jurusan_1);
System.out.println("NIM : " + nim_2 + "\tNAMA : " + nama_2
+ "\tALAMAT : " + alamat_2 + "\tJURUSAN : " + jurusan_2);
}
}
@Author Firman Hidayat
**/
public class KelasPemanggilGetterSetter {
public static void main(String[] buaya) {
// Mengeset nilai atribut objek-objek instance kelas
// ContohKelasPakaiGetterSetter
ContohKelasPakaiGetterSetter objekKelas_1 = new ContohKelasPakaiGetterSetter();
objekKelas_1.setNim("AAA111");
objekKelas_1.setNama("PAK BEYE");
objekKelas_1.setAlamat("Cigondewah");
objekKelas_1.setJurusan("Ilmu Palak");
ContohKelasPakaiGetterSetter objekKelas_2 = new ContohKelasPakaiGetterSetter();
objekKelas_2.setNim("BBB222");
objekKelas_2.setNama("ANI YUDO");
objekKelas_2.setAlamat("Cikawao");
objekKelas_2.setJurusan("Ilmu Pertanian");
// Mengambil nilai atribut dari objek-objek instanc kelas
// ContohKelasPakaiGetterSetter
String nim_1 = objekKelas_1.getNim();
String nama_1 = objekKelas_1.getNama();
String alamat_1 = objekKelas_1.getAlamat();
String jurusan_1 = objekKelas_1.getJurusan();
String nim_2 = objekKelas_2.getNim();
String nama_2 = objekKelas_2.getNama();
String alamat_2 = objekKelas_2.getAlamat();
String jurusan_2 = objekKelas_2.getJurusan();
// Tampilkan output nilai atribut setiap objek
System.out.println("NIM : " + nim_1 + "\tNAMA : " + nama_1
+ "\tALAMAT : " + alamat_1 + "\tJURUSAN : " + jurusan_1);
System.out.println("NIM : " + nim_2 + "\tNAMA : " + nama_2
+ "\tALAMAT : " + alamat_2 + "\tJURUSAN : " + jurusan_2);
}
}
Bila kelas KelasPemanggilGetterSetter ini dieksekusi, menghasilkan output seperti ini:
NIM : AAA111 NAMA : PAK BEYE ALAMAT : Cigondewah JURUSAN : Ilmu Palak
NIM : BBB222 NAMA : ANI YUDO ALAMAT : Cikawao JURUSAN : Ilmu Pertanian
NIM : BBB222 NAMA : ANI YUDO ALAMAT : Cikawao JURUSAN : Ilmu Pertanian
Coba kita tinjau kelas ContohKelasPakaiGetterSetter. Dalam kelas ini terdapat tiga buah atribut:
nim –> akses level: private
nama –> akses level: private
alamat –> akses level: protected
Jurusan –> akses level: protected
Kemudian terdapat method getter dan setter yang akses levelnya diset public.
public String getNim() —> ngambil nilai atribut nim
public String getNama() —> ngambil nilai atribut nama
public String getAlamat() —> ngambil nilai atribut alamat
public String getJurusan() —> ngambil nilai atribut Jurusan
public void setNim(String nim) —> mengeset nilai atribut nim
public void setNama(String nama) —> mengeset nilai atribut nama
public void setAlamat(String alamat) —> mengeset nilai atribut alamat
public void setJurusan(String jurusan) —> mengeset nilai atribut Jurusan
Sekarang kita perhatikan kelas KelasPemanggilGetterSetter. Kelas ini tidak secara langsung mengakses atribut pada kelas ContohKelasPakaiGetterSetter. Untuk mengaksesnya digunakan method getter dan setter yang sudah disediakan di kelas ContohKelasPakaiGetterSetter. Ini contohnya:
ContohKelasPakaiGetterSetter objekKelas_1 = new ContohKelasPakaiGetterSetter();
objekKelas_1.setNim(“AAA111”);
objekKelas_1.setNama(“PAK BEYE”);
objekKelas_1.setAlamat(“Cigondewah”);
objekKelas_1.setJurusan(“Ilmu Palak”);
Untuk mengambil nilai atribut digunakan method getter:
String nim_1 = objekKelas_1.getNim();
String nama_1 = objekKelas_1.getNama();
String alamat_1 = objekKelas_1.getAlamat();
String jurusan_1 = objekKelas_1.getJurusan();
nim –> akses level: private
nama –> akses level: private
alamat –> akses level: protected
Jurusan –> akses level: protected
Kemudian terdapat method getter dan setter yang akses levelnya diset public.
public String getNim() —> ngambil nilai atribut nim
public String getNama() —> ngambil nilai atribut nama
public String getAlamat() —> ngambil nilai atribut alamat
public String getJurusan() —> ngambil nilai atribut Jurusan
public void setNim(String nim) —> mengeset nilai atribut nim
public void setNama(String nama) —> mengeset nilai atribut nama
public void setAlamat(String alamat) —> mengeset nilai atribut alamat
public void setJurusan(String jurusan) —> mengeset nilai atribut Jurusan
Sekarang kita perhatikan kelas KelasPemanggilGetterSetter. Kelas ini tidak secara langsung mengakses atribut pada kelas ContohKelasPakaiGetterSetter. Untuk mengaksesnya digunakan method getter dan setter yang sudah disediakan di kelas ContohKelasPakaiGetterSetter. Ini contohnya:
ContohKelasPakaiGetterSetter objekKelas_1 = new ContohKelasPakaiGetterSetter();
objekKelas_1.setNim(“AAA111”);
objekKelas_1.setNama(“PAK BEYE”);
objekKelas_1.setAlamat(“Cigondewah”);
objekKelas_1.setJurusan(“Ilmu Palak”);
Untuk mengambil nilai atribut digunakan method getter:
String nim_1 = objekKelas_1.getNim();
String nama_1 = objekKelas_1.getNama();
String alamat_1 = objekKelas_1.getAlamat();
String jurusan_1 = objekKelas_1.getJurusan();














Komentar