Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- * 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 db.kursus;
- import java.awt.HeadlessException;
- import java.sql.*;
- import java.util.*;
- import javax.swing.*;
- import java.text.*;
- import java.awt.event.*;
- /**
- *
- * @author Aditya Pramana
- */
- public class DBInsertData {
- private String url;
- private String username;
- private String password;
- private String[] listSiswa;
- private String[] listKelas;
- private String[] listTanggal;
- private final String[] listBulan = new String[]{"01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12"};
- private final String[] listTahun = new String[]{"2017", "2016", "2015", "2014", "2013"};
- private JFrame frame;
- private JLabel lblSiswa;
- private JLabel lblKelas;
- private JLabel lblTanggal;
- private JLabel lblNilai;
- private JComboBox selectSiswa;
- private JComboBox selectKelas;
- private JComboBox selectTanggal;
- private JComboBox selectBulan;
- private JComboBox selectTahun;
- private JCheckBox checkSelesai;
- private JTextField txtNilai;
- private JButton btnAdd;
- private JButton btnDone;
- public DBInsertData(String url, String username, String password){
- this.url = url;
- this.username = username;
- this.password = password;
- listSiswa = getSiswa();
- listKelas = getKelas();
- listTanggal = new String[31];
- for(int i = 0; i < 31; i++) listTanggal[i] = String.format("%02d", i+1);
- initializeComponent();
- }
- private void initializeComponent(){
- frame = new JFrame("[DBAdmin] Data Edior || Logged in as " + username);
- lblSiswa = new JLabel("Pilih nama siswa:");
- selectSiswa = new JComboBox(listSiswa);
- lblKelas = new JLabel("Pilih kelas:");
- selectKelas = new JComboBox(listKelas);
- lblTanggal = new JLabel("Masukkan Tanggal:");
- selectTanggal = new JComboBox(listTanggal);
- selectBulan = new JComboBox(listBulan);
- selectTahun = new JComboBox(listTahun);
- checkSelesai = new JCheckBox("Belum Selesai");
- lblNilai = new JLabel("Masukkan nilai (1-100):");
- txtNilai = new JTextField(20);
- btnAdd = new JButton("Add Data");
- btnDone = new JButton("Done");
- btnAdd.addActionListener(new btnAddListener());
- btnDone.addActionListener(new btnDoneListener());
- frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
- frame.setSize(540, 320);
- frame.setResizable(false);
- //<editor-fold defaultstate="collapsed" desc=" A very long auto-generated code ">
- GroupLayout layout = new GroupLayout(frame.getContentPane());
- frame.getContentPane().setLayout(layout);
- layout.setHorizontalGroup(
- layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(layout.createSequentialGroup()
- .addContainerGap()
- .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addComponent(selectSiswa, 0, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
- .addComponent(selectKelas, 0, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
- .addGroup(layout.createSequentialGroup()
- .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addComponent(lblSiswa)
- .addComponent(lblKelas)
- .addComponent(lblTanggal)
- .addGroup(layout.createSequentialGroup()
- .addComponent(selectTanggal, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
- .addComponent(selectBulan, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
- .addComponent(selectTahun, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
- .addComponent(checkSelesai))
- .addComponent(lblNilai))
- .addGap(0, 175, Short.MAX_VALUE))
- .addComponent(txtNilai)
- .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
- .addGap(16, 16, Short.MAX_VALUE)
- .addComponent(btnAdd)
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addComponent(btnDone)))
- .addContainerGap())
- );
- layout.setVerticalGroup(
- layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(layout.createSequentialGroup()
- .addContainerGap()
- .addComponent(lblSiswa)
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addComponent(selectSiswa, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addComponent(lblKelas)
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addComponent(selectKelas, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addComponent(lblTanggal)
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
- .addComponent(selectTanggal, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addComponent(selectBulan, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addComponent(selectTahun, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addComponent(checkSelesai))
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addComponent(lblNilai)
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addComponent(txtNilai, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 21, Short.MAX_VALUE)
- .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
- .addGap(16, 16, Short.MAX_VALUE)
- .addComponent(btnAdd)
- .addComponent(btnDone)))
- );
- //</editor-fold>
- frame.setVisible(true);
- }
- public class btnAddListener implements ActionListener{
- @Override
- public void actionPerformed(ActionEvent e){
- int cont = JOptionPane.showConfirmDialog(null, "Are you sure to add this data?", "Confirmation", JOptionPane.YES_NO_OPTION);
- if (cont == 1) return;
- try {
- int selectedSiswa = selectSiswa.getSelectedIndex();
- int selectedKelas = selectKelas.getSelectedIndex();
- String d = listTanggal[selectTanggal.getSelectedIndex()];
- String m = listBulan[selectBulan.getSelectedIndex()];
- String y = listTahun[selectTahun.getSelectedIndex()];
- boolean isSelesai = !checkSelesai.isSelected();
- String sNilai = txtNilai.getText();
- Integer nilai;
- String query;
- if (sNilai.equals("") || !isSelesai) nilai = null;
- else nilai = Integer.parseInt(sNilai);
- if (!dateCheck(d,m,y))
- throw new IllegalArgumentException("Wrong Date Format");
- if (isSelesai) {
- if (nilai == null)
- throw new IllegalArgumentException("'Nilai' cannot be null if 'Belum selesai' is unchecked");
- query = String.format("INSERT INTO detil_kursus VALUES ('S%04d','K%04d'," +
- nilai + "," + isSelesai + ",'%s-%s-%s');", selectedSiswa, selectedKelas, y, m, d);
- }
- else {
- String sDate = null;
- try (Connection connection = DriverManager.getConnection(url, username, password)){
- Statement stmt = connection.createStatement();
- String q = String.format("select pk.PK_TGLSELESAI from kelas_kursus kk, paket_kursus pk\n" +
- "where kk.ID_PK=pk.ID_PK and kk.ID_KELAS='K%04d';", selectedKelas);
- ResultSet rs = stmt.executeQuery(q);
- rs.next();
- java.util.Date date = rs.getDate(1);
- SimpleDateFormat fr = new SimpleDateFormat("yyyy-MM-dd");
- sDate = String.format("'%s'", fr.format(date));
- connection.close();
- }
- catch(SQLException ex){
- JOptionPane.showMessageDialog(null, "SQL: An Error Occured");
- }
- query = String.format("INSERT INTO detil_kursus VALUES ('S%04d','K%04d'," +
- nilai + "," + isSelesai + "," + sDate + ");", selectedSiswa, selectedKelas);
- }
- try (Connection connection = DriverManager.getConnection(url, username, password)) {
- Statement stmt = connection.createStatement();
- stmt.execute(query);
- connection.close();
- }
- catch (SQLException ex) {
- JOptionPane.showMessageDialog(null, "SQL: An Error Occured\n" + ex.getMessage());
- }
- }
- catch (HeadlessException | IllegalArgumentException ex){
- JOptionPane.showMessageDialog(null, "An error has occured\n" + ex.toString());
- }
- }
- boolean dateCheck(String day, String month, String year){
- int d = Integer.parseInt(day);
- int m = Integer.parseInt(month);
- int y = Integer.parseInt(year);
- switch(m){
- case 2:
- if(y % 4 == 0)
- return (d < 30);
- else return (d < 29);
- case 4:
- case 6:
- case 9:
- case 11:
- return (d < 31);
- default: return true;
- }
- }
- }
- public class btnDoneListener implements ActionListener{
- @Override
- public void actionPerformed(ActionEvent e) {
- System.exit(0);
- }
- }
- private String[] getKelas(){
- java.util.List<String> kelas;
- kelas = new ArrayList<>();
- try (Connection connection = DriverManager.getConnection(url, username, password)){
- Statement stmt = connection.createStatement();
- ResultSet rs = stmt.executeQuery("select kk.ID_KELAS, p.P_NAMA, c.C_NAMA, pk.PK_NAMA, kk.daya_tampung \n"
- + "from kelas_kursus kk, pengajar p, cabang c, paket_kursus pk \n"
- + "where kk.ID_PK = pk.ID_PK \n"
- + "and kk.ID_CABANG = c.ID_CABANG \n"
- + "and kk.ID_PENGAJAR = p.ID_PENGAJAR\n"
- + "order by kk.ID_KELAS;");
- kelas.add("");
- if (!rs.next()) return null;
- else{
- do kelas.add(rs.getString(1) + " || " + rs.getString(2) + " || " +
- rs.getString(3) + " || " + rs.getString(4) + " || " + rs.getInt(5));
- while (rs.next());
- }
- connection.close();
- return kelas.toArray(new String[kelas.size()]);
- }
- catch (SQLException ex){
- JOptionPane.showMessageDialog(null, "A database-related error has occured");
- return null;
- }
- }
- private String[] getSiswa(){
- java.util.List<String> siswa;
- siswa = new ArrayList<>();
- try (Connection connection = DriverManager.getConnection(url, username, password)){
- Statement stmt = connection.createStatement();
- ResultSet rs = stmt.executeQuery("select no_siswa, s_nama from siswa;");
- siswa.add("");
- if (!rs.next()) return null;
- else{
- do siswa.add(rs.getString(1) + " || " + rs.getString(2));
- while (rs.next());
- }
- connection.close();
- return siswa.toArray(new String[siswa.size()]);
- }
- catch (SQLException ex){
- JOptionPane.showMessageDialog(null, "A database-related error has occured");
- return null;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement