BAB 9 - Interface - TeachMeSoft

BAB 9 - Interface

BAB 9 - Interface

Capaian dan Indikator


1. Capaian Pembelajaran

Mahasiswa dapat mengenal dan memahami konsep interface, serta. penerapan dalam interface dalam konsep OOP.

2. Indikator

Mampu menjelaskan dan mengimplementasika konsep interface, serta penerapan dalam interface dalam konsep OOP


Uraian Materi


Ilustrasi 1

Ketika anda diberi tugas menerjemahkan sebuah buku berbahasa Inggris ke dalam bahasa Indonesia, namun ada beberapa kata dalam buku tersebut yang sangat asing bagi anda. Apa yang akan anda lakukan untuk memecahkan masalah tersebut?

Ilustrasi 2

Ketika anda meminjam sebuah buku dan anda ingin mengetahui informasi apa saja yang ada pada buku tersebut, apa yang akan anda lakukan?

Meminjam kamus adalah salah satu alternatif jawaban dalam ilustasi 1. Mengapa? Karena di dalam  kamus tersimpan kumpulan kata (atau biasa disebut dengan vocabulary) yang anda butuhkan  untuk membantu anda dalam mengartikan kata tersebut

Demikian juga untuk ilustrasi 2. Apabila jawaban anda adalah melihat daftar  isi, berarti  anda mengerti kegunaan daftar isi. Karena di dalam daftar isi, terdapat halaman dari tiap bab yang akan  membantu anda dalam mempermudah mencari informasi yang anda butuhkan  Kamus dan daftar isi merupakan alat bantu berupa kumpulan informasi sebagai sarana pendukung  dalam membantu anda  untuk mengolah dan mengembangkan informasi yang anda peroleh. Seperti halnya ketika anda menggunakan Interface pada pemrograman berbasis objek. Interface berisi sekumpulan konstanta/deklarasi method tanpa menyertakan / menuliskan body methodnya. Method atau variabel yang terdapat pada kelas Inteface dapat digunakan lebih dari satu kelas dengan earn memanggil kelas interface tersebut.

Interface adalah kumpulan method yang hanya memuat deklarasi dan struktur method tanpa detail implementasinya. Cara mendeklarasikan interface adalah sebagai berikut:

interface Nama_Interface
{
 //deklarasi variabel dan/ atau method
}

Contoh:
interface Operasi
{
 //deklarasi variabel dan/atau method
 public void Penjumlahan();
 public void Pengurangan();
 public double Perkalian();
 public double Pembagian();
}

Pada contoh di atas, method yang dideklarasikan pada interface Operasi tidak terdapat statement  apapun, baik itu rumus atau hanya sebuah nilai balik di dalamnya. Hal ini dikarenakan interface hanyalah sebuah berisi kumpulan konstanta maupun method tanpa menyertakan/ menuliskan body methodnya.

Perlu diketahui pula, bahwaan interface is not a class and classes can only implement interfaces (sebuah interface bukanlah sebuah kelas dan kelas hanya  bisa mengim plementasi interface). Sehingga jangan anda menganggap bahwa interface adalah super class dimana  memiliki kelas tru runan.

Penggunaan (implementasi) interface dalam sebuah kelas dapat anda lihat melalui skema OOP di bawah ini:




Coba anda lihat anak panah yang berwarna ungu tersebut. Anak panah itu merupakan gambaran  bahwa class Kalkulator merupakan implementasi dari interfaces Operasi, dimana method-method  yang terdapat pada interface Operasi harus dideklarasi ulang (overriding method) pada kelas  Kalkulator. Interface dilambangkan dengan anak panah dengan garis putus-putus, sedangkan inheritance dilambangkan dengan anak panah dengan garis lurus ( ).

Dalam pemrograman implements. Berikut adalah Java:
OOP, implementasi interfaces menggunakan keyword cara mengimplementasikan interface ke dalam  pemrograman
class Nama_Kelas implements Nama_Interface
{
 //isi kelas
}

Contoh:

