Jumat, 13 Desember 2019

Inheritance & Polimorpis

Mengenal (ENKAPSULASI, INHERITANCE DAN POLIMORFISME,PACKAGE)Dalam Konsep OOP

Pada kesempatan kali ini saya akan membahas  mengenai Enkapsulasi,  pewarisan/Inheritance, Polimorfisme dan Package beserta contoh program. Tujuan saya membuat ini agar pembaca dapat mengerti dasar-dasar dalam pembuatan program java ini dan dapat membedakan manakah program java Enkapsulasi, Inheritance dan manakah Polimorfisme, juga dapat mengenal Package.


Enkapsulasi


Enkapsulasi adalah pembungkus, pembungkus disini dimaksudkan untuk menjaga suatu proses program agar tidak dapat diakses secara sembarangan oleh program lain. Dalam Java, dasar enkapsulasi adalah class. Anda membuat suatu class  yang menyatakan bahwa variable atau method sebuah class  tidak dapat diakses oleh class lain dengan menjadikan class tersebut private, atau menjadikan class  tersebut protected yaitu hanya bisa diakses oleh turunannya, atau menjadikan class tersebut public yaitu bisa diakses oleh sembarang class.
Dengan melakukan enkapsulasi pada data, berarti kamu membuat data dari sistemmu lebih secure dan terpercaya. Karena kamu mengetahui bagaimana data diakses dan operasi apa yang sedang berjalan pada data. Hal ini membuat maintenance program menjadi lebih mudah. Kamu juga dapat memodifikasi metode yang digunakan untuk kerja pada data, dan jika kamu tidak merubah bagaimana metode itu diminta dan tipe response dikirim balik, maka kamu tidak dapat merubah object lain dengan menggunakan metode tersebut .
Ada dua hal yang mendasar dari enkapsulasi yaitu information hiding dan interface to access data.
  • Information hidingmaksudnya adalah menyembunyikan informasi dari suatu class agar tidak bisa diakses oleh class lainnya dengan cara memberikan modifier private pada variabel yang akan disembunyikan.
  • Interface to access datasesuai dengan namanya, digunakan untuk mengakses nilai dari suatu variabel yang telah disembunyikan oleh information hiding baik itu mengambil nilai ataupun mengubah nilai. Hal ini dilakukan dengan menggunakan method, dengan method ini kita dapat mengakses variabel yang telah mengalami information hiding.
 Enkapsulasi terbagi menjadi 3 jenis, yaitu public, protected, dan private.
  • Public Merupakan suatu modifier yang memungkinkan setiap variabel maupun method yang dideklarasikan dengan  dalam class public ini dapat diakses oleh setiap class baik dalam package yang sama maupun package yang berbeda.
  • Protected Merupakan suatu modifier  yang digunakan untuk memproteksi suatu class. Sehingga hanya class dan subclass tersebutlah yang dapat mengakses varibel maupun method dalam class tersebut, baik dalam package yang sama maupun dalam package yang berbeda.
  • Private Merupakan kata kunci yang dideklarasikan dalam suatu class agar setiap variabel dan method yang berada dalam class private ini hanya dapat diakses oleh class yang sama. Didalam bahasa pemgrograman java class yang bersifat private memproteksi agar semua variabel dan methodnya tidak dapat di akses oleh semua subclass dan non subclass di package yang sama, dan subclass dan non subclass di package yang berbeda.
