SlideShare a Scribd company logo
1 of 33
Download to read offline
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

More Related Content

What's hot

Laporan Praktikum Basis Data Modul I-Membangun Database SQL Pada MYSQL
Laporan Praktikum Basis Data Modul I-Membangun Database SQL Pada MYSQLLaporan Praktikum Basis Data Modul I-Membangun Database SQL Pada MYSQL
Laporan Praktikum Basis Data Modul I-Membangun Database SQL Pada MYSQLShofura Kamal
 
Pertemuan 5 list view
Pertemuan 5 list viewPertemuan 5 list view
Pertemuan 5 list viewheriakj
 
Tabel kode ascii lengkap
Tabel kode ascii lengkapTabel kode ascii lengkap
Tabel kode ascii lengkapDonna Puspita
 
MudafiqRiyan - MVC-DAO Java Desktop
MudafiqRiyan - MVC-DAO Java DesktopMudafiqRiyan - MVC-DAO Java Desktop
MudafiqRiyan - MVC-DAO Java DesktopMudafiq R. Pratama
 
Analisa Website Traveloka - Makalah IMK
Analisa Website Traveloka - Makalah IMKAnalisa Website Traveloka - Makalah IMK
Analisa Website Traveloka - Makalah IMKMiftahul Muttaqin
 
Algoritma untuk mengecek bilangan di antara 2 bilangan masukan
Algoritma untuk mengecek bilangan di antara 2 bilangan masukanAlgoritma untuk mengecek bilangan di antara 2 bilangan masukan
Algoritma untuk mengecek bilangan di antara 2 bilangan masukanputraindo
 
Basis Data - Pengenalan DML dan DDL
Basis Data - Pengenalan DML dan DDLBasis Data - Pengenalan DML dan DDL
Basis Data - Pengenalan DML dan DDLWalid Umar
 
Perancangan dan Analisa Sistem
Perancangan dan Analisa SistemPerancangan dan Analisa Sistem
Perancangan dan Analisa Sistemguestb7aaaf1e
 
Membuat Aplikasi Chatting Client Server Dengan Pemrograman Java
Membuat Aplikasi Chatting Client Server Dengan Pemrograman JavaMembuat Aplikasi Chatting Client Server Dengan Pemrograman Java
Membuat Aplikasi Chatting Client Server Dengan Pemrograman Javayoyomay93
 
[PBO] Pertemuan 1 (praktik) - Pengenalan java
[PBO] Pertemuan 1 (praktik) - Pengenalan java[PBO] Pertemuan 1 (praktik) - Pengenalan java
[PBO] Pertemuan 1 (praktik) - Pengenalan javarizki adam kurniawan
 
Logika matematika pertemuan 2 (inferensi)
Logika matematika pertemuan 2 (inferensi)Logika matematika pertemuan 2 (inferensi)
Logika matematika pertemuan 2 (inferensi)Meycelino A. T
 
Program transpose matriks
Program transpose matriksProgram transpose matriks
Program transpose matriksSimon Patabang
 
pertemuan 7 basis data relational.ppt
pertemuan 7 basis data relational.pptpertemuan 7 basis data relational.ppt
pertemuan 7 basis data relational.pptbagjanugraha15
 
Algoritma pencarian lintasan jalur terpendek
Algoritma pencarian lintasan jalur terpendekAlgoritma pencarian lintasan jalur terpendek
Algoritma pencarian lintasan jalur terpendekLaili Wahyunita
 

What's hot (20)

Laporan Praktikum Basis Data Modul I-Membangun Database SQL Pada MYSQL
Laporan Praktikum Basis Data Modul I-Membangun Database SQL Pada MYSQLLaporan Praktikum Basis Data Modul I-Membangun Database SQL Pada MYSQL
Laporan Praktikum Basis Data Modul I-Membangun Database SQL Pada MYSQL
 
Konsep dasar UI/UX
Konsep dasar UI/UXKonsep dasar UI/UX
Konsep dasar UI/UX
 
Tugas imk hta
Tugas imk htaTugas imk hta
Tugas imk hta
 
Pertemuan 5 list view
Pertemuan 5 list viewPertemuan 5 list view
Pertemuan 5 list view
 
Tabel kode ascii lengkap
Tabel kode ascii lengkapTabel kode ascii lengkap
Tabel kode ascii lengkap
 
Program Penjualan Supermarket
Program Penjualan SupermarketProgram Penjualan Supermarket
Program Penjualan Supermarket
 
