Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

POLYMORPHISM (Overloading)

Presentasi serupa


Presentasi berjudul: "POLYMORPHISM (Overloading)"— Transcript presentasi:

1 POLYMORPHISM (Overloading)
Pemrograman Berorientasi Objek

2 Pengantar Polymorphism adalah keadaan suatu entitas yang memiliki banyak bentuk. Contoh: Seorang wanita bisa mempunyai banyak peran, di kantor ia adalah karyawati, bagi suami ia berperan sebagai istri, bagi anak-anak ia adalah ibu Dalam OOP, polymorphism diimplementasikan dalam konsep Overloading dan Overriding CS 3213 2

3 Gambaran Polymorphism
CS 3213

4 Overloading Method Suatu kelas dapat mengandung beberapa method dengan nama yang sama tetapi dengan komposisi argumen yang berbeda. Perhatikan Contoh berikut CS 3213 4

5 //file : LumbungPadi.java public class LumbungPadi{
public int persediaan = 0; public int padiDisimpan = 0; public int padiDiambil = 0; public void hitungPersediaan( ){ persediaan = padiDisimpan - padiDiambil; } public void simpanPadi(int tambahanPadi){ padiDisimpan = padiDisimpan + tambahanPadi; public void ambilPadi (int beratPadiYangDiambil){ padiDiambil = padiDiambil + beratPadiYangDiambil; public int hitungPersediaanPadi( ){ return persediaan; public void cetakPersediaan( ){ int persediaanPadiTerakhir = hitungPersediaanPadi( ); System.out.println("Persediaan di lumbung = " + persediaanPadiTerakhir); CS 3213

6 public int beratPanenan; public LumbungPadi lumbung;
//file : Petani.java public class Petani{ public int beratPanenan; public LumbungPadi lumbung; public void lakukanPanen ( ){ beratPanenan = 150; } public void simpanPanenanDiLumbung(){ lumbung.simpanPadi(50); // overloading method public void simpanPanenanDiLumbung(int jumlahPanenan ){ lumbung.simpanPadi(jumlahPanenan); public void simpanPanenanDiLumbung(int jumlahPanenan, LumbungPadi lb){ lb.simpanPadi(jumlahPanenan); public void ambilPanenanDariLumbung(int panenanDiambil){ lumbung.ambilPadi( panenanDiambil); CS 3213

7 //file : KegiatanPanen.java public class KegiatanPanen{
public static void main(String[ ] args){ LumbungPadi lumbungDesaSukatani = new LumbungPadi ( ); LumbungPadi lumbungDesaSukamaju = new LumbungPadi( ); Petani pakBakri = new Petani( ); Petani daengBaso = new Petani( ); pakBakri.lumbung = lumbungDesaSukamaju; daengBaso.lumbung = lumbungDesaSukatani; pakBakri.lakukanPanen(); pakBakri.simpanPanenanDiLumbung(10); pakBakri.simpanPanenanDiLumbung(); pakBakri.simpanPanenanDiLumbung(40, lumbungDesaSukatani); pakBakri.ambilPanenanDariLumbung(10); daengBaso.lakukanPanen( ); daengBaso.simpanPanenanDiLumbung(90); lumbungDesaSukatani.cetakPersediaan( ); lumbungDesaSukamaju.cetakPersediaan( ); } CS 3213

8 Pada contoh di atas, pada kelas Petani
Pada contoh di atas, pada kelas Petani.java terdapat overloading method yaitu: simpanPanenanDiLumbung(), yang akan melakukan proses penambahan nilai variabel padiDisimpan pada lumbung padi default sebesar 50 (kilogram); simpanPanenanDiLumbung(int jumlahPanenan) yang akan melakukan proses penambahan nilai variabel padiDisimpan pada lumbung padi default sebesar nilai yang dilewatkan ke method ( nilai variabel jumlahPanenan ); - simpanPanenanDiLumbung(int jumlahPanenan, LumbungPadi lb) yang akan melakukan proses penambahan nilai variabel padiDisimpan pada lumbung padi lb (belum tentu merujuk ke lumbung padi default). CS 3213

9 Aturan Overloading Method
Nama method yang digunakan sama Komposisi argumen (tipe atau jumlah argumen) berbeda. Lihat contoh berikut: public set(int x){} public set(int x, String s){} public set(int y, String b){} Bentuk terakhir bukan overloading method karena komposisi argumennya sama dengan method bentuk kedua CS 3213

10 Overloading Konstruktor
Konstruktor (konstruktor) adalah struktur mirip method yang berfungsi untuk membentuk suatu obyek. Konstruktor mempunyai ciri yaitu: o Mempunyai nama yang sama dengan nama class o Tidak mempunyai return type (seperti void, int, double, dan lain-lain) CS 3213

11 Overloading Konstruktor
Contoh: public class Siswa { private int nrp; private String nama; public Siswa(int n, String m){ nrp=n; nama=m; } CS 3213

12 Overloading Konstruktor
Suatu class dapat mempunyai lebih dari 1 konstruktor dengan syarat daftar parameternya tidak boleh ada yang sama. CS 3213

13 Overloading Konstruktor
public class Siswa{ private int nim; private String nama; public Siswa(String m){ nim = 0; nama = m; } //overloading konstruktor public Siswa(int n, String m){ nim = n; CS 3213

14 Coba implementasikan diagram kelas berikut ke dalam kode program
Latihan: Coba implementasikan diagram kelas berikut ke dalam kode program CS 3213

15 Coba implementasikan diagram kelas berikut ke dalam kode program
Latihan: Coba implementasikan diagram kelas berikut ke dalam kode program CS 3213


Download ppt "POLYMORPHISM (Overloading)"

Presentasi serupa


Iklan oleh Google