Assalamu’alaikum Wr.Wb.
Mungkin anda menemukan sedikit kesulitan saat ingin mengetahui apa sih isi dari komponen jPasswordField di java. Memang, pada awal cukup pusing untuk mengetahui isi password dari jPasswordField. Biasanya jika programmer java pemula ingin mengetahui isi dari txtPassword seperti gambar di atas, tentunya akan membuat kode program berikut:
@Action
public void CekPassword() {
String Username,Password = new String(“”);
Username = txtUsername.getText();
Password = txtPassword.getPassword().toString();
JOptionPane.showConfirmDialog(null,
“Username : ” + Username + “\nPassword : ” + Password,
“Isi Login”, JOptionPane.DEFAULT_OPTION);
}
Saya akan mengisi username = dedygunanto dan password=rahasia, dan jika anda menekan tombol Submit anda akan melihat hasilnya seperti ini:
Lho, kok?
Ada yang aneh bukan, kenapa isi String Password menjadi demikian, bukankah seharusnya isi “rahasia”.
Jawabnya
Karena yang dihasilkan oleh txtPassword.getPassword().toString(); adalah sekumpulan dari array char menjadi String, hasilnya seperti yang anda lihat pada gambar di atas.
Solusi
Cara 1
Lalu, bagaimana cara mengetahui isi dari txtPassword dengan benar. Berikut kita akan membuat kode program perbandingan password dengan array char:
@Action
public void CekPassword() {
char[] YangBenar = {'r','a','h','a','s','i','a'};
boolean Pernyataan = new Boolean(false); Pernyataan = txtUsername.getText().equals("dedygunanto") && Arrays.equals(txtPassword.getPassword(),YangBenar); if(Pernyataan == true){ JOptionPane.showConfirmDialog(null, "Yap, anda benar", "Login", JOptionPane.DEFAULT_OPTION); }else{ JOptionPane.showConfirmDialog(null, "Login anda salah", "Login", JOptionPane.DEFAULT_OPTION); } }
Hasilnya:
Analisa
Dari Cara 1 di atas, ada satu hal yang menjadi kesalahan besar, karena tidak mungkin password selalu sama dengan cara statik dari kode program, karena dengan cara demikian maka program menjadi kaku. Bagaimana jika kita ingin mengecek Username dan Password dari database? Maka Cara 1 akan menemui kesulitan besar. Lalu, bagaimana cara yang benar?
Cara yang paling singkat adalah mengubah nilai dari txtPassword.getPassword() menjadi String. Berikut contoh untuk mengubah txtPassword.getPassword() menjadi string:
Cara 2
// buat prosedur PasswordToString public static String PasswordToString(char[] cPasswordNya) { String Isinya = new String(""); for (int i = 0; i < cPasswordNya.length; i++) { Isinya += cPasswordNya[i]; } return Isinya; } @Action public void CekPassword() { String Username, Password = new String(""); Username = txtUsername.getText(); Password = PasswordToString(txtPassword.getPassword()); // penggunaannya boolean Pernyataan = Username.equals("dedygunanto") && Password.equals("rahasia"); if(Pernyataan == true){ JOptionPane.showConfirmDialog(null, "Yap, anda benar", "Login", JOptionPane.DEFAULT_OPTION); }else{ JOptionPane.showConfirmDialog(null, "Login anda salah", "Login", JOptionPane.DEFAULT_OPTION); } }
Atau, ada satu cara lagi yang lebih mudah dan simple
Cara 3
public void CekPassword() {
String Username, Password = new String("");
Username = txtUsername.getText();
// cara baru, tidak perlu menggunakan prosedur PasswordToString
Password = new String(txtPassword.getPassword());
boolean Pernyataan = Username.equals("dedygunanto") &&
Password.equals("rahasia");
if(Pernyataan == true){
JOptionPane.showConfirmDialog(null, "Yap, anda benar",
"Login", JOptionPane.DEFAULT_OPTION);
}else{
JOptionPane.showConfirmDialog(null, "Login anda salah",
"Login", JOptionPane.DEFAULT_OPTION);
}
}
Nah, dari contoh Cara 2 dan 3 ini, anda bisa gunakan untuk login ke database, anda tinggal mengubah sedikit dari kode program tersebut dan menggabungkannya dengan perintah untuk pencarian username dan password di database.
Moga bermanfaat
Wassalamu’alaikum Wr.Wb.
Canmasagi.wordpress.com
Manztiara.wordpress.com
Mas Hendry
Download OpenOffice Indonesia
Ubuntu


Desember 31, 2008 pukul 6:26 am
Bgus nih..
Sharing2 yg lain ya mas
Thank
Maret 1, 2009 pukul 6:09 am
Artikel anda sangat menarik dan sangat bagus sekali! Terus terang saya pingin belajar banyak pemograman java.Permasalahannya sama cuma bagaimana kalau password yang dibuat menggunakan aktivasi kode dulu lalu login.Bagaimana untuk merubah kode aktivasinya.! terimakasih
Mei 15, 2009 pukul 7:34 am
thanks
Agustus 26, 2009 pukul 7:53 pm
Thanks I’ve got your static function.