IMPLEMENTASI ALGORITMA LUHN UNTUK OTENTIKASI NOMOR KARTU KREDIT PADA SISTEM TRANSAKSI ONLINE
SKRIPSI
RONALD OKTAVINES PANDIA
071402003
PROGRAM STUDI TEKNOLOGI INFORMASI
FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI
UNIVERSITAS SUMATERA UTARA
MEDAN
IMPLEMENTASI ALGORITMA LUHN UNTUK OTENTIKASI NOMOR
KARTU KREDIT PADA SISTEM TRANSAKSI ONLINE
SKRIPSI
Diajukan untuk melengkapi tugas dan memenuhi syarat mencapai gelar Sarjana Teknologi Informasi
RONALD OKTAVINES PANDIA 071402003
PROGRAM STUDI TEKNOLOGI INFORMASI
FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA
PERSETUJUAN
Judul : IMPLEMENTASI ALGORITMA LUHN UNTUK
OTENTIKASI NOMOR KARTU KREDIT PADA SISTEM TRANSAKSI ONLINE.
Kategori : SKRIPSI
Nama : RONALD OKTAVINES PANDIA
Nomor Induk Mahasiswa : 071402003
Program Studi : SARJANA (S1) TEKNOLOGI INFORMASI
Departemen : TEKNOLOGI INFORMASI
Fakultas : ILMU KOMPUTER DAN TEKNOLOGI
INFORMASI UNIVERSITAS SUMATERA UTARA
Diluluskan di
Medan, Februari 2013
Komisi Pembimbing :
Pembimbing 2 Pembimbing 1
Romi Fadillah Rahmat, B.Comp.Sc.M.Sc Dr. Poltak Sihombing, M.Kom NIP. 19860303 201012 1 004 NIP. 19620317 199103 1 001
Diketahui/Disetujui oleh
Program Studi S1 Teknologi Informasi Fasilkom-TI USU Ketua,
PERNYATAAN
IMPLEMENTASI ALGORITMA LUHN UNTUK OTENTIKASI NOMOR KARTU KREDIT PADA SISTEM TRANSAKSI ONLINE
SKRIPSI
Saya mengakui bahwa skripsi ini adalah hasil karya saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing disebutkan sumbernya.
Medan, 18 Februari 2013
PENGHARGAAN
Puji dan syukur penulis panjatkan kepada Tuhan Yang Maha Esa yang telah
melimpahkan berkat dan kasihNya sehingga penulis dapat menyelesaikan skripsi ini.
Penulis sangat menyadari bahwa Tuhanlah yang bekerja dan berperan memberikan
kekuatan dalam menghadapi segala proses sampai skripsi ini dapat diselesaikan.
Dalam menyelesaikan skripsi ini penulis menyadari banyak mendapatkan
bantuan dari berbagai pihak baik bantuan secara materi maupun moril. Pada
kesempatan ini dengan segala kerendahan hati, penulis ingin mengucapkan terima
kasih yang sedalam-dalamnya kepada:
1. Orang tua penulis, yaitu Ibu saya yang luar biasa Roslyna Br Ginting, SH yang
tetap sabar dan kuat dalam mendukung setiap cita-cita saya “Thank you so
much Mom”, Abang saya Rio Afrianta Pandia, dan adik saya Trisa Frilyani
yang selalu mendukung saya.
2. Bapak Prof. Muhammad Zarlis, selaku dekan Fakultas Ilmu Komputer dan
Teknologi Informasi Universitas Sumatera Utara.
3. Bapak Dr.Poltak Sihombing,M.Kom, selaku dosen pembimbing 1 yang telah
banyak memberikan masukan dan bersedia meluangkan waktu, tenaga dan
pikiran selama mengerjakan skripsi ini.
4. Bapak Romi Fadillah Rahmat B.Comp.Sc,M.Sc, selaku dosen pembimbing 2
yang juga sangat membantu memberikan saran dan masukan serta bersedia
meluangkan waktunya.
5. Ketua dan Sekretaris Jurusan Prof. Dr. Opim Salim, MSc dan Drs.
Sawaluddin, M.IT.
6. Bapak M.Fadly Syahputra B.Comp.Sc,M.Sc, dan Bapak Dedy Arisandi,
ST.M.Kom selaku dosen pembanding dan penguji yang telah banyak
memberikan petunjuk, saran dan kritik dalam menyelesaikan skripsi ini.
7. Seluruh Dosen yang mengajar pada program studi Teknologi Informasi
8. Biro Administrasi Kemahasiswaan yang telah memberikan izin, dan informasi
selama melakukan penelitian.
9. Novita yang selalu memberikan dukungan dan nasehat meskipun terkadang dia
marah- marah memberikan nasehat, tapi “Thanks so much for You”.
10.Teman-teman seperjuangan jurusan Teknologi Informasi 2007 : Hendrik,
Azaria, Ardani, Sabrina, Andreni, Ardani, Ita, Agustina, dan Faisal.
11.Seluruh teman-teman sejawat yang tidak dapat disebutkan satu persatu.
Penulis menyadari bahwa hasil penulisan skripsi ini masih banyak kesalahan
dan jauh dari sempurna. Oleh karena itu, kritik dan saran dari pembaca sangatlah
penulis harapkan bagi perbaikan dan kesempurnaan di masa yang akan datang. Penulis
mohon maaf apabila terdapat kekurangan dan kesalahan dalam penulisan skripsi ini.
Akhir kata, penulis ucapkan terima kasih kepada semua pihak yang terkait
dalam penyelesaian skripsi ini yang tidak bisa disebutkan satu persatu, biarlah Tuhan
ABSTRAK
Peningkatan kebutuhan konsumen dalam melakukan transaksi secara online menyebabkan penggunaan kartu kredit juga semakin meningkat. Keamanan sebuah kartu kredit sangatlah rapuh sehingga menyebabkan sering terjadinya kesalahan dalam memasukkan nomor kartu kredit dan munculnya kecurangan dari pihak – pihak lain. Oleh sebab itu, penulis membuat sebuah sistem transaksi online dengan mengimplementasikan algoritma Luhn untuk otentikasi nomor kartu kredit. Mengapa penulis memilih Algoritma Luhn sebagai metode untuk otentikasi, karena Algoritma luhn dapat membuktikan validitas sebuah nomor kartu kredit yang sah. Validasi dilakukan berdasarkan urutan nomor kartu kredit . Secara umum, sistem telah dapat memberikan solusi untuk mengurangi kesalahan dan kecurangan dalam penggunaan kartu kredit.
LUHN ALGORITHM IMPLEMENTATION FOR AUTHENTICATION CREDIT CARD NUMBER ON SYSTEM TRANSACTION ONLINE
ABSTRACT
Increasing consumer demand in conducting online transactions using credit cards has also increased. Security of a credit card is very fragile, causing frequent errors in entering the credit card number and the appearance of corruption of the party - the other party. Therefore, the authors make an online transaction system by implementing the Luhn algorithm for authentication of credit card numbers. Why did the author choose the Luhn algorithm as a method of authentication, because luhn algorithm can prove the validity of a valid credit card number. Validation is done by the order of credit card numbers. Generally, the system has been able to provide solutions to reduce errors and fraudulent use of a credit card.
DAFTAR ISI
Halaman
Persetujuan ii
Pernyataan iii
Penghargaan iv
Abstrak vi
Abstract vii
Daftar Isi viii
Daftar Tabel xi
Daftar Gambar xii
Bab 1 PENDAHULUAN 1
1.1 Latar Belakang 1
1.2 Rumusan Masalah 3
1.3 Batasan Masalah 3
1.4 Tujuan Penelitian 3
1.5 Manfaat penelitian 3
1.6 Metode Penelitian 4
1.7 Sistematika Penulisan 5
Bab 2 LANDASAN TEORI 6
2.1Pengertian Sistem 6
2.1.1 Pengertian Informasi 6
2.1.2 Kualitas Informasi 7
2.1.3 Pengertian Sistem Informasi 7
2.1.4 Komponen Sistem Informasi 8
2.2 Pengertian Basis Data (Database) 10
2.3 Unified Modeling Language (UML) 12
2.5.1 Perusahaan yang mengeluarkan Kartu Kredit 21
2.5.2 Bentuk Fisik Kartu Kredit 22
2.5.3 Algoritma Luhn pada pembuatan Nomor Kartu Kredit 25
2.5.4 Algoritma Luhn untuk validasi Nomor seri IMEI 26
2.6 Bahasa Pemrograman PHP 28
2.6.1 Keunggulan Pemograman PHP 29
Bab 3 ANALISIS DAN PERANCANGAN SISTEM 31
3.1 Analisis 31
3.1.1 Contoh Validasi Kartu Kredit 31
3.1.2 Implementasi Algoritma Luhn pada Kartu Kredit 33
3.3.1 Data Flow Diagram 54
3.3.2 Entity Relationship Diagram (ERD) 56
Bab 4 IMPLEMENTASI DAN PENGUJIAN SISTEM 58
4.1. Implementasi Sistem 58
4.2 Pengujian Sistem 59
4.2.1 Pengujian Sistem pada Lingkungan User 59
4.2.2 Pengujian Sistem pada Lingkungan Administrator 65
Bab 5 KESIMPULAN DAN SARAN 69
5.1. Kesimpulan 69
5.2. Saran 69
DAFTAR PUSTAKA 70
DAFTAR TABEL
Halaman
Tabel 2.1 Elemen –elemen Sequence Diagram 16
Tabel 2.2 Jenis Kartu Kredit 21
Tabel 2.3 Perusahaan yang Mengeluarkan Kartu Kredit 22
Tabel 2.4 Penelitian Sebelumnya 27
Tabel 2.5 Penulisan Script PHP 30
Tabel 3.1 Use case Spesifikasi Lihat Kategori 40
Tabel 3.2 Use case Spesifikasi User Login 41
Tabel 3.3 Use case Spesifikasi User Register 41
Tabel 3.4 Use case Spesifikasi User Search Produk 42
Tabel 3.5 Use case Spesifikasi User Pesan Produk 43
Tabel 3.6 Use case Spesifikasi User Tambah Pesanan Produk 43
Tabel 3.7 Use case Spesifikasi User CheckOut 44
DAFTAR GAMBAR
Gambar 3.9 Rancangan Menu Administrator 49
Gambar 4.4 Halaman Form Order 61
Gambar 4.5 Halaman Pesanan Sementara 62
Gambar 4.6 Halaman Proses CheckOut 62
Gambar 4.7 Halaman Payment Confirm Valid 63
Gambar 4.8 Halaman Payment Confirm Tidak Valid 63
Gambar 4.9 Halaman Search Produk 64
Gambar 4.10 Halaman Search Result 64
Gambar 4.11 Halaman Login Admin 65
Gambar 4.12 Halaman Menu Administrator 65
Gambar 4.13 Halaman Tambah Kategori Produk 66
Gambar 4.14 Halaman Ubah Kategori Produk 66
Gambar 4.15 Halaman Hapus Kategori Produk 67
Gambar 4.16 Halaman Tambah Data Produk 67
LUHN ALGORITHM IMPLEMENTATION FOR AUTHENTICATION CREDIT CARD NUMBER ON SYSTEM TRANSACTION ONLINE
ABSTRACT
Increasing consumer demand in conducting online transactions using credit cards has also increased. Security of a credit card is very fragile, causing frequent errors in entering the credit card number and the appearance of corruption of the party - the other party. Therefore, the authors make an online transaction system by implementing the Luhn algorithm for authentication of credit card numbers. Why did the author choose the Luhn algorithm as a method of authentication, because luhn algorithm can prove the validity of a valid credit card number. Validation is done by the order of credit card numbers. Generally, the system has been able to provide solutions to reduce errors and fraudulent use of a credit card.
ABSTRAK
Peningkatan kebutuhan konsumen dalam melakukan transaksi secara online menyebabkan penggunaan kartu kredit juga semakin meningkat. Keamanan sebuah kartu kredit sangatlah rapuh sehingga menyebabkan sering terjadinya kesalahan dalam memasukkan nomor kartu kredit dan munculnya kecurangan dari pihak – pihak lain. Oleh sebab itu, penulis membuat sebuah sistem transaksi online dengan mengimplementasikan algoritma Luhn untuk otentikasi nomor kartu kredit. Mengapa penulis memilih Algoritma Luhn sebagai metode untuk otentikasi, karena Algoritma luhn dapat membuktikan validitas sebuah nomor kartu kredit yang sah. Validasi dilakukan berdasarkan urutan nomor kartu kredit . Secara umum, sistem telah dapat memberikan solusi untuk mengurangi kesalahan dan kecurangan dalam penggunaan kartu kredit.
BAB 1
PENDAHULUAN
1.1 Latar Belakang
Meningkatnya kebutuhan untuk melakukan transaksi online dalam dekade terakhir ini
mendorong pertumbuhan aplikasi web yang mampu melayani transaksi yang cepat
dan murah. Salah satu solusinya adalah penggunaan kartu kredit. Namun, dilihat dari
segi keamanannya, keamanan kartu kredit sangat rapuh. Dalam melakukan
transaksi pembayaran online, seseorang bisa saja memasukkan nomor palsu (tidak
valid) ke dalam form transaksi, untuk itu perlu dilakukan validasi terlebih dahulu yang
bisa langsung diterapkan pada aplikasi web untuk mengecek apakah nomor yang
diajukan oleh pelanggan valid atau tidak sebelum dilakukan authorization (
pengesahan pembayaran) lebih lanjut (Tripurnasatria,2008).
Untuk melakukan validasi ini, tidak diperlukan algoritma validasi yang
rumit. Cukup dengan memanfaatkan salah satu algoritma yang sangat populer untuk
validasi nomor kartu, yaitu algoritma Luhn. Algoritma ini terbilang sangat sederhana
karena hanya memanfaatkan sifat kongruen dari operasi modulo (dalam hal ini
modulo 10), namun cukup ampuh untuk menjamin nomor kartu tersebut sudah valid
atau tidak (Tripurnasatria,2008).
Keamanan kartu kredit tergantung pada kerahasiaan nomor kartunya. Ini
berarti bahwa ketika seseorang (selain pemegang kartu) membaca nomor kartu,
keamanannya akan menjadi lemah. Karena hal ini terjadi hampir sepanjang waktu
yaitu ketika transaksi dilakukan, maka dapat dikatakan keamanan kartu kredit
secara umum sangat lemah. Namun, seorang user yang hanya mengetahui nomor
menerima nomor kartu kredit tanpa verifikasi tambahan untuk pengiriman barang
yang dipesan, namun alamat pengiriman akan dicatat, jadi penjahat kartu kredit
harus memberikan alamat anonymous (bukan miliknya) dan mengumpulkan
barang hasil pesanannya tersebut tanpa diketahui. Beberapa merchant akan
menerima pembayaran dengan memberikan nomor kartu kredit hanya untuk
pembelian di tempat (toko) karena akses mensyaratkan kartunya sendiri
diperlihatkan, dan harus memberikan tanda tangan.
Kartu yang dicuri dapat dibatalkan (di-block), dan jika hal ini dilakukan
dengan sangat cepat, tidak ada perampokan yang dapat berlangsung terhadap
kartu tersebut. Untuk pembelian melalui internet, level keamanannya sama dengan
lewat pengiriman (hanya mensyaratkan kita mengetahui nomor kartu) sehingga
pencuri hanya perlu memikirkan bagaimana mengumpulkan barang hasil pesanan
tanpa diketahui. Salah satu teknik yang paling aman untuk mencegah hal ini adalah
dengan mensyaratkan PIN keamanan pada kartu (seperti pada kartu telepon selular)
yang tentu saja harus menyertakan kartunya.
Algoritma Luhn (sering juga disebut Formula Luhn, atau algoritma mod 10)
adalah formula sederhana untuk memvalidasi berbagai macam nomor kartu, misalnya
kartu kredit. Formula ini diciptakan oleh seorang ilmuwan dari IBM bernama Hans
Peter Luhn. Algoritma ini merupakan public domain dan sangat banyak digunakan
pada saat ini. Algoritma ini tidak ditujukan sebagai fungsi hash yang aman secara
kriptografis; algoritma ini dirancang untuk melindungi terhadap kesalahan teknis,
bukan serangan yang berbahaya. Sebagian besar kartu kredit dan berbagai nomor
identifikasi yang dikeluarkan pemerintah di berbagai negara menggunakan algoritma
ini sebagai metode sederhana untuk membedakan nomor yang valid dari berbagai
1.2 Rumusan Masalah
Adapun Rumusan dari permasalahan dalam skripsi ini adalah Bagaimana agar sistem
transaksi online yang dibangun menjadi aman dan tidak disalahgunakan oleh pihak –
pihak lain.
1.3 Batasan Masalah
Adapun batasan masalah dari skripsi ini adalah :
1. Sistem yang dibuat berfungsi untuk validasi nomor kartu kredit.
2. Hasil validasi yang dihasilkan berupa status kartu (Valid atau Tidak), Nomor
Kartu Kredit, Nama Pemilik Kartu Kredit, Nama Bank yang mengeluarkan
kartu kredit tersebut, dan Jenis Kartu Kredit yang digunakan seperti (Visa,
Master Card, dan lain-lain).
3. Sistem mengimplementasikan algoritma Luhn sebagai metode untuk
menentukan nomor kartu kredit yang valid atau tidak.
4. Sistem diimplementasikan dalam bentuk perangkat lunak menggunakan PHP
dan menggunakan MySQL sebagai Database Management System (DBMS).
1.4 Tujuan Penelitian
Adapun tujuan dari pembuatan skripsi ini adalah untuk menciptakan sebuah
e-commerce atau sistem transaksi online yang aman.
1.5 Manfaat Penelitian
Adapun manfaat dari pembuatan skripsi ini adalah :
1. Mengetahui valid atau tidaknya sebuah nomor kartu kredit.
2. Mengetahui Jenis Kartu Kredit dari sebuah Nomor kartu kredit seperti (Visa,
Master Card, dan lain-lain).
3. Mengetahui Nama Pemilik kartu kredit .
1.6 Metode Penelitian
Dalam penulisan skripsi ini, penulis melakukan beberapa hal untuk mendapatkan data
yang diperlukan, antara lain:
1. Metode Pengumpulan Data
Beberapa metode pengumpulan data yang dilakukan oleh penulis yaitu:
a. Studi Literatur
Tahapan ini dilakukan dengan mempelajari sumber-sumber seperti buku-buku
referensi yang berkaitan dengan skripsi ini maupun internet.
2. Metode Perancangan Sistem
a. Analisis Kebutuhan
Analisis kebutuhan adalah yaitu analisa Metode Luhn yang dilakukan untuk
menentukan input dan output yang diinginkan berdasarkan rumus yang ada.
b. Analisis dan Perancangan Sistem
Perancangan sistem merupakan tahapan yang dilakukan untuk membuat
sebuah rancangan program berdasarkan input dan output yang diinginkan.
c. Implementasi Sistem
Setelah pembuatan perancangan sistem maka langkah selanjutnya adalah
mengimplementasi hasil perancangan ke dalam program
d. Pengujian Sistem
Pengujian merupakan langkah setelah algoritma Luhn dimplementasikan untuk
mengetahui kesalahan atau trouble yang mungkin terjadi, sampai dipastikan
sistem dapat berjalan dengan sempurna.
e. Penulisan laporan penelitian
Laporan penelitian merupakan rangkuman dari penelitian yang dilakukan
untuk digunakan sebagai bukti proses dari penelitian yang telah dilakukan dari
1.7 Sistematika Penulisan
Adapun langkah-langkah dalam menyelesaikan penelitian ini adalah sebagai berikut:
BAB 1 : PENDAHULUAN
Bab ini menjelaskan mengenai latar belakang pemilihan judul skripsi “
Analisis dan Implementasi Algoritma Luhn untuk Otentikasi Nomor
Kartu Kredit Pada Sistem Transaksi Online”.rumusan masalah, batasan
masalah, tujuan penelitian, manfaat penelitian, metode penelitian, dan
sistematika penulisan.
BAB 2 : LANDASAN TEORI
Bab ini membahas mengenai teori-teori yang berkaitan dengan
perancangan sistem Otentikasi Nomor Kartu Kredit dengan
menggunakan algoritma Luhn pada Sistem Transaksi Online dan teori
lainnya yang mendukung dalam pembuatan aplikasi.
BAB 3 : ANALISIS DAN PERANCANGAN SISTEM
Bab ini terdiri dari analisis sistem dan perancangan sistem untuk
otentikasi nomor kartu kredit. Pada bagian analisis sistem dimuat
uraian tentang analisis data sistem (seperti analisis cara kerja algoritma
Luhn) dan komponen sistem. Pada bagian perancangan sistem,
membahas tentang perancangan variabel dan perancangan form yang
akan diimplementasikan pada sistem.
BAB 4 : IMPLEMENTASI DAN PENGUJIAN
Bab ini membahas bagaimana mengimplementasikan aplikasi yang
telah dirancang ke dalam bahasa pemrograman dan menguji aplikasi
yang telah dibangun.
BAB 5 : KESIMPULAN DAN SARAN
Bab ini memuat kesimpulan dari keseluruhan uraian bab-bab
sebelumnya dan saran-saran yang diharapkan dapat bermanfaat dalam
BAB 2
LANDASAN TEORI
2.1Pengertian Sistem
Sistem berasal dari bahasa yunani ”System” artinya satuan yang saling bergantung dan
saling bekerja sama untuk menghasilkan suatu metode, prosedur serta teknik yang
digabung dan diatur sedemikian rupa sehingga menjadi suatu kesatuan yang berfungsi
mencapai suatu tujuan tertentu.
Sistem adalah sekelompok elemen-elemen yang terintegrasi dengan maksud
yang sama untuk mencapai suatu tujuan (Mcleod,2004).
Sistem adalah sekelompok unsur yang erat hubunganya satu dengan yang lain,
yang berfungsi bersama-sama untuk mencapai tujuan tertentu (Sutabri,2005).
2.1.1Pengertian Informasi
Informasi adalah hasil dari pengolahan data dalam bentuk yang lebih berguna dan
lebih berarti bagi penerimanya yang menggambarkan suatu kejadian–kejadian yang
nyata sehingga dapat digunakan sebagai pengambilan keputusan.
Informasi adalah data yang telah terolah dan sifatnya menjadi data yang lain
yang bermanfaat (Supriyanto,2005).
Informasi adalah rangkaian data yang mempunyai sifat sementara, tergantung
dengan waktu, mampu memberikan kejutan atau surprise pada yang menerimanya
(Witarto,2004).
Informasi merupakan data yang telah dibentuk kedalam suatu format yang
mempunyai arti dan berguna bagi manusia (Loudon, 2005).
2.1.2Kualitas Informasi
Kualitas suatu informasi tergantung dari 3 (tiga) hal yaitu,informasi harus akurat
(accurate), tepat waktu (timelines), dan relevan (relevance) seperti yang diungkapkan
oleh Kusrini & Andri (2007) :
1. Akurat (accurate)
Berarti informasi harus bebas dari kesalahan-kesalahan dan tidak menyesatkan
serta harus jelas mencerminkan maksudnya, informasi harus akurat, karena
dari sumber informasi sampai kepada si penerima informasi kemungkinan
banyak terjadi gangguan yang dapat mengubah informasi tersebut.
2. Tepat waktu (timelines)
Berarti informasi yang datang pada sipenerima tidak boleh terlambat.
Informasi sudah usang tidak mempunyai nilai lagi, sebab informasi
mempunyai landasan di dalam pengambilan keputusan.
3. Relevan (relevance)
Berarti informasi tersebut mempunyai manfaat untuk pemakainya. relevansi
informasi untuk orang satu dengan yang lainya berbeda.
2.1.3Pengertian Sistem Informasi
Sistem informasi dapat didefinisikan sebagai suatu sistem dalam suatu organisasi yang
dan pengendalian yang ditujukan untuk mendapatkan jalur komunikasi yang penting
dengan tujuan sebagai pengambilan keputusan.
Sistem informasi merupakan satuan komponen yang saling berhubungan yang
mengumpulkan (mendapatkan kembali), memproses, menyimpan, mendistribusikan
informasi untuk mendukung pengambilan keputusan dan kendali dalam suatu
organisasi (Loudon,2005).
Sistem informasi adalah suatu sistem di dalam suatu organisasi yang
mempertemukan kebutuhan pengolahan transaksi harian yang mendukung fungsi
operasi organisasi yang bersifat manajerial dengan kegiatan strategis dari suatu
organisasi untuk dapat menyediakan pihak luartertentu dengan laporan-laporan yang
diperlukan (Kusrini & Andri,2007).
2.1.4Komponen Sistem Informasi
Sistem informasi terdiri dari komponen-komponen yang disebut dengan istilah blok
bangunan (Building Block) yaitu Blok Masukan (Input Block), Blok Model (Model
Block), Blok Keluaran (Output Block), Blok Teknologi (Technologi Block), Blok
Dasar Data (Database Block) dan Blok Kendali (Control Block) seperti yang
diungkapkan oleh Kusrini & Andri (2007).
Sebagai sistem, keenam blok tersebut masing-masing saling berinteraksi satu
dengan yang lainnya membentuk satu kesatuan untuk mencapai suatu sasaran.
1. Blok Masukan (Input Block)
Input mewakili data yang masuk kedalam sistem informasi. Input disini
termasuk metode-metode dan media untuk menangkap data yang dimasukkan,
2. Blok model (Model Block)
Blok ini terdiri dari kombinasi prosedur, logika dan model matematika yang
akan memanipulasi data input dan data tersimpan di dasar data dengan cara
yang sudah tertentu untuk menghasilkan keluaran yang diinginkan.
3. Blok Keluaran (Output Block)
Produk dari sistem informasi adalah keluaran yang merupakan informasi yang
berkualitas dan dokumentasi yang berguna untuk semua tingkatan manajemen
serta semua pemakai sistem.
4. Blok Teknologi (Tecnologi Block)
Teknologi merupakan “Kotak Tool” dari pekerjaan sistem informasi.
Teknologi digunakan untuk menerima input, menjalankn model menyimpan
dan mengakses data, menghubungkan dan mengirimkan keluaran dan
membantu pengendalian dari sistem secara keseluruhan. Teknologi terdiri dari
bagian utama yaitu:
a. Teknisi (Humanware dan Brainware)
b. Perangkat Lunak (Software)
c. Perangkat keras (Hardware)
Teknisi dapat berupa orang-orang yang mengetahui teknologi dan
membantunya untuk dapat beroperasi.
5. Blok Basis Data (Database Block)
Basis data merupakan komponen dari data yang saling terhubung satu dengan
yang lainnya, tersimpan di perangkat lunak untuk memanipulasinya. Data di
dalam basis data perlu diorganisasikan sedemikian rupa supaya informasi yang
dihasilkan berkualitas.
6. Blok Kendali (Control Block)
Agar sistem dapat berjalan sesuai dengan yang diinginkan maka perlu
diterapkan pengendalian-pengendalian di dalamnya. Banyak hal yang dapat
merusak sistem informasi seperti misalnya bencana alam, api, temparatur, air,
2.2Pengertian Basis Data (Database)
Basis data (database) adalah suatu data yang terintegrasi, diorganisasikan, dan
disimpan dalam suatu cara yang memudahkan untuk pengambilan kembali.
Basis data adalah suatu susunan kumpulan data operasional lengkap dari suatu
organisasi/perusahaan yang terorganisir/dikelola dan disimpan secara terintegrasi
dengan menggunakan metode tertentu menggunakan komputer sehingga mampu
menyediakan informasi optimal yang diperlukan pemakainya (Marlinda, 2004).
Database adalah suatu pengorganisasian sekumpulan data yang saling terkait
sehingga memudahkan aktivitas untuk memperoleh informasi (Kadir,2003).
2.2.1Relasi Data atau ERD (Entity Relation data)
Entitiy Relation Diagram berfungsi untuk menggambarkan relasi dari dua file atau
dua tabel yang dapat digolongkan menjadi dalam tiga macam bentuk relasi, yaitu
satu-satu, satu-banyak, dan banyak ke banyak (Sutedjo,2006). Penggambaran ini akan
membantu analisa sistem dalam melakukan perancangan proses yang kelak akan
dituangkan dalam bentuk garis-garis program.
Relasi adalah hubungan antara satu file atau tabel yang lain dalam suatu
database, atau hubungan antara dua atribut dalam suatu file. Relasi antara dua file atau
tabel dapat di kategorikan menjadi tiga bagian yaitu:
a. Relasi one to one
Merupakan hubungan antara file pertama dengan file kedua atau hubungan
Contoh
antara atribut pertama dengan atribut kedua adalah satu berbanding banyak
tetapi tidak sebaliknya.
Merupakan hubungan antara file pertama dan file kedua atau hubungan antara
atribut pertama dengan atribut kedua adalah banyak berbanding banyak dan
Contoh:
Gambar 2.3 Relasi many to many
2.3Unified Modeling Language (UML)
Unified Modeling Language (UML) adalah sebuah “bahasa” yang telah menjadi
standard industri untuk visualisasi, merancang dan mendokumentasikan sistem piranti
lunak (Dharwiyanti, S dan Wahono, S.R., 2003). Dengan menggunakan UML kita
dapat membuat model untuk semua jenis aplikasi piranti lunak, dimana aplikasi
tersebut dapat berjalan pada piranti keras, sistem operasi dan jaringan apapun serta
ditulis dalam bahasa pemrograman apapun. Tetapi karena UML juga menggunakan
class dan operation dalam konsep dasarnya, maka UML lebih cocok untuk penulisan
piranti lunak dalam bahasa berorientasi objek. Unified Modeling Language (UML)
bukanlah :
1. Bahasa pemrograman visual, tapi bahasa pemodelan visual.
2. Spesifikasi kakas, tetapi spesifikasi bahasa pemodelan.
3. Proses, tetapi yang memungkinkan proses-proses.
Menurut Hariyanto, B (2004) tujuan perancangan UML adalah:
1. Menyediakan bahasa pemodelan visual yang ekspresif dan siap pakai untuk
mengembangkan dan pertukaran model-model yang berarti.
2. Menyediakan mekanisme perluasan dan spesialisasi untuk memperluas
konsep-konsep inti.
3. Mendukung spesifikasi independen bahasa pemrograman dan pengembangan
tertentu.
4. Menyediakan basis formal untuk pemahaman bahasa pemodelan.
5. Mendukung konsep-konsep pengembangan level lebih tinggi seperti komponen,
kolaborasi, framework dan pattern.
Unified Modeling Language (UML) menyediakan sejumlah diagram untuk
menggambarkan pemodelan berorientasi objek yang dilakukan. UML membagi
diagram menjadi dua tipe yaitu :
1. Diagram Struktur
Diagram ini untuk memvisualisasi, menspesifikasi, membangun dan
mendokumentasikan aspek statik dari sistem. Diagram struktur di UML terdiri dari :
a. Diagram Kelas (Class diagram)
b. Diagram Objek (Object diagram)
c. Diagram komponen (Component Diagram)
d. Diagram deployment (Deployment Diagram)
2. Diagram perilaku
Diagram ini untuk memvisualisasi, menspesifikasi, membangun dan
mendokumentasikan aspek dinamis dari sistem. Diagram struktur di UML terdiri dari :
e. Diagram use-case (Use case diagram)
f. Diagram sekuen (sequence diagram)
g. Diagram kolaborasi (collaboration diagram)
h. Diagram statechart (Statechart diagram)
2.3.1 Diagram Use case
Diagram Use case (use case diagram) merupakan salah satu diagram untuk
memodelkan aspek perilaku sistem atau digunakan untuk mendeskripsikan apa yang
seharusnya dilakukan oleh sistem (Hariyanto, B. 2004). Diagram use case terdiri dari
beberapa elemen yaitu:
1. Aktor
Aktor adalah pemakai sistem, dapat berupa manusia atau sistem terotomatisasi
lain. Aktor adalah sesuatu atau seseorang yang berinteraksi dengan sistem, yaitu
siapa dan apa yang menggunakan sistem. Aktor adalah tipe (kelas) bukan instan.
Aktor mempresentasikan peran bukan pemakai individu dari sistem. Aktor
memiliki nama, nama yang dipilih seharusnya menyatakan peran aktor.
Gambar 2.4 Aktor – aktor Use case
2. Use-case
Use case adalah cara spesifik penggunaan sistem oleh aktor. Use case melibatkan
interaksi antara aktor-aktor dan sistem. Use case mengemukakan suatu kerja yang
tampak.
User Admin
User
3. Keterhubungan
Keterhubungan antar use case dengan use case lain berupa generalisasi antara use
case yaitu :
a. include, perilaku use case merupakan bagian dari use case lain.
b. extend, perilaku use case memperluas perilaku use case yang lain.
Gambar 2.6 Aktor ,Use case dan Keterhubungan
2.3.2Spesifikasi Use case
Spesifikasi use case memberikan gambaran lengkap spesifikasi tekstual pada use case.
Spesifikasi use case sistem rekomendasi dilakukan berdasarkan case yang ada pada
use case diagram. Spesifikasi use case biasanya terdiri dari :
a. Deskripsi singkat case, yang menjelaskan apa yang terjadi pada case.
b. Pra kondisi yaitu keadaan apa yang terjadi sebelum case berlangsung.
c. Karakteristik yang dimiliki oleh case.
d. Skenario (flow of event) yaitu menjelaskan cara kerja case mulai dari awal hingga.
2.3.3Diagram Sekuen
Diagram sekuen (sequence diagram) menggambarkan interaksi antar objek di dalam
dan di sekitar sistem (termasuk pengguna, display dan sebagainya) berupa message
(pesan) yang digambarkan terhadap waktu.
Diagram sekuen digunakan untuk memodelkan scenario penggunaan. Skenario
penggunaan adalah barisan kejadian yang terjadi selama satu eksekusi sistem.
Diagram sekuen menunjukkan objek sebagai garis vertical dan tiap kejadian sebagai
panah horizontal dari objek pengirim ke objek penerima. Waktu berlalu dari atas ke
bawah dengan lama waktu tidak relevan.
Diagram sekuen (sequence diagram) memeiliki beberapa elemen yang terdiri
dari :
Tabel 2.1 Elemen-elemen Sequence Diagram
Nama Penjelasan Gambar
1. Objek lifeline Menggambarkan batasan
objek Object1
2. Boundary berhubungan dengan proses input output ataupun interface.
Halaman Utama (boundary)
3. Controller berhubungan dengan proses.
4. Entity berhubungan dengan
input-output data Entity Lokasi Wisata
(entity)
5. Massage arrow menggambarkan alir proses, perintah atau pengiriman data.
Message
message(call)
Message(return)
6. Aktivasi (activation) menggambarkan aktivitas objek.
7. Actor Menggambarkan aktor
sebagai objek.
User
2.3.4 Otentikasi
Otentikasi merupakan proses validasi user pada saat memasuki sistem, nama dan
password dari user di cek melalui proses yang mengecek langsung ke daftar mereka
yang diberikan hak untuk memasuki sistem tersebut. Autorisasi ini diatur oleh
administrator, webmaster atau pemilik situs (pemegang hak tertinggi atau mereka
yang ditunjuk di sistem tersebut). Untuk proses ini masing-masing user akan di cek
dari data yang diberikannya seperti nama (dalam hal ini adalah email), dan password .
Otentikasi merupakan salah satu langkah untuk menentukan bahwa seseorang
tersebut autentik (dapat dipercaya sebagai bukti). Melakukan otentikasi terhadap
sebuah objek yaitu melakukan konfirmasi terhadap kebenarannya, sedangkan
melakukan otentikasi terhadap seseorang biasanya dengan cara verifikasi identitasnya.
Pada sistem komputer, otentikasi biasanya terjadi pada saat login atau permintaan
Selain itu otentikasi juga merupakan salah satu metode yang digunakan untuk
menyediakan bukti bahwa dokumen tertentu yang diterima secara elektronik
benar-benar datang dari orang yang bersangkutan dan tak berubah. Caranya adalah dengan
mengirimkan suatu kode tertentu melaui e-mail dan kemudian pemilik e-mail
me-replay email tersebut atau mengetikan kode yang telah dikirimkan. Otentikasi server
berfungsi untuk mengenali user yang berintegrasi ke jaringan dan memuat semua
informasi dari user tersebut, dalam praktek biasanya otentikasi server mempunyai
backup yang berfungsi untuk menjaga jika server itu ada masalah sehingga jaringan
dan pelayanan tidak terganggu.
Dalam aplikasi web dibutuhkan mekanisme yang dapat melindungi data dari
pengguna yang tidak berhak mengaksesnya, misalnya sebuah situs web yang berisikan
foto-foto keluarga dan hanya dapat diakses sesama anggota keluarga. Mekanisme ini
dapat diimplementasikan dalam bentuk sebuah proses login yang biasanya terdiri dari
tiga buah tahapan yaitu identifikasi, otentikasi dan otorisasi. Proses otentikasi pada
prinsipnya berfungsi sebagai kesempatan pengguna dan pemberi layanan dalam proses
pengaksesan resource. Pihak pengguna harus mampu memberikan informasi yang
dibutuhkan pemberi layanan untuk berhak mendapatkan resourcenya, sedangkan
pihak pemberi layanan harus mampu menjamin bahwa pihak yang tidak berhak tidak
akan dapat mengakses resource ini.
Dalam sistem transaksi online sering menggunakan kartu kredit sebagai alat
pembayaran .Otentikasi kartu kredit dilakukan untuk mengetahui keabsahan sebuah
nomor kartu kredit. Otentikasi nomor kartu kredit dilakukan dengan menggunakan
algoritma Luhn dimana algoritma Luhn mengecek berdasarkan urutan nomor kartu
tersebut.
2.3.5 Faktor Otentikasi
Tiga jenis faktor otentikasi yang umum digunakan adalah:
b. Sesuatu yang dimiliki oleh pengguna
Contoh: ID card, kartu kredit, telepon seluler, dan perangkat token.
c. Sesuatu yang ‘ada’ pada pengguna
Contoh: sidik jari, DNA, suara, pola retina, atau aspek biometrik lain.
2.4Algoritma Luhn
Algoritma Luhn atau formula Luhn yang juga dikenal sebagai algoritma ‘modulus 10,
adalah sebuah algoritma sederhana yang dapat digunakan untuk memeriksa validitas
sebuah nomor kartu kredit ,ISBN, dan IMEI pada perangkat komunikasi seluler.
Algoritma ini dibuat oleh ilmuwan dari IBM yang bernama Hans Peter Luhn dan
sudah dipatenkan di Amerika Serikat dengan nomor paten 2.950.048 pada 23 Agustus
1960.
Rumusan Luhn diciptakan dan disimpan sebagai hak paten (sekarang dengan
cuma-cuma/bebas) untuk mendeteksi kesalahan kuantitatif yang ditemukan dalam
angka-angka yang sudah dibuat sebelumnya. Sejak itu, algoritma Luhn telah
digunakan untuk memeriksa atau memverifikasi kebenaran dari urutan angka-angka
kartu kredit. Sekarang ini, hampir semua angka-angka kartu kredit yang dikeluarkan
dihasilkan dan dibuktikan menggunakan Modulus atau Algoritma Luhn, atau Mod-10
Formula.
Algoritma ini merupakan public domain dan sudah digunakan secara luas.
Sebagian besar layanan penyedia kartu kredit dan beberapa instansi lainnya
menggunakan algoritma ini sebagai cara yang sederhana untuk memilah nomor –
nomor yang absah dari banyak nomor acak (Kilgo,2006). Dulunya algoritma Luhn ini
direalisasikan dalam bentuk mesin genggam. Alat ini menghitung nilai dari operasi
mod menggunakan cara mekanik.
Algoritma Luhn adalah rumus penjumlahan yang digunakan oleh para ahli
matematik dan sistem verifikasi pembayaran untuk memverifikasi integritas
secara acak dan mencegah terdapatnya angka-angka kartu kredit yang salah sebelum
diterbitkan. Algoritma Luhn tidaklah digunakan untuk membuat nomor kartu kredit
secara langsung, tetapi lebih digunakan sebagai rumusan matematis yang sederhana
untuk memeriksa angka-angka kartu kredit yang sah dari daftar angka acak yang
sudah di buat sebelumnya. Rumusan ini juga berlaku untuk memeriksa nomor kartu
debet (atm) juga (Kilgo,2006).
Algoritma Luhn hanya mengesahkan 16 digit kartu kredit dan bukan komponen
yang lain, misalnya urutan no rekening, apakah nomor kartu kredit tersebut ada atau
tidak, apakah tanggal kartu kredit tersebut valid atau sudah expire, dan tidak dapat
memeriksa Card Verification Value yang biasanya digunakan (CVV) dan Card
Verification Code (CVC), kode tersebut adalah angka-angka yang digunakan untuk
membuktikan pemilikan fisik dari kartu kredit atau kartu debet (Gilleland,2007).
Adapun cara kerja algoritma Luhn adalah 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.
2. Jumlahkan angka urutan ganjil dan urutan genap.
3. Jika total dari penjumlahan tadi dimoduluskan 10 kongruen dengan 0, maka
nomor itu sah.
2.5 Pengenalan Kartu Kredit
Kartu kredit pertama kali mulai digunakan sekitar tahun 1920 di Amerika Serikat,
namun konsep penggunaaan kartu kredit yang dikenal saat ini baru diciptakan pada
tahun 1950. Sistem yang banyak digunakan sekarang ini adalah VISA dan MasterCard
yang merupakan gabungan dari berbagai institusi yang bekerja sama dalam membuat
standar kartu kredit. Kartu kredit adalah sebuah kartu yang terbuat dari plastik. Sesuai
standar ISO 7810 ID-1, kartu kredit berukuran 85,60 x 53,98 mm (3,370 × 2,125 in)
penerbit, nama nasabah, merek kartu, logo hologram, nomor kartu, tanggal berlaku,
dan chip EMV. Di bagian belakang terdapat pita magnetik, tanda tangan nasabah, dan
card security code (CSC). Data nasabah disimpan dalam pita magnetik sedangkan chip
EMV digunakan dalam proses verifikasi(Gilleland, 2007)
Angka pertama dari nomor kartu kredit adalah tanda pengenal industri mayor /
Major Industry Identifier (MII), yang merepresentasikan kategori perusahaan yang
mengeluarkan kartu kredit tersebut (Gilleland, 2007). MII yang berbeda-beda
merepresentasikan kategori seperti dalam tabel di bawah ini :
Tabel 2.2 Jenis Kartu Kredit
Angka MII Kategori
perusahaan Kategori Perusahaan
0 ISO/TC 68 dan industri lain-lain
1 Perusahaan penerbangan
2 Perusahaa penerbangan dan industri lain-lain
3 Travel dan hiburan
4 Bank dan financial
5 Bank dan financial
6 Merchandizing dan bank
7 Perusahaan petroleum
8 Telekomunikasi dan industri lain-lain
9 Perusahaan Negara
Sebagai contoh, American Express, Diner's Club, dan Carte Blanche berada di
kategori travel dan hiburan, VISA, MasterCard, dan Discover berada di kategori bank
dan finansial, sementara SUN Oil dan Exxon berada di kategori perusahaan
petroleum.
2.5.1Identifikasi perusahaan yang mengeluarkan kartu kredit
Enam angka awal dari nomor kartu kredit (termasuk angka MII) membentuk issuer
probabilitas perusahaan yang mengeluarkan kartu kredit adalah satu juta kemungkinan
(10 dipangkatkan 6). Beberapa perusahaan terkenal dijelaskan pada tabel di bawah ini:
Tabel 2.3 Perusahan yang mengeluarkan Kartu Kredit Nama Perusahaan Identifier Panjang Angka Kartu
Diner's Club/Carte 300xxx- 13
Blanche 305xxx,
36xxxx,
38xxxx
13
American Express 34xxxx,
37xxxx
15
VISA 4xxxxx 13, 16
MasterCard 51xxxx-
55xxxx
16
Discover 6011xx 16
Jika angka MII adalah 9, maka 3 angka berikutnya adalah kode negara yang
didefinisikan dalam ISO 3166, dan sisa 2 angkanya bisa didefinisikan oleh badan
standar negara masing-masing sesuai kebijakan dari negara tersebut (Gilleland,2007).
Dari tampilan depan sebuah kartu kredit seperti gambar 2.7 terdiri dari beberapa
bagian yaitu :
a. Logo Bank
Logo bank atau nama penerbit ini adalah nama bank/institusi penerbit kartu
kredit. Misalnya kartu kredit Anda diterbitkan oleh BCA maka muncul logo
atau nama BCA. Begitu juga jika kartu kredit Anda terbitan Citibank, HSBC,
ANZ, maka muncul logo atau nama bank-bank tersebut.
b. Nomor Kartu
Setiap kartu kredit memiliki nomornya yang unik dan berbeda. Untuk pasar
Indonesia nomor kartu kredit berjumlah 16 digit yang terbagi dalam kelompok
4 dengan jarak yang direnggangkan. Tiap kartu kredit berbeda nomornya dan
tidak ada yang sama. Empat digit awal menandakan jenis kartu dan bank
penerbit yang berbeda. Jadi tidak pernah ada kartu kredit yang nomornya
sama.
c. Nama Pemilik
Kartu kredit akan tercetak nama pemiliknya. Jika nama Anda adalah Surya
Nanggala maka di dalam kartu kredit Anda akan tercetak Surya Nanggala.
d. Masa Berlaku Kartu
Kartu kredit diterbitkan memiliki masa berlaku 2–5 tahun, tergantung
kebijakan masing-masing bank sebagai penerbit kartu. Dengan demikian, jika
masa berlaku kartu habis, otomatis kartu tersebut tidak bisa dipergunakan lagi.
Anda sebagai pemilik akan dikirimkan kartu kredit baru oleh bank yang
nomornya persis sama kecuali alasan tertentu. Untuk melihat masa berlaku
kartu bisa diketahui dari valid thru (berlaku sampai) dan valid from (berlaku
sejak). Sedangkan member since artinya sudah berapa lama Anda memegang
e. Logo Perusahaan Pembayaran Internasional
Biasanya disebut juga dengan nama jaringan pembayaran Internasional. Setiap
kartu kredit yang Anda apply hanya akan mendapatkan satu nama jaringan
pembayaran. Jika Anda apply VISA maka akan mendapatkan kartu kredit
berlogo VISA. Jika Anda apply MasterCard maka akan mendapatkan kartu
kredit MasterCard.
f. Chip
Chip adalah produk pengaman kartu yang baru. Saat ini untuk semua kartu
kredit yang diterbitkan untuk pasar Indonesia sudah diwajibkan untuk
memiliki chip guna pengamanan kartu.
Gambar 2.8 Tampilan belakang kartu kredit
Dari tampilan belakang sebuah kartu kredit seperti gambar 2.8 terdiri dari beberapa
bagian yaitu :
a. Pita magnetik, pita magnetik ini sama seperti kartu ATM atau kartu debit.
Kegunaannya adalah untuk merekam beberapa data penting nasabah seperti
nomor PIN, nama nasabah, alamat nasabah, limit kartu, saldo tagihan, dsb.
b. Panel tanda tangan, panel warna putih adalah lembaran khusus untuk
c. Tiga digit pengaman kartu, di belakang kartu kredit selalu ada 3 digit angka
sebagai pengaman kartu yang sering disebut CVV (Card Verification
Value).Kode ini ditambahkan sebagai pengaman kartu sama seperti chip.
Hanya saja teknologi chip adalah teknologi terbaru.
d. Identitas bank penerbit kartu, nama dan alamat bank sebagai penerbit kartu
juga akan tercetak di belakang kartu kredit.
e. Logo Cirrus/PLUS, logo ini untuk memudahkan Anda sebagai pemilik kartu
mengenal mesin-mesin ATM untuk menarik uang tunai. Cirrus untuk
MasterCard, sedangkan PLUS untuk VISA.
f. Hologram, kartu kredit juga memiliki hologram yang biasanya untuk kartu
kredit VISA, hologramnya muncul di belakang, sedangkan untuk kartu kredit
MasterCard, hologramnya tampak di depan kartu.
2.5.3 Penerapan Algoritma Luhn sebagai pengesahan dan pembuatan Urutan Nomor Kartu kredit
Bagi mereka yang tidak suka matematika sama hanya saja matematika adalah salah
satu bagian dari akademis mulai dari SD sampai perkuliahan, tetapi jika anda suka
visual, pemikiran membingungkan seperti permainan Sudoku, anda akan menyukai
Algoritma Luhn dan sangat mudah untuk saya jelaskan.
1. Pertama, anda harus petakan semua 16 digit yang tertera dari nomor kartu
kredit kartu debet. Algoritma Luhn selalu dimulai dari baris sebelah kanan,
kemudian bergerak ke digit sebelah kiri berikutnya dan gandakan nilai mulai
dari digit yang ke 15 dan selangi 1 digit mulai dari digit ke 15. Sebagai
contoh, jika kartu kredit adalah suatu 16 digit kartu kredit Visa, digit yang
digandakan nilainya adalah dari digit 15, 13, 11, 9, dan seterusnya sampai
2. Jika digit yang digandakan nilainya dan menjadi nilai yang hasilnya sama
dengan 10 atau lebih , kita harus menambahkan hasil digit tersebut. Sebagai
contoh, digit 5 ketika digandakan akan menjadi 10, kemudian kita harus
menambahkan masing-masing nilai tersebut yaitu 1+0. Demikian juga,
misalkan digit 9 ketika digandakan akan menjadi 18, maka kita harus
menjumlahkan nilai tersebut yaitu 1 + 8 dan hasilnya menjadi 9.
3. Sekarang, kita lihat hasil dari urutan yang baru dari perhitungan yang kita buat
tadi. Digit yang baru yang nilainya kita gandakan tadi akan menggantikan
digit yang sebelumnya. Digit yang tidak kita gandakan nilainya akan tetap
sama.
4. Jumlahkan urutan yang baru. Jika dikombinasikan perhitungan jumlah dapat
dibagi oleh sepuluh atau berakhir dengan 0, misalnya 70. Jika tidak habis
dibagi 10, maka nomor atau jumlah kartu kredit yang tertera tidaklah sah atau
tidak benar (valid).
2.5.4 Penerapan Algoritma Luhn untuk validasi Nomor Seri IMEI
International Mobile Equipment Identity atau IMEI adalah sebuah nomor unik yang
dimiliki setiap perangkat komunikasi GSM, UMTS, dan iDEN serta beberapa
perangkat telepon satelit. Nomor IMEI digunakan oleh jaringan GSM untuk
mengindentifikasi perangkat yang sah dan membuat perangkat komunikasi yang
dicuri tidak dapat mengakses sebuah jaringan. Sebagai contoh adalah jika sebuah
telepon seluler dicuri, pemiliknya dapat menghubungi layanan penyedia jaringan dan
memintanya umtuk memblok telepon yang dicuri tersebut dengan nomor IMEI. Hal
ini akan menyebabkan perangkat tersebut tidak dapat digunakan, meskipun kartu SIM
di dalamnya diganti ataupun tidak (Matthew, 2007).
Nomor IMEI hanya digunakan untuk mengidentifikasi sebuah perangkat.
Identitas pelanggan tidak dikenali melalui nomor IMEI namun dikenali dari nomor
IMSI yang tersimpan pada kartu SIM.
Nilai cek digit divalidasi dalam tiga langkah berikut :
1. Mulai dari digit yang paling kanan, kalikan dua kali tiap dua digit.
2. Jumlahkan semua digit tersebut.
3. Periksa apakah jumlahnya bisa dibagi 10.
Sebaliknya nomor IMEI dapat dikalkulasikan dengan memilih cek digit
sehingga jumlahnya dapat dibagi 10. Contohnya adalah nomor IMEI
49015420323751?. Jumlah setelah dikalikan adalah 52+?. Untuk membuat jumlahnya
dapat dibagi dengan 10, maka kita ganti dengan angka 8.Untuk lebih jelasnya dapat
dilihat pada keterangan di bawah ini :
4 9 0 1 5 4 2 0 3 2 3 7 5 1 ?
4 18 0 2 5 8 4 0 6 4 6 14 5 2 ?
4 9 0 2 5 8 2 0 3 4 3 5 5 2 ?
a. Baris pertama adalah nomor seri sebelum dilakukan perkalian.
b. Baris kedua adalah nomor seri setelah dilakukan perkalian.
c. Baris ketiga adalah hasil perkalian yang dinormalisasi.
Dari keterangan di atas dapat dilihat bahwa hasil penjumlahan seluruh digit di
atas adalah 4+9+0+2+5+8+2+0+3+4+3+5+5+2+? = 52+?. Untuk mendapatkan jumlah
yang benar, ‘?’ diganti dengan ‘8’ sehingga jumlahnya 60 dan 60 mod 10 adalah 0 sehingga nomor seri diatas menjadi benar.
Tabel 2.4 Penelitian Sebelumnya tentang algoritma Luhn
No JUDUL PENELITI SUMBER
1. Pembangkitan Nomor Kartu
2. Penggunaan Algoritma Modulo
3. Implementasi Algoritma Cek
Digit Luhn Untuk Otentikasi
4. Aplikasi Aritmatika Modulo
dalam Validasi Nomor Kartu
kredit
Yudha Adiprabowo Makalah Teknik
Informatika
Institut Teknologi
Bandung 2007
5. Aplikasi Teori Bilangan dalam
Pembangkitan dan Validasi
6. IMEI dan Validasinya dengan
Algoritma Luhn
perintah – perintah yang akan sepenuhnya dijalankan di server, tetapi disertakan pada
dokumen HTML. Ketika seorang pengguna internet membuka dahulu server
bersangkutan akan memproses semua perintah PHP di server lalu mengirimkan
hasilnya dlam format HTML ke web Browser pengguna internet tersebut. Dengan
demikian seorang pengguna internet tidak dapat melihat kode program yang ditulis
dalam PHP sehingga keamanan dari halaman web menjadi lebih terjamin.
PHP merupakan perangkat lunak yang gratis (open source) dan mempunyai
lintas platform yaitu dapat digunakan dengn sistem operasi dan web server apapun.
PHP mampu berjalan di Windows dan beberapa versi Linux. PHP juga dapat
dibangun sebagai modul pada web server Apache dan sebagai binary yang dapat
berjalan sebagai CGI (Commond Gate Interface), yaitu teknologi untuk menyajikan
data yang bersifat dinamis.
PHP dapat mengirimkan HTTP header, dapat men set cookies,
mengauthentication dan re-direct user. PHP menawarkan konektisitas dengan baik
dengan beberapa basis data antara lain Oracle, Sybase, MySQL dan lain – lain
(Ullman, 2003).
2.6.1. Keunggulan Pemograman PHP
Adapun keunggulan pemograman PHP seperti yang diungkapkan oleh Ullman (2003)
adalah :
1. PHP memiliki tingkat akses yang lebih cepat dari pemograman yang berbasis web
lainnya seperti ASP.
2. PHP memiliki tingkat keamanan yang lebih tinggi karena server yang
bersangkutan akan memproses semua perintah PHP di server dan mengirimkan
hasilnya ke web browser. Dengan demikian pengguna internet tidak dapat melihat
3. PHP mampu berjalan di beberapa server yag ada seperti : Apache, IIS (Internet
Information System) dan lain – lain.
4. PHP mampu berjalan di Linux, Unix dan windows.
5. PHP juga mendukung akses ke beberapa database yang susah, antara lain MySQL,
MSQL, dan Windows SQL Server.
Adapun bentuk penulisan Script PHPdapat dilihat pada tabel 2.5 dibawah ini :
Tabel 2.5 Penulisan Script PHP Bentuk Diawali Diakhiri Contoh
Standard <?php ?> <?php
……..
?>
Singkat <? ?> <?
……..
?>
Script <Script=’php’> </script> <script language=’php’>
………
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
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
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
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
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
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.
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
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
3.2 Perancangan Sistem
Pada bagian perancangan ini, penulis melengkapi dengan rancangan user interface,
yang menjadi acuan dalam implementasi dengan menggunakan bahasa pemrograman
PHP. Tujuan dari perancangan adalah untuk membuat gambaran – gambaran sistem
yang akan dibangun dan memudahkan dalam pembangunan sistem.
3.2.1 Use Case Diagram
Diagram use case merupakan diagram yang memodelkan aspek perilaku sistem.
Masing-masing diagram use case memiliki aktor, use case dan hubungannya. Pada
sistem transaksi online aktor dibagi menjadi dua bagian: User dan Admin. User
merupakan pengguna yang telah melakukan registrasi pada sistem sedangkan admin
adalah orang yang mengendalikan sistem seperti menambah produk,menghapus
produk, dan lain – lain.
3.2.2 Use Case Spesifikasi
Spesifikasi use case memberikan gambaran lengkap spesifikasi tekstual pada use case.
Spesifikasi use case sistem transaksi online dilakukan berdasarkan kasus yang ada
pada use case diagram yang telah digambarkan pada gambar diatas. Berikut adalah
tabel spesifikasi setiap use case:
Tabel 3.1 Use case spesifikasi Lihat Kategori dan Sub kategori produk
1.
Use case : Lihat Kategori dan Sub kategori Produk
User
Use case ini digunakan oleh user untuk melihat sub kategori produk
Kondisi awal User tidak harus login terlebih dahulu ke dalam sistem
Karakteristik Tindakan dan eksekusi tergantung dari permintaan pengguna
Skenario (flow of events)
Skenario Dasar (Basic Flow) :
a. Use case ini akan dimulai ketika user membuka halaman web e-commerce.
b. User memilih menu ‘Sub kategori produk’.
c. Kemudian sistem menampilkan jenis-jenis produk yang tersimpan pada database.
Tabel 3.2 Use case spesifikasi User login
Kondisi awal User tidak harus login terlebih dahulu ke dalam sistem
Karakteristik Tindakan dan eksekusi tergantung dari permintaan pengguna
Skenario (flow of events)
Skenario Dasar (Basic Flow) :
a. Use case ini dimulai ketika user membuka e-commerce dan pada halaman awal web terdapat menu Login.
b. Selanjutnya user mengisi User Id dan password. c. Kemudian userakan menekan tombol ‘Login’
Kondisi akhir User akan masuk ke dalam sistem
Tabel 3.3 Use case spesifikasi User Register
3.