๐ฐ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 - Ballsesuai 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 - Ballagar memiliki konstruktor tanpa parameter.
- Modifikasi seluruh atribut class - Ballsehingga memiliki access modifier berjenis private.
- Modifikasi seluruh method class - Ballsehingga dapat diakses oleh class yang lain.
- Modifikasi konstruktor pada class Ball sehingga memiliki parameter - speeddan- directionmenggantikan ฮ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 - Authordan- Booksesuai dengan desain yang telah diberikan.
- Verifikasi hasil kelas yang Anda buat dengan menggunakan test case yang telah disediakan. 
- Tambahkan konstruktor pada kelas - Booksehingga 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