Lompat ke konten Lompat ke sidebar Lompat ke footer

Interface dan Inheritance Java dan Fungsinya

Sebuah class dapat extend ke class lainnya dan atau dapat melakukan implement sekali atau lebih dari satu interface seperti diperlihatkan pada gambar 1Multiple inheritance tidak didukung oleh class Java karena hal tersebut menyebabkan ketidakjelasan atau ambiguistas pada program. Namun, dalam interface tidak terdapat ambiguitas karena implementasi menuju method disediakan oleh class implementasi.


Sebelum lebih lanjut mempelajari materi tentang Interface dan Inheritance Java dan Fungsinya, terlebih dahulu pelajari materi tentang: Multiple Inheritance Java dan Fungsinya, Membuat Object Java dari Class Turunan dan Fungsinya, dan Inheritance dan Constructor Java dan Fungsinya.

Dalam pemrograman berorientasi objek (OOP), interface dan pewarisan (inheritance) adalah dua konsep yang penting dalam membangun struktur yang efisien dan fleksibel dalam aplikasi Java. Artikel ini akan menjelaskan bagaimana interface dan pewarisan bekerja bersama dalam Java, serta fungsinya dalam pengembangan perangkat lunak.

Interface dalam Java

Interface adalah kontrak yang mendefinisikan metode (tanpa implementasi) yang harus diimplementasikan oleh kelas-kelas yang mengadopsinya. Dalam Java, interface didefinisikan menggunakan kata kunci interface. Berikut adalah contoh sederhana penggunaan interface dalam Java:

Contoh:

// Definisikan sebuah

// interface

interface Drawable 

{void draw();}


// Implementasikan interface

// dalam sebuah kelas

class Circle implements 

Drawable {


public void draw() {

System.out.println(

"Drawing a circle.");}

}


// Main class untuk 

// menjalankan program

public class Main {

public static void 

main(String[] args) {

Circle circle = new Circle();

circle.draw();}

}

Dari contoh yang diperlihatkan sebelumnya, Drawable adalah sebuah interface yang mendefinisikan satu metode, yaitu draw(). Kelas Circle mengimplementasikan interface Drawable dan harus menyediakan implementasi untuk metode draw().

Pewarisan dan Interface dalam Java

Pewarisan dalam Java memungkinkan kelas untuk mewarisi sifat-sifat dan perilaku dari kelas lain (kelas induk). Interface, di sisi lain, memungkinkan kelas untuk menyediakan implementasi untuk metode yang didefinisikan dalam interface tersebut. Dalam Java, sebuah kelas dapat mewarisi dari satu kelas induk dan mengimplementasikan beberapa interface. Berikut adalah contoh penggunaan pewarisan dan interface dalam Java:

Contoh:

// Definisikan sebuah

// interface

interface Drawable {

void draw();}


// Definisikan sebuah kelas

class Shape {

void display() {

System.out.println(

"Displaying a shape.");}

}


// Implementasikan interface

// dan pewarisan dalam sebuah

// kelas

class Circle extends Shape 

implements Drawable {

public void draw() {

System.out.println(

"Drawing a circle.");}

}


// Main class untuk 

// menjalankan program

public class Main {

public static void 

main(String[] args) {

Circle circle = new Circle();


// Menjalankan metode

// dari kelas induk

circle.display(); 


// Menjalankan metode

// dari interface

circle.draw(); }

}

Berdasarkan contoh yang diperlihatkan sebelumnya, kelas Circle mewarisi sifat-sifat dari kelas Shape dan mengimplementasikan interface Drawable. Ini memungkinkan kelas Circle untuk menyediakan implementasi untuk metode draw() dari interface Drawable dan metode display() dari kelas Shape.

Baca Juga:

Contoh:

// Program Java

// mendemonstrasikan bahwa

// sebuah class dapat

// implement multiple

// interface.

import java.io.*;

interface intfA

{void m1();}

 

interface intfB

{void m2();}

 

// class melakukan implement

// antar kedua interface dan

// menyediakan implementasi

// menuju method.

class sample implements intfA, intfB

{

@Override

public void m1()

{System.out.println("Welcome:"

+" dalam method m1");}

 

@Override

public void m2()

{System.out.println("Welcome:"

+" dalam method m2");}

}

 

class MKN

