Anda di halaman 1dari 10

TUGAS 1

ASISTENSI
PEMROGRAMAN BERORIENTASI OBJEK
(PBO)

Oleh :

Oleh :
Muhammad Nanda Setiawan
(06111740000037)

Asisten:
1. Eko Andi Prastiyo (06111440000080)
2. Amelia Margaretha S. (06111540000002)

INSTITUT TEKNOLOGI SEPULUH NOPEMBER


SURABAYA
2018
BAB 1
PEDAHULUAN
A. Tugas
1. Menganalisa, membuat UML class diagram dan implementasi program. Seorang
pengusaha rental mobil kesulitan mengingat armada kendaraan yang dimilikinya.
Oleh karena itu, pengusaha tersebut menugaskan pegawainya untuk mengidentifikasi
tersebut. Hasil identifikasi dicatat dalam suatu tabel sebagaimana bisa dilihat pada
Tabel1. Sayangnya karena merupakan karyawan baru maka ia tidak memahami nama
hal yang diidentifikasi (A, B, C, D, dan E).
a. Bantulah pegawai tersebut dalam menentukan nama hal yang diidentifikasi (A, B,
C, D, dan E)
b. Bantulah pengusaha tersebut dalam membuat UML class diagram Mobil.
Tambahkan method infoMobil() yang bertujuan untuk menampilkan semua
karakteristik mobil (A, B, C, D, dan E)
c. Buatlah kelas Mobil.java yang mengimplementasikan desain UML class diagram
anda!
d. Buatlah kelas TestMobil.java yang berisi pembuatan 4 (empat) buah obyek
bernama mobil1, mobil2, mobil3, mobil4. Mengeset karakteristik masing-masing
dan menampilkan info karakteristik mobil.
Obyek A B C D E
mobil1 Toyota Biru minibus 2000 7
mobil2 Daihatsu Hitam pick up 1500 2
mobil3 Suzuki Silver suv 1800 5
mobil4 Honda Merah sedan 1300 5
Tabel1

2. (class Rectangle) Seperti contoh dari class Circle di Section 9.2, buat sebuah class
dengan nama Rectangle yang mewakili sebuah persegi panjang. Class mengandung:
a. Dua tipe data double yang diberi nama width dan height yang menspesifikasikan
lebar dan tinggi persegi panjang. Nilai default untuk keduanya adalah 1.
b. Sebuah method yang diberi nama getArea() yang me-return luas persegi panjang.
c. Sebuah method yang diberi nama getPerimeter() yang me-return keliling persegi
panjang.
Gambar digaram UML untuk class yang ingin dibuat dan kemudian
implementasikan. Tulis program tes yang membuat dua objek Rectangle, pertama
dengan lebar 4 dan tinggi 40 dan yang lainnya dengan lebar 3,5 dan tinggi 39,5.
Tampilkan lebar, tinggi, luas, dan keliling dari masing-masing persegi panjang

1
B. Penyelesaian
1.
a. A = merk mobil, B = warna mobil, C = tipe mobil, D = kapasitas mesin mobil,
dan E = jumlah maksimal penumpang.
b. Diagram UML-nya:
Mobil
-Merk : String
-Warna : String
-Tipe : String
-CC : int
-Penumpang : int
+setMerk(merk : String) : void
+setWarna(warna : String) : void
+setTipe(tipe : String) : void
+setCC(cc : int) : void
+setPenumpang(penumpang : int) : void
+mobilInfo (): void