Laporan tugas struktur data
Laporan tugas struktur dataLaporan tugas struktur data
Laporan tugas struktur data
 
MudafiqRiyan - MVC-DAO Java Desktop
MudafiqRiyan - MVC-DAO Java DesktopMudafiqRiyan - MVC-DAO Java Desktop
MudafiqRiyan - MVC-DAO Java Desktop
 
Analisa Website Traveloka - Makalah IMK
Analisa Website Traveloka - Makalah IMKAnalisa Website Traveloka - Makalah IMK
Analisa Website Traveloka - Makalah IMK
 
Materi CSS Dasar
Materi CSS DasarMateri CSS Dasar
Materi CSS Dasar
 
Algoritma untuk mengecek bilangan di antara 2 bilangan masukan
Algoritma untuk mengecek bilangan di antara 2 bilangan masukanAlgoritma untuk mengecek bilangan di antara 2 bilangan masukan
Algoritma untuk mengecek bilangan di antara 2 bilangan masukan
 
Basis Data - Pengenalan DML dan DDL
Basis Data - Pengenalan DML dan DDLBasis Data - Pengenalan DML dan DDL
Basis Data - Pengenalan DML dan DDL
 
Perancangan dan Analisa Sistem
Perancangan dan Analisa SistemPerancangan dan Analisa Sistem
Perancangan dan Analisa Sistem
 
Membuat Aplikasi Chatting Client Server Dengan Pemrograman Java
Membuat Aplikasi Chatting Client Server Dengan Pemrograman JavaMembuat Aplikasi Chatting Client Server Dengan Pemrograman Java
Membuat Aplikasi Chatting Client Server Dengan Pemrograman Java
 
[PBO] Pertemuan 1 (praktik) - Pengenalan java
[PBO] Pertemuan 1 (praktik) - Pengenalan java[PBO] Pertemuan 1 (praktik) - Pengenalan java
[PBO] Pertemuan 1 (praktik) - Pengenalan java
 
Logika matematika pertemuan 2 (inferensi)
Logika matematika pertemuan 2 (inferensi)Logika matematika pertemuan 2 (inferensi)
Logika matematika pertemuan 2 (inferensi)
 
Program transpose matriks
Program transpose matriksProgram transpose matriks
Program transpose matriks
 
pertemuan 7 basis data relational.ppt
pertemuan 7 basis data relational.pptpertemuan 7 basis data relational.ppt
pertemuan 7 basis data relational.ppt
 
Tipe data abstract
Tipe data abstractTipe data abstract
Tipe data abstract
 
Algoritma pencarian lintasan jalur terpendek
Algoritma pencarian lintasan jalur terpendekAlgoritma pencarian lintasan jalur terpendek
Algoritma pencarian lintasan jalur terpendek
 

Similar to OBJEK_CLASS

Java (Netbeans) - Class, Constructor, Object (Object Oriented Programming)
Java (Netbeans) - Class, Constructor, Object (Object Oriented Programming)Java (Netbeans) - Class, Constructor, Object (Object Oriented Programming)
Java (Netbeans) - Class, Constructor, Object (Object Oriented Programming)Melina Krisnawati
 
Laporan PBO pratikum 2
Laporan PBO pratikum 2Laporan PBO pratikum 2
Laporan PBO pratikum 2rahmi wahyuni
 
Jeni Intro2 Bab01 Review Konsep Dasar Dalam Java
Jeni Intro2 Bab01 Review Konsep Dasar Dalam JavaJeni Intro2 Bab01 Review Konsep Dasar Dalam Java
Jeni Intro2 Bab01 Review Konsep Dasar Dalam JavaIndividual Consultants
 
Pengenalan Java
Pengenalan JavaPengenalan Java
Pengenalan JavaLaili Aidi
 
Kelas dan objek
Kelas  dan objekKelas  dan objek
Kelas dan objekroy naldo
 
JENI-Intro1-Bab11-Pewarisan, Polimorfisme, dan interface.pdf
JENI-Intro1-Bab11-Pewarisan, Polimorfisme, dan interface.pdfJENI-Intro1-Bab11-Pewarisan, Polimorfisme, dan interface.pdf
JENI-Intro1-Bab11-Pewarisan, Polimorfisme, dan interface.pdfJurnal IT
 
