Interface #
Pengertian #
Interface dalam PHP adalah kontrak atau blueprint yang mendefinisikan metode yang harus diimplementasikan oleh kelas yang mengimplementasi interface tersebut. Interface tidak dapat berisi implementasi metode, hanya deklarasi. Interface memungkinkan pengembang untuk mendefinisikan seperangkat metode yang harus ada dalam kelas tertentu, tanpa harus memberikan implementasi dari metode tersebut.
Definisi #
Interface didefinisikan menggunakan kata kunci interface
. Metode dalam interface hanya memiliki deklarasi tanpa implementasi.
Contoh Mendefinisikan Interface:
<?php
interface Kendaraan {
public function nyalakanMesin();
public function matikanMesin();
}
?>
Penggunaan #
Mengimplementasikan Interface #
Kelas yang mengimplementasikan interface harus mendefinisikan semua metode yang ada dalam interface. Kelas menggunakan kata kunci implements
untuk mengimplementasikan interface.
Contoh Mengimplementasikan Interface:
<?php
interface Kendaraan {
public function nyalakanMesin();
public function matikanMesin();
}
class Mobil implements Kendaraan {
public function nyalakanMesin() {
echo "Mesin mobil dinyalakan.<br>";
}
public function matikanMesin() {
echo "Mesin mobil dimatikan.<br>";
}
}
$mobil = new Mobil();
$mobil->nyalakanMesin(); // Output: Mesin mobil dinyalakan.
$mobil->matikanMesin(); // Output: Mesin mobil dimatikan.
?>
Interface dengan Metode Statis #
Metode dalam interface juga dapat berupa metode statis. Metode statis dalam interface diimplementasikan dengan cara yang sama seperti metode non-statis.
Contoh Interface dengan Metode Statis:
<?php
interface Kalkulator {
public static function tambah($a, $b);
public static function kurang($a, $b);
}
class Matematika implements Kalkulator {
public static function tambah($a, $b) {
return $a + $b;
}
public static function kurang($a, $b) {
return $a - $b;
}
}
echo "5 + 3 = " . Matematika::tambah(5, 3) . "<br>"; // Output: 5 + 3 = 8
echo "5 - 3 = " . Matematika::kurang(5, 3) . "<br>"; // Output: 5 - 3 = 2
?>
Interface dan Pewarisan Berganda #
PHP tidak mendukung pewarisan berganda (multiple inheritance), tetapi mendukung implementasi beberapa interface oleh satu kelas. Ini memungkinkan fleksibilitas dalam mendesain sistem.
Contoh Implementasi Beberapa Interface:
<?php
interface Kendaraan {
public function nyalakanMesin();
public function matikanMesin();
}
interface Radio {
public function nyalakanRadio();
public function matikanRadio();
}
class Mobil implements Kendaraan, Radio {
public function nyalakanMesin() {
echo "Mesin mobil dinyalakan.<br>";
}
public function matikanMesin() {
echo "Mesin mobil dimatikan.<br>";
}
public function nyalakanRadio() {
echo "Radio dinyalakan.<br>";
}
public function matikanRadio() {
echo "Radio dimatikan.<br>";
}
}
$mobil = new Mobil();
$mobil->nyalakanMesin(); // Output: Mesin mobil dinyalakan.
$mobil->nyalakanRadio(); // Output: Radio dinyalakan.
$mobil->matikanRadio(); // Output: Radio dimatikan.
$mobil->matikanMesin(); // Output: Mesin mobil dimatikan.
?>
Interface dengan Konstanta #
Interface juga dapat mendefinisikan konstanta. Konstanta dalam interface dapat diakses menggunakan operator resolusi cakupan (::
).
Contoh Interface dengan Konstanta:
<?php
interface Ukuran {
const PANJANG = 10;
const LEBAR = 5;
}
class PersegiPanjang implements Ukuran {
public function luas() {
return self::PANJANG * self::LEBAR;
}
}
$persegiPanjang = new PersegiPanjang();
echo "Luas persegi panjang: " . $persegiPanjang->luas() . "<br>"; // Output: Luas persegi panjang: 50
?>
Kesimpulan #
Interface dalam PHP adalah alat yang kuat untuk mendefinisikan kontrak yang harus diikuti oleh kelas yang mengimplementasikannya. Dengan menggunakan interface, Anda dapat membuat desain yang lebih modular, fleksibel, dan mudah dipelihara. Interface mendukung deklarasi metode, implementasi beberapa interface oleh satu kelas, metode statis, dan konstanta, sehingga memberikan fleksibilitas yang besar dalam mendesain sistem perangkat lunak.