Pertemuan 12 – Abstraksi Class

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:

  1. Memahami penggunaan abstract class dalam Java
  2. Menerapkan inheritance dan polymorphism
  3. Mengubah struktur class umum menjadi desain yang lebih abstrak
  4. 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 class
  • Manusia, 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

  • Animal diubah 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.