Java : Membuat Form Register

Ditulis oleh robzlabz pada Sabtu, 24 Maret 2012

Setelah kemarin berhasil membaut form login, selanjutnya yang ingin aku buat adalah membuat form register. Hmmm mungkin form register ini akan sedikit panjang penjelasannya. Stay focus 


Buka NetBeans lalu File - New Project - Java - Java Application
Create new java - JFrameFrom dan beri nama frmRegister

berhasil sampai disitu? mari lanjutkan dengan mengisi form dengan beberapa text, password, checkbox dan combobox. Bisa dibuat seperti ini


tidak rumit kan :D
Oke, selanjutnya adalah mengubah variable name pada beberapa object yang ada untuk memudahkan coding nanti. Caranya adalah click kanan pada object yang ingin di ganti variablenya dan ganti variable namenya sesuai keinginan, tapi untuk tutorial ini mari buat variable name seperti ini


Oke, kini saatnya bercoding ria :)
Untuk membuat form Register yang bagus kita akan benar benar membutuhkan beberapa fucntion yang akan membantu kita. Beberapa diantaranya adalah
1. buatRandomCapta - Membuat random capta
2. cekPassword - memastikan password match
3. resetForm - mengosongkan form
4. setGender - menambah properti gender di combobox
5. cekCapta - memastikan capta di isi dengan benar
6. cekEmail - memastikan email yang dimasukan benar

1. buatRandomCapta
Untuk membuat random capta kita memerlukan variable yang dapat diakses semua member, maka kita tuliskan code berikut ini dibawah Public class frmRegister.

private int math1;
private int math2;

lalu kita tuliskan

private void buatRandomCapta () {
    Random rnd = new Random();
    math1 = rnd.nextInt(9);
    math2 = rnd.nextInt(9);  
    
    lblrandom.setText(math1 + " + " + math2 + " = ");
}

function ini berfungsi membaut random integer setiap kali function ini dipanggil, jadi untuk lblrandom isinya selalu berubah

2. cekPassword 


untuk cek password kita buat function seperti dibawah ini

private boolean cekPassword () {    
    String pass = String.valueOf(txtpass.getPassword());
    String repass = String.valueOf(txtrepass.getPassword());
    boolean ret = false;
    
    if (pass.length() == 0 ) {
        lblpasschar.setText(null);
    }else if (pass.length() < 6 ) {
        lblpasschar.setText("Low");
    }else if (pass.length() < 10) {
        lblpasschar.setText("Med");
    }else {
        lblpasschar.setText("Strong");
    }
        
    if (pass.equals(repass)) {
        lblpassmatch.setText("Match");        
        ret = true;
    }else{
        lblpassmatch.setText("Not Match");            
    }
    
    return ret;
}

hmm... hal yang pertama dilakukan function ini adalah mengambil String dari password yang dimasukan, setelah itu mengukur kekuatan password berdasarkan panjang password yang di inputkan. jika panjang password yang di inputkan adalah 0 maka lblpasschar tidak akan menampilkan apapun, namun ketika diketikan beberapa kata maka label akan menampilkan kata low untuk password dengan panjang karakter kurang dari 6, med untuk panjang password kurang dari 10 dan strong untuk password yang lebih dari 10.
Selanjutnya function ini mengecek apakan password dan re-password sama. jika sama maka lblpassmatch akan menampilkan Match dan mengubah ret menjadi true sedangkan jika tidak sama maka label akan menampilkan not match.
Ret adalah variable boolean yang nantinya digunakan untuk mengambalikan nilai dari cekPassword () dengan true jika password sama atau  false jika password tidak sama

3. resetForm


Reset form adalah function yang digunakan untuk mengembalikan form ke tampilan kosong

private void resetForm () {
    buatRandomCapta();
    
    // Reset text and password field
    txtname.setText(null);
    txtmail.setText(null);
    txtpass.setText(null);
    txtrepass.setText(null);
    txtcapta.setText(null);
    
    // reset combo box list
    cbgender.setSelectedIndex(0);
    
    // reset label
    lblpasschar.setText(null);
    lblpassmatch.setText(null);
    
    // reset checked
    chkaggre.setSelected(false);
}

