[email protected] +62818-738-628

Pengertian Interface dan Perbedaan dengan Class pada OOP PHP

  • Admin
  • OOP PHP

Pengertian Interface pada OOP PHP

Pada OOP PHP, interface dapat diartikan sebagai sekumpulan metode yang didefinisikan tanpa adanya implementasi pada class itu sendiri. Interface berguna sebagai template atau blueprint bagi class-class yang akan mengimplementasikannya. Dalam penggunaannya, interface pada OOP PHP sering kali digunakan untuk mengatasi keterbatasan single inheritance pada class. Dalam artian, sebuah class dapat mengimplementasikan lebih dari satu interface, sehingga class tersebut bisa memiliki banyak metode dan properti dari beberapa interface yang berbeda-beda.

Fungsi dan kegunaan Interface pada OOP PHP

Interface pada OOP PHP berfungsi sebagai kontrak antara class dengan penggunanya, yang memungkinkan para developer untuk membuat class-class dengan cara yang lebih konsisten dan terstruktur. Hal ini akan membantu pengembangan aplikasi yang lebih baik dan mempermudah dalam pemeliharaan kode program. Selain itu, interface pada OOP PHP juga membantu dalam penggunaan polimorfisme, yakni kemampuan untuk membuat banyak class dengan nama yang sama namun memiliki perilaku yang berbeda-beda. Dengan interface, para developer dapat membuat class-class yang memiliki metode-metode yang sama namun memiliki implementasi yang berbeda-beda.

Perbedaan antara Class dan Interface pada OOP PHP

Object-Oriented Programming (OOP) adalah paradigma pemrograman yang berfokus pada objek, di mana objek tersebut dapat memiliki property dan method. Dalam OOP PHP, terdapat dua konsep utama yang digunakan dalam membuat objek, yaitu class dan interface. Class adalah sebuah blueprint atau cetakan yang digunakan untuk membuat objek. Class memiliki property dan method yang digunakan untuk mengelola data yang ada di dalam objek. Sedangkan, interface adalah sebuah kontrak atau aturan yang harus didefinisikan oleh class yang mengimplementasikan interface tersebut. Dalam class, kita dapat menentukan property atau atribut yang dimiliki oleh objek tersebut. Sedangkan dalam interface, kita hanya dapat menentukan metode atau fungsi yang harus didefinisikan oleh class yang mengimplementasikan interface tersebut.

Perbedaan utama antara class dan interface pada OOP PHP terletak pada implementasinya. Sebuah class memiliki implementasi pada metodenya, sementara interface tidak memiliki implementasi. Selain itu, sebuah class hanya dapat meng-extend satu class, sedangkan sebuah class dapat mengimplementasikan lebih dari satu interface.

Contoh Penggunaan Class pada OOP PHP

Berikut adalah contoh penggunaan class pada OOP PHP :

class Mobil {
  public $merk;
  public $tahun;
  
  public function jalan() {
    echo "Mobil berjalan...";
  }
  
  public function berhenti() {
    echo "Mobil berhenti...";
  }
}

$mobil = new Mobil();
$mobil->merk = "Toyota";
$mobil->tahun = "2021";
$mobil->jalan(); // Output: Mobil berjalan...
$mobil->berhenti(); // Output: Mobil berhenti...

Pada contoh di atas, kita membuat sebuah class bernama "Mobil" yang memiliki dua properti yaitu "merk" dan "tahun", serta dua metode yaitu "jalan" dan "berhenti". Kemudian, kita membuat objek dari class "Mobil" dan mengakses properti serta metodenya.

Contoh Penggunaan Interface pada OOP PHP

Berikut adalah contoh penggunaan interface pada OOP PHP :

interface Kendaraan {
  public function jalan();
  public function berhenti();
}

class Mobil implements Kendaraan {
  public function jalan() {
    echo "Mobil berjalan...";
  }

  public function berhenti() {
    echo "Mobil berhenti...";
  }
}

class Sepeda implements Kendaraan {
  public function jalan() {
    echo "Sepeda berjalan...";
  }

  public function berhenti() {
    echo "Sepeda berhenti...";
  }

  public function bawaBarang() {
    echo "Sepeda membawa barang...";
  }
}

$mobil = new Mobil();
$mobil->jalan(); // Output: Mobil berjalan...
$mobil->berhenti(); // Output: Mobil berhenti...

$sepeda = new Sepeda();
$sepeda->jalan(); // Output: Sepeda berjalan...
$sepeda->berhenti(); // Output: Sepeda berhenti...
$sepeda->bawaBarang(); // Output: Sepeda membawa barang...

