Verifikasi Nomor Kartu Kredit dengan JavaScript

Halaman ini merupakan demo penggunaan JavaScript untuk memeriksa nomor kartu kredit (atau kartu apa saja yang memakai algoritma cek digit Luhn). Untuk dapat mencoba demonstrasi ini, Anda memerlukan browser yang mendukung JavaScript, misalnya Netscape Navigator atau IE. Halaman ini dibuat dengan menggunakan editor Netscape Composer dengan bantuan program EDIT.COM untuk bagian JavaScript-nya. Halaman ini telah dites menggunakan Netscape Navigator 4.51. Untuk memahami maksud halaman ini sebaiknya Anda membaca artikel Algoritma Cek Digit Pada Kartu Kredit yang bisa Anda temukan di bagian Fokus.

Cara Pemakaian  :

  • Jika Anda hanya ingin tahu apakah nomor kartu kredit Anda (atau nomor kartu apa saja, TeCC misalnya) sah (menurut algoritma check digit luhn), Anda bisa memasukkan nomor yang dimaksud pada tempat masukan yang diberikan dan menekan tombol periksa.
  • Jika Anda ingin tahu beberapa nomor kartu kredit yang sah yang dekat dengan nomor yang Anda masukan (tidak peduli apakah nomor masukan itu sah atau tidak) tekan tombol Cari Nomor Yang Dekat.
  • tekan reset jika Anda ingin membersihkan masukan dan keluaran program.


Skrip ini akan menerima masukan bilangan dengan jumlah digit yang sembarang (tidak harus 16 angka), Jika Anda takut salah dalam memasukkan data, Anda bisa menyisipkan spasi atau ‘-‘ untuk memisahkan angka–angka masukan (spasi dan ‘-‘ akan diabaikan). Misalkan Anda ingin memasukkan data 1234567890123456, Anda bisa memasukkannya sebagai 1234-5678-9012-3456. Anda tidak boleh memasukkan karakter selain angka, spasi dan ‘-‘ karena skrip akan menolaknya.

Form Demonstrasi
masukkan nomor yang ingin diperiksa:

<!——————————————————–
// ———————————————————
// JavaScript untuk pengecekan(verifikasi) kartu Kredit
// (c) Oktober 1999 oleh Yohanes Nugroho
// Tanggal pembuatan : 15/16 Oktober 1999
// http://langitbiru.hypermart.net
// e-mail : yohanes@biosys.net, yohanes_n@hotmail.com
// ———————————————————

//menghilangkan spasi dan ‘-‘ baik di awal, di tengah maupun di akhir string
function trimSpaces(s){
var res;
var i;
res = “”;
for (i = 0; i < s.length; i++){
if ((s.charAt(i) != ” “) && (s.charAt(i) != “-“))
res += s.charAt(i);
}
return res;
}

//mengembalikan benar jika input yang diberikan benar (semuanya angka)
//string dianggap telah dilewatkan ke trimSpaces
function isValidInput(s){
for (i = 0; i < s.length; i++){
var i;
if ((s.charAt(i) < “0”) || (s.charAt(i) > “9”))
return false;
}
return true;
}

//membatasi angka agar tidak lebih dari 9
function fix(num){
if (num <= 9) return num; else return (num – 9);
}

//untuk mengecek kebenaran dengan ‘luhn check digit algorithm’
function check(number){
var i;
var ganjil;
var genap;
var tanda;

genap = 0;
ganjil = 0;
//tanda = 1 artinya jumlah digitnya ganjil
if (number.length % 2) tanda = 0; else tanda = 1;
for (i = 0; i < number.length; i++) {
if ((i + tanda) % 2) //ganjil
ganjil += fix(2 * (number.charAt(i)));
else
genap += parseInt(number.charAt(i), 10);
}
return (((ganjil + genap) % 10) == 0);
}

//fungsi utama
function validateInput(inp){
var tmp;
var Msg;
var Msg2;
tmp = trimSpaces(inp.nomor.value)
if ((tmp == “”) || (!isValidInput(tmp))){
alert(“Data yang Anda masukkan salah, baca keterangan”);
return false;
}
Msg = “Menurut Algoritma Check Digit Luhn angka tersebut “;
Msg2 = “sebagai angka kartu kredit”;
if (check(tmp))
alert(Msg + “\n\nVALID\n\n” + Msg2);
else
alert(Msg + “\n\nTIDAK VALID\n\n” + Msg2);
return false;
}

//mencari beberapa angka valid yang dekat dengan nomor yang diberikan
function findN(formName){
var start;
var startn;
var res;
var i;

start = trimSpaces(formName.nomor.value);
if ((start == “”) || (!isValidInput(start))){
alert(“Data yang Anda masukkan salah, baca keterangan”);
return;
}
res = “Hasil :\n”;
startn = parseInt(start,10);
for (i=-50; i<100; i++) {
num = “” + (parseInt(start,10)+i);
if (check(num)) {
res += (startn + i) + “\n”;
}
}
formName.hasil.value = res;
}
//
//akhir skrip di sini
//
//——————————————————->

(c) 1999 oleh Yohanes Nugroho

Anda bisa melihat source skrip halaman ini dengan menggunakan fasilitas untuk melihat source HTML pada browser Anda. Skrip ini boleh dengan bebas digunakan selama nama penulis/programmer tidak dihapus dari source skrip tersebut.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: