0% menganggap dokumen ini bermanfaat (0 suara)
101 tayangan

Modul 2 Bab 4 Encapsulation

Modul ini membahas konsep encapsulation dalam pemrograman berorientasi objek Java. Encapsulation digunakan untuk menyembunyikan informasi detail suatu kelas dan mengontrol akses terhadap atribut dan methodnya. Modul ini menjelaskan konsep information hiding dan interface untuk mengakses data, serta mendemonstrasikan implementasi accessor dan mutator method dalam encapsulation.

Diunggah oleh

nugrohoagus
Hak Cipta
© © All Rights Reserved
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
101 tayangan

Modul 2 Bab 4 Encapsulation

Modul ini membahas konsep encapsulation dalam pemrograman berorientasi objek Java. Encapsulation digunakan untuk menyembunyikan informasi detail suatu kelas dan mengontrol akses terhadap atribut dan methodnya. Modul ini menjelaskan konsep information hiding dan interface untuk mengakses data, serta mendemonstrasikan implementasi accessor dan mutator method dalam encapsulation.

Diunggah oleh

nugrohoagus
Hak Cipta
© © All Rights Reserved
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 6

ModulPraktikum PemrogramanLanjut

BAB 4
ENCAPSULATION
Tujuan
1. Praktikan mampu memahami konsep encapsulation (enkapsulasi) yang ada di java
2. Mampu memahami dan mengimplementasikan encapsulation
Ringkasan Materi
A. Encapsulation
Enkapsulasi adalah suatu cara untuk menyembunyikan informasi detail dari suatu class.
Dalam enkapsulasi terdapat hak akses public, protected, dan private. Hak akses public
memungkinkan semua kelas dapat mengakses meskipun berada pada paket yang berbeda,
hak akses protected hanya diberikan kepada kelasnya sendiri dan turunannya, serta kelaskelas dalam satu paket. Sedangkan private hanya boleh diakses oleh kelasnya sendiri.

Access

Class tersebut

Package

Subclass

Root / Network

Modifier
Private

Default

Protected

Public

Enkapsulasi bertujuan 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. Dua hal yang mendasar dalam enkapsulasi yakni :
A.1 Information Hiding
Sebelumnya, kita dapat mengakses anggota class baik berupa atribut maupun method
secara langsung dengan menggunakan objek yang telah kita buat. Hal ini dikarenakan akses
kontrol yang diberikan kepada atribut maupun method yang ada di dalam class tersebut
adalah 'public'. Kita dapat menyembunyikan informasi dari suatu class sehingga anggota
class tersebut tidak dapat diakses dari luar, caranya adalah hanya dengan memberikan
akses kontrol 'private' ketika mendeklarasikan atribut atau method. Proses ini disebut dengan
information hiding.
A.2 Interface to Access Data
Jika kita telah melakukan information hiding terhadap suatu atribut pada suatu class, lalu
bagaimana melakukan perubahan terhadap atribut yang kita sembunyikan tersebut. Caranya
adalah dengan membuat suatu interface berupa method untuk menginisialisasi atau merubah
nilai dari suatu atribut tersebut. Manfaat utama teknik encapsulation adalah kita mampu
memodifikasi kode tanpa merusak kode yang telah digunakan pada class lain. Enkapsulasi
memiliki manfaat sebagai berikut:
- Modularitas

ModulPraktikum PemrogramanLanjut

Source code dari sebuah class dapat dikelola secara independen dari source code class
yang lain. Perubahan internal pada sebuah class tidak akan berpengaruh bagi class
yang menggunakannya.
- Information Hiding
Penyembunyian informasi yang tidak perlu diketahui objek lain.
B. Accessor
Untuk mengimplementasikan enkapsulasi, kita tidak menginginkan sembarang object
dapat mengakses data kapan saja. Untuk itu, kita deklarasikan atribut dari class sebagai
private. Namun, ada kalanya dimana kita menginginkan object lain untuk dapat mengakses
data private. Dalam hal ini kita gunakan accessor methods.
Accessor Methods digunakan untuk membaca nilai variabel pada class, baik berupa
instance maupun static. Sebuah accessor method umumnya dimulai dengan penulisan
get<namaInstanceVariable>. Method ini juga mempunyai sebuah return value. Sebagai
contoh, kita ingin menggunakan accessor method untuk dapat membaca nama, alamat, nilai
bahasa Inggris, Matematika, dan ilmu pasti dari siswa. Mari kita perhatikan salah satu contoh
implementasi accessor method.
public class StudentRecord {
private String name;
:
:
public String getName(){
return name;
}
}
C. Mutator
Method yang dapat memberi atau mengubah nilai variable dalam class, baik itu berupa
instance maupun static. Method semacam ini disebut dengan mutator methods. Sebuah
mutator method umumnya tertulis set<namaInstanceVariabel>. Mari kita perhatikan salah
satu dari implementasi mutator method.
public class StudentRecord{
private String name;
:
:
public void setName( String temp ){
name = temp;
}
}

ModulPraktikum PemrogramanLanjut

