SlideShare a Scribd company logo
Modul PBO – Teknokrat
52
POLIMORFISME (POLYMORPISHM)
Tujuan
Praktikan dapat memahami dan menjelaskan konsep polimorfisme dalam
perograman serta dapat mengimplementasikan ke dalam pemrograman Java.
POLIMORFISME
Polimorfisme (polymorpishm) bearti banyak bentuk (bahasa Yunani). Dalam pemrograman
berorientasi obyek, digunakan untuk memerintah obyek agar melakukan aksi atau tindakan yang
mungkin secara prinsip sama namun secara proses berbeda.
Dalam konsep yang lebih umum sering kali polymorphism disebut dalam istilah satu interface
banyak aksi. Contoh yang konkrit dalam dunia nyata yaitu mobil. Mobil yang ada dipasaran terdiri
atas berbagai tipe dan berbagai merk, namun semuanya memiliki interface kemudi yang sama,
seperti: stir, tongkat transmisi, pedal gas dan rem. Jika seseorang dapat mengemudikan satu jenis
mobil saja dari satu merk tertentu, maka orang itu akan dapat mengemudikan hamper semua jenis
mobil yang ada, karena semua mobil tersebut menggunakan interface yang sama.
Harus diperhatikan disini bahwa interface yang sama tidak berarti cara kerjanya juga sama. Misal
pedal gas, jika ditekan maka kecepatan mobil akan meningkat, tapi bagaiman proses peningkatan
kecepatan ini dapat berbeda-beda untuk setiap jenis mobil.Dengan menggunakan OOP maka dalam
melakukan pemecahan suatu masalah kita tidak melihat bagaimana cara menyelesaikan suatu
masalah tersebut (terstruktur) tetapi obyekobyek apa yang dapat melakukan pemecahan masalah
tersebut.
VIRTUAL METHOD INVOCATION (VMI)
Virtual method invocation (VMI) merupakan suatu hal yang sangat penting dalam konsep
polimorfisme. Syarat terjadinya VMI adalah sebelumnya sudah terjadi polymorphism. Pada saat
obyek yang sudah dibuat tersebut memanggil overridden method pada parent class, kompiler Java
akan melakukan invocation (pemanggilan) terhadap overriding method pada subclass, dimana yang
seharusnya dipanggil adalah overridden. Berikut adalah contoh terjadinya VMI:
Program 6-1
// Test.java
class Parent {
int x = 5;
public void info() {
System.out.println("Ini kelas Parent");
}
}
MODUL
6
Modul PBO – Teknokrat
53
class Child extends Parent {
int x = 10;
public void info() {
System.out.println("Ini kelas Child");
}
}
public class Tes {
public static void main(String [] args) {
Parent tes = new Child();
System.out.println("Nilai x = " + tes.x);
tes.info();
}
}
Hasil Output
Nilai x = 5
Ini kelas Child
Berdasarkan program di atas, yang terjadi adalah:
 Obyek tes mempunyai behavior yang sesuai dengan runtime type bukan compile type
 Ketika compile time tes adalah Parent
 Ketika runtime tes adalah Child
 Jadi:
o tes hanya bisa mengakses variabel milik Parent
o tes hanya bisa mengakses method milik Child
Pada pembentukan
Parent tes = new Child();
Pertama kali akan menjalankan konstruktor Child, ketika bertemu super() maka akan menjalankan
konstruktor Parent (super class), setelah semua statement dieksekusi baru kemudian menjalankan
konstruktor Child (subclass).
POLYMORPHIC ARGUMENTS
Polymorphic arguments adalah tipe data suatu argumen pada suatu method yang bisa menerima
suatu nilai bertipe subclass-nya. Polymorphic arguments diperlukan, bertujuan untuk
mengefisiensikan pembuatan program. Misalnya suatu kelas memiliki banyak subclass, maka perlu
didefinisikan semua method yang menangani behaviour dari masing-masing subclass. Dengan
adanya polymorphic arguments cukup mendefinisikan satu method saja yang bisa digunakan untuk
menangani behaiour semua kelas. Berikut adalah contoh dari polymorphic arguments:
Program 6-
2
// food.java
public class food {
void eat() { System.out.println("this food is great"); }
}
Modul PBO – Teknokrat
54
// tuna.java
public class tuna extends food {
void eat() { System.out.println("this tuna is great"); }
}
// potpie.java
public class potpie extends food {
void eat() { System.out.println("this potpie is great"); }
}
// apples.java
public class apples {
public static void main(String [] args) {
patty bucky = new patty();
food fo = new food();
food po = new potpie();
// penerapan polymorphic argument
bucky.digest(fo);
bucky.digest(po);
}
}
Hasil Output
this food is great
this potpie is great
OPERATOR INSTANCEOF
Pernyataan instanceof sangat berguna untuk mengetahui tipe asal dari suatu polymorphic
arguments. Untuk lebih jelas, berikut kita modifikasi contoh program sebelumnya:
Program 6-
3
// food.java
public class food {
void eat() {
System.out.println("this food is great");
}
}
// tuna.java
public class tuna extends food {
void eat() {
System.out.println("this tuna is great");
}
}
// potpie.java
public class potpie extends food {
void eat() {
System.out.println("this potpie is great");
}
}
Modul PBO – Teknokrat
55
// patty.java
public class patty {
public void digest(food x) {
if(x instanceof tuna) {
tuna t = (tuna) x;
t.eat();
} else if(x instanceof potpie) {
potpie p = (potpie) x;
p.eat();
} else {
x.eat();
}
}
}
// apples.java
public class apples {
public static void main(String [] args) {
patty bucky = new patty();
tuna fo = new tuna();
potpie po = new potpie();
bucky.digest(fo);
bucky.digest(po);
}
}
Hasil Output
this potpie is great
this tuna is great
Pemakaian instanceof seringkali diikuti dengan casting obyek dari tipe parameter ke tipe asal.
Contohnya pada program di atas, pada saat kita melakukan instanceof dari tipe tuna, kita dapat
melakukan casting object ke tipe asalnya, yaitu tuna. Berikut adalah cara untuk melakukan casting:
Program 6-4
// patty.java
public class patty {
public void digest(food x) {
// ...
if(x instanceof tuna) {
tuna t = (tuna) x;
// ...
}
// ...
}
}
Tanpa melakukan casting obyek, maka nilai yang akan kita pakai setelah proses instanceof masih
bertipe parent class-nya, sehingga jika tipe tersebut perlu dipakai maka harus dicasting terlebih
dahulu ke tipe subclass-nya.
Modul PBO – Teknokrat
56
OVERRIDING
Overriding adalah suatu keadaan dimana subclass memodifikasi tingkah laku yang diwarisi dari super
class. Tujuannya untuk menspesifikan tingkah laku dari subclass tersebut. Overriding dilakukan
dengan cara mendeklarasikan kembali method milik super class di dalam sub class. Deklarasi method
pada subclass harus sama dengan yang terdapat pada di super class, yaitu kesamaan pada nama,
return type, dan daftar parameter (jumlah, tipe, dan urutan). Method pada parent class disebut
overriden method dan pada subclass disebut overriding method. Berikut ini contoh terjadinya
overriding:
Program 6-5
// Employee.java
public class Employee {
protected String name;
protected double salary;
protected Date birthDate;
public String getDetails() {
return "Name: " + name + "n" +
"Salary: " + salary;
}
}
// Manager.java
public class Manager extends Employee {
protected String departement;
public String getDetail() {
return "Name: " + name + "n" +
"Salary: " + salary + "n" +
"Manager of: " + departement;
}
}
Program 6-6
// Animal.java
public class Animal {
public void setVoice() {
System.out.println("Blesesppblesep");
}
}
// Dog.java
public class Dog extends Animal {
public void setVoice() {
System.out.println("Hug..hug..");
}
}
Berdasarkan contoh program di atas, terjadinya overriding pada method getDetails, dimana method
tersebut di-override oleh kelas Manager. Method yang terkena override (overriden method)
diharuskan tidak boleh mempunyai modifier yang lebih luas aksesnya dari method yang meng-
override (overriding method).
Modul PBO – Teknokrat
57
OVERLOADING
Overloading adalah suatu keadaan dimana beberapa method memiliki nama yang sama namun
mempunyai fungsionalitas yang berbeda. Tujuannya untuk memudahkan penggunaan/pemanggilan
method dengan fungsional yang mirip. Dalam pendeklarasian overloading aturan yang digunakan
yaitu nama method harus sama, daftar parameter harus berbeda, dan return type boleh sama, juga
boleh berbeda. Berikut adalah contoh implementasi overloading:
Program 6-7
// MethodOverload.java
public class MethodOverload {
public void test() {
System.out.println("Kuadrat dari integer 7 = " + kuadrat(7));
System.out.println("Kuadrat dari double 7.5 = " + kuadrat(7.5));
}
// method kuadrat untuk integer
public int kuadrat(int bil) {
return bil * bil;
}
// method kuadrat untuk double
public double kuadrat(double bil) {
return bil * bil;
}
}
// MethodOverloadRun.java
public class MethodOverloadRun {
public static void main(String [] args) {
MethodOverload x = new MethodOverload();
x.test();
}
}
Berdasarkan kode program di atas, method yang di-overloading adalah kuadrat. Berikut adalah
perbedaan pada kedua method tersebut:
Tabel 6. 1 Contoh method overloading
Tipe return Nama method Daftar Parameter
int Kuadrat (int bil)
double Kuadrat (double bil)
↓ ↓ ↓
Berbeda Sama Berbeda
Berikut adalah contoh potongan kode program yang menerapkan method overloading:
Modul PBO – Teknokrat
58
public class Bentuk {
// ...
public void Gambar(int t1) {
// ...
}
public void Gambar(int t1, int t2) {
// ...
}
public void Gambar(int t1, int t2, int t3) {
// ...
}
public void Gambar(int t1, int t2, int t3, int t4) {
// ...
}
}
Overloading juga bisa terjadi antara parent class dengan subclass-nya jika memenuhi ketiga syarat
overload yang sudah disebutkan sebelumnya. Misalnya dari kelas Bentuk pada kode program
sebelumnya diturunkan menjadi kelas baru yang bernama WarnaiBentuk, seperti berikut:
public class Bentuk {
public void Gambar(String warna, int t1) {
// ...
}
public void Gambar(String warna, int t1, int t2) {
// ...
}
// ...
}
CONSTUCTOR OVERLOADING
Suatu kelas bisa memiliki lebih dari satu konstruktor dengan syarat daftar paramenternya tidak
boleh ada yang sama, bentuk inilah yang dinamakan dengan konstruktor overloading. Berikut adalah
contoh bentuk konstruktor overloading:
Program 6-8
// Mahasiswa.java
public class Mahasiswa {
private String npm;
private String nama;
private int umur;
public Mahasiswa() {
// Default konstruktor
npm = "";
nama = "";
umur = 18;
}
Modul PBO – Teknokrat
59
public Mahasiswa(String npm, String nama, int umur) {
// Parameter konstruktor
this.npm = npm;
this.nama = nama;
this.umur = umur;
}
// Getter & Setter Method
public String getNpm() {
return npm;
}
public void setNpm(String npm) {
this.npm = npm;
}
public String getNama() {
return nama;
}
public void setNama(String nama) {
this.nama = nama;
}
public int getUmur() {
return umur;
}
public void setUmur(int umur) {
this.umur = umur;
}
}
// MahasiswaOverloadingTest.java
public class MahasiswaOverloadingTest {
public static void main(String [] args) {
Mahasiswa obj = new Mahasiswa();
System.out.println("NPM : " + obj.getNpm());
System.out.println("Nama : " + obj.getNama());
System.out.println("Umur : " + obj.getUmur());
Mahasiswa obj2 = new Mahasiswa("12312343", "Anditya", 19);
System.out.println("NPM : " + obj2.getNpm());
System.out.println("Nama : " + obj2.getNama());
System.out.println("Umur : " + obj2.getUmur());
}
}
Modul PBO – Teknokrat
60
Lembar Kerja Praktikum: Modul 6
NPM: Asisten:
Nama: Nilai:
Kelas: Tanggal:
Soal
Perhatikan kelas diagram berikut:
1. Jelaskan pengertian dari Polimorfisme, Overloading, dan Overriding.
2. Jelaskan perbedaan antara Polimorfisme dengan Inheritance.
3. Jelaskan perbedaan antara Overloading dengan Overriding.