{

public static void main (String[] args)

{sample ob1 = new sample();

// memanggil method implement

// bersamaan dengan class.

ob1.m1();

ob1.m2();}

}

Output:
Welcome: dalam method m1
Welcome: dalam method m2

Gambar 1 Interface dan Inheritance pada Java
Gambar 1 Interface dan Inheritance pada Java

Interface inheritance: Interface dapat extend interface lainnya seperti diperlihatkan pada gambar 2.

Gambar 2 Interface dapat extend interface pada Java
Gambar 2 Interface dapat extend interface pada Java

Contoh:

// Program Java

// mendemonstrasikan

// inheritance dalam

// interface.

import java.io.*;

interface intfA

{void idName();}

 

interface intfB extends intfA

{void idInstitute();}

 

// class implement kedua

// interface dan menyediakan

// implementasi menuju method.

class sample implements intfB

{

@Override

public void idName()

{System.out.println("Rohit");}

 

@Override

public void idInstitute()

{System.out.println("JIIT");}

 

public static void main (String[] args)

{

sample ob1 = new sample();

 

// memanggil method implement

// dalam class.

ob1.idName();

ob1.idInstitute();}

}

Output:
Rohit
JIIT

Contoh: Interface juga dapat extend multiple interface.

// Program Java

// mendemonstrasikan multiple

// inheritance dalam

// interface.

import java.io.*;

interface intfA

{void idName();}

 

interface intfB

{void idInstitute();}

 

interface intfC extends intfA, intfB

{void idBranch();}

 

// class implement kedua

// interface dan menyediakan

// implementasi menuju method.

class sample implements intfC

{

public void idName()

{System.out.println("Rohit");}

 

public void idInstitute()

{System.out.println("JIIT");}

 

public void idBranch()

{System.out.println("CSE");}

 

public static void main (String[] args)

{sample ob1 = new sample();

// memanggil method

// implementasi dalam class.

ob1.idName();

ob1.idInstitute();

ob1.idBranch();}

}

Output:
Rohit
JIIT
CSE

Fungsi interface dan pewarisan dalam pengembangan perangkat lunak:
  • Fleksibilitas dalam Desain: Interface memberikan fleksibilitas dalam desain aplikasi dengan memisahkan kontrak antara kelas-kelas yang mengadopsinya dan implementasi konkretnya. Hal ini memungkinkan pengembang untuk mengganti implementasi tanpa mempengaruhi kelas-kelas lain yang bergantung padanya.
  • Penggunaan Kode yang Dapat Digunakan Kembali: Pewarisan memungkinkan kelas untuk mewarisi sifat-sifat dan perilaku dari kelas induk tanpa perlu menuliskan ulang kode yang sudah ada. Ini memungkinkan penggunaan kembali kode yang efisien dan mengurangi duplikasi kode.
  • Peningkatan Polimorfisme: Dengan memungkinkan sebuah kelas untuk mengimplementasikan beberapa interface, Java memungkinkan untuk meningkatkan polimorfisme dalam aplikasi. Ini memungkinkan penggunaan objek dari kelas-kelas yang berbeda dengan cara yang konsisten melalui antarmuka yang sama.
  • Struktur yang Terorganisir: Pewarisan dan interface membantu dalam membangun struktur yang terorganisir dan mudah dimengerti dalam kode. Dengan membagi kode ke dalam kelas-kelas yang sesuai dengan fungsionalitas kode program dan mengadopsi interface yang sesuai, pengembang dapat memperjelas tujuan dan tanggung jawab setiap kelas.

