Polymorphism
By Group 2
Welcome!!
Member and Class Modifier
Memahami tingkatan akses member dan
01
class
Inheritance
Kenapa Kita harus menggunakan inheritance?/ Contoh program Inheritance 02
Polymorphism
Public, Private, Protected 03
Our Team Layout
Class & Object
4183550002 4183250012
Start
Member & Class
Modifer
MEMBER & CLASS MODIFIER MEMBERAgenda
& CLASS MODIFIER
Style
Class dalam program Java dapat saling berhubungan dengan cara
memberikan akses terhadap member mereka. Semua yang ada di
dalam class (atribut dan method) disebut member. Biasanya akan ada
tingkatan akses yang disebut modifier.
Perlu diingat:
Modifier tidak hanya bisa diberikan kepada member saja. Tapi juga bisa diberikan
kepada interface, enum, dan class itu sendiri.
Perhatikan Kode Program Berikut :
Yang digaris bawahi pada kode di atas adalah modifier. Modifier ini nanti akan menentukan batasan akses
member dan class.
Jenis Jenis Modifier dalam Java 3 MacamAgenda
Modifier dalam Java
Style
Secara umum ada 3 macam modifier yang digunakan dalam
Java: public, private, dan protected.
Perlu diingat:
Modifier tidak hanya bisa diberikan kepada member saja. Tapi juga bisa diberikan
kepada interface, enum, dan class itu sendiri.
Berikut ini tabel jangkauan untuk masing
-masing modifier:
Keterangan:
Y artinya bisa diakses;
N artinya tidak bisa diakses;
Subclass artinya class anak;
World artinya seluruh package di aplikasi.
Pada tabel diatas, apabila tidak
menggunakan modifier, maka class dan m
ember hanya akan bisa diakses dari Class itu
sendiri dan package (class yang berada satu
package dengannya).
Contoh :
Public
Public Agenda Style
Pada class Person terdapat dua member, yaitu:
1. atribut name
Public
2. method changeName()
Kedua member tersebut kita berikan modifier public. Artinya mereka akan bisa dia
kses dari mana saja.
Namun, class Person tidak kita berikan modifier. Maka yang akan terjadi adalah cl
ass tersebut tidak akan bisa diimpor (diakses) dari luar package.
Public Agenda Style
Pada class Person terdapat dua member, yaitu:
1. atribut name
Public
2. method changeName()
Kedua member tersebut kita berikan modifier public. Artinya mereka akan bisa dia
kses dari mana saja.
Namun, class Person tidak kita berikan modifier. Maka yang akan terjadi adalah cl
ass tersebut tidak akan bisa diimpor (diakses) dari luar package.
Public Agenda Style
Class Person berada di dalam package modifier, lalu kita coba akses dari
default package, maka yang akan terjadi adalah error seperti gambar di atas.
Bagaimana solusinya agar bisa diakses dari luar package?
Public
Pada class diagram, modifier public digambarkan dengan simbol plus (+).
Contoh:
Modifier Private
Private
Modifier private akan membuat member hanya bisa diakses oleh dari dalam class
itu sendiri.
Private
Perlu diingat:
Modifier private tidak bisa diberikan kepada class, enum, dan interface. Modifier
private hanya bisa diberikan kepada member class.
Contoh :
class Person {
private String name;
Pada contoh di atas, kita memberikan modifier private pada atribut name dan mod
ifier public pada method setName() dan getName().
Apabila kita coba mengkases langusung atribut name seperti ini:
Private
Contoh:
Person mPerson = new Person()
mPerson.setName(“PetaniKode”);
Pada class diagram, modifier private digambarkan dengan simbol minus (-).
Modifier Protected
Protected
Modifier protected akan membuat member dan class hanya bisa diakses dari:
Class itu sendiri;
Protected
Kita sudah mengetahui soal class atau objek bisa saling berhubungan dengan
Inheritance
Misalkan dalam game, kita ingin membuat class-class untuk musuh dengan sifat
Dan perilaku yang berbeda.
Inheritance
Lalu kita membuat kode untuk masing masing kelas seperti ini :
Zombie.java Pocong.java burung.java
class Zombie { class Pocong {
String name; class Burung {
String name; String name;
int hp; int hp;
int attackPoin; int hp;
int attackPoin; int attackPoin;
void attack(){ void attack(){
// ... } void attack(){
// ... } // ... }
void walk(){ void jump(){
//... } void walk(){
//... } //... }
} } void jump(){
//... }
void fly(){
//... }
}
Mengapa kita harus belajar Inheritance?
Class Enemy adalah class induk yang memiliki anak Zombie, Pocong, dan Burung
. Apapun properti yang ada di class induk, akan dimiliki juga oleh class anak.
Inheritance
class Enemy {
String name;
int hp;
int attackPoin;
void attack()
{
System.out.println("Serang!"); }
}
Setelah memahami konsep inheritance, sekarang mari kita buat contoh program s
ederhana.
Inheritance
Program yang akan kita buat untuk berfungsi untuk menghitung luas dan keliling b
angun datar.
package inheritance;
public class BangunDatar {
float luas(){
System.out.println("Menghitung laus bangun
datar");
return 0;
}
float keliling(){
System.out.println("Menghitung keliling bangun
datar");
return 0;
}
}
Persegi.java Lingkaran.java
package inheritance;
public class Lingkaran extends BangunDatar{
package inheritance; // jari-jari lingkaran
public class Persegi extends BangunDatar { float r; }
float sisi; }
PersegiPanjang.java Segitiga.java
package inheritance;
public class Segitiga extends BangunDatar{
package inheritance; float alas;
float tinggi;
public class PersegiPanjang extends BangunDatar { }
float panjang;
Float lebar;
}
Main.java
package inheritance;
public class Main { public static void main(String[] args) {
mPersegi.luas();
mPersegi.keliling();
mLingkaran.luas();
mLingkaran.keliling();
mPersegiPanjang.luas();
mPersegiPanjang.keliling();
mSegitiga.luas();
mSegitiga.keliling(); } }
Contoh Program Inheritance
duk (BangunDatar).
Objek anak dari BangunDatar belum memiliki method luas() dan keliling(), akhirny
a mengambil milik induknya.
Lalu bagaimana kalau kita ingin membuat agar semua class anak memiliki metho
d luas() dan keliling() yang berbeda dari induk?
Method Overriding dilakukan saat kita ingin membuat ulang sebuah method pada
sub-class atau class anak.
Inheritance
Artinya kita menulis ulang method luas() dan keliling() di class anak.
Sekarang mari kita buat method overriding untuk semua class anak.
Method Overriding
Inheritance
Method Overriding
Inheritance
Method Overriding
Inheritance
Method Overriding
Inheritance
Polymorphism Polymorphism
class A{
}
class B extends A{
}
class C{
public static void main(String[] args){
A ob = new B();
}
}
Variabel ob dengan tipe data class A memegang referensi ke objek dengan tip
e data class B. Ini adalah hal yang diijinkan karena class B adalah turunan dar
i class A.
Secara normal, pada saat hendak memanggil suatu method dari suatu objek, ja
va akan mengecek apakah class dari objek tersebut memiliki method yang dim
aksud. Semua ini dilakukan oleh java pada saat kompilasi. Oleh karena java m
engizinkan variabel dengan tipe data superclass untuk memegang referensi da
ri objek superclass-nya ditambah dengan melakukan method overriding, java ti
dak lagi dapat menentukan method mana yang dipanggil pada waktu kompilasi
.
Polymorphism Contoh Polymorphism 1 (1)
class A{
public void cetak(){
System.out.println("Method dari kelas A");
}
} Class B dan C haruslah
menjadi keturunan dari class
class B extends A{ A
public void cetak(){
System.out.println("Method dari kelas B");
}
}
class C extends A{
public void cetak(){
System.out.println("Method dari kelas C");
}
}
Polymorphism Contoh Polymorphism 1 (2)
class Demo{
public static void main(String[] args){
A objekA = new A();
B objekB = new B();
C objekC = new C();
objekA.cetak();
objekA berperan s
objekA = objekB; eperti objekB
objekA.cetak();
Hasil :