Cara mengubah jPasswordField.getPassword() ke String

Posted: Juli 5, 2011 in Uncategorized
Tag:,

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.

Tinggalkan Balasan

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Ubah )

Twitter picture

You are commenting using your Twitter account. Log Out / Ubah )

Facebook photo

You are commenting using your Facebook account. Log Out / Ubah )

Connecting to %s