Meskipun interface dan pewarisan memiliki banyak manfaat dan fungsi, namun terdapat juga beberapa kekurangan yang perlu dipertimbangkan:
  • Keterbatasan pada Pewarisan:
    • Keterbatasan pada Pewarisan Tunggal: Dalam Java, sebuah kelas hanya dapat mewarisi sifat-sifat dari satu kelas induk langsung. Ini dapat menjadi keterbatasan dalam situasi di mana sebuah kelas memerlukan sifat-sifat dari beberapa kelas lainnya.
    • Ketergantungan yang Tinggi: Ketika sebuah kelas mewarisi sifat-sifat dari kelas induknya, hal itu membuatnya tergantung pada struktur hierarki kelas. Perubahan pada kelas induk dapat memengaruhi banyak kelas turunan, dan sebaliknya, meningkatkan ketergantungan yang tinggi antar kelas.
  • Keterbatasan pada Interface:
    • Keterbatasan Implementasi: Interface hanya dapat mendefinisikan kontrak metode tanpa memberikan implementasi. Ini dapat menjadi keterbatasan jika sebuah kelas perlu mengimplementasikan banyak metode dari beberapa interface, karena harus menuliskan implementasi untuk setiap metode tersebut.
    • Ketergantungan pada Implementasi: Ketika sebuah kelas mengadopsi sebuah interface, itu harus menyediakan implementasi untuk semua metode yang didefinisikan dalam interface tersebut. Hal ini meningkatkan ketergantungan pada implementasi kelas terkait dan dapat menyebabkan kesulitan dalam pemeliharaan dan pengembangan kode.
  • Kompleksitas:
    • Kompleksitas Hierarki: Dengan penggunaan yang berlebihan, interface dan pewarisan dapat menyebabkan kompleksitas yang tinggi dalam hierarki kelas. Hal ini dapat membuat pemahaman terhadap struktur program menjadi sulit, terutama dalam proyek-proyek besar yang melibatkan banyak kelas.
    • Konflik Nama dan Ambiguitas: Dalam situasi di mana sebuah kelas mewarisi metode atau variabel dengan nama yang sama dari beberapa sumber, seperti kelas induk dan interface yang diadopsi, dapat terjadi konflik nama atau ambiguitas. Hal ini dapat menyulitkan dalam pemahaman kode dan memperbaiki masalah yang muncul.
  • Fleksibilitas Terbatas:
    • Keterbatasan pada Perubahan Struktur: Ketika sebuah kelas mewarisi sifat-sifat dari kelas induknya atau mengadopsi sebuah interface, itu membuat struktur kelas menjadi lebih kaku. Perubahan pada struktur pewarisan atau pengadopsian interface dapat memerlukan perubahan besar dalam kode, yang dapat menyebabkan masalah dan kerugian waktu.

Kesimpulan

Interface dan pewarisan adalah dua konsep penting dalam pemrograman berorientasi objek dalam Java. Dengan memahami bagaimana interface dan pewarisan bekerja bersama-sama, pengembang dapat merancang dan mengimplementasikan struktur yang efisien, fleksibel, dan mudah dipelihara dalam aplikasi Java. Dengan menggunakan fitur-fitur ini dengan baik, pengembang dapat meningkatkan kualitas, fleksibilitas, dan skalabilitas dari kode program.

Referensi Tambahan:

Artikel ini didedikasikan kepada: Aulia El Vaneza, Azzam Fattahulhaq Santoso, Cicik Munfarida, Deviana Puput Saputri, dan Elian Anindia Permatasari.

5 komentar untuk "Interface dan Inheritance Java dan Fungsinya"

  1. Apa yang dimaksud dengan inheritance Java?

    BalasHapus
    Balasan
    1. Interface pada Java adalah cetak biru dari sebuah class. Interface memiliki static constants dan abstract method. Interface pada Java adalah mekanisme untuk mencapai sebuah abstract dan multiple inheritance.

      Hapus
  2. Bagaimana cara mengimplementasikan interface pada Java?

    BalasHapus
    Balasan
    1. Interface adalah class abstract yang digunakan untuk mengelompokkan method terkait dengan empty body yang digunakan. Untuk mengakses method interface, maka interface harus diimplementasikan ke class lain dengan keyword implements.

      Hapus
  3. Interface dalam pemrograman Java didefinisikan sebagai tipe abstract yang digunakan untuk menentukan perilaku dardi sebuah class. Interface Java berisi konstanta static dan method abstract. Sebuah class pada Java dapat mengimplementasikan banyak interface. Pada Java, interface dideklarasikan dengan menggunakan keyword interface.

    BalasHapus

Hubungi admin melalui Wa : +62-896-2414-6106

Respon komentar 7 x 24 jam, mohon bersabar jika komentar tidak langsung dipublikasi atau mendapatkan balasan secara langsung.

Bantu admin meningkatkan kualitas blog dengan melaporkan berbagai permasalahan seperti typo, link bermasalah, dan lain sebagainya melalui kolom komentar.

- Ikatlah Ilmu dengan Memostingkannya -
- Big things start from small things -