Pada contoh di atas, kita membuat sebuah interface bernama "Kendaraan" dengan dua metode yaitu "jalan" dan "berhenti". Kemudian, kita membuat dua class yaitu "Mobil" dan "Sepeda" yang mengimplementasikan interface "Kendaraan". Ketika sebuah class mengimplementasikan sebuah interface, maka class tersebut harus mendefinisikan ulang atau mengimplementasikan semua metode yang ada di dalam interface tersebut.
Pada contoh di atas, class "Mobil" dan "Sepeda" mendefinisikan ulang atau mengimplementasikan metode "jalan" dan "berhenti" yang ada di dalam interface "Kendaraan". Selain itu, class "Sepeda" juga memiliki metode tambahan yaitu "bawaBarang" yang tidak ada di dalam interface "Kendaraan".

Berikut adalah beberapa perbedaan antara class dan interface pada OOP PHP :

  • Properti dan Metode

Class memiliki properti dan metode yang digunakan untuk mengelola data yang ada di dalam objek, sedangkan interface hanya memiliki metode atau fungsi yang harus didefinisikan oleh class yang mengimplementasikan interface tersebut.

  • Implementasi

Class dapat langsung diinstansiasi menjadi objek, sedangkan interface tidak dapat langsung diinstansiasi menjadi objek. Interface harus diimplementasikan oleh sebuah class terlebih dahulu.

  • Mendefinisikan Aturan

Class dapat digunakan untuk mendefinisikan suatu aturan atau template untuk membuat objek, sedangkan interface digunakan untuk mendefinisikan aturan atau kontrak yang harus didefinisikan oleh class yang mengimplementasikan interface tersebut.

  • Inheritance

Class dapat menggunakan konsep inheritance untuk mewarisi properti dan metode dari class yang lebih tinggi, sedangkan interface tidak dapat menggunakan konsep inheritance.

  • Multiple Inheritance

Dalam OOP PHP, sebuah class tidak dapat mengimplementasikan multiple class secara langsung, namun dapat menggunakan konsep inheritance. Sedangkan, sebuah class dapat mengimplementasikan multiple interface secara langsung.

Keuntungan Menggunakan Interface pada OOP PHP

Dalam penggunaannya, interface pada OOP PHP memiliki beberapa keuntungan, di antaranya :

  1. Meningkatkan fleksibilitas kode program. Dengan penggunaan interface, para developer dapat membuat class-class yang dapat digunakan secara luas pada berbagai situasi, karena setiap class tersebut harus memenuhi kontrak yang ditetapkan oleh interface.
  2. Meningkatkan kemudahan dalam pengembangan. Dalam pengembangan aplikasi, penggunaan interface pada OOP PHP mempermudah proses debugging dan refactoring. Karena setiap class yang mengimplementasikan interface harus memenuhi kontrak yang ditetapkan oleh interface, maka jika ada kesalahan pada implementasi class tersebut, maka kesalahan tersebut dapat diidentifikasi dan diperbaiki lebih mudah.
  3. Meningkatkan keterbacaan dan pemeliharaan kode program. Dengan penggunaan interface pada OOP PHP, class-class yang dibuat akan lebih mudah dibaca dan dipelihara, karena setiap class akan mempunyai metode-metode yang sudah ditetapkan dan didefinisikan pada interface.

Dalam pengembangan aplikasi menggunakan OOP PHP, penggunaan interface sangatlah penting untuk mempermudah proses pengembangan dan pemeliharaan kode program. Dengan menggunakan interface, para developer dapat membuat class-class yang lebih terstruktur, konsisten, dan mudah dibaca. Penggunaan interface pada OOP PHP juga memungkinkan penggunaan polimorfisme, yakni kemampuan untuk membuat banyak class dengan nama yang sama namun memiliki perilaku yang berbeda-beda. Sehingga, penggunaan interface pada OOP PHP dapat mempermudah proses pengembangan aplikasi yang lebih kompleks.
Dalam pengembangan aplikasi menggunakan OOP PHP, para developer dapat mengembangkan lebih lanjut konsep-konsep yang terkait dengan penggunaan interface. Misalnya, dengan menggunakan abstract class yang juga merupakan konsep OOP PHP lainnya yang dapat meningkatkan fleksibilitas dalam pengembangan aplikasi. Dalam hal ini, para developer perlu belajar lebih lanjut tentang OOP PHP dan konsep-konsep yang terkait, sehingga dapat mengembangkan aplikasi yang lebih baik dan efisien.

Referensi :

  1. The PHP Manual: Interface - https://www.php.net/manual/en/language.oop5.interfaces.php
  2. Object-Oriented Programming in PHP - https://www.geeksforgeeks.org/object-oriented-programming-in-php/
  3. PHP OOP Tutorial: Abstract Classes & Interfaces - https://www.codecademy.com/learn/learn-php/modules/php-abstract-classes-and-interfaces