Contoh:
capture.pngmain
Jika modifiernya public dan protected maka variabel tersebut dapat dipanggil pada subclassnya. Sedangkan jika modifiernya private maka variabel tersebut tidak dapat dipanggil pada subclass. Dapat terlihat variabel “namaAwal” memiliki modifier private. Jadi, pada subclass yaitu class web, variabel “namaAwal” memiliki garis bawah berwarna merah yang berarti syntax tersebut error.­­
Inheritance
Pengertian Inheritance
Inheritance atau pewarisan dalam pemrograman berorientasi objek  adalah suatu teknik dimana suatu class dapat mewarisi  attribut maupun method-method yang dimilikinya pada class lain (disebut subclass).
Pewarisan adalah sifat dalam pemrograman berorientasi objek yang memungkinkan programmer untuk membuat kelas baru yang lebih spesifik ataupun di perluas dari kelas yang telah ada tanpa harus membuat ulang attribut maupun method yang sudah dideklarasikan pada class sebelumnya. (kecuali menggunakan modifier private).
Untuk menggunakan Inheritance / pewarisan, menggunakan kata kunci yaitu “extend”.
Suatu Subclass juga dapat memanggil constructor yang terdapat di superclass menggunakan kata kunci “super”. Kata kunci super juga dapat digunakan untuk merujuk pada anggota dari superclass, hal ini sama dengan penggunaan  referensi “this”.
Contoh :

Suatu Subclass juga dapat memanggil constructor yang terdapat di superclass menggunakan kata kunci “super”. Kata kunci super juga dapat digunakan untuk merujuk pada anggota dari superclass, hal ini sama dengan penggunaan  referensi “this”.
Contoh super :
2.png
Contoh turunan :
turunan.png


--> Inheritance (Pewarisan)proses pewarisan data dan method dari suatu kelas kepada            kelas lain.
--> Pewarisan bersifat menyeluruh
--> Semua data dan method milik kelas asalnya diturunkan ke kelas baru.
--> Kelas yang mewariskan Super Class atau Kelas Induk
--> Kelas yang diwariskan Sub Class atau Kelas Anak

Misal :
kelas B adalah kelas anak dari kelas A, maka sifat sifat dari kelas A
otomatis akan dimiliki juga oleh kelas B.
Jika kelas induk merupakan turunan dari kelas lain, maka data dan method
yang berasal dari kelas tersebut akan ikut diwariskan pula kepada kelas
anaknya.

Contoh :
o Kelas C adalah kelas anak dari kelas B
o Kelas B merupakan kelas anak dari kelas A.
o Maka sifat sifat yang diwariskan kelas A ke kelas B juga akan
diwariskan ke kelas C.
Keyword untuk pewarisan : extends


Contoh program Inheritance :



class Induk {
private String var1; //hak akses private berarti tidak dapat diakses oleh kls
anak
public int var2; //hak akses public berarti dapat diakses oleh kls anak
//konstruktor
Induk (){
}
//method
public void cetakData() {
}
}
class Anak extends Induk{
private String dataAnak; //variabel
//konstruktor
Anak () {
}
public void cetak() {
cetakData();//method milik Induk
// ada jg yang memanggil dgn super.cetakData()
}
}
class DemoPewarisan {
public static void main(String args[]) {
Anak anak = new Anak();
anak.cetak();
anak.cetakData();
System.out.println("Demo Pewarisan");
System.out.println("isi var 2="+anak.var2);
}
}


Output :
C:\Documents and Settings\suherman\My Documents>javac
DemoPewarisan.java
C:\Documents and Settings\suherman\My Documents>java DemoPewarisan
Demo Pewarisan
isi var 2=0

