Wednesday, November 27, 2024

Tugas Pertemuan 13

Nama:    Basten Andika Salim

NRP:      5025231132


Source code: https://github.com/rowlys/PBO-G/tree/main/Abstract%20Class

Tugas Implementasi Abstraksi Kelas

1. Tuliskan implementasi dari program kecil Abstract Class Mahluk Hidup yang diwariskan kepada manusai, hewan, dan tumbuhan.

Berikut adalah Class Diagram dari program:


Berikut adalah Class MahlukHidup:


Class MahlukHidup memiliki beberapa method yang akan di Override oleh subclass lainnya, seperti breathe dan grow. Class ini akan menjadi dasar dari seluruh subclass lain.

Berikut adalah Subclass Manusia:


Subclass Manusia memiliki method tambahan, yaitu speak.

Berikut adalah Subclass Programmer:


Subclass Programmer melakukan Override pada method dari MahlukHidup dan juga Manusia untuk menghasilkan output uniknya.

Berikut adalah Subclass Doctor:


Subclass Doctor melakukan Override pada method dari MahlukHidup dan juga Manusia untuk menghasilkan output uniknya.

Berikut adalah Subclass Hewan:


Subclass Manusia memiliki method tambahan, yaitu move.

Berikut adalah Subclass Anjing:


Subclass Anjing melakukan Override pada method dari MahlukHidup dan juga Hewan untuk menghasilkan output uniknya.

Berikut adalah Subclass Burung:


Subclass Burung melakukan Override pada method dari MahlukHidup dan juga Hewan untuk menghasilkan output uniknya.

Berikut adalah Subclass Tumbuhan:


Subclass Tumbuhan memiliki method tambahan, yaitu photosynthesize.

Berikut adalah Subclass TumbuhanBerbunga:


Subclass TumbuhanBerbunga melakukan Override pada method dari MahlukHidup dan juga Tumbuhan untuk menghasilkan output uniknya.

Berikut adalah Subclass TumbuhanTidakBerbunga:


Subclass TumbuhanTidakBerbunga melakukan Override pada method dari MahlukHidup dan juga Tumbuhan untuk menghasilkan output uniknya.

Berikut adalah Class Main


Class ini akan membuat instance-instance baru dari masing-masing Subclass dan menjalankan seluruh method pada Subclass tersebut.

Berikut adalah hasil implementasi menggunakan Class Main:


   2.  Pelajari dan baca simulasi Foxes and Rabbit yang ada di buku. Kemudian buat program perubahan dari struktur class umum menjadi bentuk Abstract Class.

Berikut adalah Class Diagram dari program:


Berikut adalah Class Animal:




Class ini akan menjadi dasar untuk Subclass Rabbit dan Subclass Fox yang akan memiliki perilakunya masing-masing.

Berikut adalah Subclass Rabbit:


Subclass Rabbit berperilaku bergerak secara acak. Perilaku acak ini akan diimplementasikan di Class Field.

Berikut adalah Subclass Fox:



Subclass Fox berperilaku dengan memeriksa location di sekitarnya untuk mangsa (rabbit). Bila ada, maka serigala akan 'memakannya' dan mengubah variabel "isAlive" Rabbit yang dimakannya menjadi FALSE. Bila Fox tidak menemukan mangsa, maka ia akan bergerak secara acak.

Berikut adalah Class Field:



Class Field bertindak sebagai 'lapangan' yang dapat dijelajahi para hewan (fox dan rabbit). Dalam class ini, terdapat fungsi untuk menempatkan hewan pada sebuah lokasi, menghapus object dari sebuah lokasi, mengembalikan informasi object pada suatu lokasi, dan mencari lokasi yang kosong. Fungsi freeAdjacentLocation ini akan mengembalikan lokasi yang kosong yang ditemukannya secara acak.

Berikut adalah Class Location:


Berikut adalah Class Simulator yang akan membuat field dan memasukkan object ke dalamnya:




Berikut adalah contoh output dari method simulate dari Class Simulator:





No comments:

Post a Comment