0% menganggap dokumen ini bermanfaat (0 suara)
91 tayangan5 halaman

Modul 3 (SECURED) PDF

Modul ini membahas konsep inheritance dan polymorphism dalam pemrograman berorientasi objek. Inheritance digunakan untuk menurunkan kelas dasar menjadi kelas turunan sehingga kelas turunan mewarisi atribut dan metode kelas dasar. Polymorphism memungkinkan objek-objek yang berbeda tapi memiliki interface yang sama untuk menanggapi perintah yang sama dengan cara yang berbeda-beda. Metode dapat di-override untuk menimpa implementasi metode kelas dasar, atau di

Diunggah oleh

Riqqah Alya
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
91 tayangan5 halaman

Modul 3 (SECURED) PDF

Modul ini membahas konsep inheritance dan polymorphism dalam pemrograman berorientasi objek. Inheritance digunakan untuk menurunkan kelas dasar menjadi kelas turunan sehingga kelas turunan mewarisi atribut dan metode kelas dasar. Polymorphism memungkinkan objek-objek yang berbeda tapi memiliki interface yang sama untuk menanggapi perintah yang sama dengan cara yang berbeda-beda. Metode dapat di-override untuk menimpa implementasi metode kelas dasar, atau di

Diunggah oleh

Riqqah Alya
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 5

MODUL III

INHERITANCE DAN POLYMORPHISM

A. TUJUAN
1. Mahasiswa diharapkan mampu memahami konsep inheritance dan polymorphism
secara mendalam
2. Mahasiswa diharapkan mampu mengimplementasikan inheritance dan polymorphism
dalam suatu program

B. DASAR TEORI
1. Inheritance
Pada dasarnya kita sebagai manusia sudah terbiasa untuk melihat objek yang berada
di sekitar kita tersusun secara hierarki berdasarkan kelas-nya masing-masing. Dari sini
kemudian timbul suatu konsep tentang pewarisan yang merupakan suatu proses
dimana suatu class diturunkan dari kelas lainnya sehingga ia mendapatkkan ciri atau
sifat dari kelas tersebut.

Dari hirarki di atas, semakin ke bawah, kelas akan semakin bersifat spesifik. Misalnya,
sebuah Kelas Pria memiliki seluruh sifat yang dimiliki oleh manusia, demikian halnya
juga Wanita.

Gambar 1. Ilustrasi pada kelas Manusia

Penurunan sifat tersebut dalam Bahasa Pemrograman Java disebut dengan


Inheritance yaitu satu dalam Pilar Dasar OOP (Object Oriented Programing), yang
dalam implementasinya merupakan sebuah hubungan “adalah bagian dari” atau “is a
relationship” object yang diinherit (diturunkan).
Latar belakang diperlukannya suatu inheritance dalam pemrograman java adalah
untuk menghindari duplikasi object baik itu field, variable maupun method yang
sebenarnya merupakan object yang bisa diturunkan dari hanya sebuah kelas. Jadi
inheritance bukan sebuah Kelas yang diturunkan oleh sebuah Literial, tapi lebih
menunjukkan ke hubungan antar object itu sendiri.

Inheritance merupakan suatu cara untuk menurunkan suatu kelas yang lebih umum
menjadi suatu kelas yang lebih spesifik. Inheritance adalah salah satu ciri utama
suatu bahasa program yang berorientasi pada objek, dan Java pasti menggunakannya.
Java mendukung inheritance dengan memungkinkan satu kelas untuk bersatu dengan
kelas lainnya ke dalam deklarasinya. Dalam inheritance terdapat dua istilah yang
sering digunakan. Kelas yang menurunkan disebut kelas dasar (base class/super class),
sedangkan kelas yang diturunkan disebut kelas turunan (derived class/subclass).
Karakteristik pada superclass akan dimiliki juga oleh subclassnya.

Contoh pewarisan dalam program Java:

File: DemoInheritance.java
class A {
int x;
int y;

void tampilXY() {
System.out.println("nilai x: "+x+" nilai y: "+y);
}
}

class B extends A {
int z;
void jumlahXY() {
System.out.println("jumlah: "+(x + y + z));
}
}

public class DemoInheritance {


public static void main(String[] args) {
A superclass = new A();
B subclass = new B();

System.out.println("superclass :");
superclass.x = 3;
superclass.y = 4;
superclass.tampilXY();

System.out.println("subclass :");
//member superclass dapat diakses dari subclassnya
subclass.x = 1;
subclass.y = 2;
subclass.tampilXY();

//member tambahan hanya ada di subclass


subclass.z = 5;
subclass.jumlahXY();
}
}
Output dari program di atas adalah:

superclass :
nilai x: 3 nilai y: 4
subclass :
nilai x: 1 nilai y: 2
jumlah: 8

