Sitemap
Bagus Manggala Yudha

Bagus Manggala Yudha

PBO: Interface

8 min read1 day ago

--

Press enter or click to view image in full size

Halo Semuanya!

Saya Bagus Manggala Yudha, mahasiswa Teknologi Informasi di Universitas Tidar. Pada Praktikum Pemrograman Berorientasi Objek kali ini, kita akan mempelajari tentang Interface pada bahasa pemrograman Java di software NetBeans.

1. PENDAHULUAN

1.1 Tujuan Praktikum

Tujuan dari praktikum ini adalah:

  1. Memahami konsep dan tujuan penggunaan interface dalam Pemrograman Berorientasi Objek (PBO).
  2. Mampu membuat dan mengimplementasikan interface pada kelas Java.
  3. Memahami penggunaan keyword implements dalam mengimplementasikan interface.
  4. Memahami konsep inheritance pada interface.
  5. Mampu menggunakan interface untuk menciptakan abstraksi yang dapat diterapkan pada berbagai kelas.
  6. Memahami penerapan multiple interface dalam bahasa pemrograman Java.

1.2 Dasar Teori

A. Pengertian Interface

Interface merupakan salah satu konsep dalam Pemrograman Berorientasi Objek (PBO) yang berfungsi sebagai kontrak atau aturan bagi kelas yang mengimplementasikannya.

Dalam Java, interface digunakan untuk mendefinisikan metode tanpa implementasi. Artinya, interface hanya menentukan metode apa saja yang harus dimiliki oleh sebuah kelas, sedangkan isi atau logika dari metode tersebut ditentukan oleh kelas yang mengimplementasikannya.

Interface memiliki kemiripan dengan kelas abstrak, tetapi keduanya mempunyai perbedaan. Interface lebih berfokus pada pendefinisian kontrak implementasi yang harus dipenuhi oleh suatu kelas.

Secara default:

  • Metode dalam interface bersifat public dan abstract.
  • Variabel dalam interface bersifat public, static, dan final.
  • Interface tidak dapat dibuat objeknya secara langsung.

B. Mengimplementasikan Interface

Untuk menggunakan interface pada sebuah kelas, Java menyediakan keyword implements.

Ketika sebuah kelas mengimplementasikan interface, kelas tersebut harus menyediakan implementasi untuk seluruh metode abstrak yang didefinisikan dalam interface.

Contoh deklarasi:

interface Operasi {
int hitung(int a, int b);
}
class Penjumlahan implements Operasi {
@Override
public int hitung(int a, int b) {
return a + b;
}
}

Pada contoh tersebut, kelas Penjumlahan mengimplementasikan interface Operasi dan memberikan isi pada metode hitung().

Apabila sebuah kelas tidak mengimplementasikan seluruh metode abstrak dari interface, kelas tersebut harus dideklarasikan sebagai kelas abstrak.

C. Inheritance pada Interface

Inheritance pada interface merupakan konsep pewarisan yang memungkinkan sebuah interface mewarisi interface lainnya menggunakan keyword extends.

Dengan konsep ini, sebuah interface dapat memperoleh metode dari interface lain dan menggabungkannya dengan metode yang dimilikinya sendiri.

Selain itu, sebuah kelas juga dapat mengimplementasikan lebih dari satu interface sehingga memungkinkan penggunaan beberapa kontrak atau fungsi dalam satu kelas.

D. Implementasi Multiple Interface

Multiple interface merupakan kemampuan sebuah kelas untuk mengimplementasikan lebih dari satu interface sekaligus.

Dengan fitur ini, sebuah kelas dapat memiliki beberapa fungsi atau tanggung jawab yang berasal dari interface berbeda.

Contohnya, sebuah kelas dapat mengimplementasikan interface Pembayaran dan interface CetakStruk secara bersamaan.

Jika sebuah kelas juga mewarisi kelas lain, urutan penulisannya adalah extends terlebih dahulu, kemudian implements.

E. Kegunaan Interface

Interface memiliki beberapa kegunaan dalam pengembangan program, yaitu:

  1. Menentukan standar metode yang harus dimiliki oleh kelas tertentu.
  2. Membantu menciptakan abstraksi dalam program.
  3. Mempermudah pengembangan program karena setiap kelas dapat memiliki implementasi metode yang berbeda.
  4. Mendukung penggunaan multiple interface.
  5. Meningkatkan fleksibilitas dan skalabilitas aplikasi.
  6. Memungkinkan beberapa kelas memiliki kemampuan atau tanggung jawab yang sama meskipun implementasinya berbeda.