JENI-Intro1-Bab09-Bekerja Dengan Java Class Library.pdf
JENI-Intro1-Bab09-Bekerja Dengan Java Class Library.pdfJENI-Intro1-Bab09-Bekerja Dengan Java Class Library.pdf
JENI-Intro1-Bab09-Bekerja Dengan Java Class Library.pdfJurnal IT
 
Modul pratikum pbo - ENCAPSULATION
Modul pratikum pbo - ENCAPSULATIONModul pratikum pbo - ENCAPSULATION
Modul pratikum pbo - ENCAPSULATIONrahmantoyuri
 
Pbo inheritance, polymorphism, dan inte
Pbo inheritance, polymorphism, dan intePbo inheritance, polymorphism, dan inte
Pbo inheritance, polymorphism, dan inteSmkn-2 Pekanbaru
 
F 10011543 fathorazi nur fajri
F 10011543 fathorazi nur fajriF 10011543 fathorazi nur fajri
F 10011543 fathorazi nur fajriSyarif Fudin
 
JENI-Intro1-Bab10-Membuat class sendiri.pdf
JENI-Intro1-Bab10-Membuat class sendiri.pdfJENI-Intro1-Bab10-Membuat class sendiri.pdf
JENI-Intro1-Bab10-Membuat class sendiri.pdfJurnal IT
 
Modul PBO Bab-07 - Enkapsulasi (Encapsulation)
Modul PBO Bab-07 - Enkapsulasi (Encapsulation)Modul PBO Bab-07 - Enkapsulasi (Encapsulation)
Modul PBO Bab-07 - Enkapsulasi (Encapsulation)Rakhmat Dedi Gunawan
 
Jeni Web Programming Bab 15 J2 Ee Design Pattern
Jeni Web Programming Bab 15 J2 Ee Design PatternJeni Web Programming Bab 15 J2 Ee Design Pattern
Jeni Web Programming Bab 15 J2 Ee Design PatternIndividual Consultants
 
Laporan Praktikum Pertemuan 1, PBO
Laporan Praktikum Pertemuan 1, PBOLaporan Praktikum Pertemuan 1, PBO
Laporan Praktikum Pertemuan 1, PBOsetyadi_s
 

Similar to OBJEK_CLASS (20)

Modul Object Oriented Programming
Modul Object Oriented ProgrammingModul Object Oriented Programming
Modul Object Oriented Programming
 
Java (Netbeans) - Class, Constructor, Object (Object Oriented Programming)
Java (Netbeans) - Class, Constructor, Object (Object Oriented Programming)Java (Netbeans) - Class, Constructor, Object (Object Oriented Programming)
Java (Netbeans) - Class, Constructor, Object (Object Oriented Programming)
 
Laporan PBO pratikum 2
Laporan PBO pratikum 2Laporan PBO pratikum 2
Laporan PBO pratikum 2
 
9150 8 interface
9150 8  interface9150 8  interface
9150 8 interface
 
Jeni Intro2 Bab01 Review Konsep Dasar Dalam Java
Jeni Intro2 Bab01 Review Konsep Dasar Dalam JavaJeni Intro2 Bab01 Review Konsep Dasar Dalam Java
Jeni Intro2 Bab01 Review Konsep Dasar Dalam Java
 
Pengenalan Java
Pengenalan JavaPengenalan Java
Pengenalan Java
 
Kelas dan objek
Kelas  dan objekKelas  dan objek
Kelas dan objek
 
Materi delphi
Materi delphiMateri delphi
Materi delphi
 
JENI-Intro1-Bab11-Pewarisan, Polimorfisme, dan interface.pdf
JENI-Intro1-Bab11-Pewarisan, Polimorfisme, dan interface.pdfJENI-Intro1-Bab11-Pewarisan, Polimorfisme, dan interface.pdf
JENI-Intro1-Bab11-Pewarisan, Polimorfisme, dan interface.pdf
 
JENI-Intro1-Bab09-Bekerja Dengan Java Class Library.pdf
JENI-Intro1-Bab09-Bekerja Dengan Java Class Library.pdfJENI-Intro1-Bab09-Bekerja Dengan Java Class Library.pdf
JENI-Intro1-Bab09-Bekerja Dengan Java Class Library.pdf
 
Modul pratikum pbo - ENCAPSULATION
Modul pratikum pbo - ENCAPSULATIONModul pratikum pbo - ENCAPSULATION
Modul pratikum pbo - ENCAPSULATION
 