2. Polymorphism
Polymorphism berasal dari bahasa Yunani yang berarti banyak bentuk. Dalam PBO,
konsep ini memungkinkan digunakannya suatu interface yang sama untuk memerintah
obyek agar melakukan aksi atau tindakan yang mungkin secara prinsip sama namun
secara proses berbeda. Dalam konsep yang lebih umum sering kali polymorphism
disebut dalam istilah satu interface banyak aksi. Contoh yang konkrit dalam dunia
nyata yaitu mobil. Mobil yang ada dipasaran terdiri atas berbagai tipe dan berbagai
merk, namun semuanya memiliki interface kemudi yang sama, seperti: stir, tongkat
transmisi, pedal gas dan rem. Jika seseorang dapat mengemudikan satu jenis mobil
saja dari satu merk tertentu, maka orang itu akan dapat mengemudikan hampir semua
jenis mobil yang ada, karena semua mobil tersebut menggunakan interface yang sama.

Interface yang sama tidak berarti cara kerjanya juga sama. Misal pedal gas, jika
ditekan maka kecepatan mobil akan meningkat, tapi proses peningkatan kecepatan
ini berbeda-beda untuk setiap jenis mobil. Dengan OOP maka dalam melakukan
pemecahan suatu masalah kita tidak melihat bagaimana cara menyelesaikan suatu
masalah tersebut (terstruktur) tetapi obyek-obyek apa yang dapat melakukan
pemecahan masalah tersebut.

Sebagai contoh anggap kita memiliki departemen yang memiliki manager, sekretaris,
petugas administrasi data dan lainnya. Misal manager ingin memperoleh data dari bag
administrasi maka manager tersebut dapat menyuruh petugas bag administrasi untuk
mengambilnya. Pada kasus tersebut, manager tidak harus mengetahui bagaimana cara
mengambil data tetapi manager bisa mendapatkan data tersebut melalui obyek
petugas administrasi.

Jadi untuk menyelesaikan suatu masalah dengan kolaborasi antar obyek-obyek yang
ada karena setiap obyek memiliki deskripsi tugasnya sendiri.

a. Overloading Method
Di dalam java Anda diperbolehkan membuat dua atau lebih method dengan nama yang
sama dalam satu kelas, tetapi jumlah dan tipe data argumen masing – masing method
haruslah berbeda satu dengan yang lainnya. Hal itu yang dinamakan dengan
Overloading Method.

Contoh program:
File: DemoOverload.java
class Lagu {

String pencipta;
String judul;

void IsiParam(String param1) {


judul = param1;
pencipta = "Tidak dikenal";
}

void IsiParam(String param1, String param2) {


judul = param1;
pencipta = param2;
}

void CetakKeLayar() {
System.out.println("Judul : " + judul + ", pencipta : " + pencipta);
}
}

public class DemoOverload {


public static void main(String[] args) {
Lagu d, e;
d = new Lagu();
e = new Lagu();

d.IsiParam("Lagu 1");
e.IsiParam("kepastian yang kutunggu", "GiGi");
d.CetakKeLayar();

e.CetakKeLayar();
}
}

Pada contoh program di atas, kita melakukan overloading terhadap method


IsiParam(). Di mana IsiParam() yang pertama menerima satu buah parameter bertipe
String dan IsiParam() yang kedua menerima dua buah parameter bertipe String.
Sehingga inilah hasil eksekusi program yang didapat:

Judul : Lagu 1, pencipta : Tidak dikenal


Judul : kepastian yang kutunggu, pencipta : GiGi

b. Overriding Method
Di dalam java, jika dalam suatu subclass Anda mendefinisikan sebuah method yang
sama dengan yang dimiliki oleh superclass, maka method yang Anda buat dalam
subclass tersebut dikatakan mengoverride superclass-nya. Sehingga jika Anda
mencoba memanggil method tersebut dari instance subclass yang Anda buat, maka
method milik subclass-lah yang akan dipanggil, bukan lagi method milik superclass-nya.

Contoh program:
File: DemoOverride.java
class A {
public void tampilkanKeLayar() {
System.out.println("Method milik class A dipanggil...");
}
}

class B extends A {
public void tampilkanKeLayar() {
super.tampilkanKeLayar(); // method milik superclas dipanggil
System.out.println("Method milik class B dipanggil...");
}
}

public class DemoOverride {


public static void main(String[] args) {
B subOb = new B();
subOb.tampilkanKeLayar();
}
}

Output dari program di atas:

Method milik class A dipanggil...


Method milik class B dipanggil...

Terlihat pada contoh di atas, kelas B yang merupakan turunan dari kelas A, meng-
override method tampilkanKeLayar(), sehingga pada waktu kita memanggil method
tersebut dari variable instance kelas B (variable subOb), yang terpanggil adalah method
yang sama yang ada pada kelas B.

C. UNGUIDED

Perhatikan kelas diagram berikut. Jawablah pertanyaan di bawah ini!

1. Sebutkan method mana yang melakukan override?


2. Sebutkan method mana yang melakukan overload?
3. Buatlah syntax yang mengaplikasikan kelas diagram tersebut!

Anda mungkin juga menyukai