F. Karakteristik Interface

Beberapa karakteristik interface dalam Java adalah:

  1. Deklarasi Metode Tanpa Implementasi: Interface mendefinisikan metode tanpa memberikan isi implementasinya.
  2. Multiple Inheritance: Sebuah kelas dapat mengimplementasikan lebih dari satu interface.
  3. Keyword Implements: Kelas yang menggunakan interface harus menggunakan keyword implements.

G. Perbedaan Interface dan Kelas Abstrak

Interface dan kelas abstrak memiliki beberapa persamaan, tetapi terdapat perbedaan dalam penggunaannya.

InterfaceKelas AbstrakMetode abstrak secara default bersifat publicDapat memiliki metode abstrak dan konkretMendukung multiple inheritance melalui implementasi beberapa interfacePewarisan kelas hanya mendukung satu superclass langsungTidak memiliki konstruktorDapat memiliki konstruktorDigunakan untuk menyusun kontrak implementasiDigunakan untuk generalisasi perilaku

2. ALAT DAN BAHAN

Alat dan bahan yang digunakan dalam praktikum ini adalah:

  1. Laptop atau komputer.
  2. Koneksi internet.
  3. Web Browser seperti Google Chrome, Mozilla Firefox, atau Microsoft Edge.
  4. JDK (Java Development Kit).
  5. NetBeans IDE sebagai aplikasi untuk menulis dan menjalankan program Java.

3. LANGKAH KERJA PRAKTIKUM

3.1 Persiapan

Sebelum memulai praktikum, dilakukan beberapa persiapan sebagai berikut:

  1. Membuka aplikasi NetBeans IDE yang sudah terinstal pada komputer.
  2. Membuat proyek baru dengan nama PraktikumPBO_10.
  3. Membuat package baru dengan nama praktikum10.
  4. Menyiapkan beberapa file Java yang akan digunakan dalam praktikum.

3.2 Membuat dan Mengimplementasikan Interface

Pada praktikum ini dibuat sebuah program sederhana menggunakan interface dengan studi kasus operasi hitung.

Program terdiri dari tiga bagian utama, yaitu:

  • Interface OperasiHitung.
  • Kelas Penjumlahan.
  • Kelas Pengurangan.

Selain itu, terdapat kelas Main yang digunakan untuk menjalankan program.

A. Membuat Interface OperasiHitung

Langkah pertama adalah membuat sebuah interface bernama OperasiHitung.

Kode program:

public interface OperasiHitung {
int hitung(int a, int b);
}

Penjelasan:

  1. public interface OperasiHitung digunakan untuk mendeklarasikan interface dengan nama OperasiHitung.
  2. int hitung(int a, int b) merupakan metode yang menerima dua parameter bertipe integer.
  3. Metode hitung() tidak memiliki implementasi karena hanya berfungsi sebagai kontrak bagi kelas yang menggunakannya.

Interface ini nantinya akan diimplementasikan oleh kelas Penjumlahan dan Pengurangan.

B. Membuat Kelas Penjumlahan

Selanjutnya, buat kelas bernama Penjumlahan yang mengimplementasikan interface OperasiHitung.

Kode program:

public class Penjumlahan implements OperasiHitung {
@Override
public int hitung(int a, int b) {
return a + b;
}
}

Penjelasan:

  1. implements OperasiHitung menunjukkan bahwa kelas Penjumlahan menggunakan interface OperasiHitung.
  2. @Override menunjukkan bahwa metode hitung() merupakan implementasi dari metode yang didefinisikan dalam interface.
  3. public int hitung(int a, int b) merupakan implementasi metode untuk melakukan operasi penjumlahan.
  4. return a + b digunakan untuk mengembalikan hasil penjumlahan kedua bilangan.

Dengan demikian, kelas Penjumlahan memberikan implementasi berupa operasi penjumlahan terhadap dua angka.

C. Membuat Kelas Pengurangan

Get Bagus Manggala Yudha’s stories in your inbox

Join Medium for free to get updates from this writer.

Selanjutnya, buat kelas bernama Pengurangan yang juga mengimplementasikan interface OperasiHitung.