More Related Content

What's hot

9150 8 interface
9150 8  interface9150 8  interface
Modul prak2 constructor dan overloading
Modul prak2   constructor dan overloadingModul prak2   constructor dan overloading
Modul prak2 constructor dan overloading
wahyuniwulan
 
Java (Netbeans) Polymorphism - Object Oriented Programming (OOP)
Java (Netbeans) Polymorphism - Object Oriented Programming (OOP)Java (Netbeans) Polymorphism - Object Oriented Programming (OOP)
Java (Netbeans) Polymorphism - Object Oriented Programming (OOP)Melina Krisnawati
 
Java (Netbeans) - Abstract & Interface - Object Oriented Programming
Java (Netbeans) - Abstract & Interface - Object Oriented ProgrammingJava (Netbeans) - Abstract & Interface - Object Oriented Programming
Java (Netbeans) - Abstract & Interface - Object Oriented Programming
Melina Krisnawati
 
Modul Pemrograman Berorientasi Objek
Modul Pemrograman Berorientasi ObjekModul Pemrograman Berorientasi Objek
Modul Pemrograman Berorientasi Objek
Wahyu Widodo
 
Jeni Intro1 Bab11 Pewarisan, Polimorfisme, Dan Interface
Jeni Intro1 Bab11 Pewarisan, Polimorfisme, Dan InterfaceJeni Intro1 Bab11 Pewarisan, Polimorfisme, Dan Interface
Jeni Intro1 Bab11 Pewarisan, Polimorfisme, Dan InterfaceIndividual Consultants
 
Pelajaran oop java ii pengertian method dan cara pembuatan method by hermawan
Pelajaran oop java ii pengertian method dan cara pembuatan method by hermawan Pelajaran oop java ii pengertian method dan cara pembuatan method by hermawan
Pelajaran oop java ii pengertian method dan cara pembuatan method by hermawan
hermawanawang
 
Laporan Modul 1 Praktikum Pemrograman Berbasis Objek
Laporan Modul 1 Praktikum Pemrograman Berbasis ObjekLaporan Modul 1 Praktikum Pemrograman Berbasis Objek
Laporan Modul 1 Praktikum Pemrograman Berbasis Objek
Kuncara Laksana
 
Pbo inheritance, polymorphism, dan inte
Pbo inheritance, polymorphism, dan intePbo inheritance, polymorphism, dan inte
Pbo inheritance, polymorphism, dan inte
Smkn-2 Pekanbaru
 
Pemrograman Berorientasi Objek "Pengenalan JAVA"
Pemrograman Berorientasi Objek "Pengenalan JAVA"Pemrograman Berorientasi Objek "Pengenalan JAVA"
Pemrograman Berorientasi Objek "Pengenalan JAVA"
Asnita Meydelia C K
 
Materi pelatihan java_fundamental
Materi pelatihan java_fundamentalMateri pelatihan java_fundamental
Materi pelatihan java_fundamentalLaode ADB Ali
 
Materi pelatihan java fundamental
Materi pelatihan java fundamentalMateri pelatihan java fundamental
Materi pelatihan java fundamental
stephan EL'wiin Shaarawy
 
Modul praktikum PBO
Modul praktikum PBOModul praktikum PBO
Modul praktikum PBO
Alvian Bhakti
 