class Kalkulator implements Operasi
{
 public void Penjumlahan()
 {
  //isi method Penjumlahan
 };
 
 public void Pengurangan()
 {
  //isi method Pengurangan
 };
 
 public void Perkalian()
 {
  //isi method perkalian
  return 0;
 };
 
 public void Pembagian()
 {
  //isi method Pembagian
  return 0;
 };
}

Agar anda lebih memahami bagaimana implementasi interface dalam sebuah kelas, simak contoh latihan di bawah ini.

Latihan


Berdasarkan contoh di atas tentang kalkulator, buatlah program sesuai dengan skema dibawah ini:




Adapun fungsi methodnya adalah sebagai berikut:
  • Method Penjumlahan() digunakan untuk menjumlahkan dua buah bilangan, yakni Bil1 dan Bil2
  • Method Pengurangan() digunakan untuk mengurangi dua buah bilangan, yakni Bil1 dan Bil2 
  • Method Perkalian() digunakan untuk mengalikan dua buah bilangan, yakni Bil1 dan Bil2
  • Method Pembagian() digunakan untuk membagi dua buah bilangan, yakni Bil1 dan Bil2

Tambahkan pula class Utama yang digunakan untuk memanggil class Kalkulator. Ketika class Utama dijalankan, hasilnya akan tampak seperti di bawah ini:




Jawabannya adalah...
Setelah anda mem baca soal tersebut dengan baik dan seksama, langkah pertama yang harus anda  lakukan adalah mengidentifikasi class atau interface yang harus dibuat terlebih dahulu.
Langkah 1: interface Operator (ketikkan script berikut)
a.  Membuat kerangka interface Operator
interface Operasi
{
 //deklarasi method
}

Setelah anda  membuat interface Operasi, simpan file tersebut dengan nama Operasi.java. Di dalam  interface Operasi, saya juga menyediakan tempat untuk mendeklarasikan method yang akan digunakan pada class Kalkulator.

b. Mendeklarasikan method
interface Operasi
{
 //deklarasi method
 public void Penjumlahan();
 public void Pengurangan();
 public double Perkalian();
 public double Pembagian();
}


Langkah 2: class Kalkulator (ketikkan script berikut)
a.  Membuat kerangka class Kalkulator
Setelah anda membuat class Kalkulator, simpan file tersebut dengan nama Kalkulator.java. Kelas Kalkulator merupakan hasil implementasi dari interface Operasi. Untuk itu, pada line 1 terdapat keyword "implements''. Khusus pada langkah ini, anda jangan merasa bingung apabila anda mendapat 1 error pada saat program di ­ compile.
class Kalkulator implements Operasi
{
 //deklarasi variabel
 
 //constructor
 
 //getter
 
 //implementasi method
};

Error yang berisi Kalkulator is not abstract and does not override abstract method
Pembagian() in Operasi menandakan bahwa method Penjumlahan(), Pengurangan(), Perkalian(), Pembagian() harus dideklarasikan ulang (overriding method) ke dalam class Kalkulator. Error ini akan terus ada sampai anda menyelesaikan poin (e).

b.   Mendeklarasi variabel yang dibutuhkan
Setelah kita membuat kerangka class, maka diperlukan pendeklarasian variabel yang nantinya  digunakan sebagai tempat menyimpan data yang bersifat sementara (temporary). Gambar di bawah ini menunjukkan pendeklarasian variabel.

c.  Mendeklarasi constructor
Setelah membuat variabel yang dibutuhkan pada class Kalkulator, langkah selanjutnya anda membuat constructor Kalkulator. Constructor ini nantinya akan digunakan dalam class Utama. Gambar di bawah ini menunjukkan deklarasi constructor.



