0% menganggap dokumen ini bermanfaat (0 suara)
800 tayangan33 halaman

Laporan PBO Modul 6

Program ini memberikan contoh penggunaan abstract class dan interface dalam bahasa pemrograman Java. Abstract class digunakan untuk mendefinisikan metode abstrak yang kemudian diimplementasikan oleh class turunan, sedangkan interface hanya berisi deklarasi metode abstrak yang harus diimplementasikan oleh class. Program ini berisi dua contoh penggunaan abstract class untuk mendefinisikan operasi matematika seperti penjumlahan dan pengurangan.

Diunggah oleh

Bimo Ahmad Ramadhan
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai DOCX, PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
800 tayangan33 halaman

Laporan PBO Modul 6

Program ini memberikan contoh penggunaan abstract class dan interface dalam bahasa pemrograman Java. Abstract class digunakan untuk mendefinisikan metode abstrak yang kemudian diimplementasikan oleh class turunan, sedangkan interface hanya berisi deklarasi metode abstrak yang harus diimplementasikan oleh class. Program ini berisi dua contoh penggunaan abstract class untuk mendefinisikan operasi matematika seperti penjumlahan dan pengurangan.

Diunggah oleh

Bimo Ahmad Ramadhan
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai DOCX, PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 33

LAPORAN MODUL VI

PRAKTIKUM PEMROGRAMAN BERORIENTASI OBJEK


“ABSTRACT CLASS DAN INTERFACE”

Disusun untuk Memenuhi Matakuliah Praktikum Pemrograman Berorientasi Objek


Dibimbing oleh Heru Wahyu Herwanto, S.T., M.Kom.

Oleh:
Bimo Ahmad Ramadhan 170533628584

S1 PTI ‘17 OFF A

UNIVERSITAS NEGERI MALANG


FAKULTAS TEKNIK
JURUSAN TEKNIK ELEKTRO
PRODI S1 PENDIDIKAN TEKNIK INFORMATIKA
Oktober 2018
I. Tujuan Praktikum
1. Menerapkan konsep abstract class.
2. Mendeklarasikan abstract class.
3. Menggunakan abstract class.
4. Menerapkan konsep interface.
5. Mendeklarasikan interface.
6. Menggunakan interface.
7. Mewariskan interface.
8. Menggunakan class FlowLayout, JCheckBox, dan JRadioButton.

II. Dasar Teori


1. Konsep abstract class.
Abstract class atau kelas abstrak adalah kelas yang terletak di posisi
tertinggi dalam hierarki class. Class ini tidak dapat diinstansiasi karena
masih bersifat abstrak. Class ini hanya berisi variabel umum dan deklarasi
method tanpa detail penggunaannya (abstract method). Selanjutnya class
yang menjadi turunan dari abstract class ini yang akan menentukan detail
penggunaan method tersebut.
2. Deklarasi dan penggunaan abstract class
Abstract Class dideklarasikan dengan cara sebagai berikut:

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 methodadalah 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.
4. Deklarasi, penggunaan, dan pewarisan interface.

5. Perbedaan antara abstract class dan interface.


Saat deklarasi abstract class dan interface digunakan modifier public. Hal
ini bertujuan agar abstract class dan interface tersebut dapat digunakan
secara bebas oleh class lain yang membutuhkannya. Sekilas interface
tampak mirip dengan abstract class karena abstract class juga menentukan
bentuk method untuk subclass, tetapi ada beberapa perbedaan antara
interface dan abstract class, yaitu:
a. Abstract class dapat mengandung abstract method maupun method tidak
abstrak. Sedangkan interface hanya boleh mengandung abstract method.
b. Abstract class dapat mendeklarasikan variabel instant. Sedangkan
interface hanya dapat mendeklarasikan konstanta.
c. Abstract class digunakan oleh class lain melalui pewarisan dengan kata
kunci extends. Sedangkan sebuah interface diimplementasikan ke dalam
suatu class dengan menggunakan kata kunci implements.
6. Pengenalan class FlowLayout, JCheckBox, dan JRadioButton
Class FlowLayout merupakan class dari package java.awt yang
digunakan untuk mengatur letak komponen dengan urutan dari kiri ke kanan
dan dari atas ke bawah. Pengaturan rata kiri, rata kanan dan rata tengah
dapat dilakukan dengan melibatkan konstanta LEFT, RIGHT dan CENTER.
Class JCheckBox merupakan class dari package javax.swing yang
digunakan untuk membuat komponen berupa check box atau kotak pilihan
yang dapat dipilih oleh user. Pada umumnya, saat menggunakan check box,
user dapat memilih lebih dari satu pilihan yang telah disediakan.
Class JRadioButton merupakan class dari package javax.swing yang
digunakan untuk membuat komponen berupa radio button atau tombol radio
yang dapat dipilih oleh user. Pada umumnya, saat menggunakan radio
button, user hanya dapat memilih satu dari pilihan yang telah disediakan.
Hal ini dapat diatur dengan bantuan class ButtonGroup dari package
javax.swing.

