Modul 3 (SECURED) PDF
Modul 3 (SECURED) PDF
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.
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.
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));
}
}
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();
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 CetakKeLayar() {
System.out.println("Judul : " + judul + ", pencipta : " + pencipta);
}
}
d.IsiParam("Lagu 1");
e.IsiParam("kepastian yang kutunggu", "GiGi");
d.CetakKeLayar();
e.CetakKeLayar();
}
}
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...");
}
}
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