Senin, 08 Oktober 2018

Design Database dengan menggunakan normalisasi basis data

DATABASE “ SENTRA MEDIA BERKAT” / printing, advertising, merchandise vendor

Dengan kumpulan field - field yang di kumpulkan dari 2 table ( Product Table & Selling Table ) sebagai berikut.


Product Table ( Design View), sebagai berikut



Product Table ( Open / Run ), sebagai berikut


Selling Table ( Design View), sebagai berikut

Selling Table ( Open / Run ), sebagai berikut
Setelah kita membuat table dengan field field yang dibutuhkan, kita akan lanjut menggabungkannya kedalam sebuah query, dengan contoh sebagai berikut:
(Tampilan Design view)


Tampilan ketika di run / open

Otomatis data akan masuk ke “selling table”
Lalu selanjutnya kita akan membuat form dari table dan query yang ada, dengan cara sebagai berikut.
(Product Table on design view)

(Product Table when running / open view)
(Selling Table on design view)


Selling Table when running / open
Pembuatan Form dapat dilakukan, dengan cara Create > Form Wizard
Dan kita dapat membuat button serta perintah tambahan lainnya.


Switchboard

Cara membuat switch board dengan cara klik pada pojok kiri atas


Switchboard berfungsi sebagai interface untuk memanggil kumpulan data (record) dari table table atau Query






Cara membuat menu di switch board.

Lalu klik 2 kali pada main shortcut switch board
Setelah itu pilih table / query yang hendak dipilih, lalu  klik new
Lalu OK


Lalu yang terakhir kita akan membuat report
Create> Report Wizard


Kita dapat membuat report  sesuai dengan data yang diinginkan, entah itu table maupun query.
Setelah memilih, kita dapat menjalankannya, dan akan muncul tampilan sebagai berikut.
Pada contoh ini saya menggunakan report dengan data dari query.




Demikian normalisasi dalam design database. Mohon maaf apabila terdapat kekurangan / kesalahan dalam penulisan. Saran dan kritik sangat saya harapkan. terima kasih

Senin, 24 September 2018

ATURAN DAN TEKNIK NORMALISASI DATA

Nama : Edy Susanto
NIM   : 161021450073



Normalisasi (normalize) merupakan salah satu cara pendekatan atau teknik yang digunakan dalam membangun desain logic database relation dengan menerapakan sejumlah aturan dan kriteria standard.
Tujuan dari normalisasi adalah untuk menghasilakan struktur tabel yang normal atau baik.

1 Bentuk Tidak Normal (unnormalize)


Bentuk tidak normal (unnormalized) merupakan kumpulan data yang direkam tidak ada keharusan dengan mengikuti suatu format tertentu.
Pada bentuk tidak normal terdapat repeating group (Pengulangan Group), sehingga pada kondisi ini data menjadi permasalahan dalam melakukan manipulasi data (insert, update, dan delete) atau biasa disebut anomali.


2. Normal Pertama (1 NF)

Normal pertama (1 NF), suatu relasi atau tabel memenuhi normal pertama jika dan hanya jika setiap setiap atribut dari relasi tersebut hanya memiliki nilai tunggal dalam satu baris (record).

Bentuk normalisasi pertama (1 NF) ini mempunyai ciri yaitu setiap data dibentuk file datar atau rata (flat file), data dibentuk dalam satu record demi satu record dan nilai-nilai dari field-field berupa nilai yang tidak dapat dibagi-bagi lagi.



3. Normal Kedua (2 NF)

Normalisasi kedua (2 NF), suatu relasi memenuhi relasi kedua jika dan hanya jika relasi tersebut memenuhi normal pertama dan setiap atribut yang bukan kunci (non key) bergantung secara fungsional terhadap kunci utama (Primary key).

. Normal Ketiga (3 NF)

Normalisasi ketiga (3 NF), suatu relasi memenuhi normal ketiga jika dan hanya jika relasi tersebut memenuhi normal kedua dan setiap atribut bukan kunci (non key) tidak mempunyai transitive functional dependency kepada kunci utama (primary key).

KESIMPULAN :
Tujuan dari normalisasi adalah untuk menghasilakan struktur tabel yang normal atau baik.
Normalisasi data berfungsi untuk meminimalisir redudansi data dan mencegah anomali.
Normalisasi dimulai dari tahap tidak normal (unnormalized), bentuk normal pertama (1 NF), bentuk normal kedua (2 NF), dan seterusnya sampai didapatkan struktur tabel yang normal.

Berikut ulasan yang dapat saya berikan mengenai normalisasi data. Mohon maaf apabila ada kekurangan. Terima kasih



Selasa, 16 Januari 2018

UAS ALGORITMA PEMROGRAMAN 2

UAS ALGORITMA PEMROGRAMAN 2



PROGRAM
"LEASING INDO AUTOCAR CREDIT"



Damai Sejahterah bagi kita semua,
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. 

Nama         : Edy Susanto
NIM            : 161021450073
Universitas : STMIK ERESHA



DESKRIPSI :

Program ini dibuat dengan tujuan mempermudah perhitungan biaya pengajuan kredit mobil.
pada program ini. Dengan tampilan sederhana, saya merasa user dapat dengan mudah menggunakan / menjalankan program tersebut. Saat program dijalankan ada beberapa data yang harus dimasukkan, diantaranya :
Nama Customer, ID Customer, Alamat Customer, Tanggal Pengajuan, Memilih jenis mobil, Memasukan Harga Mobil, Memasukan DP (20 % dari harga mobil), Memasukan Biaya Bunga (30% dari harga mobil-DP),  lalu user bisa mengklik tombol "HITUNG". Maka setelah user mengklik tombol Hitung, program dengan otomatis akan menghitung besar cicilan yang harus dibayarkan dengan tenor pilihan 48 bulan atau 4 tahun (umumnya pengajuan kredit mobil bekas).

Dan Untuk melihat pengurang otomatis dari riwayat pembayaran, User dapat mengklik "Riwayat Pembayaran". Dan user dapat  melihat riwayat  pembayaran pertama, lalu pembayaran selanjutnya dengan akumulasi jumlah secara otomatis.
saya akan memberikan simulasi pada gambar dibawah nanti.

Dan User juga bisa mengklik button reset, untuk mengosongkan form. atau user dapat mengklik button tutup, untuk menutup program.


Baik, kita cepat saja ya.
pertama kita bisa langung membuka program netbeans.
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.




pada design diatas sata menggunakan Label, Text Field, Combo box, saya juga menggunakan pallate date, dan Button.


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