Pembahasan kali ini kita akan membuat program login yang sederhana, dimana user yang menginputkan harus mengisi sebuah captcha angkarandom agar bisa login. Jika user memasukkan inputan captcha salah maka user tidak akan bisa login, tapi sebalik nya jika user memasukkan captcha dengan benar maka user akan login.
Penasaran bagaimana cara membuat nya? Mari kita buat bersama-sama.
Pertama, siapkan terlebih dahulu file html kalian. Lalu buat form sederhana, jika kalian ingin membuat form pilihan kalian silahkan dibuat terlebih dahulu, atau kalian bisa ikuti saya dengan menyalin kode dibawah ini:
Perlu diingat kita juga sudah menghubungkan file css dan javascript kita, nanti kita perlu buat saja file tersebut. Jika kalian menyalin kode diatas, maka hasilnya akan seperti ini.
Sekarang kita hias sedikit dengan css, kamu bisa menghias sendiri form nya. Atau kamu bisa ikuti saya dengan menyalin kode dibawah ini:
Maka hasil nya setelah ditambahkan css, jika kalian mengikuti kode diatas akan seperti ini.
Ngomong-ngomong kalian ngeh gak ya? Ada kotak kosong warna coklat dengan border hitam, kenapa kosong? Itu nant akan diisi dengan angka random untuk captcha, kita bahas pada bagian javascript.
Baik, untuk menjawab masalah diatas tadi, sekarang kita masuk ke bagian javascript nya. Silahkan kamu buat dulu file javascript nya,lalu bisa salin kode dibawah ini:
// Membuat angka random untuk captcha const angkaRandom = document.getElementById("angkaRandom"); functionangkaUntukCaptcha(max, min) { returnMath.floor(Math.random() * (max - min) + min); }
// Membuat variable untuk menampung angka random, disini saya ingin ada 5 angka random jadi dibuat 5 variable const angkaPertama = angkaUntukCaptcha(1, 10); const angkaKedua = angkaUntukCaptcha(1, 10); const angkaKetiga = angkaUntukCaptcha(1, 10); const angkaKeempat = angkaUntukCaptcha(1, 10); const angkaKelima = angkaUntukCaptcha(1, 10); // Menggabungkan kelima angka random const gabungAngkaRandom = `${angkaPertama}${angkaKedua}${angkaKetiga}${angkaKeempat}${angkaKelima}`; angkaRandom.innerText = gabungAngkaRandom;
// Seleksi terlebih dahulu inputan html nya const username = document.getElementById("username"); const password = document.getElementById("password"); const captcha = document.getElementById("captcha"); const submit = document.getElementById("btn"); // Lakukan event ketika tombol di klik submit.addEventListener("click", function (e) { // Jika username kosong maka user wajib mengisi terlebih dahulu if (username.value === "") { alert("Isi username kamu terlebih dahulu!"); // Jika password kosong maka user wajib mengisi terlebih dahulu } elseif (password.value === "") { alert("Isi password kamu terlebih dahulu!"); // Jika username dan password tidak kosong serta captcha berisi nilai angka yang tepat sesuai captcha yang diberikan } elseif (username.value !== "" && password.value !== "" && captcha.value === gabungAngkaRandom) { document.getElementsByTagName("table")[0].style.display = "none"; document.getElementsByTagName("h2")[0].style.display = "block"; document.getElementById("tampilUsername").innerText = username.value; document.getElementById("kembali").style.display = "block"; } e.preventDefault(); });
// Untuk mengecek inputan nilai yang dimasukkan user captcha.addEventListener("input", function () { // Jika captcha kosong, akan menampilkan pesan if (captcha.value === "") { notifCaptcha.innerText = "Isi captcha!"; // Jika captcha tidak sama dengan angka random yang tertera maka akan salah dan akan diberi warna merah } elseif (captcha.value !== gabungAngkaRandom) { notifCaptcha.style.color = "red"; notifCaptcha.innerText = "Captcha salah!"; // Jika captcha sama dengan angka random yang tertera maka akan benar dan akan diberi warna hijau } elseif (captcha.value === gabungAngkaRandom) { notifCaptcha.style.color = "green"; notifCaptcha.innerText = "Captcha benar!"; } });
// Ketika user login, lalu ada tombol kembali. Maka akan kembali ke halam form login kembali.addEventListener("click", function () { document.getElementsByTagName("table")[0].style.display = "block"; document.getElementsByTagName("h2")[0].style.display = "none"; document.getElementById("kembali").style.display = "none"; document.getElementById("kembali").type = "submit"; });
Maka hasil akhir dari materi ini setelah diberikan kode javascript akan seperti ini.
Gimana? Apa hasil teman-teman sama seperti saya? Ini lebih fokus kebagian javascript aja ya atau jalannya program untuk hiasan seperti html dan css nya bisa teman-teman kreasikan sendiri. Kalo ada masalah silahkan tulis di kolom komentar ya.
Untuk mau lihat hasil saya seperti apa, teman-teman bisa lihat di Demo-Program atau untuk yang mau lihat sumber kode nya bisa lihat di Repo-Github.
Sekian yang bisa jelaskan mengenai cara membuat program login dengan captcha angka yang random, pastinya ada lebih cara yang lebih efektif lagi teman-teman bisa berikan hasil nya lewat kolom komentar. Agar dapat saya refaktor lagi program ini.