Pada kesempatan kali ini, saya akan memberikan postingan tentang"program perhitungan kredit mobil" yang sangat sederhana. dan diperuntukan bagi leasing selaku penyedia pinjaman dana. Posting ini juga saya tujukan sebagai laporan tugas UAS saya kepada dosen.
lalu buat project baru dan beri nama sesuai yang diinginkan.
Setelah project jadi, kita klik kanan project kita yang berada di sisi kiri atas, pilih NEW lalu klik JFrame Form.
Maka Setelah Jframe berhasil dibuat, kita dapat mendesign seperti yang kita inginkan.
Berikut Tampilan Jframe yang saya buat pada program ini.
Berikut ini saya share code source dari program tersebut.
/*
* 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.
*/
package edysusanto_161021450073_uas;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
import javax.swing.JOptionPane;
/**
*
* @author bstsetter
*/
public class LEASING_INDOAUTOCARCREDIT extends javax.swing.JFrame {
private Connection con;
private Statement st;
private void KoneksiDB (){
try {
Class.forName("com.mysql.jdbc.Driver");
con=DriverManager.getConnection("jdbc:mysql://localhost:3306/LeasingIndoAutocarCredit", "root", "");
} catch (ClassNotFoundException | SQLException e) {
JOptionPane.showMessageDialog(null, "ERROR \n Gagal Memuat KeDatabase \n Aktifkan Database Sebelum Memulai");
}
}
int NC;
int IC;
int AC;
int TP;
int JM;
int HM;
int D;
int B;
int PP;
int T;
int CPB;
int E;
/**
* Creates new form LEASING_INDOAUTOCARCREDIT
*/
public LEASING_INDOAUTOCARCREDIT() {
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.
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
jCalModel1 = new com.jcalendar.model.JCalModel();
jLabel10 = new javax.swing.JLabel();
Har_mo = new javax.swing.JTextField();
Cicilan = new javax.swing.JTextField();
Na_cus = new javax.swing.JTextField();
ID_cus = new javax.swing.JTextField();
jLabel1 = new javax.swing.JLabel();
jLabel2 = new javax.swing.JLabel();
jLabel3 = new javax.swing.JLabel();
jLabel4 = new javax.swing.JLabel();
jLabel5 = new javax.swing.JLabel();
jLabel6 = new javax.swing.JLabel();
jLabel7 = new javax.swing.JLabel();
jLabel8 = new javax.swing.JLabel();
jLabel9 = new javax.swing.JLabel();
Je_mo = new javax.swing.JComboBox();
Ta_pe = new com.jcalendar.pane.calendar.CalendarPane();
Hitung = new javax.swing.JButton();
jLabel11 = new javax.swing.JLabel();
Al_cus = new javax.swing.JTextField();
Depe = new javax.swing.JTextField();
Bunga = new javax.swing.JTextField();
Tenor = new javax.swing.JTextField();
jLabel12 = new javax.swing.JLabel();
jLabel13 = new javax.swing.JLabel();
jLabel14 = new javax.swing.JLabel();
jLabel15 = new javax.swing.JLabel();
jLabel16 = new javax.swing.JLabel();
jButton5 = new javax.swing.JButton();
jButton6 = new javax.swing.JButton();
jLabel17 = new javax.swing.JLabel();
jLabel18 = new javax.swing.JLabel();
jScrollPane1 = new javax.swing.JScrollPane();
Estimasi = new javax.swing.JTextArea();
EP = new javax.swing.JButton();
jLabel19 = new javax.swing.JLabel();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
addWindowListener(new java.awt.event.WindowAdapter() {
public void windowOpened(java.awt.event.WindowEvent evt) {
formWindowOpened(evt);
}
});
jLabel10.setText("Cicilan per bulan");
Har_mo.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
Har_moActionPerformed(evt);
}
});
jLabel1.setFont(new java.awt.Font("Tahoma", 1, 22)); // NOI18N
jLabel1.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
jLabel1.setText("LEASING INDO AUTOCAR CREDIT");
jLabel2.setText("Nama Customer");
jLabel3.setText("ID Customer");
jLabel4.setText("Tgl Pengajuan");
jLabel5.setText("Jenis Mobil");
jLabel6.setText("Harga Mobil");
jLabel7.setText("DP");
jLabel8.setText("Bunga");
jLabel9.setText("Tenor");
Je_mo.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "----", "Avanza", "Xenia", "Rush", "Terios", "Jazz", "CRV", "HRV", "Agya", "Ayla" }));
Hitung.setText("Hitung");
Hitung.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
HitungActionPerformed(evt);
}
});
jLabel11.setText("Alamat Customer");
Depe.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
DepeActionPerformed(evt);
}
});
Bunga.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
BungaActionPerformed(evt);
}
});
Tenor.setText("48");
Tenor.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
TenorActionPerformed(evt);
}
});
jLabel12.setText("Rp");
jLabel13.setText("Rp");
jLabel14.setText("Rp");
jLabel15.setText("Bulan");
jLabel16.setText("Rp");
jButton5.setText("Reset");
jButton5.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton5ActionPerformed(evt);
}
});
jButton6.setText("Tutup");
jButton6.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton6ActionPerformed(evt);
}
});
jLabel17.setText("20% dari harga mobil");
jLabel18.setText("30% setelah harga di kurang DP");
Estimasi.setColumns(20);
Estimasi.setRows(5);
jScrollPane1.setViewportView(Estimasi);
EP.setText("Riwayat Pembayaran");
EP.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
EPActionPerformed(evt);
}
});
jLabel19.setBackground(new java.awt.Color(0, 0, 0));
jLabel19.setIcon(new javax.swing.ImageIcon("C:\\Users\\bstsetter\\Pictures\\acc by paint\\carlogo.png")); // NOI18N
jLabel19.setText("jLabel19");
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(254, 254, 254)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jLabel5)
.addComponent(jLabel4)
.addComponent(jLabel11))
.addGap(41, 41, 41)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
.addComponent(Na_cus)
.addComponent(ID_cus, javax.swing.GroupLayout.PREFERRED_SIZE, 228, javax.swing.GroupLayout.PREFERRED_SIZE))
.addComponent(Ta_pe, javax.swing.GroupLayout.PREFERRED_SIZE, 249, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(Je_mo, javax.swing.GroupLayout.PREFERRED_SIZE, 117, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addComponent(Al_cus)))
.addComponent(jLabel2)
.addComponent(jLabel3)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
.addComponent(jScrollPane1, javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jLabel6)
.addComponent(jLabel7)
.addComponent(jLabel8)
.addComponent(jLabel9)
.addComponent(jLabel10)
.addComponent(jButton5))
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(28, 28, 28)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
.addComponent(jLabel12)
.addComponent(jLabel13)
.addComponent(jLabel14)
.addComponent(jLabel16))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(Har_mo, javax.swing.GroupLayout.PREFERRED_SIZE, 117, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGroup(layout.createSequentialGroup()
.addComponent(Depe, javax.swing.GroupLayout.PREFERRED_SIZE, 117, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(jLabel17, javax.swing.GroupLayout.PREFERRED_SIZE, 192, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(layout.createSequentialGroup()
.addComponent(Tenor, javax.swing.GroupLayout.PREFERRED_SIZE, 117, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(jLabel15))
.addGroup(layout.createSequentialGroup()
.addComponent(Bunga, javax.swing.GroupLayout.PREFERRED_SIZE, 117, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(jLabel18, javax.swing.GroupLayout.PREFERRED_SIZE, 200, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(layout.createSequentialGroup()
.addComponent(Cicilan, javax.swing.GroupLayout.PREFERRED_SIZE, 117, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(Hitung)
.addGap(18, 18, 18)
.addComponent(EP))))
.addGroup(layout.createSequentialGroup()
.addGap(18, 18, 18)
.addComponent(jButton6)))))
.addGroup(layout.createSequentialGroup()
.addComponent(jLabel19, javax.swing.GroupLayout.PREFERRED_SIZE, 186, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 384, javax.swing.GroupLayout.PREFERRED_SIZE)))
.addGap(42, 42, 42))
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 109, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel19, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addGap(18, 18, 18)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(Na_cus, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel2))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(ID_cus, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel3))
.addGap(6, 6, 6)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(Al_cus, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel11))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jLabel4)
.addComponent(Ta_pe, javax.swing.GroupLayout.PREFERRED_SIZE, 182, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addComponent(jLabel5)
.addGap(6, 6, 6))
.addComponent(Je_mo, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(Har_mo, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel12))
.addComponent(jLabel6))
.addGap(8, 8, 8)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(Depe, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel13)
.addComponent(jLabel7)
.addComponent(jLabel17))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel14)
.addComponent(Bunga, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel8)
.addComponent(jLabel18))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel15)
.addComponent(Tenor, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel9))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel16)
.addComponent(Cicilan, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel10)
.addComponent(Hitung)
.addComponent(EP))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jButton5)
.addComponent(jButton6))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 174, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(16, 16, 16))
);
jLabel19.getAccessibleContext().setAccessibleName("");
pack();
}// </editor-fold>
private void Har_moActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
}
private void HitungActionPerformed(java.awt.event.ActionEvent evt) {
HM=Integer.parseInt(Har_mo.getText());
D=Integer.parseInt(Depe.getText());
B=Integer.parseInt(Bunga.getText());
T=Integer.parseInt(Tenor.getText());
CPB=((HM-D)+B)/T;
Cicilan.setText(""+CPB);
CPB=Integer.parseInt(Cicilan.getText());
// TODO add your handling code here:
}
private void DepeActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
}
private void BungaActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
}
private void TenorActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
}
private void jButton5ActionPerformed(java.awt.event.ActionEvent evt) {
Na_cus.setText("");
ID_cus.setText("");
Al_cus.setText("");
Har_mo.setText("");
Depe.setText("");
Bunga.setText("");
Tenor.setText("");
Cicilan.setText("");
// TODO add your handling code here:
}
private void jButton6ActionPerformed(java.awt.event.ActionEvent evt) {
dispose(); // TODO add your handling code here:
}
private void EPActionPerformed(java.awt.event.ActionEvent evt) {
E=Integer.parseInt(Cicilan.getText());
E=3250000;
while ( E<=156000000) {
System.out.println("Anda telah membayar pinjaman sebesar " + E);
E+=3250000;
Estimasi.setText(""+E);
}
// TODO add your handling code here:
}
private void formWindowOpened(java.awt.event.WindowEvent evt) {
// TODO add your handling code here:
}
/**
* @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/lookandfeel/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(LEASING_INDOAUTOCARCREDIT.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (InstantiationException ex) {
java.util.logging.Logger.getLogger(LEASING_INDOAUTOCARCREDIT.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
java.util.logging.Logger.getLogger(LEASING_INDOAUTOCARCREDIT.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException ex) {
java.util.logging.Logger.getLogger(LEASING_INDOAUTOCARCREDIT.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
}
//</editor-fold>
/* Create and display the form */
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new LEASING_INDOAUTOCARCREDIT().setVisible(true);
}
} );
}
// Variables declaration - do not modify
private javax.swing.JTextField Al_cus;
private javax.swing.JTextField Bunga;
private javax.swing.JTextField Cicilan;
private javax.swing.JTextField Depe;
private javax.swing.JButton EP;
private javax.swing.JTextArea Estimasi;
private javax.swing.JTextField Har_mo;
private javax.swing.JButton Hitung;
private javax.swing.JTextField ID_cus;
private javax.swing.JComboBox Je_mo;
private javax.swing.JTextField Na_cus;
private com.jcalendar.pane.calendar.CalendarPane Ta_pe;
private javax.swing.JTextField Tenor;
private javax.swing.JButton jButton5;
private javax.swing.JButton jButton6;
private com.jcalendar.model.JCalModel jCalModel1;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel10;
private javax.swing.JLabel jLabel11;
private javax.swing.JLabel jLabel12;
private javax.swing.JLabel jLabel13;
private javax.swing.JLabel jLabel14;
private javax.swing.JLabel jLabel15;
private javax.swing.JLabel jLabel16;
private javax.swing.JLabel jLabel17;
private javax.swing.JLabel jLabel18;
private javax.swing.JLabel jLabel19;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel4;
private javax.swing.JLabel jLabel5;
private javax.swing.JLabel jLabel6;
private javax.swing.JLabel jLabel7;
private javax.swing.JLabel jLabel8;
private javax.swing.JLabel jLabel9;
private javax.swing.JScrollPane jScrollPane1;
// End of variables declaration
}
Dengan flowchart sebagai berikut :
Setelah code dan design selesai kita dapat menjalankan program tersebut.
Mari jalankan program dengan menekan Shift+F6
berikut screenshoot simulasinya :
Lalu kita coba isi form yang tersedia dan biarkan kolom cicilan perbulan kosong.
.
lalu ketik Hitung, maka program otomatis menghitung cicilan perbulan sang customer.
dan untuk melihat riwayat pembayaran. kita dapat mengklik button riwayat pembayaran disamping tombol hitung.
maka program otomatis mengakumulasi step pembayaran dari cicilan pertama hingga ke 48, dengan kembali ke nilai pinjaman pokok.
150.000.000 - 30.000.000 (DP 20%) + 36.000.000 (Bunga 30%) = 156.000.000 (Total Pinjaman)
Dan setelah selesai kita dapat mereset program dengan mengklik tombol reset atau menutup program dengan mengklik tombol tutup.
Mohon maaf apabila terdapat kesalahan dan kekeliruan, penulis menyadari tulisan ini jauh dari kata sempurna. semoga bermanfaat. Terima kasih