FONDASI PEMROGRAMAN & STRUKTUR DATA #8

Slides:



Advertisements
Presentasi serupa
Pemrograman JAVA (TIB09)
Advertisements

Pemrograman Berorientasi Objek
Inheritance (pewarisan)
Nur Hayatin, S.ST Jurusan Teknik Informatika Universitas Muhammadiyah Malang Sem Genap 2010.
POLIMORFISME Imam Fahrur Rozi 01.
SLIDE OTOMATIS PINDAH DALAM WAKTU 4-5 MENIT. A:kiriB:kanan Deklarasikan sebuah variabel dengan nama ‘isi’ yang mempunyai type array of double dengan ukuran.
Overriding, Overloading, Polymorphism
Method.
Inheritance Ery Setiyawan Jullev A.
1.Polymorphism Polymorphism adalah konsep yang memungkinkan mendefinisikan metod pada class anak (sub class) yang memiliki definisi sama dengan metod.
Overriding, Overloading, Polymorphism
POLIMORFISME 2 Imam Fahrur Rozi 01.
Polymorpism.
Variabel, Method & Constructor Oleh : Nur Hayatin, S.ST Teknik Informatika – UMM 2011.
Pemrograman Berorientasi Obyek Oleh Tita Karlita
- PERTEMUAN 4 - PERULANGAN
OBJECT ORIENTED PROGRAMMING YANES HARDIANTO SUI Politeknik Manufaktur Astra 2011.
Inheritance Konsep Inheritance Protected Member
OOP Java 06 Polymorphism.
Inheritance Matakuliah : T0984 / Algoritma dan Metode Object Oriented Programming II Pertemuan : 4 Tahun : 2008 Versi : 1/0.
INHERITANCE (Oleh : Nur Hayatin, S.ST)
Polymorphism Matakuliah : T0984 / Algoritma dan Metode Object Oriented Programming II Pertemuan : 5 Tahun : 2008 Versi : 1/0.
MATERI IV OOP (Object Oriented Programming) Chapter II.
Try, Catch, Finally Throws
Pertemuan 6 PEWARISAN AND POLYMORPHISM
Polymorphism Pertemuan 9 Matakuliah: M0864/Programming I Tahun: 2009.
Java Generics.
FONDASI PEMROGRAMAN & STRUKTUR DATA #8
Inheritance dan Kata Kunci static
Inheritance (Pewarisan)
POLYMORPHISM (KEBANYAKRUPAAN)
Encapsulation, Inheritance, Polymorphism
DASAR DASAR JAVA Dengan Netbans PBO Java.
POLYMORPHISM, ABSTRACT CLASS DAN INTERFACE
@kovazzevic | SMKN 24 Jakarta
Method & Constructor METHOD.
Constructor dan Overloading
POLYMORPHISM (KEBANYAKRUPAAN)
POLYMORPHISM (Overloading)
MODIFIER JAVA.
MENGENAL KEYWORD this, static, final
Tugas Minggu Ke 9 PBO Siti Halisah
Constructor overloading
KELAS DAN OBJEK BAGIAN I Pertemuan 6.
Karakteristik Pemrograman Berorientasi Objek
BPJ – Pertemuan 13 OOP.
PBO Lanjutan Membuat Kelas.
POLYMORPHISM.
Overloading Menuliskan kembali method dengan nama yang sama pada suatu class. Tujuan : memudahkan penggunaan/pemanggilan method dengan fungsionalitas yang.
Pilar Object Oriented Programming
MENGENAL KEYWORD this, static, final
Pemrograman Berorientasi Object
Pilar Object Oriented Programming
Pewarisan (Inheritance)
Pemrograman Berorientasi Objek
STUDI KASUS.
Method Java Fundamental Syahrul Mauluddin S.Kom, M.Kom.
Pilar Object Oriented Programming
Polimorphism Dosen Pengampu : Nur Iksan.
Pemrograman Berorientasi Objek <PBO>
Constructor, Overloading, inheritance, Polymorphism
Inisiasi Class dan Object
Dasar-dasar Pemrograman Berbasis Obyek. kelas Kelas pada java didefinisikan dengan menggunakan kata kunci class.
Logika dan Algoritma Agung Brastama Putra.
FONDASI PEMROGRAMAN & STRUKTUR DATA #5 - 1
FONDASI PEMROGRAMAN & STRUKTUR DATA #4 - 1
FONDASI PEMROGRAMAN & STRUKTUR DATA #6
FONDASI PEMROGRAMAN & STRUKTUR DATA #7
FONDASI PEMROGRAMAN & STRUKTUR DATA #9
FONDASI PEMROGRAMAN & STRUKTUR DATA #3 - 3
Transcript presentasi:

