Membuat Aplikasi Login Sederhana dengan Captcha di Java Netbeans

Membuat Aplikasi Login Sederhana dengan Captcha di Java Netbeans

Membuat Aplikasi Login Sederhana dengan Captcha di Java Netbeans
Membuat Aplikasi Login Sederhana dengan Captcha di Java Netbeans

Hallo sobat ruangcoder balik lagi bersama admin , nah pada kesempatan kali ini admin akan memberikan tutorial atau cara membuat aplikasi login sederhana dengan menggunakan Captcha di Java Netbeans , sebelumnya admin sudah memberikan tutorial Captcha versi website nya , dan beserta penjelasan apa itu Captcha , bisa sobat lihat disini nah tanpa basa basi , langsung saja kita buat aplikasinya , mari sobat simak tutorialnya dibawah ini.

Membuat Aplikasi Login Sederhana dengan Captcha di Java Netbeans :


Langkah pertama silahkan sobat buka Netbeans sobat dan sobat buat project baru | New Project - Java - Java Application - Next, atau sobat bisa lihat gambar dibawah ini :



Pada langkah kedua silahkan  sobat Beri nama Project sobat dengan nama, "Captcha" tanpa tanda petik (Optional) lalu sobat hilangkan saja pada bagian centang yang ada di "Create Main Class" klik Finish, sobat bisa lihat gambar dibawah ini :



Nah selanjutnya sobat buat Package baru , dan sobat beri nama Package tersebut dengan nama "CaptchaGenerator" , lebih lengkapnya sobat bisa lihat gambar dibawah ini :




Selanjutnya , di package tersebut , sobat silahkan buat Java Class , dan sobat beri nama sama dengan nama package nya yaitu "CaptchaGenerator" , sobat bisa lihat gambar dibawah ini :





Kemudian, silahkan sobat ketikkan kode dibawah ini pada Java Class , CaptchaGenerator yang sebelumnya sobat telah buat :



/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package CaptchaGenerator;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.net.MalformedURLException;
import javax.imageio.ImageIO;

/**
 *
 * @author Muhamad Nur
 */
public class CaptchaGenerator {
 // Defining Character Array you can change accordingly
private static final char[] chars = { '1', 'A', 'a', 'B', 'b', 'C',
'c', '2', 'D', 'd', 'E', 'e', 'F', 'f', '3', 'G', 'g', 'H', 'h',
'I', 'i', 'J', 'j', 'K', 'k', 'L', 'l', '4', 'M', 'm', 'N', 'n',
'O', 'o', '5', 'P', 'p', 'Q', 'q', 'R', 'r', 'S', 's', 'T', 't',
'6', '7', 'U', 'u', 'V', 'v', 'U', 'u', 'W', 'w', '8', 'X', 'x',
'Y', 'y', 'Z', 'z', '9' };
 
private static final Color[] colors = {Color.red, Color.black, Color.blue};
 
// Method for generating the Captcha Code
public static String generateCaptchaText() {
 
String randomStrValue = "";
 
final int LENGTH = 6; // Character Length
 
StringBuffer sb = new StringBuffer();
 
int index = 0;
 
for (int i = 0; i < LENGTH; i++) {
// Getting Random Number with in range(ie: 60 total character present)
index = (int) (Math.random() * (chars.length - 1));
sb.append(chars[index]); // Appending the character using StringBuffer
}
 
randomStrValue = String.valueOf(sb); // Assigning the Generated Password to String variable
 
return randomStrValue;
}
 
// Method used to render the Image for Captcha
public static void renderImage(String value) {
 
if(value != null && !value.isEmpty()) {
 
BufferedImage image = null;
 
try {
 
image = ImageIO.read(new File("background.jpg")); // Background Image
 
} catch (IOException e) {
 
System.out.println(e.getMessage());
e.printStackTrace();
}
 
Graphics g = image.getGraphics();
 
g.setFont(g.getFont().deriveFont(30f));
 
char[] c = value.toCharArray();
 
int x = 20;
int y = 50;
 
for(int i=0;i<c.length;i++) {
x = x+ 30;
g.setColor(colors[(int)(Math.random() * 3)]);
g.drawString(String.valueOf(c[i]), x, y);
}
 
g.dispose();
 
try {
 
ImageIO.write(image, "png", new File("Output.png")); // Output Image
System.out.println("Captcha Generated Successfully!!!");
} catch (IOException e) {
 
System.out.println(e.getMessage());
e.printStackTrace();
}
}
}
 
}

