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:
MakhlukHidupadalah kelas abstrak yang berfungsi sebagai blueprint atau cetak biru untuk kelas lain.
- Memiliki dua metode abstrak (
bernafas()danmakan()) yang harus diimplementasikan oleh semua kelas turunan.
- Memiliki satu metode konkret (
berkembangBiak()) yang dapat digunakan langsung oleh semua kelas turunan tanpa perlu diubah.
Manusia, Hewan, dan Tumbuhan- Kelas turunan:
- Kelas
Manusia,Hewan, danTumbuhanadalah turunan dari kelas abstrakMakhlukHidupdan menggunakan kata kunciextendsuntuk mewarisi.
- Setiap kelas ini mengimplementasikan metode abstrak (
bernafas()danmakan()) 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.
Main- Metode
main():
- Digunakan sebagai titik awal program.
- Membuat objek dari masing-masing kelas (
Manusia,Hewan, danTumbuhan), tetapi tipe data objeknya adalahMakhlukHidup(polimorfisme).
- Memanggil metode
bernafas(),makan(), danberkembangBiak()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.
- 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 (
getPosisiXdangetPosisiY):
- Memberikan akses ke posisi X dan Y.
- 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.
- 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).
- 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
Posting Komentar