FONDASI PEMROGRAMAN & STRUKTUR DATA #8 Polymorphism

Polymorphism: Konsep dan Keuntungan Polymorphism By: Augury El Rayeb

Konsep Polymorphism Kata Polymorphism secara harfiah berarti: Memiliki ragam bentuk dari waktu ke waktu Kemampuan untuk tampil dalam wujud yang berbeda-beda.

Untuk Bidang Lingkaran Untuk Bidang Empat Persegi Konsep Polymorphism Polymorphism adalah salah satu fitur OOP yang memungkinkan kita melakukan satu aksi dengan beberapa cara. Bidang Data: … Method: hitungLuas() Dalam hal ini: Beberapa method dengan nama yang sama untuk menangani berbagai operasi Perhatikan method hitungLuas() Method tersebut adalah untuk menghitung luas, untuk menghitung luas bisa dengan beberapa cara sesuai bidang yang ingin dihitung luasnya. Untuk Bidang Segitiga Method: hitungLuas() Untuk Bidang Lingkaran Method: hitungLuas() Untuk Bidang Empat Persegi Method: hitungLuas()

Contoh Kasus Misal; Kita memiliki class animal yang memiliki method sound(), Karena ini adalah class animal (binatang) maka kita hanya bisa mengisi menthod sound() dengan instruksi yang menandakan suara yang berlaku umum untuk binatang. Padahal suara binatang ada banyak ragamnya, seperti; Meong untuk binatang kucing, Aum untuk binatang singa, Kukuruyuk untuk binatang ayam, dsb.

Contoh tanpa Konsep Polymorphism Tanpa Konsep Polymorphism semua class turunan animal akan memiliki suara yang sama. ANIMAL Data: … Method: sound() Suara … Suara… Suara …

Konsep Polymorphism Dengan Konsep Polymorphism semua class turunan animal bisa memiliki suara yang berbeda. Karena dengan konsep polymorphism dimungkinkan untuk melakukan satu aksi dengan beberapa cara. ANIMAL Data: … Method: sound() Kukuruyuk … Meong… Aoum …

Keuntungan dengan Polymorphism Memungkinkan kita menentukan beberapa method dengan nama yang sama menangani berbagai operasi (dengan teknik overload). Untuk constructor memungkinkan kita menentukan beberapa constructor untuk menangani berbagai jenis inisialisasi (dengan teknik overload). (dengan teknik override) memungkinkan sub kelas untuk menggunakan semua fungsi yang disediakan base class dan bisa menambahkan definisi khusus (variasi aksi) pada method yang di-override pada derived class

Tipe-tipe Polymorphism dan Method Overloading & Method Override By: Augury El Rayeb

Tipe-tipe Polymorphism Terdapat dua tipe Polymorphism: Compile-time polymorphism (static binding) Dengan Method Overloading Run-time polymorphism (dynamic binding). Dengan Method overriding

Tipe-tipe Polymorphism Compile-time Polymorphism Compile-time polymorphism (static binding) adalah suatu polymorphism yang terbentuk saat kompilasi, artinya beberapa method yang memiliki nama sama (menangani berbagai operasi) terdapat dalam satu class atau base class (hal ini disebut method overloading).

Tipe-tipe Polymorphism Run-time Polymorphism Run-time polymorphism (dynamic binding) adalah suatu polymorphism yang terbentuk saat run time, artinya base class dengan method umumnya sudah dikompilasi, kemudian pada derived class dibuat method override (method yang mengambil alih tugas dari method yang ada di base class). Method override adalah method pada derived class yang memiliki nama yang sama dengan nama method pada base class yang akan diambil alih tugasnya.

Compile-time Polymorphism Method Overloading Method overloading adalah suatu fitur yang memungkinkan suatu class memiliki lebih dari satu method yang memiliki nama sama. Terdapat 3 cara untuk membuat method overloading: Nama method sama tapi Jumlah parameter berbeda Nama method sama tapi Type parameter berbeda Nama method sama tapi Urutan type parameter