Modul Object Oriented Programming
Modul Object Oriented ProgrammingModul Object Oriented Programming
Modul Object Oriented Programming
Teknik Komputer & Informatika
 
10. konsep enkapsulasi
10. konsep enkapsulasi10. konsep enkapsulasi
10. konsep enkapsulasi
Saprudin Eskom
 
4 abstract class, interface
4 abstract class, interface4 abstract class, interface
4 abstract class, interface
Robbie AkaChopa
 
11. inheritance
11. inheritance11. inheritance
11. inheritance
Saprudin Eskom
 
3. struktur program java
3. struktur program java3. struktur program java
3. struktur program java
Saprudin Eskom
 
Pemrograman Berorientasi Objek "Pengenalan Dasar Pemrograman JAVA"
Pemrograman Berorientasi Objek "Pengenalan Dasar Pemrograman JAVA"Pemrograman Berorientasi Objek "Pengenalan Dasar Pemrograman JAVA"
Pemrograman Berorientasi Objek "Pengenalan Dasar Pemrograman JAVA"
Asnita Meydelia C K
 
Modul PBO Bab-06 - Polimorfisme (Polymorphism)
Modul PBO Bab-06 - Polimorfisme (Polymorphism)Modul PBO Bab-06 - Polimorfisme (Polymorphism)
Modul PBO Bab-06 - Polimorfisme (Polymorphism)
Rakhmat Dedi Gunawan
 

What's hot (20)

9150 8 interface
9150 8  interface9150 8  interface
9150 8 interface
 
Modul prak2 constructor dan overloading
Modul prak2   constructor dan overloadingModul prak2   constructor dan overloading
Modul prak2 constructor dan overloading
 
Java (Netbeans) Polymorphism - Object Oriented Programming (OOP)
Java (Netbeans) Polymorphism - Object Oriented Programming (OOP)Java (Netbeans) Polymorphism - Object Oriented Programming (OOP)
Java (Netbeans) Polymorphism - Object Oriented Programming (OOP)
 
Java (Netbeans) - Abstract & Interface - Object Oriented Programming
Java (Netbeans) - Abstract & Interface - Object Oriented ProgrammingJava (Netbeans) - Abstract & Interface - Object Oriented Programming
Java (Netbeans) - Abstract & Interface - Object Oriented Programming
 
Modul Pemrograman Berorientasi Objek
Modul Pemrograman Berorientasi ObjekModul Pemrograman Berorientasi Objek
Modul Pemrograman Berorientasi Objek
 
Jeni Intro1 Bab11 Pewarisan, Polimorfisme, Dan Interface
Jeni Intro1 Bab11 Pewarisan, Polimorfisme, Dan InterfaceJeni Intro1 Bab11 Pewarisan, Polimorfisme, Dan Interface
Jeni Intro1 Bab11 Pewarisan, Polimorfisme, Dan Interface
 
Pelajaran oop java ii pengertian method dan cara pembuatan method by hermawan
Pelajaran oop java ii pengertian method dan cara pembuatan method by hermawan Pelajaran oop java ii pengertian method dan cara pembuatan method by hermawan
Pelajaran oop java ii pengertian method dan cara pembuatan method by hermawan
 
Laporan Modul 1 Praktikum Pemrograman Berbasis Objek
Laporan Modul 1 Praktikum Pemrograman Berbasis ObjekLaporan Modul 1 Praktikum Pemrograman Berbasis Objek
Laporan Modul 1 Praktikum Pemrograman Berbasis Objek
 
Pbo inheritance, polymorphism, dan inte
Pbo inheritance, polymorphism, dan intePbo inheritance, polymorphism, dan inte
Pbo inheritance, polymorphism, dan inte
 
Pemrograman Berorientasi Objek "Pengenalan JAVA"
Pemrograman Berorientasi Objek "Pengenalan JAVA"Pemrograman Berorientasi Objek "Pengenalan JAVA"
Pemrograman Berorientasi Objek "Pengenalan JAVA"
 
Materi pelatihan java_fundamental
Materi pelatihan java_fundamentalMateri pelatihan java_fundamental
Materi pelatihan java_fundamental
 
Materi pelatihan java fundamental
Materi pelatihan java fundamentalMateri pelatihan java fundamental
Materi pelatihan java fundamental
 
Modul praktikum PBO
Modul praktikum PBOModul praktikum PBO
Modul praktikum PBO
 
Modul Object Oriented Programming
Modul Object Oriented ProgrammingModul Object Oriented Programming
Modul Object Oriented Programming
 
10. konsep enkapsulasi
10. konsep enkapsulasi10. konsep enkapsulasi
10. konsep enkapsulasi
 
4 abstract class, interface
4 abstract class, interface4 abstract class, interface
4 abstract class, interface
 
11. inheritance
11. inheritance11. inheritance
11. inheritance
 
3. struktur program java
3. struktur program java3. struktur program java
3. struktur program java
 
Pemrograman Berorientasi Objek "Pengenalan Dasar Pemrograman JAVA"
Pemrograman Berorientasi Objek "Pengenalan Dasar Pemrograman JAVA"Pemrograman Berorientasi Objek "Pengenalan Dasar Pemrograman JAVA"
Pemrograman Berorientasi Objek "Pengenalan Dasar Pemrograman JAVA"
 
Modul PBO Bab-06 - Polimorfisme (Polymorphism)
Modul PBO Bab-06 - Polimorfisme (Polymorphism)Modul PBO Bab-06 - Polimorfisme (Polymorphism)
Modul PBO Bab-06 - Polimorfisme (Polymorphism)
 

Similar to Modul pratikum pbo - Polimorphism

