Analisis Implementasi Algoritma Luhn untuk Otentikasi Nomor Kartu Kredit pada Sistem Transaksi Online

BAB 3 ANALISIS DAN PERANCANGAN SISTEM

3.1 Analisis

Ada pun cara kerja algoritma Luhn sebagai berikut: 1. Mulai dari angka paling kanan sampai paling kiri, kalikan setiap angka pada urutan ganjil dengan 2. Untuk semua angka yang menjadi lebih besar dari atau sama dengan 10, kurangi angka hasil perkalian tadi dengan 9. Sebagai contoh, 1111 menjadi 2121, sementara 8763 menjadi 7733 dari 2x8 = 16 lalu 16-9 = 7 dan 2x6 = 12 lalu 12-9 = 3. 2. Jumlahkan semua angka yang ada. Sebagai contoh, jika 1111 menjadi 2121, maka 2+1+2+1 = 6; dan 8763 menjadi 7733, maka 7+7+3+3 = 20. 3. Jika total dari penjumlahan tadi dimoduluskan 10 kongruen dengan 0, maka nomor itu sah. Jadi, 1111 bukan angka yang sah 6 mod 10 ≠ 0 sementara 8763 adalah sah 20 mod 10 = 0.

3.1.1 Contoh Validasi Kartu Kredit

Sebagai contoh, kita ambil sebuah kartu VISA dengan nomor 4408 0412 3456 7890. Major Industry Identifier MII adalah 4 kategori bank finansial, issuer identifier adalah 440804 partner dari VISA, nomor rekeningnya adalah 123456789, dan angka untuk mengecek adalah 0. Mari kita coba pengecekan dengan algoritma Luhn pada 4408 0412 3456 7890. Universitas Sumatera Utara 1. Baris teratas adalah angka sebenarnya. 2. Baris kedua adalah x2. 3. Baris ketiga adalah -9 jika dibutuhkan. 4. Baris keempat adalah hasil akhir Jika di jumlahkan semua angka di baris keempat, akan mendapatkan hasil 67. 67 mod 10 ≠ 0. Sehingga bisa simpulkan bahwa 4408 0412 3456 7890 bukan merupakan angka yang benar untuk nomor kartu kredit. Dengan mengganti angka terakhir angka untuk mengecek dari 0 menjadi 3, kita mendapatkan angka 4408 0412 3456 7893, yang melewati pemeriksaan ini, karena hasil penjumlahan dari angka-angka di baris keempat menjadi 70, dan 70 mod 10 = 0. 4408 0412 3456 7893 adalah sebuah nomor kartu kredit yang valid. Sebagai contoh kedua, kita ambil angka 4417 1234 5678 9112 Major Industry Identifier MII adalah 4 kategori bank dan finansial, issuer identifier adalah 441712 partner dari VISA, nomor rekeningnya adalah 345678911, dan angka untuk mengecek adalah 2. Maka dapat dilakukan pemeriksaan pada nomor 4417 1234 5678 9112, seperti pada contoh sebelumnya. Kalau dijumlahkan semua angka pada baris terbawah, maka akan mendapatkan 69, lalu 69 mod 10 ≠ 0, sehingga dapat simpulkan nomor 4417 1234 5678 9112 adalah nomor kartu kredit yang tidak benar. Dengan mengubah angka pengecekan dari 2 menjadi 3, akan mendapatkan angka baru 4417 1234 5678 9113, yang melewati pemeriksaan dengan algoritma Luhn, karena hasil penjumlahan baris terbawah menjadi 70, yang bisa dibagi 10. maka nomor 4417 1234 5678 9113 adalah sebuah nomor kartu kredit yang benar. Universitas Sumatera Utara

3.1.2 Implementasi Algoritma Luhn Pada Kartu Kredit

Untuk memvalidasi sebuah nomor kartu kredit ada banyak algoritma yang digunakan dan salah satunya adalah Algoritma cek digit atau Luhn yang merupakan suatu algoritma yang digunakan untuk mengecek validitas suatu angka berdasarkan digit- digit yang membentuknya. Salah satu aplikasi sangat umum yang kita temui dalam kehidupan sehari-hari adalah proses pemasukan data barang belanjaan yang kita beli di supermarket yang kecil yang masih menggunakan input manual, tidak menggunakan barcode reader. Algoritma Luhn sebenarnya sederhana, hanya perlu tiga langkah untuk membuktikan apakah suatu kartu memenuhi algoritma cek digit Luhn, untuk kartu dengan jumlah digit genap misalnya Visa 16 digit, MasterCard 16 digit, dan Novus 16 digit caranya sebagai berikut : 1. Untuk setiap digit pada posisi yang ganjil untuk menghitung digit mulai dari kiri dengan yang paling kiri adalah digit ke-1, kalikan nilainya dengan dua, jika hasilnya lebih dari 9, kurangi hasilnya dengan 9. Jumlahkan semua angka yang telah didapat itu. 2. Untuk setiap digit pada posisi genap, jumlahkan semua nilainya dan tambahkan hasilnya dengan hasil langkah pertama. 3. Jika hasil pada langkah kedua habis dibagi 10, berarti nomor kartu tersebut sah dan jika hasil pembagian tidak habis dibagi dengan 10 maka nomor tersebut tidak sah sebagai sebuah nomor kartu kredit. Dan untuk kartu dengan jumlah digit yang ganjil misalnya Visa 13 digit, Amex 15 digit caranya sama, hanya saja pada langkah pertama yang dikalikan adalah digit pada posisi genap, dan pada langkah kedua yang dijumlahkan adalah digit pada posisi ganjil. Universitas Sumatera Utara