Pelaksanaan Percobaan
A. Encapsulation 1
Ketikkan program di bawah ini
1
public class Student {
2
private String name;
3
private int mark;
4
public void setName(String n){
5
name=n;
6
}
7
public String getName(){
8
return name;
9
}
10
public void setMark(int m){
11
mark=m;
12
}
13
public int getMark(){
14
return mark;
}
}
1
2
3
4
5
6
7
8
9
10

public class Test {


public static void main(String [] args) {
Student s1=new Student();
s1.setName("Enkapsulasi");
s1.setMark("90");
System.out.println("s1Name is "+s1.setName());
System.out.println("s1Mark is "+s1.setMark());
System.out.println("name dan mark "+name+" "+mark);
}
}

B. Encapsulation 2
Buatlah class Vehicle1
1
public class Vehicle1
2
{
3
private double load, maxLoad;
4
5
public Vehicle1 (double max){
6
this.maxLoad = max;
7
8
}
9
public double getLoad(){
10
return this.load;
11 }
12 public double getMaxLoad(){
13
return this.maxLoad;
14 }
15 public boolean addBox(double weight){
16
double temp = 0.0D;
17
temp = this.load + weight;
18
if(temp <= maxLoad){
19
this.load = this.load + weight;
20
return true;
21
}

ModulPraktikum PemrogramanLanjut

22
23
24
25
26
27

else
{
return false;
}
}
}

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19

public class TestVehicle1{


public static void main(String[] args){
System.out.println("Creating a vehicle with a 10,000
kg maximumload.");
Vehicle1 vehicle = new Vehicle1(10000);
System.out.println("Add box #1 (500kg) : " +
vehicle.addBox(500));
System.out.println("Add box #2 (250kg) : " +
vehicle.addBox(250));
System.out.println("Add box #3 (5000kg) : " +
vehicle.addBox(5000));
System.out.println("Add box #4 (4000kg) : " +
vehicle.addBox(4000));
System.out.println("Add box #5 (300kg) : " +
vehicle.addBox(300));
System.out.println("Vehicle load is "
+vehicle.getLoad() + "kg");
}
}

Data dan Analisis hasil percobaan


A. Encapsulation 1
Pertanyaan
1. Lakukan percobaan diatas dan benahi jika menemukan kesalahan!
..
..
2. Jika pada baris 6 s1.setName diubah menjadi s1.getName apa yang terjadi? jelaskan!
..
..
3. Lakukan perubahan pada baris 5 dengan menghilangkan String di tanda dalam kurung
lalu ubah baris 7 seperti no. 3 apa yang terjadi? jelaskan!
..
..
4. Setelah diperbaiki, ubahlah hak akses pada baris 4 (pada class Student) menjadi private
apa yang terjadi jika class Test dijalankan? Jelaskan!
..
..
5. Jika kedua kelas diatas terdapat dalam package yang sama apakah konsep enkapsulasi
tetap berfungsi? jelaskan!
..
..

ModulPraktikum PemrogramanLanjut

B. Encapsulation 2
Pertanyaan
1. Method apakah yang menjadi accessor (getter) ?
..
..
2. Tambahkan source code berikut dibawah baris ke 6 pada class TestVehicle1.
System.out.println("Add load(100kg) : " + (vehicle.load=500));
Jalankan program, apakah output dari program tersebut?
Kembalikan program seperti semula.
..
..

3. Ubahlah tipe data pada atribut load dan maxload pada class Vehicle1 menjadi public.
Jalankan program, apakah output dari program tersebut?
a. Tambahkan source kode berikut dibawah baris ke 6 pada class TestVehicle1.
System.out.println("Add load(100kg) : " + (vehicle.load=500));
Jalankan program, apakah output dari program tersebut?
Kembalikan program seperti semula.
b. Tambahkan source kode berikut dibawah baris ke 12 pada class TestVehicle1.
System.out.println("Add load(100kg) : " + (vehicle.load=500));
Jalankan program, apakah output dari program tersebut?
Kembalikan program seperti semula.
..
..

4. Ulangi instruksi pada nomer 4 dengan mengubah tipe data pada atribut load dan maxload
pada class Vehicle1 menjadi protected.
..
..
5. Ulangi instruksi pada nomer 4 dengan mengubah tipe data pada atribut load dan maxload
pada class Vehicle1 menjadi default.
..
..

ModulPraktikum PemrogramanLanjut

Tugas Praktikum
1. Soal 1
Tugas Anda adalah membuat sebuah class yang memuat data-data pada buku
alamat.
Tabel berikut mendefinisikan informasi yang dimiliki oleh buku alamat.
Attribut
Deskripsi
Nama
Nama Lengkap perseorangan
Alamat
Alamat Lengkap
Nomor Telepon
Nomor telepon personal
Alamat E-Mail
Alamat E-Mail personal
Tabel 1: Atribut dan Deskripsi Atribut
Buat implementasi dari method sebagai berikut :
1. Menyediakan accessor dan mutator method terhadap seluruh atribut
2. Constructor

Anda mungkin juga menyukai