c. Class Mobil.java yang akan dibuat sesuai dengan diagram UML pada jawaban
nomor 1b. Class ini akan berisi lima atribut dari mobil sesuai dengan Tabel1 dan
telah didefinisikan pada jawaban nomor 1a. Untuk atribut merk, warna, dan tipe
mobil menggunakan tipe data String. Sementara, untuk kapasitas mesin dan
jumlah penumpang lebih menggunakan tipe data integer karena berupa bilangan
bulat. Selain atribut, class ini juga akan memuat beberapa method untuk dilakukan
pada objek. Setiap method yang menggunakan awalan “set” diikuti nama atribut.
Method ini bertipe void dan masing-masing memiliki parameter tunggal yang
digunakan untuk memberi isian pada atribut. Untuk menampilkan keseluruhan
karakteristik mobil menggunakan method mobilInfo() yang bertipe void. Source
code untuk class ini akan diberikan pada bab 2.
d. Pada class TestMobil.java terlebih dahulu membuat empat objek mobil.
Selanjutnya akan diisikan masing atribut untuk setiap mobil seperti pada Tabel1.
Pengisian atribut setiap objek dilakukan dengan menggunakan operator titik (.).
pemanggilannya dapat dituliskan dengan namaObjek.namaMethod(). Parameter
yang ada pada method itulah yang akan menjadi isian untuk atribut. Semua atribut
yang telah diisikan akan ditampilkan dengan memanggil method infoMobil() yang
menggunakan operator titik untuk mengaksesnya. Source code selengkapnya
dapat dilihat pada bab 2.

2
2. Diagram UML untuk class Rectangle
Rectangle
-width : double
-height : double
+setWidth(newWidth : double) : void
+setHeight(newHeight : double) : void
+getWidth () : double
+getHeight () : double
+getArea() : double
+getPerimeter() : double

Dari diagram UML diatas, maka akan dibuat sebuah class Rectangle yang memiliki
dua atribut yaitu, width dan height serta empat buah method, yaitu setWidth,
setHeight, getArea, dan getPerimeter. Method setWidth dan setHeight bertipe
memiliki masing-masing sebuah parameter bertipe double. Kedua method ini bertipe
non-void sehingga mereturn nilai untuk masing-masing width dan height. Niali yang
direturn itu digunakan untuk memasukkan nilai baru pada atribut width dan height
pada Rectangle.
a. Diawal program akan didefinisikan terlebih dahulu atribut dari Rectangle berupa
width dan height dengan tipe data double dan diberi nilai awalan = 1.
b. Akan dibuat method dengan nama getArea() untuk mencari luas dari Rectangle.
Method ini tidak memiliki parameter dan bertipe non-void (double) sehingga
mereturn sebuah nilai. Nilai yang direturn untuk mehod ini adalah hasil dari
perkalian antara width dan height sebagaimana rumus dari luas persegi panjang.
c. Akan dibuat method dengan nama getPerimeter() untuk mencari keliling dari
Rectangle. Method ini tidak memiliki parameter dan bertipe non-void (double)
sehingga mereturn sebuah nilai. Nilai yang direturn untuk mehod ini adalah hasil
dari penjumlahan semua sisi persegi panjang atau bisa dituliskan keliling = 2 * (p
+ l) sebagaimana rumus dari keliling persegi panjang.

Akan dibuat juga class TestRectangle. Di dalam class ini akan membuat dua bauh
objek baru dengan melakukan instansiasi dari class Rectangle. Dua objek itu
adalah rectangle1 dan rectangle2. Setelah itu, akan mengakses atribut width dan
height dari masing-masing objek untuk merubah nilai default width dan height.
Mengaksesnya dengan menggunakan operator titik (.). penulisan dalam
kodingannya, namaObjek.namaMethod( ). Nilai baru dimasukkan dalam
parameter method. Untuk rectangle1 akan diset nilai width = 4 dan height = 40.
Sementara untuk rectangle2 nilai width = 3,5 dan height = 39,5. Untuk
menampilkan width dan height dilakukan dengan memanggil langsung atribut
dengan menggunakan operator titik (.) juga. Penulisan dalam kodingnya

3
namaObjek.namAtribut. Source code lengkap untuk class Rectangle dan class
testRectangle akan diberikan di bab 2.