Pbo inheritance, polymorphism, dan inte
Pbo inheritance, polymorphism, dan intePbo inheritance, polymorphism, dan inte
Pbo inheritance, polymorphism, dan inte
 
F 10011543 fathorazi nur fajri
F 10011543 fathorazi nur fajriF 10011543 fathorazi nur fajri
F 10011543 fathorazi nur fajri
 
JENI-Intro1-Bab10-Membuat class sendiri.pdf
JENI-Intro1-Bab10-Membuat class sendiri.pdfJENI-Intro1-Bab10-Membuat class sendiri.pdf
JENI-Intro1-Bab10-Membuat class sendiri.pdf
 
5475 1 review konsep pbo
5475 1 review konsep pbo5475 1 review konsep pbo
5475 1 review konsep pbo
 
Modul PBO Bab-07 - Enkapsulasi (Encapsulation)
Modul PBO Bab-07 - Enkapsulasi (Encapsulation)Modul PBO Bab-07 - Enkapsulasi (Encapsulation)
Modul PBO Bab-07 - Enkapsulasi (Encapsulation)
 
Modul pbo baru
Modul pbo baruModul pbo baru
Modul pbo baru
 
Jeni Web Programming Bab 15 J2 Ee Design Pattern
Jeni Web Programming Bab 15 J2 Ee Design PatternJeni Web Programming Bab 15 J2 Ee Design Pattern
Jeni Web Programming Bab 15 J2 Ee Design Pattern
 
Laporan Praktikum Pertemuan 1, PBO
Laporan Praktikum Pertemuan 1, PBOLaporan Praktikum Pertemuan 1, PBO
Laporan Praktikum Pertemuan 1, PBO
 
Job 11 sebenarnya
Job 11 sebenarnyaJob 11 sebenarnya
Job 11 sebenarnya
 

More from Wahyu Widodo

Pemrograman Web Dinamis
Pemrograman Web DinamisPemrograman Web Dinamis
Pemrograman Web DinamisWahyu Widodo
 
Praktikum Algoritma Pemrograman
Praktikum Algoritma PemrogramanPraktikum Algoritma Pemrograman
Praktikum Algoritma PemrogramanWahyu Widodo
 
Modul Praktikum Sistem Basis Data
Modul Praktikum Sistem Basis Data Modul Praktikum Sistem Basis Data
Modul Praktikum Sistem Basis Data Wahyu Widodo
 
Modul Pemrograman Visual
Modul Pemrograman VisualModul Pemrograman Visual
Modul Pemrograman VisualWahyu Widodo
 
Pertemuan1 Konsep Web Desain
Pertemuan1   Konsep Web DesainPertemuan1   Konsep Web Desain
Pertemuan1 Konsep Web DesainWahyu Widodo
 

More from Wahyu Widodo (8)

Web Statis
Web StatisWeb Statis
Web Statis
 
Web Interaktif
Web InteraktifWeb Interaktif
Web Interaktif
 
Web Service
Web ServiceWeb Service
Web Service
 
Pemrograman Web Dinamis
Pemrograman Web DinamisPemrograman Web Dinamis
Pemrograman Web Dinamis
 
Praktikum Algoritma Pemrograman
Praktikum Algoritma PemrogramanPraktikum Algoritma Pemrograman
Praktikum Algoritma Pemrograman
 
Modul Praktikum Sistem Basis Data
Modul Praktikum Sistem Basis Data Modul Praktikum Sistem Basis Data
Modul Praktikum Sistem Basis Data
 
Modul Pemrograman Visual
Modul Pemrograman VisualModul Pemrograman Visual
Modul Pemrograman Visual
 
Pertemuan1 Konsep Web Desain
Pertemuan1   Konsep Web DesainPertemuan1   Konsep Web Desain
Pertemuan1 Konsep Web Desain
 

Recently uploaded

Model Manajemen Strategi Public Relations
Model Manajemen Strategi Public RelationsModel Manajemen Strategi Public Relations
Model Manajemen Strategi Public RelationsAdePutraTunggali
 
Modul Ajar Bahasa Indonesia - Menulis Puisi Spontanitas - Fase D.docx
Modul Ajar Bahasa Indonesia - Menulis Puisi Spontanitas - Fase D.docxModul Ajar Bahasa Indonesia - Menulis Puisi Spontanitas - Fase D.docx
Modul Ajar Bahasa Indonesia - Menulis Puisi Spontanitas - Fase D.docxherisriwahyuni
 
