Contoh Aplikasi Swing : Menyimpan Data ke Database

Oleh : Reza Ervani

بسم الله الرحمن الرحيم

Kali ini kita akan mencoba menggunakan JDBC di Aplikasi berbasis Swing untuk menyimpan data ke Database MySQL

Membuat Form

Pertama-tama mari kita buat form sederhana seperti berikut di Eclipse :

Screenshot from 2014-06-08 19:24:41

Kita berikan tombolnya Action Handler :

Screenshot from 2014-06-08 18:58:10

Sehingga kita mendapatkan source code seperti berikut :

[code language=”java”]
package LatihDatabase;

import java.awt.BorderLayout;
import java.awt.EventQueue;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JLabel;
import javax.swing.JTextField;
import javax.swing.JButton;
import java.awt.Font;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;

public class FormInput extends JFrame {

private JPanel contentPane;
private JTextField textField;
private JTextField textField_1;
private JTextField textField_2;

/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
FormInput frame = new FormInput();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}

/**
* Create the frame.
*/
public FormInput() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 450, 300);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);

JLabel lblFormIsianData = new JLabel("Form Isian Data");
lblFormIsianData.setFont(new Font("Liberation Sans Narrow", Font.BOLD, 24));
lblFormIsianData.setBounds(159, 0, 146, 29);
contentPane.add(lblFormIsianData);

JLabel lblNama = new JLabel("Nama");
lblNama.setBounds(45, 41, 70, 15);
contentPane.add(lblNama);

JLabel lblData = new JLabel("Data 1");
lblData.setBounds(45, 79, 70, 15);
contentPane.add(lblData);

JLabel lblData_1 = new JLabel("Data 2");
lblData_1.setBounds(45, 122, 70, 15);
contentPane.add(lblData_1);

textField = new JTextField();
textField.setBounds(148, 39, 114, 19);
contentPane.add(textField);
textField.setColumns(10);

textField_1 = new JTextField();
textField_1.setBounds(148, 77, 114, 19);
contentPane.add(textField_1);
textField_1.setColumns(10);

textField_2 = new JTextField();
textField_2.setBounds(148, 120, 114, 19);
contentPane.add(textField_2);
textField_2.setColumns(10);

JLabel lblStatus = new JLabel("STATUS");
lblStatus.setBounds(12, 196, 424, 62);
contentPane.add(lblStatus);

JButton btnMasukkanData = new JButton("MASUKKAN DATA");
btnMasukkanData.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
}
});
btnMasukkanData.setBounds(285, 149, 151, 25);
contentPane.add(btnMasukkanData);
}
}
[/code]

Membuat Database

Menggunakan phpMyAdmin kita buat database seperti berikut :

Screenshot from 2014-06-08 18:52:57

Mengunduh dan Menambahkan Driver JDBC MySQL ke BuildPath

Kita akan memerlukan driver JDBC untuk MySQL, bisa diunduh dari http://dev.mysql.com/downloads/connector/j

Lalu kita tambahkan ke Eclipse :

Screenshot from 2014-06-08 19:10:30

Klik tombol Add External Jar

Screenshot from 2014-06-08 19:10:42

Pilih File mysql-connector-java-5-x-x.jar seperti tampak pada gambar diatas. Klik OK

Screenshot from 2014-06-08 19:10:52

Maka sekarang kita sudah bisa menggunakan driver JDBC MySQL kita

Memuat Driver dan Membangun Koneksi ke Database

Sekarang kita buatkan kode JDBC untuk menghubungkan form kita ke database

Kita siapkan dulu Field untuk Koneksi seperti berikut :

[code language=”java”]

private Connection koneksi = null;

[/code]

Tentu saja sebelumnya kita perlu mengimport paket Connection :

[code language=”java”]

import java.sql.Connection;

[/code]

Berikut kodenya yang kita tempatkan di Action Handler Button :

[code language=”java”]

btnMasukkanData.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
try {
//Memuat Driver JDBC MySQL
Class.forName("com.mysql.jdbc.Driver");

//Melakukan koneksi
koneksi = DriverManager.getConnection("jdbc:mysql://localhost/latihswingdb","root","fatihrantissi");
lblStatus.setText("Koneksi Berhasil");
} catch (Exception e1) {
lblStatus.setText("Koneksi Gagal");
}
}

[/code]

Jika dijalankan dan koneksi berhasil maka tampilannya akan tampak seperti berikut :

Screenshot from 2014-06-08 19:28:58

Memasukkan Data

Sekarang mari kita gunakan PreparedStatement untuk menyimpan data ke Database

Kita siapkan terlebih dahulu field untuk PreparedStatement seperti berikut :

[code language=”java”]

private PreparedStatement preparedStatement = null;

[/code]

Ini akan membuat kita membutuhkan import prepared statement seperti berikut :

[code language=”java”]