Pada gambar di atas, saya menggunakan Overloading Constructor (bagi yang lupa tentang  Overloading Constructor, anda dapat melihat kembali pada modul 2 tentang Constructor.

Constructor pertama digunakan untuk standard awal dalam melakukan instance of class. Sedangkan constructor kedua digunakan untuk mengeset data bilangan pertama dan bilangan kedua yang diperoleh dari kelas Utama.

d.  Membuat method getter
Setelah membuat constructor, anda tinggal membuat method getter untuk mengambil nilai dari masing-masing variabel. Hal ini bertujuan untuk mengambil nilai dari variabel pada class Kalkulator yang nantinya akan kita kembalikan ke dalam class Utama. Perlu diketahui pula, bahwa dalam pembuatan variabel pada parameter di method getter, harus sesuai dengan tipe data pada variabel  yang dideklarasikan di kelas. Gambar di bawah ini menunjukkan deklarasi getter.



e.  Implementasi method
Setelah membuat constructor, anda wajib melakukan deklarasi ulang (overriding method) ke dalam class Kalkulator seperti pada script di bawah ini.



Coding
class Kalkulator implements Operasi
{
 //deklarasi variabel
 private double Bil1, Bil2;
 
 //constructor
 Kalkulator()
 {
  
 }
 
 Kalkulator(double Bil1, double Bil2)
 {
  this.Bil1=Bil1;
  this.Bil2=Bil2;
 }
 
 //getter
 public double getBil1()
 {
  return Bil1;
 };
 
 public double getBil2()
 {
  return Bil2;
 };
 
 //implementasi method
 public void Penjumlahan()
 {
  System.out.println(Bil1+Bil2);
 };
 
 public void Pengurangan()
 {
  System.out.println(Bil1-Bil2);
 };
 
 public double Perkalian()
 {
  return Bil1*Bil2;
 };
 
 public double Pembagian()
 {
  return Bil1/Bil2;
 }; 
 
};

Perlu diketahui  pula, bahwa method Penjumlahan() dan Pengurangan merupakan sub program berjenis prosedur. Sedangkan method Perkalian() dan Pembagian() merupakan sub program berjenis fungsi. Untuk itu, ada perbedaan cara memanggil method dalam kelas Utama.

Langkah 3: class Utama (ketikkan script berikut)
Berikut adalah script kelas utama kalkulator:

import java.io.*;
class Utama
{
 public static void main(String[] args) throws Exception
 {
  BufferedReader br = new BufferedReader (new InputStreamReader (System.in));
  
  //instance of class
  Kalkulator k = new Kalkulator();
  
  //deklarasi variabel
  int x = 0;
  
  //input
  System.out.print("Masukkan bilangan pertama : ");
  double a = Double.parseDouble(br.readLine());
  System.out.print("Masukkan bilangan kedua : ");
  double b = Double.parseDouble(br.readLine());
  
  k = new Kalkulator(a,b);
  
  System.out.println();
  
  //output
  System.out.print("Hasil Penjumlahan = "); k.Penjumlahan();
  System.out.print("Hasil Pengurangan = "); k.Pengurangan();
  System.out.println("Hasil Perkalian = "+k.Perkalian());
  System.out.println("Hasil Pembagian = "+k.Pembagian());
 }
}

Keterangan:
Line 9 = deklarasi instance of class, d imana variabel tersebut bertipe kelas Kalkulator, yang merupakan turunan dari kelas Operasi . Line 12-15 = inputan user, dimana bilangan 1 ditampung ke dalam variabel a dengan tipe data double. Sedangkan bilangan 2 ditampung ke dalam variabel b dengan tipe data double. Line 17  = mentransfer data pada variable a dan b ke dalam constructor Kalkulator. Line 19 = sebagai jarak antara isi input dan output ketika program dijalankan. Line 22-26  = cara memanggil method Penjumlahan dan Pengurangan yang merupakan sub program bertipe void. Karena di dalam isi  void terdapat System.out.println, maka pemanggilan method dilakukan di luar kelas. Line 28-30  = cara memanggil method Penjumlahan dan Pengurangan yang merupakan sub program bertipe void. Karena di dalam isi function tidak terdapat System.out.println dan hanya mengembalikan return (nilai batik), maka pada class Utama, pemanggilan method dilakukan di dalam System.out.println().

Keterangan program :


Output:


Tugas


Diberikan oleh dosen pengampun





Disqus comments