Anda di halaman 1dari 23

MEMBUAT APLIKASI DATA SISWA DENGAN MDI FORM

1. Persiapan database. Buat database : tutorialjava, kemudian buat tabel : students dan teacher.
CREATE DATABASE tutorialjava;
USE tutorialjava;
CREATE TABLE `students` (
`nis` char(11) NOT NULL,
`nama` varchar(30) DEFAULT NULL,
`jurusan` varchar(30) DEFAULT NULL,
`jk` varchar(16) DEFAULT NULL,
`alamat` text,
PRIMARY KEY (`nis`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

CREATE TABLE `teacher` (


`nip` char(20) NOT NULL,
`nama` varchar(50) DEFAULT NULL,
`mapel` varchar(20) DEFAULT NULL,
`jk` varchar(10) DEFAULT NULL,
`alamat` varchar(75) DEFAULT NULL,
PRIMARY KEY (`nip`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

2. Buat project baru dengan cara klik menu file, pilih new project

3. Isi nama project : Tutorial_3_MDI_form

1
4. Membuat MDI form.
Klik kanan pada package tutorial_3_mdi_form, pilih new, other

5. Pilih Swing Gui Forms, MDI Application Sample Form, klik next

6. Isikan nama : MDI_form

2
7. Klik kanan pada desktop pane yang semula warnanya hitam ganti warna putih dengan
cara klik kanan pada desktop pane pilih properties background, rubah warnanya
menjadi putih dengan cara klik pada titik tiga (...) kemudian pilih warna putih.

8. Membuat menu dengan cara klik kanan pada menu, pilih Add Menu

3
9. Rubah tampilan menu menjadi Master dan rubah nama menu dengan cara kilik kanan
ChangeVariableName : masterMenu

10. Buat menu Item data siswa dengan cara klik kanan pada menu Master

11. Rubah text menu dengan cara klik kanan pada jMenuItem1, pilih : Edit Text, ketik :
Data Siswa

12. Rubah nama menu dengan cara kilik kanan ChangeVariableName : datasiswaMenu

4
13. Tambahkan script pada Tutorial_3_MDI_form.java untuk panggil MDI form

package tutorial_3_mdi_form;
public class Tutorial_3_MDI_form {
public static void main(String[] args) {
// TODO code application logic here
MDI_form form = new MDI_form(); // form Utama disini adalah form siswa
form.setVisible(true);
}
}

14. Pada MDI_form tambahkan kode program this.setExtendedState(MAXIMIZED_BOTH);


untuk menampilkan frame agar tampil maximize

public MDI_form() {
initComponents();
this.setExtendedState(MAXIMIZED_BOTH);
}

15. Klik Run hasilnya sbb :

5
16. Membuat MDI child untuk form siswa

Klik kanan pada package tutorial_3_mdi_form pilih menu new -> other-> Swing GUI
Forms ->JItnernalFrame Form

17. Isi nama class : FormSiswa

18. Tambahkan Swing Controls -> Table, rubah nama menjadi : tableSiswa

6
19. Klik kanan pada menu Data Siswa, pilih Events->Action->
actionPerformed[datasiswaMenuActionPerformed]

isi kode berikut :


private void datasiswaMenuActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
FormSiswa fsiswa = new FormSiswa();
desktopPane.add(fsiswa); // menambahkan JInternalFrame ke dalam desktopPane
fsiswa.setIconifiable(true); // set minimize
fsiswa.setClosable(true); // set closed
fsiswa.setResizable(true); // set resizable
fsiswa.setMaximizable(true); // maximize
fsiswa.show();
try {
fsiswa.setSelected(true); //set aktif saat FormSiswa dipanggil
} catch (java.beans.PropertyVetoException pe) {}
}

Kode ini berfungsi agar setiap dipanggil aktif pada formsiswa.

20. Klik Run hasilnya sbb :

7
21. Buat Packages dengan nama : koneksi

22. Buat class baru dengan nama : Koneksi

8
23. Isikan script Koneksi berikut:

package koneksi;
import java.sql.Connection;
import java.sql.DriverManager;
import javax.swing.JOptionPane;

public class Koneksi {


Connection koneksi;
public static Connection Koneksi() {
try {
Class.forName("com.mysql.jdbc.Driver");
Connection koneksi =
DriverManager.getConnection("jdbc:mysql://localhost/tutorialjava",
"root", "");
return koneksi;
} catch(Exception e) {
JOptionPane.showMessageDialog(null, e);
return null;
}
}
}

24. Tambahkan library JDBC, dengan cara klik kanan pada libraries, pilih Add Library, pilih
MySQL JDBC Driver

9
25. Tambahkan script pada FormSiswa.java

package tutorial_3_mdi_form;
import java.awt.event.KeyEvent;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
import javax.swing.JOptionPane;
import javax.swing.JTextField;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableColumn;
import java.awt.Dimension;
import java.awt.Toolkit;

public class FormSiswa extends javax.swing.JInternalFrame {


public Statement st;
public ResultSet rs;
public DefaultTableModel tabModel;
String sjk="";
Connection cn = koneksi.Koneksi.Koneksi();
//membuat object column untuk setting lebar column
TableColumn column;
//membuat object inpNis agar bisa diakses di FCariSiswa.java
public static JTextField inpNis;

public FormSiswa() {
initComponents();

// setting full screen untuk InternalFrame FormSiswa


int inset = 95;
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
Dimension screenMinusInset = new Dimension(screenSize.width,
screenSize.height-inset);
this.setSize(screenMinusInset);

judul();
tampilData("");
inpNis=inputNis;
// setting agar setiap buka FormSiswa kursor aktif pada inputNIS
inputNis.requestFocus();
}

10
26. Tambahkan script untuk membuat Metohods : judul() dan tampilData()

public void judul() {


Object[] judul = {
"NIS", "Nama", "Jurusan", "JK", "Alamat"
};
//instance table model
tabModel = new DefaultTableModel(null, judul) {
@Override
public boolean isCellEditable(int row, int column) {
//return column == 3; Setting read only table, only the third column
return false; //all cells false
}
};
tableSiswa.setModel(tabModel);
//setAutoResizeMode = Off
tableSiswa.setAutoResizeMode(javax.swing.JTable.AUTO_RESIZE_OFF);
//set Column Width
column = tableSiswa.getColumnModel().getColumn(0);
column.setPreferredWidth(80);
column = tableSiswa.getColumnModel().getColumn(1);
column.setPreferredWidth(100);
column = tableSiswa.getColumnModel().getColumn(2);
column.setPreferredWidth(200);
column = tableSiswa.getColumnModel().getColumn(3);
column.setPreferredWidth(80);
column = tableSiswa.getColumnModel().getColumn(4);
column.setPreferredWidth(250);
}
public void tampilData(String where) {
try {
st = cn.createStatement();
tabModel.getDataVector().removeAllElements();
tabModel.fireTableDataChanged();
rs = st.executeQuery("SELECT * FROM students " + where);
while (rs.next()) {
Object[] data = {
rs.getString("nis"),
rs.getString("nama"),
rs.getString("jurusan"),
rs.getString("jk"),
rs.getString("alamat"),
};
tabModel.addRow(data);
}
} catch(Exception e) {
e.printStackTrace();
}
}

11
27. Klik Run , kemudian buka menu master, sub menu data siswa, hasilnya sbb :

28. Supaya MDI_Formnya tampil fullscreen tambah kode program sbb:

public MDI_form() {
initComponents();
this.setExtendedState(MAXIMIZED_BOTH);
}

29. Pada tampilan FormSiswa, tambahkan 5 Label, 2 TextField, 2 Radio Button, 1 Button
Group dan 1 Combo Box, atur posisi dan rubah properti nama dengan cara klik kanan pada
obyek pilih menu Change Variable Name, rubah masing-masing menjadi :
inputNis, inputNama, inputAlamat, inputJurusan, rbPria, rbWanita,inputJK,
btnSimpan, btnHapus dan btnClose

12
30. Atur properti buttonGroup pada rbPria dan rbWanita pilih inputJK sbb :

31. Pada saat di Running hasilnya sbb :

13
32. Buat Methods simpan() sbb:

public void simpan() {


try {
String jk="";
if (rbPria.isSelected()){
jk="Pria";
}else{
jk="Wanita";
}
st = cn.createStatement();
rs1 = st.executeQuery("SELECT * FROM students WHERE nis='" +inputNis.getText()+"'");
if (rs1.first()){
st.executeUpdate("UPDATE students SET "
+ "nama='"+inputNama.getText() + "', "
+ "jurusan='"+inputJurusan.getSelectedItem() + "', "
+ "jk='" + jk + "', "
+ "alamat='" + inputAlamat.getText() + "' "
+ "WHERE nis='" + inputNis.getText() + "'");
JOptionPane.showMessageDialog(null, "Update Data Siswa Berhasil");
}else{
st.executeUpdate("INSERT INTO students VALUES('" + inputNis.getText() + "','"
+ inputNama.getText() + "','"
+ inputJurusan.getSelectedItem() + "','"
+ jk + "','"
+ inputAlamat.getText() + "')");
JOptionPane.showMessageDialog(null, "Simpan Data Siswa Berhasil");
}

tampilData("");
inputNis.setText("");
inputNama.setText("");
inputAlamat.setText("");
inputJurusan.setSelectedItem("");
inputNis.requestFocus();
} catch (Exception e) {
e.printStackTrace();
JOptionPane.showMessageDialog(null, "Error: "+e);
}
}

33. Buat Methods isiTextfield() sbb:


public void isiTextfield(String nis) {
inputNama.requestFocus();
try {
st = cn.createStatement();
rs = st.executeQuery("SELECT * FROM students WHERE nis='" +
inputNis.getText()+"'");
if (rs.first()){
inputNama.setText(rs.getString("nama"));
inputAlamat.setText(rs.getString("alamat"));
inputJurusan.setSelectedItem(rs.getString("jurusan"));
sjk=rs.getString("jk");
if (sjk.equalsIgnoreCase("Pria")){
rbPria.setSelected(true);
}else{
rbWanita.setSelected(true);
}
}
} catch(Exception e) {
e.printStackTrace();
}
}

14
34. Klik btnSimpan isi kode sbb
private void btnSimpanActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
simpan();
}

35. Klik btnHapus isi kode sbb

private void btnHapusActionPerformed(java.awt.event.ActionEvent evt) {


try {
int jawab;
if ((jawab = JOptionPane.showConfirmDialog(null, "Yakin menghapus NIS: "+
inputNis.getText()+"...?", "konfirmasi", JOptionPane.YES_NO_OPTION)) == 0) {
st = cn.createStatement();
st.executeUpdate("DELETE FROM students WHERE nis='"+ inputNis.getText() + "'");
tampilData("");
}
} catch (Exception e) {
e.printStackTrace();
}
}

36. Klik btnClose isi kode sbb


private void btnCloseActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
dispose();
}
37. Klik kanan pada inputNis, pilih menu events, key, keyPressed.

Sebelumnya tambahkan variable sjk pada deklarasi variable awal apabila belum ada,
letakkan dibawah deklarasi Connection:

Connection cn = koneksi.Koneksi.Koneksi();
String sjk="";
15
Isi kode program sbb:
private void inputNisKeyPressed(java.awt.event.KeyEvent evt) {
// TODO add your handling code here:
if(evt.getKeyCode()==KeyEvent.VK_ENTER){
isiTextfield(inputNis.getText());
}else if (evt.getKeyCode()==KeyEvent.VK_F1){
inputNis.requestFocus();
//FCariSiswa form = new FCariSiswa(); // form Utama disini adalah form siswa
//form.setVisible(true);
}
}
38. Klik kanan pada inputNama, pilih menu events, key, keyPressed. Isi kode program sbb:
private void inputNamaKeyPressed(java.awt.event.KeyEvent evt) {
// TODO add your handling code here:
if(evt.getKeyCode()==KeyEvent.VK_ENTER){
inputJurusan.requestFocus();
}else if(evt.getKeyCode()==KeyEvent.VK_ESCAPE){
inputNis.requestFocus();
}else if (evt.getKeyCode()==KeyEvent.VK_F1){
inputNis.requestFocus();
//FCariSiswa form = new FCariSiswa(); // form Utama disini adalah form siswa
//form.setVisible(true);
}
}
39. Klik kanan pada inputJurusan, pilih menu events, key, keyPressed. Isi kode program sbb:
private void inputJurusanKeyPressed(java.awt.event.KeyEvent evt) {
// TODO add your handling code here:
if(evt.getKeyCode()==KeyEvent.VK_ENTER){
if (sjk.equalsIgnoreCase("Wanita")){
rbWanita.requestFocus();
}else{
rbPria.requestFocus();
}
}else if(evt.getKeyCode()==KeyEvent.VK_ESCAPE){
inputNama.requestFocus();
}
}
40. Klik kanan pada rbPria, pilih menu events, key, keyPressed. Isi kode program sbb:
private void rbPriaKeyPressed(java.awt.event.KeyEvent evt) {
// TODO add your handling code here:
if(evt.getKeyCode()==KeyEvent.VK_ENTER){
inputAlamat.requestFocus();
}else if(evt.getKeyCode()==KeyEvent.VK_ESCAPE){
inputJurusan.requestFocus();
}
}
41. Klik kanan pada rbWanita, pilih menu events, key, keyPressed. Isi kode program sbb:
private void rbWanitaKeyPressed(java.awt.event.KeyEvent evt) {
// TODO add your handling code here:
if(evt.getKeyCode()==KeyEvent.VK_ENTER){
inputAlamat.requestFocus();
}else if(evt.getKeyCode()==KeyEvent.VK_ESCAPE){
inputJurusan.requestFocus();
}
}
42. Klik kanan pada inputAlamat,pilih menu events, key, keyPressed. Isi kode program sbb:
private void inputAlamatKeyPressed(java.awt.event.KeyEvent evt) {
// TODO add your handling code here:
if(evt.getKeyCode()==KeyEvent.VK_ENTER){
btnSimpan.requestFocus();
}else if(evt.getKeyCode()==KeyEvent.VK_ESCAPE){
if (sjk.equalsIgnoreCase("Wanita")){
rbWanita.requestFocus();
}else{
rbPria.requestFocus();
}
}
}
16
43. Klik kanan pada btnSimpan,pilih menu events, key, keyPressed. Isi kode program sbb:
private void btnSimpanKeyPressed(java.awt.event.KeyEvent evt) {
// TODO add your handling code here:
if(evt.getKeyCode()==KeyEvent.VK_ENTER){
simpan();
}else if(evt.getKeyCode()==KeyEvent.VK_ESCAPE){
inputAlamat.requestFocus();
}else if(evt.getKeyCode()==KeyEvent.VK_RIGHT){
btnHapus.requestFocus();
}
}
44. Klik kanan pada btnHapus,pilih menu events, key, keyPressed. Isi kode program sbb:

private void btnHapusKeyPressed(java.awt.event.KeyEvent evt) {


// TODO add your handling code here:
if(evt.getKeyCode()==KeyEvent.VK_ENTER){
try {
int jawab;
if ((jawab = JOptionPane.showConfirmDialog(null, "Yakin menghapus NIS: "+
inputNis.getText()+"...?", "konfirmasi", JOptionPane.YES_NO_OPTION)) == 0) {
st = cn.createStatement();
st.executeUpdate("DELETE FROM students WHERE nis='"+ inputNis.getText() +
"'");
tampilData("");
}
} catch (Exception e) {
e.printStackTrace();
}
} else if(evt.getKeyCode()==KeyEvent.VK_RIGHT){
btnClose.requestFocus();
}else if(evt.getKeyCode()==KeyEvent.VK_LEFT){
btnSimpan.requestFocus();
}
}

45. Klik kanan pada btnClose,pilih menu events, key, keyPressed. Isi kode program sbb:
private void btnCloseKeyPressed(java.awt.event.KeyEvent evt) {
// TODO add your handling code here:
if(evt.getKeyCode()==KeyEvent.VK_ENTER){
dispose();
} else if(evt.getKeyCode()==KeyEvent.VK_LEFT){
btnHapus.requestFocus();
}
}

17
46. Klik kanan pada tableSiswa, pilih events Mouse, mouseClicked, isi kode program sbb:

private void tableSiswaMouseClicked(java.awt.event.MouseEvent evt) {


// TODO add your handling code here:
inputNis.setText(tableSiswa.getValueAt(tableSiswa.getSelectedRow(), 0).toString());
inputNama.setText(tableSiswa.getValueAt(tableSiswa.getSelectedRow(), 1).toString());
inputJurusan.setSelectedItem(tableSiswa.getValueAt(tableSiswa.getSelectedRow(),
2).toString());
if (tableSiswa.getValueAt(tableSiswa.getSelectedRow(),
3).toString().equalsIgnoreCase("Wanita")){
rbWanita.setSelected(true);
}else{
rbPria.setSelected(true);
}
inputAlamat.setText(tableSiswa.getValueAt(tableSiswa.getSelectedRow(), 4).toString());
}

18
MENAMBAHKAN FRAME CARI SISWA
47. Buat frame baru dengan cara klik kanan pada tutorial_3_mdi_form, pilih New, pilih
JFrame Form, beri nama Frame dengan : FCariSiswa, kemudian klik finish

48. Supaya FCariSiswa tampil rata tengah, klik Desain atur pada tab Code, Generate Center
dicentang

49. Buat desain frame sbb :


a. Tambahkan menu bar dari swing menus dengan satu menu item Close
b. Tambahkan label, TextField dan table dari swing controls
c. Atur variable name table dengan : tableSiswa, atur variable name TextField dengan :
tfCari
19
50. Buat Methods judul(), tampilData() dan tampilcariData() sbb:
public void judul() {
Object[] judul = {
"NIS", "Nama", "Jurusan", "JK", "Alamat"
};
//instance table model
tabModel = new DefaultTableModel(null, judul) {
@Override
public boolean isCellEditable(int row, int column) {
//return column == 3; Setting read only table, only the third column
return false; //all cells false
}
};
tableSiswa.setModel(tabModel);
//setAutoResizeMode = Off
tableSiswa.setAutoResizeMode(javax.swing.JTable.AUTO_RESIZE_OFF);

//set Column Width


column = tableSiswa.getColumnModel().getColumn(0);
column.setPreferredWidth(80);
column = tableSiswa.getColumnModel().getColumn(1);
column.setPreferredWidth(100);
column = tableSiswa.getColumnModel().getColumn(2);
column.setPreferredWidth(200);
column = tableSiswa.getColumnModel().getColumn(3);
column.setPreferredWidth(80);
column = tableSiswa.getColumnModel().getColumn(4);
column.setPreferredWidth(250);
}

public void tampilData(String where) {


try {
st = cn.createStatement();
tabModel.getDataVector().removeAllElements();
tabModel.fireTableDataChanged();
rs = st.executeQuery("SELECT * FROM students " + where);
while (rs.next()) {
Object[] data = {
rs.getString("nis"),
rs.getString("nama"),
rs.getString("jurusan"),
rs.getString("jk"),
rs.getString("alamat"),
};
tabModel.addRow(data);
}
} catch(Exception e) {
e.printStackTrace();
}
}
20
public void tampilcariData(String where) {
try {
st = cn.createStatement();
tabModel.getDataVector().removeAllElements();
tabModel.fireTableDataChanged();
rs = st.executeQuery("SELECT * FROM students " + where);
while (rs.next()) {
Object[] data = {
rs.getString("nis"),
rs.getString("nama"),
rs.getString("jurusan"),
rs.getString("jk"),
rs.getString("alamat"),
};
tabModel.addRow(data);
}
} catch(Exception e) {
e.printStackTrace();
}
}

51. Ketik kode program sbb :

package tutorial_3_mdi_form;
import java.awt.event.KeyEvent;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
import javax.swing.JOptionPane;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableColumn;

public class FCariSiswa extends javax.swing.JFrame {


public Statement st;
public ResultSet rs,rs1;
public DefaultTableModel tabModel;
Connection cn = koneksi.Koneksi.Koneksi();
public String nis;
TableColumn column;

public FCariSiswa() {
initComponents();
judul();
tampilData("");
}

21
52. Klik kanan pada tableSiswa buat kode program sbb:

private void tableSiswaKeyPressed(java.awt.event.KeyEvent evt) {


if(evt.getKeyCode()==KeyEvent.VK_ENTER){
nis=tabModel.getValueAt(tableSiswa.getSelectedRow(), 0).toString();
JOptionPane.showMessageDialog(null, "Pilih NIS: "+nis);
FormSiswa.inpNis.setText(nis);
dispose();
}
}

53. Klik kanan pada tfCari, pilih menu Events, Key, keyReleased, isi kode program sbb :

private void tfCariKeyReleased(java.awt.event.KeyEvent evt) {


// TODO add your handling code here:
tampilcariData("where nama like '%"+tfCari.getText()+"%'");
if(evt.getKeyCode()==KeyEvent.VK_ENTER){
tableSiswa.requestFocus();
tableSiswa.setRowSelectionInterval(0, 0);
}
}
54. Klik pada menu file, sub menu close isi kode program sbb:
private void btnCloseActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
dispose();
}

22
55. Hilangkan hiden pada kode program FormSiswa.java agar bisa memanggil FcariSiswa.java
private void inputNisKeyPressed(java.awt.event.KeyEvent evt) {
// TODO add your handling code here:
if(evt.getKeyCode()==KeyEvent.VK_ENTER){
isiTextfield(inputNis.getText());
}else if (evt.getKeyCode()==KeyEvent.VK_F1){
inputNis.requestFocus();
FCariSiswa form = new FCariSiswa(); // form Utama disini adalah form siswa
form.setVisible(true);
}
}
private void inputNamaKeyPressed(java.awt.event.KeyEvent evt) {
// TODO add your handling code here:
if(evt.getKeyCode()==KeyEvent.VK_ENTER){
inputJurusan.requestFocus();
}else if(evt.getKeyCode()==KeyEvent.VK_ESCAPE){
inputNis.requestFocus();
}else if (evt.getKeyCode()==KeyEvent.VK_F1){
inputNis.requestFocus();
FCariSiswa form = new FCariSiswa(); // form Utama disini adalah form siswa
form.setVisible(true);
}
}

56. Klik Run hasilnya sbb, ketik NIS misal 123, kemudian Enter maka data siswa dengan
NIS 123 akan muncul

57. Tekan F1 akan muncul menu pencarian data Siswa, pada Isikan Nama ketik nama, nama akan
muncul sesuai dengan huruf pencarian.

58. Kemudian tekan enter untuk masuk ke tabel data siswa, pilih data dengan tekan tombol panah,
tekan enter lagi untuk memindahkan NIS yang dipilih ke FormSiswa.

59. Kemudian pada FormSiswa, tekan enter untuk menampilkan data siswa NIS: 2153010001
dengan nama : Joko Triono sesuai pencarian.

23

Anda mungkin juga menyukai