5025231237 - Rayhan Aurelia Pramana Rijal - Abstract Class

 Nama : Rayhan Aurelia Pramana Rijal

 Kelas : PBO A

 NRP   : 5025231237

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

1. MakhlukHidup

  • Kelas abstrak:
  • MakhlukHidup adalah kelas abstrak yang berfungsi sebagai blueprint atau cetak biru untuk kelas lain.
  • Memiliki dua metode abstrak (bernafas() dan makan()) yang harus diimplementasikan oleh semua kelas turunan.
  • Memiliki satu metode konkret (berkembangBiak()) yang dapat digunakan langsung oleh semua kelas turunan tanpa perlu diubah.
2. Manusia, Hewan, dan Tumbuhan
  • Kelas turunan:
  • Kelas Manusia, Hewan, dan Tumbuhan adalah turunan dari kelas abstrak MakhlukHidup dan menggunakan kata kunci extends untuk mewarisi.
  • Setiap kelas ini mengimplementasikan metode abstrak (bernafas() dan makan()) sesuai dengan sifat masing-masing makhluk hidup.
  • Karena metode berkembangBiak() tidak abstrak, kelas turunan dapat langsung menggunakannya tanpa mengubahnya.
  • bernafas(): Menjelaskan cara manusia bernafas menggunakan paru-paru.
  • makan(): Menjelaskan bahwa manusia makan makanan yang dimasak atau mentah.
  • bernafas(): Menjelaskan bahwa hewan seperti anjing bernafas menggunakan paru-paru atau insang.
  • makan(): Menjelaskan bahwa hewan makan tumbuhan atau daging.
  • bernafas(): Menjelaskan bahwa tumbuhan seperti kaktus bernafas melalui daun.
  • makan(): Menjelaskan bahwa tumbuhan menghasilkan makanan melalui proses fotosintesis.
3. Main
  • Metode main():
  • Digunakan sebagai titik awal program.
  • Membuat objek dari masing-masing kelas (Manusia, Hewan, dan Tumbuhan), tetapi tipe data objeknya adalah MakhlukHidup (polimorfisme).
  • Memanggil metode bernafas(), makan(), dan berkembangBiak() pada setiap objek.

Output : 



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

  1. Kelas Abstrak MakhlukHidup
  • Fungsi:
  • Sebagai cetak biru bagi semua makhluk hidup (seperti Rabbit dan Fox).
  • Memiliki atribut posisi koordinat (posisiX, posisiY) yang merepresentasikan posisi makhluk hidup pada grid.
  • Constructor:
  • Menginisialisasi posisi awal makhluk hidup berdasarkan parameter (x, y).
  • Metode abstrak bergerak():
  • Harus diimplementasikan oleh kelas turunannya, sesuai dengan logika pergerakan masing-masing makhluk hidup.
  • Metode tampilkanPosisi():
  • Menampilkan posisi (x, y) saat ini dari objek.
  • Getter (getPosisiX dan getPosisiY):
  • Memberikan akses ke posisi X dan Y.

  1. Kelas Rabbit
  • Turunan dari MakhlukHidup:
  • Mengimplementasikan metode abstrak bergerak() dengan logika:
  • Rabbit bergerak satu langkah ke kiri/kanan (X) atau atas/bawah (Y) berdasarkan angka acak.
  • Logika Pergerakan:
  • Math.random() menghasilkan angka acak antara 0 dan 1.
  • Jika angka acak < 0.5, Rabbit bergerak maju; jika tidak, Rabbit bergerak mundur.

  1. Kelas Fox
  • Turunan dari MakhlukHidup:
  • Mengimplementasikan metode abstrak bergerak() dengan logika:
  • Fox bergerak dua langkah ke kiri/kanan (X) atau atas/bawah (Y) berdasarkan angka acak.
  • Logika Pergerakan:
  • Sama seperti Rabbit, tetapi jarak pergerakannya lebih jauh (2 langkah).

  1. Kelas Main
  • Membuat objek Rabbit (dengan posisi awal di (0, 0)) dan Fox (dengan posisi awal di (5, 5)).
  • Ukuran grid adalah 10x10.
  • Program menjalankan loop sebanyak 5 iterasi, di mana pada setiap iterasi:
  • Rabbit dan Fox bergerak berdasarkan logikanya masing-masing.
  • Grid ditampilkan setelah setiap pergerakan.
  • Menggambar grid 10x10.
  • Posisi Rabbit ditandai dengan karakter R.
  • Posisi Fox ditandai dengan karakter F.
  • Posisi kosong ditandai dengan karakter ..

Cara Kerja Program
  • Rabbit mulai di (0, 0).
  • Fox mulai di (5, 5).
  • Setiap makhluk hidup bergerak secara acak di grid:
  • Rabbit bergerak 1 langkah ke kiri/kanan atau atas/bawah.
  • Fox bergerak 2 langkah ke kiri/kanan atau atas/bawah.
  • Grid diperbarui setelah setiap pergerakan.
  • Rabbit dan Fox tidak memiliki logika untuk mencegah keluar dari grid, sehingga posisi mereka bisa menjadi negatif atau lebih besar dari ukuran grid.




Output : 




Komentar

Postingan populer dari blog ini

Tugas Membuat Profil Diri

Ticket Machine

5025231327 - Rayhan Aurelia Pramana Rijal - EAS PWEB E