Anda di halaman 1dari 33

PEMROGRAMAN BERORIENTASI OBJEK

SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER

EL RAHMA

YOGYAKARTA

Pemrograman Berorientasi Objek 1


BAB 1
Pengenalan
Pemrograman Berorientasi Objek

Pokok Bahasan

Pengenalan Class dan Objek


Deklarasi Class
Deklarasi Atribut
Deklarasi Method
Instansisi Objek
Pengaksesan Anggota Objek

Tujuan Belajar
Dengan Praktikum ini mahasiswa diharapkan
dapat: Memahami perbedaan class dan objek
Mendeklarasikan suatu class
Mendeklarasikan suatu atribut
Mendeklarasikan suatu method
Membuat suatu objek
Mengakses anggota suatu objek

Pemrograman Berorientasi Objek 2


Dasar Teori

Pengenalan Class dan Objek

Class adalah „cetak biru‟ atau „blueprint‟ dari object. Class digunakan hanya untuk membuat
kerangka dasar. Yang akan kita pakai nantinya adalah hasil cetakan dari class, yakni object.

Sebagai analogi, class bisa diibaratkan dengan laptop atau notebook. Kita tahu bahwa laptop
memiliki ciri-ciri seperti merk, memiliki keyboard, memiliki processor, dan beberapa ciri khas
lain yang menyatakan sebuah benda tersebut adalah laptop. Selain memiliki ciri-ciri, sebuah
laptop juga bisa dikenakan tindakan, seperti: menghidupkan laptop atau mematikan laptop.

Class dalam analogi ini adalah gambaran umum tentang sebuah benda. Di dalam pemrograman
nantinya, contoh class seperti: koneksi_database dan profile_user.

Di dalam Java, penulisan class diawali dengan keyword class, kemudian diikuti dengan nama
dari class. Aturan penulisan nama class sama seperti aturan penulisan variabel dalam PHP, yakni
diawali dengan huruf atau underscore untuk karakter pertama, kemudian boleh diikuti dengan
huruf, underscore atau angka untuk karakter kedua dan selanjutnya. Isi dari class berada dalam
tanda kurung kurawal.

Deklarasi Class

Untuk mendeklarasikan sebuah class dalam Java adalah sebagai berikut:


