SlideShare a Scribd company logo
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

DOCX
Laporan PBO pratikum 2
PPTX
Materi 3 Finite State Automata
PDF
35820427 karya-tulis-ilmiah
PPT
Compiler dan Interpreter
DOC
Proposal pengabdian kepada masyarakat 2015
PPTX
Materi sorting(pengurutan)-Dasar-Dasar Pemprograman
DOC
Makalah array
PDF
2. Array of Record (Struktur Data)
Laporan PBO pratikum 2
Materi 3 Finite State Automata
35820427 karya-tulis-ilmiah
Compiler dan Interpreter
Proposal pengabdian kepada masyarakat 2015
Materi sorting(pengurutan)-Dasar-Dasar Pemprograman
Makalah array
2. Array of Record (Struktur Data)

What's hot (20)

DOCX
Laporan hasil praktikum modul i pengenalan pascal
DOCX
Java (Netbeans) - Class, Constructor, Object (Object Oriented Programming)
DOCX
Latar belakang pendidikan kewarganegaraan bg 1
PPT
4. pengamanan sistem operasi
PDF
Teori bahasa-dan-otomata
PPTX
SLIDE KE:5 NFA
DOCX
Makalah Hak dan Kewajiban Warga Negara Indonesia
PPT
Pertemuan 2 - Digital Image Processing - Image Enhancement - Citra Digital
PDF
Algoritma Pemrograman 2
DOCX
Part 3 - Mengenal Form dan Objek Kontrol
PDF
Pemrograman C++ - Fungsi dan Prosedur
DOCX
Laporan tugas struktur data
PPTX
PPT UJI NORMALITAS
PDF
Push Down Automata (PDA)
PDF
MudafiqRiyan - Membuat Installer Dari Java Desktop
PPTX
Pancasila sebagai sistem filsafat kel.5
DOCX
Tugas Makalah
PDF
4.1 Operasi Dasar Singly Linked List 1 (primitive list)
DOCX
MAKALAH BAHASA INDONESIA ESAI
PDF
Modul Praktikum Pemrograman Berorientasi Objek (Chap.1-6)
Laporan hasil praktikum modul i pengenalan pascal
Java (Netbeans) - Class, Constructor, Object (Object Oriented Programming)
Latar belakang pendidikan kewarganegaraan bg 1
4. pengamanan sistem operasi
Teori bahasa-dan-otomata
SLIDE KE:5 NFA
Makalah Hak dan Kewajiban Warga Negara Indonesia
Pertemuan 2 - Digital Image Processing - Image Enhancement - Citra Digital
Algoritma Pemrograman 2
Part 3 - Mengenal Form dan Objek Kontrol
Pemrograman C++ - Fungsi dan Prosedur
Laporan tugas struktur data
PPT UJI NORMALITAS
Push Down Automata (PDA)
MudafiqRiyan - Membuat Installer Dari Java Desktop
Pancasila sebagai sistem filsafat kel.5
Tugas Makalah
4.1 Operasi Dasar Singly Linked List 1 (primitive list)
MAKALAH BAHASA INDONESIA ESAI
Modul Praktikum Pemrograman Berorientasi Objek (Chap.1-6)
Ad

Similar to Laporan PBO Modul 4 (19)

PDF
Pemrograman Berorientasi Objek "Pengenalan Dasar Pemrograman JAVA"
PDF
Modul Pemrograman Berorientasi Objek
PDF
Modul pratikum pbo - ENCAPSULATION
PDF
Modul PBO Bab-07 - Enkapsulasi (Encapsulation)
PDF
[PBO] Pertemuan 5 - Polymorphism
PDF
MatrikulasiJava.pdf
DOCX
Laporan Praktikum Pertemuan 1, PBO
PDF
Modul Object Oriented Programming
DOCX
Laporan Modul 1 Praktikum Pemrograman Berbasis Objek
PDF
DOCX
Dasar pemrograman C++
PDF
[PUBLIC] quiz-01-midterm-solutions.pdf
PDF
java-fundamental-dan-java-web-blibli-dot-com-ilmu-komputer-IPB
DOCX
analisa konstruktor mm.docx analisa data
PDF
Konsep Inheritance
DOC
Modul pbo baru
PPT
Lanjutan-Konsep-OOPLanjutan-Konsep-OOP.ppt
PDF
materi oop lanjtan ASSSASASASASASASASASASASA).pdf
PDF
5475 1 review konsep pbo
Pemrograman Berorientasi Objek "Pengenalan Dasar Pemrograman JAVA"
Modul Pemrograman Berorientasi Objek
Modul pratikum pbo - ENCAPSULATION
Modul PBO Bab-07 - Enkapsulasi (Encapsulation)
[PBO] Pertemuan 5 - Polymorphism
MatrikulasiJava.pdf
Laporan Praktikum Pertemuan 1, PBO
Modul Object Oriented Programming
Laporan Modul 1 Praktikum Pemrograman Berbasis Objek
Dasar pemrograman C++
[PUBLIC] quiz-01-midterm-solutions.pdf
java-fundamental-dan-java-web-blibli-dot-com-ilmu-komputer-IPB
analisa konstruktor mm.docx analisa data
Konsep Inheritance
Modul pbo baru
Lanjutan-Konsep-OOPLanjutan-Konsep-OOP.ppt
materi oop lanjtan ASSSASASASASASASASASASASA).pdf
5475 1 review konsep pbo
Ad

