Abstract Class & Foxes and Rabbit

 

Nama           : Hafidz Panji Ashari
NRP             : 5025231278
Kelas            : PBO-A


1). contoh implementasi program kecil menggunakan Abstract Class untuk merepresentasikan MakhlukHidup yang diwariskan ke Manusia, Hewan, dan Tumbuhan


// Abstract Class
abstract class MakhlukHidup {
    // Method abstrak
    public abstract void makan();
    public abstract void bergerak();

    // Method konkrit
    public void bernapas() {
        System.out.println("Makhluk hidup bernapas.");
    }
}

// Subclass Manusia
class Manusia extends MakhlukHidup {
    @Override
    public void makan() {
        System.out.println("Manusia makan dengan tangan atau alat makan.");
    }

    @Override
    public void bergerak() {
        System.out.println("Manusia bergerak dengan berjalan atau berlari.");
    }
}

// Subclass Hewan
class Hewan extends MakhlukHidup {
    @Override
    public void makan() {
        System.out.println("Hewan makan dengan mulut atau paruh.");
    }

    @Override
    public void bergerak() {
        System.out.println("Hewan bergerak dengan berlari, terbang, atau berenang.");
    }
}

// Subclass Tumbuhan
class Tumbuhan extends MakhlukHidup {
    @Override
    public void makan() {
        System.out.println("Tumbuhan melakukan fotosintesis untuk makan.");
    }

    @Override
    public void bergerak() {
        System.out.println("Tumbuhan bergerak mengikuti arah cahaya matahari.");
    }
}

// Main Class
public class Main {
    public static void main(String[] args) {
        // Polimorfisme dengan Abstract Class
        MakhlukHidup manusia = new Manusia();
        MakhlukHidup hewan = new Hewan();
        MakhlukHidup tumbuhan = new Tumbuhan();

        // Demonstrasi fungsi
        System.out.println("Manusia:");
        manusia.bernapas();
        manusia.makan();
        manusia.bergerak();

        System.out.println("\nHewan:");
        hewan.bernapas();
        hewan.makan();
        hewan.bergerak();

        System.out.println("\nTumbuhan:");
        tumbuhan.bernapas();
        tumbuhan.makan();
        tumbuhan.bergerak();
    }
}


Penjelasan Program

  1. MakhlukHidup:

    • Abstract class sebagai dasar (superclass).
    • Method abstrak (makan, bergerak) wajib diimplementasikan oleh subclass.
    • Method konkrit (bernapas) dapat digunakan langsung oleh semua subclass.
  2. Subclass:

    • Manusia, Hewan, dan Tumbuhan mewarisi MakhlukHidup.
    • Mengimplementasikan method abstrak sesuai dengan perilaku masing-masing.
  3. Main Class:

    • Membuat objek menggunakan polimorfisme.
    • Menunjukkan perilaku unik dari masing-masing subclass.




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

Sumber Buku


Untuk mengubah struktur umum kelas dalam simulasi "Foxes and Rabbits" menjadi bentuk menggunakan Abstract Class, kita dapat mengidentifikasi elemen-elemen yang sama dari kelas Fox dan Rabbit dan memindahkannya ke sebuah superclass abstrak, seperti Animal. Berikut adalah langkah-langkah dan implementasi :

Langkah 1: Identifikasi Kesamaan

  1. Field yang Sama:

    • age: Umur hewan.
    • alive: Status hidup/mati.
    • field: Lokasi lapangan.
    • location: Lokasi di lapangan.
  2. Metode yang Sama:

    • incrementAge(): Meningkatkan umur dan memeriksa kematian.
    • setDead(): Mengubah status hewan menjadi mati.
    • getLocation() dan setLocation(Location location): Mendapatkan dan mengatur lokasi.
  3. Metode Abstrak:

    • act(): Setiap hewan harus melakukan tindakan pada langkah simulasi.
    • canBreed(): Spesifik untuk masing-masing hewan.

Langkah 2: Implementasi Abstract Class

struktur file : 


Kode file.java ada di github :

Pertemuan13_foxes_and_rabbit


hasil : 














Comments

Popular posts from this blog

Daily Task Manager

EAS

DisplayClock