๐ฐJob Sheet 1: Objek
Tujuan Praktikum
Setelah melakukan praktikum ini, mahasiswa diharapkan mampu,
Memahami kembali konsep objek dan class.
Mengimplementasikan objek dan kelas berdasarkan studi kasus.
Kasus 1 - Kelas "Ball"
Sebuah kelas bernama Ball
merupakan representasi dari bola yang memantul yang didesain dengan menggunakan class diagram dibawah ini. Dia memiliki radius, posisi x dan posisi y. Bola tersebut dapat bergerak ke arah x dan y sebesar ฮx dan ฮy. Nilai dapat berupa nilai positif maupun negatif. Fungsi reflectHorizontal()
dan reflectVertical()
merupakan fungsi yang digunakan untuk menggambarkan pantulan bola ketika membentur benda yang lain.

Tugas 1
Implementasikan class
Ball
sesuai dengan class diagram yang telah dibuat. Gunakan test case yang digunakan untuk menguji apakah implementasi yang Anda lakukan sesuai dengan desain yang diberikan.Modifikasi class
Ball
agar memiliki konstruktor tanpa parameter.Modifikasi seluruh atribut class
Ball
sehingga memiliki access modifier berjenis private.Modifikasi seluruh method class
Ball
sehingga dapat diakses oleh class yang lain.Modifikasi konstruktor pada class Ball sehingga memiliki parameter
speed
dandirection
menggantikan ฮx dan ฮy untuk menggambarkan arah bola.
Test Case Tugas 1
/*
* Author: Chua Hock-Chuan
*/
public class TestMain {
public static void main(String[] args) {
// Test constructor and toString()
Ball ball = new Ball(1.1f, 2.2f, 10, 3.3f, 4.4f);
System.out.println(ball); // toString()
// Test Setters and Getters
ball.setX(80.0f);
ball.setY(35.0f);
ball.setRadius(5);
ball.setXDelta(4.0f);
ball.setYDelta(6.0f);
System.out.println(ball); // toString()
System.out.println("x is: " + ball.getX());
System.out.println("y is: " + ball.getY());
System.out.println("radius is: " + ball.getRadius());
System.out.println("xDelta is: " + ball.getXDelta());
System.out.println("yDelta is: " + ball.getYDelta());
// Bounce the ball within the boundary
float xMin = 0.0f;
float xMax = 100.0f;
float yMin = 0.0f;
float yMax = 50.0f;
for (int i = 0; i < 15; i++) {
ball.move();
System.out.println(ball);
float xNew = ball.getX();
float yNew = ball.getY();
int radius = ball.getRadius();
// Check boundary value to bounce back
if ((xNew + radius) > xMax || (xNew - radius) < xMin) {
ball.reflectHorizontal();
}
if ((yNew + radius) > yMax || (yNew - radius) < yMin) {
ball.reflectVertical();
}
}
}
}
Kasus 2 - Kelas "Author" dan "Book"
Sebulah kelas bernama Author
merupakan representasi dari pengarang sebuah buku yang didesain seperti class diagram dibawah ini. Kelas Book
merupakan representasi dari buku yang dikarang oleh instance dari Author
seperti yang terlihat pada variabel didalam kelas Book
.


Tugas 2
Implementasikan kelas
Author
danBook
sesuai dengan desain yang telah diberikan.Verifikasi hasil kelas yang Anda buat dengan menggunakan test case yang telah disediakan.
Tambahkan konstruktor pada kelas
Book
sehingga instance dapat dibuat tanpa harus memasukkan parameter.
Test Case Tugas 2
/*
* Author: Chua Hock-Chuan
*/
public class TestMain {
public static void main(String[] args) {
// Test Author class
Author a1 = new Author("Tan Ah Teck", "ahteck@nowhere.com");
System.out.println(a1);
a1.setEmail("ahteck@somewhere.com");
System.out.println(a1);
System.out.println("name is: " + a1.getName());
System.out.println("email is: " + a1.getEmail());
// Test Book class
Book b1 = new Book("12345", "Java for dummies", a1, 8.8, 88);
System.out.println(b1);
b1.setPrice(9.9);
b1.setQty(99);
System.out.println(b1);
System.out.println("isbn is: " + b1.getIsbn());
System.out.println("name is: " + b1.getName());
System.out.println("price is: " + b1.getPrice());
System.out.println("qty is: " + b1.getQty());
System.out.println("author is: " + b1.getAuthor()); // Author's toString()
System.out.println("author's name: " + b1.getAuthorName());
System.out.println("author's name: " + b1.getAuthor().getName());
System.out.println("author's email: " + b1.getAuthor().getEmail());
}
}
Pengumpulan Tugas
Kumpulkan tugas praktikum melalui LMS dengan ketentuan,
Gunakan template yang telah ditentukan.
Format nama file: [JS01]NoAbsen_Nama Lengkap.pdf
Kompres file java menjadi satu (pisahkan packager atau folder untuk setiap tugas) dengan format nama file: [JS01-CODE]NoAbsen_Nama Lengkap.zip
Last updated