Kalkulator Algoritma Luhn - Validasi Kartu Kredit & IMEI
Kalkulator mod 10 Luhn gratis untuk validasi kartu kredit, pemeriksaan IMEI, dan verifikasi ID. Validasi angka atau hasilkan data uji secara instan online.
Kalkulator Algoritma Luhn
Periksa apakah nomor Anda lolos validasi Luhn mod 10
Dokumentasi
Apa Itu Algoritma Luhn?
Algoritma Luhn, yang juga disebut algoritma mod 10, adalah rumus untuk memeriksa apakah rangkaian digit mungkin merupakan nomor identifikasi yang valid. Algoritma ini digunakan untuk mendeteksi kesalahan pengetikan pada nomor kartu kredit, nomor IMEI pada ponsel, dan kode ID lainnya sebelum kesalahan tersebut menimbulkan masalah. Insinyur IBM Hans Peter Luhn menjelaskan metode ini dalam paten yang diajukan pada 1954.
Algoritma ini tidak membuktikan bahwa suatu nomor benar-benar ada atau masih aktif. Algoritma ini hanya memastikan bahwa digit-digitnya mengikuti pola yang diharapkan. Nomor kartu dapat lolos pemeriksaan Luhn tetapi tetap palsu, kedaluwarsa, atau tidak memiliki dana.
Cara Menghitung Checksum Luhn
Pemeriksaan ini dilakukan pada digit-digit suatu nomor, dibaca dari kanan ke kiri.
- Mulai dari digit kedua dari kanan, gandakan setiap digit secara berselang-seling.
- Jika penggandaan suatu digit menghasilkan angka lebih besar dari 9, kurangi hasil tersebut dengan 9. (Hal ini sama dengan menjumlahkan kedua digit hasilnya, sehingga 16 menjadi 1 + 6 = 7, atau setara dengan 16 − 9 = 7.)
- Jumlahkan semua digit: digit yang digandakan setelah penyesuaian dan digit yang tidak diubah.
- Jika jumlah total habis dibagi 10, nomor tersebut valid. Jika tidak, nomor tersebut tidak valid.
Saat suatu perusahaan menerbitkan nomor ID baru, perusahaan itu menggunakan langkah yang sama secara terbalik. Semua digit kecuali digit terakhir dipilih, pemeriksaan dijalankan, lalu digit terakhir atau “digit pemeriksa” dipilih agar jumlah total habis dibagi 10.
Contoh Perhitungan: Memvalidasi Nomor Kartu
Gunakan nomor uji 4532015112830366.
- Digit dari kanan ke kiri: 6, 6, 3, 0, 3, 8, 2, 1, 1, 5, 1, 0, 2, 3, 5, 4
- Gandakan setiap digit kedua: 6, 12, 3, 0, 3, 16, 2, 2, 1, 10, 1, 0, 2, 6, 5, 8
- Kurangi 9 dari setiap hasil yang lebih besar dari 9: 6, 3, 3, 0, 3, 7, 2, 2, 1, 1, 1, 0, 2, 6, 5, 8
- Jumlahkan semuanya: 6+3+3+0+3+7+2+2+1+1+1+0+2+6+5+8 = 50
- 50 habis dibagi 10, jadi nomor tersebut valid.
Contoh Perhitungan: Nomor Tidak Valid
Gunakan 490154203237517, yaitu nomor dengan 15 digit dalam format yang digunakan nomor IMEI.
Langkah yang sama menghasilkan jumlah 59. Karena 59 tidak habis dibagi 10, nomor ini tidak valid.
Untuk mengubahnya menjadi nomor valid, hanya digit terakhir yang perlu diubah. Pengujian terhadap setiap digit terakhir yang mungkin menunjukkan bahwa digit terakhir 8 menghasilkan jumlah 60, yang habis dibagi 10. Jadi, 490154203237518 adalah nomor Luhn yang valid, sedangkan setiap digit terakhir lainnya dari 0 hingga 9 (kecuali 8) menghasilkan nomor yang tidak valid.
Cara Menggunakan Kalkulator Ini
Kalkulator ini memiliki dua mode yang dipilih melalui tombol Tindakan.
Validasi memeriksa nomor saat nomor tersebut diketik. Tidak diperlukan penekanan tombol. Hasil muncul segera setelah bidang berisi digit, dan perincian langkah demi langkah di bawahnya mencantumkan setiap digit, nilai kontribusinya setelah digandakan dan dilipat, serta jumlah totalnya.
Buat menghasilkan nomor yang lolos pemeriksaan. Digit yang sudah ada di bidang dipertahankan sebagai awal nomor baru. Kalkulator mengisi sisa digit dengan digit acak dan menambahkan digit pemeriksa. Hasilnya memiliki panjang 16 digit, yaitu panjang nomor kartu pembayaran yang umum, kecuali digit yang dimasukkan sudah berjumlah 16 atau lebih; dalam hal itu, hasilnya satu digit lebih panjang daripada yang dimasukkan.
Spasi, tanda hubung, dan titik dalam input diabaikan, sehingga “4532 0151 1283 0366” dan “4532-0151-1283-0366” dibaca sama seperti digit tanpa pemisah. Karakter lain apa pun, seperti huruf, ditolak dengan pesan kesalahan.
Di Mana Algoritma Luhn Digunakan
- Kartu pembayaran. Visa, Mastercard, American Express, dan jaringan lainnya menyusun nomor kartu agar seluruh nomor lolos pemeriksaan Luhn. Formulir pembayaran dapat menggunakannya untuk mendeteksi digit yang salah ketik sebelum menghubungi pemroses pembayaran.
- Nomor IMEI. Pengenal dengan 15 digit yang diberikan kepada ponsel dan perangkat seluler lainnya mencakup digit pemeriksa Luhn.
- Nomor Asuransi Sosial Kanada. SIN dengan 9 digit menggunakan pemeriksaan yang sama.
- National Provider Identifier (NPI) Amerika Serikat. Penyedia layanan kesehatan di Amerika Serikat memperoleh NPI dengan 10 digit yang divalidasi menggunakan pemeriksaan berbasis Luhn.
Hal yang Tidak Dapat Dideteksi Algoritma Luhn
Algoritma ini selalu mendeteksi satu digit yang salah ketik, apa pun digitnya dan di mana pun letaknya. Algoritma ini juga mendeteksi setiap pertukaran dua digit bersebelahan (seperti mengetik “39” alih-alih “93”), kecuali satu kasus khusus: pertukaran 0 dan 9 yang bersebelahan, misalnya “09” menjadi “90”.
Algoritma ini juga tidak mendeteksi tiga kesalahan “kembar”, yaitu ketika sepasang digit berulang diganti dengan pasangan berulang yang berbeda: 22 terbaca sebagai 55, 33 terbaca sebagai 66, dan 44 terbaca sebagai 77. Karena celah ini sudah diketahui dan terbatas, pemeriksaan Luhn dapat diandalkan untuk mendeteksi kesalahan pengetikan biasa, tetapi tidak dianggap sebagai sistem pendeteksi kesalahan yang lengkap jika digunakan sendiri.
Luhn Bukan Pemeriksaan Keamanan
Luhn dirancang untuk mendeteksi kesalahan input data yang tidak disengaja, bukan penipuan. Nomor yang lolos pemeriksaan hanya memiliki bentuk matematis yang benar, tidak lebih. Keamanan pembayaran yang sebenarnya bergantung pada lapisan lain setelah pemeriksaan Luhn, seperti kode CVV kartu, verifikasi alamat, dan autentikasi 3-D Secure. Luhn hanyalah penyaring pertama dan termurah, yang dijalankan sebelum pemeriksaan lain yang lebih lambat.
Memvalidasi Nomor dalam JavaScript
1function isValidLuhn(number) {
2 const digits = number.replace(/\D/g, '').split('').map(Number);
3 if (digits.length === 0) return false;
4
5 let sum = 0;
6 let doubleDigit = false;
7 for (let i = digits.length - 1; i >= 0; i--) {
8 let d = digits[i];
9 if (doubleDigit) {
10 d *= 2;
11 if (d > 9) d -= 9;
12 }
13 sum += d;
14 doubleDigit = !doubleDigit;
15 }
16 return sum % 10 === 0;
17}
18Pemeriksaan input kosong penting: string kosong memiliki jumlah digit 0, dan 0
habis dibagi 10, sehingga tanpa pemeriksaan tersebut fungsi akan menganggap input kosong sebagai
nomor yang valid. Untuk mencari digit pemeriksa, bukan menguji digit yang sudah ada, jalankan loop yang sama
pada digit sebelum digit pemeriksa, tetapi mulai menggandakan dari digit terakhir di antaranya,
lalu gunakan (10 - sum % 10) % 10.
Pertanyaan yang sering diajukan
Untuk Apa Algoritma Luhn Digunakan?
Algoritma ini memeriksa apakah nomor identifikasi, seperti nomor kartu kredit, nomor IMEI, atau SIN Kanada, konsisten secara internal. Algoritma ini mendeteksi digit yang salah ketik atau tertukar sebelum menimbulkan kesalahan pemrosesan.
Seberapa Akurat Algoritma Luhn dalam Mendeteksi Kesalahan?
Algoritma ini mendeteksi setiap digit yang salah ketik dan hampir setiap kasus pertukaran dua digit bersebelahan. Satu-satunya pertukaran yang tidak terdeteksi adalah 0 dan 9 yang bersebelahan. Algoritma ini juga tidak mendeteksi tiga penggantian “kembar” tertentu: 22 menggantikan 55, 33 menggantikan 66, dan 44 menggantikan 77.
Apakah Nomor Luhn yang Valid Berarti Kartunya Asli?
Tidak. Pemeriksaan ini hanya memastikan bahwa digit-digitnya sesuai dengan pola yang diharapkan. Pemeriksaan ini tidak memberi informasi apakah kartu tersebut ada, aktif, atau memiliki dana. Perusahaan menambahkan pemeriksaan terpisah, seperti kode CVV, untuk hal tersebut.
Apakah Pemeriksaan Luhn Dapat Dilakukan Tanpa Komputer?
Ya. Pemeriksaan ini hanya memerlukan penggandaan, pengurangan, dan penjumlahan, sehingga dapat dilakukan secara manual atau dengan kalkulator sederhana. Hal ini merupakan bagian dari rancangan awalnya, yang ditujukan untuk era kartu berlubang sebelum komputer digital digunakan secara luas.
Apakah Nomor yang Dihasilkan Merupakan Nomor Kartu Asli?
Tidak. Generator hanya menghasilkan rangkaian digit yang memenuhi pemeriksaan Luhn. Nomor-nomor tersebut ditujukan untuk menguji formulir input. Tidak ada bank yang menerbitkannya, dan nomor-nomor tersebut tidak dapat digunakan untuk membayar apa pun.
Mengapa Disebut Algoritma mod 10?
Karena langkah terakhir memeriksa apakah jumlah tersebut habis dibagi 10, yang dalam matematika ditulis sebagai “sum mod 10 = 0”. “Mod” adalah singkatan dari modulo, yaitu sisa yang diperoleh setelah pembagian.
Siapa yang Menemukan Algoritma Luhn?
Hans Peter Luhn, seorang insinyur di IBM, menjelaskannya dalam permohonan paten yang diajukan pada 1954 (diberikan pada 1960 sebagai Paten AS 2.950.048). Ia juga dikenal karena karya awalnya dalam pengindeksan teks terkomputerisasi.