<modifier> class <nama class> {

[deklarasi atribut]

[deklarasi method]

Contoh :

Pemrograman Berorientasi Objek 3


public class Mahasiswa {

Sebuah class terdiri dari Atribut dan method. Atribut berfungsi untuk mencatat nilai, karakter,
Sifat dari sebuah class. Sedangkan method adalah operasi-operasi tertentu dalam sebuah class.

Deklarasi Atribut dan Method

Untuk mendeklarasikan atribut gunakan sintaks berikut:

<modifier> <tipe data> <nama atribut>

Contoh:

public class Mahasiswa {

Pemrograman Berorientasi Objek 4


public String nama;
public String pt;

Deklarasi method dapat menggunakan sintaks berikut:

<modifier> <return type> <nama method> ([daftar argument]) {

[statemen]

Contoh :

Mahasiswa.java
public class Mahasiswa {

public String nama;


public String pt;

public void aboutMe() {


System.out.println("Namaku " + this.nama);
System.out.println("Aku anak " + this.pt);
}
}

Instansiasi (membuat) Objek

Ketika kita mendeklarasikan sebuah class, maka dia baru berupa blueprint atau cetakan dan
belum merupakan sesuatu yang kita gunakan. Ibaratkan Anda ingin membuat Rumah, maka class
yang kita definisikan, baru berupa denah. Untuk itu kita harus mewujudkan dengan membuat
rumah yang sebenarnya sesuai dengan rancangan denah yang kita buat, sehingga bisa kita pakai.

Dalam hal ini kita dapat meng-instansiasi(membuat) objek dari class yang kita buat. Untuk
membuat objek adalah sebagai berikut:

<nama class> <nama objek> = new <konstruktor class>

Contoh:

TestMahasiswa.java
public class TestMahasiswa {

Pemrograman Berorientasi Objek 5


public static void main(String[] args) {
Mahasiswa mhs = new Mahasiswa();
}

Mengakses Anggota (attribute, method) class

Setelah Anda instansiasi objek, anda dapat mengakses anggota dari class seperti berikut:
<nama objek> . <anggota>

Contoh:

TestMahasiswa.java
public class TestMahasiswa {

public static void main(String[] args) {


Mahasiswa mhs = new Mahasiswa();

mhs.pt = "STIMIK EL-Rahma Yogyakarta";


mhs.nama = "Irma Mutia Farisa";
mhs.aboutMe();
}

Percobaan

Berikut adalah UML Class Diagram dari class Mobil:

Mobil

Pemrograman Berorientasi Objek 6


Implementasikan ke dalam program dengan membuat sebuah class dengan nama
Mobil.java kemudian lengkapi program sebagai berikut:

Mobil.java
public class Mobil {
public String warna;
public String merek;

public void beliMobil(String warna, String merek)


{ this.merek = warna;
this.warna = merek;
}

public void info() {


System.out.println("Aku punya mobil Keren");
System.out.println("Mereknya " + this.merek);
System.out.println("Warnanya " + this.warna);
}

public void maju() {


System.out.println("Mobil Maju");
}

public void mundur() {


System.out.println("Mobil Mundur");
}

public void belok() {


System.out.println("Mobil belok");
}

public void berhenti() {


System.out.println("Mobil Berhenti");
}
}

buat sebuah main class TestMobil.java sebagai berikut:

TestMobil.java
public class TestMobil {

public static void main(String[] args) {

Mobil myMobil = new Mobil();

myMobil.beliMobil("Biru", "Honda Jazz");


myMobil.info();

myMobil.maju();

Pemrograman Berorientasi Objek 7


myMobil.mundur();
myMobil.belok();
myMobil.berhenti();

}
}

Jalankan program dan amati hasilnya. Jika masih terdapat kesalahan, baca pesan kesalahan
dan telusuri.

Latihan

Latihan 1: Mengimplemantasikan UML class Diagram dalam program untuk class Tabungan

Tabungan

Transformasikan Diagram Class di atas ke dalam bentuk program! Kemudian,


tulislah listing program berikut sebagai pengetesan.

public class TestTabungan {

public static void main(String[] args) {


Tabungan tabungan = new Tabungan(7500000);

System.out.println("Saldo Awal : " + tabungan.saldo);


tabungan.ambilUang(500000);
System.out.println("Jumlah uang yang diambil : 500000");
System.out.println("Saldo sekarang : " + tabungan.saldo);
}
}

Lakukan kompilasi program di atas dan jalankan. Jika tampilan di layar tampak seperti di bawah
ini, maka Anda sudah benar. Jika tidak sama, benahi kembali program anda dan lakukan hal
yang sama seperti di atas.

Pemrograman Berorientasi Objek 8


Tugas

Mengimplementasikan UML Class diagram Truk ke dalam program

Truk

Keterangan: 1 Kg = 9,8 Kg

Transpormasikan class diagram di atas ke dalam bentuk program! Tulis listing program
berikut sebagai pengetesan:

public class TestTruk {

public static void main(String args[]) {


Truk truk = new Truk(900);
boolean status;

System.out.println("Muatan maks : " + truk.getMuatanMaks());


status = truk.tambahMuatan(500.0);
System.out.println("Tambah muatan : 500");
if (status) {
System.out.println(" OK");
} else {
System.out.println(" gagal");
}

status = truk.tambahMuatan(300.0);
System.out.println("Tambah Muatan : 300");
if (status) {
System.out.println(" OK");
} else {

Pemrograman Berorientasi Objek 9


System.out.println(" gagal");
}

status = truk.tambahMuatan(150.0);
System.out.println("Tambah muatan : 150");
if (status) {
System.out.println(" OK");
} else {
System.out.println(" gagal");
}

status = truk.tambahMuatan(50.0);
System.out.println("Tambah muatan : 50");
if (status) {
System.out.println(" OK");
} else {
System.out.println(" gagal");
}

System.out.println("Muatan sekarang = " + truk.getMuatan());


}

Lakukan kompilasi program di atas lalu jalankan. Jika tampilan di layar seperti tampak di
bawah ini, maka program sudah benar. Jika tidak, benahi kembali program anda dan lakukan
hal yang sama seperti di atas.

Pemrograman Berorientasi Objek 10


BAB
2
Dasar-dasar
Pemrograman Berorientasi Objek

Pokok Bahasan

Information hiding
Enkapsulasi
Constructor
Overloading Constructor

Tujuan Belajar

Dengan praktikum ini mahasiswa diharapkan dapat


Menerapkan konsep enkapsulasi pada class
Mendeklarasikan suatu constructor

Pemrograman Berorientasi Objek 11


Dasar Teori

Enkapsulasi

Enkapsulasi (encapsulation) adalah sebuah metoda untuk mengatur struktur class dengan
cara menyembunyikan alur kerja dari class tersebut.
Struktur class yang dimaksud adalah property dan method. Dengan enkapsulasi, kita bisa
membuat pembatasan akses kepada property dan method, sehingga hanya property dan
method tertentu saja yang bisa diakses dari luar class. Enkapsulasi juga dikenal dengan
istilah ‘information hiding’.
Contoh:

private String nim;

Enkapsulasi mempunyai dua hal mendasar yaitu:

- Informatioan hiding
- Menyediakan suatu perantara(method) untuk pengaksesan data

Perhatikan contoh program berikut:

SegiTiga.java
public class SegiTiga {
public double alas;
public double tinggi;

public double luas() {


return 0.5 * alas * tinggi;
}
}

TestSegiTiga.java
public class TestSegiTiga {

public static void main(String[] args) {


SegiTiga s = new SegiTiga();
s.alas = 10;
s.tinggi = 20;

System.out.println("Mencari Luas Segi Tiga");


System.out.println("Alas : " + s.alas);
System.out.println("Tinggi : " + s.tinggi);
System.out.println("Luas : " + s.luas());
}

Pemrograman Berorientasi Objek 12


}

Contoh program di atas belum menggunakan enkapsulasi data. Seharusnya semua variabel (alas dan
tinggi) harus dilindungi yaitu dideklarasikan private bukan public. Berkikut adalah contoh penggunaan
enkapsulasi yang baik.

SegiTiga.java
public class SegiTiga {
private double alas;
private double tinggi;

public double getAlas() {


return alas;
}

public void setAlas(double alas) {


this.alas = alas;
}

public double getTinggi() {


return tinggi;
}

public void setTinggi(double tinggi) {


this.tinggi = tinggi;
}

public double luas() {


return 0.5 * alas * tinggi;
}
}

TestSegiTiga.java
public class TestSegiTiga {

public static void main(String[] args) {


SegiTiga s = new SegiTiga();
s.setAlas(10);
s.setTinggi(20);

System.out.println("Mencari Luas Segi Tiga");


System.out.println("Alas : " + s.getAlas());
System.out.println("Tinggi : " + s.getTinggi());
System.out.println("Luas : " + s.luas());
}
}

Pemrograman Berorientasi Objek 13


Dengan enkapsulasi, kita bisa memilih property dan method apa saja yang boleh diakses, dan
mana yang tidak boleh diakses. Dengan menghalangi kode program lain untuk mengubah
property tertentu, class menjadi lebih terintegrasi, dan menghindari kesalahan ketika seseorang
„mencoba‟ mengubahnya. Programmer yang merancang class bisa menyediakan property dan
method khusus yang memang ditujukan untuk diakses dari luar.

Melanjutkan analogi tentang class laptop, perusahaan pembuat laptop telah menyediakan
„method‟ khusus untuk menghidupkan laptop, yakni dengan cara menekan tombol on. Di dalam
laptop sendiri, banyak „method-method‟ lain yang akan dijalankan ketika kita menyalakan
laptop, contohnya: mengirim sinyal booting ke processor, mengirim data dari processor ke
memory, dan mengirim sinyal listrik ke LED di monitor. Akan tetapi, proses ini adalah method
internal laptop dimana kita tidak perlu memahaminya untuk menghidupkan laptop.

Untuk membatasi hak akses kepada property dan method di dalam sebuah class, Objek Oriented
Programming menyediakan 3 kata kunci, yakni Public, Protected dan Private. Kata kunci ini
diletakkan sebelum nama property atau sebelum nama method. Berikut adalah pembahasannya:

a. Hak akses public, Ketika sebuah property atau method dinyatakan sebagai public,
maka seluruh kode program di luar class bisa mengaksesnya, termasuk class turunan.
b. Hak akses private, Jika sebuah property atau method dinyatakan sebagai
protected, berarti property atau method tersebut tidak bisa diakses dari luar class,
namun bisa diakses oleh class itu sendiri atau turunan class tersebut.
c. Hak akses protected, Selain dari dalam class itu sendiri, property dan method dengan
hak akses protected juga bisa diakses dari class turunan.

Pemrograman Berorientasi Objek 14


Konstruktor

Constructor (bahasa indonesia: konstruktor) adalah method khusus yang akan dijalankan secara
otomatis pada saat sebuah objek dibuat (instansiasi), yakni ketika perintah “new” dijalankan.

Constructor biasa digunakan untuk membuat proses awal dalam mempersiapkan objek, seperti
memberi nilai awal kepada property, memanggil method internal dan beberapa proses lain yang
digunakan untuk „mempersiapkan‟ objek.

Konstruktor mempunyai ciri-ciri sebagai berikut:

- Mempunyai nama yang sama dengan nama class

- Tidak mempunyai return type (seperti void, int, double, String dll).

Contoh:

class Buku {
private String pengarang;
private String judul;

public Buku(String p, String j) {


this.pengarang = p;
this.judul = j;
}
}

Dalam satu buah class dapat memiliki lebih dari satu konstruktor dengan sarat
parameternya tidak boleh ada yang sama. Contoh:

class Buku {
private String pengarang;
private String judul;

public Buku(String p) {
this.pengarang = p;
}

public Buku(String p, String j) {


this.pengarang = p;
this.judul = j;
}
}

Pemrograman Berorientasi Objek 15


Percobaan

Percobaan 1: Melakukan enkapsulasi pada suatu class

Pemrograman Berorientasi Objek 16


Jika enkapsulasi dilakukaan pada class diagram di atas, maa akan berubah menjadi:

Percobaan 2: Melakukan overloading constructor

Dari class diagram di atas dapat diimplementasikan ke dalam program seperti berikut:

public class Mahasiswa {


private int nrp;
private String nama;

public Mahasiswa() {
nrp = 0;
nama = "";
}

public Mahasiswa(int nrp) {


this.nrp = nrp;
}

Pemrograman Berorientasi Objek 17


public Mahasiswa(int nrp, String nama) {
this.nrp = nrp;
this.nama = nama;
}
}

Tugas

Mengimplementasikan UML Class diagram dalam program untuk class Kalender

Dari class diagram di atas, desainlah suatu class yang memenuhi konsep enkapsulasi. Untuk
nilai inisialisasi, gunakan 1-1-2000. Tulislah program berikut untuk pengetesan.

public class TestKalender {

public static String getTime(Kalender kal) {


String tmp;
tmp = kal.getTanggal() + "-" +
kal.getBulan() + "-" +
kal.getTahun();
return tmp;
}

public static void main(String[] args) {


Kalender kal = new Kalender(8);
System.out.println("Waktu awal : " +
getTime(kal)); kal.setTanggal(9);
System.out.println("Satu hari setelah waktu awal : " +
getTime(kal)); kal = new Kalender(6, 2003);
System.out.println("Waktu berubah : " + getTime(kal));
kal = new Kalender(20, 10, 2004);
System.out.println("Waktu berubah : " + getTime(kal));
kal.setTahun(2005);
System.out.println("1 tahun setelah itu : " + getTime(kal));
}
}

Pemrograman Berorientasi Objek 18


Lakukan kompilasi program di atas lalu jalankan. Jika tampilan di layar seperti tampak di
bawah ini, maka program sudah benar. Jika tidak, benahi kembali program anda dan lakukan
hal yang sama seperti di atas.

Pemrograman Berorientasi Objek 19


BAB 3
Inheritance/ Pewarisan

Pokok Bahasan

Pewarisan
Pewarisan Bertingkat

Tujuan Belajar

Dengan praktikum ini mahasiswa diharapkan dapat


Menerapkan konsep pewarisan pada class
Menerapkan konsep pewarisan bertingkat

Pemrograman Berorientasi Objek 20


Dasar Teori

Pewarisan

Inheritance atau Pewarisan/Penurunan adalah konsep pemrograman dimana sebuah class dapat
„menurunkan‟ property dan method yang dimilikinya kepada class lain. Konsep inheritance
digunakan untuk memanfaatkan fitur „code reuse‟ untuk menghindari duplikasi kode program.

Konsep inheritance membuat sebuah struktur atau „hierarchy‟ class dalam kode program. Class
yang akan „diturunkan‟ bisa disebut sebagai class induk (parent class), super class, atau base
class. Sedangkan class yang „menerima penurunan‟ bisa disebut sebagai class anak (child class),
sub class, derived class atauheir class.

Tidak semua property dan method dari class induk akan diturunkan. Property dan method dengan
hak akses private, tidak akan diturunkan kepada class anak. Hanya property dan method dengan
hak akses protected dan public saja yang bisa diakses dari class anak.. Class baru yang mewarisi
sifat-sifat class sebelumnya dinakaman subclass. Sedangkan class yang mewariskan sifat-
sifatnya dinamakan superclass. Class yang baru (subclass) selain memiliki sifat-sifat dari
induknya (superclass) juga dapat memiliki sifat lain yang menunjukan kekhasan dirinya.

Sebagai Contoh perhatikan gambar berikut:

Keterangan:

Pemrograman Berorientasi Objek 21


Pada gambar di atas Class hewan diturunkan pada Mamalia dan unggas. Ini berarti, baik Class
Unggas dan Class Mamalia akan mewarisi apa yang dimiliki Class Hewan yaitu berupa mata dan
lidah serta kemampuan makan, bergerak dan bernafas. Namun Class Mamalia memiliki sifat
khusus rambut dan kemampuan melahirkan. Demikian pula Class Unggas memiliki sifat khusus
selain yang diturunkan dari Class hewan yaitu memiliki sayap dan kemampuan bertelur.
Demikian pula Class kucing dan sapi merupakan subclass dari Mamalia, maka kedua class ini
akan mewarisi apa yang dimiliki class mamalia, namun kucing memiliki kemapuan khusus yaitu
mengeong, begitu halnya class sapi memiliki sifat khusus yang tidak dimiliki class kucing yaitu
kemampuan makan ruput. Class pinguin dan burung merupakan subclass dari unggas.
Sehingga memiliki sifat dan kemampuan dari class unggas, namun class penguin mempuyai
kemampuan khusus menyelam sedangkan class burung memiliki kemapuan yang khusus berupa
kemampuan terbang.

Deklarasi inherientance

Inherientance dapat dideklarasikan dengan menggunakan keyword extends diikuti


dengan nama superclassnya seperti berikut ini:

<modifier> class subClass extends superClass {

[deklarasi atribut]

[deklarasi method]

Contoh program berikut adalah implementasi dari diagram di atas:

Hewan.java
public class Hewan {
public void bergerak() {
System.out.println("Hewan Bergerak...");
}

public void makan() {


System.out.println("Hewan Makan...");
}
}

Unggas.java

Pemrograman Berorientasi Objek 22


public class Unggas extends Hewan{
public void bertelur() {
System.out.println("Unggas bertelur...");
}
}

Mamalia.java
public class Mamalia extends Hewan {
public void melahirkan() {
System.out.println("Mamalia Melahirkan...");
}
}

TestPewarisan.java
public class TestPewarisan {
public static void main(String[] args) {
System.out.println("Mamalia :");

Pemrograman Berorientasi Objek 23


Mamalia m = new Mamalia();
m.bergerak();
m.makan();
m.melahirkan();

System.out.println();
System.out.println("Unggas :");
Unggas u = new Unggas();
u.bergerak();
u.makan();
u.bertelur();
}
}

Perhatikan bahwa Instance dari class Mamalia akan memiliki apa yang dimiliki oleh class
Hewan, selain dia juga mempunyai sifat khusus. Demikian halnya dengan instance dari class
Unggas.

Pemrograman Berorientasi Objek 24


Pewarisan Bertingkat

Class hasil penurunan class lain juga dapat diturunkan lagi pada class berikutnya. Konsep ini
dinamakan pewarisan bertingkat. Contoh program berikut adalah implementasi dari diagram
di atas.

Pinguin.java
public class Pinguin extends Unggas {
public void menyelam() {
System.out.println("Pinguin menyelam dalam Es...");
}
}

Kucing.java
public class Kucing extends Mamalia {
public void mencakar() {
System.out.println("Kucing mencakar dengan kuku tajamnya...");
}
}

Pemrograman Berorientasi Objek 25


TestPewarisanBertingkat.java
public class TestPewarisanBertingkat { public
static void main(String[] args) {
System.out.println("Pinguin :");
Pinguin tux = new Pinguin();
tux.bergerak();
tux.makan();
tux.bertelur();
tux.menyelam();

System.out.println("Kucing :");
Kucing tom = new Kucing();
tom.bergerak();
tom.makan();
tom.melahirkan();
tom.mencakar();
}
}

Pemrograman Berorientasi Objek 26


BAB 4
Polimorfisme/ Banyak
Bentuk

Pokok Bahasan

Polimorfisme
Method Overriding

Tujuan Belajar

Dengan praktikum ini mahasiswa diharapkan dapat


Memahami konsep Polimorfisme
Menerapkan konsep Method Overloading

Pemrograman Berorientasi Objek 27


Dasar Teori
Polimorfisme

Dari segi bahasa, Polimorfisme (bahasa inggris: Polymorphism) berasal dari dua kata bahasa
latin yakni poly dan morph. Poly berarti banyak, dan morph berarti bentuk. Polimorfisme berarti
banyak bentuk (wikipedia).

Di dalam pemrograman objek, polimorfisme adalah konsep dimana terdapat banyak class yang
memiliki signature method yang sama. Implementasi dari method-method tersebut diserahkan
kepada tiap class, akan tetapi cara pemanggilan method harus sama. Agar kita dapat
„memaksakan‟ signature method yang sama pada banyak class, class tersebut harus diturunkan
dari sebuah abstract class atau object interface.. Kita dapat membuat referensi yang merupakan
tipe dari superclass ke sebuah object dari subclass. Tipe objek yang direferensikan nantinya akan
menentukan method mana di dalam hierarki class yang akan digunakan.

Mari kita lihat pada contoh mobil. Masing-masing mobil mempunyai kemampuan melaju,
namun setiap mobil akan melaju dengan caranya dan mekanismenya sendiri. Misal mobil A
melaju mulus dengan kecepatan sekian km/jam. Mobil B dapat melaju ngos-ngosan dengan
kecepatan sekian km/jam. Contoh lainnya adalah pada manusia. Setiap manusia mempunyai
kemampuan makan dan minum. Namun setiap orang akan berbeda bagaimana cara mereka
melakukannya. Agar lebih jelas mengenai konsep Polimorfisme perhatikan pada program di
bawah ini:

Orang.java
public class Orang {
public void makan() {
System.out.println("Orang makan Makanan");
}

public void minum() {


System.out.println("Orang minum Air");
}

public void berlari() {


System.out.println("Orang berlari dengan kedua kaki bergantian cepat");
}

Pemrograman Berorientasi Objek 28


}

OrangA.java
public class OrangA extends Orang {
@Override
public void makan() {
System.out.println("Makan terus sampai kenyang");
}

@Override
public void minum() {
System.out.println("Minum teh manis");
}

@Override
public void berlari() {
System.out.println("Berlari dengan kecepatan 140 Km/jam");
}
}

OrangB.java
public class OrangB extends Orang {
@Override
public void makan() {
System.out.println("Makanan yang Pedas dan Gurih");
}

@Override
public void minum() {
System.out.println("Minum Kopi Susu tanpa S");
}

@Override
public void berlari() {
System.out.println("Berlari dengan kecepatan 0.07 km/jam");
}
}

TestPolimorfisme.java
public class TestPolimorfisme {
public static void main(String[] args) {
OrangA gat = new OrangA();
OrangB edo = new OrangB();

System.out.println("Gatot :");
gat.makan();
gat.minum();
gat.berlari();

System.out.println("Edo :");
edo.makan();

Pemrograman Berorientasi Objek 29


edo.minum();
edo.berlari();
}
}

Pemrograman Berorientasi Objek 30


Method Overriding

Method Overriding adalah pendefinisian method dalam subclass dengan nama dan jumlah
parameter yang sama dengan dengan method yang ada dalam superclass-nya. Hal ini akan
menyebabkan method yang ada dalam subclass menutupi method yang ada dalam superclass.
Aturan dari method overriding pada Java :

1. Parameter yang terdapat pada method overriding di subclass harus sama dengan
parameter yang terdapat pada parent class.
2. Aturan hak akses, hak akses method overriding di subclass tidak boleh lebih ketat di
bandingkan dengan hak akses method pada parent class.

Pada program di atas (orang.java, oranA.java dan orangB.java), Class OrangA yang merupakan
turunan dari class Orang mendefinisikan ulang method makan, minum dan berlari padahal
method-method ini sudah ada dalam superclass Orang. Hal ini akan menyebabkan makan,
minum dan lari yang merupakan warisan dari class Orang akan diganti dengan yang ada dalam
class OrangA. Berikut ini adalah contoh lain penggunaan Method overriding.

Motor.java
public class Motor {
@Override
public String toString() {
return "Kendaraan Motor";
}
}

Mobil.java
public class Mobil {
@Override
public String toString() {
return "Kendaraan Mobil";
}
}

Orang.java
public class Orang {
public void getKendaraan() {
}
}

OrangC.java
public class OrangC {

Pemrograman Berorientasi Objek 31


public void getKendaraan() {
Motor kendaraan = new Motor();
System.out.println(kendaraan.toString());
}
}

OrangD.java
public class OrangD {
public void getKendaraan() {
Mobil kendaraan = new Mobil();
System.out.println(kendaraan.toString());
}
}
TestPolimorfisme2.java
public class TestPolimorfisme2 {
public static void main(String[] args) {
OrangD aku = new OrangD();
OrangC dia = new OrangC();

System.out.println("Aku :");
aku.getKendaraan();

System.out.println("Dia :");
dia.getKendaraan();
}
}

Pemrograman Berorientasi Objek 32

Anda mungkin juga menyukai