• Tidak ada hasil yang ditemukan

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

N/A
N/A
Protected

Academic year: 2016

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

Copied!
92
0
0

Teks penuh

(1)

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

(2)

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

(3)

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,

(4)

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

(5)

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

(6)

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

(7)

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.

(8)

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.

(9)

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

(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

(11)

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

(12)

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

(13)

DAFTAR GAMBAR

Gambar 3.9 Rancangan Menu Administrator 49

(14)

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

(15)

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.

(16)

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.

(17)

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

(18)

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

(19)

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 .

(20)

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

(21)

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

(22)

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).

(23)

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

(24)

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,

(25)

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,

(26)

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

(27)

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

(28)

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.

(29)

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)

(30)

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

(31)

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.

(32)

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.

(33)

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

(34)

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:

(35)

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

(36)

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)

(37)

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

(38)

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).

(39)

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

(40)

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

(41)

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

(42)

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.

(43)

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

(44)

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

(45)

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

(46)

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’>

………

(47)

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

(48)

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

(49)

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

(50)

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

(51)

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

(52)

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.

(53)

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

(54)

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

(55)

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.

(56)

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.

(57)

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.

Gambar

Tabel 2.2 Jenis Kartu Kredit
Gambar 2.7 Tampilan depan kartu kredit
Gambar 3.1 Flowchart Validasi Kartu Kredit
Gambar 3.2 Use Case Diagram
+7

Referensi

Dokumen terkait

[r]

Ilustrasi algoritma modulo 10 atau LUHN Berikut ini adalah kode dalam bahasa C yang merepresentasikan pengecekan algoritma pengecekan digit angka pada kartu kredit

sharing Dinas Koperasi dan Usaha Mikro, Kecil dan Menengah Kota Surabaya untuk Pemberdayaan UMKM dalam Menghadapi Masyarakat Ekonomi Asean. 2015 yang berlangsung memperlihatkan

Latihan rutin oleh komunitas Badminton Lovers Surabaya membuat kekompakan anggota menjadi lebih baik, karena antar individu dalam anggota akan lebih saling

Hal yang paling utama dari proses ini adalah bagaimana masyarakat bisa melihat dan menangkap nilai yang terkandung dalam berbagai model kebudayaan tersebut

mesin Suritech untuk produksi bandeng imitasi dengan bahas baku ikan ban- deng dan ikan demersal ekonomis renda diharapkan mampu melahirkan inovasi produk yang dapat

Sistem deteksi perangkat scintigraphy terdiri dari: kristal scintilasi, tabung pengganda foton sensitif terhadap posisi (Position Sensitive Photomultiplier Tube– PSPMT),

Data sekunder merupakan data yang dikumpulkan dalam penelitian kepustakaan, penelitian kepustakaan adalah teknik untuk mencari bahan- bahan atau data-data yang