function resetForm bertipe void yang artinya function ini tidak mengambalikan nilai.
Yang dilakukan dalam function resetForm ini adalah memanggil function buatRandomCapta(); yang beratri dia akan membuat capta baru. Selanjutnya adalah mengosongkan textField dan Password field yang ada pada form. Mengembalikan pilihan cbgender ke pilihan awal, mengosongkan  label pass dan yang terakhir adalah uncheck chkaggre


4.setGender


Set gender adalah function yang digunakan untuk mengisi ulang cbgender

private void setGender () {
    cbgender.removeAllItems();
    cbgender.addItem("Male");
    cbgender.addItem("Female");    
}


tentunya yang dilakukan oleh function ini adalah mengosongkan cbgender lalu mengisinya dengan list male dan female. Hmm... untuk ComboBox di java secara default sudah di isi dengan 4 item. maka dari itu kita harus mengosongkan ComboBox ini erlebih dahulu

5. cekCapta


cek capta ini adalah function yang mengembalikan nilai true atau false sesuai capta yang dimasukan



private boolean cekCapta() {
    String hasil = txtcapta.getText();
    
    if (Integer.parseInt(hasil) == (math1 + math2)) {
        return true;
    }else{
        return false;
    }
}

Pertama function ini akan mengambil karakter dari txtcapta lalu mengecek apakah hasil yang di inputkan benar atau salah. jika benar maka cekCapta akan mengmbalikan nilai true dan jika salah maka cekCapta akan mengmbaikan nilai false;

6. cekEmail


untuk function cek email ini akan digunakan function yang sederhana, hanya memastikan bahwa email sudah terdapat '@' dan '.' pada email yang dimasukkan.

private boolean cekEmail () {
    String mail = txtmail.getText();
    boolean cek1 = false, cek2 = false;    
    /* 
     * Email must have @ and . on tld
     */
    mail = mail.toLowerCase();
    for (int i=0;i<mail.length();i++) {
        if (mail.charAt(i) == '@') {
            cek1 = true;
        }
        if (mail.charAt(i) == '.') {
            cek2 = true;
        }
    }
    
    return cek1 && cek2; 
    
}

pada dasarnya email berformat yourmail@mail.com maka yang kita perli cek adalah apakah karakter @ dan . sudah ada. Maka jalan dari function ini adalah mengambil string dari txtmail lali melakukan perulangan sebanyak n kali (sebanyak kata yang dita masukan di txtmail) lalu mengecek satu persatu dari karakter yang dimasukan. Hmm.... jika perulangan menemukan karakter @ maka nilai dari cek1 akan bernilai true dan jika ditemukan karakter . maka nilai dari cek2 menjadi true. Setelah itu cekEmail akan mengembalikan nilai berdasarkan nilai dari cek1 dan cek2 dengan logina AND.

Masih ingat logika and kan? jika salah satu terdapat nilai 0 maka hasilnya adalah 0. true =1 , false = 0
1 AND 1 = 1
1 AND 0 = 0
0 AND 1 = 0
0 AND 0 = 0

Okey, kita sudah selesai membuat fungsi gungsi yang kita butuhkan, sekarang adalah saatnya menaruh fungsi itu ke tempat yang benar.

Selanjutnya kita akan memberikan 2 fungsi ke dalam event formWindowOpened jadi ketika aplikasi dibuka maka fungsi yang kita masukan akan berjalan. Okey 2 fungsi itu adalah setGender dan buatRandomCapta.
Untuk penempatan code silahkan click kanan pada form window Pilih Events - WindowWindowOpened. Lalu masukan kedua fungsi tersebut. maka akan menjadi seperti ini

private void formWindowOpened(java.awt.event.WindowEvent evt) {
// TODO add your handling code here:    
    setGender();
    buatRandomCapta();    
}

code diatas membuat cbgender terisi male dan female dan menggenerate capta baru

selanjutnya adalah code yang akan dimasukan pada form txtpass dan txtrepass caranya click kanan pada txtpass lalu pilih Events - Key - KeyReleased. Ulangi untuk txtrepass juga dan keduanya dimasukan code   cekPassword. Okay, seperti ini jadinya

private void txtpassKeyReleased(java.awt.event.KeyEvent evt) {
// TODO add your handling code here:
    cekPassword();
}

private void txtrepassKeyReleased(java.awt.event.KeyEvent evt) {
// TODO add your handling code here:
    cekPassword();
}

