Setelah file MenuLoginSchema.sql tersimpan pada komputer, sekarang bukalah terminal atau
command prompt kemudian masuklah kedalam direktori tempat dimana kita menyimpan file
MenuLoginSchema.sql tersebut kemudian jalankanlah perintah seperti dibawah ini :
martinus@martinusadyh:~/Downloads$ mysql -u root -padmin < MenuLoginSchema.sql
Jika tidak ada pesan error, maka seharusnya kita akan mempunyai 1 database dengan nama
menulogin dan 1 tabel dengan nama T_USER beserta isinya seperti dibawah ini :
mysql> show tables;
+---------------------+
| Tables_in_menulogin |
+---------------------+
| T_USER
|
+---------------------+
1 row in set (0.00 sec)
mysql> select * from T_USER;
+----+-----------+-----------+
| id | username | password |
+----+-----------+-----------+
| 1 | martin
| menulogin |
| 2 | ahmad
| ganteng
|
| 3 | slackware | linux
|
+----+-----------+-----------+
3 rows in set (0.00 sec)
mysql>
Jika tampilan pada terminal atau command prompt kita sudah seperti diatas, maka proses
Inisialisasi bisa dikatan sudah selesai dan kita siap untuk membuat sebuah Project
Urusan dengan Domain Class sudah selesai, sekarang mari kita buatkan Service layer-nya
dengan membuat sebuah packages service kemudian buatlah sebuah java interface dengan
nama LoginService seperti dibawah ini :
Tetap pada packages service sekarang buatlah implementasi dari LoginService diatas dengan
nama LoginServiceImpl yang isinya kurang lebih seperti dibawah ini :
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
while (rs.next()) {
UserApp userApp = new UserApp();
userApp.setId(rs.getInt("id"));
userApp.setUserName(rs.getString("username"));
userApp.setPassword(rs.getString("password"));
76
77
78
79
return userApp;
80
}
81
} catch (SQLException ex) {
82
83
84 Logger.getLogger(LoginServiceImpl.class.getName()).log(Level.SEVERE, null,
85 ex);
}
86
87
return null;
}
}
Note: Klik LoginServiceImpl.java untuk melihat source code lengkap
Hmm.. urusan domain dan service layer sudah beres, sekarang waktu yang paling
menyenangkan yaitu membuat UI layer-nya Ok, sekarang mari kita buat sebuah Login Dialog
dengan menggunakan class JDialog dan simpanlah pada packages ui. Setelah itu, design-lah
Login Dialog tersebut hingga seperti gambar dibawah ini :
Sekarang tambahkan sebuah label untuk pesan error dengan cara masuk ke menu Inspector dan
pada node Other Components tambahkanlah sebuah JLabel seperti gambar dibawah ini:
Setelah selesai men-design Login Dialog, sekarang masuklah ke mode Source dan tambahkan 1
buah variabel bertipe boolean dan 1 buah method yaitu showDialog() tidak lupa hilangkan juga
method main. Dan hasil akhir yang kita dapatkan kurang lebih isinya seperti dibawah ini :
49 public class LoginDialog extends javax.swing.JDialog {
50
51
private boolean notLogin = true;
52
private GroupLayout gl;
53
54
/** Creates new form LoginDialog */
55
public LoginDialog(java.awt.Frame parent, boolean modal) {
56
super(parent, modal);
57
initComponents();
58
59
/* Mendeteksi penekanan icon close, jika di close keluar dari
60 aplikasi */
61
addWindowListener(new java.awt.event.WindowAdapter() {
62
63
@Override
64
public void windowClosing(java.awt.event.WindowEvent e) {
65
System.exit(0);
66
}
67
});
68
69
jProgressBar1.setVisible(false);
70
71
/* Membuat space progress bar tidak di *wrap* oleh button */
72
gl = (GroupLayout) getContentPane().getLayout();
73
gl.setHonorsVisibility(jProgressBar1, false);
74
75
/* Beri fokus ke txtUsername ketika dialog tampil */
76
txtUserName.requestFocusInWindow();
77
78
/* Posisikan dialog seakan-akan berada di tengah-2x layar */
79
setLocationRelativeTo(null);
80
}
81
82
/** This method is called from within the constructor to
83
* initialize the form.
84
* WARNING: Do NOT modify this code. The content of this method is
85
* always regenerated by the Form Editor.
86
*/
87
@SuppressWarnings("unchecked")
88
// <editor-fold defaultstate="collapsed" desc=" Generated Code ">
89
private void initComponents() {
90
....
91
}
92
// </editor-fold>
93
94
public boolean showDialog() {
95
setVisible(true);
96
return notLogin;
97
}
98
99
// Variables declaration - do not modify
100
...
101
Tetap pada packages yang sama yaitu packages ui sekarang buatlah sebuah Menu Utama
dengan menggunakan class JFrame dan simpanlah dengan nama MainForm. Sedangkan pada
MainForm ini, tambahkanlah sebuah JMenuBar dan tambahkanlah 3 JMenuItem pada File atau
jMenu1 hingga tampilannya seperti gambar dibawah ini :
Setelah semua selesai, sekarang editlah file Main.java menjadi seperti dibawah ini :
52 public class Main {
53
54
private static MainForm mainForm;
55
private static LoginService loginService;
56
57
public static MainForm getMainForm() {
58
return mainForm;
59
}
60
61
public static LoginService getLoginService() {
62
return loginService;
63
}
64
65
/** Method ini akan menginisialisassi Form Utama kemudian akan
66 melakukan
67
* proses <code>loop</code> untuk menampilkan login dialog sampai
68 nilai
69
* notLogin = FALSE baru menampilkan Menu Utama */
70
public static void initLogin() {
71
if (mainForm == null) mainForm = new MainForm();
72
boolean notLogin = Boolean.TRUE;
73
while (notLogin) {
74
notLogin = new LoginDialog().showDialog();
}
mainForm = new MainForm();
mainForm.setVisible(true);
}
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
akan
Dengan kode yang sudah kita tulis, aplikasi harusnya sudah bisa berjalan tanpa mengalami
kesalahan sama sekali. Tapi sayangnya kita belum mengimplementasikan proses login yang
sebenarnya, untuk mengimplementasikan proses login yang sebenarnya sekarang tambahkanlah
sebuah private class dengan nama WorkerLogin pada LoginDialog yang isinya kurang lebih
seperti dibawah ini :
private class WorkerLogin extends SwingWorker<UserApp, Void> {
279
@Override
280
protected void done() {
281
try {
282
if (get() != null) {
283
notLogin = false;
284
closeLoginDialog();
285
}
else
{
286
gl.replace(jProgressBar1, lblError);
287
txtUserName.requestFocusInWindow();
288
txtUserName.selectAll();
289
}
290
btnLogin.setEnabled(true);
291
jProgressBar1.setIndeterminate(false);
292
jProgressBar1.setVisible(false);
293
} catch (InterruptedException ex) {
294
295
296 Logger.getLogger(LoginDialog.class.getName()).log(Level.SEVERE, null, ex);
297
} catch (ExecutionException ex) {
298
299 Logger.getLogger(LoginDialog.class.getName()).log(Level.SEVERE, null, ex);
300
}
301
}
302
303
@Override
304
protected UserApp doInBackground() throws Exception {
305
/* Hilangkan ini jika digunakan pada production */
306
Thread.sleep(1000);
307
return Main.getLoginService().login(txtUserName.getText(),
308
String.valueOf(txtPassword.getPassword()));
309
}
}
Dan tambahkan method closeLoginDialog() dibawah method showDialog() seperti dibawah ini :
87
88
89
...
private WorkerLogin workerLogin;
56
57
58
59
60
61
Agar proses login berjalan ketika kita menekan tombol Login, sekarang berilah Action Listener
pada tombol Login dengan cara klik kanan kemudian pilihlah menu Event > Action >
actionPerformed[btnLoginActionPerformed] dan pastekan kode seperti dibawah ini :
private void btnLoginActionPerformed(java.awt.event.ActionEvent evt) {
244
/* Cek dahulu apakah workerLogin masih berjalan, kalau masih jalan
245
* cancel dan set ke null */
246
if (workerLogin != null && !workerLogin.isDone()) {
247
workerLogin.cancel(true);
248
workerLogin = null;
249
}
250
251
//TODO: cek untuk mengembalikan state lblError ke Progress Bar,
252
// bagaimana cara mengecek apakah lblError sudah ditambahkan atau
253
belum ?
254
try {
255
gl.replace(lblError, jProgressBar1);
256
} catch (java.lang.IllegalArgumentException ae) {
257
// Do nothing here
258
}
259
260
workerLogin = new WorkerLogin();
261
workerLogin.execute();
262
263
/* Disable tombol LOGIN, tampilkan dan jalankan PROGRESS BAR */
264
btnLogin.setEnabled(false);
265
jProgressBar1.setVisible(true);
266
jProgressBar1.setIndeterminate(true);
267
}
Sedangkan untuk tombol Cancel-nya, berikan Action Listener seperti kode dibawah ini :
240
{
241
242
System.exit(0);
Konfigurasi pada Login Dialog sepenuhnya sudah selesai, sekarang mari kita modifikasi file
MainForm agar ketika menu Logout ditekan, maka akan menampilkan Login Dialog. Sekarang
berilah Action Event pada menu Logout dengan cara klik kanan pada menu Logout kemudian
pilihlah menu Event > Action > actionPerformed[jMenuItem2ActionPerformed] dan
pastekan kode seperti dibawah ini :
121
122 {
123
124
125
126
127
this.dispose();
/* Tampilkan LoginDialog-nya */
Main.initLogin();
Sampai disini semua proses pembuatan Project Menu Login telah selesai, dan tampilan struktur
Project kita kurang lebih seperti gambar dibawah ini :
Hasil Akhir
Jika sudah selesai, sekarang mari kita jalankan Project Menu Login tersebut dengan menekan
tombol F6 dan jika tidak ada kesalahan maka kita akan mendapatkan tampilan dari Login Dialog
seperti gambar-gambar dibawah ini :
Akhirnya selesai juga latihannya, bagaimana menurut teman-teman ?? Kalau ada yang bingung
dengan penjelasan diatas, jangan sungkan-sungkan untuk tanya yah. Mari kita bahas barengbareng, sapa tau ada cara yang lebih baik dan elegan dari cara yang saya jelaskan disin
Beberapa hari yang lalu ada temen yang pengen tau cara membuat aplikasi database, ya
semacam step-by step tutorial gitu deh.
Ok deh sobat, kebetulan saya sedang membuat project Sistem Informasi Akuntansi. tapi yang
akan saya tunjukan kali ini hanya bagaimana cara membuat form login sedehana.
Dalam postingan kali ini saya akan tunjukan cara membuat form login sederhana.
Idenya adalah, kita akan membuat sebuah form yang tidak dapat diakses, untuk dapat di akses,
maka kita perlu login terlebih dahulu. Kemudian untuk keperluan login, kita buat sebuah form
login untuk melakukan verifikasi username dan password. Kalau password berhasil di
verifikasi maka user akan dapat menggunakan program, ya gitu deh.
Ok cukup intronya sebelum mulai membuaka netbeans, persiapkan dulu databasenya, supaya
gampang kita pake mysql. Buat table kemudian buat feld-field sebagai berikut:
kd_user varchar 6
username varchar 15
password varchar 20
nama_lengkap varchar 50
kalau sudah, sekarang buka netbeansnya, kemudian buat program baru, terserah mau di kasih
nama apa. Kalau belum tau cara buat project di netbbeans silahkan baca di http://ontaprograming.blogspot.com/2008/12/buat-project-baru-di-netbeans.html
Setelah buat project buat sebuah form yang berfungsi sebagai form utama, kaya ginilah kira-kira:
Nah sekarang, kita buat sebuah class untuk membuat sambungan ke database. Ingat ini bagian
terpenting dari tujuan postingan ini
Buat class kemudian masukan kode sebagai berikut:
package logic;
import java.sql.Connection;
import java.sql.SQLException;
import java.sql.Statement;
import java.sql.DriverManager;
import java.sql.ResultSet;
public class KoneksiDB {
private String localhost, username, password;
public Connection conn=null;
public Statement state=null;
public ResultSet hasil=null;
public KoneksiDB(String host, String user, String pass){
localhost=host;
username=user;
password=pass;
try{ Class.forName("org.gjt.mm.mysql.Driver");
conn=DriverManager.getConnection("jdbc:mysql://"+localhost+"/coba", username,
password);
state=conn.createStatement();
}catch(Exception e){
e.printStackTrace();
}
}
public boolean cekUser(String un, String ps){
try {
hasil = state.executeQuery("select username, password, nama_lengkap from
db_login where username='"+un+"' AND password='"+ps+"'");
hasil.last(); if(hasil.getRow()==1)return true;
else return false;
} catch (SQLException ex) {
ex.printStackTrace(); return false;
}
}
}
Nah kalo sudah, sekarang coba ngopi dulu, trus santai dulu deh sejenak trus, perhatikan kude
di atas. Kode di atas merupakan kode untuk membuat sambungan dengan database. Kurang jelas
baca lagi postingan
http://onta-programing.blogspot.com/2008/12/susah-koneksi-java-ke-database-siapa.html
Sekarang buat sebuah class main, yaitu sebuah class dimana kita akan menjalankan aplikasi.
Jadi ada satu hal yang perlu di perhatikan adalah selalu pisahkan logic program dengan form.
Ok di bawah kode public static void main(String args[]) ketikan kode berikut:
try{
javax.swing.UIManager.setLookAndFeel(javax.swing.UIManager.getSystemLookAndFeelClass
Name());
}catch(Exception e){
e.printStackTrace();
}
javax.swing.SwingUtilities.invokeLater(new Runnable(){
public void run(){
form.FUtama app=new form.FUtama();
app.setVisible(true);
}
});
Fungsinya untuk menampilkan form utama yang kita buat tadi.
Nah kalau sudah .. lanjutin aja ke bagian 2 ya sok klik disini nya.
Wah ternyata banyak juga yah hehe.
Ok deh sekarang kita lanjutkan.
Setelah itu kembali ke frame utama yang telah kita buat kemudian rubah view menjadi
sourcecode
masih pada frame utama klik kanan tombol yang sudah temen-temen persiapkan untuk
memunculkan frame login, kalau saya tombol ini:
Usrname dan password databasenya sesuaikan dengan username dan password di kompi kalian
Kalau sudah, klik kanan pada Tombol batal kemudian pilih Event->action->actionPerformed.
Kemudian ketikan kode berikut:
this.setVisible(false);
Nah Sekarang Coba run dan Jalankan kira-kira tampilannya kayak gini:
Yup memang sederhana. Postingan ini memang dibuat untuk menunjukan pada temen-temen
bahwa mudah membuat aplikasi database, apalagi dibantu dengan netbeans,
Ok deh Selamat Mencoba!, Punya Ide lain??? Kirim komentar yaaaaaa
Contoh program berikut ini mendemonstrasikan bagaimana membuat panel-panel dalam bentuk
Tab di java. Class yang digunakan adalah JTabbedPane.
06
07
08
09
10
11
public TabbedPaneDemo () {
super ("Tabbed Pane Demo");
12
13
14
15
16
17
panel1.add(label1);
tabPane.addTab ("Tab Pertama", null, panel1, "Panel
Pertama");
18
19
20
21
panel2.setBackground(Color.ORANGE);
22
panel2.add(label2);
23
24
25
26
27
28
panel3.setBackground(Color.YELLOW);
29
panel3.setLayout(new BorderLayout());
30
31
BorderLayout.WEST);
32
BorderLayout.EAST);
33
34
panel3.add(label3);
35
36
37
getContentPane().add(tabPane);
38
39
setSize (400,300);
40
setLocationRelativeTo (null);
41
setVisible (true);
42
43
44
45
46
test.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
47
48 }
Contoh program sederhana yang menampilkan form login di dalam JFrame. Inputan username
berupa JTextField dan inputan password berupa JPasswordField serta tombol dibuat dengan
JButton. Form sederhana ini juga mendemonstrasikan adanya Listener berupa ActionListener.
01 import java.awt.*;
02 import java.awt.event.*;
03 import javax.swing.*;
04
05
06
07
08
09
10
11
12
public SimpleLogin() {
super ("Login here...");
13
14
15
container.setLayout(new FlowLayout());
16
17
18
19
20
21
txtUser.setToolTipText("Input Username");
22
23
24
25
btnLogin.addActionListener(this);
26
27
btnExit.addActionListener(this);
28
29
container.add(label1);
30
container.add(txtUser);
31
container.add(label2);
32
container.add(pwdPass);
33
container.add(btnLogin);
34
container.add(btnExit);
35
36
setSize (300,200);
37
setVisible (true);
38
39
40
41
42
test.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
43
44
45
46
47
if (e.getSource() == btnLogin) {
48
user = txtUser.getText();
49
pass = pwdPass.getText();
50
51
52
53
54
txtUser.setText("");
55
pwdPass.setText("");
56
txtUser.requestFocus(true);
57
58
59
}
} else if (e.getSource() == btnExit){
JOptionPane.showMessageDialog(null,"Thanks to try my program.
See you..");
60
System.exit(0);
61
62
}
}
63 }
Contoh program Java berikut ini mendemonstrasikan bagaimana membuat inputan combo box
(select box) serta penerapan listener di dalam object Combo Box. Untuk membuat combo box
kita dapat menggunakan class JComboBox. Program akan menampilkan pilihan combo box
berisi nama-nama file gambar dan jika dipilih maka gambar yang bersangkutan akan
ditampilkan.
Berikut ini tampilannya:
06
07
08
09
10
11
new ImageIcon(arrGambar[1]),
12
new ImageIcon(arrGambar[2]),
13
new ImageIcon(arrGambar[3]),
14
new ImageIcon(arrGambar[4])
15
};
16
17
public ComboBoxTest() {
18
19
20
21
container.setLayout(new FlowLayout());
22
23
cmbImage.setMaximumRowCount(3);
24
25
cmbImage.addItemListener(
26
new ItemListener() {
27
28
29
if (e.getStateChange() == ItemEvent.SELECTED)
label.setIcon(arrIcon[cmbImage.getSelectedIndex()])
;
30
31
32
);
33
34
container.add(cmbImage);
35
36
container.add(label);
37
38
setSize (350,400);
39
setLocationRelativeTo(null);
40
setVisible(true);
41
42
43
44
45
test.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
46
47
48 } //end of class
4. Cari form size policy, pada comboboxnya pilih Generate Resize Code
5. Berikan checklist pada Generate Size dan Generate Center
6. Running form yang telah dibuat center, maka akan terlihat form yang tampil di tengah
Tutorial kali ini Cara Membuat Menu Loading dengan menggunakan java yaitu JProgress bar.
dan misalnya akan menampilkan menu login dengan JFrame. pertama yang anda perlu siapkan
adalah sebuat JWindow. kenapa JWindow karena Jwindows tidak mempunyai Menu Exit dan
Minimize
kebetulan pada tutorial kali ini kita menggunakan gridlayout. hehehe, kita buat deklarasi yaitu
terbagi 5
1. jlabel untuk nama aplikasi diatas dan autor
2. jprogressbar untuk menjalankan bar
3. gridlayout untuk mensetting tempat objek
4. timer progres untuk melakukan proses bar
5. integer untuk deklarasi perulangan bar
setelah itu kita perlu mensetting layout agar dapat berjalan baik yaitu dengan cara mendeklarasi
container dan mensetlayout seperti yang diberi kurung gambar dibawah ini.
1. container.add(lblLogo) = tempat menaruh judul
2. container.add(barisProgres) = tempat menaruh menu load
3. container.add(litok) = tempat menaruh autor atau pembuat program
catatan : ketiga item diatas berurutan jadi sesuai dengan selera anda
program diatas masih berada privat tugas logo(); tinggal menampilkan Menu Login JFrame yang
misalnya sudah kita buat misalnya kita membuat nama Jframe dengan nama login maka tulislah
kode berikut
menggunakan new bojek();.setbisible(true); untuk menampilkan form lain dan dispose untuk
memberhentikan jprgress barnya
maka jika kita jalankan akan menjadi seperti gambar dibawah ini
ketika tadi kita belajar menampilkan jframe menggunakan main maka akan keluar tepat diatas
pojok kiri bagaimana jika kita menentukan lokasi agar jframe muncul tepat ditengah-tengah
monitor kita, tapi sebelum semua kita pelajari maka kita perlu mengetahui penggunaan set
location
buka jframe anda, untuk set location ada dua parameter yang ditawarkan yaitu berupa (x,y)
dimana kita harus mengisi x dan y tersebut untuk dimengerti oleh jframe. liah contoh berikut
kita bisa memasukan code program tepat dibawah initComponets(); seperti gambar diatas, maka
jframe anda akan tampil sesuai settingan lokasi yang anda tentukan
belum cukup disitu, seperti judul kita kita dapat menaruh form kita tepat ditengah-tengah
monitor dengan ukuran berapapun, bagai mana caranya ? kita menggunakan getscreensize
yaitu dengan cara ;
1. import import java.awt.*; tepat dibawah package
2. deklarasi dimensi dengan contoh sebagai berikut
private Dimension UM =
Toolkit.getDefaultToolkit().getScreenSize();
catatan
coba anda jalankan program anda maka akan tampil tepat di tengah-tengah monitor apapun
ukurannya. ^_^ have a nice code
cara membuat form master adalah dengan klik kanan pada package kita dan new file atau melalui
menu File -> New File , Pilih Categories: Swing GUI Forms -> dan File Types: JFrame Form.
Klik Next
jika anda belum memiliki Project Baru maka anda wajib membaca ini maka ada kotak dialog dan
isi dengan nama form baru dan klik finish *.
jika Anda menjalankan program dengan menu Run, Run Main Project maka MainFrame yang
baru kita buat tidak akan tampil. Kecuali kita tambahkan kode method main() milik MainFrame.
Buka file Main.java yang merupakan file pertama yang dijalankan. Dan tambahkan kode seperti
dibawah ini:
Galiarta
3 comments
//pane.add(pbar);
setSize(728,387);
setLocation((screen.width - 728)/2,((screen.height-387)/2));
show();
}
}
keterangan:
*ImageIcon(getClass().getResource("/gambar/Splash.jpg"))); adalah lokasi gambar yang ingin
ditampilkan di splash screen ini. Sebelumnya saya telah membuat 1 package dengan nama
gambar yang didalamnya berisi gambar dengan nama Splash.JPG
3. Jangan lupa menambahkan code ini di main:
public static void main(String[] args) {
try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
} catch (Exception e) {
}
FSplash FormSplash = new FSplash();
//--End variable the contains forms
Thread ThFormSplash = new Thread(FormSplash);
//End the form container variable
ThFormSplash.start();
while(!FormSplash.isShowing()){
try{
//Display the FormSplash for 7 seconds
Thread.sleep(3000);
//Thread.sleep(100);
}catch(InterruptedException e){}
}
FormSplash.dispose();
formlogin formlogin= new formlogin();
formlogin.setVisible(true);
}
Ket: FormLogin adlah form yang ingin ditampilkan jika splash screen telah selesai di load.
hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh
hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh
hhhhhhhhhhhhhhhhhhhhh