Nah , pada langkah ini kita akan membuat frame baru , di dalam package CaptchaGenerator silahkan sobat buat dan beri nama FrCaptcha sobat bisa lihat gambar dibawah ini , tentunya sobat sudah tau kan cara buat frame , jadi admin tidak perlu menjelaskan lagi, kalau gak tau juga kebangetan nih admin jelaskan dibawah  :






Nah , untuk design tahan dulu , jangan sobat otak atik dulu, silahkan soba kebagian menu Files yang ada disamping project dan letakkan gambar yang admin sertakan dibawah ini , ini gunanya nanti gambar untuk captcha nya ya dan penjelasan nya digambar bawah ini  kalau sobat gak tau letaknya dimana :



Bahan - Bahan :



Nah , setelah sobat sudah memasukan gambar didalam Files project sobat , silahkan sobat ketikkan kode pada FrCaptcha , dimenu Source tentu sobat udah tau kan , gak tau kebangetan amat ahahha , langsung saja sobat ketikkan kode dibawah ini dan design seperti gambar dibawah ini :

Nah disini yang kita butuhkan hanya , Label, TextField, Button nah sobat pada label yang admin kotak merahin , silahkan klik kanan change variable name , ganti variable nya dengan nama lbCaptcha, lalu sobat klik kanan lagi properties , pada bagian menu Icon klik pada titik 3 , sobat tinggal ambil gambar yang tadi sobat download yaitu yang background.jpg inget ya backgroud , kemudian pada text field yang admin merahin , sobat change variable name dengan nama txtCaptcha1,  dan pada button yang admin kotak merahin , yang ada icon refreshnya , kalo sobat nanya bang itu iconya dari mana , admin download dulu sobat bisa download disini  caranya sama ya bro untuk memasukan gambarnya , klik kanan - properties - dan pilih menu icon , titik tiga klik , kemudian tinggal cari dimana gambarnya sobat simpan :




package CaptchaGenerator;
import static CaptchaGenerator.CaptchaGenerator.generateCaptchaText;
import static CaptchaGenerator.CaptchaGenerator.renderImage;
import java.awt.Graphics2D;
import java.awt.RenderingHints;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
import javax.swing.ImageIcon;
import javax.swing.JOptionPane;
/**
 *
 * @author Muhamad Nur
 */
public class FrCaptcha extends javax.swing.JFrame {
CaptchaGenerator CaptchaGenerator = new CaptchaGenerator();
String vcaptcha,vcaptchavalidasi;
 
    public FrCaptcha() {
    initComponents();
    ambilCaptcha();
    txtCaptcha1.setVisible(false);
}
    
