Membuat Aplikasi Login dengan Captcha Java Netbeans

Membuat Aplikasi Login dengan Captcha Java Netbeans
Membuat Aplikasi Login dengan Captcha Java Netbeans

Membuat Aplikasi Login dengan Captcha Java Netbeans - Pada kesempatan kali saya akan memberikan cara membuat aplikasi login dengan captcha menggunakan java netbeans, dan mengenai apa itu captcha, saya akan menjelaskan singkat penjelasan captcha itu sendiri, baru lanjut ke pembuatannya.

Apa itu Captcha CAPTCHA atau Captcha adalah suatu bentuk uji tantangan-tanggapan yang digunakan dalam perkomputeran untuk memastikan bahwa jawaban tidak dihasilkan oleh suatu komputer. dan berikut langkah - langkah membuatnya.

Membuat Aplikasi Login dengan Captcha Java Netbeans

  1. Pertama buka aplikasi Java Netbeans kalian.
  2. Kemudian kalian buat Project Baru.
  3. Lalu kalian pilih New Project -> Java -> Java Application -> Next.


  4. Berinama project tersebut dengan nama Captcha ( bebas ).
  5. Kemudian hilangkan tanda centang pada Create Main Class.


  6. Selanjutnya, buat package baru dengan nama CaptchaGenerator


  7. Selanjutnya, di dalam package tersebut kita buat Java Class nya dan berinama CaptchaGenerator


  8. Lanjut, silahkan kalian ketikkan kode dibawah ini di dalam Java Classnya
  9. /*
     * 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();
    }
    }
    }
     
    }
  10. Lanjut, kita buat frame baru, di dalam package CaptchaGenerator.
  11. Berinama frame tersebut dengan nama FrCpatcha


  12. Lalu kalian ke bagian menu Files
  13. Kemudian letakkan gambar yang ada dibawah ini, dimana gunanya membentuk dari captcha itu sendiri.


  14. Ambil bahan - bahannya. Untuk bahan - bahannya ada dibawah ini.



  15. Setelah memasukan bahan tadi ke dalam project kalian, silahkan kalian design seperti dibawah.


  16. Perhatikan
    Disini kita hanya membutuhkan beberapa bahan yang diantanya Label lalu TextField kemudian Button selanjutnya, kalian ubah variable namenya dengan kalian ganti beruturan dari label hinggan TextField yang dimana terdiri antara lain :
    lbCaptcha
    txtCaptcha1
    Dan bagi kalian yang menanyakan icon nya dapet dari mana saya dapet dari sini untuk caranya klik kanan - properties - dan pilih menu icon dan cari gambarnya
  17. Setelah selesai design, silahkan ketikkan kode di frame tersebut.
  18. 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);
    }
  19. Selanjutnya, Double Click pada button refreshnya, kemudian kalian ketikkan kode dibawah ini.
  20. ambilCaptcha();
  21. Terakhir, kalian ketikkan kode dibawah ini pada button login.
  22. 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);
                }
    Perhatikan!
    Akan terjadi error karena disini kita belum menambahkan variable username dan password silahkan kalian klik kanan pada TextField lalu change variable name tersebut dengan username menjadi txtUser dan untuk password menjadi txtPass
  23. Selesai..

Penutup

Nah itu dia tentang Cara Membuat Aplikasi Login dengan Captcha Java Netbeans semoga bermanfaat bagi kalian yang sedang belajar pemrograman dan agar terus semangat belajarnya, terimakasih sudah berkunjung.