Tugas UAS Algoritma dan Pemrograman 2
Program Sederhana Paket Menu Makanan yang Terkoneksi ke database
Nama : Intan Winarti Haris
NIM : 161021450356
Kelas : 02TPLM003
NIM : 161021450356
Kelas : 02TPLM003
Assalamu'alaikum Wr.Wb
Saya akan melanjutkan postingan tentang Program Sederhana Paket
Menu Makanan yang dibuat di Aplikasi Java Netbeans yang nantinya akan
terkoneksi ke database atau localhostphpmyadmin. Program Aplikasi
ini dibuat untuk melayani seseorang yang ingin memesan paket menu
makanan dengan mudah dan sederhana bagi yang membeli. Di program ini ada
input dan outputnya,inputnya yaitu label login,label password,label isi
paket,label menupaket,label harga,label perbox dan label total. Kalo
outputnya yaitu ada button selesai,button simpan dan button cetak
laporan.Disini saya coba jelasin isi-isinya yaitu Label login untuk
masukan nama pengguna,label password untuk masukan kata sandi rahasia
punya si pengguna,label isi paket untuk mengisi paketnya yang misalkan
paket 1 atau 2, label menu paket untuk mengisi pesanan makanan misalkan
nasi+ayam goreng+air putih, label harga untuk menentukan harga paket
menu makanannya,label perbox itu untuk tambahan bila si pelanggan beli
dari 1 box makanan,label total untuk mentotalkan hasil yang harus
dibayar, button mulai untuk mengulangi/membersihkan penginputan kembali
dari awal,button selesai untuk mengakhiri penginputan bagi yang
memesan,button simpan untuk menyimpan hasil penginputan yang sudah
dipesan makanannya dan button cetak laporan untuk mencetak hasil yang
sudah di input di program.
Sekarang saya akan menampilkan flowchart sederhana paket menu makanan :
Berikut
gambar flowchart diatas yaitu penjelasan singkat program sederhana dari
Login ke Menu sampai ke cetak laporan hasil penyimpanan paket Makanan di aplikasi Java Netbeans.
Program sederhana menu paket makanan ini saya awali dari Form Login. Disini kita menggunakan Palleto,JLabel,TextField,JButton dan JPanel bisa membual background untuk gambar atau warna.
Design Form Login :
berikut adalah Source Code Form Login :
Setelah berhasil login akan muncul seperti ini :
berikut Source Code Menu Isi Paket :
berikut Source Code Menu Combo Paket itu udah terdiri dari Menu paket dan harga :
berikut Source Code yang di dalemnya bentuk aritmatika Menu CheckBox Tota :
Selanjutnya bagian output design button dan source codenya :
berikut source code Button Mulai itu cara untuk menghilangkan/membersihkan semua text
agar bisa memulai dari awal lagi, dengan cara mengkliknya:
berikut Source Code yang Button Selesai saya menggunakan JOptionPane cara menampilkan keluar, kita tekan tombol Selesai maka akan muncul question message atau pertanyaan apakah "konfirmasi selesai".:
kemudian design dan source code yang dibawah ini merupakan code yang menghubungkan projek ini ke penyimpanan database atau xampp untuk mengaktifkannya terlebih dahulu sehingga projek dapat di gunakan.
berikut dibawah ini struktur Tabel menu paket makanan pada axampp/phpmyadmin :
dan dibawah ini juga hasil dari jelajahi Tabel menu paket makanan pada axmpp/phpmyadmin :
berikut source code Button Simpan yang akan menghasilkan data di atas tersebut :
Selanjutnya di bawah ini hasil Designer Button Cetak Laporan yang sudah di report wizard :
dan dibawah ini hasil Preview Button Cetak Laporan yang sudah di report wizard :
berikut source code Button Cetak Laporannya :
Terakhir saya mencoba buat video tutorial program aplikasi sederhana yang di bawah ini :
(video program sederhana paket menu makanan)
dan ini adalah semua source code nya :
package
menumakanan;
import
javax.swing.JOptionPane;
import
java.awt.event.*;
import java.sql.*;
import
java.util.HashMap;
import
java.util.Map;
import
net.sf.jasperreports.engine.JasperCompileManager;
import
net.sf.jasperreports.engine.JasperFillManager;
import
net.sf.jasperreports.engine.JasperPrint;
import
net.sf.jasperreports.engine.JasperReport;
import
net.sf.jasperreports.view.JasperViewer;
/*
* To change this license header, choose
License Headers in Project Properties.
* To change this template file, choose Tools |
Templates
* and open the template in the editor.
*/
/**
*
* @author ASUS
*/
public class
FrameMenuMakanan extends javax.swing.JFrame {
Connection koneksi;
private Object boxpaket;
/**
* Creates new form FrameMenuMakanan
*/
public FrameMenuMakanan() {
initComponents();
}
/**
* 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.
*/
// <editor-fold defaultstate="collapsed"
desc="Generated Code">
private void initComponents() {
jLabel4 = new javax.swing.JLabel();
jProgressBar1 = new
javax.swing.JProgressBar();
jScrollPane1 = new
javax.swing.JScrollPane();
jTextPane1 = new
javax.swing.JTextPane();
buttonGroup1 = new
javax.swing.ButtonGroup();
jTextField2 = new
javax.swing.JTextField();
jTextField3 = new
javax.swing.JTextField();
jPanel3 = new javax.swing.JPanel();
jTextField4 = new javax.swing.JTextField();
jPanel4 = new javax.swing.JPanel();
jColorChooser1 = new
javax.swing.JColorChooser();
jPanel1 = new javax.swing.JPanel();
Lbl1 = new javax.swing.JLabel();
jLabel2 = new javax.swing.JLabel();
TxtMenuPaket = new
javax.swing.JTextField();
jLabel3 = new javax.swing.JLabel();
TxtHarga = new
javax.swing.JTextField();
BoxTotal = new javax.swing.JCheckBox();
jLabel6 = new javax.swing.JLabel();
TxtTotal = new
javax.swing.JTextField();
BtnSelasai = new javax.swing.JButton();
BtnMulai = new javax.swing.JButton();
CmbPaket = new
javax.swing.JComboBox<>();
BtnSimpan = new javax.swing.JButton();
jLabel1 = new javax.swing.JLabel();
TxtPerbox = new
javax.swing.JTextField();
BtnCetakLaporan = new
javax.swing.JButton();
jPanel2 = new javax.swing.JPanel();
jTextField1 = new
javax.swing.JTextField();
jLabel4.setFont(new
java.awt.Font("Times New Roman", 1, 24)); // NOI18N
jLabel4.setText("Memilih Menu
Makanan");
jScrollPane1.setViewportView(jTextPane1);
jTextField2.setText("jTextField2");
jTextField3.setText("jTextField3");
jPanel3.setBackground(new
java.awt.Color(255, 0, 51));
jTextField4.setFont(new
java.awt.Font("Times New Roman", 3, 24)); // NOI18N
jTextField4.setText(" Program Menu Paket Makanan");
javax.swing.GroupLayout jPanel3Layout =
new javax.swing.GroupLayout(jPanel3);
jPanel3.setLayout(jPanel3Layout);
jPanel3Layout.setHorizontalGroup(
jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel3Layout.createSequentialGroup()
.addGap(158, 158, 158)
.addComponent(jTextField4,
javax.swing.GroupLayout.PREFERRED_SIZE, 381,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(185,
Short.MAX_VALUE))
);
jPanel3Layout.setVerticalGroup(
jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel3Layout.createSequentialGroup()
.addGap(34, 34, 34)
.addComponent(jTextField4,
javax.swing.GroupLayout.PREFERRED_SIZE, 43,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(31,
Short.MAX_VALUE))
);
javax.swing.GroupLayout jPanel4Layout =
new javax.swing.GroupLayout(jPanel4);
jPanel4.setLayout(jPanel4Layout);
jPanel4Layout.setHorizontalGroup(
jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 100, Short.MAX_VALUE)
);
jPanel4Layout.setVerticalGroup(
jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 100, Short.MAX_VALUE)
);
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
setBackground(new java.awt.Color(0,
255, 255));
addWindowListener(new
java.awt.event.WindowAdapter() {
public void
windowActivated(java.awt.event.WindowEvent evt) {
formWindowActivated(evt);
}
});
jPanel1.setBackground(new
java.awt.Color(0, 51, 255));
Lbl1.setFont(new
java.awt.Font("Times New Roman", 1, 12)); // NOI18N
Lbl1.setForeground(new
java.awt.Color(0, 255, 255));
Lbl1.setText("Isi Paket");
jLabel2.setFont(new java.awt.Font("Times
New Roman", 1, 12)); // NOI18N
jLabel2.setForeground(new
java.awt.Color(0, 255, 255));
jLabel2.setText("Menu
Paket");
TxtMenuPaket.addActionListener(new
java.awt.event.ActionListener() {
public void
actionPerformed(java.awt.event.ActionEvent evt) {
TxtMenuPaketActionPerformed(evt);
}
});
jLabel3.setFont(new
java.awt.Font("Times New Roman", 1, 12)); // NOI18N
jLabel3.setForeground(new
java.awt.Color(0, 255, 255));
jLabel3.setText("Harga");
TxtHarga.addActionListener(new
java.awt.event.ActionListener() {
public void
actionPerformed(java.awt.event.ActionEvent evt) {
TxtHargaActionPerformed(evt);
}
});
BoxTotal.setText("jCheckBox1");
BoxTotal.addActionListener(new
java.awt.event.ActionListener() {
public void
actionPerformed(java.awt.event.ActionEvent evt) {
BoxTotalActionPerformed(evt);
}
});
jLabel6.setFont(new
java.awt.Font("Times New Roman", 1, 12)); // NOI18N
jLabel6.setForeground(new
java.awt.Color(0, 255, 255));
jLabel6.setText("Total");
TxtTotal.addActionListener(new
java.awt.event.ActionListener() {
public void
actionPerformed(java.awt.event.ActionEvent evt) {
TxtTotalActionPerformed(evt);
}
});
BtnSelasai.setText("Selesai");
BtnSelasai.addActionListener(new
java.awt.event.ActionListener() {
public void
actionPerformed(java.awt.event.ActionEvent evt) {
BtnSelasaiActionPerformed(evt);
}
});
BtnMulai.setText("Mulai");
BtnMulai.addActionListener(new
java.awt.event.ActionListener() {
public void
actionPerformed(java.awt.event.ActionEvent evt) {
BtnMulaiActionPerformed(evt);
}
});
CmbPaket.addActionListener(new
java.awt.event.ActionListener() {
public void
actionPerformed(java.awt.event.ActionEvent evt) {
CmbPaketActionPerformed(evt);
}
});
BtnSimpan.setText("Simpan");
BtnSimpan.addActionListener(new
java.awt.event.ActionListener() {
public void
actionPerformed(java.awt.event.ActionEvent evt) {
BtnSimpanActionPerformed(evt);
}
});
jLabel1.setFont(new
java.awt.Font("Times New Roman", 1, 12)); // NOI18N
jLabel1.setForeground(new
java.awt.Color(0, 255, 255));
jLabel1.setText("perbox");
BtnCetakLaporan.setText("Cetak
Laporan");
BtnCetakLaporan.addActionListener(new
java.awt.event.ActionListener() {
public void
actionPerformed(java.awt.event.ActionEvent evt) {
BtnCetakLaporanActionPerformed(evt);
}
});
javax.swing.GroupLayout jPanel1Layout =
new javax.swing.GroupLayout(jPanel1);
jPanel1.setLayout(jPanel1Layout);
jPanel1Layout.setHorizontalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addGap(152, 152, 152)
jPanel2.setBackground(new
java.awt.Color(255, 0, 51));
jTextField1.setFont(new
java.awt.Font("Times New Roman", 3, 36)); // NOI18N
jTextField1.setText(" Paket Menu Makanan");
pack();
}// </editor-fold>
public void
buka_db() {
try {
Class.forName("com.mysql.jdbc.Driver");
koneksi =
DriverManager.getConnection(
"jdbc:mysql://localhost:3306/uaspemrograman",
"root", "");
} catch (ClassNotFoundException e) {
System.out.println("Error #1
" + e.getMessage());
System.exit(0);
} catch (SQLException e) {
System.out.println("Error #2 :
" + e.getMessage());
System.exit(0);
}
}
private void
BtnSelasaiActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
if(JOptionPane.showConfirmDialog(null,"Yakin
Selesai?","Konfirmasi Selesai",JOptionPane.YES_NO_OPTION
,JOptionPane.QUESTION_MESSAGE)==JOptionPane.YES_OPTION){
dispose();
}
}
private void
formWindowActivated(java.awt.event.WindowEvent evt) {
// TODO add your handling code here:
buka_db();
for (int a=1;a<=3;a++){
CmbPaket.addItem(""+a);
}
}
private void
TxtMenuPaketActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
}
private void
BoxTotalActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
int a =
Integer.parseInt(TxtPerbox.getText());
int b =
Integer.parseInt(TxtHarga.getText());
int c= a*b;
TxtTotal.setText(""+c);
}
private void
BtnMulaiActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
TxtMenuPaket.setText("");
TxtHarga.setText("");
TxtTotal.setText("");
}
private void
TxtTotalActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
}
private void
BtnSimpanActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
try{
String host
="jdbc:mysql://localhost:3306/uaspemrograman",
user ="root",
pass ="";
Connection con = (Connection)
DriverManager.getConnection(host, user, pass);
String
menupaket=TxtMenuPaket.getText();
int
harga=Integer.parseInt(TxtHarga.getText());
int
perbox=Integer.parseInt(TxtPerbox.getText());
int
total=Integer.parseInt(TxtTotal.getText());
Statement st=con.createStatement();
st.executeUpdate("INSERT INTO tabelmenupaket ( menupaket ,
harga ,perbox, total ) VALUES ('
"+menupaket+"','"+harga+"' ,'"+perbox+"'
,'"+total+"')");
st.close();
JOptionPane.showMessageDialog(null,"Berhasil");
} catch (SQLException err){
JOptionPane.showMessageDialog(null,err.getMessage());
}
}
private void
CmbPaketActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
BoxTotal.setSelected(false);
TxtMenuPaket.setText("");
TxtHarga.setText("");
String
g=CmbPaket.getSelectedItem().toString();
int Gol=Integer.parseInt (g);
switch (Gol)
{
case 1:
TxtMenuPaket.setText("Nasi +
Ayam Goreng + Teh Manis ");
TxtHarga.setText("15000");
break;
case 2:
TxtMenuPaket.setText("Nasi +
Ayam Bakar + Teh Tawar ");
TxtHarga.setText("20000");
break;
case 3:
TxtMenuPaket.setText("Nasi +
Ayam Penyet + Air Mineral ");
TxtHarga.setText("22000");
break;
default:
}
}
private void
TxtHargaActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
}
private void
BtnCetakLaporanActionPerformed(java.awt.event.ActionEvent evt) {
// [TODO add your handling code here:
buka_db();
try {
koneksi.createStatement();
Map<String,Object>maps=new
HashMap<String,Object>();
JasperReport JRP=
JasperCompileManager.compileReport("src/menumakanan/laporan.jrxml");
JasperPrint JFILL =
JasperFillManager.fillReport(JRP, maps,koneksi);
JasperViewer.viewReport(JFILL,false);
}
catch (Exception rptexcpt) {
JOptionPane.showMessageDialog(null,
"salah report");
System.out.println(rptexcpt);
}
}
//</editor-fold>
/* Create and display the form */
java.awt.EventQueue.invokeLater(new
Runnable() {
public void run() {
new
FrameMenuMakanan().setVisible(true);
}
});
}
// Variables declaration - do not
modify
private javax.swing.JCheckBox BoxTotal;
private javax.swing.JButton
BtnCetakLaporan;
private javax.swing.JButton BtnMulai;
private javax.swing.JButton BtnSelasai;
private javax.swing.JButton BtnSimpan;
private javax.swing.JComboBox<String>
CmbPaket;
private javax.swing.JLabel Lbl1;
private javax.swing.JTextField TxtHarga;
private javax.swing.JTextField
TxtMenuPaket;
private javax.swing.JTextField TxtPerbox;
private javax.swing.JTextField TxtTotal;
private javax.swing.ButtonGroup
buttonGroup1;
private javax.swing.JColorChooser
jColorChooser1;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel4;
private javax.swing.JLabel jLabel6;
private javax.swing.JPanel jPanel1;
private javax.swing.JPanel jPanel2;
private javax.swing.JPanel jPanel3;
private javax.swing.JPanel jPanel4;
private javax.swing.JProgressBar
jProgressBar1;
private javax.swing.JScrollPane
jScrollPane1;
private javax.swing.JTextField jTextField1;
private javax.swing.JTextField jTextField2;
private javax.swing.JTextField jTextField3;
private javax.swing.JTextField jTextField4;
private javax.swing.JTextPane jTextPane1;
// End of variables declaration
}
Demikian program sederhana ini serta Database, Design,Source Code,Report Wizard dan Hasil Cetak Laporan yang saya buat. walaupun masih banyak kekurangan atau kesalahan di Blog ini. Saya mohon bisa memakluminya dan semoga bermanfaat untuk teman-teman yang lain.
Demikian program sederhana ini serta Database, Design,Source Code,Report Wizard dan Hasil Cetak Laporan yang saya buat. walaupun masih banyak kekurangan atau kesalahan di Blog ini. Saya mohon bisa memakluminya dan semoga bermanfaat untuk teman-teman yang lain.
Sekian dan Terimakasih
Wassalamu'alaikum Wr.Wb


















Komentar
Posting Komentar