import java.sql.PreparedStatement;

[/code]

 

Kodenya adalah seperti berikut, kita tambahkan setelah kode koneksi ke database tadi :

[code language=”java”]
//Memberikan query MySQL dengan preparedStatement
preparedStatement = koneksi.prepareStatement("INSERT INTO latihswingdb.contoh VALUES (default, ?, ?, ? )");

//Memberikan Nilai yang Baru
preparedStatement.setString(1, textField.getText());
preparedStatement.setString(2, textField_1.getText());
preparedStatement.setString(3, textField_2.getText());

//Mengeksekusi update
preparedStatement.executeUpdate();

lblStatus.setText("Pemasukan Data Berhasil");

[/code]

Jika kita jalankan maka aplikasi akan tampak seperti berikut :

Screenshot from 2014-06-08 19:43:45

Setelah kita masukkan data, tekan tombol maka akan tampak seperti berikut :

Screenshot from 2014-06-08 19:45:01

Jika kita cek phpMyAdmin, maka data yang kita berikan tadi berhasil masuk :

Screenshot from 2014-06-08 19:44:28

Menutup Koneksi

Adalah praktek pemrogramman yang baik untuk selalu menutup seluruh koneksi setelah kebutuhan kita akan database selesai.

Lakukan seperti berikut :

[code language=”java”]

koneksi.close();
preparedStatement.close();

[/code]

Seluruh kode yang kita punya akan tampak seperti berikut :

[code language=”java”]

package LatihDatabase;

import java.awt.BorderLayout;
import java.awt.EventQueue;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JLabel;
import javax.swing.JTextField;
import javax.swing.JButton;

import java.awt.Font;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;

public class FormInput extends JFrame {

private JPanel contentPane;
private JTextField textField;
private JTextField textField_1;
private JTextField textField_2;

/**
* Field yang terkait dengan Database
*/

private Connection koneksi = null;
private PreparedStatement preparedStatement = null;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
FormInput frame = new FormInput();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}

/**
* Create the frame.
*/
public FormInput() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 450, 300);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);

JLabel lblFormIsianData = new JLabel("Form Isian Data");
lblFormIsianData.setFont(new Font("Liberation Sans Narrow", Font.BOLD, 24));
lblFormIsianData.setBounds(159, 0, 146, 29);
contentPane.add(lblFormIsianData);

JLabel lblNama = new JLabel("Nama");
lblNama.setBounds(45, 41, 70, 15);
contentPane.add(lblNama);

JLabel lblData = new JLabel("Data 1");
lblData.setBounds(45, 79, 70, 15);
contentPane.add(lblData);

JLabel lblData_1 = new JLabel("Data 2");
lblData_1.setBounds(45, 122, 70, 15);
contentPane.add(lblData_1);

textField = new JTextField();
textField.setBounds(148, 39, 114, 19);
contentPane.add(textField);
textField.setColumns(10);

textField_1 = new JTextField();
textField_1.setBounds(148, 77, 114, 19);
contentPane.add(textField_1);
textField_1.setColumns(10);

textField_2 = new JTextField();
textField_2.setBounds(148, 120, 114, 19);
contentPane.add(textField_2);
textField_2.setColumns(10);

JLabel lblStatus = new JLabel("STATUS");
lblStatus.setBounds(12, 196, 424, 62);
contentPane.add(lblStatus);

JButton btnMasukkanData = new JButton("MASUKKAN DATA");
btnMasukkanData.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
try {
//Memuat Driver JDBC MySQL
Class.forName("com.mysql.jdbc.Driver");

//Melakukan koneksi
koneksi = DriverManager.getConnection("jdbc:mysql://localhost/latihswingdb","root","fatihrantissi");

//Memberikan query MySQL dengan preparedStatement
preparedStatement = koneksi.prepareStatement("INSERT INTO latihswingdb.contoh VALUES (default, ?, ?, ? )");

//Memberikan Nilai yang Baru
preparedStatement.setString(1, textField.getText());
preparedStatement.setString(2, textField_1.getText());
preparedStatement.setString(3, textField_2.getText());

//Mengeksekusi update
preparedStatement.executeUpdate();

lblStatus.setText("Pemasukan Data Berhasil");

koneksi.close();
preparedStatement.close();

} catch (Exception e1) {
lblStatus.setText("Pemasukan Data Gagal");
}
}
});
btnMasukkanData.setBounds(285, 149, 151, 25);
contentPane.add(btnMasukkanData);

}
}

[/code]

Di tutorial berikutnya kita akan melihat bagaimana cara mengupdate, menghapus dan menampilkan data dari database.

About Reza Ervani 426 Articles
Adalah pendiri programming.rezaervani.com -

Be the first to comment

Leave a Reply

Your email address will not be published.


*


This site uses Akismet to reduce spam. Learn how your comment data is processed.