Contoh Method Overloading pada Java Dengan Jumlah Parameter Berbeda Method ini hanya akan dijalankan jika dipanggil dengan menyertakan 2 parameter tipe integer public class Bidang { public int luas(int x, int y) { return x * y; } public double luas(int a, int t, char s) { return a * 0.5 * t; public double luas(int d) { double r = 0.5 * d; return 3.14 * r * r; Method ini hanya akan dijalankan jika dipanggil dengan menyertakan 2 parameter tipe integer dan 1 tipe char Method ini hanya akan dijalankan jika dipanggil dengan menyertakan 1 parameter tipe integer

Contoh Method Overloading pada Java Dengan Type Parameter Berbeda Method ini hanya akan dijalankan jika dipanggil dengan menyertakan 2 parameter tipe integer public class Bidang { public int luas(int x, int y) { return x * y; } public double luas(int a, double t) { return a * 0.5 * t; public double luas(int d) { double r = 0.5 * d; return 3.14 * r * r; Method ini hanya akan dijalankan jika dipanggil dengan menyertakan 1 parameter tipe integer dan 1 tipe double Method ini hanya akan dijalankan jika dipanggil dengan menyertakan 1 parameter tipe integer

Contoh Method Overloading pada Java Dengan Urutan type parameter Method ini hanya akan dijalankan jika dipanggil dengan menyertakan dengan urutan 1 parameter tipe double dan 1 tipe integer public class Bidang { public double luas(double x, int y) { return x * y; } public double luas(int a, double t) { return a * 0.5 * t; public double luas(int d) { double r = 0.5 * d; return 3.14 * r * r; Method ini hanya akan dijalankan jika dipanggil dengan menyertakan parameter dengan urutan 1 tipe integer dan 1 tipe double Method ini hanya akan dijalankan jika dipanggil dengan menyertakan 1 parameter tipe integer

Contoh Method Overloading pada Java public class Bidang { public double luas(double x, int y) { return x * y; } public double luas(int a, double t) { return a * 0.5 * t; public double luas(int d) { double r = 0.5 * d; return 3.14 * r * r; public class TesBidang { public static void main(String [] args) { Bidang segiEmpat = new Bidang(); Bidang segiTiga = new Bidang(); Bidang lingkaran = new Bidang(); System.out.println(“Luas=“ + segiEmpat.luas(2.5, 8)); System.out.println(“Luas=“ + segiTiga.luas(8, 2.5)); System.out.println(“Luas=“ + lingkaran.luas(8)); } Outputnya: Luas=20.0 Luas=10.0 Luas=50.24

Method Overloading Kelemahan dan Keuntungan Kelemahan dan Keuntungan Compile-time polymorphism (static binding) dengan Method Overload: Kelemahannya, variasi aksi untuk method overload ditetapkan dalam base class sehingga tidak bisa di tambah variasi aksi lagi tanpa harus memodifikasi kode base class dan kemudian melakukan kompilasi ulang. Keuntungannya, hanya diperlukan satu class yaitu; base class untuk semua variasi aksi.

Run-time Polymorphism Method Override Method override adalah suatu fitur yang memungkinkan suatu derived class mendeklarasikan suatu method yang sudah ada pada base class dan akan mengambil alih fungsi method yang ada di base class.

Contoh Method Override pada Java public class Bidang { ….. public int luas(int x, int y) { return x * y; } public String judul() { return “Menghitung Luas Bidang”; extends Bidang, artinya class ini merupakan derived class dari class Bidang sebagai base class extends Bidang, artinya class ini merupakan derived class dari class Bidang sebagai base class public class BidangLingkaran extends Bidang { public double luas(int d) { double r = 0.5 * d; return 3.14 * r * r; } public class BidangSegitiga extends Bidang { public double luas(int a, int t) { return a * 0.5 * t; } Method override pada derived class yang akan mengambil alih fungsi method luas pada base class Method override pada derived class yang akan mengambil alih fungsi method luas pada base class

Contoh Method Override pada Java public class Bidang { ….. public int luas(int x, int y) { return x * y; } public String judul() { return “Menghitung Luas Bidang”; public class TesBidang { public static void main(String [] args) { Bidang segiEmpat = new Bidang(); BidangSegitiga segiTiga = new BidangSegitiga(); BidangLingkaran lingkaran = new BidangLingkaran(); System.out.println(segiEmpat.judul()); System.out.println(“Luas=“ + segiEmpat.luas(3, 8)); System.out.println(segiTiga.judul()); System.out.println(“Luas=“ + segiTiga.luas(3, 8)); System.out.println(lingkaran.judul()); System.out.println(“Luas=“ + lingkaran.luas(8)); } public class BidangSegitiga extends Bidang { public double luas(int a, int t) { return a * 0.5 * t; } Outputnya: Menghitung Luas Bidang Luas=24 Menghitung Luas Bidang Luas=12.0 Luas=50.24 public class BidangLingkaran extends Bidang { public double luas(int d) { double r = 0.5 * d; return 3.14 * r * r; }

Kelemahan dan Keuntungan Kelemahan dan Keuntungan Run-time polymorphism (dynamic binding) dengan Method Override: Kelemahannya, untuk setiap variasi aksi baru harus dibuat pada satu class baru, sehingga akan banyak class. Keuntungannya, variasi aksi baru selalu bisa ditambahkan tanpa harus memodifikasi base class (dan tidak perlu kompilasi ulang base class).

See You Next Topic Thanks