3.1.3 Penggunaan Algoritma Luhn

Jika ada sebuah kartu dengan nomor : 7889-8594-5435-5413 dan ingin tahu apakah angka ini benar-benar nomor kartu kredit yang sah atau tidak maka dapat dilakukan dengan langkah sebagai berikut : a. Mengalikan semua angka pada digit ganjil dengan dua dan mengurangkan hasilnya dengan 9 jika lebih dari 9, lalu dijumlahkan. Digit-digit pada posisi ganjil A01 = 7, A03 = 8, A05 = 8, A07 = 9, A09 = 5, A11 = 3, A13 = 5, A15 = 1 Jika dilakukan operasi kali dua dan kurangi 9 jika lebih dari 9 maka didapat: A01 = 7 x 2 = 14, karena lebih dari 9 maka hasilnya dikurangi 9 =14 – 9 = 5 A03 = 8 x 2 = 16, karena lebih dari 9 maka hasilnya dikurangi 9 = 16 – 9 = 7 A05 = 8 x 2 = 16, karena lebih dari 9 maka hasilnya dikurangi 9 = 16 – 9 = 7 A07 = 9 x 2 = 18, karena lebih dari 9 maka hasilnya dikurangi 9 = 18 – 9 = 9 A09 = 5 x 2 = 10, karena lebih dari 9 maka hasilnya dikurangi 9 = 10 – 9 = 1 A11= 3 x 2 = 6 , kurang dari 9 jadi tetap 6 A13 = 5 x 2 = 10, karena lebih dari 9 maka hasilnya dikurangi 9 = 10 – 9 = 1 A15 = 1 x 2 = 2 , kurang dari 9 jadi tetap 2 Maka : A01 + A03 + A05 + A07 + A09 + A11 + A13 + A15 = 5 + 7 + 7 + 9 + 1 + 6 + 1 + 2 = 38 b. Menjumlahkan semua digit pada posisi genap A02 = 8, A04 = 9, A06 = 5, A08 = 4, A10 = 4, A12 = 5, A14 = 4, A16 = 3 Maka 8 + 9 + 5 + 4 + 4 + 5 + 4 + 3 = 42 Bila hasil langkah a dan langkah 2 dijumlahkan didapat 38 + 42 = 80, karena 80 habis dibagi 10 80 mod 10 = 0 maka nomor tersebut sah sebagai nomor kartu kredit. Universitas Sumatera Utara

3.1.4 Penggunaan Algoritma Luhn pada Kartu Kredit BRI dan BII

