Tugas Pertemuan 13

Abstraksi Class

Nama : Aryaka Leorgi Eprideka

NRP : 5025231117

Kelas : PBO - G


SOAL :

1. Tuliskan implementasi dari program kecil Abstract Class Makhluk hidup yang diwariskan kepada manusia, hewan, dan tumbuhan

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



JAWABAN
1. Class diagram


Source code: github

Main.java
  • Kelas utama untuk menjalankan program.
  • Membuat objek Manusia, Hewan, dan Tumbuhan sebagai turunan dari kelas abstrak MakhlukHidup.
  • Memanggil metode makan, bernafas, dan berkembangBiak pada setiap objek untuk menunjukkan perilaku spesifik masing-masing.

MakhlukHidup.java
  • Kelas abstrak yang mendefinisikan kerangka dasar untuk makhluk hidup.
  • Memiliki metode abstrak makan, bernafas, dan berkembangBiak yang harus diimplementasikan oleh semua subclass.
  • Tidak dapat diinstansiasi secara langsung.

Manusia.java
  • Turunan dari MakhlukHidup.
  • Mengimplementasikan metode makan (menggunakan tangan/alat makan), bernafas (dengan paru-paru), dan berkembangBiak (secara seksual).
  • Representasi spesifik dari perilaku manusia.

Hewan.java
  • Turunan dari MakhlukHidup.
  • Mengimplementasikan metode makan (beragam sesuai jenis), bernafas (menggunakan paru-paru, insang, atau kulit), dan berkembangBiak (secara seksual atau aseksual).
  • Representasi spesifik dari perilaku hewan.

Tumbuhan.java
  • Turunan dari MakhlukHidup.
  • Mengimplementasikan metode makan (fotosintesis), bernafas (melalui stomata dan lentisel), dan berkembangBiak (secara generatif dan vegetatif).
  • Representasi spesifik dari perilaku tumbuhan.

Output :

2.  Gambar Diagram :







Source code: github

Field.java

  • Fungsi: Merepresentasikan lingkungan simulasi sebagai grid dua dimensi.
  • Fitur Utama:
    • Menyimpan objek di setiap sel grid.
    • Memberikan informasi tentang lokasi di sekitarnya (adjacent cells).
    • Memungkinkan penempatan, pengambilan, dan pengosongan sel.

Animal.java

  • Fungsi: Abstract class untuk semua hewan.
  • Fitur Utama:
    • Properti lokasi (row dan col) dan referensi ke Field.
    • Metode abstrak act() yang menentukan perilaku setiap hewan.
    • Metode move() untuk memindahkan hewan ke lokasi baru.

Rabbit.java

  • Fungsi: Subclass dari Animal, merepresentasikan kelinci.
  • Fitur Utama:
    • Implementasi metode act(): Kelinci hanya bergerak ke lokasi kosong di grid.

Fox.java

  • Fungsi: Subclass dari Animal, merepresentasikan rubah.
  • Fitur Utama:
    • Implementasi metode act(): Rubah berburu dan memakan kelinci di sel yang berdekatan, atau bergerak ke lokasi kosong jika tidak menemukan kelinci.

Simulator.java

  • Fungsi: Mengatur jalannya simulasi.
  • Fitur Utama:
    • Menyimpan daftar hewan dan objek Field.
    • Menjalankan simulasi selama sejumlah langkah dengan memanggil metode act() untuk setiap hewan.

Main.java

  • Fungsi: Titik awal program.
  • Fitur Utama:
    • Membuat objek Simulator.
    • Menambahkan hewan (Rabbit dan Fox) ke simulasi.
    • Memulai simulasi dengan memanggil metode simulate().
Output:


Komentar

Postingan populer dari blog ini

Tugas Pertemuan 2 PPB

Tugas Pertemuan 3 PPB

Tugas Pertemuan 1 PPB