pertemuan_06_-_Konsep_PBO(InheratanceMultiple_Inheratance_Polimorpisme.pptx
pertemuan_06_-_Konsep_PBO(InheratanceMultiple_Inheratance_Polimorpisme.pptxpertemuan_06_-_Konsep_PBO(InheratanceMultiple_Inheratance_Polimorpisme.pptx
pertemuan_06_-_Konsep_PBO(InheratanceMultiple_Inheratance_Polimorpisme.pptx
ssuserc54f06
 
Materi object yg kosong
Materi object yg kosongMateri object yg kosong
Materi object yg kosong
kgsrizky
 
Tugas Praktikum ke dua
Tugas Praktikum ke duaTugas Praktikum ke dua
Tugas Praktikum ke dua
Pungkas Soebarkah
 
Jobsheet 4 LOOPING( PENGULANGAN)
Jobsheet 4 LOOPING( PENGULANGAN)Jobsheet 4 LOOPING( PENGULANGAN)
Jobsheet 4 LOOPING( PENGULANGAN)
Polytechnic State Semarang
 
Unit 6 polymorphism
Unit 6   polymorphismUnit 6   polymorphism
Unit 6 polymorphism
Nafta If
 
Basic Java Application - Sesi 5
Basic Java Application - Sesi 5Basic Java Application - Sesi 5
Basic Java Application - Sesi 5
Rudi Hartono
 
Laporan pratikum iv web
Laporan pratikum iv webLaporan pratikum iv web
Laporan pratikum iv web
rahmi wahyuni
 
Modul Praktikum Pemrograman Berorientasi Objek (Chap.1-6)
Modul Praktikum Pemrograman Berorientasi Objek (Chap.1-6)Modul Praktikum Pemrograman Berorientasi Objek (Chap.1-6)
Modul Praktikum Pemrograman Berorientasi Objek (Chap.1-6)
Debby Ummul
 
Konsep Overloading (1).pptx
Konsep Overloading (1).pptxKonsep Overloading (1).pptx
Konsep Overloading (1).pptx
AsepKhabrilRifao
 
PBO ( Pemograman berbasis Objek ).pptx
PBO ( Pemograman berbasis Objek ).pptxPBO ( Pemograman berbasis Objek ).pptx
PBO ( Pemograman berbasis Objek ).pptx
HeriPurwanto74
 
Modul xi dan xii algo
Modul xi dan xii algoModul xi dan xii algo
Modul xi dan xii algo
STMIK AKAKOM
 
Modul pbo baru
Modul pbo baruModul pbo baru
Modul pbo baru
Hastri Diahfamily
 
Konsep oop pada php dan mvc pada php framework, 1200631047 1200631018 1200631028
Konsep oop pada php dan mvc pada php framework, 1200631047 1200631018 1200631028Konsep oop pada php dan mvc pada php framework, 1200631047 1200631018 1200631028
Konsep oop pada php dan mvc pada php framework, 1200631047 1200631018 1200631028
iis dahlia
 
Modul 5 pbo
Modul 5 pboModul 5 pbo
Modul 5 pbo
arrofikzulkarnaen
 
OOP - Polymorphism
OOP - PolymorphismOOP - Polymorphism
OOP - PolymorphismKuliahKita
 
Modul Praktikum Pemrograman Berorientasi Objek (Chap.7)
Modul Praktikum Pemrograman Berorientasi Objek (Chap.7)Modul Praktikum Pemrograman Berorientasi Objek (Chap.7)
Modul Praktikum Pemrograman Berorientasi Objek (Chap.7)
Debby Ummul
 
Laporan praktikum Algoritma dan Pemrograman pertemuan 11
Laporan praktikum Algoritma dan Pemrograman pertemuan 11Laporan praktikum Algoritma dan Pemrograman pertemuan 11
Laporan praktikum Algoritma dan Pemrograman pertemuan 11
Ekha Cahya Nugraha
 

Similar to Modul pratikum pbo - Polimorphism (20)

pertemuan_06_-_Konsep_PBO(InheratanceMultiple_Inheratance_Polimorpisme.pptx
pertemuan_06_-_Konsep_PBO(InheratanceMultiple_Inheratance_Polimorpisme.pptxpertemuan_06_-_Konsep_PBO(InheratanceMultiple_Inheratance_Polimorpisme.pptx
pertemuan_06_-_Konsep_PBO(InheratanceMultiple_Inheratance_Polimorpisme.pptx
 
Materi object yg kosong
Materi object yg kosongMateri object yg kosong
Materi object yg kosong
 
Tugas Praktikum ke dua
Tugas Praktikum ke duaTugas Praktikum ke dua
Tugas Praktikum ke dua
 
Jobsheet 4 LOOPING( PENGULANGAN)
Jobsheet 4 LOOPING( PENGULANGAN)Jobsheet 4 LOOPING( PENGULANGAN)
Jobsheet 4 LOOPING( PENGULANGAN)
 
Overridung polymorphism
Overridung polymorphismOverridung polymorphism
Overridung polymorphism
 
Unit 6 polymorphism
Unit 6   polymorphismUnit 6   polymorphism
Unit 6 polymorphism
 
P5 depandi enda
P5 depandi endaP5 depandi enda
P5 depandi enda
 
04 inheritance
04 inheritance04 inheritance
04 inheritance
 
Basic Java Application - Sesi 5
Basic Java Application - Sesi 5Basic Java Application - Sesi 5
Basic Java Application - Sesi 5
 
Laporan pratikum iv web
Laporan pratikum iv webLaporan pratikum iv web
Laporan pratikum iv web
 
Modul Praktikum Pemrograman Berorientasi Objek (Chap.1-6)
Modul Praktikum Pemrograman Berorientasi Objek (Chap.1-6)Modul Praktikum Pemrograman Berorientasi Objek (Chap.1-6)
Modul Praktikum Pemrograman Berorientasi Objek (Chap.1-6)
 
Konsep Overloading (1).pptx
Konsep Overloading (1).pptxKonsep Overloading (1).pptx
Konsep Overloading (1).pptx
 
PBO ( Pemograman berbasis Objek ).pptx
PBO ( Pemograman berbasis Objek ).pptxPBO ( Pemograman berbasis Objek ).pptx
PBO ( Pemograman berbasis Objek ).pptx
 
Modul xi dan xii algo
Modul xi dan xii algoModul xi dan xii algo
Modul xi dan xii algo
 
Modul pbo baru
Modul pbo baruModul pbo baru
Modul pbo baru
 
Konsep oop pada php dan mvc pada php framework, 1200631047 1200631018 1200631028
Konsep oop pada php dan mvc pada php framework, 1200631047 1200631018 1200631028Konsep oop pada php dan mvc pada php framework, 1200631047 1200631018 1200631028
Konsep oop pada php dan mvc pada php framework, 1200631047 1200631018 1200631028
 
Modul 5 pbo
Modul 5 pboModul 5 pbo
Modul 5 pbo
 
OOP - Polymorphism
OOP - PolymorphismOOP - Polymorphism
OOP - Polymorphism
 
Modul Praktikum Pemrograman Berorientasi Objek (Chap.7)
Modul Praktikum Pemrograman Berorientasi Objek (Chap.7)Modul Praktikum Pemrograman Berorientasi Objek (Chap.7)
Modul Praktikum Pemrograman Berorientasi Objek (Chap.7)
 
Laporan praktikum Algoritma dan Pemrograman pertemuan 11
Laporan praktikum Algoritma dan Pemrograman pertemuan 11Laporan praktikum Algoritma dan Pemrograman pertemuan 11
Laporan praktikum Algoritma dan Pemrograman pertemuan 11
 

More from rahmantoyuri

new Chapter 10 - Report Kwitansi.pdf
new Chapter 10 - Report Kwitansi.pdfnew Chapter 10 - Report Kwitansi.pdf
new Chapter 10 - Report Kwitansi.pdf
rahmantoyuri
 
new Chapter 9 - Coding Form Transaksi Penjualan.pdf
new Chapter 9 - Coding Form Transaksi Penjualan.pdfnew Chapter 9 - Coding Form Transaksi Penjualan.pdf
new Chapter 9 - Coding Form Transaksi Penjualan.pdf
rahmantoyuri
 
new Chapter 8 - Coding Form Master Pelanggan (Customer).pdf
new Chapter 8 - Coding Form Master Pelanggan (Customer).pdfnew Chapter 8 - Coding Form Master Pelanggan (Customer).pdf
new Chapter 8 - Coding Form Master Pelanggan (Customer).pdf
rahmantoyuri
 
new Chapter 7 - Coding Form Master Barang.pdf
new Chapter 7 - Coding Form Master Barang.pdfnew Chapter 7 - Coding Form Master Barang.pdf
new Chapter 7 - Coding Form Master Barang.pdf
rahmantoyuri
 
new Chapter 6 - Kelas Koneksi dan Form Login.pdf
new Chapter 6 - Kelas Koneksi dan Form Login.pdfnew Chapter 6 - Kelas Koneksi dan Form Login.pdf
new Chapter 6 - Kelas Koneksi dan Form Login.pdf
rahmantoyuri
 
new Chapter 5 - Coding Form Menu Utama.pdf
new Chapter 5 - Coding Form Menu Utama.pdfnew Chapter 5 - Coding Form Menu Utama.pdf
new Chapter 5 - Coding Form Menu Utama.pdf
rahmantoyuri
 
new Chapter 4 - Form Transaksi.pdf
new Chapter 4 - Form Transaksi.pdfnew Chapter 4 - Form Transaksi.pdf
new Chapter 4 - Form Transaksi.pdf
rahmantoyuri
 
new Chapter 3 - Form Master.pdf
new Chapter 3 - Form Master.pdfnew Chapter 3 - Form Master.pdf
new Chapter 3 - Form Master.pdf
rahmantoyuri
 
new Chapter 2 - New Project Visual Studio C#.pdf
new Chapter 2 - New Project Visual Studio C#.pdfnew Chapter 2 - New Project Visual Studio C#.pdf
new Chapter 2 - New Project Visual Studio C#.pdf
rahmantoyuri
 
new Chapter 1 - Membuat Database.pdf
new Chapter 1 - Membuat Database.pdfnew Chapter 1 - Membuat Database.pdf
new Chapter 1 - Membuat Database.pdf
rahmantoyuri
 
Slide Ngajar E-Filing cover.pdf
Slide Ngajar E-Filing cover.pdfSlide Ngajar E-Filing cover.pdf
Slide Ngajar E-Filing cover.pdf
rahmantoyuri
 
e filing.pdf
e filing.pdfe filing.pdf
e filing.pdf
rahmantoyuri
 
ELECTRONIC FILING (E-FILING).pdf
ELECTRONIC FILING (E-FILING).pdfELECTRONIC FILING (E-FILING).pdf
ELECTRONIC FILING (E-FILING).pdf
rahmantoyuri
 
Materi Kearsipan Manual.pdf
Materi Kearsipan Manual.pdfMateri Kearsipan Manual.pdf
Materi Kearsipan Manual.pdf
rahmantoyuri
 
PRAKTEK JOIN.pptx
PRAKTEK JOIN.pptxPRAKTEK JOIN.pptx
PRAKTEK JOIN.pptx
rahmantoyuri
 
Fungsi Agregat.pptx
Fungsi Agregat.pptxFungsi Agregat.pptx
Fungsi Agregat.pptx
rahmantoyuri
 
Data Manipulation language (DML).pptx
Data Manipulation language (DML).pptxData Manipulation language (DML).pptx
Data Manipulation language (DML).pptx
rahmantoyuri
 

More from rahmantoyuri (20)

new Chapter 10 - Report Kwitansi.pdf
new Chapter 10 - Report Kwitansi.pdfnew Chapter 10 - Report Kwitansi.pdf
new Chapter 10 - Report Kwitansi.pdf
 
new Chapter 9 - Coding Form Transaksi Penjualan.pdf
new Chapter 9 - Coding Form Transaksi Penjualan.pdfnew Chapter 9 - Coding Form Transaksi Penjualan.pdf
new Chapter 9 - Coding Form Transaksi Penjualan.pdf
 
new Chapter 8 - Coding Form Master Pelanggan (Customer).pdf
new Chapter 8 - Coding Form Master Pelanggan (Customer).pdfnew Chapter 8 - Coding Form Master Pelanggan (Customer).pdf
new Chapter 8 - Coding Form Master Pelanggan (Customer).pdf
 
new Chapter 7 - Coding Form Master Barang.pdf
new Chapter 7 - Coding Form Master Barang.pdfnew Chapter 7 - Coding Form Master Barang.pdf
new Chapter 7 - Coding Form Master Barang.pdf
 
new Chapter 6 - Kelas Koneksi dan Form Login.pdf
new Chapter 6 - Kelas Koneksi dan Form Login.pdfnew Chapter 6 - Kelas Koneksi dan Form Login.pdf
new Chapter 6 - Kelas Koneksi dan Form Login.pdf
 
new Chapter 5 - Coding Form Menu Utama.pdf
new Chapter 5 - Coding Form Menu Utama.pdfnew Chapter 5 - Coding Form Menu Utama.pdf
new Chapter 5 - Coding Form Menu Utama.pdf
 
new Chapter 4 - Form Transaksi.pdf
new Chapter 4 - Form Transaksi.pdfnew Chapter 4 - Form Transaksi.pdf
new Chapter 4 - Form Transaksi.pdf
 
new Chapter 3 - Form Master.pdf
new Chapter 3 - Form Master.pdfnew Chapter 3 - Form Master.pdf
new Chapter 3 - Form Master.pdf
 
new Chapter 2 - New Project Visual Studio C#.pdf
new Chapter 2 - New Project Visual Studio C#.pdfnew Chapter 2 - New Project Visual Studio C#.pdf
new Chapter 2 - New Project Visual Studio C#.pdf
 
new Chapter 1 - Membuat Database.pdf
new Chapter 1 - Membuat Database.pdfnew Chapter 1 - Membuat Database.pdf
new Chapter 1 - Membuat Database.pdf
 
Slide Ngajar E-Filing cover.pdf
Slide Ngajar E-Filing cover.pdfSlide Ngajar E-Filing cover.pdf
Slide Ngajar E-Filing cover.pdf
 
e filing.pdf
e filing.pdfe filing.pdf
e filing.pdf
 
ELECTRONIC FILING (E-FILING).pdf
ELECTRONIC FILING (E-FILING).pdfELECTRONIC FILING (E-FILING).pdf
ELECTRONIC FILING (E-FILING).pdf
 
Materi Kearsipan Manual.pdf
Materi Kearsipan Manual.pdfMateri Kearsipan Manual.pdf
Materi Kearsipan Manual.pdf
 
PRAKTEK JOIN.pptx
PRAKTEK JOIN.pptxPRAKTEK JOIN.pptx
PRAKTEK JOIN.pptx
 
VIEW.pptx
VIEW.pptxVIEW.pptx
VIEW.pptx
 
JOIN.pptx
JOIN.pptxJOIN.pptx
JOIN.pptx
 
Fungsi Agregat.pptx
Fungsi Agregat.pptxFungsi Agregat.pptx
Fungsi Agregat.pptx
 
SELECT.pptx
SELECT.pptxSELECT.pptx
SELECT.pptx
 
Data Manipulation language (DML).pptx
Data Manipulation language (DML).pptxData Manipulation language (DML).pptx
Data Manipulation language (DML).pptx
 

Recently uploaded

Powerpoint Materi Menyusun dan Merencanakan Modul Ajar
Powerpoint Materi Menyusun dan Merencanakan Modul AjarPowerpoint Materi Menyusun dan Merencanakan Modul Ajar
Powerpoint Materi Menyusun dan Merencanakan Modul Ajar
MashudiMashudi12
 
SINOPSIS, TEMA DAN PERSOALAN NOVEL MENITI IMPIAN
SINOPSIS, TEMA DAN PERSOALAN NOVEL MENITI IMPIANSINOPSIS, TEMA DAN PERSOALAN NOVEL MENITI IMPIAN
SINOPSIS, TEMA DAN PERSOALAN NOVEL MENITI IMPIAN
NanieIbrahim
 
GERAKAN KERJASAMA DAN BEBERAPA INSTRUMEN NASIONAL PENCEGAHAN KORUPSI.pptx
GERAKAN KERJASAMA DAN BEBERAPA INSTRUMEN NASIONAL PENCEGAHAN KORUPSI.pptxGERAKAN KERJASAMA DAN BEBERAPA INSTRUMEN NASIONAL PENCEGAHAN KORUPSI.pptx
GERAKAN KERJASAMA DAN BEBERAPA INSTRUMEN NASIONAL PENCEGAHAN KORUPSI.pptx
fildiausmayusuf1
 
Pelatihan AI GKA abdi Sabda - Apa itu AI?
Pelatihan AI GKA abdi Sabda - Apa itu AI?Pelatihan AI GKA abdi Sabda - Apa itu AI?
Pelatihan AI GKA abdi Sabda - Apa itu AI?
SABDA
 
pelayanan prima pada pelanggan dan karyawan
pelayanan prima pada pelanggan dan karyawanpelayanan prima pada pelanggan dan karyawan
pelayanan prima pada pelanggan dan karyawan
EvaMirzaSyafitri
 
Modul Ajar Matematika Kelas 8 Fase D Kurikulum Merdeka - [abdiera.com]
Modul Ajar Matematika Kelas 8 Fase D Kurikulum Merdeka - [abdiera.com]Modul Ajar Matematika Kelas 8 Fase D Kurikulum Merdeka - [abdiera.com]
Modul Ajar Matematika Kelas 8 Fase D Kurikulum Merdeka - [abdiera.com]
Fathan Emran
 
Modul Ajar Informatika Kelas 7 Fase D Kurikulum Merdeka
Modul Ajar Informatika Kelas 7 Fase D Kurikulum MerdekaModul Ajar Informatika Kelas 7 Fase D Kurikulum Merdeka
Modul Ajar Informatika Kelas 7 Fase D Kurikulum Merdeka
Fathan Emran
 
Tokoh Pendidikan Universitas Negeri Jakarta.pdf
Tokoh Pendidikan Universitas Negeri Jakarta.pdfTokoh Pendidikan Universitas Negeri Jakarta.pdf
Tokoh Pendidikan Universitas Negeri Jakarta.pdf
Mutia Rini Siregar
 
Aksi Nyata Erliana Mudah bukan memahamii
Aksi Nyata Erliana Mudah bukan memahamiiAksi Nyata Erliana Mudah bukan memahamii
Aksi Nyata Erliana Mudah bukan memahamii
esmaducoklat
 
PENDAMPINGAN INDIVIDU 2 CGP ANGKATAN 10 KOTA DEPOK
PENDAMPINGAN INDIVIDU 2 CGP ANGKATAN 10 KOTA DEPOKPENDAMPINGAN INDIVIDU 2 CGP ANGKATAN 10 KOTA DEPOK
PENDAMPINGAN INDIVIDU 2 CGP ANGKATAN 10 KOTA DEPOK
GusniartiGusniarti5
 
Materi 2_Benahi Perencanaan dan Benahi Implementasi.pptx
Materi 2_Benahi Perencanaan dan Benahi Implementasi.pptxMateri 2_Benahi Perencanaan dan Benahi Implementasi.pptx
Materi 2_Benahi Perencanaan dan Benahi Implementasi.pptx
ahyani72
 
Panduan Penggunaan Rekomendasi Buku Sastra.pdf
Panduan Penggunaan Rekomendasi Buku Sastra.pdfPanduan Penggunaan Rekomendasi Buku Sastra.pdf
Panduan Penggunaan Rekomendasi Buku Sastra.pdf
MildayantiMildayanti
 
Aksi Nyata Disiplin Positif: Hukuman vs Restitusi vs Konsekuensi
Aksi Nyata Disiplin Positif: Hukuman vs Restitusi vs KonsekuensiAksi Nyata Disiplin Positif: Hukuman vs Restitusi vs Konsekuensi
Aksi Nyata Disiplin Positif: Hukuman vs Restitusi vs Konsekuensi
sabir51
 
Materi Feedback (umpan balik) kelas Psikologi Komunikasi
Materi Feedback (umpan balik) kelas Psikologi KomunikasiMateri Feedback (umpan balik) kelas Psikologi Komunikasi
Materi Feedback (umpan balik) kelas Psikologi Komunikasi
AdePutraTunggali
 
Defenisi Anak serta Usia Anak dan Kekerasan yang mungki terjadi pada Anak
Defenisi Anak serta Usia Anak dan Kekerasan yang mungki terjadi pada AnakDefenisi Anak serta Usia Anak dan Kekerasan yang mungki terjadi pada Anak
Defenisi Anak serta Usia Anak dan Kekerasan yang mungki terjadi pada Anak
Yayasan Pusat Kajian dan Perlindungan Anak
 
Media Pembelajaran kelas 3 SD Materi konsep 8 arah mata angin
Media Pembelajaran kelas 3 SD Materi konsep 8 arah mata anginMedia Pembelajaran kelas 3 SD Materi konsep 8 arah mata angin
Media Pembelajaran kelas 3 SD Materi konsep 8 arah mata angin
margagurifma2023
 
Pemaparan budaya positif di sekolah.pptx
Pemaparan budaya positif di sekolah.pptxPemaparan budaya positif di sekolah.pptx
Pemaparan budaya positif di sekolah.pptx
maulatamah
 
SAINS TINGKATAN 4 BAB 11 DAYA DAN GERAKAN
SAINS TINGKATAN 4 BAB 11 DAYA DAN GERAKANSAINS TINGKATAN 4 BAB 11 DAYA DAN GERAKAN
SAINS TINGKATAN 4 BAB 11 DAYA DAN GERAKAN
NURULNAHARIAHBINTIAH
 
Workshop "CSR & Community Development (ISO 26000)"_di BALI, 26-28 Juni 2024
Workshop "CSR & Community Development (ISO 26000)"_di BALI, 26-28  Juni 2024Workshop "CSR & Community Development (ISO 26000)"_di BALI, 26-28  Juni 2024
Workshop "CSR & Community Development (ISO 26000)"_di BALI, 26-28 Juni 2024
Kanaidi ken
 
Modul Ajar Matematika Kelas 11 Fase F Kurikulum Merdeka
Modul Ajar Matematika Kelas 11 Fase F Kurikulum MerdekaModul Ajar Matematika Kelas 11 Fase F Kurikulum Merdeka
Modul Ajar Matematika Kelas 11 Fase F Kurikulum Merdeka
Fathan Emran
 

Recently uploaded (20)

Powerpoint Materi Menyusun dan Merencanakan Modul Ajar
Powerpoint Materi Menyusun dan Merencanakan Modul AjarPowerpoint Materi Menyusun dan Merencanakan Modul Ajar
Powerpoint Materi Menyusun dan Merencanakan Modul Ajar
 
SINOPSIS, TEMA DAN PERSOALAN NOVEL MENITI IMPIAN
SINOPSIS, TEMA DAN PERSOALAN NOVEL MENITI IMPIANSINOPSIS, TEMA DAN PERSOALAN NOVEL MENITI IMPIAN
SINOPSIS, TEMA DAN PERSOALAN NOVEL MENITI IMPIAN
 
GERAKAN KERJASAMA DAN BEBERAPA INSTRUMEN NASIONAL PENCEGAHAN KORUPSI.pptx
GERAKAN KERJASAMA DAN BEBERAPA INSTRUMEN NASIONAL PENCEGAHAN KORUPSI.pptxGERAKAN KERJASAMA DAN BEBERAPA INSTRUMEN NASIONAL PENCEGAHAN KORUPSI.pptx
GERAKAN KERJASAMA DAN BEBERAPA INSTRUMEN NASIONAL PENCEGAHAN KORUPSI.pptx
 
Pelatihan AI GKA abdi Sabda - Apa itu AI?
Pelatihan AI GKA abdi Sabda - Apa itu AI?Pelatihan AI GKA abdi Sabda - Apa itu AI?
Pelatihan AI GKA abdi Sabda - Apa itu AI?
 
pelayanan prima pada pelanggan dan karyawan
pelayanan prima pada pelanggan dan karyawanpelayanan prima pada pelanggan dan karyawan
pelayanan prima pada pelanggan dan karyawan
 
Modul Ajar Matematika Kelas 8 Fase D Kurikulum Merdeka - [abdiera.com]
Modul Ajar Matematika Kelas 8 Fase D Kurikulum Merdeka - [abdiera.com]Modul Ajar Matematika Kelas 8 Fase D Kurikulum Merdeka - [abdiera.com]
Modul Ajar Matematika Kelas 8 Fase D Kurikulum Merdeka - [abdiera.com]
 
Modul Ajar Informatika Kelas 7 Fase D Kurikulum Merdeka
Modul Ajar Informatika Kelas 7 Fase D Kurikulum MerdekaModul Ajar Informatika Kelas 7 Fase D Kurikulum Merdeka
Modul Ajar Informatika Kelas 7 Fase D Kurikulum Merdeka
 
Tokoh Pendidikan Universitas Negeri Jakarta.pdf
Tokoh Pendidikan Universitas Negeri Jakarta.pdfTokoh Pendidikan Universitas Negeri Jakarta.pdf
Tokoh Pendidikan Universitas Negeri Jakarta.pdf
 
Aksi Nyata Erliana Mudah bukan memahamii
Aksi Nyata Erliana Mudah bukan memahamiiAksi Nyata Erliana Mudah bukan memahamii
Aksi Nyata Erliana Mudah bukan memahamii
 
PENDAMPINGAN INDIVIDU 2 CGP ANGKATAN 10 KOTA DEPOK
PENDAMPINGAN INDIVIDU 2 CGP ANGKATAN 10 KOTA DEPOKPENDAMPINGAN INDIVIDU 2 CGP ANGKATAN 10 KOTA DEPOK
PENDAMPINGAN INDIVIDU 2 CGP ANGKATAN 10 KOTA DEPOK
 
Materi 2_Benahi Perencanaan dan Benahi Implementasi.pptx
Materi 2_Benahi Perencanaan dan Benahi Implementasi.pptxMateri 2_Benahi Perencanaan dan Benahi Implementasi.pptx
Materi 2_Benahi Perencanaan dan Benahi Implementasi.pptx
 
Panduan Penggunaan Rekomendasi Buku Sastra.pdf
Panduan Penggunaan Rekomendasi Buku Sastra.pdfPanduan Penggunaan Rekomendasi Buku Sastra.pdf
Panduan Penggunaan Rekomendasi Buku Sastra.pdf
 
Aksi Nyata Disiplin Positif: Hukuman vs Restitusi vs Konsekuensi
Aksi Nyata Disiplin Positif: Hukuman vs Restitusi vs KonsekuensiAksi Nyata Disiplin Positif: Hukuman vs Restitusi vs Konsekuensi
Aksi Nyata Disiplin Positif: Hukuman vs Restitusi vs Konsekuensi
 
Materi Feedback (umpan balik) kelas Psikologi Komunikasi
Materi Feedback (umpan balik) kelas Psikologi KomunikasiMateri Feedback (umpan balik) kelas Psikologi Komunikasi
Materi Feedback (umpan balik) kelas Psikologi Komunikasi
 
Defenisi Anak serta Usia Anak dan Kekerasan yang mungki terjadi pada Anak
Defenisi Anak serta Usia Anak dan Kekerasan yang mungki terjadi pada AnakDefenisi Anak serta Usia Anak dan Kekerasan yang mungki terjadi pada Anak
Defenisi Anak serta Usia Anak dan Kekerasan yang mungki terjadi pada Anak
 
Media Pembelajaran kelas 3 SD Materi konsep 8 arah mata angin
Media Pembelajaran kelas 3 SD Materi konsep 8 arah mata anginMedia Pembelajaran kelas 3 SD Materi konsep 8 arah mata angin
Media Pembelajaran kelas 3 SD Materi konsep 8 arah mata angin
 
Pemaparan budaya positif di sekolah.pptx
Pemaparan budaya positif di sekolah.pptxPemaparan budaya positif di sekolah.pptx
Pemaparan budaya positif di sekolah.pptx
 
SAINS TINGKATAN 4 BAB 11 DAYA DAN GERAKAN
SAINS TINGKATAN 4 BAB 11 DAYA DAN GERAKANSAINS TINGKATAN 4 BAB 11 DAYA DAN GERAKAN
SAINS TINGKATAN 4 BAB 11 DAYA DAN GERAKAN
 
Workshop "CSR & Community Development (ISO 26000)"_di BALI, 26-28 Juni 2024
Workshop "CSR & Community Development (ISO 26000)"_di BALI, 26-28  Juni 2024Workshop "CSR & Community Development (ISO 26000)"_di BALI, 26-28  Juni 2024
Workshop "CSR & Community Development (ISO 26000)"_di BALI, 26-28 Juni 2024
 
Modul Ajar Matematika Kelas 11 Fase F Kurikulum Merdeka
Modul Ajar Matematika Kelas 11 Fase F Kurikulum MerdekaModul Ajar Matematika Kelas 11 Fase F Kurikulum Merdeka
Modul Ajar Matematika Kelas 11 Fase F Kurikulum Merdeka
 

Modul pratikum pbo - Polimorphism

  • 1. Modul PBO – Teknokrat 52 POLIMORFISME (POLYMORPISHM) Tujuan Praktikan dapat memahami dan menjelaskan konsep polimorfisme dalam perograman serta dapat mengimplementasikan ke dalam pemrograman Java. POLIMORFISME Polimorfisme (polymorpishm) bearti banyak bentuk (bahasa Yunani). Dalam pemrograman berorientasi obyek, digunakan untuk memerintah obyek agar melakukan aksi atau tindakan yang mungkin secara prinsip sama namun secara proses berbeda. Dalam konsep yang lebih umum sering kali polymorphism disebut dalam istilah satu interface banyak aksi. Contoh yang konkrit dalam dunia nyata yaitu mobil. Mobil yang ada dipasaran terdiri atas berbagai tipe dan berbagai merk, namun semuanya memiliki interface kemudi yang sama, seperti: stir, tongkat transmisi, pedal gas dan rem. Jika seseorang dapat mengemudikan satu jenis mobil saja dari satu merk tertentu, maka orang itu akan dapat mengemudikan hamper semua jenis mobil yang ada, karena semua mobil tersebut menggunakan interface yang sama. Harus diperhatikan disini bahwa interface yang sama tidak berarti cara kerjanya juga sama. Misal pedal gas, jika ditekan maka kecepatan mobil akan meningkat, tapi bagaiman proses peningkatan kecepatan ini dapat berbeda-beda untuk setiap jenis mobil.Dengan menggunakan OOP maka dalam melakukan pemecahan suatu masalah kita tidak melihat bagaimana cara menyelesaikan suatu masalah tersebut (terstruktur) tetapi obyekobyek apa yang dapat melakukan pemecahan masalah tersebut. VIRTUAL METHOD INVOCATION (VMI) Virtual method invocation (VMI) merupakan suatu hal yang sangat penting dalam konsep polimorfisme. Syarat terjadinya VMI adalah sebelumnya sudah terjadi polymorphism. Pada saat obyek yang sudah dibuat tersebut memanggil overridden method pada parent class, kompiler Java akan melakukan invocation (pemanggilan) terhadap overriding method pada subclass, dimana yang seharusnya dipanggil adalah overridden. Berikut adalah contoh terjadinya VMI: Program 6-1 // Test.java class Parent { int x = 5; public void info() { System.out.println("Ini kelas Parent"); } } MODUL 6
  • 2. Modul PBO – Teknokrat 53 class Child extends Parent { int x = 10; public void info() { System.out.println("Ini kelas Child"); } } public class Tes { public static void main(String [] args) { Parent tes = new Child(); System.out.println("Nilai x = " + tes.x); tes.info(); } } Hasil Output Nilai x = 5 Ini kelas Child Berdasarkan program di atas, yang terjadi adalah:  Obyek tes mempunyai behavior yang sesuai dengan runtime type bukan compile type  Ketika compile time tes adalah Parent  Ketika runtime tes adalah Child  Jadi: o tes hanya bisa mengakses variabel milik Parent o tes hanya bisa mengakses method milik Child Pada pembentukan Parent tes = new Child(); Pertama kali akan menjalankan konstruktor Child, ketika bertemu super() maka akan menjalankan konstruktor Parent (super class), setelah semua statement dieksekusi baru kemudian menjalankan konstruktor Child (subclass). POLYMORPHIC ARGUMENTS Polymorphic arguments adalah tipe data suatu argumen pada suatu method yang bisa menerima suatu nilai bertipe subclass-nya. Polymorphic arguments diperlukan, bertujuan untuk mengefisiensikan pembuatan program. Misalnya suatu kelas memiliki banyak subclass, maka perlu didefinisikan semua method yang menangani behaviour dari masing-masing subclass. Dengan adanya polymorphic arguments cukup mendefinisikan satu method saja yang bisa digunakan untuk menangani behaiour semua kelas. Berikut adalah contoh dari polymorphic arguments: Program 6- 2 // food.java public class food { void eat() { System.out.println("this food is great"); } }
  • 3. Modul PBO – Teknokrat 54 // tuna.java public class tuna extends food { void eat() { System.out.println("this tuna is great"); } } // potpie.java public class potpie extends food { void eat() { System.out.println("this potpie is great"); } } // apples.java public class apples { public static void main(String [] args) { patty bucky = new patty(); food fo = new food(); food po = new potpie(); // penerapan polymorphic argument bucky.digest(fo); bucky.digest(po); } } Hasil Output this food is great this potpie is great OPERATOR INSTANCEOF Pernyataan instanceof sangat berguna untuk mengetahui tipe asal dari suatu polymorphic arguments. Untuk lebih jelas, berikut kita modifikasi contoh program sebelumnya: Program 6- 3 // food.java public class food { void eat() { System.out.println("this food is great"); } } // tuna.java public class tuna extends food { void eat() { System.out.println("this tuna is great"); } } // potpie.java public class potpie extends food { void eat() { System.out.println("this potpie is great"); } }
  • 4. Modul PBO – Teknokrat 55 // patty.java public class patty { public void digest(food x) { if(x instanceof tuna) { tuna t = (tuna) x; t.eat(); } else if(x instanceof potpie) { potpie p = (potpie) x; p.eat(); } else { x.eat(); } } } // apples.java public class apples { public static void main(String [] args) { patty bucky = new patty(); tuna fo = new tuna(); potpie po = new potpie(); bucky.digest(fo); bucky.digest(po); } } Hasil Output this potpie is great this tuna is great Pemakaian instanceof seringkali diikuti dengan casting obyek dari tipe parameter ke tipe asal. Contohnya pada program di atas, pada saat kita melakukan instanceof dari tipe tuna, kita dapat melakukan casting object ke tipe asalnya, yaitu tuna. Berikut adalah cara untuk melakukan casting: Program 6-4 // patty.java public class patty { public void digest(food x) { // ... if(x instanceof tuna) { tuna t = (tuna) x; // ... } // ... } } Tanpa melakukan casting obyek, maka nilai yang akan kita pakai setelah proses instanceof masih bertipe parent class-nya, sehingga jika tipe tersebut perlu dipakai maka harus dicasting terlebih dahulu ke tipe subclass-nya.
  • 5. Modul PBO – Teknokrat 56 OVERRIDING Overriding adalah suatu keadaan dimana subclass memodifikasi tingkah laku yang diwarisi dari super class. Tujuannya untuk menspesifikan tingkah laku dari subclass tersebut. Overriding dilakukan dengan cara mendeklarasikan kembali method milik super class di dalam sub class. Deklarasi method pada subclass harus sama dengan yang terdapat pada di super class, yaitu kesamaan pada nama, return type, dan daftar parameter (jumlah, tipe, dan urutan). Method pada parent class disebut overriden method dan pada subclass disebut overriding method. Berikut ini contoh terjadinya overriding: Program 6-5 // Employee.java public class Employee { protected String name; protected double salary; protected Date birthDate; public String getDetails() { return "Name: " + name + "n" + "Salary: " + salary; } } // Manager.java public class Manager extends Employee { protected String departement; public String getDetail() { return "Name: " + name + "n" + "Salary: " + salary + "n" + "Manager of: " + departement; } } Program 6-6 // Animal.java public class Animal { public void setVoice() { System.out.println("Blesesppblesep"); } } // Dog.java public class Dog extends Animal { public void setVoice() { System.out.println("Hug..hug.."); } } Berdasarkan contoh program di atas, terjadinya overriding pada method getDetails, dimana method tersebut di-override oleh kelas Manager. Method yang terkena override (overriden method) diharuskan tidak boleh mempunyai modifier yang lebih luas aksesnya dari method yang meng- override (overriding method).
  • 6. Modul PBO – Teknokrat 57 OVERLOADING Overloading adalah suatu keadaan dimana beberapa method memiliki nama yang sama namun mempunyai fungsionalitas yang berbeda. Tujuannya untuk memudahkan penggunaan/pemanggilan method dengan fungsional yang mirip. Dalam pendeklarasian overloading aturan yang digunakan yaitu nama method harus sama, daftar parameter harus berbeda, dan return type boleh sama, juga boleh berbeda. Berikut adalah contoh implementasi overloading: Program 6-7 // MethodOverload.java public class MethodOverload { public void test() { System.out.println("Kuadrat dari integer 7 = " + kuadrat(7)); System.out.println("Kuadrat dari double 7.5 = " + kuadrat(7.5)); } // method kuadrat untuk integer public int kuadrat(int bil) { return bil * bil; } // method kuadrat untuk double public double kuadrat(double bil) { return bil * bil; } } // MethodOverloadRun.java public class MethodOverloadRun { public static void main(String [] args) { MethodOverload x = new MethodOverload(); x.test(); } } Berdasarkan kode program di atas, method yang di-overloading adalah kuadrat. Berikut adalah perbedaan pada kedua method tersebut: Tabel 6. 1 Contoh method overloading Tipe return Nama method Daftar Parameter int Kuadrat (int bil) double Kuadrat (double bil) ↓ ↓ ↓ Berbeda Sama Berbeda Berikut adalah contoh potongan kode program yang menerapkan method overloading:
  • 7. Modul PBO – Teknokrat 58 public class Bentuk { // ... public void Gambar(int t1) { // ... } public void Gambar(int t1, int t2) { // ... } public void Gambar(int t1, int t2, int t3) { // ... } public void Gambar(int t1, int t2, int t3, int t4) { // ... } } Overloading juga bisa terjadi antara parent class dengan subclass-nya jika memenuhi ketiga syarat overload yang sudah disebutkan sebelumnya. Misalnya dari kelas Bentuk pada kode program sebelumnya diturunkan menjadi kelas baru yang bernama WarnaiBentuk, seperti berikut: public class Bentuk { public void Gambar(String warna, int t1) { // ... } public void Gambar(String warna, int t1, int t2) { // ... } // ... } CONSTUCTOR OVERLOADING Suatu kelas bisa memiliki lebih dari satu konstruktor dengan syarat daftar paramenternya tidak boleh ada yang sama, bentuk inilah yang dinamakan dengan konstruktor overloading. Berikut adalah contoh bentuk konstruktor overloading: Program 6-8 // Mahasiswa.java public class Mahasiswa { private String npm; private String nama; private int umur; public Mahasiswa() { // Default konstruktor npm = ""; nama = ""; umur = 18; }
  • 8. Modul PBO – Teknokrat 59 public Mahasiswa(String npm, String nama, int umur) { // Parameter konstruktor this.npm = npm; this.nama = nama; this.umur = umur; } // Getter & Setter Method public String getNpm() { return npm; } public void setNpm(String npm) { this.npm = npm; } public String getNama() { return nama; } public void setNama(String nama) { this.nama = nama; } public int getUmur() { return umur; } public void setUmur(int umur) { this.umur = umur; } } // MahasiswaOverloadingTest.java public class MahasiswaOverloadingTest { public static void main(String [] args) { Mahasiswa obj = new Mahasiswa(); System.out.println("NPM : " + obj.getNpm()); System.out.println("Nama : " + obj.getNama()); System.out.println("Umur : " + obj.getUmur()); Mahasiswa obj2 = new Mahasiswa("12312343", "Anditya", 19); System.out.println("NPM : " + obj2.getNpm()); System.out.println("Nama : " + obj2.getNama()); System.out.println("Umur : " + obj2.getUmur()); } }
  • 9. Modul PBO – Teknokrat 60 Lembar Kerja Praktikum: Modul 6 NPM: Asisten: Nama: Nilai: Kelas: Tanggal: Soal Perhatikan kelas diagram berikut: 1. Jelaskan pengertian dari Polimorfisme, Overloading, dan Overriding. 2. Jelaskan perbedaan antara Polimorfisme dengan Inheritance. 3. Jelaskan perbedaan antara Overloading dengan Overriding.