Kode program:

public class Pengurangan implements OperasiHitung {
@Override
public int hitung(int a, int b) {
return a - b;
}
}

Penjelasan:

  1. implements OperasiHitung menunjukkan bahwa kelas Pengurangan mengimplementasikan interface OperasiHitung.
  2. @Override digunakan untuk menandai implementasi ulang metode hitung().
  3. return a - b digunakan untuk melakukan operasi pengurangan terhadap dua bilangan.

Meskipun kelas Penjumlahan dan Pengurangan menggunakan interface yang sama, keduanya memiliki implementasi metode hitung() yang berbeda.

D. Membuat Main Class

Setelah interface dan kedua kelas selesai dibuat, langkah selanjutnya adalah membuat kelas utama bernama Main.

Kode program:

public class Main {
public static void main(String[] args) {
// Objek Penjumlahan
OperasiHitung penjumlahan = new Penjumlahan();
System.out.println("Penjumlahan: "
+ penjumlahan.hitung(10, 5));
// Objek Pengurangan
OperasiHitung pengurangan = new Pengurangan();
System.out.println("Pengurangan: "
+ pengurangan.hitung(10, 5));
}
}

Penjelasan:

  1. public static void main(String[] args) merupakan metode utama yang pertama kali dijalankan ketika program dieksekusi.
  2. OperasiHitung penjumlahan = new Penjumlahan() membuat objek Penjumlahan menggunakan referensi bertipe OperasiHitung.
  3. penjumlahan.hitung(10, 5) memanggil metode hitung() dari kelas Penjumlahan.
  4. OperasiHitung pengurangan = new Pengurangan() membuat objek Pengurangan menggunakan referensi bertipe OperasiHitung.
  5. pengurangan.hitung(10, 5) memanggil metode hitung() dari kelas Pengurangan.

Penggunaan interface sebagai tipe referensi memungkinkan objek dari kelas berbeda diperlakukan melalui kontrak metode yang sama.

3.3 Menjalankan Program

Setelah seluruh kelas selesai dibuat, jalankan program melalui kelas Main.

Langkah-langkahnya:

  1. Pastikan seluruh file Java sudah berada dalam package praktikum10.
  2. Klik kanan pada file Main.java.
  3. Pilih menu Run File.
  4. Perhatikan hasil keluaran program pada bagian Output.

Output yang ditampilkan:

Hasil tersebut menunjukkan bahwa interface OperasiHitung berhasil diimplementasikan oleh kedua kelas dengan fungsi yang berbeda.

4. TUGAS MODUL

4.1 Studi Kasus: Sistem Pembayaran Toko

Pada tugas modul ini dibuat sebuah program sistem pembayaran sederhana untuk sebuah toko yang menjual dua jenis produk, yaitu Elektronik dan Makanan.

Setiap jenis produk memiliki metode untuk menghitung pajak dengan persentase yang berbeda.

Ketentuan pajak yang digunakan:

  • Produk Elektronik dikenakan pajak sebesar 10% dari harga.
  • Produk Makanan dikenakan pajak sebesar 5% dari harga.

Program akan menggunakan interface bernama Pembayaran yang memiliki metode hitungPajak(double harga).

Kelas Elektronik dan Makanan kemudian mengimplementasikan interface tersebut dengan perhitungan pajak masing-masing.

4.2 Membuat Interface Pembayaran

Langkah pertama adalah membuat interface bernama Pembayaran.

Kode program:

public interface Pembayaran {
double hitungPajak(double harga);
}

Penjelasan:

  1. public interface Pembayaran digunakan untuk membuat interface bernama Pembayaran.
  2. double hitungPajak(double harga) merupakan metode untuk menghitung pajak berdasarkan harga produk.
  3. Parameter harga menggunakan tipe data double agar dapat menerima nilai berupa bilangan desimal.

Interface ini menjadi kontrak yang harus diimplementasikan oleh kelas Elektronik dan Makanan.

4.3 Membuat Kelas Elektronik

Selanjutnya, buat kelas Elektronik yang mengimplementasikan interface Pembayaran.

Kode program:

public class Elektronik implements Pembayaran {
@Override
public double hitungPajak(double harga) {
return harga * 0.10;
}
}