More from rahmi wahyuni (15)

PDF
Modul praktikum 11 hashing table
DOCX
Laporan praktikum v visual basic
DOCX
Laporan praktikum iv.2 visual
DOCX
Laporan praktikum iv.1 visual
DOCX
Laporan praktikum iii visual basic
DOCX
Laporan praktikum ii visual
DOC
Laporan p1
DOCX
Laporan pratikum iv web
DOCX
Laporan pratikum iii web
DOCX
Laporan pratikum II web
DOCX
Laporan pratikum 1
DOCX
Laporan pratikum v mulmet
DOCX
Animasi Dasar
DOCX
Laporan PBO Pratikum 3
DOCX
PBO Pratikum 1
Modul praktikum 11 hashing table
Laporan praktikum v visual basic
Laporan praktikum iv.2 visual
Laporan praktikum iv.1 visual
Laporan praktikum iii visual basic
Laporan praktikum ii visual
Laporan p1
Laporan pratikum iv web
Laporan pratikum iii web
Laporan pratikum II web
Laporan pratikum 1
Laporan pratikum v mulmet
Animasi Dasar
Laporan PBO Pratikum 3
PBO Pratikum 1

Recently uploaded (17)

PPTX
PRESNTASI pembangunan perumahan komersil dua lantai
PDF
GERUDUK MJKN aplikasi mobile JKN persentation
PPTX
Flowchart Pengaplikasian Sistem Arduino.pptx
PPTX
Pelatihan_Model_Pembinaan_Gen_Z_Dasar_Menengah.pptx
DOCX
proposal nurul 2.docx Fix dokumen yang penting
PDF
6754aa176b39b (1).pdf data analisis acara
PPT
Modul-Projek-JAJANAN-PASAR-YANG-MENGHASILKAN-RUPIAH-Fase-C.ppt
PDF
LK - SIMULASI SIKLUS INKUIRI KOLABORATIF.pdf
PPTX
Materi Kesiapan Tahapan Pemungutan dan Penghitungan Suara Pemilihan Ulang Tah...
PPTX
Gagal Ginjal Akut GHINA SELVIRA .pptx
PPTX
EFEKTIVITAS EKSTRAK DAUN INDIGOFERA.pptx
PPTX
PERENCANAAN MEP PERUM.MULTI CIPTA PERMAI_Type 36.pptx
PDF
c3oYi7NNpW3omVenymVtXLtqfSi2hzugUlVYbGlQ.pdf
PPTX
Introduction FastAPI for Professional and Student
PDF
811848831-PPT-TES-DESKRIPShhhhhhhhhI.pdf
PPTX
ANALISIS DATA FUNGSI INFORMATIKA SMP.pptx
DOCX
PROPOSAL PENGARUH PEMBERIAN MIKRONUTRIEN TERHADAP PENINGKATAN INDEKS MASA TUB...
PRESNTASI pembangunan perumahan komersil dua lantai
GERUDUK MJKN aplikasi mobile JKN persentation
Flowchart Pengaplikasian Sistem Arduino.pptx
Pelatihan_Model_Pembinaan_Gen_Z_Dasar_Menengah.pptx
proposal nurul 2.docx Fix dokumen yang penting
6754aa176b39b (1).pdf data analisis acara
Modul-Projek-JAJANAN-PASAR-YANG-MENGHASILKAN-RUPIAH-Fase-C.ppt
LK - SIMULASI SIKLUS INKUIRI KOLABORATIF.pdf
Materi Kesiapan Tahapan Pemungutan dan Penghitungan Suara Pemilihan Ulang Tah...
Gagal Ginjal Akut GHINA SELVIRA .pptx
EFEKTIVITAS EKSTRAK DAUN INDIGOFERA.pptx
PERENCANAAN MEP PERUM.MULTI CIPTA PERMAI_Type 36.pptx
c3oYi7NNpW3omVenymVtXLtqfSi2hzugUlVYbGlQ.pdf
Introduction FastAPI for Professional and Student
811848831-PPT-TES-DESKRIPShhhhhhhhhI.pdf
ANALISIS DATA FUNGSI INFORMATIKA SMP.pptx
PROPOSAL PENGARUH PEMBERIAN MIKRONUTRIEN TERHADAP PENINGKATAN INDEKS MASA TUB...

Laporan PBO Modul 4

  • 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.