Disusun Oleh:
Wima Alif Harianto
21533439
FAKULTAS TEKNIK
PROGRAM STUDI S1 TEKNIK INFORMATIKA
UNIVERSITAS MUHAMMADIYAH PONOROGO
TAHUN AJARAN 2021/2022
HALAMAN PENGESAHAN
LAPORAN PRAKTIKUM
PEMROGRAMAN BERBASIS OBJEK
Mengetahui Menyetujui
Kepala Laboratorium Teknik Informatika Dosen Pembimbing
ii
BERITA ACARA
BIMBINGAN LAPORAN
PRAKTIKUM PEMROGRAMAN BERBASIS OBJEK
Pembimbing
iii
KATA PENGANTAR
Dengan menyebut nama Allah SWT yang Maha Pengasih lagi Maha
Panyayang, saya panjatkan puja dan puji syukur atas kehadirat-Nya, yang telah
melimpahkan rahmat, hidayah, dan inayah-Nya kepada saya, sehingga saya dapat
menyelesaikan laporan praktikum Pemrograman Berbasis Objek ini.
Laporan praktikum ini telah saya susun dengan maksimal dan mendapatkan
bantuan dari berbagai pihak sehingga dapat memperlancar pembuatan laporan ini.
Kami berharap lebih jauh lagi agar makalah ini bisa pembaca praktekkan dalam
kehidupan sehari-hari Untuk itu saya mengucapkan terima kasih kepada Ibu Indah
Puji Astuti, S.Kom.M.Kom, selaku Dosen mata kuliah Praktikum Pemrograman
Berbasis Objek yang telah memberikan tugas ini sehingga dapat menambah
pengetahuan dan wawasan sesuai dengan bidang studi yang saya tekuni ini.
Tak lupa, saya menyampaikan banyak terima kasih kepada semua pihak yang
tidak bisa saya sebutkan semuanya. Terima kasih telah berkontribusi dalam
pembuatan laporan ini sehingga saya dapat menyelesaikan tugas ini.
Terlepas dari semua itu, saya menyadari sepenuhnya bahwa masih ada
kekurangan baik dari segi susunan kalimat maupun tata bahasanya. Oleh karena itu
dengan tangan terbuka saya menerima segala saran dan kritik dari pembaca agar
saya dapat memperbaiki laporan pratikum ini.
Penyusun
iv
DAFTAR ISI
v
PERCOBAAN 1
Persiapan instalasi perangkat lunak
I. TUJUAN
III. ALAT
IV. BAHAN
V. PROSEDUR KERJA
6
VI. PEMBAHASAN
1. Unduh Java JDK, sesuaikan versinya dengan sistem operasi yang anda
gunakan. Disini saya menggunakan versi 64-bit.
7
4. Lalu proses ekstrak instalasi akan berlangsung hingga muncul halaman
baru. Kemudian klik OK.
5. Pemilihan direktori tujuan untuk instalasi Java JDK. Jika tidak ingin
mengubah direktori tujuan, klik Next.
8
INSTALASI NETBEANS IDE 8.2.
1. Silahkan unduh dan jalankan paket instalasi NetBeans IDE 8.2. Jika sudah
terbuka, klik Next.
2. Pada halaman license agreement, centang kotak bertuliskan accept lalu klik
Next.
9
3. Pada bagian pemilihan direktori instalasi, jika tidak ingin merubah direktori
instalasi NetBeans langsung klik next. Jika sebelumnya instalasi Java JDK
berada di direktori yang berbeda, klik browse lalu arahkan ke direktori Java
JDK berada.
10
5. Instalasi Java dimulai. Tunggu hingga selesai dan klik Close.
11
VII. KESIMPULAN
Menyetujui
Pembimbing
12
PERCOBAAN 2
Pengenalan coding di Java
I. TUJUAN
III. ALAT
IV. BAHAN
V. PROSEDUR KERJA
VI. PEMBAHASAN
package Pertemuan2_PraktikumPBO;
13
import java.util.Scanner; //import scanner
public class soal_101 {
public static void main(String[] args ) {
//menambahkan variable input keyboard
//deklarasi variable
float phi=3.15f;
float r, luas, keliling;
//input jari-jari
System.out.println("Masukkan jari-jari: ");
r = input.nextInt();
luas = phi*r*r;
keliling = 2*phi*r;
//tampilkan hasil ke
System.out.println("Luas lingkaran adalah: " +
luas);
System.out.println("Keliling lingkaran adalah: " +
keliling);
}
}
14
VII. KESIMPULAN
Dengan mengenal operasi aritmatika pada Java, kita dapat membuat program
menghitung luas dan keliling lingkaran dengan mudah.
Menyetujui
Pembimbing
15
PERCOBAAN 3
Pengenalan atribut dan input dari keyboard
I. TUJUAN
III. ALAT
IV. BAHAN
V. PROSEDUR KERJA
VI. PEMBAHASAN
package Pertemuan3_PraktikumPBO;
/* Import Scanner */
16
import java.util.Scanner;
/* Deklarasi variabel */
float rupiah, dollar, euro;
//MAIN PROGRAM
System.out.println("--- PROGRAM KONVERSI MATA UANG
IDR KE USD DAN EURO ---");
System.out.println("Masukan nilai Rupiah = ");
rupiah = input.nextFloat();
/* Kurs berdasarkan tgl dibuatnya program ini */
dollar = (float) (rupiah*0.000067);
euro = (float) (rupiah*0.000064);
/* Output ke user */
System.out.println();
System.out.println("Hasil Kurs dari Rp." + rupiah
+ " adalah: ");
System.out.println("US Dollar = $" + dollar);
System.out.println("Euro = €" + euro);
}
}
17
VII. KESIMPULAN
Pada konsep OOP, atribut pada objek akan disimpan di dalam variable. Untuk
menambahkan atribut, bisa menggunakan input dari keyboard dengan
mengimpor paket Scanner dari java.util.
Menyetujui
Pembimbing
18
PERCOBAAN 4
Pengenalan class, object, dan method
I. TUJUAN
Class bertugas untuk mengumpulkan prosedur dan variabel dalam satu tempat.
Objek adalah sebuah variabel yang merupakan perwujudan dari class.
Method yaitu sebutan untuk fungsi pada Java.
III. ALAT
IV. BAHAN
V. PROSEDUR KERJA
VI. PEMBAHASAN
package Pertemuan4_PraktikumPBO;
19
class Binatang {
String Warna;
String JenisKelamin;
String Umur;
}
class Main {
public static void main(String[] args) {
// menambahkan variable input keyboard
Scanner input = new Scanner(System.in);
// membuat object
Binatang Kucing = new Binatang();
Binatang Anjing = new Binatang();
20
/* menampilkan hasil inputan ke user */
System.out.println();
System.out.println("------------------------------
-------------");
System.out.println("Berikut ciri-ciri untuk hewan
kucing: ");
System.out.println("Warna: " + Kucing.Warna);
System.out.println("Jenis Kelamin: " +
Kucing.JenisKelamin);
System.out.println("Umur: " + Kucing.Umur);
System.out.println();
System.out.println("Dan ini ciri-ciri untuk hewan
anjing: ");
System.out.println("Warna: " + Anjing.Warna);
System.out.println("Jenis Kelamin: " +
Anjing.JenisKelamin);
System.out.println("Umur: " + Anjing.Umur);
}
}
21
VII. KESIMPULAN
Dengan mengetahui apa itu class, object, dan method, kita dapat membuat
program Java dengan mudah. Tentunya di bantu dengan koleksi perpustakaan
Java yang lengkap. Pada contoh kali ini, kita menggunakan paket Scanner
untuk mengisikan atribut pada objek hewan.
Menyetujui
Pembimbing
22
PERCOBAAN 5
Pengenalan method void dan method return value
I. TUJUAN
Mengenalkan apa itu method void, method return value, dan fungsinya pada
Java.
Method void adalah suatu method yang tidak mempunyai nilai (di deklarasikan
menggunakan keyword void).
Method return value merupakan kebalikan dari method void.
III. ALAT
IV. BAHAN
V. PROSEDUR KERJA
VI. PEMBAHASAN
package Pertemuan5_PraktikumPBO;
23
public class nilai_akhir {
24
RUN FILE PROGRAM MENGENAL METHOD VOID DAN METHOD
RETURN VALUE.
VII. KESIMPULAN
Kita dapat membuat program index nilai menggunakan method void dan
method return value. Karena fungsi dari method void disini yakni
menampilkan nilai akhir yang di deklarasikan di dalam baris kode program
tersebut menjadi index nilai berupa B+.
https://www.community-java.com/2017/04/belajar-method-di-pemrograman-
java.html (diakses 18 Juni 2022)
Menyetujui
Pembimbing
25
PERCOBAAN 6
Membuat program kuis praktikum PBO
I. TUJUAN
Class bertugas untuk mengumpulkan prosedur dan variabel dalam satu tempat.
Objek yaitu variabel yang merupakan perwujudan dari class.
Method yaitu sebutan function/fungsi pada Java.
III. ALAT
IV. BAHAN
V. PROSEDUR KERJA
VI. PEMBAHASAN
package Pertemuan6_PraktikumPBO;
import java.util.Scanner;
26
class Mahasiswa {
String Nama;
String NIM;
String NoWhatsApp;
}
class main {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("======================================
=");
System.out.println("Berikut data anda: ");
System.out.println("Nama: " + mhs1.Nama);
System.out.println("NIM: " + mhs1.NIM);
System.out.println("No WhatsApp: " +
mhs1.NoWhatsApp);
System.out.println("======================================
=");
}
}
27
RUN FILE PROGRAM KUIS PRAKTIKUM PBO.
VII. KESIMPULAN
Dengan menguasai class, object, dan method, program kuis praktikum PBO
tersebut dapat diselesaikan. Karena, program tersebut membutuhkan method
void, input atribut berupa nama, NIM, dan nomor WhatsApp yang disimpan
pada class mahasiswa.
Menyetujui
Pembimbing
28
PERCOBAAN 7
Pengenalan array
I. TUJUAN
Array 1 dimensi adalah kumpulan data yang memiliki nama variabel dan tipe
data yang sama.
Array 2 dimensi adalah kumpulan data yang memiliki nama variabel dan tipe
data yang sama yang mana elemen-nya bisa diakses dengan 2 buah indeks
(baris dan kolom).
III. ALAT
IV. BAHAN
V. PROSEDUR KERJA
VI. PEMBAHASAN
29
package Pertemuan7_PraktikumPBO;
import java.util.Scanner;
int jumbil;
jumbil = masukan.nextInt();
for(int i=0;i<jumbil;i++){
data[i] = masukan.nextInt();
for(int i=0;i<(jumbil-1);i++)
rata2 = total/jumbil;
System.out.println(rata2);
30
RUN FILE PROGRAM ARRAY 1 DIMENSI.
package Pertemuan7_PraktikumPBO;
import java.util.*;
class array_2_dimensi {
31
int C[][] = new int[MAX][MAX];
32
{
for(j = 0; j < col1; j++)
{
System.out.print("A[" + i + "][" + j + "]:
");
A[i][j] = read.nextInt();
System.out.println(A[i][j]);
}
}
// Cetak matriks A
System.out.println();
System.out.println("Matriks pertama: ");
printMatriks(A, row1, col1);
// Cetak matriks B
System.out.println();
System.out.println("Matriks kedua: ");
printMatriks(B, row2, col2);
perkalianMatriks(row1, col1, A, row2, col2, B);
}
}
33
RUN FILE ARRAY 2 DIMENSI.
VII. KESIMPULAN
Dengan adanya array, kita dapat membuat program dengan berbagai data yang
disimpan dalam variabel dan tipe data yang sama.
Menyetujui
Pembimbing
34
PERCOBAAN 8
Membuat program dengan operasi file
I. TUJUAN
III. ALAT
IV. BAHAN
V. PROSEDUR KERJA
VI. PEMBAHASAN
package Pertemuan8_PraktikumPBO;
import java.io.*;
35
public class membaca_file {
public static void main(String[] args) throws
Exception {
File file = new File("text.txt");
if (!file.exists() || !file.canRead()){
System.out.println("Cant' read " + file);
return;
}
try {
int i=0;
BufferedReader fIn = new BufferedReader(new
FileReader(file));
String line;
while((line = fIn.readLine()) != null){
i++;
System.out.println(i+" : "+line);
}
}
catch (FileNotFoundException e){
System.out.println("File tidak ditemukan");
}
}
}
package Pertemuan8_PraktikumPBO;
import java.io.*;
36
public class menulis_file {
public static void main (String[]args) throws Exception
{
File fileIn = new File ("text.txt");
File fileOut = new File ("hasil.txt");
if (!fileIn.exists() || !fileIn.canRead()){
System.out.println("Can't read" + fileIn);
return;
}
try {
int i = 0;
BufferedReader fIn = new BufferedReader (new
FileReader (fileIn));
BufferedWriter fOut = new BufferedWriter (new
FileWriter (fileOut));
String line;
while ((line = fIn.readLine()) !=null){
i++;
if (i<10) fOut.write(" ");
else if (i<100) fOut.write (" ");
fOut.write(i+ " : " + line);
fOut.newLine();
System.out.println("File output sudah
dibuat, silahkan cek direktori anda");
}
fOut.close();
fIn.close();
}
37
RUN FILE PROGRAM MENULIS FILE TEKS.
38
VII. KESIMPULAN
Ketika kita melakukan suatu pemrosesan data dengan program Java, data-data
tersebut akan disimpan di dalam variabel setelahnya akan hilang setelah
program tersebut ditutup. Dengan adanya file, kita dapat membaca lagi data
yang disimpan di dalamnya Ketika program Java ditutup.
Menyetujui
Pembimbing
39
PERCOBAAN 9
Membuat program pemesanan menu di cafe
I. TUJUAN
III. ALAT
NetBeans IDE 8.2.
IV. BAHAN
V. PROSEDUR KERJA
VI. PEMBAHASAN
package Pertemuan9_PraktikumPBO;
/**
40
* Creates new form Cafe_GUI
*/
public Cafe_GUI() {
initComponents();
this.setTitle("Wima's Cafe");
}
/**
* This method is called from within the constructor
to initialize the form. WARNING: Do NOT modify this code.
The content of this method is always regenerated by the
Form Editor.
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed"
desc="Generated Code">
private void initComponents() {
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_
ON_CLOSE);
jLabel1.setFont(new java.awt.Font("Calibri", 1,
24)); // NOI18N
jLabel1.setText("Wima's Cafe");
jLabel2.setText("Pilihan Menu");
jLabel3.setText("Harga");
jLabel4.setText("Jumlah");
41
jLabel5.setText("Pembayaran");
jLabel6.setText("Total Bayar");
jLabel7.setText("Kembalian");
menu.setModel(new
javax.swing.DefaultComboBoxModel<>(new String[] { "---
Pilih ---", "Americano ", "Cappucino", "Espresso",
"Machiato", "Latte" }));
menu.addActionListener(new
java.awt.event.ActionListener() {
public void
actionPerformed(java.awt.event.ActionEvent evt) {
menuActionPerformed(evt);
}
});
kembalian.addActionListener(new
java.awt.event.ActionListener() {
public void
actionPerformed(java.awt.event.ActionEvent evt) {
kembalianActionPerformed(evt);
}
});
hitung.setText("Hitung");
hitung.addActionListener(new
java.awt.event.ActionListener() {
public void
actionPerformed(java.awt.event.ActionEvent evt) {
hitungActionPerformed(evt);
}
});
reset.setText("Reset");
reset.addActionListener(new
java.awt.event.ActionListener() {
public void
actionPerformed(java.awt.event.ActionEvent evt) {
resetActionPerformed(evt);
}
});
keluar.setText("Keluar");
keluar.addActionListener(new
java.awt.event.ActionListener() {
public void
actionPerformed(java.awt.event.ActionEvent evt) {
42
keluarActionPerformed(evt);
}
});
layout.createParallelGroup(javax.swing.GroupLayout.Alignme
nt.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING,
layout.createSequentialGroup()
.addContainerGap()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayo
ut.Alignment.LEADING)
.addComponent(jLabel2)
.addComponent(jLabel3)
.addComponent(jLabel4)
.addComponent(jLabel5))
.addGap(45, 45, 45)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayo
ut.Alignment.LEADING, false)
.addComponent(pembayaran)
.addComponent(jumlah)
.addComponent(harga)
.addComponent(menu, 0, 180,
Short.MAX_VALUE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacemen
t.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayo
ut.Alignment.LEADING)
.addComponent(keluar,
javax.swing.GroupLayout.PREFERRED_SIZE, 74,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(reset,
javax.swing.GroupLayout.PREFERRED_SIZE, 74,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(hitung,
javax.swing.GroupLayout.PREFERRED_SIZE, 74,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(108, 108, 108))
43
.addGroup(layout.createSequentialGroup()
.addGap(25, 25, 25)
.addComponent(jLabel6)
.addGap(18, 18, 18)
.addComponent(total,
javax.swing.GroupLayout.PREFERRED_SIZE, 110,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(66, 66, 66)
.addComponent(jLabel7)
.addGap(29, 29, 29)
.addComponent(kembalian,
javax.swing.GroupLayout.PREFERRED_SIZE, 115,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(66, Short.MAX_VALUE))
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING,
layout.createSequentialGroup()
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE)
.addComponent(jLabel1)
.addGap(202, 202, 202))
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignme
nt.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(20, 20, 20)
.addComponent(jLabel1)
.addGap(27, 27, 27)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayo
ut.Alignment.BASELINE)
.addComponent(jLabel2)
.addComponent(menu,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(16, 16, 16)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayo
ut.Alignment.BASELINE)
.addComponent(jLabel3)
.addComponent(harga,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
44
.addComponent(hitung))
.addGap(18, 18, 18)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayo
ut.Alignment.BASELINE)
.addComponent(jLabel4)
.addComponent(jumlah,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(reset))
.addGap(18, 18, 18)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayo
ut.Alignment.BASELINE)
.addComponent(jLabel5)
.addComponent(pembayaran,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(keluar))
.addGap(35, 35, 35)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayo
ut.Alignment.BASELINE)
.addComponent(jLabel6)
.addComponent(jLabel7)
.addComponent(total,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(kembalian,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(20, 20, 20))
);
pack();
}// </editor-fold>
private void
kembalianActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
}
private void
hitungActionPerformed(java.awt.event.ActionEvent evt) {
45
int totalbayar = Integer.parseInt(harga.getText())
* Integer.parseInt(jumlah.getText());
total.setText("" + totalbayar);
int kembali =
Integer.parseInt(pembayaran.getText()) -
Integer.parseInt(total.getText());
kembalian.setText("" + kembali);
}
private void
menuActionPerformed(java.awt.event.ActionEvent evt) {
int Harga = 0;
int pilihan = menu.getSelectedIndex();
switch (pilihan) {
case 1 :
Harga = 10000;
break;
case 2 :
Harga = 11000;
break;
case 3 :
Harga = 11000;
break;
case 4 :
Harga = 12000;
break;
case 5 :
Harga = 12000;
break;
}
harga.setText("" + Harga);
}
private void
resetActionPerformed(java.awt.event.ActionEvent evt) {
menu.setSelectedIndex(0);
harga.setText("");
jumlah.setText("");
pembayaran.setText("");
total.setText("");
kembalian.setText("");
}
private void
keluarActionPerformed(java.awt.event.ActionEvent evt) {
46
System.exit(0);
}
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
/* Set the Nimbus look and feel */
//<editor-fold defaultstate="collapsed" desc="
Look and feel setting code (optional) ">
/* If Nimbus (introduced in Java SE 6) is not
available, stay with the default look and feel.
* For details see
http://download.oracle.com/javase/tutorial/uiswing/lookand
feel/plaf.html
*/
try {
for (javax.swing.UIManager.LookAndFeelInfo
info : javax.swing.UIManager.getInstalledLookAndFeels()) {
if ("Nimbus".equals(info.getName())) {
javax.swing.UIManager.setLookAndFeel(info.getClassName());
break;
}
}
} catch (ClassNotFoundException ex) {
java.util.logging.Logger.getLogger(Cafe_GUI.class.getName(
)).log(java.util.logging.Level.SEVERE, null, ex);
} catch (InstantiationException ex) {
java.util.logging.Logger.getLogger(Cafe_GUI.class.getName(
)).log(java.util.logging.Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
java.util.logging.Logger.getLogger(Cafe_GUI.class.getName(
)).log(java.util.logging.Level.SEVERE, null, ex);
} catch
(javax.swing.UnsupportedLookAndFeelException ex) {
java.util.logging.Logger.getLogger(Cafe_GUI.class.getName(
)).log(java.util.logging.Level.SEVERE, null, ex);
}
//</editor-fold>
47
public void run() {
new Cafe_GUI().setVisible(true);
}
});
}
48
VII. KESIMPULAN
Kita dapat melayani pemesanan menu di cafe dengan mudah dan cepat dengan
adanya aplikasi Java berbasis GUI. Terutama dalam hal pemberian kembalian
ketika ada pelanggan yang membayar pesanannya dengan uang lebih.
Menyetujui
Pembimbing
49
PERCOBAAN 10
Membuat program diskon pemesanan menu di cafe
I. TUJUAN
III. ALAT
IV. BAHAN
V. PROSEDUR KERJA
VI. PEMBAHASAN
package Pertemuan10_PraktikumPBO;
import javax.swing.JOptionPane;
50
/**
* Creates new form Cafe_GUI
*/
public Program_diskon_cafe() {
initComponents();
this.setTitle("Dhahar Resto");
}
/**
* This method is called from within the constructor
to initialize the form. WARNING: Do NOT modify this code.
The content of this method is always regenerated by the
Form Editor.
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed"
desc="Generated Code">
private void initComponents() {
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_
ON_CLOSE);
jLabel1.setFont(new java.awt.Font("Calibri", 1,
24)); // NOI18N
jLabel1.setText("Dhahar Resto");
jLabel2.setText("Pilihan Menu");
jLabel3.setText("Harga");
jLabel4.setText("Jumlah");
jLabel5.setText("Total bayar");
51
menu.setModel(new
javax.swing.DefaultComboBoxModel<>(new String[] { "---
Pilih ---", "Cheese burger", "Spagetti", "Pizza", "French
fries", "Ice cream" }));
menu.addActionListener(new
java.awt.event.ActionListener() {
public void
actionPerformed(java.awt.event.ActionEvent evt) {
menuActionPerformed(evt);
}
});
totalbayar.addActionListener(new
java.awt.event.ActionListener() {
public void
actionPerformed(java.awt.event.ActionEvent evt) {
totalbayarActionPerformed(evt);
}
});
Bayar.setText("Bayar");
Bayar.addActionListener(new
java.awt.event.ActionListener() {
public void
actionPerformed(java.awt.event.ActionEvent evt) {
BayarActionPerformed(evt);
}
});
reset.setText("Reset");
reset.addActionListener(new
java.awt.event.ActionListener() {
public void
actionPerformed(java.awt.event.ActionEvent evt) {
resetActionPerformed(evt);
}
});
keluar.setText("Keluar");
keluar.addActionListener(new
java.awt.event.ActionListener() {
public void
actionPerformed(java.awt.event.ActionEvent evt) {
keluarActionPerformed(evt);
}
});
hitung1.setText("Hitung");
52
hitung1.addActionListener(new
java.awt.event.ActionListener() {
public void
actionPerformed(java.awt.event.ActionEvent evt) {
hitung1ActionPerformed(evt);
}
});
layout.createParallelGroup(javax.swing.GroupLayout.Alignme
nt.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING,
layout.createSequentialGroup()
.addContainerGap()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayo
ut.Alignment.LEADING)
.addComponent(jLabel2)
.addComponent(jLabel3)
.addComponent(jLabel4)
.addComponent(jLabel5))
.addGap(45, 45, 45)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayo
ut.Alignment.LEADING, false)
.addComponent(totalbayar)
.addComponent(jumlah)
.addComponent(harga)
.addComponent(menu, 0, 180,
Short.MAX_VALUE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacemen
t.RELATED, 56, Short.MAX_VALUE)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayo
ut.Alignment.LEADING)
.addComponent(keluar,
javax.swing.GroupLayout.PREFERRED_SIZE, 74,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(reset,
javax.swing.GroupLayout.PREFERRED_SIZE, 74,
javax.swing.GroupLayout.PREFERRED_SIZE)
53
.addComponent(Bayar,
javax.swing.GroupLayout.PREFERRED_SIZE, 74,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(hitung1,
javax.swing.GroupLayout.PREFERRED_SIZE, 74,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(108, 108, 108))
.addGroup(layout.createSequentialGroup()
.addGap(195, 195, 195)
.addComponent(jLabel1)
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE))
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignme
nt.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(20, 20, 20)
.addComponent(jLabel1)
.addGap(24, 24, 24)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayo
ut.Alignment.BASELINE)
.addComponent(menu,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel2)
.addComponent(hitung1))
.addGap(18, 18, 18)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayo
ut.Alignment.BASELINE)
.addComponent(jLabel3)
.addComponent(harga,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(Bayar))
.addGap(18, 18, 18)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayo
ut.Alignment.BASELINE)
.addComponent(jLabel4)
.addComponent(jumlah,
javax.swing.GroupLayout.PREFERRED_SIZE,
54
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(reset))
.addGap(18, 18, 18)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayo
ut.Alignment.BASELINE)
.addComponent(jLabel5)
.addComponent(totalbayar,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(keluar))
.addContainerGap(35, Short.MAX_VALUE))
);
pack();
}// </editor-fold>
private void
BayarActionPerformed(java.awt.event.ActionEvent evt) {
int bayar =
Integer.parseInt(totalbayar.getText());
if(bayar>=50000){
int discount=bayar*25/100;
int total=bayar-discount;
JOptionPane.showMessageDialog(this, "Selamat,
anda mendapatkan diskon 25%! Total bayar anda: " + total);
}
else if(bayar<50000){
int discount=bayar*10/100;
int total=bayar-discount;
JOptionPane.showMessageDialog(this, "Selamat,
anda mendapatkan diskon 10%! Total bayar anda: " + total);
}
}
private void
menuActionPerformed(java.awt.event.ActionEvent evt) {
int Harga = 0;
int pilihan = menu.getSelectedIndex();
switch (pilihan) {
case 1 :
Harga = 15000;
break;
case 2 :
Harga = 20000;
break;
case 3 :
55
Harga = 25000;
break;
case 4 :
Harga = 15000;
break;
case 5 :
Harga = 10000;
break;
}
harga.setText("" + Harga);
}
private void
resetActionPerformed(java.awt.event.ActionEvent evt) {
menu.setSelectedIndex(0);
harga.setText("");
jumlah.setText("");
totalbayar.setText("");
}
private void
keluarActionPerformed(java.awt.event.ActionEvent evt) {
System.exit(0);
}
private void
totalbayarActionPerformed(java.awt.event.ActionEvent evt)
{
private void
hitung1ActionPerformed(java.awt.event.ActionEvent evt) {
int total = Integer.parseInt(harga.getText()) *
Integer.parseInt(jumlah.getText());
totalbayar.setText("" + total);
}
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
/* Set the Nimbus look and feel */
//<editor-fold defaultstate="collapsed" desc="
Look and feel setting code (optional) ">
/* If Nimbus (introduced in Java SE 6) is not
available, stay with the default look and feel.
56
* For details see
http://download.oracle.com/javase/tutorial/uiswing/lookand
feel/plaf.html
*/
try {
for (javax.swing.UIManager.LookAndFeelInfo
info : javax.swing.UIManager.getInstalledLookAndFeels()) {
if ("Nimbus".equals(info.getName())) {
javax.swing.UIManager.setLookAndFeel(info.getClassName());
break;
}
}
} catch (ClassNotFoundException ex) {
java.util.logging.Logger.getLogger(Program_diskon_cafe.cla
ss.getName()).log(java.util.logging.Level.SEVERE, null,
ex);
} catch (InstantiationException ex) {
java.util.logging.Logger.getLogger(Program_diskon_cafe.cla
ss.getName()).log(java.util.logging.Level.SEVERE, null,
ex);
} catch (IllegalAccessException ex) {
java.util.logging.Logger.getLogger(Program_diskon_cafe.cla
ss.getName()).log(java.util.logging.Level.SEVERE, null,
ex);
} catch
(javax.swing.UnsupportedLookAndFeelException ex) {
java.util.logging.Logger.getLogger(Program_diskon_cafe.cla
ss.getName()).log(java.util.logging.Level.SEVERE, null,
ex);
}
//</editor-fold>
//</editor-fold>
57
private javax.swing.JTextField harga;
private javax.swing.JButton hitung1;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel4;
private javax.swing.JLabel jLabel5;
private javax.swing.JTextField jumlah;
private javax.swing.JButton keluar;
private javax.swing.JComboBox<String> menu;
private javax.swing.JButton reset;
private javax.swing.JTextField totalbayar;
// End of variables declaration
}
package Pertemuan10_PraktikumPBO;
58
RUN FILE PROGRAM PEMESANAN MENU DI CAFE (MENDAPAT
DISKON 25%).
VII. KESIMPULAN
Dengan adanya percabangan if else, kita dapat membuat program kasir cafe
yang dapat memberitahukan total bayar yang telah diberikan diskon dengan
cepat kepada pelanggan di cafe.
Menyetujui
Pembimbing
59