unisbadri.com » Python Java Golang Typescript Kotlin Ruby Rust Dart PHP
Interface

Interface #

Pengertian #

Interface adalah sebuah teknik dalam Pemrograman Berorientasi Objek (OOP) yang memungkinkan kita untuk menerapkan aturan dalam sebuah class di kode yang kita buat memiliki fungsi dan metode yang telah didefinisikan di dalam interface tersebut.

Interface merupakan sebuah cara dalam Pemrograman Berorientasi Objek (OOP) untuk melakukan abstraksi, dimana kita dapat mendefinisikan fungsi-fungsi apa saja yang berapa dalam sebuah class tanpa perlu menulis detail implementasi fungsi-fungsi tersebut terlebih dahulu.

Dalam Python, konsep “interface” tidak secara eksplisit didukung oleh bahasa seperti halnya di beberapa bahasa pemrograman lain seperti Java. Namun, kita dapat menciptakan perilaku serupa dengan menggunakan kelas abstrak dan metode abstrak.

Kelas abstrak adalah kelas yang tidak dapat diinstansiasi secara langsung dan digunakan sebagai dasar untuk kelas lain. Metode abstrak adalah metode yang dideklarasikan dalam kelas abstrak yang harus diimplementasikan oleh semua subclass konkret. Python menyediakan modul abc (Abstract Base Classes) untuk mendefinisikan kelas dan metode abstrak.

Sintaks #

Berikut adalah cara mendefinisikan interface menggunakan kelas abstrak di Python:

from abc import ABC, abstractmethod

class InterfaceKendaraan(ABC):
    @abstractmethod
    def bergerak(self):
        pass

    @abstractmethod
    def berhenti(self):
        pass

Penerapan Interface #

Interface dan Implementasi di Subclass #

from abc import ABC, abstractmethod

# Mendefinisikan interface menggunakan kelas abstrak
class InterfaceKendaraan(ABC):
    @abstractmethod
    def bergerak(self):
        pass

    @abstractmethod
    def berhenti(self):
        pass

# Implementasi interface dalam kelas konkret
class Mobil(InterfaceKendaraan):
    def bergerak(self):
        print("Mobil bergerak")

    def berhenti(self):
        print("Mobil berhenti")

class Sepeda(InterfaceKendaraan):
    def bergerak(self):
        print("Sepeda bergerak")

    def berhenti(self):
        print("Sepeda berhenti")

# Membuat objek dari kelas konkret dan menggunakan metode yang diimplementasikan
mobil = Mobil()
mobil.bergerak()  # Output: Mobil bergerak
mobil.berhenti()  # Output: Mobil berhenti

sepeda = Sepeda()
sepeda.bergerak()  # Output: Sepeda bergerak
sepeda.berhenti()  # Output: Sepeda berhenti

Penjelasan Tambahan #

  1. Kelas Abstrak (ABC): ABC adalah kelas dasar untuk mendefinisikan kelas abstrak. Kita mengimpor ABC dari modul abc.
  2. Metode Abstrak (@abstractmethod): Metode yang didekorasi dengan @abstractmethod harus diimplementasikan oleh semua subclass konkret. Jika subclass tidak mengimplementasikan metode abstrak, maka akan terjadi kesalahan saat mencoba menginstansiasi kelas tersebut.
  3. Implementasi Interface: Subclass konkret (Mobil dan Sepeda dalam contoh di atas) harus mengimplementasikan semua metode abstrak yang didefinisikan dalam kelas abstrak (InterfaceKendaraan).

Kesimpulan #

Dengan menggunakan kelas abstrak dan metode abstrak, kita dapat mencapai perilaku yang mirip dengan interface, memastikan bahwa kelas-kelas yang mengimplementasikan interface tersebut memiliki metode tertentu yang diimplementasikan.

« Kelas
Eksepsi »