| WELCOME TO INFO POPULER... | HAVE A NICE VISIT... |

Cara Melakukan Cek Digit

Apakah cek digit itu? Cek digit berfungsi untuk memeriksa apakah data yang dimasukkan tersebut benar atau salah. Biasanya angka cek digit ini ditambahkan pada akhir suatu data yang dimasukkan.

Angka cek digit diperoleh dengan suatu rumus. Dengan mengkalkulasi data yang dimasukkan, maka diperoleh suatu angka cek digit. Angka inilah yang akan ditambahkan pada akhir data tersebut. Kalau suatu saat data tersebut dipergunakan lagi dan terjadi kesalahan pengetikan, perhitungan angka cek digit akan memperoleh nilai yang berbeda. Sehingga di awal proses kesalahan tersebut sudah dapat dideteksi.

Dalam implementasinya cek digit digunakan pada nomor kartu kredit (seperti Visa Card, Master Card, Amex, JCB, dan lain-lain), nomor rekening bank, kode barang pada swalayan atau bahkan pada Nomor Induk Mahasiswa. Coba bayangkan bila cek digit tidak diterapkan pada kartu kredit. Bila terjadi kesalahan pengetikan nomor kartu kredit, maka tidak dengan segera ketahuan. Hal ini bisa mengakibatkan tagihannya akan jatuh ke orang lain.

Demikian halnya pada swalayan. Bila si kasir salah memasukkan kode barang, barang yang tertera pada struk pembayaran akan berbeda. Bisa jadi ini sangat merugikan bagi pembeli atau bahkan bagi swalayan itu sendiri.

Salah satu cara untuk mencari nilai cek digit adalah dengan menggunakan algoritma Luhn. Algoritma Luhn adalah salah satu algoritma yang digunakan untuk menghasilkan nilai cek digit. Beberapa kartu kredit menggunakan algoritma ini untuk menghasilkan nilai cek digit tersebut. Pada umumnya, nomor pada kartu kredit terdiri dari 16 angka. Angka yang paling kanan merupakan nilai cek digit.

Jadi jumlah nomor kartu kredit yang sebenarnya adalah cuma 15 angka. Dari ke 15 angka ini dapat dicari nilai cek digitnya. Caranya adalah setiap angka yang berada pada posisi ganjil (perhitungan posisi dari kiri ke kanan) dikalikan dengan angka 2. Bila hasil perkalian ini lebih besar dari 9, nilainya dikurangi 9.

Setiap angka pada posisi genap dikalikan dengan angka 1. Hasil dari semua perkalian ini diakumulasikan, sehingga mendapatkan suatu nilai. Nilai ini diasumsikan sebagai X. Nantinya nilai X ini ditambahkan dengan suatu bilangan yang sedemikian rupa, sehingga hasil dari penambahan tersebut bila dimodulus dengan angka 10 hasilnya harus 0 (nol). Bilangan itu adalah cek digit.

Algoritma Luhn

Sebagai contohnya adalah sebuah kartu kredit dengan nomor 4699 2600 1144 1506. Bila kita hitung 15 angka pertama sesuai dengan rumus dari algoritma Luhn, maka hasilnya sebagai berikut.

4 X 2 = 8, 6 X 1 = 6, 9 X 2 = 18 - 9 = 9, 9 X 1 = 9, 2 X 2 = 4, 6 X 1 = 6, 0 X 2 = 0, 0 X 1 = 0, 1 X 2 = 2, 1 X 1 = 1, 4 X 2 = 8, 4 X 1 = 4, 1 X 2 = 2, 5 X 1 = 5, dan 0 X 2 = 0.

Bila hasil perkalian itu dijumlahkan, hasilnya adalah 64 (8 + 6 + 9 + 9 + 4 + 6 + 0 + 0 + 2 + 1 + 8 + 4 + 2 + 5 + 0). Angka 64 ini ditambahkan suatu bilangan sehingga bila dimodulus dengan 10 akan menghasilkan 0 (nol). Bilangan itu adalah angka 6. Karena 64 + 6 = 70 lalu 70 dimodulus 10 hasilnya 0.

Sekarang lihat angka terakhir dari nomor kartu kredit tersebut. Bukankah angka 6? Nah, dengan cara inilah kita bisa memeriksa di awal proses apakah nomor kartu kredit yang dimasukkan itu benar atau salah.

Bagaimana kalau kartu yang dimasukkan tidak benar akibat dari salah ketik. Misalnya adalah 4699 3600 1144 1506, maka hasil perhitungannya adalah: 4 X 2 = 8, 6 X 1 = 6, 9 X 2 = 18 - 9 = 9, 9 X 1 = 9, 3 X 2 = 6, 6 X 1 = 6, 0 X 2 = 0, 0 X 1 = 0, 1 X 2 = 2, 1 X 1 = 1, 4 X 2 = 8, 4 X 1 = 4, 1 X 2 = 2, 5 X 1 = 5, 0 X 2 = 0, dan 6 X 1 = 6. Nilai cek digit disertakan dalam perhitungan ini. Hasil penjumlahan yang diperoleh adalah 72. Bila bilangan 72 ini dimodulus dengan 10 maka hasilnya tidak sama dengan 0 (nol). Ini berarti bahwa nomor kartu kredit tersebut tidak benar. Dengan demikian, kita bisa memeriksa apakah suatu nomor dari kartu kredit itu sudah benar atau tidak.

Btw kok gak ada Alogaritma SDSB yach...

2 comments:

ihsan said...

thanks :)

tp algoritma slain luhn ada ga yya.,
pengen tau.,,hhe.

Bertrand Prayoga Amalo said...

@ihsan: waduh, sori, ane kurang tw juga tuh... hehehe

barangkali ada yg bisa membantu?

support by