C. Analisis Program
1. Program 1
Untuk soal program 1 tentang pendataan mobil akan dibuat dalam dua class
berbeda, yaitu Mobil.java dan TestMobil.java sesuai dengan permintaan soal. Pada
class Mobil.java akan berisi atribut dan method sebagai implementasi dari diagram
UML yang telah dibuat sebelumnya. Atribut yang ada pada class Mobil.java
disetting private untuk menyembnyikannya sebagaimana konsep pada PBO.
Atribut-atribut itu sendiri baru memiliki nilai default dari tipe data yang digunakan,
untuk tipe data String adalah null dan untuk tipe data double adalah 0,0. Oleh
karena itu, perlu mengubah nilai default tadi sesuai pada data di Tabel1. Karena
atribut menggunakan modifier private, maka untuk mengaksesnya perlu
menggunakan method, tidak bisa diakses secara langsung. Untuk itu dibuat 5
method dengan awalan “set-“ diikuti nama masing-masing atribut untuk mengakses
masing-masing atribut. Method bertipe void karena hanya digunakan untuk
melakukan pengisian data atribut dan tidak untuk memanggilnya. Dalam
pemanggilannya menggunakan parameter (sebagai nilai yang ingin dimasukkan).
Sesuai dengan permintaan pada soal, akan dibuat lagi method dengan nama
mobilInfo(). Sebuah method void juga. Isinya adalah perintah untuk menuliskan
output berupa semua atribut yang ada pada objek. Tidak ada parameter yang
digunakan untuk pemanggilan method ini. Karena adanya method ini, maka tidak
perlu dibuat method lainnya lagi untuk pemanggilan satu per satu atribut dari objek.
Kemudian yang kedua ada class TestMobil.java. Class ini memiliki main method
agar bisa di-run nantinya, berbeda dengan class Mobil.java yang tidak memiliki
method ini. Pada class ini, akan dibuat dahulu empat buah objek yang
merepresentasikan empat buah mobil yang telah didata oleh pegawai pada Tabel1.
Kemudian, dilakukan pengisian data pada masing-masing objek mobil sesuai
Tabel1 menggunakan method yang telah dibuat sebelumnya di class Mobil.java.
Setelah data terisi, kemudian memanggil method mobilInfo() untuk melihat data
yang telah dimasukkan pada masing-masing mobil.
2. Program 2
Sama seperti pada program 1, untuk program ini juga akan dibuat class berbeda.
Yang pertama class Rectangle.java, sebagai class yang berisi atribut dan method
saja, tanpa adanya main class. Kedua, class TestRectangle.java yang berisi main
class untuk menguji class Rectangle.java dengan menciptakan objek-objek dan
menggunakan method-method, serta mengakses atribut-atribut yang tersedia. Pada
class Rectangle.java akan dibuat dua atribut (width dan height) menggunakan

4
modifier private dan nilai defaultnya diset = 1. Nilai width dan height tidak bisa
dirubah secara langsung, sehingga perlu menggunakan method. Untuk itu, dibuat
method setWidth dan setHeight. Kedua method ini bertipe void dan perlu parameter
dalam pemanggilannya sebagai nilai baru dari width dan height yang diinginkan.
Karena pada soal diminta untuk menampilkan nilai width dan height pada output,
maka dibuat juga dua method lagi untuk itu. Penggunaan method dikarenakan
atribut telah dibuat private, sehingga hanya bisa diakses pada class yang sama.
Method yang akan digunakan diberi nama getWidth dan getHeight. Kedua
parameter bertipe non-void sehingga memiliki return (untuk mengeluarkan nilai
width dan height) dan tidak menggunakan parameter dalam pemanggilannya. Selain
itu, ada method getPerimeter dan getArea. Kedua method berfungsi untuk
melakukan perhitungan keliling dan luas dari objek. Untuk itu, method harus
bertipe non-void (memiliki return) agar dapat mengeluarkan nilai dari hasil
perhitungan. Dalam pemanggilan method ini juga tidak menggunakan parameter.
Selanjutnya ke class TestRectangle. Di class ini akan diciptakan dua buah objek,
yaitu rectangle1 dan rectangle2 dari proses instansiasi. Kemudian, kedua objek ini
dirubah nilai defaul untuk width and heightnya dengan melakukan pemanggilan
method setWidth dan setHeight sesuai permintaan pada soal. Setelah itu, akan
dilakukan proses perhitungan keliling dan luas pada masing-masing objek. Untuk
menampilkan atribut berupa nilai width dan height, serta hasil dari keliling dan luas
pada masing-masing objek, dilakukan sout. Di dalam sout akan ada pemanggilan
method getWidth dan getHeight untuk melihat nilai width yang telah dirubah. Pada
sout lainnya akan berisi pemanggilan method getPerimeter dan getArea untuk
menampilkan hasil perhitungan.