Penjelasan:

  1. implements Pembayaran menunjukkan bahwa kelas Elektronik menggunakan interface Pembayaran.
  2. @Override digunakan untuk mengimplementasikan metode hitungPajak().
  3. harga * 0.10 digunakan untuk menghitung pajak sebesar 10% dari harga produk elektronik.

Sebagai contoh, jika harga produk elektronik adalah Rp1.000.000, maka pajaknya adalah Rp100.000.

4.4 Membuat Kelas Makanan

Selanjutnya, buat kelas Makanan yang juga mengimplementasikan interface Pembayaran.

Kode program:

public class Makanan implements Pembayaran {
@Override
public double hitungPajak(double harga) {
return harga * 0.05;
}
}

Penjelasan:

  1. implements Pembayaran menunjukkan bahwa kelas Makanan mengimplementasikan interface Pembayaran.
  2. @Override digunakan untuk mengimplementasikan metode hitungPajak().
  3. harga * 0.05 digunakan untuk menghitung pajak sebesar 5% dari harga produk makanan.

Sebagai contoh, jika harga produk makanan adalah Rp100.000, maka pajaknya adalah Rp5.000.

4.5 Membuat Main Class

Setelah interface dan kedua kelas selesai dibuat, buat kelas utama untuk menjalankan program.

Kode program:

public class Main {
public static void main(String[] args) {
// Membuat objek Elektronik
Pembayaran elektronik = new Elektronik();
double hargaElektronik = 1000000;
System.out.println("Harga Elektronik: Rp"
+ hargaElektronik);
System.out.println("Pajak Elektronik: Rp"
+ elektronik.hitungPajak(hargaElektronik));

// Membuat objek Makanan
Pembayaran makanan = new Makanan();
double hargaMakanan = 100000;
System.out.println("Harga Makanan: Rp"
+ hargaMakanan);
System.out.println("Pajak Makanan: Rp"
+ makanan.hitungPajak(hargaMakanan));
}
}

Penjelasan:

  1. Pembayaran elektronik = new Elektronik() membuat objek Elektronik dengan referensi bertipe Pembayaran.
  2. hargaElektronik = 1000000 menentukan harga produk elektronik sebesar Rp1.000.000.
  3. elektronik.hitungPajak(hargaElektronik) memanggil metode untuk menghitung pajak elektronik sebesar 10%.
  4. Pembayaran makanan = new Makanan() membuat objek Makanan dengan referensi bertipe Pembayaran.
  5. hargaMakanan = 100000 menentukan harga produk makanan sebesar Rp100.000.
  6. makanan.hitungPajak(hargaMakanan) memanggil metode untuk menghitung pajak makanan sebesar 5%.

Contoh harga pada program digunakan untuk menguji perhitungan pajak dari masing-masing produk.

4.6 Hasil Output Program

Setelah seluruh kode selesai dibuat, jalankan program melalui kelas MainPembayaran.

Output yang ditampilkan:

Hasil tersebut menunjukkan bahwa program berhasil menghitung pajak berdasarkan jenis produk.

Produk elektronik dikenakan pajak sebesar 10%, sedangkan produk makanan dikenakan pajak sebesar 5%.

5. PENUTUP

5.1 Kesimpulan

Berdasarkan praktikum yang telah dilakukan, dapat disimpulkan bahwa:

  1. Interface merupakan salah satu konsep dalam Pemrograman Berorientasi Objek yang berfungsi sebagai kontrak atau aturan bagi kelas yang mengimplementasikannya.
  2. Interface dalam Java dideklarasikan menggunakan keyword interface, sedangkan kelas yang menggunakannya harus menggunakan keyword implements.
  3. Kelas yang mengimplementasikan interface wajib menyediakan implementasi untuk seluruh metode abstrak yang didefinisikan di dalamnya, kecuali kelas tersebut dideklarasikan sebagai abstract.
  4. Interface memungkinkan beberapa kelas memiliki metode yang sama dengan implementasi yang berbeda.
  5. Java mendukung implementasi multiple interface sehingga satu kelas dapat menggunakan lebih dari satu interface.
  6. Interface dapat meningkatkan fleksibilitas, konsistensi, dan kemudahan pengembangan program.

Melalui praktikum ini, pemahaman mengenai konsep interface dalam bahasa pemrograman Java menjadi lebih baik, terutama dalam penerapan abstraksi, implementasi metode, dan polymorphism.

--