Fungsi CheckCardId(e)
arrVerifyCode = Pisahkan(1,0,x,9,8,7,6,5,4,3,2, ,)
Wi = Pisah(7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2, ,)
Pemeriksa = Pisahkan(1,9,8,7,6,5,4,3,2,1,1, ,)
Jika Len(e) < 15 Atau Len(e) = 16 Atau Len(e) = 17 Atau Len(e) > 18 Maka
CheckCardId= Ada 15 digit atau 18 digit pada nomor ID.
CheckCardId = Salah
Fungsi Keluar
Akhiri Jika
Redupkan A
Jika Len(e) = 18 Maka
Ai = Pertengahan(e, 1, 17)
ElseIf Len(e) = 15 Maka
Ai=e
Ai = Kiri(Ai, 6) & 19 & Tengah(Ai, 7, 9)
Akhiri Jika
Jika Bukan IsNumerik(Ai) Maka
CheckCardId= KTP harus berupa angka kecuali digit terakhir!
Fungsi Keluar
Akhiri Jika
Redupkan strYear, strMonth, strDay
strTahun = CInt(Pertengahan(Ai, 7, 4))
strBulan = CInt(Pertengahan(Ai, 11, 2))
strHari = CInt(Pertengahan(Ai, 13, 2))
Hari Lahir = Potong(strTahun) + - + Potong(strBulan) + - + Potong(strHari)
Jika IsDate (Hari Ulang Tahun) Lalu
Jika DateDiff(yyyy,Now,BirthDay) <-140 atau cdate(BirthDay)> date() Kemudian
CheckCardId= Input kartu ID salah!
Fungsi Keluar
Akhiri Jika
Jika strMonth > 12 Atau strDay > 31 Lalu
CheckCardId= Input kartu ID salah!
Fungsi Keluar
Akhiri Jika
Kalau tidak
CheckCardId= Input kartu ID salah!
Fungsi Keluar
Akhiri Jika
Redupkan aku,TotalmulAiWi
Untuk i = 0 Sampai 16
TotalmulAiWi = TotalmulAiWi + CInt(Tengah(Ai, i + 1, 1)) * Wi(i)
Berikutnya
Redupkan modValue
modValue = TotalmulAiWi Mod 11
Redupkan strVerifyCode
strVerifyCode = arrVerifyCode(modValue)
Ai = Ai & strVerifikasiKode
PeriksaCardId = Ai
Jika Len(e) = 18 Dan e <> Ai Maka
CheckCardId= Nomor ID yang dimasukkan salah!
Fungsi Keluar
Akhiri Jika
Fungsi Akhir
respon.tulis CheckCardId(528337194801020025) ' ' ' ' ' ' ' '