DESAIN MEDIA PEMBELAJARAN BAHASA INDONESIA BERBASIS DIGITAL.pptx
DESAIN MEDIA PEMBELAJARAN BAHASA INDONESIA BERBASIS DIGITAL.pptxDESAIN MEDIA PEMBELAJARAN BAHASA INDONESIA BERBASIS DIGITAL.pptx
DESAIN MEDIA PEMBELAJARAN BAHASA INDONESIA BERBASIS DIGITAL.pptxFuzaAnggriana
 
Materi Strategi Perubahan dibuat oleh kelompok 5
Materi Strategi Perubahan dibuat oleh kelompok 5Materi Strategi Perubahan dibuat oleh kelompok 5
Materi Strategi Perubahan dibuat oleh kelompok 5KIKI TRISNA MUKTI
 
Kelompok 1 Bimbingan Konseling Islami (Asas-Asas).pdf
Kelompok 1 Bimbingan Konseling Islami (Asas-Asas).pdfKelompok 1 Bimbingan Konseling Islami (Asas-Asas).pdf
Kelompok 1 Bimbingan Konseling Islami (Asas-Asas).pdfmaulanayazid
 
Materi Pertemuan Materi Pertemuan 7.pptx
Materi Pertemuan Materi Pertemuan 7.pptxMateri Pertemuan Materi Pertemuan 7.pptx
Materi Pertemuan Materi Pertemuan 7.pptxRezaWahyuni6
 
Topik 1 - Pengenalan Penghayatan Etika dan Peradaban Acuan Malaysia.pptx
Topik 1 - Pengenalan Penghayatan Etika dan Peradaban Acuan Malaysia.pptxTopik 1 - Pengenalan Penghayatan Etika dan Peradaban Acuan Malaysia.pptx
Topik 1 - Pengenalan Penghayatan Etika dan Peradaban Acuan Malaysia.pptxsyafnasir
 
Karakteristik Negara Brazil, Geografi Regional Dunia
Karakteristik Negara Brazil, Geografi Regional DuniaKarakteristik Negara Brazil, Geografi Regional Dunia
Karakteristik Negara Brazil, Geografi Regional DuniaNadia Putri Ayu
 
aku-dan-kebutuhanku-Kelas 4 SD Mapel IPAS
aku-dan-kebutuhanku-Kelas 4 SD Mapel IPASaku-dan-kebutuhanku-Kelas 4 SD Mapel IPAS
aku-dan-kebutuhanku-Kelas 4 SD Mapel IPASreskosatrio1
 
HARMONI DALAM EKOSISTEM KELAS V SEKOLAH DASAR.pdf
HARMONI DALAM EKOSISTEM KELAS V SEKOLAH DASAR.pdfHARMONI DALAM EKOSISTEM KELAS V SEKOLAH DASAR.pdf
HARMONI DALAM EKOSISTEM KELAS V SEKOLAH DASAR.pdfkustiyantidew94
 
PPT Integrasi Islam & Ilmu Pengetahuan.pptx
PPT Integrasi Islam & Ilmu Pengetahuan.pptxPPT Integrasi Islam & Ilmu Pengetahuan.pptx
PPT Integrasi Islam & Ilmu Pengetahuan.pptxnerow98
 
Kelompok 2 Karakteristik Negara Nigeria.pdf
Kelompok 2 Karakteristik Negara Nigeria.pdfKelompok 2 Karakteristik Negara Nigeria.pdf
Kelompok 2 Karakteristik Negara Nigeria.pdftsaniasalftn18
 
implementasu Permendikbudristek no 53 2023
implementasu Permendikbudristek no 53 2023implementasu Permendikbudristek no 53 2023
implementasu Permendikbudristek no 53 2023DodiSetiawan46
 
Kelompok 4 : Karakteristik Negara Inggris
Kelompok 4 : Karakteristik Negara InggrisKelompok 4 : Karakteristik Negara Inggris
Kelompok 4 : Karakteristik Negara InggrisNazla aulia
 
PELAKSANAAN + Link2 Materi TRAINING "Effective SUPERVISORY & LEADERSHIP Sk...
PELAKSANAAN  + Link2 Materi TRAINING "Effective  SUPERVISORY &  LEADERSHIP Sk...PELAKSANAAN  + Link2 Materi TRAINING "Effective  SUPERVISORY &  LEADERSHIP Sk...
PELAKSANAAN + Link2 Materi TRAINING "Effective SUPERVISORY & LEADERSHIP Sk...Kanaidi ken
 
