• Tidak ada hasil yang ditemukan

SOURCE CODE

Dalam dokumen Where the idea meets creativity (Halaman 21-34)

Untuk menambakan script-script pada program, masuk kebagian Source pada gui.

Pertama kita importkan beberapa library yang kita butuhkan berikut.

import java.sql.*;

import javax.swing.*;

import java.awt.event.*;

import java.util.Date; constructornya. Letakkan persis di bawah initComponents();.

koneksi();

jamjam();

setLocationRelativeTo(this);

Pada script diatas, koneksi(); merupakan method yang nantinya kita fungsikan untuk menghubungkan dengan database. Kemudian jamjam(); kira-kira apa? Hahaha, yaa benar buat jam yaa :p

Di bawah konstruktor ini, kita tambahkan beberapa script konstanta, seperti berikut.

private Connection konek;

private Statement eksekusi;

private ResultSet res;

Taruh dibawah konstruktornya yaa, bukan di dalamnya.

Sekarang kita buat method koneksinya sob, kayak gini neh scriptnya.

public void koneksi() { yang agak kurang penting wkwk. Misalkan script method buat jam ini.

Yang ane buat sob, yang formatnya 12 jam, jadi ada AM, sama PM nya sob.

public void jamjam() {

// ActionListener untuk Keperluan Timer

ActionListener taskPerformer = new ActionListener() { public void actionPerformed(ActionEvent evt) { String nol_jam = "";

nol_jam = "0";

String menit = nol_menit + Integer.toString(nilai_menit);

String detik = nol_detik + Integer.toString(nilai_detik);

// Menampilkan pada Layar

labeljam.setText(" " + jam + " : " + menit + /*" : " + detik + */" "+ anu);

} };

// Timer

new Timer(1000, taskPerformer).start();

}

Pas nampilin jamnya di layar, ane hilangkan detiknya sob, kalo lo maunya di tampilin, tinggal hilangin komentar pada detiknya yang ada pada set nampilin jam di layar itu.

analisa

Oke sob, sebelum kita kasi script pada masing-masing kotak isian yang ada pada form kita, kita analisa dulu apa yang kira-kira dibutuhin dan apa yang kira-kira menjadi masalah pas user sign-up nanti. Biar-biar program kita bener-bener user friendly, hehe semoga..

Misal kita buat variable untuk ngambil inputan dari user seperti ini:

String un = box_username.getText();//1 String em = box_email.getText();//2 String fn = box_fullname.getText();//3

String pw = new String(box_password.getPassword());//4 String rpw = new String(box_repassword.getPassword());//4 String sex =(String)combobox_sex.getSelectedItem();//5

Analisa pertama sob, inikan masing2 field harus diisi, jadi gak boleh kosong. Jadi jika user tidak mengisi salah satu field akan keluar penampakan error sob. Kira-kira kayak gini

if(un.equals("")||em.equals("")||fn.equals("")||pw.equals("") ||rpw.equals("")||sex.equals("- Select Sex -"))

{

label_error.setText("There is an empty box.");

}

Analisa kedua, bikin sebuah penampakan error kalo si user masukin password tidak sama pas di suru masukin lagi tuh password di kotak ‚RePassword‛.

if (!pw.equals(rpw)){

label_error.setText("Password don't match.");

}

Analisa ketiga, kalo si user nginputin nama, email, dan sebagainya itu melebihi dari kapasitas yang udah kita sediain di database sob.

Jadi kita harus batasi maksimal karakter yang akan di inputkan si user sob, dengan menghitung jumlah karakter yang diinputkan dengan fungsi string length().

if(un.length()>20){

label_error.setText("Username is too long.");

}else if(em.length()>50){

label_error.setText("Email is too long.");

}else if(fn.length()>100){

label_error.setText("Full Name is too long.");

}else if(pw.length()>20){

label_error.setText("Password is too long.");

}

Analisa penting keempat, email itu bentuknya gimana sob?

Misalnya kayak gini kan : zogank20@gmail.com ? Syaratnya apa ?

- Harus ada @

- Harus ada . (dot)

Jadi bisa kita bikin script kayak gini donk :

if(!em.contains("@") || !em.contains(".")){

label_error.setText(em + " is not a valid email");

}

Kita bisa memaanfaatkan fungsi string contains(), yang berfungsi untuk mencari karakter/kata di dalam kalimat string.

Pada script itu kita hanya mengecek email yang benar dengan inputin email kayak gini :

- @zogank.com - zogank@.com

Atau bahkan si user cuman menginputkan email kayak gini - @.

Itu akan dianggap benar sama script yang kita pake, soalnya kan dia cuman nyari ‚@‛, sama ‚.‛, udah gitu aja.

Terus gimana donk ?

Nahh ,, buat yang belum tau ~

Ane perkenalkan REGEX, jeng jeeeng~~ :D

Regex itu adalah metode yang di pake untuk nyari sebuah pola pada string. Jadi kita bisa mengatur sebuah pola pada string, misalkan pada email bisa kita atur polanya seperti terdapat sebuah kata pada awal string bentuknya adalah kumpulan huruf (a-z) atau angka (0-9) kemudian setelahnya bisa ditambahkan underscore titik dll seperti pola email pada umumnya dilanjutkan dengan tanda ‚@‛ dan kemudian kumpulan karakter lagi untuk domain email. Dari hasil pembentuka pola itu didapatkan pola Regex seperti berikut :

String emailRegex = "^([a-z0-9\\+_\\-]+)(\\.[a-z0-9\\+_\\-]+)*@([a-z0-9\\-]+\\.)+[a-z]{2,6}$";

Untuk mengambil kode-kode pada pola tersebut berikut table aturan dasarnya:

Sumber table : bisakomputer.com

Okesip, sekarang analisa terakhir, yaitu apabila user memasukkan nama user_name yang sama lebih dari sekali maka akan error, karena pada database tadi user_name sudah di set menjadi primary key. Disini ane mikir karena kesalahan yang bisa terjadi pada database cuman itu, maka ane letakkan pesan error nya pada catch di dalam try-catch input ke database.

Dari semua analisa yang kita lakukan di atas, tercipta script berikut yang bisa kita namakan method signup.

public void signup(){

String un = box_username.getText();

String em = box_email.getText();

String fn = box_fullname.getText();

String pw = new String(box_password.getPassword());

String rpw = new String(box_repassword.getPassword());

String sex =(String)combobox_sex.getSelectedItem();

String emailRegex = "^([a-z0-9\\+_\\-]+)(\\.[a-z0-9\\+_\\-]+)*@([a-z0-9\\-]+\\.)+[a-z]{2,6}$";

if(un.equals("")||em.equals("")||fn.equals("")||pw.equals("") ||rpw.equals("")||sex.equals("- Select Sex -")){

label_error.setText("There is an empty box.");

}else if(un.equals("zogank")){

label_error.setText("UserName already in use.");

}else if (!pw.equals(rpw)){

label_error.setText("Password don't match.");

}else if(un.length()>10){

label_error.setText("Username is too long.");

}else if(em.length()>50){

label_error.setText("Email is too long.");

}else if(fn.length()>100){

label_error.setText("Full Name is too long.");

}else if(pw.length()>20){

label_error.setText("Password is too long.");

}else if(!em.matches(emailRegex)){

label_error.setText(em + " is not a valid email");

}else {

try{

String query = "INSERT INTO `jac`.`t_member` (`user_name` ,`email` ,"

+ "`full_name` ,`password` ,`sex`,`access`)"

+ "VALUES ('"+un+"','"+em+"','"+fn+"','"+rpw+"','"+sex+"','user');";

eksekusi.executeUpdate(query);

eksekusi.close();

//JOptionPane.showMessageDialog(null,"Berhasil Memasukan Data");

int done = JOptionPane.showConfirmDialog(null, "Welcome "

+box_username.getText()+". Sign In Now ?", "JAC Welcome",JOptionPane.YES_NO_OPTION);

if (done == 0)

Bisa lo copy ke project lo sob.

O iya pada script di atas, ane tambahin script ini :

if(un.equals("zogank")){

label_error.setText("UserName already in use.");

}

Karena ane gak mau ada user yang namanya ‚zogank‛ selain ane , hahahaha XD

Pada script querynya, untuk kolom access ane kasikan secara otomatis ‚user‛ sob.

String query = "INSERT INTO `jac`.`t_member` (`user_name` ,`email` ,"

+ "`full_name` ,`password` ,`sex`,`access`)"

+ "VALUES ('"+un+"','"+em+"','"+fn+"','"+rpw+"','"+sex+"','user');";

Jadi siapun yang daftar pada form ini aka langsung memiliki akses sebagai user biasa.

Satu lagi sob pada script ini :

int done = JOptionPane.showConfirmDialog(null, "Welcome "

+box_username.getText()+". Sign In Now ?", "JAC Welcome",JOptionPane.YES_NO_OPTION);

if (done == 0)

Jika user itu sudah mendaftaran tanpa error atau bisa dibilang sukses gitu sob, maka akan keluar kotak dialog berhasil, dan

*form sign_in belum kita bikin dibuku ini, bersambung di buku 2.

Kembali ke tab design sob.

Sekarang kita panggil method signup(), pada tombol yang terdapat pada form. Karena tombol yang kita gunakan itu bukanlah JButton yang udah disediain sama java, melainkan kita pake label.

Maka caranya ngasi scriptnya adalah, klik kanan pada label button itu, kemudian pilih Events terus Mouse dan klik pilihan mouseClicked .

Tuliskan nama method tadi yakni : signup();

Lakukan hal yang sama seperti langkah diatas pada semua field.

Dan berikan script ini:

label_error.setText("");

Jadi ketika terdapat pesan error pada form, akan hilang ketika mengklik salah satu dari field tersebut.

Udah jadi sob .. uyeeee :D

Dalam dokumen Where the idea meets creativity (Halaman 21-34)

Dokumen terkait