Oleh:
Fajri Novitasari 170533628549
3. Konsep interface.
Interface merupakan suatu mekanisme dalam Java yang memungkinkan
untuk berbagi konstanta atau menentukan bentuk method yang dapat digunakan
oleh sejumlah class. Sebuah class dapat mengimplementasikan lebih dari satu
interface. Di dalam interface, penentu akses untuk definisi konstanta adalah
public static final. Sedangkan penentu akses untuk deklarasi abstract method
adalah public abstract. Kedua penentu akses ini tidak harus dituliskan secara
eksplisit dalam kode program karena Java akan menggunakan kedua penentu
akses ini sebagai penentu akses default bila sekiranya tidak ditulis secara eksplisit.
Keuntungan membuat interface sendiri adalah menutupi kekurangan pada java
yang hanya memperbolehkan satu kelas saja yang berhak mendapatkan warisan
kelas induk (extends). Sehingga satu kelas hanya dapat menggunakan satu kelas
induk, sebaliknya pada interface dapat di implementasi lebih dari satu. Ciri-ciri
interface adalah interface tidak dapat di instansiasi, tidak terdapat konstruktor dan
semua method interface adalah abstrak. Tujuan interface adalah menerapkan
teknik polymorhpisme pada java. Jadi kelas turunan dapat bebas mengubah
karakteristik yang ada.
4. Deklarasi, penggunaan, dan pewarisan interface.
Interface dideklarasikan dengan cara sebagai berikut:
System.out.println("\n*************************
*************************");
System.out.println("\n\tMENERAPKAN
PENGGUNAAN ABSTRACT CLASS #1");
System.out.println("\n*************************
*************************");
Hasil Program :
c. Hasil kompilasi program jika method namaHewan() diubah menjadi
method abstract!
Penjelasan :
Program diatas digunakan untuk menampilkan program dengan menerapkan
abstract class. abstract class Hewan merupakan pendeklarasian class
Operasi bersifat abstract. Pada class Hewan dideklarasikan variabel nama
bertipe data String, mendeklarasikan method abstract yaitu habitatHewan().
Pada method namaHewan akan ditampilkan nama hewan dengan memanggil
variabel nama. Selanjutnya pada class Karnivora yang mewarisi class Hewan,
dideklarasikan variabel habitat bertipe String. Pada method habitatHewan
akan ditampilkan habitat hewan dengan nilainya dari memanggil variabel
habitat. Pada class TryAbstractClass1 terdapat fungsi main yaitu dengan
syntax public static void main(String[] args) agar program bisa
dijalankan atau bisa dieksekusi dan menampilkan output. Output didapatkan
dengan membuat objek singa pada class Karnivora, kemudian pada objek
singa dipanggil variabel nama, nilai variabelnya adalah “Singa”. kemudian
pada objek singa dipanggil variabel habitat, nilai variabelnya adalah
“Darat”. Selanjutnya pada objek singa dipanggil method namaHewan dan
habitatHewan. Hasil kompilasi program jika method namaHewan() diubah
menjadi method abstract adalah error, dikarenakan pada method abstract tidak
dideklarasikan secara detail. Hasil kompilasi program tidak dilakukan
overriding terhadap abstract method habitatHewan() adalah error karena
penggunaan overriding untuk mengimplementasikan method yang ada pada
superclass. Hasil kompilasi program jika abstract method habitatHewan()
dideklarasikan dalam class Karnivora adalah error karena tidak terdapat
fungsi main untuk menampilkan output.
System.out.println("\n*************************
*************************");
System.out.println("\n\tMENERAPKAN
PENGGUNAAN ABSTRACT CLASS #2");
System.out.println("\n*************************
*************************");
Hasil Program :
Penjelasan :
Program diatas digunakan untuk menampilkan operasi penjumlahan dan
pengurangan menggunakan abstract class. abstract class Operasi
merupakan pendeklarasian class Operasi bersifat abstract. Pada class Operasi
dideklarasikan variabel hasilTambah, hasilKurang bertipe data int dengan
modifier public dan mendeklarasikan method abstract yaitu tambah dengan
parameter int x,int y dan method kurang. Selanjutnya pada class Hitung yang
mewarisi class Operasi. Dideklarasikan variabel a=3 dan b=9 bertipe int. Pada
method tambah dengan parameter int x,int y akan ditampilkan operasi
penjumlahan dengan cara menjumlahkan variabel x dan y dengan syntax
hasilTambah = x+y. Pada method kurang akan ditampilkan operasi
pengurangan dengan cara mengurangkan variabel a dan b dengan syntax
hasilKurang = a-b. Pada class TryOperasiHitung terdapat fungsi main yaitu
dengan parameter 1 untuk nilai x dan 2 untuk nilai y dan method kurang.
System.out.println("\n*************************
******************");
System.out.println("\n\tMENERAPKAN
PENGGUNAAN INTERFACE #1");
System.out.println("\n*************************
******************");
Penjelasan :
Program diatas digunakan untuk menampilkan penggunaan interface.
Interface digunakan untuk mendeklarasikan variabel dan method yang dapat
digunakan pada class lain. Pada interface Tumbuhan dideklarasikan variabel
bertipe String yaitu kons_dikotil dengan nilai TUMBUHAN DIKOTIL,
System.out.println("\n*************************
******************");
System.out.println("\n\tMENERAPKAN
PENGGUNAAN INTERFACE #2");
System.out.println("\n*************************
******************");
Hasil Program :
c) Hasil kompilasi jika method kelilingPersegi() dikosongkan
Penjelasan :
Program diatas digunakan untuk menampilkan hasil keliling lingkaran dan
persegi dengan tampilan yang menerapkan penggunaan interface. Pada
interface Operasi1 dideklarasikan variabel kons_pi=3.14 bertipe data double
dan variabel beritipe String yaitu kons_panjang= " cm" dan method
kelilingLingkaran dengan parameter variabel radius bertipe data double
dan method kelilingPersegi(). Selanjutnya pada class Hitung1 yang
mengimplementasi interface Operasi 1 dideklarasikan variabel bertipe double
yaitu lingkaran, persegi, dan sisi dengan nilai 5. Pada method
kelilingLingkaran dihitung keliling lingkaran dengan menampilkan nilai
radius yang didapat dari variabel radius dan kons_panjang. Selanjutnya
menghitung keliling lingkaran dengan kons_pi*2*radius. Keliling
lingkaran ditampilkan dengan menampilkan antara hasil dari variabel
lingkaran dan kons_panjang. Pada method kelilingPersegi dihitung
keliling persegi dengan menampilkan nilai sisi yang didapat dari variabel
sisi dan kons_panjang. Selanjutnya menghitung keliling persegi dengan
4*sisi. Keliling persegi dihitung dengan menampilkan hasil dari variabel
persegi dan variabel kons_panjang. Pada class TryOperasiHitung2
terdapat fungsi main yaitu dengan syntax public static void
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main(String[] args)
{
TryFlowLayout frame = new
TryFlowLayout();
}
}
Hasil Program :
Penjelasan :
Program diatas digunakan untuk menampilkan tampilan berbasis GUI dengan
menggunakan class JFlowLayout. import javax.swing.* yang merupakan
paket berisi kelas-kelas dan interface untuk komponen GUI swing Java yang
menyediakan dukungan untuk tampilan grafis yang portable dan import
java.awt.* merupakan fungsi yang digunakan untuk proses inputan dalam
program java. Pada class TryFlowLayout mewarisi class JFrame. Pada
method TryFlowLayout terdapat pemberian nama pada frame yaitu
MENGGUNAKAN FLOW LAYOUT menggunakan sytax super("MENGGUNAKAN
FLOW LAYOUT "), kemudian frame di-setting berukuran 500 x 250
menggunakan setSize(500,250). p1.setLayout(new FlowLayout())
digunakan untuk membuat objek p1 pada class JPanel dan layout pada p1
diatur dengan menggunakan FlowLayout. Kemudian pada objek p1
ditambahkan objek button dari class JButton dengan diberi text "Tombol A",
"Tombol B", dan "Tombol C". Membuat objek p2 pada class JPanel dan
layout pada p2 di-set dengan menggunakan FlowLayout dengan posisi kiri
frame pada posisi jarak horizontal antar komponen adalah 30 dan jarak
vertical adalah 20 menggunakan syntax p2.setLayout(new
ditambahkan objek button dari class JButton dengan diberi text "Tombol J"
dan "Tombol K". Objek p1 diletakkan pada posisi utara (North) atau atas
dengan syntax add("North",p1), objek p2 diletakkan pada posisi tengah
(Center) dengan syntax add("Center",p2), dan objek p3 diletakkan pada
posisi selatan (South) atau bawah dengan syntax add("South",p3).
setVisible(true) merupakan fungsi untuk mengatur output agar dapat
ditampilkan. setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)
public TryCheckBox()
{
super("MENGGUNAKAN CHECK BOX");
setSize(400,150);
tArea=new JTextArea(3,20);
tArea.setEditable(false);
add("North",p1);
add("South",p2);
cb1.addActionListener(this);
cb2.addActionListener(this);
cb3.addActionListener(this);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
tArea.setText(sCB1+sCB2+sCB3);
}
public void actionPerformed(ActionEvent e)
{
tampilkanInfo(); //memanggil method
tampilkanInfo
}
public static void main(String[] args)
{
TryCheckBox frame=new TryCheckBox();
}
}
Hasil Program :
Penjelasan :
Program diatas digunakan untuk menampilkan tampilan berbasis GUI dengan
menggunakan JCheckBox. import javax.swing.* yang merupakan paket
berisi kelas-kelas dan interface untuk komponen GUI swing Java yang
menyediakan dukungan untuk tampilan grafis yang portable dan import
java.awt.* merupakan fungsi yang digunakan untuk proses inputan dalam
program java. Pada class TryCheckBox mewarisi class JFrame dengan
mengimplementasikan ActionListener. ActionListener digunakan untuk
menangani reaksi atas perubahan status pada objek yang digunakan. Misalnya
akibat penekanan tombol mouse atau keyboard. Selanjutnya mendeklarasikan
objek yang akan digunakan antara lain objek cb1,cb2,cb3 pada class
JCheckBox dan tArea pada class JTextArea. Pada method TryCheckBox
terdapat pemberian nama pada frame yaitu MENGGUNAKAN CHECK
public TryRadioButton()
{
super("MENGGUNAKAN RADIO BUTTON");
setSize(400,150);
tArea=new JTextArea(3,20);
tArea.setEditable(false);
add("North",p1);
add("South",p2);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
Hasil Program :
Penjelasan :
Program diatas digunakan untuk menampilkan tampilan berbasis GUI dengan
menggunakan JRadioButton. import javax.swing.* yang merupakan paket
berisi kelas-kelas dan interface untuk komponen GUI swing Java yang
menyediakan dukungan untuk tampilan grafis yang portable dan import
java.awt.* merupakan fungsi yang digunakan untuk proses inputan dalam
program java. Pada class TryRadioButton mewarisi class JFrame dengan
mengimplementasikan ActionListener. ActionListener digunakan untuk
menangani reaksi atas perubahan status pada objek yang digunakan. Misalnya
akibat penekanan tombol mouse atau keyboard. Selanjutnya mendeklarasikan
objek yang akan digunakan antara lain objek rb1,rb2,rb3 pada class
JRadioButton, bg pada class ButtonGroup, dan tArea pada class
JTextArea. Pada method TryRadioButton terdapat pemberian nama pada
frame yaitu MENGGUNAKAN RADIO BUTTON menggunakan sytax
super("MENGGUNAKAN RADIO BUTTON"), kemudian frame di-setting
berukuran 400 x 150 menggunakan setSize(400,150). Menugaskan objek
yang dibuat dari class JRadioButton yaitu objek rb1 dari class JRadioButton
dan diberi nama SATU, selanjutnya pada objek rb2 dan rb3 juga sama yaitu
dari class JRadioButton dan diberi nama sesuai urutan objek. Untuk dapat
objek yang hanya dapat memilih satu dari class JRadioButton dengan
membuat menambahkan objek bg pada objek rb1, rb2, rb3. tArea=new
JTextArea(3,20) digunakan untuk membuat text area baru dengan 3 baris
dan 20 kolom, selanjutnya tArea.setEditable(false) digunakan agar user
tidak bisa mengubah teks pada tArea. Membuat objek p1 pada class JPanel,
kemudian pada objek p2 ditambahkan objek tArea. Objek p1 diletakkan pada
posisi utara (North) atau atas dengan syntax add("North",p1) dan objek p2
diletakkan pada posisi selatan(South) atau bawah dengan syntax
add("South",p2). Untuk memberikan mekanisme event handling objek
pada class JRadioButton dengan menambahkan perintah ActionListener
pada objek rb1, rb2, rb3. setVisible(true) merupakan fungsi untuk
mengatur output agar dapat ditampilkan.
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE) digunakan untuk
mengakhiri jalannya program bila frame ditutup. Bila perintah tersebut tidak
ada, maka penutupan frame tidak akan menghentikan jalannya program.
Kemudian untuk memberikan aksi bila radio button dipilih, dideklarasikan
public void actionPerformed(ActionEvent e) dimana pada objek
tArea di-set untuk menampilkan text "Pilihan Anda : ". Agar program bisa
dijalankan atau bisa dieksekusi dan menampilkan output maka menggunakan
public static void main(String[] args). Selanjutnya dibuat objek
frame pada class TryRadioButton menggunakan syntax TryRadioButton
frame = new TryRadioButton ().
IV. Tugas
1. Nama Program : Menghitung Luas Permukaan dan Volume Bangun
Ruang
Source Code :
import java.util.Scanner;
abstract class Deklarasi
{
public double panjang, lebar, tinggi, radius,
lBalok , lTabung, vBalok, vTabung;
public abstract void luasPermukaanBalok();
public abstract void luasPermukaanTabung();
public abstract void volumeTabung();
}
interface Konstanta
{
public static final double kons_pi = 3.14;
public static final String kons_luas = " cm
persegi";
public static final String kons_volume = " cm
kubik";
}
System.out.println("\n*************************
****************************************");
System.out.println("\n\tMENGHITUNG LUAS
PERMUKAAN DAN VOLUME BANGUN RUANG");
System.out.println("\n\t\t\tPILIHAN :");
System.out.println("\n\t\t\t1. BALOK");
System.out.println("\n\t\t\t2. TABUNG");
System.out.println("\n*************************
****************************************");
Scanner baca = new Scanner(System.in);
System.out.print("Masukkan pilihan anda :
");
pilih = baca.nextInt();
System.out.println("\n*************************
***************************************");
switch(pilih)
{
case 1:
Volume balok = new Volume();
balok.Bangun = "BALOK";
balok.inputBalok();
System.out.println("\n*************************
*************************************");
balok.luasPermukaanBalok();
balok.volumeBalok();
break;
case 2:
Volume tabung = new Volume();
tabung.Bangun = "TABUNG";
tabung.inputTabung();
System.out.println("\n*************************
*************************************");
tabung.luasPermukaanTabung();
tabung.volumeTabung();
break;
default:
System.out.println();
}
}
}
Hasil Program :
Penjelasan :
Program diatas digunakan untuk menampilkan perhitungan luas permukaan
dan volume bangun ruang. import java.util.Scanner yang merupakan
fungsi untuk memasukkan paket Scanner. Pada abstract class Deklarasi,
dideklarasikan variabel dengan tipe double yaitu panjang, lebar, tinggi,
radius, lBalok , lTabung, vBalok, vTabung. Selanjutnya
mendeklarasukan method abstract luasPermukaanBalok(),
public TiketTravel()
{
super("JASA TRAVEL MALANG");
setSize(400,280);
p1.add(l1);
p2.add(l2);
p2.add(l3);
p2.add(l4);
p3.add(tf1);
p3.add(tf2);
p3.add(tf3);
p4.add(l5);
p4.add(rb1);
p4.add(rb2);
p4.add(rb3);
p4.add(l6);
p4.add(cb1);
p4.add(cb2);
p4.add(cb3);
p4.add(btnPesan);
p4.add(btnHapus);
add("North",p1);
add("West",p2);
add("Center",p3);
add("South",p4);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
if (rb1.isSelected())
{
Tujuan =rb1.getText();
}
else if(rb2.isSelected())
{
Tujuan =rb2.getText();
}
else if(rb3.isSelected())
{
Tujuan =rb3.getText();
}
if(cb1.isSelected())
{
Fasilitas = cb1.getText();
}
if(cb2.isSelected())
{
Fasilitas = cb2.getText();
}
if(cb3.isSelected())
{
Fasilitas = cb3.getText();
}
JOptionPane.showMessageDialog(null,
"Nama\t: "+isiTextField1+"\nTTL\t: "+isiTextField2+"\nJenis
Kelamin\t:"+isiTextField3+"\nTujuan\t:"+Tujuan+"\nFasilitas
\t:"+Fasilitas," STRUCK PEMESANAN TIKET ",
JOptionPane.INFORMATION_MESSAGE);
}
if(e.getSource()==btnHapus)
{
//aksi jika btnHapus ditekan
tf1.setText("");
tf2.setText("");
tf3.setText("");
rb1.setSelected(false);
rb2.setSelected(false);
rb3.setSelected(false);
cb1.setSelected(false);
cb2.setSelected(false);
cb3.setSelected(false);
}
}
public static void main(String[] args)
{
TiketTravel frame = new TiketTravel();
}
}
Hasil Program :
Penjelasan :
Program diatas digunakan untuk menampilkan pemesanan tiket travel dengan
tampilan berbasis GUI dengan menggunakan JRadioButton. import
javax.swing.* yang merupakan paket berisi kelas-kelas dan interface untuk
komponen GUI swing Java yang menyediakan dukungan untuk tampilan
grafis yang portable, import java.awt.* merupakan fungsi yang digunakan
untuk proses inputan dalam program java, dan import java.awt.event.*;
yang berfungsi untuk mengambil semua file dari package event yang mana
package event berada pada package java. Pada class TiketTravel yang
merupakan pewarisan dari class JFrame dengan mengimplementasikan
ActionListener. Pada method TiketTravel, frame diberi nama menggunakan
super("JASA TRAVEL MALANG") dengan ukuran frame 400x280.
Selanjutnya membuat objek p1 pada class JPanel, l1 = new
V. Kesimpulan
Dari praktikum modul 6 Abstrac class dan interface dapat disimpulkan:
1. Class abstract digunakan oleh kelas lain melalui metode pewarisan dengan
kata kunci extends, sedangkan interface diimplementasikan ke dalam suatu
class dengan menggunakan kata kunci implements, dan sebuah class dapat
mengimplementasikan lebih dari satu interface.
2. Pendefenisian method pada class abstract dilakukan pada subclass.
3. Class abstract dapat mengandung method abstract maupun bukan abstract,
sedangkan interface hanya boleh mengandung method abstract.
4. Pada praktikum telah dipelajari penggunaan abstract class, interface,
JRadioButton, JFlowLayout, JCheckBox.
5. tArea.setEditable(false) digunakan agar user tidak bisa mengubah teks
pada tArea
6. FlowLayout digunakan untuk menagtur letak komponen dalam satu baris dari
kiri ke kanan, jika baris sudah pebuh maka komponen diletakkan pada baris
berikutnya.
7. JCheckBox digunakan untuk memberi pilihan kepada user untuk memilih satu
atau lebih dari beberapa pilihan, sedangkan JRadioButton hanya untuk
memilih satu pilihan.
VI. Daftar Rujukan
Termasmedia. Mengatur Letak Komponen Menggunakan Kelas FlowLayout DI
Java. https://www.termasmedia.com/pemrograman/java/167-
mengatur-letak-komponen-menggunakan-kelas-flowlayout-di-
java.html (diakses 25 Oktober 2018)
Brianorman, Yulrio, 2015. Penggunaan Perintah Abstract, Final dan Static Pada
Java. http://onestringlab.com/penggunaan-perintah-abstract-final-
dan-static-pada-java/ (diakses 25 Oktober 2018)
Arba, Randy. 2017. Java Interface. https://medium.com/@randy.arba/interface-
java-a0a8d53e6cb7 (diakses 25 Oktober 2018)
Rahman, Fathur. 2017. Perbedaan class Abstarct dengan interce pada program.
https://www.okedroid.com/2016/06/mengenal-perbedaan-class-
abstract-dengan-interfafce-bahasa-java.html (diakses 25 Oktober
2018)
Andre. 2014. Tutorial Bahasa OOP PHP Part 15: Pengertian Abstract Class dan
Abstract Method PHP. https://www.duniailkom.com/tutorial-
belajar-oop-php-pengertian-abstract-class-dan-abstract-method-
php/ (diakses 25 Oktober 2018)
Athoillah, Wildan M. 2017. Penggunaan Class Abtsract dan Interface pada
Java. https://www.wildantechnoart.net/2017/11/class-abstract-dan-
interface-pada-java.html (diakses 25 Oktober 2018)