Kartu kredit BRI dengan no : 5188 2822 0027 0111 Dapat dibuktikan dengan Algoritma Cek Digit LUHN apakah kartu ATM tersebut benar-benar sah atau tidak dengan langkah-langkah dibawah ini : a. Mengalikan semua digit ganjil dengan 2 dua jika hasilnya lebih dari 9 sembilan, maka hasilnya dikurangi 9 sembilan kemudian jumlahkan secara total. A01 = 5, A03 = 8, A05 = 2, A07 = 2, A09 = 0, A11 = 2, A13 = 0, A15=1 Jika dilakukan operasi kali 2 dua dan jika hasil lebih dari 9 sembilan maka dikurangi 9 sembilan maka didapat : A01 = 5 x 2 = 10 karena lebih dari 9 maka dikurangi 9 = 10 – 9 = 1 A03 = 8 x 2 = 16 karena lebih dari 9 maka dikurangi 9 = 16 – 9 = 7 A05 = 2 x 2 = 4 A07 = 2 x 2 = 4 A09 = 0 x 2 = 0 A11 = 2 x 2 = 4 A13 = 0 x 2 = 0 A15 = 1 x 2 = 2 Jumlah A01 + A03 + A05 + A07 + A09 + A11 + A13 + A15 = 1 + 7 + 4 + 4 + 0 + 4 + 0 + 2 = 22 b. Menjumlahkan semua digit pada posisi genap. A02 = 1, A04 = 8, A06 = 8, A08 = 2, A10 = 0, A12 = 7, A14 = 1, A16 = 1 Jumlah A02 + A04 + A06 + A08 + A10 + A12 + A14 + A16 = 1 + 8 + 8 + 2 + 0 + 7 + 1 + 1 = 28 Jumlah posisi ganjil + Jumlah posisi genap = 22 + 28 = 50 Universitas Sumatera Utara c. Hasil dari penjumlahan langkah a + langkah b dimodulo 10. 50 mod 10 = 0, maka nomor kartu diatas adalah sah. Kartu Kredit BII dengan no : 4265 3537 8757 7043 a. Mengalikan semua digit ganjil dengan 2 dua jika hasilnya lebih dari 9 sembilan, maka hasilnya dikurangi 9 sembilan kemudian jumlahkan secara total. A01=4, A03=6, A05=3, A07=3, A09=8, A11=5, A13=7, A15=4 Jika dilakukan operasi kali 2 dua dan jika hasil lebih dari 9 sembilan maka dikurangi 9 sembilan maka didapat : A01 = 4 x 2 = 8 A03 = 6 x 2 = 12 karena lebih dari 9 maka dikurangi 9 = 12 – 9 = 3 A05 = 3 x 2 = 6 A07 = 3 x 2 = 6 A09 = 8 x 2 = 16 karena lebih dari 9 maka dikurangi 9 = 16 – 9 = 7 A11 = 5 x 2 = 10 karena lebih dari 9 maka dikurangi 9 = 10 – 9 = 1 A13 = 7 x 2 = 14 karena lebih dari 9 maka dikurangi 9 = 14 - 9 = 5 A15 = 4 x 2 = 8 Jumlah A01 + A03 + A05 + A07 + A09 + A11 + A13 + A15 = 8 + 3 + 6 + 6 + 7 + 1 + 5 + 8 = 44 b. Menjumlahkan semua digit pada posisi genap. A02 = 2, A04 = 5, A06 = 5, A08 = 7, A10 = 7, A12 = 7, A14 = 0, A16 = 3 Jumlah A02 + A04 + A06 + A08 + A10 + A12 + A14 + A16 = 2 + 5 + 5 + 7 + 7 + 7 + 0 + 3 = 36 Jumlah Langkah a + Jumlah Langkah b = 36 + 44 = 80 c. Hasil dari penjumlahan langkah a + langkah b dimodulo 10. 80 mod 10 = 0, maka nomor kartu diatas adalah sah. Universitas Sumatera Utara

3.1.5 Flowchart Validasi Nomor Kartu Kredit dengan Algoritma Luhn

Mulai Nomor kartu kredit yang akan dicek Validasi Kartu dengan Algoritma Luhn Valid ? Kartu Kredit Tidak Valid T F Cek Jenis Kartu Kartu Kredit Valid Selesai Gambar 3.1 Flowchart Validasi Kartu Kredit Universitas Sumatera Utara Penjelasan flowchart gambar 3.1 dalam penerapan algoritma luhn pada validasi kartu kredit dalam sistem yang akan dirancang adalah sebagai berikut : a. Input data variabel Data variabel yang diperlukan dalam sistem sebagai input dalam algoritma Luhn adalah nomor kartu kredit . Adapun nomor kartu kredit yang digunakan dapat berjenis Visa, MasterCard, American Express, dan lain sebagainya. Nomor kartu kredit tersebut akan di validasi dengan algoritma Luhn. Jika nomor yang diberikan valid maka sistem akan mengecek jenis kartu yang digunakan, tapi jika nomor yang diberikan tidak valid maka sistem meminta kembali nomor kartu kredit yang valid. b. Menentukan valid atau tidak valid sebuah nomor kartu kredit Valid atau tidak valid sebuah nomor kartu kredit ditentukan oleh beberapa aturan. Adapun aturan- aturan yang digunakan berdasarkan algoritma Luhn yaitu : 1. Untuk setiap digit pada posisi yang ganjil untuk menghitung digit mulai dari kiri dengan yang paling kiri adalah digit ke-1, kalikan nilainya dengan dua, jika hasilnya lebih dari 9, kurangi hasilnya dengan 9. Jumlahkan semua angka yang telah didapat itu. 2. Untuk setiap digit pada posisi genap, jumlahkan semua nilainya dan tambahkan hasilnya dengan hasil langkah pertama. 3. Jika hasil pada langkah kedua habis dibagi 10, berarti nomor kartu tersebut sah dan jika hasil pembagian tidak habis dibagi dengan 10 maka nomor tersebut tidak sah sebagai sebuah nomor kartu kredit. Universitas Sumatera Utara

3.2 Perancangan Sistem