Monday, June 15, 2020

Penjelasan dan contoh inheritance dan pholymorphism

Pengertian Inheritance (Pewarisan) Inheritance atau Pewarisan/Penurunan adalah konsep pemrograman dimana sebuah class dapat 'menurunkan' property dan method yang dimilikinya kepada class lain. Konsep inheritance digunakan untuk memanfaatkan fitur 'code reuse' untuk menghindari duplikasi kode program.
Contoh:
-Contoh inheritance atau pewarisan dalam OOP misalnya sebagai berikut. Ada class Karyawan yang memiliki atribut NIP, nama, dan jenis kelamin serta dua buah method yaitu masukKerja() dan beriNama(String nama).
package com.latihan;
public class Karyawan {
String NIP;
String nama;
String jenisKelamin;
public void masukKerja() {
System.out.println("Masuk kerja");
}
public void beriNama(String nama) {
this.nama = nama;
}
}
Dibuat class baru yaitu Dosen. Class Karyawan akan diwariskan ke class Dosen, dalam source code untuk membuat pewarisan digunakan keyword extends ketika menuliskan deklarasi class (lihat baris ke tiga di source berikut).
package com.latihan;
public class Dosen extends Karyawan {
}
Ketika class Dosen dibuat objectnya, object dosen dapat menggunakan atribut-atribut dan method-method yang dimiliki oleh kelas induk (class induk : Karyawan). Misalnya di sini dosen dapat menggunakan method masukKerja() yang dideklarasikan di class Karyawan.
package com.latihan;
public class Main {
public static void main(String[] args) {
Dosen dosen = new Dosen();
dosen.masukKerja();
}
}
Polymorphism adalah suatu object dapat memiliki berbagai bentuk, sebagai object dari class sendiri atau object dari superclassnya. Overriding: terjadi ketika deklarasi method subclass dengan nama dan parameter yang sama dengan method dari superclassnya
Contoh:
Membuat interface : 
interface MyInterface{   //method-method}
contoh dengan method
interface MyInterface{   public function bebas();   public function bebas2($param);}
Semua method di Interface harus bersifat Public (tidak boleh ada private atau protected method)
Interface + Class
Jika class ingin pakai Interface, pakai keywords implements:
class MyClass implements MyInterface{..}
1 (satu) Class bisa implement ebih dari satu interface
class MyClass implements MyInterface,MyInterface2,MyInterface3{..}
Interface bisa dibilang adalah spesifikasi dasar dari sebuah class (tergantung class yang akan memakainya)
oleh karena itu jika suatu class ingin menggunakan Interface maka semua method yang ada di interface harus terdapat di dalam Class tersebut. Namun mesti diingat bahwa Interface bukanlah Class
interface KendaraanBermotor{    public function ngeRem();    public function ngeGas();    public function mundur();}class Mobil implements KendaraanBermotor{        protected $jml_roda;        public function ngeRem(){                return "Ngerem nya pakai Tuas dikaki doang";    }    public function ngeGas(){                return "Ngegas nya pakai tuas dikaki";    }       public function mundur(){                return "Ada kontrol khusus mundur, orang gperlu turun";    }    }class Motor implements KendaraanBermotor{        protected $jml_roda;        public function ngeRem(){                return "Ngerem nya pakai Tuas dikaki atau ditangan";    }    public function ngeGas(){                return "Ngegas nya pakai tangan";    }       public function mundur(){                return "Mundur perlu turun atau dorong pake kaki";    }    }//buat Object$obj = new Mobil();echo $obj->ngeGas();echo $obj->ngeRem();echo $obj->mundur();
perhatikan dalam 2 kelas diatas semua method yang ada di interface harus ada,
 jika tidak maka error. Perhatikan juga jika kita ingin pakai Class motor, hanya
 perlu ubah satu baris kode 
$obj = new Mobil();  menjadi $obj = new Motor();
Memang sebenarnya contoh diatas terlalu mudah dan belum 'real' Polymorphism, tapi setidaknya bagi yang mulai belajar akan mendapat gambaran sedikit.
Lanjut...Setelah membuat 2 Class Motor dan Mobil seperti diatas, misalnya ternyata kita butuh 1 Class lagi  untuk berinteraksi dengan kedua class tersebut. Misal kita buat class Customer dan class Customer ini  bisa mengecek apakah mobil atau motor nya dijual dan fungsi-fungsi lainnya
(tambahkan sendiri jika perlu). 
Skenarionya adalah misalkan kita mempunyai satu aplikasi Showroom kendaraan (Khusus Mobil dan motor saja).
Kita sudah pisahkan mereka menjadi 2 Class masing-masing, namun jika ada yang hendak membeli (Customer) entah itu  membeli Mobil atau Motor, si Customer harus sudah menjadi member terdaftar di aplikasi kita.
Kita tulis ulang Kode diatas menjadi
<?phpinterface KendaraanBermotor{    public

No comments:

Post a Comment

PENGERTIAN SEMANTIK WEB dan CONTOH NYA

PENGERTIAN SEMANTIK WEB dan PENERAPAN SEMANTIK WEB Semantic web atau web semantik merupakan salah satu perkembangan pada aplikasi ...