BAB 12 ENKAPSULASI, INHERITANCE DAN POLIMORPISME A. ENKAPSULASI Enkapsulasi adalah pembungkus, pembungkus disini dimaksudkan untuk menjaga suatu proses program agar tidak dapat diakses secara sembarangan atau di intervensi oleh program lain. atau pengertian lainnya Enkapsulasi adalah suatu cara untuk menyembunyikan informasi detail dari suatu class. Contoh programnya : /*buat kelas baru dengan nama Mahasiswa.java*/ public class Mahasiswa { private int nrp; private String nama; public Mahasiswa(int i, String n){ this.nrp = i; this.nama = n; public void setnrp(int nrp) { this.nrp = nrp; public int getnrp () { return nrp; public void setnama(string nama) { this.nama = nama; public String getnama() { return nama;
//end class /*buat kelas main untuk menjalankan program dengan nama TesMahasiswa.java*/ public class TesMahasiswa { public static void main (String []args){ int nomer; String nm; Mahasiswa siswa = new Mahasiswa(123, 1 ); System.out.println(siswa.getNRP()); System.out.println(siswa.getNama()); siswa.setnama( SoOn ); siswa.setnrp(111); System.out.println(siswa.getNRP()); System.out.println(siswa.getNama()); //end class B. INHERITANCE Inheritance atau dalam bahasa indonesianya adalah pewarisan, ini adalah teknik yang menyatakan bahwa anak dari objek akan mewarisi data atau atribut dan metode dari induknya langsung. Secara default inheritance bersifat menyeluruh sehingga semua data dan method diturunkan kepada class yang baru. Kelas yang mewariskan disebut dengan super class sedangkan class turunan disebut dengan sub class. Contoh : Kelas induk.java public class induk { protected String nama; protected String Alamat; public induk() {
System.out.println("indux"); public induk(string nama, String Alamat) { this.nama = nama; this.alamat = Alamat; System.out.println("Nama dan ALamat"); public void info(){ System.out.println("Info"); Kelas anak.java public class anak extends induk { @Override public void info(){ //overload dengan void info dibawah dan override dengan void info di kelas induk System.out.println("Info Anak"); super.info(); public anak() { super("aku", "im"); // memanggil indux yang ada parameternya public void info(string na){ //overload dengan void info diatas System.out.println("Info " + na); public static void main(string[] args) {
anak an = new anak(); an.info(); an.info("ass"); Dan hasilnya adalah Nama dan ALamat Info Anak Info Info Ass C. POLIMORPISME Polimorfisme melalui pengiriman pesan. Tidak bergantung kepada pemanggilan subrutin, bahasa orientasi objek dapat mengirim pesan; metode tertentu yang berhubungan dengan sebuah pengiriman pesan tergantung kepada objek tertentu di mana pesa tersebut dikirim. Contohnya, bila sebuah burung menerima pesan "gerak cepat", dia akan menggerakan sayapnya dan terbang. Bila seekor singa menerima pesan yang sama, dia akan menggerakkan kakinya dan berlari. Keduanya menjawab sebuah pesan yang sama, namun yang sesuai dengan kemampuan hewan tersebut. Ini disebut polimorfisme karena sebuah variabel tungal dalam program dapat memegang berbagai jenis objek yang berbeda selagi program berjalan, dan teks program yang sama dapat memanggil beberapa metode yang berbeda di saat yang berbeda dalam pemanggilan yang sama. Hal ini berlawanan dengan bahasa fungsional yang mencapai polimorfisme melalui penggunaan fungsi kelas-pertama.
Contoh : 1. Orang.java package polimorpisme; /** * * @author Asief */ public class Orang { protected String name; protected String address; /** konstruktor tanpa parameter **/ public Orang() { System.out.println("konstruktor dalam kelas Orang"); name = ""; address = ""; /** konstruktor dengan parameter nama, address **/ public Orang(String name, String address) { this.name = name; this.address = address; /** method accessor **/ public String getaddress() { return address;
public void setaddress(string address) { this.address = address; public String getname() { System.out.println("Nama orang : " + name); return name; public void setname(string name) { this.name = name; 2. SIswa.java package polimorpisme; /** * * @author Asief */ public class Siswa extends Orang { Siswa(String name, String address) { super(name, address); @Override public String getname() {
System.out.println("Nama Siswa : " + name); return name; 3. Karyawan.java package polimorpisme; Pemograman Java 2013 /** * * @author Asief */ public class Karyawan extends Orang { Karyawan(String name, String address) { super(name, address); @Override public String getname() { System.out.println("Nama Kayawan : " + name); return name; 4. TestApp.java package polimorpisme; /** * * @author Asief */
public class TestApp { public static void main(string[] args) { Orang ref; Siswa objsiswa = new Siswa("chester", "yellowen"); Karyawan objkaryawan = new Karyawan("Tokihiro", "Osaka"); /** orang merujuk kepada objek siswa **/ ref = objsiswa; ref.getname(); /** orang merujuk kepada objek karyawan **/ ref = objkaryawan; ref.getname(); Gimana gampang bukan??
SAMPAI JUMPA DIEDISI BERIKUTNYA Nama : Akhmad Bilyyasif Email : asief.asief@yahoo.com BANDUNG 07 APRIL 2013