III. Tugas Latihan


1. Nama Program : Menggunakan abstract class
Source Code :
abstract class Hewan
{
String nama;
public abstract void habitatHewan();
public void namaHewan()
{
System.out.println("\n Method di dalam
abstract class Hewan");
System.out.println("Nama Hewan :
"+nama);
}
}
class Karnivora extends Hewan
{
String habitat;
public void habitatHewan()
{
System.out.println("\n Method di dalam
class Karnivora");
System.out.println("Habitat Hewan :
"+habitat);
}
}
public class TryAbstractClass1
{
public static void main(String[] args)
{

System.out.println("\n***************************
*********************");
System.out.println("\n\tMENERAPKAN
PENGGUNAKAN ABSTRACT CLASS #1");

System.out.println("\n***************************
*********************");

Karnivora singa = new Karnivora();


singa.nama = "singa";
singa.habitat = "Darat";
singa.namaHewan();
singa.habitatHewan();
}
}
b. Hasil Program :
Penjelasan :
Pada program tersebut digunakan untuk menerapkan penggunaan abstract
class yang method di dalamnya terdapat abstract class dan menggunakan
class hewan. Program tersebut menggunakan berbasis consule. Untuk
menerapkan penggunakan abstract class ini program tersebut digunakan
syntax abstract public abstract void habitatHewan(); untuk
menampilkan method di dalam class karnivora sedangkan public void
namaHewan() digunakan untuk method di dalam abstract class hewan.
Kemudian untuk memanggil inputan dibuatkan sebuah class baru
menggunakan public class TryAbstarctClass1. Pada program tersebut
digunakan syntax public static void main(String[] args) method
(fungsi) utama yang akan dijalankan ketika program di eksekusi. Method
adalah unit program yang menjalankan aksi tertentu. static void method ini
bersifat static yang berarti tetap dan kosong yang menunjukan bahwa
method ini tidak menghasilkan apa-apa pada system operasi. (String []args)
adalah parameter yang menunjukan bahwa method dapat menerima sebuah
string yang diketikan user. Kemudian pada namaHewan diubah menjadi
method abstract akan berubah tempat pada methodnya, Overriding terhadap
abstract method habitatHewan(). Dan pada method habitatHewan()
dideklarasikan dalam class karnivora.

2. Nama Program : Menggunakan abstract class.


Source Code :
abstract class Operasi
{
public int hasilTambah, hasilKurang;
public abstract void tambah(int x, int y);
public abstract void kurang();
}
class Hitung extends Operasi
{
int a=8, b=9;

public void tambah(int x, int y)


{
System.out.println("\n Melakukan Operasi
Perjumlahan");
System.out.println("Nilai x = "+x);
System.out.println("NIlai y = "+y);
hasilTambah = x+y;
System.out.println("Hasil "+x+" + "+y+" =
"+hasilTambah);
}
public void kurang()
{
System.out.println("\n Melakukan Operasi
Pengurangan");
System.out.println("Nilai x = "+a);
System.out.println("NIlai y = "+b);
hasilKurang = a-b;
System.out.println("Hasil "+a+" - "+b+" =
"+hasilKurang);
}
}
public class TryOperasi2
{
public static void main(String[] args)
{

System.out.println("\n***************************
**************************");
System.out.println("\n\tMenerapkan
Penggunaan Interface #2");

System.out.println("\n***************************
**************************");

Hitung tambah = new Hitung();


tambah.tambah(5,5);

Hitung kurang = new Hitung();


kurang.kurang();
}
}
Hasil Program :
Penjelasan :
Pada program tersebut digunakan untuk menerapkan penggunaan abstract
class yang method di dalamnya terdapat abstract class dan menggunakan
class pada abstract Operasi, class Hitung, dan class Tambah. Pada abstract
class Operasi menggunakan fungsi syntax public int hasilTambah,
hasilKurang; public abstract void tambah(int x, int y);
public abstract void kurang(); untuk mendeklarasikan class hasil
tambah, kurang, dan tambah. Kemudian menggunakan class hitung untuk
menhitung data inputan yang di extends dari class operasi. fungsi
variabelnya int a=8, b=9; yang dimana untuk angka variabel A=8, dan
B=9, pada class hitung ada 2 inputan yaitu untuk data inputan kurang. Pada
inputan tambah mengunakan fungsi hasilTambah = x+y; yaitu untuk dari
jumlah inputan tambah yang fungsi synatxnya tambah.tambah(5,5);
dimana pada hasilnya akan di tambah menggunakan class brikutnya yaitu
class TryOperasi2. Dan untuk pengurangan menggunakan variabel tadi dari
A=8, dan B=9. Yang akan di munculkan di class TryOperasi2.

3. Nama Program : Menggunakan Interface


Source Code :
interface Tumbuhan
{
public static final String kons_dikotil =
"TUMBUHAN DIKOTIL";
public static final String kons_monokotil =
"TUMBUHAN MONOKOTIL";
public abstract void dikotil();
public abstract void monokotil();
}
class Jenis implements Tumbuhan
{
String nama;

public void dikotil()


{
System.out.println("\n Pendefinisan method
dikotil()");
System.out.println(nama+" tergolong sebagai
"+kons_dikotil);
}

public void monokotil()


{
System.out.println("\n Pendefinisan method
monokotil()");
System.out.println(nama+" tergolong sebagai
"+Tumbuhan.kons_monokotil);
}
}
public class TryInterface1
{
public static void main(String[] args)
{

System.out.println("\n***************************
********************");
System.out.println("\n\tMENERAPKAN
PENGGUNAANN INTERFACE #1");

System.out.println("\n***************************
*********************");

Jenis mangga = new Jenis();


mangga.nama = "Mangga";
mangga.dikotil();

Jenis kelapa = new Jenis();


kelapa.nama = "Kelapa";
kelapa.monokotil();
}
}

Hasil Program :
Penjelasan :
Pada program tersebut digunakan untuk menerapkan penggunaan Interface
pada pendefinisian Method dikotil dan Method monokotil. Dalam program
tersebut digunakan interface Tumbuhan yang digunakan pada syntax public
static final String kons_dikotil = "TUMBUHAN DIKOTIL";public
static final String kons_monokotil = "TUMBUHAN MONOKOTIL";
yang berfungsi sebagai menerapkan penggunaan interfacenya. Dan
menggunakan abstract public abstract void dikotil(); public
abstract void monokotil(). Dalam Variabel nama di deklarasikan di
dalam interface Tumbuhan. Pada interface Tumbuhan untuk mengabstract
pada class tersebut. Kedua menggunakan class Jenis pada extends class
Tumbuhan. Menggunakan String nama; untuk menampilkan nama pada
jenis tumbuhan yaitu dikotil dan monokotil. Pada penggunaan method
tersebut untuk pendefinisian dikotil dan monokotil di deklarasikan pada
class TryInterface1 untuk memanggil semua methodnya yang digunakan
syntax public static void main(String[] args) yang fungsinya
utama yang akan dijalankan ketika program di eksekusi. Jenis mangga =
new Jenis(); mangga.nama = "Mang ga";mangga.dikotil(); Jenis
kelapa = new Jenis();kelapa.nama = "Kelapa";
kelapa.monokotil(); yang berfungsi sebagai inputan pada inputan dikotil
dan monokotil tersebut.

4. Nama Program : Menggunakan Interface


Source Code :
interface Operasi
{
double kons_pi = 3.14;
String kons_panjang = " cm ";
void kelilingLingkaran(double radius);
void kelilingPeresegi();
}
class Hitung implements Operasi
{
double lingkaran, persegi;
double sisi=5;

public void kelilingLingkaran(double radius)


{
System.out.println("\n Menghitung
Keliling Lingkaran");
System.out.println("Nilai radius =
"+radius+kons_panjang);
System.out.println("Keliling Lingkaran =
"+lingkaran+kons_panjang);
}

public void kelilingPersegi()


{
System.out.println("\n Menghitung
Keliling Persegi");
System.out.println("Nilai sisi
= "+sisi+kons_panjang);
persegi = 4*sisi;
System.out.println("Keliling Persegi =
"+persegi+kons_panjang);
}
}
public class TryOperasi
{
public static void main(String[] args)
{

System.out.println("\n*********************************
********************");
System.out.println("\n\tMenerapkan Penggunaan
Interface #2");

System.out.println("\n*********************************
********************");
Hitung lingkaran = new Hitung();
lingkaran.kelilingLingkaran(10);

Hitung persegi = new Hitung();


persegi.kelilingPersegi();
}
}

Hasil Program :

Penjelasan :
Pada program tersebut digunakan untuk melakukan penerapan Penggunaan
Interface yang dimana penggunaan interface tersebut digunakan untuk
menghitung keliling lingkaran dan persegi. Pada method pertama
menggunakan pada Interface Operasi yang meliputi double kons_pi =
3.14; untuk menghitung luas lingkaran. String kons_panjang = " cm
"; untuk menghitung panjang dari luas benda tersebut.void
kelilingLingkaran(double radius); untuk menampilkan hasil radius
dari keliling lingkaran. void kelilingPeresegi(); untuk menampilkan
keliling persegi. Kemudian pada class hitung untuk mengimplements pada
class Operasi. double lingkaran, persegi; double sisi=5; untuk
menghitung nilai sisi pada lingkaran dan persegi. Dan pada sisi = 5 yaitu
menampilkan pada nilai sisi persegi. Dan fungsi persegi = 4*sisi; yaitu
untuk menghitung hasil keliling persegi. Setelah irtu pada
membuat class berikutnya untuk menampilkan nilai lingkarannya yaitu
class TryOperasi. Pada class tersebut menampilkan fungsi public static
void main(String[] args) yang fungsinya utama yang akan dijalankan
ketika program di eksekusi. Kemudian syntax Hitung lingkaran = new
Hitung(); lingkaran.kelilingLingkaran(10); untuk menampilkan
hasil dari radius dan keliling lingkarannya. Pada hasil method
KelilingPersegi() terdapat perhitungan untuk menampilkan sisi dn
kelilingnya.

5. Nama Program : Menggunakan class FlowLayout


Source Code :
import javax.swing.*;
import java.awt.*;

public class TryFlowLayout extends JFrame


{
public TryFlowLayout()
{
super("MENGGUNAKAN FLOW LAYOUT");
setSize(500,250);

JPanel p1 = new JPanel();


p1.setLayout(new FlowLayout());

p1.add(new JButton("Tombol A"));


p1.add(new JButton("Tombol B"));
p1.add(new JButton("Tombol C"));

JPanel p2 = new JPanel();


p2.setLayout(new
FlowLayout(FlowLayout.LEFT,30,20));
p2.add(new JButton("Tombol J"));
p2.add(new JButton("Tombol K"));

JPanel p3 = new JPanel();


p3.setLayout(new FlowLayout
(FlowLayout.RIGHT,30,20));

p3.add(new JButton("Tombol X"));


p3.add(new JButton("Tombol Y"));
p3.add(new JButton("Tombol Z"));

add("North", p1);
add("Center", p2);
add("South", p3);

setVisible(true);

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}

public static void main(String[] args)


{
TryFlowLayout frame = new TryFlowLayout();
}
}
Hasil Program :
Penjelasan :
Pada program tersebut digunakan untuk menampilkan tombol-tombol yang
menggunakan class TryFlowLayout yang dimana pada tombol tersebut
penggunaannya untuk menentukan flow Layout. Pada tombol terebut di
tampilkan sesuai dengan arah pada tempat yang berabsis GUI. Pada program
tersebut menggunkan class TryFlowLayot. Metode flow layout
menempatkan komponen di frame berdasarkan urutan komponen-komponen
tersebut yang ditempelkan ke frame. Secara default seluruh komponen yang
ditambahkan dengan metode flow layout akan ditampilkan dengan rata
tengah, namun metode flow layout memiliki konstanta add("North", p1);
add("Center", p2); add("South", p3);. Pada public class

TryFlowLayout extends JFrame berfungsi mendeklarasikan kelas


TryFlowLayout yang merupakan turunan dari kelas JFrame. class
TryFlowLayout mempunyai satu buah konstruktor tanpa parameter yang
dideklarasikan di baris public TryFlowLayout(). JPanel p1 = new
JPanel(); untuk membuat pane. p1.setLayout(new FlowLayout());
untuk mengatur layout manager dari panel pane. p1.add(new
JButton("Tombol A")); p1.add(new JButton("Tombol B"));
p1.add(new JButton("Tombol C")); untuk menambahkan 3 button ke
panel pane. (FlowLayout.RIGHT,30,20)); untuk default layout manager
untuk kelas Panel dan JPanel

6. Nama Program : Menggunakan class JCheckBox


Source Code :
import javax.swing.*;
import java.awt.event.*;

public class TryCheckBox extends JFrame implements


ActionListener
{
private JCheckBox cb1, cb2, cb3;
private JTextArea tArea;

public TryCheckBox()
{
super("MENGGUNAKAN CHECK BOX");
setSize(400,150);

cb1 = new JCheckBox("SATU",false);


cb2 = new JCheckBox("DUA", false);
cb3 = new JCheckBox("TIGA", false);

tArea = new JTextArea(3,20);


tArea.setEditable(false);

JPanel p1 = new JPanel();


p1.add(cb1);
p1.add(cb2);
p1.add(cb3);

JPanel p2 = new JPanel();


p2.add(tArea);

add("North",p1);
add("South",p2);

cb1.addActionListener(this);
cb2.addActionListener(this);
cb3.addActionListener(this);

setVisible(true);

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}

public void tampilkanIngfo()


{
String sCB1, sCB2, sCB3;
sCB1 = "Status SATU : "+cb1.isSelected();
sCB2 = "Status DUA : "+cb2.isSelected();
sCB3 = "Status TIGA : "+cb3.isSelected();

tArea.setText(sCB1 + sCB2 + sCB3);


}

public void actionPerformed(ActionEvent e)


{
tampilkanIngfo();
}

public static void main(String[] args)


{
TryCheckBox frame = new TryCheckBox();
}
}
Hasil Program :
Penjelasan :
Pada program terebut untuk menampilkan check box yang sebagaimana
program tersebut menggunakan fungsi checkbox. fungsi check box
digunakan untuk memberi pilihan kepada user untuk memilih satu atau lebih
dari beberapa pilihan. Pertama memakai import javax.swing.*; yaitu
Merupakan perintah dalam Program Java yang berisi kelas-kelas dan
interface (menampilkan ataupun menerima pesan) untuk komponen GUI
swing java yang menyediakan dukungan untuk komponen grafis yang
portable dan import java.awt.event.*; Merupakan perintah dalam
Program Java yang berisi kelas-kelas dan interfaces yang memperbolehkan
menampilkan ataupun menerima pesan dalam penanganan event untuk
komponen grafis yang berada di paket javax.swing. kemudian menggunakan
class TryCheckBox yang di deklarasikan dengan extends JFrame yang
dimana JFrame untuk menampilkan objek frame dan di implements

ActionListener. JPanel p1 = new JPanel(); untuk membuat pane.


String sCB1, sCB2, sCB3; disini fungsi adalah untuk menampilkan
pada text. Sedangkan tArea.setText(sCB1 + sCB2 + sCB3); untuk
memanggil text dari sCB1, sCB2, sCB3;.

7. Nama Program : Menggunakan class JRadioButton


Source Code :
import javax.swing.*;
import java.awt.event.*;

public class TryRadioButton extends JFrame implements


ActionListener
{
private JRadioButton rb1, rb2, rb3;
private ButtonGroup bg;
private JTextArea tArea;

public TryRadioButton()
{
super("MENGGUNAKAN RADIO BUTTON");
setSize(400,150);

rb1 = new JRadioButton("SATU",false);


rb2 = new JRadioButton("DUA", false);
rb3 = new JRadioButton("TIGA", false);

bg = new ButtonGroup();
bg.add(rb1);
bg.add(rb2);
bg.add(rb3);

tArea = new JTextArea(3,20);


tArea.setEditable(false);

JPanel p1 = new JPanel();

p1.add(rb1);
p1.add(rb2);
p1.add(rb3);

JPanel p2 = new JPanel();


p2.add(tArea);

add("North",p1);
add("South",p2);

rb1.addActionListener(this);
rb2.addActionListener(this);
rb3.addActionListener(this);

setVisible(true);

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}

public void actionPerformed(ActionEvent e)


{
tArea.setText("Pilihan Anda :
"+e.getActionCommand());
}

public static void main(String[] args)


{
TryRadioButton frame = new
TryRadioButton();
}
}
Hasil Program :
Penjelasan :
Pada program diatas merupakan program RadioButton yang menampilkan
ButtonGroup yang dimana program tersebut menampilkan pada class
TryRadioButton. Program ini di deklarasikan private JRadioButton
rb1, rb2, rb3;. private ButtonGroup bg;. private JTextArea
tArea; dimana pada fungsi tersebut untuk manmpilkan ButtonGroup
dengan TextArea. Program tersebut pertama menggunakan Pertama
memakai import javax.swing.*; yaitu Merupakan perintah dalam
Program Java yang berisi kelas-kelas dan interface (menampilkan ataupun
menerima pesan) untuk komponen GUI swing java yang menyediakan
dukungan untuk komponen grafis yang portable dan import

java.awt.event.*; Merupakan perintah dalam Program Java yang berisi


kelas-kelas dan interfaces yang memperbolehkan menampilkan ataupun
menerima pesan dalam penanganan event untuk komponen grafis yang
berada di paket javax.swing. selanjutnya pada bg = new ButtonGroup();
untuk memanggil ButtonGroup pada RadioButton. Setelah itu pada
RadioButton di add kepada Action Listener untuk gunakan pada program
java agar button yang kita buat dapat mempunyai aksi. Kemudian public
void di actionPerformed(ActionEvent e) untuk menunjukkan
actionPerformed.

IV. Tugas Praktikum


1. Nama Program : menggunakan abstract class dan interface
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 = "
kubik";
}

class LuasVolume extends Deklarasi implements Konstanta


{
String namaBangun;
public void inputBalok()
{
System.out.println ("Anda akan menhitung
luas permukaan dan volume "+namaBangun+"\n");
Scanner baca = new Scanner(System.in);
System.out.print("\nMasukkan nilai panjang
= ");
panjang = baca.nextDouble();
System.out.print("\nMasukkan nilai lebar =
");
lebar = baca.nextDouble();
System.out.print("\nMasukkan nilai tinggi
= ");
tinggi = baca.nextDouble();
}

public void inputTabung()


{
System.out.println ("Anda akan menhitung
luas permukaan dan volume "+namaBangun+"\n");
Scanner baca = new Scanner(System.in);
System.out.print("\nMasukkan nilai radius =
");
radius = baca.nextDouble();
System.out.print("\nMasukkan nilai tinggi =
");
tinggi = baca.nextDouble();
}

public void luasPermukaanBalok()


{
lBalok =
2*(panjang*lebar+panjang*tinggi+lebar*tinggi);
System.out.println("Luas Permukaan Balok =
"+lBalok+kons_luas);
}

public void luasPermukaanTabung()


{
lTabung = 2*kons_pi*radius*(radius+tinggi);
System.out.println("Luas Permukaan Tabung =
"+lTabung+kons_luas);
}

public void volumeBalok()


{
vBalok = panjang*lebar*tinggi;
System.out.println("Volume Balok =
"+vBalok+kons_luas);
}

public void volumeTabung()


{
vTabung = kons_pi*radius*radius*tinggi;
System.out.println("Volume Tabung =
"+vTabung+kons_volume);
}
}
public class HasilLuasVolume
{
public static void main(String[] args)
{
int pilih=1;

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:
LuasVolume balok = new
LuasVolume();
balok.namaBangun = "BALOK";
balok.inputBalok();

System.out.println("\n***************************
***********************************");
balok.luasPermukaanBalok();
balok.volumeBalok();
break;
case 2:
LuasVolume tabung = new
LuasVolume();
tabung.namaBangun = "BALOK";
tabung.inputTabung();

System.out.println("\n***************************
***********************************");
tabung.luasPermukaanTabung();
tabung.volumeTabung();
break;
default:
System.out.println();
}
}
}

Hasil Program :
Penjelasan :
Pada program tersebut digunakan untuk menampilkan perhitungan luas
permukaan dan Volume Balok dan Tabung. Dengan program ini untuk
menghitung luas dan volumenya terdiri dari balok ialah nilai panjang, lebar,
dan tinggi kemudian di tampilkan ke luas permukaan tabung. Sedangkan
dari hitung tabung ialah nilai radius dan nilai tinggi yang ditampilkan ke
luas permukaan tabung. Program tersebut berbasi Consule dan import

java.util.Scanner; berfungsi untuk mengambil fungsi scanner pada


java. Yang dimana menggunakan class Deklarasi dengan mengAbstract clas
tersebut. Kemudian public double untuk mendeklarasikan dari nilai nilai
luas permukaan dan volume. public abstract void luas
PermukaanBalok(); public abstract void luasPermukaanTabung();
public abstract void volumeTabung(); untuk menampilkan pewarisan
object abstarct di luas dan volume. Setelah itu di Interface kan dengan kata
Konstanta. Pada interface Konstanta menggunakan fungsi method public
static final double kons_pi = 3.14; public static final
String kons_luas = " cm persegi";public static final String
kons_volume = " kubik"; ini merupakan method dari perhitungan hasil
luas permukaan Tabung. Kemudian membuat class baru untuk mengetahui
luas dan volume yang di deklarasikan oleh object interface konstanta. Pada
class tersebut digunakan String untuk menampilkan Nama Bangun yang di
inputkan oleh Syntax Baca. Setelah itu untuk luas permukaan balok lBalok
= 2*(panjang*lebar+panjang*tinggi+lebar*tinggi); untuk
menghitung hasil inputan dari luas permukaan tersebut sedangkan untuk
tabung lTabung = 2*kons_pi*radius*(radius+tinggi); juga seperti
itu untuk menghitung inputannya. Kemudian volume menggunakan vBalok
= panjang*lebar*tinggi; vTabung = kons_pi
*radius*radius*tinggi; untuk menampilkan volume terebut. Setelah itu
membuat class baru lagi untuk menampilkannya yang dimana class tersebut
menggunakan fungsi pilih untuk menampilkan 2 object tersebut. Dari
balok.inputBalok(); dan tabung.inputTabung(); untuk fungsinya
menampilkan data tersebut.

2. Nama Program : Menggunakan check box dan Radio Button


Source Code :
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class JasaTravel extends JFrame implements


ActionListener
{
private JLabel lAtas, label1, label2, label3,
label4, label5, label6;
private JTextField tf1, tf2, tf3;
private JRadioButton rb1, rb2, rb3;
private JCheckBox cb1, cb2, cb3;
private ButtonGroup bg;
private JTextField textfield1, textfield2,
textfield3;
private JButton btnPesan, btnHapus;
private String isiTextField1, isiTextField2,
isiTextField3;
private String Fasilitas="", Tujuan;

public JasaTravel()
{
super("JASA TRAVEL MALANG");
setSize(400,280);

JPanel p1 = new JPanel();


p1.setLayout(new FlowLayout());
label1 = new JLabel("PEMESANAN TIKET
TRAVEL");

JPanel p2 = new JPanel();


p2.setLayout(new GridLayout(5,5));
label2 = new JLabel("Nama Pemesan : ");
label3 = new JLabel("Alamat Pemesan : ");
label4 = new JLabel("No.HP / Telepon : ");

JPanel p3 = new JPanel();


p3.setLayout(new GridLayout(5,5));
textfield1 = new JTextField();
textfield2 = new JTextField();
textfield3 = new JTextField();

JPanel p4 = new JPanel();


p4.setLayout(new GridLayout(3,1));
label5 = new JLabel("Tujuan : ");
rb1 = new JRadioButton("Blitar",false);
rb2 = new JRadioButton("Surabaya",false);
rb3 = new JRadioButton("Kediri",false);

bg = new ButtonGroup();
bg.add(rb1);
bg.add(rb2);
bg.add(rb3);

label6 = new JLabel("Fasilitas : ");


cb1 = new JCheckBox("AC.",false);
cb2 = new JCheckBox("TV.",false);
cb3 = new JCheckBox("WiFi.",false);

btnPesan = new JButton("PESAN");


btnHapus = new JButton("HAPUS");

p1.add(label1);
p2.add(label2);
p2.add(label3);
p2.add(label4);
p3.add(textfield1);
p3.add(textfield2);
p3.add(textfield3);
p4.add(label5);
p4.add(rb1);
p4.add(rb2);
p4.add(rb3);
p4.add(label6);
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);

rb1.addActionListener(this);
rb2.addActionListener(this);
rb3.addActionListener(this);
cb1.addActionListener(this);
cb2.addActionListener(this);
cb3.addActionListener(this);
btnPesan.addActionListener(this);
btnHapus.addActionListener(this);

setVisible(true);

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

public void actionPerformed(ActionEvent e)


{
if(e.getSource()==btnPesan)
{
isiTextField1 = textfield1.getText();
isiTextField2 = textfield2.getText();
isiTextField3 = textfield3.getText();

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+"\nFasil
itas\t:"+Fasilitas," STRUCK PEMESANAN TIKET ",
JOptionPane.INFORMATION_MESSAGE);
}
if(e.getSource()==btnHapus)
{

textfield1.setText("");
textfield2.setText("");
textfield3.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)
{
JasaTravel frame = new JasaTravel();
}
}

Hasil Program :
Penjelasan :
Pada program tersebut digunakan untuk membuat program Jasa Travel yang
untuk di pesan melalui tike. Jika di inputkan data akan di tampilkan memalui
pesan untuk mengetahui informasi. Program ini menggunakan secara
berbasis GUI yang dimana program tersebut mempunyai label 6 yaitu
inputan data Nama pemesan, Alamat pemesanan, no hp / telepon. Tujuan
dan fasilitas. Kemudian program tersebut menggunakan import

javax.swing.*; Merupakan perintah dalam Program Java yang berisi


kelas-kelas dan interface (menampilkan ataupun menerima pesan) untuk
komponen GUI swing java yang menyediakan dukungan untuk komponen
grafis yang portable. Import java.awt.*; merupakan fungsi yang
digunakan untuk proses inputan dalam program java. import

java.awt.event.*; Merupakan perintah dalam Program Java yang berisi


kelas-kelas dan interfaces yang memperbolehkan menampilkan ataupun
menerima pesan dalam penanganan event untuk komponen grafis yang
berada di paket javax.swing. lalu membuat class JasaTravel dengan public
extends yang di objectkan ke Frame dengan implements ActionListener.
Kemudian data method yang hanya dapat diakses oleh kelas yang
dimilikinya saja yaitu dengan syntax private JLabel lAtas, label1,
label2, label3, label4, label5, label6; private JTextField
tf1, tf2, tf3; private JRadioButton rb1, rb2, rb3; private
JCheckBox cb1, cb2, cb3; private ButtonGroup bg; private
JTextField textfield1, textfield2, textfield3; private
JButton btnPesan, btnHapus; private String isiTextField1,
isiTextField2, isiTextField3; private String Fasilitas="",
Tujuan;. Setelah itu pertama super("JASA TRAVEL MALANG"); untuk
menampilkan nama pada tabel message. JPanel p1 = new JPanel();
untuk membuat pane dan label menggunakan p1.setLayout(new
FlowLayout()); untuk menampilkan object dengan setLayout. Kemudian
pada panel 2 menampilkan label 2,3 dan 4. Panel 3 hanya menampilkan
inputan textfield. Panel 4 menampilkan RadioButton pada label 5 yaitu
Tujuan. Sedangkan unutk label 6 di fungsi kan bagian dari ButtonGroup dari
RadioButton kepada label 6 yang menginpukan data Fasilitas dan Button
Pesan dan Hapus. Kemudian fungsi dari add("North",p1);
add("West",p2); add("Center",p3); add("South",p4); untuk
mengatur arah pada setiap label yang digunakan.
rb1.addActionListener(this); digunakan untuk mendengarkan action
dari event terhadap RadioButton dan menu Item dari TextField. Pada
program tersebut digunakan syntax public static void main(String[]
args) method (fungsi) utama yang akan dijalankan ketika program di
eksekusi. Method adalah unit program yang menjalankan aksi tertentu. static
void method ini bersifat static yang berarti tetap dan kosong yang
menunjukan bahwa method ini tidak menghasilkan apa-apa pada system
operasi. (String []args) adalah parameter yang menunjukan bahwa method
dapat menerima sebuah string yang diketikan user.

V. Kesimpulan
Class abstrak dapat mengandung method abstract maupun method
tidak abstract, sedangkan interface hanya boleh mengandung method
abstract. Class abstrak dapat mendeklarasikan variabel instans,
sedangkan interface hanya dapat mendeklarasikan konstanta.
 Class abstrak digunakan oleh Class lain melalui metode pewarisan
dengan kata kunci extends, sedangkan sebuah interface
diimplementasikan ke dalam suatu class dengan menggunakan kata
kunci implements, dan sebuah Class dapat mengimplementasikan lebih
dari satu interface.
 Abstarck tidak untuk membentuk objek dan
mempunyai method tertentu yang berisi implementasi, dan juga
beberapa method yang akan di-overridden oleh subclasses nya.
 Class abstract : Pendeklarasian dengan kata kunci ‘abstract’ dan
pendefinisian method dilakukan pada subkelas.

Interface adalah jenis khusus dari blok yang hanya berisi method
signature(atau constant ). Interface mendefinisikan sebuah(signature)
dari sebuah kumpulan method tanpa tubuh.Interface mendefinisikan
sebuah cara standar dan umum dalam menetapkan sifat-sifat dari class-
class. Mereka menyediakan class-class, tanpa memperhatikan lokasinya
dalam hirarki class, untuk mengimplementasikan sifat-
sifat yang umum.
 Class interface dapat mewarisi lebih dari 1 interface. (subkelas mewarisi
superkelas). Penulisannya dengan cara dipisah oleh tanda koma.
 Interface diletakkan pada class tersendiri, kemudian kelas kelas yang
ingin mengimplementasikannya hanya tinggal mengimpornya saja.

VI. Daftar Rujukan


1. Tim Asisten Dosen. 2016. Modul 6 Abstarct Class dan Interface . Malang:
Universitas Negeri Malang.
2. Di publiksasikan pada tanggal 9 Agustus 2012
http://jagocoding.com/tutorial/142/Membuat_Input_Output_Dari_Java
3. Di akses pada tahun 2018. TutorialPoint.
https://www.tutorialspoint.com/java/java_abstraction.htm
4. Di Akses pada tanggal 16 Mei 2015. Metode Abstract Java.
https://stackoverflow.com/questions/6020649/abstract-methods-in-java
5. Diterbitkan pada tanggal 10 Juni 2017. Interfaces Java.
http://tutorials.jenkov.com/java/interfaces.html
6. Diterbitkan pada tahun 2018. Interface vs Abstract class. Jabodetabek.
https://software.endy.muhardin.com/java/interface-abstract/

Anda mungkin juga menyukai