Logika :
Pada logika pada progam inheritance dan polimorfisme ini kita dapat menemukan perbedaan pada masing - masing program. Inheritance (Pewarisan) merupakan salah satu dari tiga konsep dasar OOP. Konsep inheritance ini mengadopsi dunia riil dimana suatu entitas/obyek dapat mempunyai entitas/obyek turunan. Dengan konsep inheritance, sebuah class dapat mempunyai class turunan.
Yang pertama adalah class Induk { itu digunakan untuk mennjukan kelas yang akan dipakai pada program tersebut.lalu private String var1; dan public int var2; digunakan untuk memberikan suatu ruan public dalam kelas di dalam suatu variabel. Selanjutnya class Anak extends Induk yang digunakan untuk membedakan suatu program yang terdapat di inheritance. Dan pada program inheritance dapat ditemukan suatu keuntungan jika memakai program tersebut.
Keuntungan Pewarisan :

  • Bersifat reusable
Tidak harus menyalin semua data dan method dari suatu kelas jika akan menggunakannya lagi

  • 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.


Pengertian polimorfisme


  • Polimorfisme berarti kelas-kelas yang berbeda tetapi berasal dari satu orang tua dapat mempunyai metode yang sama tetapi cara pelaksanaannya berbeda-beda. Atau dengan kata lain, suatu fungsi akan memiliki perilaku berbeda jika dilewatkan ke kelas yang berbeda-beda.
  • Polymorphism adalah suatu aksi yang memungkinkan pemrogram menyampaikan pesan tertentu keluar dari hirarki obyeknya, dimana obyek yang berbeda memberikan tanggapan/respon terhadap pesan yang sama sesuai dengan sifat masing-masing obyek.
Atau Polymorphic dapat berarti banyak bentuk, maksudnya yaitu kita dapat menimpa (override), suatu method, yang berasal dari parent class (super class) dimana object tersebut diturunkan, sehingga memiliki kelakuan yang berbeda.
Overloading method adalah suatu teknik dimana didalam suatu class terdapat method dengan nama yang sama namun prilaku yang berbeda.
Aturan penulisannya :
  1. Nama Method harus sama
  2. Parameter harus berbeda
  3. Tipe Kembalian boleh sama ataupun berbeda

Contoh program polimorfisme :

Contoh Program
class Hewan {
private String jenis;
private int kaki;
Hewan (){
}
Hewan (String jenis, int kaki){
this.jenis = jenis;
this.kaki = kaki;
}
public void bersuara() {
System.out.print("suara hewan "+jenis+" berkaki"+kaki);
}
}
class Anjing extends Hewan {
Anjing() {
super();
}
public void bersuara() { //overriding method
System.out.println("guk guk guk....");
}
}
class Kucing extends Hewan {
Kucing(String jenis, int kaki) {
super(jenis, kaki);
}
public void bersuara() { //overriding method
super.bersuara();
System.out.println( miaowwww....");
}
}
class DemoPoli {
public static void main(String args[]) {
Anjing doggy = new Anjing();
Kucing tom = new Kucing("Kucing", 4);
doggy.bersuara();
tom.bersuara();
}}



Output :

C:\Documents and Settings\suherman\My Documents>javac DemoPoli.java
C:\Documents and Settings\suherman\My Documents>java DemoPoli
guk guk guk....
suara hewan Kucing berkaki 4 miaowwww....





Logika :
Kata kunci pada program polimorfisme adalah munculnya method – method yang terdapat pada program. Untuk mencegah suatu method agar tidak dapat di override oleh kelas – kelas turunan. Contohnya pada method public void bersuara() { //overriding method. Method – method semacam ini biasanya bersifat pasti. Artinya, kelas turunan sudah tidak perlu mengimplementasikan lagi isi dari method tersebut.


Contoh overloading :
3.png
Contoh Override (Menimpa Method “hitung” dari super class “overloadingMethod”):
  1. Super class :
3
2. Sub class
override
Package
Package adalah koleksi dari beberapa class dan interface yang saling berhubungan. Package ini sangat berguna sekali saat memiliki class yang banyak. Package membantu mengelompokan class sesuai yang diinginkan. Satu hal yang menjadi catatan saat membuat package adalah melatakan class yang memiliki package yang sama dalam satu direktori / folder, dan nama folder harus sama dengan nama package.
package.png

Edit:"blog ini adalah tugas dari remedial, saya mempunyai info materi ini dari berbagai sumber, mohon maaf jika sumbernya tidak saya cantumkan dalam blog ini" 

Tidak ada komentar:

Posting Komentar

Inheritance & Polimorpis

Mengenal  (ENKAPSULASI, INHERITANCE DAN POLIMORFISME,PACKAGE) Dalam Konsep OOP Pada kesempatan kali ini saya akan membahas  mengenai Enk...