Merupakan sebuah method dasar yang harus diimplementasikan ulang di dalam child class.


 Abstract Class dan Abstract Method PHP



Abstract Class adalah sebuah class yang tidak bisa di-instansiasi (tidak bisa dibuat menjadi sebuah objek) dan berperan sebagai ‘kerangka dasar’ bagi class turunannya. Di dalam abstract class umumnya akan mempunyai setidaknya satu abstract method.

Abstract Method adalah sebuah ‘method dasar’ yang harus diimplementasikan ulang di dalam class anak (child class). Abstract method sebuah method yang tidak memiliki atau mempunyai body (yang hanya mendeklarasikan method jasa), Abstract method ditulis tanpa isi dari method, melainkan hanya ‘signature’-nya saja. Signature dari sebuah method adalah bagian method yang terdiri dari nama method dan parameternya (jika ada).

Abstract class digunakan di dalam inheritance (pewarisan class) untuk ‘memaksakan’ implementasi method yang sama bagi seluruh class yang diturunkan dari abstract class. Abstract class digunakan untuk membuat struktur logika penurunan di dalam pemrograman objek.

Konsep abstract class dan abstract method akan lebih mudah dipahami dengan menggunakan contoh yang ada di bawah.

contoh =

Misalkan kita ingin membuat class yang terdiri dari berbagai jenis-jenis Hewan seperti class Kucing, class Anjing, class Kambing, dan lain-lain. Seluruh class ini tentunya memiliki sifat-sifat Hewan, seperti memiliki Suara, memiliki Bulu, memiliki kaki, memiliki buntut/ekor, dan membutuhkan Makanan. Dalam implementasinya, kita bisa membuat seluruh class ini diturunkan dari class hewan. dan bisa dengan contoh yang  lainnya.

seperti contoh gambar pada di bawah.




Abstract class memiliki aturan yang membedakannya dengan class biasa. Kita akan membahas aturan-aturan tersebut dengan menggunakan contoh program PHP.



Cara Membuat Abstract Class


Karena kita ingin membuat class komputer sebagai abstract class, maka berikut adalah cara penulisannya di dalam PHP:

<?php

abstract class hewan {

   // isi dari class hewan

}

?>

Untuk membuat abstract class di dalam PHP, kita tinggal menambahkan keyword abstract sebelum nama class. Sebuah abstract class bisa memiliki property dan method biasa layaknya sebuah class ‘normal’, namun juga bisa memiliki abstract method.

Cara Membuat Abstract Method

Jika sebuah method dinyatakan sebagai abstract method, maka kita tidak perlu membuat isi methodnya, tetapi hanya signature dari method tersebut. Signature terdiri dai nama method dan parameternya (jika ada) seperti contoh berikut:

abstract public function lihat_buntut();

abstract public function lihat_buntut($ekor);

Kenapa kita tidak perlu membuat isi dari method? Ini karena jika sebuah method dinyatakan sebagai abstract method, isi dari method tersebut akan dibuat dalam class turunan. Abstract method harus berada di dalam abstract class.

Sebagai contoh, berikut adalah cara penulisan abstract method lihat_buntut() di dalam abstract class hewan:

<?php

abstract class hewan {

   abstract public function lihat_buntut();

}

?>

Perhatikan bahwa kita tidak perlu (baca:tidak bisa) membuat isi dari abstract method.


Fungsi Abstract Class dan Abstract Method

Abstract class dan abstract method berfungsi untuk membuat ‘kerangka’ bagi seluruh class dibawahnya. Seperti contoh-contoh kita diatas, setiap class yang diturunkan dari class hewan.

Page 2

Hallo, teman-teman apa kabar? Semoga baik-baik saja ya! 

Pemrograman berorientasi objek atau OOP mempunyai beberapa pilar penting. Hal ini harus kamu pahami. Di antaranya class, object, method, dan inheritance. Dapat kamu lihat dan pelajari pada blog sebelumnya di Apa itu OOP pada Java? Beserta Contohnya.

Lalu apa itu Polimorfisme pada Java? Ingin lebih tahu? Mari kita simak langsung penjelasan berikut ini.

Belajar pemrograman di Dicoding Academy dan mulai perjalanan Anda sebagai developer profesional.

Daftar Sekarang

Pengertian Polimorfisme

Polimorfisme terbagi menjadi dua suku kata yaitu, Poly yang berarti banyak dan Morfisme yang berarti bentuk. Dalam ilmu sains, Polimorfisme (polymorphism) adalah sebuah prinsip dalam biologi di mana organisme atau spesies memiliki banyak bentuk serta tahapan (stages). Prinsip tersebut diterapkan juga pada bahasa Java.

Polimorfisme dalam OOP merupakan sebuah konsep OOP di mana class memiliki banyak “bentuk” method yang berbeda, meskipun namanya sama. Maksud dari “bentuk” adalah isinya yang berbeda, namun tipe data dan parameternya berbeda.

Polimorfisme juga dapat diartikan sebagai teknik programming yang mengarahkan kamu untuk memprogram secara general daripada secara spesifik. Contohnya kita memiliki tiga class yang berbeda yaitu: “Kelinci”, “Kucing”, dan “Sapi”. Di mana ketiga class tersebut merupakan turunan dari class “Hewan”.

Sejalan dengan contoh yang diberikan, kamu diharapkan dapat mengerti dan memahami konsep polimorfisme itu sendiri.

Polimorfisme pada Java memiliki 2 macam yaitu diantaranya:

  1. Static Polymorphism (Polimorfisme statis).
  2. Dynamic Polymorphism (Polimorfisme dinamis).

Perbedaan keduanya terletak pada cara membuat polimorfisme. Polimorfisme statis menggunakan method overloading, sedangkan polimorfisme dinamis menggunakan method overriding

Jika sebelumnya kamu belum tahu perbedaan antara method overloading dan method overriding, maka kita akan bahasa juga perbedaan dari keduanya.

Perbedaan Method Overloading dan Method Overriding

Baik teman-teman, method overloading terjadi pada sebuah class yang memiliki nama method yang sama tapi memiliki parameter dan tipe data yang berbeda.

Ingat! Intinya dalam sebuah class memiliki method yang sama, namun parameter dan tipe data yang berbeda. 

Tujuan dari method overloading yaitu memudahkan penggunaan atau pemanggilan method dengan fungsionalitas yang mirip.

Aturan Method Overloading

  • Nama method harus sama dengan method lainnya.
  • Parameter haruslah berbeda.
  • Return boleh sama, juga boleh berbeda.

Inilah contohnya.

Misal kamu membuat sebuah class dengan nama Cetak.java. Pada class ini mempunyai method maxNumber(). Perhatikan kode program dibawah ini.

Kode Lab:

    // Method sama namun parameter berbeda

    static double maxNumber(double a, double b) {

    // Method sama, namun parameter berbeda

    static int maxNumber(int a, int b) {  

    public static void main(String[] argrs) {

        System.out.println(maxNumber(5.5, 7.5));

        System.out.println(maxNumber(10, 20));


Maka Outputnya: 5.5

10

Video yang berhubungan

Postingan terbaru

LIHAT SEMUA