Object Oriented Analysis & Design (Analisis & Perancangan Berorientasi Objek)
Laporan _2_Pemrograman Berorientasi Object
Transcript of Laporan _2_Pemrograman Berorientasi Object
-
8/2/2019 Laporan _2_Pemrograman Berorientasi Object
1/14
Vehicle1.java
public class vehicle1 {
private double load, maxload;
public vehicle1(double max){
this.maxload = max;
}
public double getLoad(){
return this.load;
}
public double getMaxLoad(){
return this.maxload;
}
public boolean addBox(double weight){
double temp = 0.00;
temp = this.load + weight;
if(temp
-
8/2/2019 Laporan _2_Pemrograman Berorientasi Object
2/14
TestVehicle1.java
public class TestVehicle1 {
public static void main(String[] args) {
System.out.println("Creating a vehicle with a 10,000 kg maximum load.");
vehicle1 vehicle = new vehicle1(10000);
System.out.println("Add box #1 (500kg) : "+ vehicle.addBox(500));
System.out.println("Add box #2 (250kg) : "+ vehicle.addBox(250));
System.out.println("Add box #3 (5000kg) : "+ vehicle.addBox(5000));
System.out.println("Add box #4 (4000kg) : "+ vehicle.addBox(4000));
System.out.println("Add box #5 (300kg) : "+ vehicle.addBox(300));
System.out.println("Vehicle load is "+ vehicle.getLoad()+"kg");
}
}
PERTANYAAN
1. Method yang menjadi accessor (getter) adalah getLoad dan getMaxLoad
2. Output dari program adalah hasil true atau false dari berat vehicle yang bila
10000 maka bernilai true, tetapi bila 10000 maka akan bernilai false.
Penambahan box #1bernilai true karena load = 500kg 10000
Penambahan box #2 bernilai true karena load = 750kg 10000
Penambahan box #3 bernilai true karena load = 5750kg 10000
Penambahan box #4 bernilai true karena load = 9750kg 10000
Penambahan box #5 bernilai false karena load = 10050kg 10000
Sehingga total load vehicle adalah 9750kg
-
8/2/2019 Laporan _2_Pemrograman Berorientasi Object
3/14
3. Menambahkan source kode di bawah baris ke-6 pada class TestVehicle1.java
System.out.println("Add load (100kg) : "+ (vehicle.load=500));
public class TestVehicle1 {
public static void main(String[] args) {
System.out.println("Creating a vehicle with a 10,000 kg maximum load.");
vehicle1 vehicle = new vehicle1(10000);
System.out.println("Add load (100kg) : "+ (vehicle.load=500));
System.out.println("Add box #1 (500kg) : "+ vehicle.addBox(500));
System.out.println("Add box #2 (250kg) : "+ vehicle.addBox(250));
System.out.println("Add box #3 (5000kg) : "+ vehicle.addBox(5000));
System.out.println("Add box #4 (4000kg) : "+ vehicle.addBox(4000));
System.out.println("Add box #5 (300kg) : "+ vehicle.addBox(300));
System.out.println("Vehicle load is "+ vehicle.getLoad()+"kg");
}
}
Program bila dijalankan akan error. Karena mengakses vehicle.load yang
memiliki modifier private.
4. Mengubah tipe data load dan maxload pada class vehicle1 menjadi public
public class vehicle1 {
public double load, maxload;
public vehicle1(double max){
this.maxload = max;
}
public double getLoad(){
return this.load;
}
-
8/2/2019 Laporan _2_Pemrograman Berorientasi Object
4/14
public double getMaxLoad(){
return this.maxload;
}
public boolean addBox(double weight){
double temp = 0.00;
temp = this.load + weight;
if(temp
-
8/2/2019 Laporan _2_Pemrograman Berorientasi Object
5/14
perhitungan load akan bertambah karena adanya default load yaitu sebesar
500kg
sehingga perhitungan load menjadi 500 + berat box
Penambahan box #1 bernilai true karena load = 1000kg 10000
Penambahan box #2 bernilai true karena load = 1250kg 10000
Penambahan box #3 bernilai true karena load = 6250kg 10000
Penambahan box #4 bernilai false karena load = 10250kg 10000
Penambahan box #5 bernilai true karena load = 6550kg 10000
Sehingga total load vehicle adalah 6550kg
b. Menambahkan source kode di bawah baris ke-12 pada class
TestVehicle1.java
System.out.println("Add load (100kg) : "+ (vehicle.load=500));
public class TestVehicle1 {
public static void main(String[] args) {
System.out.println("Creating a vehicle with a 10,000 kg maximum
load.");
vehicle1 vehicle = new vehicle1(10000);
System.out.println("Add box #1 (500kg) : "+ vehicle.addBox(500));
System.out.println("Add box #2 (250kg) : "+ vehicle.addBox(250));
System.out.println("Add box #3 (5000kg) : "+ vehicle.addBox(5000));
System.out.println("Add box #4 (4000kg) : "+ vehicle.addBox(4000));
System.out.println("Add box #5 (300kg) : "+ vehicle.addBox(300));
System.out.println("Add load (100kg) : "+ (vehicle.load=500));
System.out.println("Vehicle load is "+ vehicle.getLoad()+"kg");
}}
-
8/2/2019 Laporan _2_Pemrograman Berorientasi Object
6/14
Perhitungan load tidak menggunakan default load sebesar 500kg
Penambahan box #1 bernilai true karena load = 500kg 10000
Penambahan box #2 bernilai true karena load = 750kg 10000
Penambahan box #3 bernilai true karena load = 5750kg 10000
Penambahan box #4 bernilai false karena load = 9750kg 10000
Penambahan box #5 bernilai true karena load = 10050kg 10000
Tetapi terdapat nilai default load sebesar 500kg
Sehingga total load vehicle adalah 500kg
5. Mengubah tipe data load dan maxload pada class vehicle1 menjadi protected
public class vehicle1 {
protected double load, maxload;
public vehicle1(double max){
this.maxload = max;
}
public double getLoad(){
return this.load;
}
public double getMaxLoad(){
return this.maxload;
}
public boolean addBox(double weight){
double temp = 0.00;
temp = this.load + weight;
-
8/2/2019 Laporan _2_Pemrograman Berorientasi Object
7/14
if(temp
-
8/2/2019 Laporan _2_Pemrograman Berorientasi Object
8/14
Penambahan box #3 bernilai true karena load = 6250kg 10000
Penambahan box #4 bernilai false karena load = 10250kg 10000
Penambahan box #5 bernilai true karena load = 6550kg 10000
Sehingga total load vehicle adalah 6550kg
b. Menambahkan source kode di bawah baris ke-12 pada class
TestVehicle1.java
System.out.println("Add load (100kg) : "+ (vehicle.load=500));
public class TestVehicle1 {
public static void main(String[] args) {
System.out.println("Creating a vehicle with a 10,000 kg maximum
load.");
vehicle1 vehicle = new vehicle1(10000);
System.out.println("Add box #1 (500kg) : "+ vehicle.addBox(500));
System.out.println("Add box #2 (250kg) : "+ vehicle.addBox(250));
System.out.println("Add box #3 (5000kg) : "+ vehicle.addBox(5000));
System.out.println("Add box #4 (4000kg) : "+ vehicle.addBox(4000));
System.out.println("Add box #5 (300kg) : "+ vehicle.addBox(300));
System.out.println("Add load (100kg) : "+ (vehicle.load=500));
System.out.println("Vehicle load is "+ vehicle.getLoad()+"kg");
}
}
Perhitungan load tidak menggunakan default load sebesar 500kg
Penambahan box #1 bernilai true karena load = 500kg 10000
Penambahan box #2 bernilai true karena load = 750kg 10000
-
8/2/2019 Laporan _2_Pemrograman Berorientasi Object
9/14
Penambahan box #3 bernilai true karena load = 5750kg 10000
Penambahan box #4 bernilai false karena load = 9750kg 10000
Penambahanbox #5 bernilai true karena load = 10050kg 10000
Tetapi terdapat nilai default load sebesar 500kg
Sehingga total load vehicle adalah 500kg
Hasil percobaan a dan b akan sama dengan percobaan pada no 4 karena
access modifier protected dapat diakses dari package dan sub class.
Sehingga class Testvehicle1 masih dapat mengakses atribut load dan
maxload pada class vehicle1.
6. . Mengubah tipe data load dan maxload pada class vehicle1 menjadi default
public class vehicle1 {
double load, maxload;
public vehicle1(double max){
this.maxload = max;
}
public double getLoad(){
return this.load;
}
public double getMaxLoad(){
return this.maxload;
}
public boolean addBox(double weight){
double temp = 0.00;
-
8/2/2019 Laporan _2_Pemrograman Berorientasi Object
10/14
temp = this.load + weight;
if(temp
-
8/2/2019 Laporan _2_Pemrograman Berorientasi Object
11/14
Penambahan box #2 bernilai true karena load = 1250kg 10000
Penambahan box #3 bernilai true karena load = 6250kg 10000
Penambahan box #4 bernilai false karena load = 10250kg 10000
Penambahan box #5 bernilai true karena load = 6550kg 10000
Sehingga total load vehicle adalah 6550kg
b. Menambahkan source kode di bawah baris ke-12 pada class
TestVehicle1.java
System.out.println("Add load (100kg) : "+ (vehicle.load=500));
public class TestVehicle1 {
public static void main(String[] args) {
System.out.println("Creating a vehicle with a 10,000 kg maximum
load.");
vehicle1 vehicle = new vehicle1(10000);
System.out.println("Add box #1 (500kg) : "+ vehicle.addBox(500));
System.out.println("Add box #2 (250kg) : "+ vehicle.addBox(250));
System.out.println("Add box #3 (5000kg) : "+ vehicle.addBox(5000));
System.out.println("Add box #4 (4000kg) : "+ vehicle.addBox(4000));
System.out.println("Add box #5 (300kg) : "+ vehicle.addBox(300));
System.out.println("Add load (100kg) : "+ (vehicle.load=500));
System.out.println("Vehicle load is "+ vehicle.getLoad()+"kg");
}
}
Perhitungan load tidak menggunakan default load sebesar 500kg
-
8/2/2019 Laporan _2_Pemrograman Berorientasi Object
12/14
Penambahan box #1 bernilai true karena load = 500kg 10000
Penambahan box #2 bernilai true karena load = 750kg 10000
Penambahan box #3 bernilai true karena load = 5750kg 10000
Penambahan box #4 bernilai false karena load = 9750kg 10000
Penambahan box #5 bernilai true karena load = 10050kg 10000
Tetapi terdapat nilai default load sebesar 500kg
Sehingga total load vehicle adalah 500kg
Hasil percobaan a dan b akan sama dengan percobaan pada no 4 karena
access modifier default (no modifier) dapat diakses dari dalam package.
Sehingga class Testvehicle1 masih dapat mengakses atribut load dan
maxload pada class vehicle1.
KESIMPULAN
Enkapsulasi adalah menyembunyikan informasi detail terhadap object.Enkapsulasi tidak memberikan akses secara langsung kepada class lain atau
program lain kecuali melalui method yang diberikan.
Penyembunyian informasi berkaitan dengan access modifier, yaitu privateyang hanya dapat diakses oleh class itu sendiri, public yang dapat diakses
darimana pun, protected yang dapat diakses dari dalam class itu sendiri,
package dan dari sub class, dan default atau tidak bermodifier yang hanya
dapat diakses di dalam package saja dan class itu sendiri.
Accessor Method (getter) adalah method yang berfungsi untuk mengaksesdata.
-
8/2/2019 Laporan _2_Pemrograman Berorientasi Object
13/14
Mutator method (setter) adalah method yang berfungsi untuk memberikannilai ke suatu data.
-
8/2/2019 Laporan _2_Pemrograman Berorientasi Object
14/14