Abstraksi || Java
Abstraksi Bayangkan kamu sedang mengendarai mobil. Kamu tidak perlu tahu semua detail rumit tentang cara mesin bekerja, kan? Yang penting…
Abstraksi || Java

Abstraksi Bayangkan kamu sedang mengendarai mobil. Kamu tidak perlu tahu semua detail rumit tentang cara mesin bekerja, kan? Yang penting mobilnya bisa berjalan. Nah, inilah yang disebut abstraksi dalam Pemrograman Berorientasi Objek (PBO)! Abstraksi membantu kita menyederhanakan hal-hal yang rumit dengan fokus hanya pada bagian-bagian yang penting saja. Jadi, daripada pusing memikirkan bagaimana semuanya bekerja, kita hanya fokus pada apa yang dilakukan objek tersebut.
Kelas Abstrak Pernah mendengar tentang rencana besar, tetapi belum siap digunakan langsung? Kelas abstrak persis seperti itu! Kelas abstrak adalah cetak biru yang tidak bisa digunakan langsung untuk membuat objek, tapi kita bisa mewarisinya dan menambahkan detailnya. Kelas abstrak ini bisa punya metode yang belum lengkap (metode abstrak) dan metode yang sudah lengkap. Ketika kelas lain (subclass) mewarisi kelas abstrak ini, mereka harus melengkapi metode yang belum lengkap. Ini seperti memberikan template dan membiarkan subclass menyelesaikan gambarnya!
Ciri-Ciri Kelas Abstrak:
- Tidak bisa langsung digunakan untuk membuat objek.
- Bisa punya metode yang setengah jadi (abstrak) dan yang sudah jadi (dengan implementasi).
- Subclass wajib menyelesaikan metode abstrak yang belum lengkap, seolah-olah menambahkan warna ke dalam gambar cetak biru!
Praktikum
A. Study Kasus
- Membuka Java IDE
- Membuat structur package dan class

- Code class Kendaraan:
package Praktikum9;
// Definisi kelas abstrak
abstract class Kendaraan {
// Metode abstrak
abstract void berjalan();
// Metode dengan implementasi
void info() {
System.out.println("Ini adalah kendaraan.");
}
}
- Code class Mobil:
package Praktikum9;
// Kelas turunan dari Kendaraan
class Mobil extends Kendaraan {
@Override
void berjalan() {
System.out.println("Mobil sedang berjalan dengan cepat.");
}
}
- Code class Sepeda:
package Praktikum9;
class Sepeda extends Kendaraan {
@Override
void berjalan() {
System.out.println("Sepeda sedang berjalan dengan pelan.");
}
}
- Code class Main:
package Praktikum9;
// Kode utama untuk pengujian
public class Main {
public static void main(String[] args) {
// Membuat objek dari kelas turunan
Kendaraan mobil = new Mobil();
Kendaraan sepeda = new Sepeda();
// Memanggil metode dari objek
mobil.berjalan();
sepeda.berjalan();
mobil.info();
sepeda.info();
}
}
- Hasil / Output:

- Membuat objek lain dari kelas kendaraan, apakah bisa?
Tidak bisa membuat objek langsung dari kelas abstrak seperti Kendaraan. Kelas abstrak hanya digunakan sebagai template bagi kelas turunan untuk mengimplementasikan metode yang didefinisikan sebagai abstrak. Jika mencoba membuat objek langsung dari kelas abstrak, maka akan muncul error. Contoh:
Kendaraan kendaraan = new Kendaraan(); // Ini akan menghasilkan errorjava
Pesan error yang mungkin muncul:
Kendaraan is abstract; cannot be instantiated
B. Latihan/tugas
- Membuat package baru “Tugas9” dan class dengan susunan berikut:

- Code class Hewan:
package Tugas9;
// Definisi kelas abstrak Hewan
abstract class Hewan {
// Metode abstrak
abstract void suara();
}
- Code class Kucing:
package Tugas9;
// Kelas turunan dari Hewan untuk Kucing
class Kucing extends Hewan {
@Override
void suara() {
System.out.println("Kucing mengeluarkan suara: Meong");
}
}
- Code class Anjing:
package Tugas9;
// Kelas turunan dari Hewan untuk Anjing
class Anjing extends Hewan {
@Override
void suara() {
System.out.println("Anjing mengeluarkan suara: Guk Guk");
}
}
- Code class Main:
package Tugas9;
// Kode utama untuk pengujian
public class Main {
public static void main(String[] args) {
// Membuat objek dari kelas turunan
Hewan kucing = new Kucing();
Hewan anjing = new Anjing();
// Memanggil metode suara dari masing-masing objek
kucing.suara();
anjing.suara();
}
}
- Hasil / Output:

Kesimpulan
Kelas abstraksi merupakan sebuah cetak biru untuk class turunanya (subclass). Dengan adanya class ini maka akan lebih mudah dalam inisialisasi metode pada subclass sehingga memudahkan susunan dan pengembangan code lebih lanjut.
Github-ku
https://github.com/byuJR/PraktikumPBO-9
Referensi
Nata, I. A. (n.d.). Abstraksi dan Kelas Abstrak (Modul 9). Program Studi Teknologi Informasi, Universitas Tidar.
메타데이터
- post_id
- eb04326730a2
- slug
- abstraksi-java-eb04326730a2
- url
- https://medium.com/@mahardika.bayu.rahmadi/abstraksi-java-eb04326730a2
- canonical_url
- https://medium.com/@mahardika.bayu.rahmadi/abstraksi-java-eb04326730a2
- author_url
- https://medium.com/@mahardika.bayu.rahmadi
- status
- ok
- fetched_at
- 2026-07-18 08:34:37