170 likes | 535 Views
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 A1 { public static void main(String[] args ) {
E N D
CONTOH POLYMORPHISM Contoh-1 class A { void fungsi() {System.out.println("Fungsi class A");} void fungsi(inti) { System.out.println("Fungsi class A dengani = "+i); } } public class A1 { public static void main(String[] args) { A a=new A(); a.fungsi(); 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, intb,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 : Terjadiketikadeklarasi method subclass samadengan method darisuperclassnya. adalahkemampuansuatusubkelasuntukmemodifikasi attribute dan method milikkelassupernya (tentu yang memilikisifat private atau final tidakbiasadilakukan overriding). Modifikasi yang dilakukan, misalnyajumlah parameter, tipe parameter, tipe return value, ataupunlingkunganpemrosesandatanya. Contoh-1: class A { void fungsi() {System.out.println("Fungsi class A");} void fungsi(inti) { System.out.println("Fungsi class A dengani = "+i); } } class B extends A { void fungsi() {System.out.println("Fungsi class B");} void fungsi(inti) { System.out.println("Fungsi class B dengani = "+i); } } public class AB1 { public static void main(String[] args) { A a=new A(); a.fungsi(); a.fungsi(4); B b=new B(); b.fungsi(); b.fungsi(10); } }
Contoh-2: class KelasSuper { public static void main(String[] args) { KelasSuperoks = new KelasSuper(); oks.methodAsli(); } public void methodAsli() { System.out.println(“Method milikKelasSuperjalan”); } } class SubKelas extends KelasSuper { public void methodAsli() { System.out.println(“Method ygoverridedjalan”); } public void methodPemanggil() { System.out.println(“Method pemanggilmethodAslijln”); super.methodAsli(); // ygdipanggilmilikkelas super } public static void main(String[] args) { SubKelasosk = new SubKelas(); osk.methodAsli(); osk.methodPemanggil(); } }
Contoh-3: class Mobil { String warna; inttahunProduksi; public Mobil(String warna, inttahunProduksi){ this.warna = warna; this.tahunProduksi = tahunProduksi; } public Mobil(){ } void info(){ System.out.println("Warna: " + this.warna); System.out.println("Tahun: " + this.tahunProduksi); } } class MobilKonstruktor{ public static void main(String[] args){ Mobil mobilku = new Mobil(“Merah”, 2003); mobilku.info(); Mobil mobilmu = new Mobil(); mobilmu.info(); } }
CONTOH EKPASULASI Merupakansuatucarauntukmenyembunyikanimplementasi detail darisuatu class. Enkapsulasimempunyaiduahalmendasaryaitu Information hiding dan interface to access data.
Dalammelakukanpembungkusankodedan data didalam Java, terdapattigatingkatakses yang perludiketahuiyaitu: private, protected danpublic. private denganmendeklarasikan data dan method menggunakantingkatakses private, maka data dan method tersebuthanyadapatdiaksesolehklas yang memilikinyasaja, iniberarti data dan method tersebuttidakbolehdiaksesataudigunakanolehkelas-kelas lain yang terdapatdalam program. Untukmendeklarasikan data atau method menggunakankatakunciprivate. protected suatu data atau method yang dideklarasikandengantingkatakses protected dapatdiaksesolehkelas yang memilikinyadanjugaolehkelas-kelas yang masihmemilikihubunganturunan. Sebagaicontohapabila data x dalamkelas A dideklarasikansebagai protected, makakelas B (yang merupakanturunandarikelas A) diizinkanuntukmengkases x. Untukmendeklarasikansuatu data atau method dengantingkatakses protected menggunakankatakunciprotected.
public tingkatakses public merupakankebalikandaritingkatakses private. Data maupun method yang bersipat public dapatdiaksesolehsemuabagiandidalam program, dengankata lain data atau method yang dideklarasikandengantingkatakses public dapatdiaksesataudikenaliolehsemuakelas yang adadidalam program. Untukmendeklarasikansuatu data atau method dengantingkataksespublicmenggunakankatakuncipublic.
Contoh: public class Siswa { public intnrp; public String nama; public void Info() { System.out.println(“SayaadalahMasPen”); } } • Bagaimanamengaksesanggota-anggota class Siswa ?
public class IsiData { public static void main(String args[]) { Siswa IT2=new Siswa(); IT2.nrp=5; IT2.nama=”Maspaeni”; IT2.Info(); } }
Bagaimanamenyembunyikan information darisuatu class sehinggaanggota-anggota class tersebuttidakdapatdiaksesdariluar ? Denganmemberikanakses control privateketikamendeklarasikansuatuatributatau method
public class Siswa { private intnrp; public String nama; public void Info() { System.out.println(“SayaadalahMasPen”); } }
public class IsiData { public static void main(String args[]) { Siswa IT2=new Siswa(); IT2.nrp=5; IT2.nama=”Andi”; IT2.Info(); } } * Jikadijalankan, makaakanterjadi error karena data/variabelnrpmenggunakantingkataksesprivate
Jika NRP dienkapsulasi, bagaimanacaramengaksesatributnrpituuntukmemberikanataumengubahnilai? Maka, perlusuatu interface untukmengakses data, yang berupa method dimanadidalamnyaterdapatimplementasiuntukmengakses data nrp, sepertiberikut!
public class Siswa { private intnrp; public String nama; public void isiNrp(int n) { if (n>=1 && n<=10) nrp=n; else System.out.println("Error...!!"); } public void Info() { System.out.println(“SayaadalahMasPen”); } }