code tersebut dipasang di  event keyreleased tujuannya untuk mengecek kekuatan dan kesamaan password ketika kita mengetikan password

cepek? sama. LOLOLOLOLOL


tapi marilah kita berlanjut ke code berikutnya. Selanjutnya adalah membuat button reset bekerja, maka yang kita butuhkan adalah click kanan pada tombol reset pilih Events - Action - ActionPerformed. dan masukan code resetForm kedalamnya

private void btnresetActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
    resetForm();
}

Lanjut ke button berikutnya, button cencel. Pada button ini kita akan membuat pertanyaan sebelum keluar, yaitu dengan pertanyaan ya atau tidak jadi keluar. Langsung saja pada codenya

private void btncancelActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
    if (JOptionPane.showConfirmDialog(null,"Yakin akan keluar?","Confirm",
            JOptionPane.YES_NO_OPTION) == JOptionPane.YES_OPTION) {
        System.exit(0);
    }
}

Code ini akan menampilkan pertanyaan, yakin akan keluar? dan jika tombol yes ditekan maka aplikasi akan keluar sedangkan jika tombol no ditekan maka akan kembali ke form register

Finish your work with last code


code yang paling penting yang akan kita masukan adalah code yang berapa pada button register, oke untuk memulai click kanan pada button register pilih Events - Action - ActionPerformed. lalu masukan code berikut

private void btnregisterActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
    if (chkaggre.isSelected()) {
        if (cekCapta()) {
            if (cekEmail()) {
                if (cekPassword()) {
                    // success
                    String name = txtname.getText();
                    String email = txtmail.getText();
                    String pass = String.valueOf(txtpass.getPassword());
                    String gen = cbgender.getSelectedItem().toString();
                    
                    JOptionPane.showMessageDialog(null,
                            "Anda dibawah ini" + 
                            "\nNama: " + name + 
                            "\nEmail: " + email + 
                            "\nPass: " + pass + 
                            "\nGender: " + gen + 
                            "\n\nSetuju dengan pendaftaran ini");
                }else {
                    JOptionPane.showMessageDialog(null,
                            "Password must match");
                }
            }else {
                JOptionPane.showMessageDialog(null, "Masukan Email dengan benar",
                        "Error", JOptionPane.INFORMATION_MESSAGE);
            }
        }else{
            JOptionPane.showMessageDialog(null, "Capta yang kamu masukan salah",
                    "Error", JOptionPane.ERROR_MESSAGE);
        }
    }else {
        JOptionPane.showMessageDialog(null,"Kamu harus setuju untuk melanjutkan",
                "Ding", JOptionPane.ERROR_MESSAGE);
    }
}

Cukup panjang juga ya codenya, tapi akan ku jelaskan dengan sesingkat singkatnya. Code diatas menggunakan 4 lapis if yak mungkin itu semacam kue lapis namun bukan kue lapis yang aku maksud.
if yang pertama adalah if aggre. jika user sudah setuju maka menuju if selanjutnya dan jika tidak maka akan tampil pesan "kamu harus setuju untuk melanjutkan". If yang kedua adalah if capta benar. Jika capta yang dimasukan adalah benar maka code lanjut dan jika salah maka akan menampilkan pesan "Capta yang dimasukan salah". If yang ketiga adalah if email benar. Jika email yang di inputkan adalah benar maka akan lanjut dan jika salah maka akn menampilkan pesan "Masukan email dengan benar". Nah if yang terakhir adalah if password benar. Jika password benar maka program akan menampilkan pesan "Anda dibawah ini Name : Email : Pass : Gender Setuju dengan pendaftaran ini" dan jika password tidak match maka akan menampilkan pesan "Password must match"

Okey, itulah hal tersingkat yang bisa aku berikan. :D


Oke, itulah hasil dari program yang dibuat :)

Download frmRegister.java via Wuala

{ 0 Komentar... read them below or add one }

Posting Komentar

Label Could

Analisa (1) Assembler (4) c (1) cpp (3) Facebook (7) Fun (2) Galau (6) Hacking (1) Hardware (1) Java (7) JavaScript (4) Komik (10) My Family (1) My Life (14) My Way (8) NFC (1) NFC Hacking (1) Php (1) Program (47) Project (1) Script (1) Technology (1) Visual Basic 6 (2) Visual Basic.NET (4) What The Pufh (12)