MODUL 4 ENCAPSULATION, INHERITANCE DAN POLYMORPHISM

dokumen-dokumen yang mirip
INFORMATION HIDING, ENCAPSULATION, POLYMORHISM

Modul 07. Pengantar Objek 2

BAB IV KONSEP PEMROGRAMAN BERORIENTASI OBJEK

PEMROGRAMAN JAVA : KONSEP PEMROGRAMAN BERORIENTASI OBJEK

BAB IV KONSEP PEMROGRAMAN BERORIENTASI OBJEK

Object Oriented Programming 1

ABSTRACTION, ENCAPSULATION, INHERITANCE & POLYMORPHISM

KARAKTERISTIK PEMROGRAMAN BERORIENTASI OBJEK (OOP) Pemrograman berorientasi Objek mempunyai karakterisitik sebagai berikut:

Pemrograman Berorientasi Objek Lukman Andi W ( )

Project Kelompok 6. InputStreamReader masukan = new InputStreamReader(System.in); BufferedReader input = new BufferedReader(masukan);

PROJECT KELOMPOK 6 R5L. public String getbentuk() { return "Bentuk Dasar"; public abstract int hitungluas();

MODUL 3 ARRAY. Pemograman Berorientasi Objek

Kelompok 6. class SegiTiga extends Bentuk { public SegiTiga(int panjang2, int lebar2) { this.panjang = panjang2; this.

Bahasa Pemrograman :: Polimorfism and Abstraction

LAPORAN RESMI PRAKTIKUM PEMROGRAMAN BERBASIS OBJEK MODUL 3 ABSTRAKSI

Encapsulation (Encapsulasi) Minggu 5 Pemrograman Berorientasi Objek Alfa Faridh Suni

LAPORAN RESMI INHERITANCE

Pemrograman Berorientasi Objek / Object Oriented Programming / (OOP) Nur Hasanah, M.Cs

IKG2I4 / Software Project I

BAB 1 PEMROGRAMAN BERORIENTASI OBJEK

Inheritance (Pewarisan) Pengertian dasar inheritance

INHERITANCE AND POLIMORPHISM PUTU INDAH CIPTAYANI JURUSAN SISTEM INFORMASI STMIK AMIKOM

UNIVERSITAS GUNADARMA

Modul Bahasa Pemrograman 1

E-Book PEMROGRAMAN BERORIENTASI OBJEK. Disusun Oleh: Arfian Hidayat, S.Kom

KONSEP OOP: PEWARISAN / INHERITANCE

PEWARISAN. Disusun Oleh: Reza Budiawan. Untuk: Tim Dosen Algoritma & Pemrograman Lanjut

MODUL 6. PEMROGRAMAN VISUAL BASIC.NET DENGAN OOP (II) dan STRING

Pemrograman Berorientasi Obyek. Ramos Somya

Mengenal Object Oriented Programming (OOP)

Praktikum 4 Konsep Inheritance, Polymorphism, dan Encapsulation

CLASS PUTU INDAH CIPTAYANI JURUSAN SISTEM INFORMASI STMIK AMIKOM JOGJAKARTA

Inheritance dan Kata Kunci static

PRAKTIKUM I Class dan Obyek

Dengan menggunakan encapsulation kita dapat membatasi akses langsung suatu class atau program kecuali melalui suatu method yang sudah diberikan.

Pemrograman Berorientasi. Class dan Obyek 2

Project Kelompok 3. Pemrograman Berorientasi Objek Lukman Andi W ( )

Pemrograman Berorientasi Objek (PBO) By : Jeffry Montolalu, ST PERTEMUAN XII KELAS DAN OBYEK

Pemrograman Berorientasi. Polimorfisme dan Binding

Bahasa Pemrograman 2.

Keyword this untuk memanggil private String pengarang; private String judul;

Praktikum. PBO (Kelas K) Oleh : MOHAMMAD SHOLIKIN

Pemograman Berorientasi Objek. Week 3 Abstrak dan Interface dalam suatu kelas

MODUL 3 PEWARISAN TUJUAN DASAR TEORI

Konsep Pemrograman Berbasis Obyek

5/23/12. Inheritance. Pengertian inheritance Deklarasi inheritance Single inheritance Multilevel inheritance Access Control super keyword

Polymorphism. Materi ke-8 Pemrograman Berbasis Objek

KONSEP OOP: PEWARISAN / INHERITANCE

Overriding. Subclass yang berusaha memodifikasi tingkah laku yang diwarisi dari superclass. Tujuan: subclass memiliki tingkah laku yang lebih

Pemrograman Berorientasi. Abstract & Interface

Bahasa Pemrograman 2.

KONSEP Pemrograman Berorientasi Objek KARMILASARI

Pemrograman Berorientasi Objek

PRAKTIKUM III & IV PEMROGRAMAN BERORIENTASI OBJEK

Pewarisan Sifat Objek. Nur Hasanah, M.Cs

Algoritma Alg dan Pemr P ograman emr 1 C++ Class & Object

Polymorphism (Polimorfisme)

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA LAB SHEET PEMROGRAMAN JAVA 2

LAPORAN V PRAKTIKUM PEMROGRAMAN BERBASIS OBJEK

Chapter 9 Pewarisan Pe

Pemrograman Berbasis Objek (Polimorfisme)

Inheritance (Pewarisan Sifat) Imam Fahrur Rozi

Pemrograman Berorientasi Objek Danu Wira Pangestu

INHERITANCE. Gambar 1. Kelas Hierarki Java

Pemrograman Berbasis Objek Inheritance

Bahasa Pemrograman 2.

1.Tujuan. 2. Latar Belakang. Mendefinisikan superclasses dan subclasses Override method dari superclasses Membuat method final dan class final

subclass class manapun private default protected public package yang sama

IT652 Pemrograman Berorientasi Aspek. Ramos Somya

Modul Praktikum 4 Pemograman Berorientasi Objek

Inheritance. Pertemuan 8 Pemrograman Berbasis Obyek

8 - Overriding dan Overloading

DEVAL GUSRION, S.KOM, M.KOM MATAKULIAH BAHASA PEMOGRAMAN JAVA LANJUTAN III

MINGGU IV : PEMROGRAMAN BERORIENTASI OBJEK

TUGAS DASAR PEMROGRAMAN KELAS C DOSEN PENGAMPU : IKA ATSARI DEWI, STP, MP

Inheritance. Topik 5/17/2013

PEWARISAN D E W I S A R T I K A, M. K O M

Pertemuan 4 Halaman 1/1. Class Inheritance

PEMROGRAMAN I. By : Sri Rezeki Candra Nursari

PRAKTIKUM 1 : ARRAY DUA DIMENSI (tipe data primitif)

BAB 6 INHERITANCE Tujuan:

UML (Unified Modelling Language)

MODUL 3. Inheritance, Abstract Class, Interface TUJUAN PRAKTIKUM LANDASAN TEORI. A. Inheritance

KONSEP OBJEK ORIENTASI PROGRAM

1. Manakah jawaban yang benar,pada saat Anda mengcompile dan menjalankan class berikut ini:

Object Oriented Programming (Class, Inheritance, Encapsulation dan Interface)

ENKAPSULASI. 1. Kompetensi Setelah kegiatan perkuliahan selesai, mahasiswa diharapkan dapat:

LAPORAN PRAKTIKUM ALGORITMA DAN STRUKTUR DATA PENGENALAN OBJECT ORIENTED PROGRAMMING

Parent dan Child di Java

MODUL 1. CLASS, OBJECT, CONSTRUCTOR DAN METHOD

BAB 1 PENGENALAN PEMROGRAMAN BERORIENTASI OBJEK

Abstract Class dan Interface. Viska Mutiawani, M.Sc

Polymorphism. Oleh : Agus Priyanto, M.Kom

MODUL 1. Class, Object, Constructor dan Method

Array. Pengantar. int a, b, c, d, e;

2015 BAHASA PEMROGRAMAN I. Pertemuan VI Inheritance (Pewarisan)

Oleh : Rahmady Liyantanto

Pemrograman Berorientasi Objek Danu Wira Pangestu

Method yang ada pada parent class(superclass) didefinisikan kembali oleh kelas anaknya (subclass).

3/31/2011. Tujuan. Inheritance, Polymorphism,& Interfaces. Inheritance / pewarisan. Inheritance / pewarisan. Inheritance / pewarisan

Transkripsi:

MODUL 4 ENCAPSULATION, INHERITANCE DAN POLYMORPHISM A. ENCAPSULATION (PENGKAPSULAN) Encapsulation adalah proses pemaketan data bersama metode-metodenya dimana hal ini bermanfaat untuk menyembeunyikan rincian-rincian implementasi dari pemakai. Dalam sebuah objek yang mengandung variabel-variabel dan methodmethod, dapat ditentukan hak akses pada sebuah variabel atau method dari objek. Pembungkusan variabel dan method dalam sebuah objek dalam bagian yang terlindungi inilah yang disebut dengan enkapsulasi. Bagian eksternal dari sebuah objek sering disebut sebagai interface atau antarmuka terhadap objek lain. Karena objek lain harus berkomunikasi dengan obejk itu hanya melalui antarmuka maka bagian internal objek dapat dilindungi dari gangguan luar. Karena program luar tidak mengakses implementasi internal objek, maka implementasi internal dapat berubah tanpa mempengaruhi bagian-bagian program lain. Di dalam Java, pengkapsulan dapat dilakukan dengan pembentukan kelas-kelas menggunakan keyword class. Sedangkan penyembunyian informasi dapat dilakukan dengan pengendalian tgerhadap pengaksesan pembentuk kelas dengan keyword-keyword untuk kendali pengaksesan default, private, protected, dan public. Penyembunyian informasi deilakukan dengan implementasi penerapan kendari menggunakan keyword private dan protected pada elemen data. Ada 2 manfaat utama dari enkapsulasi yaitu : 1. Penyembunyian Informasi (information hiding) Ha ini mengacu kepada perlindungan terhadap implementasi obejk internal. Obejk tersebut dari interface public dan bagian private yang merupakan kombinasi data dan metode internal. Manfaat utamanya adalah bagian internal dapat berubah tanpa memepngaruhi bagian-bagian program yang lain. 2. Modularitas Modularitas berarti objek dapat dikelola secara independen. Karena kode sumber bagian internal objek dikelola secara terpisah dari antarmuka, maka Kita bebas melakukan modifikasi yang tidak menyebabkan masalah pada bagian-bagian lain dari sistem. Manfaat ini mempermudah mendistriibusikan objek-objek dari sistem. Untuk lebih memahami berikut contoh Program dengan implementasi Enkapsulasi : public class Kapsul{ private double panjang; // attribute yang disembunyikan private double lebar; // attribute yang disembunyikan private double tinggi; // attribute yang disembunyikan public Kapsul(){ double panjang = 0; double lebar = 0; Disusun Oleh : Sukma Murdani, S.Kom 1

private double luas(double p, double l) { //attribute yang di enkapsulasi return p*l; public void setpanjang(double panjang) { this.panjang = panjang; public void setlebar(double lebar) { this.lebar = lebar; public double getpanjang() { return panjang; public double getlebar() { return lebar; public double getluas() { return luas(panjang, lebar); class Encapsulasi{ public static void main(string[] srgs) { Kapsul pp = new Kapsul(); pp.setpanjang(50); pp.setlebar(100); System.out.println("Panjang : "+ pp.getpanjang()); System.out.println("Lebar : "+ pp.getlebar()); System.out.println("Luas : "+ pp.getluas()); Dari program di atas dapat dilihat bahwa deklarasi variabel disembunyikan dan pada saat dilakukan proses perkalian untuk mencari luas dilakukan enkapsulasi. Program di atas akan menghasilkan 2 class yaitu : class Kapsul dan class Encapsulasi. Kedua class ini berbeda. Di mana class Kapsul merupakan kelas untuk pembentukan Objek dan pemrosesan dalam pencarian luas persegi panjang. Sedangkan untuk class Encapsulasi merupakan kelas untuk menampilkan hasil dari proses tersebut. Disusun Oleh : Sukma Murdani, S.Kom 2

B. INHERITANCE (PEWARISAN) Pewarisan adalah proses penciptaan kelas baru dengan mewarisi karakteristik dari kelas yang telah ada, ditambah dengan karakteristik unik dari kelas baru tersebut. Dalam hirarki kelas, jika kelas C merupakan turunan kelas B, dan kelas B merupakan turunan kelas A, maka otomatis attribute dan method kelas A juga diwariskan kelas C. Setiap subclass akan mewarisi state ( variabel-variabel ) dan behaviour ( method-method ) dari superclass-nya. Subclass kemudian dapat menambahkan state dan behaviour baru yang spesifik dan dapat pula memodifikasi ( override ) state dan behaviour yang diturunkan oleh superclass-nya. Keuntungan dari inheritance adalah : Subclass menyediakan state/behaviour yang spesifik yang membedakannya dengan superclass, hal ini akan memungkinkan programmer Java untuk menggunakan ulang source code dari superclass yang telah ada. Programmer Java dapat mendefinisikan superclass khusus yang bersifat generik, yang disebut abstract class, untuk mendefinisikan class dengan behaviour dan state secara umum. Kemudahan dalam me-manage kelas yang memiliki data dan method yang sama Untuk memodifikasi suatu data atau method untuk semua subkelas / kelas anak, maka tidak perlu melakukan perubahan di masing-masing kelas anak melainkan hanya pada kelas induk saja. Istilah dalam inheritance yang perlu diperhatikan : Extends Keyword ini harus kita tambahkan pada definisi class yang menjadi subclass. Superclass Superclass digunakan untuk menunjukkan hirarki class yang berarti class dasar dari subclass/class anak. Subclass Subclass adalah class anak atau turunan secara hirarki dari superclass. Secara umum bentuk deklarasi dalam kkonsep pewarisan adalah sebagai berikut : [modifier] class namasubkelas extend namakelassuper { // classbody Disusun Oleh : Sukma Murdani, S.Kom 3

Untuk lebih memahami marilah Kita lihat contoh berikut : public class Komunitas { String nama; String alamat; String alamat2; String kota; int umur; /** Defenisi kelas Komunitas */ public Komunitas() { nama = ""; alamat = ""; alamat2 = ""; kota = ""; umur = 0; Selain dua contoh di atas, Kita juga bisa mengurutkan hasil keluaran dari array. Berikut contoh codingnya : public Komunitas(String newnama, String newalamat, String newalamat2, String newkota, int newumur) { nama = newnama; alamat = newalamat; alamat2 = newalamat2; kota = newkota; umur = newumur; public void setnama (String newnama){ nama = newnama; public void setalmat (String newalamat){ C. PENGENALAN alamat = newalamat; METHOD Method merupakan aksi-aksi dan perilaku yang bisa dilakukan oleh suatu Objek. Di dalam Java, kita dapat mendefinisikan banyak method yang akan kita panggil dari method yang public void setalamat2 (String newalamat2) { berbeda. alamat2 Sebuah = method newalamat2; adalah bagian-bagian kode yang dapat dipanggil oleh program utama atau dari method lainnya untuk menjalankan fungsi yang spesifik. Dari contoh program di atas dapat Kita lihat adanya pemanggilan java.util.* hal ini bertujuan public void untuk setkota pemanggilan (String newkota) fungsi sortir { data. Selain itu fungsi length yang Kita defenisikan di kota = newkota; atas bertujuan untuk mengukur panjang dari indeks array. D. public ARRAY void MULTIDIMENSI setumur (int newumur) { Setelah umur = memahami newumur; apa itu array dimensi satu, sekarang Kita akanmembahasa array multidimensi. Pada dasarnya array mulitidimensi merupakan array dari array. Atau index array Disusun Oleh : Sukma Murdani, S.Kom 4

public String getnama (){ return nama; public String getalamat (){ return alamat; public String getalamat2 (){ return alamat2; public String getkota (){ return kota; public int getumur (){ return umur; public String tostring(){ String str = "Nama :"+ nama + "\n"+ "Alamat 1 :"+ alamat + "\n"+ "Alamat 2 :"+ alamat2 + "\n"+ "Kota :"+ kota + "\n"+ "Umur :"+ umur + "\n"; return Dari str; Contoh 2 di atas dapat Kita lihat bahwa untuk elemen indeks array pada dimensi ke 2 (kolom) merupakan array kosong. static void nilai(){ Komunitas t = new Komunitas ("Sukma Murdani, S.Kom","Jalan Aru","Lubuk Begalung","Padang",25); System.out.println("\nSukma Murdani sebagai Dosen Komunitas:\n"); System.out.println(t); public static void main(string[] args) { nilai(); Kelas Komunitas di atas adalah merupakan kelas induk yang kemudian bisa diakses oleh kelas anak mana saja. Berikut salah contoh kelas anak yang mengakses kelas Komunitas. Disusun Oleh : Sukma Murdani, S.Kom 5

public class Mahasiswa extends Komunitas { String BP; String strata; String Jurusan; /** Penciptaan Kelas Mahasiswa sebagai Pewarisan dari Komunitas */ public Mahasiswa() { super(); BP = ""; strata = ""; Jurusan = ""; public Mahasiswa (String newnama, String newalamat, String newalamat2, String newkota, int newumur, String newbp, String newstrata, String newjurusan) { super(newnama, newalamat, newalamat2, newkota, newumur); BP = newbp; strata = newstrata; Jurusan = newjurusan; Pada Contoh 3 di atas Kita menggunakan komponen Swing sebagai media input nilai baris public pada void array. setbp Dan (String isi dari newbp) elemen { array tersebut berupa tanda baca dengan tipe string. BP = newbp; public String getbp (){ return BP; public void setstrata (String newstrata) { strata = newstrata; public String getstrata () { return strata; public void setjurusan (String newjurusan) { Jurusan = newjurusan; public String getjurusan() { return Jurusan; Disusun Oleh : Sukma Murdani, S.Kom 6

public String tostring(){ String str = "Nama : "+ nama + "\n"+ "Alamat 1 : "+ alamat + "\n"+ "Alamat 2 : "+ alamat2 + "\n"+ "Kota : "+ kota + "\n"+ "Umur : "+ umur + "\n"+ "NRP : "+ BP + "\n"+ "Strata : "+ strata + "\n"+ "Jurusan : "+ Jurusan; return str; static void nilai(){ Mahasiswa t = new Mahasiswa ("James Bond","Jalan Aru","Lubuk Begalung","Padang",20,"10007","Strata 1","Teknik Informatika"); System.out.println("\nJames Bond sebagai Mahasiswa Komunitas:\n"); System.out.println(t); public static void main(string[] args) { nilai(); Dari contoh Program di atas terlihat bahwa class Mahasiswa mewarisi seluruh sifat yang ada pada class Komunitas. C. POLYMORPHISM Polymorphism dapat diartikan sebagai memiliki banyak bentuk. Dua objek atau lebih dikatakan sebagai polymorphic bila kedua objek tersebut mempunyai antarmuka identik namun mempunyai perilaku yang berbeda. Dalam pemrograman, polimorfisme dapat diartikan sebagai modul yang memiliki nama sama, namun memiliki behaviour (tingkah laku) yang berbeda sehingga listing code implementasinya juga berbeda. Kondisi yang harus dipenuhi supaya polimorfisme dapat diimplementasikan adalah : Method yang dipanggil harus melalui variabel dari basis class atau superclass. Method yang dipanggil harus juga menjadi method dari basis class. Signature method harus sama baik pada superclass maupun subclass. Method access attribute pada subclass tidak boleh lebih terbatas dari basis class. Untuk dapat memahami metode polimorfisme marilah Kita lihat contoh Script di bawah ini : Disusun Oleh : Sukma Murdani, S.Kom 7

Contoh 1 : abstract class Bentuk { protected int panjang; protected int lebar; public String getbentuk() { return "Bentuk Dasar"; public abstract int hitungluas(); class BujurSangkar extends Bentuk { public BujurSangkar(int panjang1, int lebar1) { this.panjang = panjang1; this.lebar = lebar1; public String getbentuk() { return "Bentuk Bujur Sangkar"; public int hitungluas() { return panjang*lebar; class SegiTiga extends Bentuk { public SegiTiga(int panjang2, int lebar2) { this.panjang = panjang2; this.lebar = lebar2; public String getbentuk() { return "Bentuk Segitiga"; public int hitungluas() { return this.panjang*this.lebar/2; class Polimorfisme { public static void cetakluasbentuk(bentuk btk) { System.out.println(btk.getBentuk() + " dengan luas " +btk.hitungluas()); public static void main(string[] args) { BujurSangkar bs = new BujurSangkar(10,10); SegiTiga st = new SegiTiga(5,10); cetakluasbentuk(bs); cetakluasbentuk(st); Disusun Oleh : Sukma Murdani, S.Kom 8

Contoh 2 : class Mimik{ public String respons() { return("ini EkspresiKu, Mana EkspresiMu"); class Senang extends Mimik{ public String respons() { return("wk...wk...wk...yiii...haaaa..."); class Sedih extends Mimik{ public String respons() { return("hiks..hiks...aaakuu Gaalaauu..."); class Marah extends Mimik{ public String respons() { return("wwoooiii...gue Tabok Loe..!!"); class Tampil{ public static void main(string args[]) { Mimik objekspresi = new Mimik(); Senang objgembira = new Senang(); Sedih objsedih = new Sedih(); Marah objmarah = new Marah(); Mimik[] arrekspresi = new Mimik[4]; arrekspresi[0] = objekspresi; arrekspresi[1] = objgembira; arrekspresi[2] = objsedih; arrekspresi[3] = objmarah; System.out.println(""+arrEkspresi[0].respons()); System.out.println("Gue lagi seneng ne "+arrekspresi[1].respons()); System.out.println("Huh sedih banget "+arrekspresi[2].respons()); System.out.println("Arrggttthh...!! "+arrekspresi[3].respons()); Disusun Oleh : Sukma Murdani, S.Kom 9