Pendahuluan
Pemrograman berorientasi objek (Object Oriented Programming/OOP) menyediakan berbagai konsep untuk membangun sistem yang terstruktur, fleksibel, dan mudah dikembangkan. Salah satu konsep penting dalam OOP adalah abstraction, yang bertujuan menyembunyikan detail implementasi dan hanya menampilkan perilaku penting dari suatu objek.
Pada project ini, konsep Abstract Class diterapkan melalui dua studi kasus, yaitu implementasi abstract class Makhluk Hidup dan perubahan struktur program simulasi Foxes and Rabbits menjadi berbasis abstract class.
Tujuan Project
Tujuan dari pembuatan project ini adalah:
- Memahami penggunaan abstract class dalam Java
- Menerapkan inheritance dan polymorphism
- Mengubah struktur class umum menjadi desain yang lebih abstrak
- Meningkatkan kualitas desain program agar lebih fleksibel dan mudah dikembangkan
**Soal 1
Implementasi Abstract Class Makhluk Hidup**
Deskripsi
Pada soal pertama, dibuat sebuah abstract class bernama MakhlukHidup yang mewakili karakteristik umum semua makhluk hidup. Class ini tidak dapat diinstansiasi secara langsung, tetapi diwariskan ke class turunan seperti Manusia, Hewan, dan Tumbuhan.
Abstract class ini memiliki method abstrak yang wajib diimplementasikan oleh setiap subclass, sehingga setiap jenis makhluk hidup dapat memiliki perilaku yang berbeda sesuai karakteristiknya.
Implementasi Konsep
MakhlukHidup→ abstract classManusia,Hewan,Tumbuhan→ subclass- Method abstrak digunakan untuk memaksa subclass mengimplementasikan perilaku tertentu
- Polymorphism diterapkan saat pemanggilan method melalui reference superclass
Hasil
Struktur Class :

Code Program : https://github.com/rafly-alpha/PBO-B/tree/main/Abstraksi-Makhluk-Hidup
Output :

Program mampu menampilkan informasi dan perilaku yang berbeda untuk manusia, hewan, dan tumbuhan meskipun menggunakan satu tipe referensi yang sama, yaitu MakhlukHidup.
**Soal 2
Perubahan Struktur Program Foxes and Rabbits menjadi Abstract Class**
Deskripsi
Soal kedua mengadaptasi simulasi Foxes and Rabbits, yang awalnya menggunakan class biasa, kemudian direstrukturisasi dengan menerapkan Abstract Class berdasarkan konsep abstraction techniques.
Class Animal dijadikan sebagai abstract class yang menyimpan atribut dan perilaku umum semua hewan, seperti umur dan status hidup. Class Fox dan Rabbit menjadi subclass yang mengimplementasikan perilaku spesifik masing-masing.
Perubahan Struktur
Animaldiubah menjadi abstract class- Method
act()dideklarasikan sebagai method abstrak - Perilaku umum dipusatkan di superclass
- Perilaku spesifik diimplementasikan di subclass
- Simulasi menggunakan polymorphism tanpa bergantung pada tipe konkret objek
Implementasi Konsep
- Abstract class untuk generalisasi perilaku hewan
- Inheritance untuk hubungan Fox dan Rabbit terhadap Animal
- Polymorphism untuk menjalankan simulasi secara generik
- Struktur program menjadi lebih modular dan mudah dikembangkan
Hasil
Struktur Class :

Code Program : https://github.com/rafly-alpha/PBO-B/tree/main/Abstraksi-Foxes-and-Rabbits
Output :

Dengan menggunakan abstract class, simulasi menjadi lebih terstruktur dan fleksibel. Penambahan jenis hewan baru dapat dilakukan tanpa mengubah struktur utama program.
Kesimpulan
Penerapan abstract class pada kedua soal menunjukkan bahwa abstraction sangat membantu dalam menyederhanakan desain sistem dan meningkatkan kualitas struktur program. Dengan memisahkan perilaku umum dan perilaku spesifik, kode menjadi lebih terorganisir, mudah dipelihara, serta mendukung pengembangan jangka panjang.
Project ini membuktikan bahwa penggunaan abstract class merupakan pendekatan yang tepat dalam membangun sistem berbasis OOP yang kompleks dan berkembang.