Kelompok 1_Karakteristik negara jepang.pdf
Kelompok 1_Karakteristik negara jepang.pdfKelompok 1_Karakteristik negara jepang.pdf
Kelompok 1_Karakteristik negara jepang.pdfCloverash1
 
Petunjuk Teknis Aplikasi Pelaksanaan OSNK 2024
Petunjuk Teknis Aplikasi Pelaksanaan OSNK 2024Petunjuk Teknis Aplikasi Pelaksanaan OSNK 2024
Petunjuk Teknis Aplikasi Pelaksanaan OSNK 2024budimoko2
 
Modul 1.2.a.8 Koneksi antar materi 1.2.pdf
Modul 1.2.a.8 Koneksi antar materi 1.2.pdfModul 1.2.a.8 Koneksi antar materi 1.2.pdf
Modul 1.2.a.8 Koneksi antar materi 1.2.pdfSitiJulaeha820399
 
Ppt tentang perkembangan Moral Pada Anak
Ppt tentang perkembangan Moral Pada AnakPpt tentang perkembangan Moral Pada Anak
Ppt tentang perkembangan Moral Pada Anakbekamalayniasinta
 
Materi Pertemuan 6 Materi Pertemuan 6.pptx
Materi Pertemuan 6 Materi Pertemuan 6.pptxMateri Pertemuan 6 Materi Pertemuan 6.pptx
Materi Pertemuan 6 Materi Pertemuan 6.pptxRezaWahyuni6
 

Recently uploaded (20)

Model Manajemen Strategi Public Relations
Model Manajemen Strategi Public RelationsModel Manajemen Strategi Public Relations
Model Manajemen Strategi Public Relations
 
Modul Ajar Bahasa Indonesia - Menulis Puisi Spontanitas - Fase D.docx
Modul Ajar Bahasa Indonesia - Menulis Puisi Spontanitas - Fase D.docxModul Ajar Bahasa Indonesia - Menulis Puisi Spontanitas - Fase D.docx
Modul Ajar Bahasa Indonesia - Menulis Puisi Spontanitas - Fase D.docx
 
DESAIN MEDIA PEMBELAJARAN BAHASA INDONESIA BERBASIS DIGITAL.pptx
DESAIN MEDIA PEMBELAJARAN BAHASA INDONESIA BERBASIS DIGITAL.pptxDESAIN MEDIA PEMBELAJARAN BAHASA INDONESIA BERBASIS DIGITAL.pptx
DESAIN MEDIA PEMBELAJARAN BAHASA INDONESIA BERBASIS DIGITAL.pptx
 
Materi Strategi Perubahan dibuat oleh kelompok 5
Materi Strategi Perubahan dibuat oleh kelompok 5Materi Strategi Perubahan dibuat oleh kelompok 5
Materi Strategi Perubahan dibuat oleh kelompok 5
 
Kelompok 1 Bimbingan Konseling Islami (Asas-Asas).pdf
Kelompok 1 Bimbingan Konseling Islami (Asas-Asas).pdfKelompok 1 Bimbingan Konseling Islami (Asas-Asas).pdf
Kelompok 1 Bimbingan Konseling Islami (Asas-Asas).pdf
 
Materi Pertemuan Materi Pertemuan 7.pptx
Materi Pertemuan Materi Pertemuan 7.pptxMateri Pertemuan Materi Pertemuan 7.pptx
Materi Pertemuan Materi Pertemuan 7.pptx
 
Topik 1 - Pengenalan Penghayatan Etika dan Peradaban Acuan Malaysia.pptx
Topik 1 - Pengenalan Penghayatan Etika dan Peradaban Acuan Malaysia.pptxTopik 1 - Pengenalan Penghayatan Etika dan Peradaban Acuan Malaysia.pptx
Topik 1 - Pengenalan Penghayatan Etika dan Peradaban Acuan Malaysia.pptx
 
Karakteristik Negara Brazil, Geografi Regional Dunia
Karakteristik Negara Brazil, Geografi Regional DuniaKarakteristik Negara Brazil, Geografi Regional Dunia
Karakteristik Negara Brazil, Geografi Regional Dunia
 
