SlideShare a Scribd company logo
1 of 17
LAPORAN PRATIKUM IV 
PRAKTIKUM PEMROGRAMAN BERORIENTASI OBJEK 
“ENCAPSULATION” 
Disusun untuk Memenuhi Matakuliah Praktikum Pemrograman Berorientasi Objek 
Yang Dibimbing oleh Bapak Heru Wahyu Herwanto, S.T., M.Kom 
Asisten Praktikum: 
Jevri Tri Ardiansyah 
Robi Wahyudi 
Oleh: 
Gisra Rahmadhita 
130533608259 
S1 PTI 2013 Offering B 
UNIVERSITAS NEGERI MALANG 
FAKULTAS TEKNIK 
JURUSAN TEKNIK ELEKTRO 
S1 PENDIDIKAN TEKNIK INFORMATIKA 
OKTOBER, 2014
“Encapsulation” 
A. TUJUAN 
1. Mahasiswa mampu memahami dan menggunakan konsep Encapsulation dalam 
pemrograman java. 
2. Mendefinisikan method assessor dan mutator 
3. Menerapkan konsep penyembunyian data 
4. Menerapkan enkapsulasi dalam pemrograman berbasis objek 
B. DASAR TEORI 
1. Encapsulation(Enkapsulasi) 
Enkapsulasi adalah suatu cara untuk menyembunyikan informasi detail dari 
suatu class.Enkapsulasi - Memastikan pengguna sebuah objek tidak dapat 
mengganti keadaan dalam dari sebuah objek dengan cara yang tidak layak; hanya 
metode dalam objek tersebut yang diberi izin untuk mengakses keadaannya. Setiap 
objek mengakses interface yang menyebutkan bagaimana objek lainnya dapat 
berinteraksi dengannya. Objek lainnya tidak akan mengetahui dan tergantung 
kepada representasi dalam objek tersebut. 
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. Sehingga dapat mengurangi 
kemungkinan bug.
Dua hal yang mendasar dalam enkapsulasi, yakni : 
a. Information Hiding 
Adalah proses yang menyembunyikan informasi dari suatu class sehingga 
class tersebut tidak dapat diakses dari luar. Yaitu dengan memberikan akses 
kontrol “private” ketika mendeklarasikan atribut atau method. 
b. Interface to Acces data 
Adalah cara melalukan perubahan terhadap atribut yang di information 
hiding yaitu dengan membuat suatu interface berupa method untuk 
menginisialisasi atau merubah nilai dari suatu atribut tersebut. 
2. Mutator dan Accessor method 
a. Accessor Methods 
Digunakan untuk membaca nilai variabel pada class, baik berupa instance 
maupun static. 
b. Mutator Methods 
Digunakan untuk mengubah atau memberi nilai variable pada class, baik 
berupa instance maupun static. 
C. LATIHAN 
1. Latihan 1 
Bus 
- penumpang : int 
- maxPenumpang : 
int 
+ cetak() 
a. Script class Bus.java 
public class Bus { 
public int penumpang; 
public int maxPenumpang; 
public void cetak(){ 
System.out.println("Penumpang Bus sekarang adalah 
"+penumpang); 
System.out.println("Penumpang maksimum seharusnya 
adalah "+maxPenumpang); 
} 
}
b. Script class UjiBus.java 
public class UjiBus { 
public static void main(String[] args){ 
//membuat objek busMini dari kelas Bus 
Bus busMini =new Bus(); 
//memasukkan nilai jumlah penumpang dan penumpang maksimal 
ke dalam 
//objek busMini 
busMini.penumpang =5; 
busMini.maxPenumpang =15; 
//memanggil method cetak pada kelas Bus 
busMini.cetak(); 
//menambahkan penumpang pada busMini 
busMini.penumpang = busMini.penumpang +5; 
//memanggil method cetak pada kelas Bus 
busMini.cetak(); 
//mengurangi jumlah penumpang pada busMini 
busMini.penumpang = busMini.penumpang -2; 
busMini.cetak(); 
//menambahkan jumlah penumpang pada busMini 
busMini.penumpang = busMini.penumpang +8; 
busMini.cetak(); 
} 
} 
c. Output program hasil kompilasi 
d. Perhatikan jumlah penumpang Bus terakhir dengan jumlah 
penumpang maksimum. Mengapa bisa demikian? 
Pada program menampilkan penumpang yang overload karena pada 
penjumlahan penumpang tidak ada kondisi untuk membatasi jumlah 
penumpang. Karena dari hasil penjumlahan statement kedua ialah 8. Dan 
nilai 8 dijumlahkan 8 maka akan menghasilkan nilai 16, karena pada 
statement ke 4 berisi penumpang sekarang dijumlahkan 8 nilainya. Hal 
inilah yang mengakibatkan bus overload. 
e. Deskripsi Program 
Dalam program terjadi kelebihan nilai pada variabel penumpang karena 
tidak adanya metode untuk membatasi kelas lain (UjiBus) untuk mengelola 
variabel penumpang sehingga dapat mengubah nilai sembarangan pada
atribut penumpang pada kelas Bus. Selain itu, karena tipe variabel tersebut 
public, sehingga dapat diakses oleh kelas lain. 
2. Latihan 2 
Bus 
- penumpang : int 
- maxPenumpang : int 
+ Bus(maxPenumpang : int) 
+ addPenumpang(penumpang : int) 
+ cetak() 
a. Script class Bus.java 
public class Bus { 
Private int penumpang; 
Private int maxPenumpang; 
//konstruksi kelas Bus 
public Bus(int maxPenumpang){ 
this.maxPenumpang = maxPenumpang; 
penumpang =0; 
} 
//method mutator untuk menambahkan penumpang 
public void addPenumpang(int penumpang){ 
int temp; 
temp =this.penumpang+penumpang; 
if(temp >= maxPenumpang){ 
System.out.println("Penumpang melebihi kuota"); 
}else{ 
this.penumpang = temp; 
} 
} 
Public void cetak(){ 
System.out.println("Penumpang Bus sekarang adalah 
"+penumpang); 
System.out.println("Penumpang maksimum seharusnya adalah 
"+maxPenumpang); 
} 
} 
b. Output Program (diakses dari UjiBus)
c. Beri Penjelasan point b! 
Saat kelas UjiBus dijalankan, maka akan terdapat beberapa error. Karena 
variable penumpang dan maxPenumpang di kelas Bus telah dirubah 
menjadi private, maka kelas UjiBus tidak dapat secara langsung merubah 
nilai dari variable private tersebut. Maka dari itu diperlukan method 
mutator pada kelas Bus untuk dapat mengakses variabel yang diprivate 
(method addPenumpang) sekaligus memberikan kondisi agar tidak terjadi 
overload penumpang. 
d. Script Class UjiBus.java 
public class UjiBus { 
public static void main (String[] args){ 
//membuat objek busBesar dari class Bus 
Bus busBesar =new Bus(40); 
busBesar.cetak(); 
//penambahan penumpang 
busBesar.addPenumpang(15);//menambahkan 15 penumpang 
busBesar.cetak(); 
//penambahan penumpang 
busBesar.addPenumpang(5); 
busBesar.cetak(); 
//penambahan penumpang 
busBesar.addPenumpang(26);//menambahkan 26 penumpang 
busBesar.cetak(); 
} 
} 
e. Output Program dari class yang sudah dirubah 
f. Deskripsi dan Kesimpulan 
Pada program diatas kleas UjiBus akan memanggil kelas Bus, 
kelas tersebut akan memanggil method yang diperlukan. Karena pada 
kelas Bus terdapat variabel bertipe private maka untuk mengaksesnya 
harus memakai method baru bertipe asesor/mutator sehingga variabel 
tersebut dapat diakses. Dan nilai atributnya dapat kita rubah pada kelas 
lain (UjiBus). 
Jadi metode enkapsulasi, suatu attribute dalam kelas akan 
disembunyikan (private) sehingga tidak dapat langsung diakses oleh kelas 
lain. Untuk mengakses atau merubah nilai attribute tersebut, dibutuhkan 
sebuah method baik assessor maupun mutator.
3. Latihan 3 
a. Tambahkan method getPenumpang pada class Bus. Tambahkan 
aturan untuk mengakses data penumpang baru ke dalam method 
getPenumpang. Aturan yang ditambahkan memuat kode 
akses(password). Jika password benar, maka data penumpang yang 
baru ditambahkan dan ditampilkan, jika password salah, maka ada 
peringatan bahwa password salah. 
Bus 
- penumpang : int 
- maxPenumpang : int 
- penumpangBaru : int 
+ Bus(maxPenumpang : int) 
+ addPenumpang(penumpang : int) 
+ getPenumpang(password : int) : int 
+ cetak() 
b. Script class Bus 
public class Bus { 
private int penumpang; 
private int maxPenumpang; 
private int penumpangBaru; 
//konstruksi kelas Bus 
public Bus(int maxPenumpang){ 
this.maxPenumpang = maxPenumpang; 
penumpang =0; 
} 
//method mutator untuk menambahkan penumpang 
public void addPenumpang(int penumpang){ 
int temp; 
temp =this.penumpang+penumpang; 
if(temp >= maxPenumpang){ 
System.out.println("Penumpang 
melebihi kuota"); 
}else{ 
this.penumpang = temp; 
} 
} 
//minta password 
public void getPenumpang(int password){ 
if (password==123){ 
System.out.println("nPassword Benar"); 
addPenumpang(15); 
} 
else{ 
System.out.println("nPassword Salah!!!"); 
} 
}
public void cetak(){ 
System.out.println("Penumpang Bus sekarang adalah 
"+penumpang); 
System.out.println("Penumpang maksimum seharusnya 
adalah "+maxPenumpang); 
} 
} 
c. Buat class UjiBus untuk menguji methot getPenumpang tersebut. 
public class UjiBus { 
public static void main (String[] args){ 
int password; 
//membuat objek busBesar dari class Bus 
Bus busBesar =new Bus(40); 
busBesar.cetak(); 
//penambahan penumpang 
busBesar.getPenumpang(123); 
busBesar.cetak(); 
//penambahan penumpang 
busBesar.getPenumpang(121); 
busBesar.cetak(); 
//penambahan penumpang 
busBesar.getPenumpang(123); 
busBesar.cetak(); 
} 
} 
d. Output (hasil) Program 
e. Deskripsi Program 
Program diatas berguna untuk memproteksi penambahan penumpang pada 
kelas Bus, namun dengan fitur proteksi berupa password. Jika password 
yang dimasukkan benar maka akan menambahkan jumlah penumpang, 
namun jika salah jumlah penumpang akan tetap sama (tanpa ada 
penjumalahan). Hal ini dikarenakan pada method getPenumpang terdapat 
autentikasi berupa parameter password. Jika passwordnya benar (123), 
maka method tersebut akan memanggil method addPenumpang yang
berfungsi menambahkan nilai variabel penumpang. Sehingga jumlah 
penumpang bertambah 
D. TUGAS PRAKTIKUM 
A. Bus 
- penumpang : double 
- maxPenumpang : double 
- counter : double 
- penumpngBaru : double 
+ Bus(maxPenumpang : double) 
+ addPenumpang(penumpang : 
double) 
+ getPenumpang(password : int) : 
double 
+ getAverage() : double 
+ cetak() 
Dari hasil program latihan 3, tambahkan method getAverage() untuk menghitung 
rata-rata berat penumpang yang ditambahkan ! 
a. Script class Bus 
public class Bus { 
private double penumpang; 
private double maxPenumpang; 
private double penumpangBaru; 
private double counter; 
//konstruksi kelas Bus 
public Bus(double maxPenumpang){ 
this.maxPenumpang = maxPenumpang; 
penumpang =0; 
} 
//method mutator untuk menambahkan penumpang 
public void addPenumpang(double penumpang){ 
double temp; 
temp =this.penumpang+penumpang; 
if(temp >= maxPenumpang){ 
System.out.println("Penumpang 
melebihi kuota"); 
}else{ 
this.penumpang = temp; 
counter++; 
} 
} 
//mdoublea password 
public void getPenumpang(double password){ 
if (password==123){ 
System.out.println("nPassword Benar"); 
addPenumpang(15);
} 
else{ 
System.out.println("nPassword Salah!!!"); 
} 
} 
public double getAverage(){ 
return penumpang/counter; 
} 
public void cetak(){ 
System.out.println("Penumpang Bus sekarang adalah 
"+penumpang); 
System.out.println("Penumpang maksimum seharusnya 
adalah "+maxPenumpang); 
} 
} 
b. Buat class UjiBus untuk menguji methot getPenumpang tersebut. 
public class UjiBus { 
public static void main (String[] args){ 
int password; 
//membuat objek busBesar dari class Bus 
Bus busBesar =new Bus(40); 
busBesar.cetak(); 
//penambahan penumpang 
busBesar.getPenumpang(123); 
busBesar.cetak(); 
//penambahan penumpang 
busBesar.getPenumpang(121); 
busBesar.cetak(); 
//penambahan penumpang 
busBesar.getPenumpang(123); 
busBesar.cetak(); 
System.out.println("Rata-rata Penumpang : 
"+busBesar.getAverage()); 
} 
} 
c. Output (hasil) Program 
d. Deskripsi Program
Pada program diatas, ialah hasil dari penambahan method getAverage() 
pada kelas Bus. Dimana kelas method tersebut akan mencari nilai rata-rata 
penumpang yang naik ke Bus yang didapatkan dari jumlah total 
penumpang bus dibagi dengan counter (jumlah berhenti) 
E. TUGAS RUMAH 
1. Buatlah sebuah class “Bola” dengan property jari-jari dan method setjarijari(), 
showDiameter(),showLuasPermukaan(), dan showVolume(). Gunakan double 
untuk presisi variable jari-jari dan gunakan library math class untuk 
menggunakan constanta Math.PI. 
Selanjutnya buatlah file testnya dengan urutan langkah, membuat variable 
Jarijari, menciptakan objek Bola, memanggil method showDiameter(), 
showLuasPermukaan(), dan showVolume(). Selanjutnya memanipulasi objek 
yang telah dibuat dengan memanggil method setJarijari() dengan menggunakan 
variable Jarijari yang telah dibuat. Tampilkan lagi hasilnya dengan 
menggunakan method showDiameter(), showLuasPermukaan(), dan 
showVolume(). (Jangan lupa untuk menggunakan konsep enkapsulasi) 
i. Script class Bola.java 
import java.lang.Math; 
public class Bola{ 
private double jarijari; 
public Bola(double jarijari){ 
this.jarijari=jarijari; 
} 
public void setJarijari(double jarijari){ 
this.jarijari=jarijari; 
} 
public void showDiameter(){ 
System.out.println("Diameter Bola : 
"+2*jarijari); 
} 
public void showLuasPermukaan(){ 
System.out.println("Luas Permukaan Bola : 
"+(4/3*Math.PI*Math.pow(jarijari,3))); 
} 
public void showVolume(){ 
System.out.println("Volume Bola : 
"+(4*Math.PI*Math.pow(jarijari,2))); 
} 
}
ii. Script class TestBola.java 
public class MainBola{ 
public static void main(String[]args){ 
double Jarijari=14; 
Bola objekbola=new Bola(7); 
objekbola.showDiameter(); 
objekbola.showLuasPermukaan(); 
objekbola.showVolume(); 
System.out.println("nn"); 
objekbola.setJarijari(Jarijari); //manipulasi 
denganvariabel jari-jari yang dibuat 
objekbola.showDiameter(); 
objekbola.showLuasPermukaan(); 
objekbola.showVolume(); 
} 
} 
iii. Output (hasil) Program 
iv. Deskripsi program 
Program diatas ialah implementasi konsep enkapsulasi pada perhitungan luas 
dan volume bola. Dimana kelas MainBola akan memanggil method 
ShowDiameter untuk menampilkan nilai diameter dari bola, selanjutnya program 
akan memanggil method LuasPermukaan dan ShowVolume untuk menampilkan 
nilai luas permukaan dan volumenya. Setelah itu oleh kelas MainBola nilai jari-jari 
diubah menjadi 14 (pada syntax objekbola.setJarijari(Jarijari);) 
sehingga nilai luas dan volumenya berubah karena nilai variabelnya diganti. 
Konstanta Math P.I digunakan untuk memudahkan operasi matematika seperti 
pangkat (pow) pada program tersebut sehingga memudahkan programmer untuk 
melakukan operasi matematik 
2. Tugas Rumah 2 
Buatlah program sendiri menggunakan konsep enkapsulasi dengan tema 
bidang percetakan! Susunan pengerjaan kotak encapsulasi, program, hasil 
output program dan berikan penjelasan singkat!
a. Script Percetakan.java 
public class Percetakan{ 
private int biaya; 
public Percetakan(int biaya){ 
this.biaya=biaya; 
} 
public int getBiayaFC(){ 
return this.biaya; 
} 
public int getBiayaP(){ 
return (this.biaya+50); 
} 
public int getBiayaPW(){ 
return (this.biaya+150); 
} 
public void setBiaya(int biaya,int password){ 
if (password==123) 
{ 
this.biaya=biaya; 
System.out.println("Penggantian harga dasar 
SUKSESnnn"); 
System.out.println("Harga Saat Ini : Rp "+biaya); 
} 
else { 
System.out.println("Password Salah!! Silahkan 
Ulanginnn"); 
} 
} 
/*public int Fotocopy(int jumlah){ 
int total=jumlah*biaya*8/10; 
return total; 
} 
public int Print(int jumlah){ 
int total=jumlah*biaya*9/10; 
return total; 
} 
public int Warna(int jumlah){ 
int total=jumlah*biaya*29/30; 
return total;*/ 
} 
b. Script TestPercetakan.java 
import java.io.BufferedReader; 
import java.io.IOException; 
import java.io.InputStreamReader; 
public class TestPercetakan { 
public static String bacaInputan(){ 
String baca ="";
InputStreamReader input =new 
InputStreamReader(System.in); 
BufferedReader buf =new BufferedReader(input); 
try{ 
baca = buf.readLine(); 
}catch(IOException e){ 
System.out.println("Error!"); 
} 
return baca; 
} 
public static void main(String[]args){ 
int menu=0; 
int banyak; 
int pass; 
int harga; 
Percetakan cetakku =new Percetakan(100); //harga dasar 
100 rupiah 
while(menu!=4){ 
System.out.print("nn======= Percetakan Cantika 
========n"+ 
"1. Hitung Biaya Printn"+ 
"2. Hitung Biaya Fotocopyn"+ 
"3. Ganti Harga Dasarn"+ 
"4. Keluarn"+ 
"Pilih Menu : "); 
menu = Integer.parseInt(bacaInputan()); 
if(menu ==1){ 
System.out.println("Hitung Biaya Print"); 
System.out.print("Masukkan jumlah halaman yang 
dicetak :"); 
banyak = Integer.parseInt(bacaInputan()); 
System.out.println("Harga total pencetakan 
"+banyak+" halaman adalah : Rp. "+banyak*cetakku.getBiayaP()); 
} 
else if(menu ==2){ 
System.out.println("Hitung Biaya Fotocopy"); 
System.out.print("Masukkan jumlah halaman yang 
dicopy :"); 
banyak = Integer.parseInt(bacaInputan()); 
System.out.println("Harga total Foto Copy 
"+banyak+" halaman adalah : Rp. "+banyak*cetakku.getBiayaFC()); 
} 
else if(menu ==3){ 
System.out.println("Ganti Harga Dasar"); 
System.out.println("Harga Sebelumnya : Rp 
"+cetakku.getBiayaFC()); 
System.out.print("Masukkan Password : "); 
pass = Integer.parseInt(bacaInputan()); 
System.out.print("Masukkan Harga Baru : "); 
harga = Integer.parseInt(bacaInputan()); 
cetakku.setBiaya(harga, pass); 
} 
if(menu ==4){ 
} 
else{ 
System.out.println("nnMenu yang dimaksud tidak 
tersedia"); 
}
} 
}} 
c. Output (hasil) program
d. Deskripsi 
Di dalam program ini untuk menghitung harga yang harus dibayarkan oleh 
konsumen dari percetakan cantika. Harga dasar dari foto copy ialah 100 rupiah 
yang dilihat pada parameter method Percetakan pada inisialisasi kelas 
Percetakan. Kemudian user dapat memilih menu 1-4 dimana jika memilih 
menu 1 maka akan menghitung biaya print dengan harga Rp. 150,- (harga 
default) dan harga 100 setiap foto copy perlembarnya karena disetting oleh 
kelas Percetakan harga print ialah harga dasar (foto kopi) ditambahkan Rp. 
50,-. 
Pada proses penggantian harga dasar user diminta memasukkan password, jika 
password benar maka dapat mengubah harga dasar sesuai keinginannya karena 
pada kelas TestPercetakan memakai method mutator 
(cetakku.setBiaya(harga, pass);) untuk mengubah harga dasar sehingga 
ketika harga dasar berubah, harga fotokopi dan print berubah pula sesuai yang 
disetting (harga print ialah harga dasar ditambahkan Rp. 50,-) 
F. KESIMPULAN 
 Enkapsulasi merupakan metode pengkapsulan yang digunakan untuk melindungi 
data pada satu class, dalam hal ini dengan cara mmenggunakan atribut private pada 
variabel. 
 Untuk mengakses variabel private dalam suatu class, kita harus melalui method 
public 
 Class yang mengakses class yang sudah terenkapsulasi diberikan wewenang untuk 
mengakses atribut – atribut bertipe public saja. 
 Dua hal yang mendasar dalam enkapsulasi, yakni : 
 Information Hiding adalah proses yang menyembunyikan informasi dari 
suatu classsehingga class tersebut tidak dapat diakses dari luar. 
 Interface to Acces data adalah cara melalukan perubahan terhadap atribut 
yang di information hiding 
 Accessor Methods, digunakan untuk membaca nilai variabel pada class, baik 
berupa instance maupun static. 
 Mutator Methods, digunakan untuk mengubah atau memberi nilai variable pada 
class, baik berupa instance maupun static.
G. DAFTAR PUSTAKA 
 Modul IV “Encapsulation”Praktikum Pemrograman Berbasis Objek. Pendidikan 
Teknik Informatika — Teknik Elektro — Universitas Negeri Malang — 2014.

More Related Content

What's hot

Cara membuat fungsi dan prosedur pada java
Cara membuat fungsi dan prosedur pada javaCara membuat fungsi dan prosedur pada java
Cara membuat fungsi dan prosedur pada javaDevandy Enda
 
Modul Praktikum Pemrograman Berorientasi Objek (Chap.10)
Modul Praktikum Pemrograman Berorientasi Objek (Chap.10)Modul Praktikum Pemrograman Berorientasi Objek (Chap.10)
Modul Praktikum Pemrograman Berorientasi Objek (Chap.10)Debby Ummul
 
Modul PBO Bab-07 - Enkapsulasi (Encapsulation)
Modul PBO Bab-07 - Enkapsulasi (Encapsulation)Modul PBO Bab-07 - Enkapsulasi (Encapsulation)
Modul PBO Bab-07 - Enkapsulasi (Encapsulation)Rakhmat Dedi Gunawan
 
Context Free Grammar 1 - Materi 6 - TBO
Context Free Grammar 1 - Materi 6 - TBOContext Free Grammar 1 - Materi 6 - TBO
Context Free Grammar 1 - Materi 6 - TBOahmad haidaroh
 
[PBO] Pertemuan 13 - Membuat Aplikasi Desktop dengan JDBC DAO MVC
[PBO] Pertemuan 13 - Membuat Aplikasi Desktop dengan JDBC DAO MVC[PBO] Pertemuan 13 - Membuat Aplikasi Desktop dengan JDBC DAO MVC
[PBO] Pertemuan 13 - Membuat Aplikasi Desktop dengan JDBC DAO MVCrizki adam kurniawan
 
Pengulangan Visual Basic
Pengulangan Visual BasicPengulangan Visual Basic
Pengulangan Visual BasicEman Mendrofa
 
Modul PBO Bab-05 - Pewarisan (Inheritance)
Modul PBO Bab-05 - Pewarisan (Inheritance)Modul PBO Bab-05 - Pewarisan (Inheritance)
Modul PBO Bab-05 - Pewarisan (Inheritance)Rakhmat Dedi Gunawan
 
Konsep Inheritance
Konsep InheritanceKonsep Inheritance
Konsep InheritanceRiski_kiki
 
Laporan PBO pratikum 2
Laporan PBO pratikum 2Laporan PBO pratikum 2
Laporan PBO pratikum 2rahmi wahyuni
 
Pengulangan for Algoritma
Pengulangan for AlgoritmaPengulangan for Algoritma
Pengulangan for Algoritmacasnadi
 
Struktur dan kondisi pada bahasa pemrograman php
Struktur dan kondisi pada bahasa pemrograman phpStruktur dan kondisi pada bahasa pemrograman php
Struktur dan kondisi pada bahasa pemrograman phpVicky Nitinegoro
 
Membuat installer by depandi enda
Membuat installer by depandi endaMembuat installer by depandi enda
Membuat installer by depandi endaDevandy Enda
 
membuat function dalam mysql
membuat function dalam mysqlmembuat function dalam mysql
membuat function dalam mysqlsukangimpi
 
Intermediate code kode antara
Intermediate code   kode antaraIntermediate code   kode antara
Intermediate code kode antaraGunawan Manalu
 

What's hot (20)

Cara membuat fungsi dan prosedur pada java
Cara membuat fungsi dan prosedur pada javaCara membuat fungsi dan prosedur pada java
Cara membuat fungsi dan prosedur pada java
 
Modul Praktikum Pemrograman Berorientasi Objek (Chap.10)
Modul Praktikum Pemrograman Berorientasi Objek (Chap.10)Modul Praktikum Pemrograman Berorientasi Objek (Chap.10)
Modul Praktikum Pemrograman Berorientasi Objek (Chap.10)
 
Modul PBO Bab-07 - Enkapsulasi (Encapsulation)
Modul PBO Bab-07 - Enkapsulasi (Encapsulation)Modul PBO Bab-07 - Enkapsulasi (Encapsulation)
Modul PBO Bab-07 - Enkapsulasi (Encapsulation)
 
Pbo
PboPbo
Pbo
 
Context Free Grammar 1 - Materi 6 - TBO
Context Free Grammar 1 - Materi 6 - TBOContext Free Grammar 1 - Materi 6 - TBO
Context Free Grammar 1 - Materi 6 - TBO
 
[PBO] Pertemuan 13 - Membuat Aplikasi Desktop dengan JDBC DAO MVC
[PBO] Pertemuan 13 - Membuat Aplikasi Desktop dengan JDBC DAO MVC[PBO] Pertemuan 13 - Membuat Aplikasi Desktop dengan JDBC DAO MVC
[PBO] Pertemuan 13 - Membuat Aplikasi Desktop dengan JDBC DAO MVC
 
Pengulangan Visual Basic
Pengulangan Visual BasicPengulangan Visual Basic
Pengulangan Visual Basic
 
Modul PBO Bab-05 - Pewarisan (Inheritance)
Modul PBO Bab-05 - Pewarisan (Inheritance)Modul PBO Bab-05 - Pewarisan (Inheritance)
Modul PBO Bab-05 - Pewarisan (Inheritance)
 
Konsep Inheritance
Konsep InheritanceKonsep Inheritance
Konsep Inheritance
 
Modul PBO Bab-08 - Java GUI
Modul PBO Bab-08 - Java GUIModul PBO Bab-08 - Java GUI
Modul PBO Bab-08 - Java GUI
 
Sistem bus komputer
Sistem bus komputerSistem bus komputer
Sistem bus komputer
 
Laporan PBO pratikum 2
Laporan PBO pratikum 2Laporan PBO pratikum 2
Laporan PBO pratikum 2
 
Pengulangan for Algoritma
Pengulangan for AlgoritmaPengulangan for Algoritma
Pengulangan for Algoritma
 
Struktur dan kondisi pada bahasa pemrograman php
Struktur dan kondisi pada bahasa pemrograman phpStruktur dan kondisi pada bahasa pemrograman php
Struktur dan kondisi pada bahasa pemrograman php
 
[PBO] Pertemuan 6 - Interface
[PBO] Pertemuan 6 - Interface[PBO] Pertemuan 6 - Interface
[PBO] Pertemuan 6 - Interface
 
Membuat installer by depandi enda
Membuat installer by depandi endaMembuat installer by depandi enda
Membuat installer by depandi enda
 
membuat function dalam mysql
membuat function dalam mysqlmembuat function dalam mysql
membuat function dalam mysql
 
Pengantar database
Pengantar databasePengantar database
Pengantar database
 
Intermediate code kode antara
Intermediate code   kode antaraIntermediate code   kode antara
Intermediate code kode antara
 
Pengenalan c++ bagian 3
Pengenalan c++ bagian 3Pengenalan c++ bagian 3
Pengenalan c++ bagian 3
 

Similar to Encapsulation

Laporan PBO Pratikum 3
Laporan PBO Pratikum 3Laporan PBO Pratikum 3
Laporan PBO Pratikum 3rahmi wahyuni
 
Pemrograman Berorientasi Objek "Pengenalan Dasar Pemrograman JAVA"
Pemrograman Berorientasi Objek "Pengenalan Dasar Pemrograman JAVA"Pemrograman Berorientasi Objek "Pengenalan Dasar Pemrograman JAVA"
Pemrograman Berorientasi Objek "Pengenalan Dasar Pemrograman JAVA"Asnita Meydelia C K
 
Dasar pemrograman C++
Dasar pemrograman C++Dasar pemrograman C++
Dasar pemrograman C++Andan Sperrow
 
Modul prak2 constructor dan overloading
Modul prak2   constructor dan overloadingModul prak2   constructor dan overloading
Modul prak2 constructor dan overloadingwahyuniwulan
 
Pbo inheritance, polymorphism, dan inte
Pbo inheritance, polymorphism, dan intePbo inheritance, polymorphism, dan inte
Pbo inheritance, polymorphism, dan inteSmkn-2 Pekanbaru
 
Java (Netbeans) - Class, Constructor, Object (Object Oriented Programming)
Java (Netbeans) - Class, Constructor, Object (Object Oriented Programming)Java (Netbeans) - Class, Constructor, Object (Object Oriented Programming)
Java (Netbeans) - Class, Constructor, Object (Object Oriented Programming)Melina Krisnawati
 
pbo 3 ervan
pbo 3 ervanpbo 3 ervan
pbo 3 ervanaris
 
Modul pratikum pbo - Polimorphism
Modul pratikum pbo - PolimorphismModul pratikum pbo - Polimorphism
Modul pratikum pbo - Polimorphismrahmantoyuri
 
Modul pratikum pbo - ENCAPSULATION
Modul pratikum pbo - ENCAPSULATIONModul pratikum pbo - ENCAPSULATION
Modul pratikum pbo - ENCAPSULATIONrahmantoyuri
 
2_enkapsulasi.pptx
2_enkapsulasi.pptx2_enkapsulasi.pptx
2_enkapsulasi.pptxArifRizkiM
 
Object Oriented Programming Concept
Object Oriented Programming Concept Object Oriented Programming Concept
Object Oriented Programming Concept EsterLumba
 
Modul xi dan xii algo
Modul xi dan xii algoModul xi dan xii algo
Modul xi dan xii algoSTMIK AKAKOM
 
PEMORGRAMAN BERORIENTASI OBJEK-02 Teknologi JAVA.pptx
PEMORGRAMAN BERORIENTASI OBJEK-02 Teknologi JAVA.pptxPEMORGRAMAN BERORIENTASI OBJEK-02 Teknologi JAVA.pptx
PEMORGRAMAN BERORIENTASI OBJEK-02 Teknologi JAVA.pptxBBXSQUAD
 

Similar to Encapsulation (20)

Laporan PBO Pratikum 3
Laporan PBO Pratikum 3Laporan PBO Pratikum 3
Laporan PBO Pratikum 3
 
Pemrograman Berorientasi Objek "Pengenalan Dasar Pemrograman JAVA"
Pemrograman Berorientasi Objek "Pengenalan Dasar Pemrograman JAVA"Pemrograman Berorientasi Objek "Pengenalan Dasar Pemrograman JAVA"
Pemrograman Berorientasi Objek "Pengenalan Dasar Pemrograman JAVA"
 
Dasar pemrograman C++
Dasar pemrograman C++Dasar pemrograman C++
Dasar pemrograman C++
 
Modul prak2 constructor dan overloading
Modul prak2   constructor dan overloadingModul prak2   constructor dan overloading
Modul prak2 constructor dan overloading
 
Pbo inheritance, polymorphism, dan inte
Pbo inheritance, polymorphism, dan intePbo inheritance, polymorphism, dan inte
Pbo inheritance, polymorphism, dan inte
 
Java (Netbeans) - Class, Constructor, Object (Object Oriented Programming)
Java (Netbeans) - Class, Constructor, Object (Object Oriented Programming)Java (Netbeans) - Class, Constructor, Object (Object Oriented Programming)
Java (Netbeans) - Class, Constructor, Object (Object Oriented Programming)
 
pbo 3 ervan
pbo 3 ervanpbo 3 ervan
pbo 3 ervan
 
Modul pratikum pbo - Polimorphism
Modul pratikum pbo - PolimorphismModul pratikum pbo - Polimorphism
Modul pratikum pbo - Polimorphism
 
Modul pratikum pbo - ENCAPSULATION
Modul pratikum pbo - ENCAPSULATIONModul pratikum pbo - ENCAPSULATION
Modul pratikum pbo - ENCAPSULATION
 
2_enkapsulasi.pptx
2_enkapsulasi.pptx2_enkapsulasi.pptx
2_enkapsulasi.pptx
 
Object Oriented Programming Concept
Object Oriented Programming Concept Object Oriented Programming Concept
Object Oriented Programming Concept
 
365 4 inheritance
365 4 inheritance365 4 inheritance
365 4 inheritance
 
Modul Object Oriented Programming
Modul Object Oriented ProgrammingModul Object Oriented Programming
Modul Object Oriented Programming
 
6. OOP Java
6. OOP Java6. OOP Java
6. OOP Java
 
13216 3 enkapsulasi
13216 3 enkapsulasi13216 3 enkapsulasi
13216 3 enkapsulasi
 
28431 3 enkapsulasi
28431 3 enkapsulasi28431 3 enkapsulasi
28431 3 enkapsulasi
 
Overridung polymorphism
Overridung polymorphismOverridung polymorphism
Overridung polymorphism
 
9150 8 interface
9150 8  interface9150 8  interface
9150 8 interface
 
Modul xi dan xii algo
Modul xi dan xii algoModul xi dan xii algo
Modul xi dan xii algo
 
PEMORGRAMAN BERORIENTASI OBJEK-02 Teknologi JAVA.pptx
PEMORGRAMAN BERORIENTASI OBJEK-02 Teknologi JAVA.pptxPEMORGRAMAN BERORIENTASI OBJEK-02 Teknologi JAVA.pptx
PEMORGRAMAN BERORIENTASI OBJEK-02 Teknologi JAVA.pptx
 

More from rahmi wahyuni

Modul praktikum 11 hashing table
Modul praktikum 11 hashing tableModul praktikum 11 hashing table
Modul praktikum 11 hashing tablerahmi wahyuni
 
Laporan praktikum v visual basic
Laporan praktikum v visual basicLaporan praktikum v visual basic
Laporan praktikum v visual basicrahmi wahyuni
 
Laporan praktikum iv.2 visual
Laporan praktikum iv.2 visualLaporan praktikum iv.2 visual
Laporan praktikum iv.2 visualrahmi wahyuni
 
Laporan praktikum iv.1 visual
Laporan praktikum iv.1 visualLaporan praktikum iv.1 visual
Laporan praktikum iv.1 visualrahmi wahyuni
 
Laporan praktikum iii visual basic
Laporan praktikum iii visual basicLaporan praktikum iii visual basic
Laporan praktikum iii visual basicrahmi wahyuni
 
Laporan praktikum ii visual
Laporan praktikum ii visualLaporan praktikum ii visual
Laporan praktikum ii visualrahmi wahyuni
 
Laporan pratikum iv web
Laporan pratikum iv webLaporan pratikum iv web
Laporan pratikum iv webrahmi wahyuni
 
Laporan pratikum iii web
Laporan pratikum iii webLaporan pratikum iii web
Laporan pratikum iii webrahmi wahyuni
 
Laporan pratikum II web
Laporan pratikum II webLaporan pratikum II web
Laporan pratikum II webrahmi wahyuni
 
Laporan pratikum v mulmet
Laporan pratikum v mulmetLaporan pratikum v mulmet
Laporan pratikum v mulmetrahmi wahyuni
 

More from rahmi wahyuni (14)

Modul praktikum 11 hashing table
Modul praktikum 11 hashing tableModul praktikum 11 hashing table
Modul praktikum 11 hashing table
 
Laporan praktikum v visual basic
Laporan praktikum v visual basicLaporan praktikum v visual basic
Laporan praktikum v visual basic
 
Laporan praktikum iv.2 visual
Laporan praktikum iv.2 visualLaporan praktikum iv.2 visual
Laporan praktikum iv.2 visual
 
Laporan praktikum iv.1 visual
Laporan praktikum iv.1 visualLaporan praktikum iv.1 visual
Laporan praktikum iv.1 visual
 
Laporan praktikum iii visual basic
Laporan praktikum iii visual basicLaporan praktikum iii visual basic
Laporan praktikum iii visual basic
 
Laporan praktikum ii visual
Laporan praktikum ii visualLaporan praktikum ii visual
Laporan praktikum ii visual
 
Laporan p1
Laporan p1Laporan p1
Laporan p1
 
Laporan pratikum iv web
Laporan pratikum iv webLaporan pratikum iv web
Laporan pratikum iv web
 
Laporan pratikum iii web
Laporan pratikum iii webLaporan pratikum iii web
Laporan pratikum iii web
 
Laporan pratikum II web
Laporan pratikum II webLaporan pratikum II web
Laporan pratikum II web
 
Laporan pratikum 1
Laporan pratikum 1Laporan pratikum 1
Laporan pratikum 1
 
Laporan pratikum v mulmet
Laporan pratikum v mulmetLaporan pratikum v mulmet
Laporan pratikum v mulmet
 
Animasi Dasar
Animasi DasarAnimasi Dasar
Animasi Dasar
 
PBO Pratikum 1
PBO Pratikum 1PBO Pratikum 1
PBO Pratikum 1
 

Recently uploaded

MATERI SESI 2 KONSEP ETIKA KOMUNIKASI.pptx
MATERI SESI 2 KONSEP ETIKA KOMUNIKASI.pptxMATERI SESI 2 KONSEP ETIKA KOMUNIKASI.pptx
MATERI SESI 2 KONSEP ETIKA KOMUNIKASI.pptxrikosyahputra0173
 
Geologi Jawa Timur-Madura Kelompok 6.pdf
Geologi Jawa Timur-Madura Kelompok 6.pdfGeologi Jawa Timur-Madura Kelompok 6.pdf
Geologi Jawa Timur-Madura Kelompok 6.pdfAuliaAulia63
 
PENGENDALIAN MUTU prodi Blitar penting untuk dimiliki oleh masyarakat .pptx
PENGENDALIAN MUTU prodi Blitar penting untuk dimiliki oleh masyarakat .pptxPENGENDALIAN MUTU prodi Blitar penting untuk dimiliki oleh masyarakat .pptx
PENGENDALIAN MUTU prodi Blitar penting untuk dimiliki oleh masyarakat .pptxheru687292
 
Sistem operasi adalah program yang bertindak sebagai perantara antara user de...
Sistem operasi adalah program yang bertindak sebagai perantara antara user de...Sistem operasi adalah program yang bertindak sebagai perantara antara user de...
Sistem operasi adalah program yang bertindak sebagai perantara antara user de...Shary Armonitha
 
Menggunakan Data matematika kelas 7.pptx
Menggunakan Data matematika kelas 7.pptxMenggunakan Data matematika kelas 7.pptx
Menggunakan Data matematika kelas 7.pptxImahMagwa
 
UKURAN PENTYEBARAN DATA PPT KELOMPOK 2.pptx
UKURAN PENTYEBARAN DATA PPT KELOMPOK 2.pptxUKURAN PENTYEBARAN DATA PPT KELOMPOK 2.pptx
UKURAN PENTYEBARAN DATA PPT KELOMPOK 2.pptxzidanlbs25
 
MARIA NOVILIA BOISALA FASILITATOR PMM.pptx
MARIA NOVILIA BOISALA FASILITATOR PMM.pptxMARIA NOVILIA BOISALA FASILITATOR PMM.pptx
MARIA NOVILIA BOISALA FASILITATOR PMM.pptxmariaboisala21
 

Recently uploaded (7)

MATERI SESI 2 KONSEP ETIKA KOMUNIKASI.pptx
MATERI SESI 2 KONSEP ETIKA KOMUNIKASI.pptxMATERI SESI 2 KONSEP ETIKA KOMUNIKASI.pptx
MATERI SESI 2 KONSEP ETIKA KOMUNIKASI.pptx
 
Geologi Jawa Timur-Madura Kelompok 6.pdf
Geologi Jawa Timur-Madura Kelompok 6.pdfGeologi Jawa Timur-Madura Kelompok 6.pdf
Geologi Jawa Timur-Madura Kelompok 6.pdf
 
PENGENDALIAN MUTU prodi Blitar penting untuk dimiliki oleh masyarakat .pptx
PENGENDALIAN MUTU prodi Blitar penting untuk dimiliki oleh masyarakat .pptxPENGENDALIAN MUTU prodi Blitar penting untuk dimiliki oleh masyarakat .pptx
PENGENDALIAN MUTU prodi Blitar penting untuk dimiliki oleh masyarakat .pptx
 
Sistem operasi adalah program yang bertindak sebagai perantara antara user de...
Sistem operasi adalah program yang bertindak sebagai perantara antara user de...Sistem operasi adalah program yang bertindak sebagai perantara antara user de...
Sistem operasi adalah program yang bertindak sebagai perantara antara user de...
 
Menggunakan Data matematika kelas 7.pptx
Menggunakan Data matematika kelas 7.pptxMenggunakan Data matematika kelas 7.pptx
Menggunakan Data matematika kelas 7.pptx
 
UKURAN PENTYEBARAN DATA PPT KELOMPOK 2.pptx
UKURAN PENTYEBARAN DATA PPT KELOMPOK 2.pptxUKURAN PENTYEBARAN DATA PPT KELOMPOK 2.pptx
UKURAN PENTYEBARAN DATA PPT KELOMPOK 2.pptx
 
MARIA NOVILIA BOISALA FASILITATOR PMM.pptx
MARIA NOVILIA BOISALA FASILITATOR PMM.pptxMARIA NOVILIA BOISALA FASILITATOR PMM.pptx
MARIA NOVILIA BOISALA FASILITATOR PMM.pptx
 

Encapsulation

  • 1. LAPORAN PRATIKUM IV PRAKTIKUM PEMROGRAMAN BERORIENTASI OBJEK “ENCAPSULATION” Disusun untuk Memenuhi Matakuliah Praktikum Pemrograman Berorientasi Objek Yang Dibimbing oleh Bapak Heru Wahyu Herwanto, S.T., M.Kom Asisten Praktikum: Jevri Tri Ardiansyah Robi Wahyudi Oleh: Gisra Rahmadhita 130533608259 S1 PTI 2013 Offering B UNIVERSITAS NEGERI MALANG FAKULTAS TEKNIK JURUSAN TEKNIK ELEKTRO S1 PENDIDIKAN TEKNIK INFORMATIKA OKTOBER, 2014
  • 2. “Encapsulation” A. TUJUAN 1. Mahasiswa mampu memahami dan menggunakan konsep Encapsulation dalam pemrograman java. 2. Mendefinisikan method assessor dan mutator 3. Menerapkan konsep penyembunyian data 4. Menerapkan enkapsulasi dalam pemrograman berbasis objek B. DASAR TEORI 1. Encapsulation(Enkapsulasi) Enkapsulasi adalah suatu cara untuk menyembunyikan informasi detail dari suatu class.Enkapsulasi - Memastikan pengguna sebuah objek tidak dapat mengganti keadaan dalam dari sebuah objek dengan cara yang tidak layak; hanya metode dalam objek tersebut yang diberi izin untuk mengakses keadaannya. Setiap objek mengakses interface yang menyebutkan bagaimana objek lainnya dapat berinteraksi dengannya. Objek lainnya tidak akan mengetahui dan tergantung kepada representasi dalam objek tersebut. 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. Sehingga dapat mengurangi kemungkinan bug.
  • 3. Dua hal yang mendasar dalam enkapsulasi, yakni : a. Information Hiding Adalah proses yang menyembunyikan informasi dari suatu class sehingga class tersebut tidak dapat diakses dari luar. Yaitu dengan memberikan akses kontrol “private” ketika mendeklarasikan atribut atau method. b. Interface to Acces data Adalah cara melalukan perubahan terhadap atribut yang di information hiding yaitu dengan membuat suatu interface berupa method untuk menginisialisasi atau merubah nilai dari suatu atribut tersebut. 2. Mutator dan Accessor method a. Accessor Methods Digunakan untuk membaca nilai variabel pada class, baik berupa instance maupun static. b. Mutator Methods Digunakan untuk mengubah atau memberi nilai variable pada class, baik berupa instance maupun static. C. LATIHAN 1. Latihan 1 Bus - penumpang : int - maxPenumpang : int + cetak() a. Script class Bus.java public class Bus { public int penumpang; public int maxPenumpang; public void cetak(){ System.out.println("Penumpang Bus sekarang adalah "+penumpang); System.out.println("Penumpang maksimum seharusnya adalah "+maxPenumpang); } }
  • 4. b. Script class UjiBus.java public class UjiBus { public static void main(String[] args){ //membuat objek busMini dari kelas Bus Bus busMini =new Bus(); //memasukkan nilai jumlah penumpang dan penumpang maksimal ke dalam //objek busMini busMini.penumpang =5; busMini.maxPenumpang =15; //memanggil method cetak pada kelas Bus busMini.cetak(); //menambahkan penumpang pada busMini busMini.penumpang = busMini.penumpang +5; //memanggil method cetak pada kelas Bus busMini.cetak(); //mengurangi jumlah penumpang pada busMini busMini.penumpang = busMini.penumpang -2; busMini.cetak(); //menambahkan jumlah penumpang pada busMini busMini.penumpang = busMini.penumpang +8; busMini.cetak(); } } c. Output program hasil kompilasi d. Perhatikan jumlah penumpang Bus terakhir dengan jumlah penumpang maksimum. Mengapa bisa demikian? Pada program menampilkan penumpang yang overload karena pada penjumlahan penumpang tidak ada kondisi untuk membatasi jumlah penumpang. Karena dari hasil penjumlahan statement kedua ialah 8. Dan nilai 8 dijumlahkan 8 maka akan menghasilkan nilai 16, karena pada statement ke 4 berisi penumpang sekarang dijumlahkan 8 nilainya. Hal inilah yang mengakibatkan bus overload. e. Deskripsi Program Dalam program terjadi kelebihan nilai pada variabel penumpang karena tidak adanya metode untuk membatasi kelas lain (UjiBus) untuk mengelola variabel penumpang sehingga dapat mengubah nilai sembarangan pada
  • 5. atribut penumpang pada kelas Bus. Selain itu, karena tipe variabel tersebut public, sehingga dapat diakses oleh kelas lain. 2. Latihan 2 Bus - penumpang : int - maxPenumpang : int + Bus(maxPenumpang : int) + addPenumpang(penumpang : int) + cetak() a. Script class Bus.java public class Bus { Private int penumpang; Private int maxPenumpang; //konstruksi kelas Bus public Bus(int maxPenumpang){ this.maxPenumpang = maxPenumpang; penumpang =0; } //method mutator untuk menambahkan penumpang public void addPenumpang(int penumpang){ int temp; temp =this.penumpang+penumpang; if(temp >= maxPenumpang){ System.out.println("Penumpang melebihi kuota"); }else{ this.penumpang = temp; } } Public void cetak(){ System.out.println("Penumpang Bus sekarang adalah "+penumpang); System.out.println("Penumpang maksimum seharusnya adalah "+maxPenumpang); } } b. Output Program (diakses dari UjiBus)
  • 6. c. Beri Penjelasan point b! Saat kelas UjiBus dijalankan, maka akan terdapat beberapa error. Karena variable penumpang dan maxPenumpang di kelas Bus telah dirubah menjadi private, maka kelas UjiBus tidak dapat secara langsung merubah nilai dari variable private tersebut. Maka dari itu diperlukan method mutator pada kelas Bus untuk dapat mengakses variabel yang diprivate (method addPenumpang) sekaligus memberikan kondisi agar tidak terjadi overload penumpang. d. Script Class UjiBus.java public class UjiBus { public static void main (String[] args){ //membuat objek busBesar dari class Bus Bus busBesar =new Bus(40); busBesar.cetak(); //penambahan penumpang busBesar.addPenumpang(15);//menambahkan 15 penumpang busBesar.cetak(); //penambahan penumpang busBesar.addPenumpang(5); busBesar.cetak(); //penambahan penumpang busBesar.addPenumpang(26);//menambahkan 26 penumpang busBesar.cetak(); } } e. Output Program dari class yang sudah dirubah f. Deskripsi dan Kesimpulan Pada program diatas kleas UjiBus akan memanggil kelas Bus, kelas tersebut akan memanggil method yang diperlukan. Karena pada kelas Bus terdapat variabel bertipe private maka untuk mengaksesnya harus memakai method baru bertipe asesor/mutator sehingga variabel tersebut dapat diakses. Dan nilai atributnya dapat kita rubah pada kelas lain (UjiBus). Jadi metode enkapsulasi, suatu attribute dalam kelas akan disembunyikan (private) sehingga tidak dapat langsung diakses oleh kelas lain. Untuk mengakses atau merubah nilai attribute tersebut, dibutuhkan sebuah method baik assessor maupun mutator.
  • 7. 3. Latihan 3 a. Tambahkan method getPenumpang pada class Bus. Tambahkan aturan untuk mengakses data penumpang baru ke dalam method getPenumpang. Aturan yang ditambahkan memuat kode akses(password). Jika password benar, maka data penumpang yang baru ditambahkan dan ditampilkan, jika password salah, maka ada peringatan bahwa password salah. Bus - penumpang : int - maxPenumpang : int - penumpangBaru : int + Bus(maxPenumpang : int) + addPenumpang(penumpang : int) + getPenumpang(password : int) : int + cetak() b. Script class Bus public class Bus { private int penumpang; private int maxPenumpang; private int penumpangBaru; //konstruksi kelas Bus public Bus(int maxPenumpang){ this.maxPenumpang = maxPenumpang; penumpang =0; } //method mutator untuk menambahkan penumpang public void addPenumpang(int penumpang){ int temp; temp =this.penumpang+penumpang; if(temp >= maxPenumpang){ System.out.println("Penumpang melebihi kuota"); }else{ this.penumpang = temp; } } //minta password public void getPenumpang(int password){ if (password==123){ System.out.println("nPassword Benar"); addPenumpang(15); } else{ System.out.println("nPassword Salah!!!"); } }
  • 8. public void cetak(){ System.out.println("Penumpang Bus sekarang adalah "+penumpang); System.out.println("Penumpang maksimum seharusnya adalah "+maxPenumpang); } } c. Buat class UjiBus untuk menguji methot getPenumpang tersebut. public class UjiBus { public static void main (String[] args){ int password; //membuat objek busBesar dari class Bus Bus busBesar =new Bus(40); busBesar.cetak(); //penambahan penumpang busBesar.getPenumpang(123); busBesar.cetak(); //penambahan penumpang busBesar.getPenumpang(121); busBesar.cetak(); //penambahan penumpang busBesar.getPenumpang(123); busBesar.cetak(); } } d. Output (hasil) Program e. Deskripsi Program Program diatas berguna untuk memproteksi penambahan penumpang pada kelas Bus, namun dengan fitur proteksi berupa password. Jika password yang dimasukkan benar maka akan menambahkan jumlah penumpang, namun jika salah jumlah penumpang akan tetap sama (tanpa ada penjumalahan). Hal ini dikarenakan pada method getPenumpang terdapat autentikasi berupa parameter password. Jika passwordnya benar (123), maka method tersebut akan memanggil method addPenumpang yang
  • 9. berfungsi menambahkan nilai variabel penumpang. Sehingga jumlah penumpang bertambah D. TUGAS PRAKTIKUM A. Bus - penumpang : double - maxPenumpang : double - counter : double - penumpngBaru : double + Bus(maxPenumpang : double) + addPenumpang(penumpang : double) + getPenumpang(password : int) : double + getAverage() : double + cetak() Dari hasil program latihan 3, tambahkan method getAverage() untuk menghitung rata-rata berat penumpang yang ditambahkan ! a. Script class Bus public class Bus { private double penumpang; private double maxPenumpang; private double penumpangBaru; private double counter; //konstruksi kelas Bus public Bus(double maxPenumpang){ this.maxPenumpang = maxPenumpang; penumpang =0; } //method mutator untuk menambahkan penumpang public void addPenumpang(double penumpang){ double temp; temp =this.penumpang+penumpang; if(temp >= maxPenumpang){ System.out.println("Penumpang melebihi kuota"); }else{ this.penumpang = temp; counter++; } } //mdoublea password public void getPenumpang(double password){ if (password==123){ System.out.println("nPassword Benar"); addPenumpang(15);
  • 10. } else{ System.out.println("nPassword Salah!!!"); } } public double getAverage(){ return penumpang/counter; } public void cetak(){ System.out.println("Penumpang Bus sekarang adalah "+penumpang); System.out.println("Penumpang maksimum seharusnya adalah "+maxPenumpang); } } b. Buat class UjiBus untuk menguji methot getPenumpang tersebut. public class UjiBus { public static void main (String[] args){ int password; //membuat objek busBesar dari class Bus Bus busBesar =new Bus(40); busBesar.cetak(); //penambahan penumpang busBesar.getPenumpang(123); busBesar.cetak(); //penambahan penumpang busBesar.getPenumpang(121); busBesar.cetak(); //penambahan penumpang busBesar.getPenumpang(123); busBesar.cetak(); System.out.println("Rata-rata Penumpang : "+busBesar.getAverage()); } } c. Output (hasil) Program d. Deskripsi Program
  • 11. Pada program diatas, ialah hasil dari penambahan method getAverage() pada kelas Bus. Dimana kelas method tersebut akan mencari nilai rata-rata penumpang yang naik ke Bus yang didapatkan dari jumlah total penumpang bus dibagi dengan counter (jumlah berhenti) E. TUGAS RUMAH 1. Buatlah sebuah class “Bola” dengan property jari-jari dan method setjarijari(), showDiameter(),showLuasPermukaan(), dan showVolume(). Gunakan double untuk presisi variable jari-jari dan gunakan library math class untuk menggunakan constanta Math.PI. Selanjutnya buatlah file testnya dengan urutan langkah, membuat variable Jarijari, menciptakan objek Bola, memanggil method showDiameter(), showLuasPermukaan(), dan showVolume(). Selanjutnya memanipulasi objek yang telah dibuat dengan memanggil method setJarijari() dengan menggunakan variable Jarijari yang telah dibuat. Tampilkan lagi hasilnya dengan menggunakan method showDiameter(), showLuasPermukaan(), dan showVolume(). (Jangan lupa untuk menggunakan konsep enkapsulasi) i. Script class Bola.java import java.lang.Math; public class Bola{ private double jarijari; public Bola(double jarijari){ this.jarijari=jarijari; } public void setJarijari(double jarijari){ this.jarijari=jarijari; } public void showDiameter(){ System.out.println("Diameter Bola : "+2*jarijari); } public void showLuasPermukaan(){ System.out.println("Luas Permukaan Bola : "+(4/3*Math.PI*Math.pow(jarijari,3))); } public void showVolume(){ System.out.println("Volume Bola : "+(4*Math.PI*Math.pow(jarijari,2))); } }
  • 12. ii. Script class TestBola.java public class MainBola{ public static void main(String[]args){ double Jarijari=14; Bola objekbola=new Bola(7); objekbola.showDiameter(); objekbola.showLuasPermukaan(); objekbola.showVolume(); System.out.println("nn"); objekbola.setJarijari(Jarijari); //manipulasi denganvariabel jari-jari yang dibuat objekbola.showDiameter(); objekbola.showLuasPermukaan(); objekbola.showVolume(); } } iii. Output (hasil) Program iv. Deskripsi program Program diatas ialah implementasi konsep enkapsulasi pada perhitungan luas dan volume bola. Dimana kelas MainBola akan memanggil method ShowDiameter untuk menampilkan nilai diameter dari bola, selanjutnya program akan memanggil method LuasPermukaan dan ShowVolume untuk menampilkan nilai luas permukaan dan volumenya. Setelah itu oleh kelas MainBola nilai jari-jari diubah menjadi 14 (pada syntax objekbola.setJarijari(Jarijari);) sehingga nilai luas dan volumenya berubah karena nilai variabelnya diganti. Konstanta Math P.I digunakan untuk memudahkan operasi matematika seperti pangkat (pow) pada program tersebut sehingga memudahkan programmer untuk melakukan operasi matematik 2. Tugas Rumah 2 Buatlah program sendiri menggunakan konsep enkapsulasi dengan tema bidang percetakan! Susunan pengerjaan kotak encapsulasi, program, hasil output program dan berikan penjelasan singkat!
  • 13. a. Script Percetakan.java public class Percetakan{ private int biaya; public Percetakan(int biaya){ this.biaya=biaya; } public int getBiayaFC(){ return this.biaya; } public int getBiayaP(){ return (this.biaya+50); } public int getBiayaPW(){ return (this.biaya+150); } public void setBiaya(int biaya,int password){ if (password==123) { this.biaya=biaya; System.out.println("Penggantian harga dasar SUKSESnnn"); System.out.println("Harga Saat Ini : Rp "+biaya); } else { System.out.println("Password Salah!! Silahkan Ulanginnn"); } } /*public int Fotocopy(int jumlah){ int total=jumlah*biaya*8/10; return total; } public int Print(int jumlah){ int total=jumlah*biaya*9/10; return total; } public int Warna(int jumlah){ int total=jumlah*biaya*29/30; return total;*/ } b. Script TestPercetakan.java import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class TestPercetakan { public static String bacaInputan(){ String baca ="";
  • 14. InputStreamReader input =new InputStreamReader(System.in); BufferedReader buf =new BufferedReader(input); try{ baca = buf.readLine(); }catch(IOException e){ System.out.println("Error!"); } return baca; } public static void main(String[]args){ int menu=0; int banyak; int pass; int harga; Percetakan cetakku =new Percetakan(100); //harga dasar 100 rupiah while(menu!=4){ System.out.print("nn======= Percetakan Cantika ========n"+ "1. Hitung Biaya Printn"+ "2. Hitung Biaya Fotocopyn"+ "3. Ganti Harga Dasarn"+ "4. Keluarn"+ "Pilih Menu : "); menu = Integer.parseInt(bacaInputan()); if(menu ==1){ System.out.println("Hitung Biaya Print"); System.out.print("Masukkan jumlah halaman yang dicetak :"); banyak = Integer.parseInt(bacaInputan()); System.out.println("Harga total pencetakan "+banyak+" halaman adalah : Rp. "+banyak*cetakku.getBiayaP()); } else if(menu ==2){ System.out.println("Hitung Biaya Fotocopy"); System.out.print("Masukkan jumlah halaman yang dicopy :"); banyak = Integer.parseInt(bacaInputan()); System.out.println("Harga total Foto Copy "+banyak+" halaman adalah : Rp. "+banyak*cetakku.getBiayaFC()); } else if(menu ==3){ System.out.println("Ganti Harga Dasar"); System.out.println("Harga Sebelumnya : Rp "+cetakku.getBiayaFC()); System.out.print("Masukkan Password : "); pass = Integer.parseInt(bacaInputan()); System.out.print("Masukkan Harga Baru : "); harga = Integer.parseInt(bacaInputan()); cetakku.setBiaya(harga, pass); } if(menu ==4){ } else{ System.out.println("nnMenu yang dimaksud tidak tersedia"); }
  • 15. } }} c. Output (hasil) program
  • 16. d. Deskripsi Di dalam program ini untuk menghitung harga yang harus dibayarkan oleh konsumen dari percetakan cantika. Harga dasar dari foto copy ialah 100 rupiah yang dilihat pada parameter method Percetakan pada inisialisasi kelas Percetakan. Kemudian user dapat memilih menu 1-4 dimana jika memilih menu 1 maka akan menghitung biaya print dengan harga Rp. 150,- (harga default) dan harga 100 setiap foto copy perlembarnya karena disetting oleh kelas Percetakan harga print ialah harga dasar (foto kopi) ditambahkan Rp. 50,-. Pada proses penggantian harga dasar user diminta memasukkan password, jika password benar maka dapat mengubah harga dasar sesuai keinginannya karena pada kelas TestPercetakan memakai method mutator (cetakku.setBiaya(harga, pass);) untuk mengubah harga dasar sehingga ketika harga dasar berubah, harga fotokopi dan print berubah pula sesuai yang disetting (harga print ialah harga dasar ditambahkan Rp. 50,-) F. KESIMPULAN  Enkapsulasi merupakan metode pengkapsulan yang digunakan untuk melindungi data pada satu class, dalam hal ini dengan cara mmenggunakan atribut private pada variabel.  Untuk mengakses variabel private dalam suatu class, kita harus melalui method public  Class yang mengakses class yang sudah terenkapsulasi diberikan wewenang untuk mengakses atribut – atribut bertipe public saja.  Dua hal yang mendasar dalam enkapsulasi, yakni :  Information Hiding adalah proses yang menyembunyikan informasi dari suatu classsehingga class tersebut tidak dapat diakses dari luar.  Interface to Acces data adalah cara melalukan perubahan terhadap atribut yang di information hiding  Accessor Methods, digunakan untuk membaca nilai variabel pada class, baik berupa instance maupun static.  Mutator Methods, digunakan untuk mengubah atau memberi nilai variable pada class, baik berupa instance maupun static.
  • 17. G. DAFTAR PUSTAKA  Modul IV “Encapsulation”Praktikum Pemrograman Berbasis Objek. Pendidikan Teknik Informatika — Teknik Elektro — Universitas Negeri Malang — 2014.