Jumadil Artha Ramadhan - TUGAS 6
Jumadil Artha Ramadhan - TUGAS 6
152020-028
TUGAS 6
Inheritance (Pewarisan)
Selanjutnya, misalkan di dalam game minecraft terdapat friendly, yang memiliki kesamaan
dengan enemy yaitu bisa berbicara, bergerak, dan berinteraksi dengan player. Maka dari kedua
class ini dapat kita ciptakan suatu class baru, misalkan class NPC (Non-Playable Character), yang
menjadi superclass dari kedua class tersebut. Berdasarkan superclass dan subclass yang diperoleh,
maka hierarki class dari class NPC akan menghasilkan diagram seperti berikut ini
2. Pengertian Pewarisan/Inheritance
Inheritance adalah suatu mekanisme yang disediakan oleh bahasa pemrograma n
berorientasi objek dalam pendefinisian class - class baru dari class-class yang sudah ada
sebelumnya. Inheritance ini menggunakan konsep re-use class. Inheritance merupakan hubunga n
“is-a”. Misalnya terdapat tiga class dalam game minecraft, yaitu skeleton.java, dragon.java, dan
wolf.java. Ketiga class ini nantinya memiliki object yang berbeda-beda, namun memiliki beberapa
kesamaan. Karena mereka adalah ‘enemy’ dari player, maka mereka akan mewariskan state dan
behaviour dari satu class lain, misalkan class enemy.java. Beberapa persamaan dari tiga class ini
misalnya adalah Atribut name, health, attackpoint beserta method attack() dan defense(). Berikut
ini adalah class diagramnya:
3. Abstract
Class abstrak adalah class yang masih dalam bentuk abstrak. Karena bentuknya masih
abstrak, dia tidak bisa dibuat langsung menjadi objek. Sebuah class agar dapat disebut class abstrak
setidaknya memiliki satu atau lebih method abstrak. Method abstrak adalah method yang tidak
memiliki implementasi atau tidak ada bentuk konkritnya.
Kelas pertama yang penulis buat adalah abstract class enemy.java. Pada kelas ini terdapat
inisialisasi konstruktor class enemy dan atributnya. Kemudian ada method move() dan display()
serta ada setSpeed untuk atribut speed. Method display berfungsi untuk menampilkan infor mas i
name dan speed dari objek nantinya. Sementara move adalah abstract method yang nantinya akan
digunakan di tiga kelas selanjutnya.
Tiga kelas selanjutnya yaitu skeleton, wolf, dan dragon yang mewariskan (inherit) dari
class enemy. Pada tiga class ini terdapat inisialisasi nama atribut dan overrride method move().
Setiap class memiliki formula yang berbeda untuk speed nya sesuai dengan game yang memilik i
variasi untuk setiap tipe objek.
Selanjutnya adalah MainAbstract yang merupakan main class. Dalam class ini terdapat
inisialisasi ketiga objek. Kemudian ketiga objek ini menggunakan method move() untuk setSpeed
dan display() untuk menampilkan objek.
Output:
4. Interface
Interface merupakan suatu mekanisme yang disediakan oleh java yang memungkinka n
berbagi konstanta atau menentukan bentuk metode yang dapat digunakan oleh sejumlah kelas.
Beda interface dengan kelas abstrak adalah :
- Kelas abstrak dapat mengandung metode abstrak maupun metode tidak abstrak, sedangkan
interface hanya dapat mengandung metode abstrak
- di class abstrak kita bisa buat atribut atau variabel sedangkan di interface kita cuma bisa buat
konstanta saja
- di class abstrak dapat memiliki member private dan protected sedangkan interface harus publik
semua
- Class abstrak diimpelentasikan dengan pewarisan (extends) sedangkan interface
menggunakan implements
Sederhananya, Interface sangat mirip dengan class, tetapi pada interface tidak
diperbolehkan pendeklarasian variabel instan dan method pada interface dideklarasikan tanpa
memberikan implementasi terhadap method yang kita deklarasikan. Artinya, secara praktek kita
dapat mendefinisikan interface tanpa merujuk rincian implementasinya.
Pada gambar di atas terlihat interface Operasi.java dan OperasiScientific.java. Pada kedua
interface ini kita hanya memiliki beberapa method tanpa tubuh/body/. Inilah yang dimaksud pada
poin 1 perbedaan antara abstract dan interface tadi. Selanjutnya adalah class Kalkulator.
Class Kalkulator menggunakan interface
Operasi dan OperasiScientific dengan menggunaka n
keyword implements. Program di atas menggunaka n
interface sebagai ‘induk’ nya, yang membedakan
dengan class induk yaitu interface hanya
mendeklarasikan method-methodnya saja (bentuk
blueprint). Baru method tesebut akan
diimplementasikan oleh class-class yang
mengimplementasikan interface tersebut. Dengan
kata lain interface hanya mendeklarasikan method-
method tanpa tubuh (hanya rancangan) dan dapat
mengimplementasikan sifat-sifat umumnya pada
class-class lain yang mengimplementasikannya.
Terakhir ada Main Class, di main class ini diisi dengan output judul dari program yang
berupa konstanta dari interface sebelumnya. Selanjutnya kita melakukan new object Kalkulator
dengan paramater nilai x dan y. Di bagian selanjutnya berisi println dari hasil kalkulasi dari
method-method yang sudah diinisialisasi di class sebelumnya. Ouput dapat dilihat pada gambar
berikut ini:
-----------------------------------------------TERIMA KASIH----------------------------------------------