aku-dan-kebutuhanku-Kelas 4 SD Mapel IPAS
aku-dan-kebutuhanku-Kelas 4 SD Mapel IPASaku-dan-kebutuhanku-Kelas 4 SD Mapel IPAS
aku-dan-kebutuhanku-Kelas 4 SD Mapel IPAS
 
HARMONI DALAM EKOSISTEM KELAS V SEKOLAH DASAR.pdf
HARMONI DALAM EKOSISTEM KELAS V SEKOLAH DASAR.pdfHARMONI DALAM EKOSISTEM KELAS V SEKOLAH DASAR.pdf
HARMONI DALAM EKOSISTEM KELAS V SEKOLAH DASAR.pdf
 
PPT Integrasi Islam & Ilmu Pengetahuan.pptx
PPT Integrasi Islam & Ilmu Pengetahuan.pptxPPT Integrasi Islam & Ilmu Pengetahuan.pptx
PPT Integrasi Islam & Ilmu Pengetahuan.pptx
 
Kelompok 2 Karakteristik Negara Nigeria.pdf
Kelompok 2 Karakteristik Negara Nigeria.pdfKelompok 2 Karakteristik Negara Nigeria.pdf
Kelompok 2 Karakteristik Negara Nigeria.pdf
 
implementasu Permendikbudristek no 53 2023
implementasu Permendikbudristek no 53 2023implementasu Permendikbudristek no 53 2023
implementasu Permendikbudristek no 53 2023
 
Kelompok 4 : Karakteristik Negara Inggris
Kelompok 4 : Karakteristik Negara InggrisKelompok 4 : Karakteristik Negara Inggris
Kelompok 4 : Karakteristik Negara Inggris
 
PELAKSANAAN + Link2 Materi TRAINING "Effective SUPERVISORY & LEADERSHIP Sk...
PELAKSANAAN  + Link2 Materi TRAINING "Effective  SUPERVISORY &  LEADERSHIP Sk...PELAKSANAAN  + Link2 Materi TRAINING "Effective  SUPERVISORY &  LEADERSHIP Sk...
PELAKSANAAN + Link2 Materi TRAINING "Effective SUPERVISORY & LEADERSHIP Sk...
 
Kelompok 1_Karakteristik negara jepang.pdf
Kelompok 1_Karakteristik negara jepang.pdfKelompok 1_Karakteristik negara jepang.pdf
Kelompok 1_Karakteristik negara jepang.pdf
 
Petunjuk Teknis Aplikasi Pelaksanaan OSNK 2024
Petunjuk Teknis Aplikasi Pelaksanaan OSNK 2024Petunjuk Teknis Aplikasi Pelaksanaan OSNK 2024
Petunjuk Teknis Aplikasi Pelaksanaan OSNK 2024
 
Modul 1.2.a.8 Koneksi antar materi 1.2.pdf
Modul 1.2.a.8 Koneksi antar materi 1.2.pdfModul 1.2.a.8 Koneksi antar materi 1.2.pdf
Modul 1.2.a.8 Koneksi antar materi 1.2.pdf
 
Ppt tentang perkembangan Moral Pada Anak
Ppt tentang perkembangan Moral Pada AnakPpt tentang perkembangan Moral Pada Anak
Ppt tentang perkembangan Moral Pada Anak
 
Materi Pertemuan 6 Materi Pertemuan 6.pptx
Materi Pertemuan 6 Materi Pertemuan 6.pptxMateri Pertemuan 6 Materi Pertemuan 6.pptx
Materi Pertemuan 6 Materi Pertemuan 6.pptx
 

OBJEK_CLASS

  • 1. PEMROGRAMAN BERORIENTASI OBJEK SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER EL RAHMA YOGYAKARTA Pemrograman Berorientasi Objek 1
  • 2. 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
  • 3. 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
  • 4. 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
  • 5. 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
  • 6. 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
  • 7. 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
  • 8. 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
  • 9. 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
  • 10. 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
  • 11. 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
  • 12. 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
  • 13. } 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
  • 14. 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
  • 15. 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
  • 16. Percobaan Percobaan 1: Melakukan enkapsulasi pada suatu class Pemrograman Berorientasi Objek 16
  • 17. 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
  • 18. 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
  • 19. 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
  • 20. 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
  • 21. 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
  • 22. 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
  • 23.
  • 24. 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
  • 25. 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
  • 26. 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
  • 27. 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
  • 28. 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
  • 29. 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
  • 30. } 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
  • 32. 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
  • 33. 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