BAB 2
SOURCE CODE
A. Source Code Program
1. Class Mobil.java
package program.asis.pbo.pkg1;
public class Mobil {
String Merk, Warna, Tipe;
int CC, Penumpang;
void setMerk (String merk){
Merk = merk;
}
void setWarna(String warna){
Warna = warna;
}

5
void setTipe (String tipe){
Tipe = tipe;
}
void setCC(int cc){
CC = cc;
}
void setPenumpang(int penumpang){
Penumpang = penumpang;
}
void mobilInfo(){
System.out.println("Merk mobil : " +Merk);
System.out.println("Warna mobil : " +Warna);
System.out.println("Tipe mobil : " +Tipe);
System.out.println("Kapasitas mesin mobil : " +CC +"cc");
System.out.println("Jumlah penumpang : " +Penumpang);
System.out.println("");
}
}

2. Class TestMobil.java
package program.asis.pbo.pkg1;
public class TestMobil {
public static void main (String [] args){
System.out.println("=========== RENTAL MOBIL ===========\n");
Mobil mobil1 = new Mobil();
Mobil mobil2 = new Mobil();
Mobil mobil3 = new Mobil();
Mobil mobil4 = new Mobil();

mobil1.setMerk("Toyota");
mobil1.setWarna("Biru");
mobil1.setTipe("Minibus");
mobil1.setCC(2000);
mobil1.setPenumpang(7);
mobil1.mobilInfo();

mobil2.setMerk("Daihatsu");
mobil2.setWarna("Hitam");
mobil2.setTipe("Pick Up");
mobil2.setCC(1500);

6
mobil2.setPenumpang(2);
mobil2.mobilInfo();

mobil3.setMerk("Suzuki");
mobil3.setWarna("Silver");
mobil3.setTipe("SUV");
mobil3.setCC(1800);
mobil3.setPenumpang(5);
mobil3.mobilInfo();

mobil4.setMerk("Honda");
mobil4.setWarna("Merah");
mobil4.setTipe("Sedan");
mobil4.setCC(1300);
mobil4.setPenumpang(5);
mobil4.mobilInfo();

System.out.println("Program by: \nMuhammad Nanda S (06111740000037)");


}
}

3. Class Rectangle
package program.asis.pbo.pkg1;
public class Rectangle {
private double width = 1;
private double height = 1;
void setWidth (double newWidth){
width = newWidth;
}
void setHeight (double newHeight){
height = newHeight;
}
double getWidth(){
return width;
}
double getHeight(){
return height;
}
double getArea (){
return width * height;
}
double getPerimeter (){
return 2 * (width + height);
}

7
}
4. Class TestRectangle
package program.asis.pbo.pkg1;
public class TestRectangle {
public static void main (String[] args) {
Rectangle rectangle1 = new Rectangle();
Rectangle rectangle2 = new Rectangle();

rectangle1.setHeight(40);
rectangle1.setWidth(4);
rectangle2.setHeight(35.9);
rectangle2.setWidth(3.5);

System.out.println("======== Program With the Objects of Rectangle


========\n");
System.out.println("Rectangle 1 width is " +rectangle1.getWidth() +" and its
height is " +rectangle1.getHeight() +", then : ");
System.out.println("The perimeter = " +rectangle1.getPerimeter());
System.out.println("The area = " +rectangle1.getArea());
System.out.println("\nRectangle 2 width is " +rectangle2.getWidth() +" and its
height is " +rectangle2.getHeight() +", then : ");
System.out.println("The perimeter = " +rectangle2.getPerimeter());
System.out.println("The area = " +rectangle2.getArea());
System.out.println("\nProgram by: \nMuhammad Nanda Setiawan
(06111740000037)");
}
}

8
BAB 3
OUTPUT
A. Hasil Running Program
1. Untuk soal nomor 1 (TestMobil.java)

2. Untuk soal nomor 2 (TestRectangle.java)

Anda mungkin juga menyukai