STUDI KASUS CONTOH POLYMORPHISM Contoh1 class A void




![Contoh-2: class Kelas. Super { public static void main(String[] args) { Kelas. Super Contoh-2: class Kelas. Super { public static void main(String[] args) { Kelas. Super](https://slidetodoc.com/presentation_image_h/9a24431ce0e8bfcdb5356a8f8f6a3766/image-5.jpg)





![public class Isi. Data { public static void main(String args[]) { Siswa IT 2=new public class Isi. Data { public static void main(String args[]) { Siswa IT 2=new](https://slidetodoc.com/presentation_image_h/9a24431ce0e8bfcdb5356a8f8f6a3766/image-11.jpg)


![public class Isi. Data { public static void main(String args[]) { Siswa IT 2=new public class Isi. Data { public static void main(String args[]) { Siswa IT 2=new](https://slidetodoc.com/presentation_image_h/9a24431ce0e8bfcdb5356a8f8f6a3766/image-14.jpg)


- Slides: 16

STUDI KASUS

CONTOH POLYMORPHISM Contoh-1 class A { void fungsi() {System. out. println("Fungsi class A"); } void fungsi(int i) { System. out. println("Fungsi class A dengan i = "+i); } } public class A 1 { public static void main(String[] args) { A a=new A(); a. fungsi(10); } }

Contoh-2: import java. lang. *; public class Perkalian { private double pangkat(int a, int b) { double hasil = 1. 0*a*b; //kode program return hasil; } private double pangkat(double a, int b, double x, int y) { int z=y; double hasil = 1. 0*a*b*z; //kode program return hasil; } private double pangkat(int a, double b) { double hasil = 1. 0*a*b; //kode program return hasil; } private double pangkat(double a, double b) { double hasil = 1. 0*a*b; //kode program return hasil; } public static void main(String[] args) { Perkalian kali = new Perkalian(); System. out. println(kali. pangkat(10, 308)); System. out. println(kali. pangkat(10. 2, 308, 2. 1, 5)); // dst untuk data yg lain } }

2. Overriding : Terjadi ketika deklarasi method subclass sama dengan method dari superclassnya. adalah kemampuan suatu subkelas untuk memodifikasi attribute dan method milik kelas supernya (tentu yang memiliki sifat private atau final tidak biasa dilakukan overriding). Modifikasi yang dilakukan, misalnya jumlah parameter, tipe return value, ataupun lingkungan pemrosesan datanya. Contoh-1: class A { void fungsi() {System. out. println("Fungsi class A"); } void fungsi(int i) { System. out. println("Fungsi class A dengan i = "+i); } } class B extends A { void fungsi() {System. out. println("Fungsi class B"); } void fungsi(int i) { System. out. println("Fungsi class B dengan i = "+i); } } public class AB 1 { public static void main(String[] args) { A a=new A(); a. fungsi(4); B b=new B(); b. fungsi(10); } }
![Contoh2 class Kelas Super public static void mainString args Kelas Super Contoh-2: class Kelas. Super { public static void main(String[] args) { Kelas. Super](https://slidetodoc.com/presentation_image_h/9a24431ce0e8bfcdb5356a8f8f6a3766/image-5.jpg)
Contoh-2: class Kelas. Super { public static void main(String[] args) { Kelas. Super oks = new Kelas. Super(); oks. method. Asli(); } public void method. Asli() { System. out. println(“Method milik Kelas. Super jalan”); } } class Sub. Kelas extends Kelas. Super { public void method. Asli() { System. out. println(“Method yg overrided jalan”); } public void method. Pemanggil() { System. out. println(“Method pemanggil method. Asli jln”); super. method. Asli(); // yg dipanggil milik kelas super } public static void main(String[] args) { Sub. Kelas osk = new Sub. Kelas(); osk. method. Asli(); osk. method. Pemanggil(); } }

Contoh-3: class Mobil { String warna; int tahun. Produksi; public Mobil(String warna, int tahun. Produksi){ this. warna = warna; this. tahun. Produksi = tahun. Produksi; } public Mobil(){ } void info(){ System. out. println("Warna: " + this. warna); System. out. println("Tahun: " + this. tahun. Produksi); } } class Mobil. Konstruktor{ public static void main(String[] args){ Mobil mobilku = new Mobil(“Merah”, 2003); mobilku. info(); Mobil mobilmu = new Mobil(); mobilmu. info(); } }

CONTOH EKPASULASI Merupakan suatu cara untuk menyembunyikan implementasi detail dari suatu class. Enkapsulasi mempunyai dua hal mendasar yaitu Information hiding dan interface to access data.

Dalam melakukan pembungkusan kode dan data didalam Java, terdapat tiga tingkat akses yang perlu diketahui yaitu: private, protected dan public. private dengan mendeklarasikan data dan method menggunakan tingkat akses private, maka data dan method tersebut hanya dapat diakses oleh klas yang memilikinya saja, ini berarti data dan method tersebut tidak boleh diakses atau digunakan oleh kelas-kelas lain yang terdapat dalam program. Untuk mendeklarasikan data atau method menggunakan kata kunci private. protected suatu data atau method yang dideklarasikan dengan tingkat akses protected dapat diakses oleh kelas yang memilikinya dan juga oleh kelas-kelas yang masih memiliki hubungan turunan. Sebagai contoh apabila data x dalam kelas A dideklarasikan sebagai protected, maka kelas B (yang merupakan turunan dari kelas A) diizinkan untuk mengkases x. Untuk mendeklarasikan suatu data atau method dengan tingkat akses protected menggunakan kata kunci protected.

public tingkat akses public merupakan kebalikan dari tingkat akses private. Data maupun method yang bersipat public dapat diakses oleh semua bagian di dalam program, dengan kata lain data atau method yang dideklarasikan dengan tingkat akses public dapat diakses atau dikenali oleh semua kelas yang ada didalam program. Untuk mendeklarasikan suatu data atau method dengan tingkat akses public menggunakan kata kunci public.

Contoh: public class Siswa { public int nrp; public String nama; public void Info() { System. out. println(“Saya adalah Mas. Pen”); } } Bagaimana mengakses anggota-anggota class Siswa ?
![public class Isi Data public static void mainString args Siswa IT 2new public class Isi. Data { public static void main(String args[]) { Siswa IT 2=new](https://slidetodoc.com/presentation_image_h/9a24431ce0e8bfcdb5356a8f8f6a3766/image-11.jpg)
public class Isi. Data { public static void main(String args[]) { Siswa IT 2=new Siswa(); IT 2. nrp=5; IT 2. nama=”Maspaeni”; IT 2. Info(); } }

Bagaimana menyembunyikan information dari suatu class sehingga anggota-anggota class tersebut tidak dapat diakses dari luar ? Dengan memberikan akses control private ketika mendeklarasikan suatu atribut atau method

public class Siswa { private int nrp; public String nama; public void Info() { System. out. println(“Saya adalah Mas. Pen”); } }
![public class Isi Data public static void mainString args Siswa IT 2new public class Isi. Data { public static void main(String args[]) { Siswa IT 2=new](https://slidetodoc.com/presentation_image_h/9a24431ce0e8bfcdb5356a8f8f6a3766/image-14.jpg)
public class Isi. Data { public static void main(String args[]) { Siswa IT 2=new Siswa(); IT 2. nrp=5; IT 2. nama=”Andi”; IT 2. Info(); } } * Jika dijalankan, maka akan terjadi error karena data/variabel nrp menggunakan tingkat akses private

Jika NRP dienkapsulasi, bagaimana cara mengakses atribut nrp itu untuk memberikan atau mengubah nilai? Maka, perlu suatu interface untuk mengakses data, yang berupa method dimana di dalamnya terdapat implementasi untuk mengakses data nrp, seperti berikut!

public class Siswa { private int nrp; public String nama; public void isi. Nrp(int n) { if (n>=1 && n<=10) nrp=n; else System. out. println("Error. . . !!"); } public void Info() { System. out. println(“Saya adalah Mas. Pen”); } }