Anda di halaman 1dari 6

2C - 42522039

MUH. ADRYAN AKBAR

ABSTRAK DAN INTERFACE


A. Abstrak
1. Hewan Abstrak Class (Kelas Abstrak Hewan)
a) Ini adalah kelas abstrak yang memiliki properti privat ”Nama”.
b) Kelas ini memiliki satu metode abstrak yaitu ”Bersuara()”.
c) Kelas ini juga memiliki motode konkret (no-abstrak) ”getNama()” yang
mengembalikan nama hewan.
d) Karena kelas ini adalah abstrak, kita tidak dapat membuat objek langsung dari
kelas ini, tetapi kelas turunan (subkelas) dapat mengimplementasikan metode
abstraknya.

2. Kelas Kuda (Kuda Class):


a) Ini adalah salah satu kelas turunan dari ”Hewan”.
b) Kelas ”Kuda” mengimplementasikan metode kontruktor yang mengambil satu
argumen ”Nama”.
c) Kelas ini meng-override metode abstrak ”Bersuara()” dan mencetak suara
”Meringkik....!!!”, dengan mengakses nama hewan melalui metode ”getNama()”.
2C - 42522039
MUH. ADRYAN AKBAR

3. Kelas Ular (Ular Class)


a) Ini adalah kelas turunan dari ”Hewan”.
b) Kelas ”Ular” mirip dengan ”Sapi”, mengimplementasikan metode konstruktor dan
meng-override metode ”Bersuara()”. Namun dalam hal ini, suara yang dicetak
adalah ”Sssss.....!!!”.

4. Main Class (Kelas Utama)


a) Ini adalah kelas utama yang memiliki metode ”Main” yang akan dijalankan
pertama kali ketika program dijalankan.
b) Dalam metode ”Main”, Anda membuat objek ”Sapi” dan ”Ular” dan mengacu
pada mereka melalui tipe referensi ”Hewan”, memanfaatkan polimorfisme.
c) Kemudian memanggil metode “bersuara()” pada objek “hewan1” dan “hewan2”.
Karena keduanya adalah turunan dari “Hewan”, metode “bersuara()” yang sesuai
dengan jenis hewan akan dieksekusi
2C - 42522039
MUH. ADRYAN AKBAR

Kode ini menciptakan hierarki pewarisan dengan kelas abstrak “Hewan”


sebagai kelas dasar, dan “Sapi” serta “Ular” sebagai kelas turunan yang
mengimplementasikan metode abstrak “bersuara()”. Hal ini memungkinkan berbagai
jenis hewan untuk berbagi tipe dasar yang sama (“Hewan”) dan memanggil metode
yang sama (“bersuara()”), meskipun perilaku masing-masing hewan dapat berbeda.
Konsep polimorfisme juga diterapkan di sini, di mana objek-objek yang berbeda dapat
diakses melalui tipe yang sama (“Hewan”).
2C - 42522039
MUH. ADRYAN AKBAR

B. Interface
1. Makanan Interface (Interface Makanan)
a) Ini adalah definisi dari sebuah antarmuka (interface yang disebut ”Makanan”.
b) Antarmuka ini memiliki tiga metode: “siapkan()”, “makan()”, dan “cuci()”
c) Antarmuka ini digunakan untuk menentukan kontrak yang harus diikuti oleh
kelas-kelas yang mengimplementasikannya. Semua kelas yang
mengimplementasikan “Makanan” harus menyediakan implementasi (kode) untuk
ketiga metode ini.

2. Kelas Pizza (Pizza Class)


a) Ini adalah kelas yang mengimplementasikan ”Makanan” interface.
b) Kelas “Pizza” mengimplementasikan semua tiga metode yang didefinisikan dalam
antarmuka “Makanan”
c) Setiap metode memberikan implementasi spesifik yang sesuai dengan perilaku
objek “Pizza”
2C - 42522039
MUH. ADRYAN AKBAR

3. Kelas Salad (Salad Class)


a) Ini adalah kelas yang juga mengimplementasikan ”Makanan” interface.
b) Kelas “Salad” juga mengimplementasikan semua tiga metode yang didefinisikan
dalam antarmuka “Makanan”
c) Setiap metode memberikan implementasi spesifik yang sesuai dengan perilaku
objek “Salad”.

4. Main Class (Kelas Utama)


a) Ini adalah kelas utama yang memiliki metode ”Main” yang akan dijalankan
pertama kali ketika program dijalankan.
b) Dalam metode “main”, saya membuat objek “Pizza” dan “Salad”, dan mengacu
pada mereka melalui tipe referensi “Makanan”, memanfaatkan polimorfisme
c) Kemudian memanggil metode-metode pada objek “makanan1” (Pizza) dan objek
“makanan2” (Salad) untuk mengeksekusi kode yang sesuai dengan masing-
masing jenis makanan
2C - 42522039
MUH. ADRYAN AKBAR

Kode ini adalah contoh penggunaan antarmuka (interface) untuk


mendefinisikan kontrak, dan implementasi kelas yang sesuai dengan kontrak ini. Ini
memungkinkan berbagai jenis makanan (Pizza dan Salad) untuk berbagi antarmuka
yang sama, sehingga Anda dapat memperlakukan mereka dengan cara yang seragam,
misalnya dengan memanggil metode yang sama seperti “siapkan()”, “makan()”, dan
“cuci()”. Ini juga menggambarkan prinsip polimorfisme dalam pemrograman
berorientasi objek, di mana Anda dapat mengacu pada objek-objek yang berbeda
melalui tipe yang sama (yaitu, tipe “Makanan”).

Anda mungkin juga menyukai