    public static BufferedImage loadImage(String ref){
BufferedImage bimg =null;
 
try {
bimg = ImageIO.read(new File(ref));
} catch (IOException e) {
}
 
return bimg;
 
}
 
public static BufferedImage resize(BufferedImage img, int newW,int newH){
int w = img.getWidth();
int h = img.getHeight();
BufferedImage dimg = dimg = new BufferedImage(newW, newH, img.getType());
Graphics2D g = dimg.createGraphics();
g.setRenderingHint(RenderingHints.KEY_INTERPOLATION,
RenderingHints.VALUE_INTERPOLATION_BILINEAR);
g.drawImage(img, 0, 0, newW, newH, 0, 0, w, h, null);
g.dispose();
return dimg;
}
 
private void ambilCaptcha(){
 
 
String generatedStrValue = generateCaptchaText();
renderImage(generatedStrValue);
BufferedImage loadImg = loadImage("output.png");
ImageIcon imageIcon = new ImageIcon(resize(loadImg,lbCaptcha.getWidth(),lbCaptcha.getHeight()));
 
lbCaptcha.setIcon(imageIcon);
System.out.println(generatedStrValue);txtCaptcha1.setText(generatedStrValue);
}


Setelah sobat ketik kode diatas , untuk FrCaptcha nya , langkah selanjutnya adalah sobat ketikkan kode dibawah ini tentunya untuk refreshnya dong , sobat pada button refresh , tinggal double klik aja , lalu sobat ketikkan kode dibawah ini ya :



ambilCaptcha();

Dan langkah yang terakhir adalah sobat ketikkan kode dibawah ini , untuk button loginnya , silahkan sobat double click pada button login dan sobat ketikkan kode dibawah ini, nah nanti ada error pasti , error tersebut karena kita belum membuat sebuah variable , silahkan sobat buat variable baru , pada TextField dari Username dan Password , silahkan sobat klik kanan pada TextField tersebut dan klik change variable name , untuk TetxField username sobat beri nama variable tersebut dengan nama txtUser dan untuk TextField password sobat beri nama txtPass  dan untuk login username maupun password nya disitu admin set ruangcoder karena disini kita belum menggunakan login tersebut menggunakan Database , karena tujuan kita membuat captcha, sobat lihat design dibawah ini , itu sobat tambahin 1 TextField lagi ya , itu buat nampilin nantinya terus sobat ganti variablenya jadi txtCaptcha , textfield yang kotak merahin itu yang baru saja ditambahkan lebih jelasnya lihat digambar, nah buat yang txtCaptcha1 pada step sebelumnya , itu kotak yang kecil sobat geser kebawah itu nanti dia ke hidde , yang admin kotak in warna hitam , itu yang sebelumnya kita sudah buat :





 vcaptchavalidasi = txtCaptcha.getText();
        String Value = txtCaptcha1.getText();
            // TODO add your handling code here:
            if (txtUser.getText().equals("ruangcoder")) {
            if (txtPass.getText().equals("ruangcoder")) {
            // Bila Login Sukses Maka Masuk Menu Utama
            if (vcaptchavalidasi.equals(Value)) {
            JOptionPane.showMessageDialog(this, "Login Berhasil");
            ambilCaptcha();
            txtUser.setText("");
            txtPass.setText("");
            txtUser.requestFocus();
            txtCaptcha.setText("");

            }else{
            JOptionPane.showMessageDialog(this, "Error Captcha Salah"
            ,"informasi",JOptionPane.INFORMATION_MESSAGE);
            }
            }else{
            JOptionPane.showMessageDialog(this, "Error Password Salah"
            ,"informasi",JOptionPane.INFORMATION_MESSAGE);
            }
            }else{
            JOptionPane.showMessageDialog(this, "Error Username Salah"
            ,"informasi",JOptionPane.INFORMATION_MESSAGE);
            }

Nah sudah selesai sobat , untuk username dan password nya adalah ruangcoder , sobat bisa lihat hasilnya dibawah ini , jika sobat berhasil dalam penamaan dalam textField sesuai dengan admin , tapi coba sobat otak - atik sendiri deh , biar kalau ada error bisa solved sendiri , oke cekidot ini penampakan hasilnya :

Tampilan Awal , dan sobat bisa lihat txtCaptcha1 , tidak muncul itu ke Hidde bro , seperti yang admin jelaskan , yang muncul hanya txtCaptcha yang baru saja kita tambahkan

Notifikasi apabila memasukkan Captcha Salah

Notifikasi apabila sobat memasukkan dengan benar captcha


Nah , sobat apabila sobat klik OK saat login berhasil otomatis captcha akan berubah lagi , sama dengan sobat saat sobat klik refresh , oke sobat , mungkin tutorial Membuat Aplikasi Login Sederhana dengan Captcha di Java Netbeans sampai sini saja , semoga bermanfaat apabila sobat kurang mengerti silahkan sobat tanyakan di kolom komentar , nanti admin usahakan admin bantu , terima kasih juga sobat sudah berkunjung , sampai jumpa di tutorial selantutnya 

Anda mungkin menyukai postingan ini