AUTENTIFIKASI PENGENALAN POLA TANDA TANGAN MANUAL MENGGUNAKAN JARINGAN SARAF TIRUAN LVQ (Learning Vector Quantization) DAN TANDA TANGAN DIGITAL MENGGUNAKAN ALGORITMA RSA (Riset Shamir Adleman)
SKRIPSI
Oleh : AFIF RAKHMANULLAH NIM. 05550002
JURUSAN TEKNIK INFORMATIKA FAKULTAS SAINS DAN TEKNOLOGI UNIVERSITAS ISLAM NEGERI (UIN) MAULANA MALIK IBRAHIM MALANG 2010
AUTENTIFIKASI PENGENALAN POLA TANDA TANGAN MANUAL MENGGUNAKAN JARINGAN SARAF TIRUAN LVQ (Learning Vector Quantization) DAN TANDA TANGAN DIGITAL MENGGUNAKAN ALGORITMA RSA (Riset Shamir Adleman)
SKRIPSI Diajukan Kepada Jurusan Teknik Informatika Fakultas Sains dan Teknologi Universitas Islam Negeri (UIN) Maulana Malik Ibrahim Malang Sebagai Salah Satu Persyaratan Untuk Memperoleh Gelar Sarjana Komputer Strata Satu (S-1)
Oleh : AFIF RAKHMANULLAH NIM. 05550002
JURUSAN TEKNIK INFORMATIKA FAKULTAS SAINS DAN TEKNOLOGI UNIVERSITAS ISLAM NEGERI (UIN) MAULANA MALIK IBRAHIM MALANG 2010
HALAMAN PERSETUJUAN
AUTENTIFIKASI PENGENALAN POLA TANDA TANGAN MANUAL MENGGUNAKAN JARINGAN SARAF TIRUAN LVQ (Learning Vector Quantization) DAN TANDA TANGAN DIGITAL MENGGUNAKAN ALGORITMA RSA (Riset Shamir Adleman) SKRIPSI
Oleh : AFIF RAKHMANULLAH NIM. 05550002
Telah Disetujui, .......................
Pembimbing I
Pembimbing II
M. Ainul Yaqin, M. Kom NIP. 197610132006041004
H. Syahiduz Zaman, M.Kom NIP. 197005022005011005
Mengetahui, Ketua Jurusan Teknik Informatika Fakultas Sains dan Teknologi Universitas Islam Negeri Maulana Malik Ibrahim Malang
Ririen Kusumawati, M. Kom NIP. 197203092005012002
HALAMAN PENGESAHAN AUTENTIFIKASI PENGENALAN POLA TANDA TANGAN MANUAL MENGGUNAKAN JARINGAN SARAF TIRUAN LVQ (Learning Vector Quantization) DAN TANDA TANGAN DIGITAL MENGGUNAKAN ALGORITMA RSA (Riset Shamir Adleman) SKRIPSI Oleh AFIF RAKHMANULLAH NIM. 05550002 Telah Dipertahankan Di Depan Dewan Penguji Skripsi Dan Dinyatakan Diterima Sebagai Salah Satu Persyaratan Untuk Memperoleh Gelar Sarjana Komputer (S.Kom) Tanggal, .................. Susunan Dewan Penguji :
Tanda Tangan
1. Penguji Utama
: Zainal Abidin, M.Kom NIP. 197606132005011001
(
)
2. Ketua Penguji
: Ririen Kusumawati, M.Kom NIP. 197203092005012002
(
)
3. Sekretaris Penguji
: M. Ainul Yaqin, M.Kom NIP. 197610132006041004
(
)
4. Anggota Penguji
: H. Syahiduz Zaman, M.Kom NIP. 197005022005011005
(
)
Mengetahui dan Mengesahkan Ketua Jurusan Teknik Informatika Fakultas Sains dan Teknologi Universitas Islam Negeri Maulana Malik Ibrahim Malang
Ririen Kusumawati, M. Kom NIP. 197203092005012002
SURAT PERNYATAAN
Yang bertanda tangan di bawah ini : Nama
: Afif Rakhmanullah
NIM
: 05550002
Alamat
: Jl. Aries Munandar 3C/28 Malang
Menyatakan bahwa skripsi yang saya buat untuk memenuhi persyaratan kelulusan pada Fakultas Sains dan Teknologi, Jurusan Teknik Informatika Universitas Islam Negeri Maulana Malik Ibrahim Malang Dengan Judul AUTHENTIFIKASI PENGENALAN POLA TANDA TANGAN MANUAL MENGGUNAKAN JARINGAN SARAF TIRUAN LVQ (Learning Vector Quantization) DAN TANDA TANGAN DIGITAL MENGGUNAKAN ALGORITMA RSA (Riset Shamir Adleman) ini adalah hasil karya sendiri dan bukan duplikasi karya orang lain baik sebagian ataupun keseluruhan, kecuali dalam bentuk kutipan yang telah disebutkan sumbernya. Demikian surat pernyataan ini saya buat dengan sebenar-benarnya.
Malang, 13 Mei 2010 Yang Menyatakan
Afif Rakhmanullah NIM. 05550002
MOTTO
“Sesungguhnya Allah tidak mengubah keadaan sesuatu kaum sehingga mereka merubah keadaan yang ada pada diri mereka sendiri. Dan apabila Allah menghendaki keburukan terhadap sesuatu kaum, maka tak ada yang dapat menolaknya; dan sekali-kali tak ada pelindung bagi mereka selain Dia.” (Qs. Ar Ra’d 13 : 11)
”Sesungguhnya sesudah kesulitan itu ada kemudahan. Maka apabila kamu Telah selesai (dari sesuatu urusan), kerjakanlah dengan sungguh-sungguh (urusan) yang lain. Dan Hanya kepada Tuhanmulah hendaknya kamu berharap.” (Qs. Alam-Nasyrah 94 : 6-8) ” Setiap langkah adalah usaha, cita-cita, kesuksesan, dan berkah. Jadikan setiap langkah menjadi jalan sepiritual dalam kehadirat Allah SWT janganlah berhenti berjalan selagi kamu bisa melangkah ada hasil karena ada tindakan maka melangkahlah. (be the best whatever you do)”
LEMBAR PERSEMBAHAN Yang utama dari segalanya... Dengan menyebut nama Allah Yang Maha Pengasih dan Maha Penyayang. Alhamdulillah...sujud syukur kepada Allah SWT, penguasa semesta alam. Atas karunia, hidayah, petunjuk dan kemudahan yang Engkau berikan dalam menyelesaikan skripsi ini. Sholawat dan salam selalu terlimpahkan keharibaan Revolusioner Akbar Rasulullah Muhammad SAW.
Ayah_Q ( Azizi Sa’id ), Bunda_Q ( Henny Ufidah. S.Pd ) Tercinta dan Tersayang Sepanjang Masa Sebagai tanda bakti, hormat, sayang, pengorbanan, dan rasa terima kasih yang tiada terhingga Afif Rakhmanullah haturkan kepada Bapak dan Ibu yang telah memberikan do’a. kasih sayang, segala dukungan, dan cinta kasih yang tiada terhingga yang tiada mungkin dapat Afif balas hanya dengan selembar kertas persembahan ini. Semoga ini menjadi langkah awal kesuksesan bagi Afif untuk membuat Bapak dan Ibu bahagia karena Afif sadar, selama ini belum bisa berbuat yang lebih. ”Semoga Allah Selalu Menjaga, menyayangi beliau, memberikan keselamatan dan kebahagiaan di dunia juga di akhirat” Amin.... Mas2_Q (Helmy Azhar & Ervita, Zauhar Hanafi & Reta) dan Adik + Keponakan_Q (Yupi Ayuni & Herdyn) Untuk Kakakku & mbakku tersayang, terima kasih banyak yang selalu memberikan do’a, segala dukungan, dorongan untuk terus maju, dan atas pengorbanannya untuk afif’ selama ini. Dan untuk adik dan keponakanku tersayang, motivator dan inspirasiku dalam segala hal. Terima kasih banyak untuk semuanya. “Semoga Allah membalas semuanya dan semoga menjadi orang sukses dan bermanfaat di dunia dan di akhirat”, Amin....
KATA PENGANTAR
Bissmillahirrahmanirrahim Alhamdulillah, puji syukur kehadirat Allah Swt yang telah melimpahkan segala rahmat dan karunia-Nya, sehingga penulis dapat menyelesaikan tugas akhir yang menjadi salah satu syarat mutlak untuk menyelesaikan program studi Teknik Informatika
jenjang Strata-1 Universitas Islam Negeri (UIN) Maulana Malik
Ibrahim Malang. Dengan
segala
kerendahan
hati,
penulis
menyadari
bahwa
dalam
menyelesaikan tugas akhir ini tidak lepas dari peran berbagai pihak yang telah banyak memberikan bantuan, bimbingan dan dukungan. Dalam kesempatan ini penulis ingin mengucapkan terima kasih yang tak terhingga kepada: 1.
Prof. DR. H. Imam Suprayogo, selaku Rektor Universitas Islam Negeri Maulana Malik Ibrahim Malang.
2.
Prof. Drs. Sutiman Bambang Sumitro, SU., DSc, selaku Dekan Fakultas Sains dan Teknologi Universitas Islam Negeri Maulana Malik Ibrahim Malang.
3.
Ririen Kusumawati, M.Kom selaku Ketua Jurusan Teknik Informatika.
4.
M.Ainul Yaqin, M. Kom selaku Dosen Pembimbing penulisan skripsi ini yang telah memotivasi, membantu dan memberikan penulis arahan yang baik dan benar dalam menyelesaikan penulisan skripsi ini .
5.
Syahiduz Zaman, M. Kom selaku dosen pembimbing agama yang bersedia meluangkan waktu untuk memberikan masukan dan arahan terhadap permasalahan integrasi dalam skripsi ini.
6.
Seluruh Dosen Teknik Informatika Universitas Islam Negeri Maulana Malik Ibarahim Malang, Seluruh Guru yang telah memberikan banyak pelajaran, pengalaman, tausiyah, do’a kepada penulis dan memberikan dukungan untuk menyelesaikan penulisan skripsi ini.
7.
Ayah dan Ibuku tercinta dan tersayang yang telah banyak memberikan cinta, kasih, sayangnya dan tak pernah berhenti kiriman do’anya kepada penulis hingga penulis mampu menyelesaikan skripsi ini, serta untuk Mas2ku
sekaligus adik dan keponakanku tersayang terima kasih buat doa, dorongan semangat dan keceriaan yang diberikan kepada penulis. 8.
Serta seluruh pihak yang telah suka rela memberikan ilmu, pengalaman dan bantuan kepada penulis dalam menyelesaikan skripsi ini.
9.
Seluruh Asisten Laboratorium Teknik Informatika Universitas Islam Negeri Maulana Malik Ibrahim Malang yang selalu memberikan bimbingan serta keceriaan.
10. Seluruh Guru-Guruku Tk Muslimat NU 2, SDN Kauman 2 Malang, SMPN 9 Malang, MAN 3 Malang, yang telah banyak memberikan banyak ilmu kepada penulis. Terima kasih untuk semuanya, semoga Allah memebalasnya dengan lebih baik, Amin... 11. Sahabat-sahabat dan teman-teman di Universitas Islam Negeri Maulana Malik Ibrahim Malang, khususnya Jurusan TI angkatan 2005 yuda, pii, kang kosim, a2n, azis, gianto, mahya, dan sobat-sobat TI semuanya yang tidak saya sebutkan. 12. Serta Semua pihak yang mungkin belum saya sebutkan dan sahabat-sahabat yang telah banyak membantu penulis hingga terselesaikannya tugas akhir ini. Dan untuk sahabatku Samid, Semoga Allah SWT memberikan balasan yang sesuai atas jasa dan bantuan yang telah diberikan kepada penulis, Amin... Penulis menyadari sepenuhnya bahwa sebagai manusia biasa tentunya tidak akan luput dari kekurangan dan keterbatasan. Maka dengan segenap kerendahan
hati,
penulis
mengharapkan
saran
dan
kritik
yang
dapat
menyempurnakan penulisan ini sehingga dapat bermanfaat dan berguna untuk pengembangan ilmu pengetahuan.
Malang, 13 Mei 2010
Penulis
DAFTAR ISI HALAMAN JUDUL .......................................................................................ii HALAMAN PERSETUJUAN ........................................................................iii HALAMAN PENGESAHAN .........................................................................iv SURAT PERNYATAAN ................................................................................v MOTTO ...........................................................................................................vi LEMBAR PERSEMBAHAN ..........................................................................vii KATA PENGANTAR ......................................................................................viii DAFTAR ISI ...................................................................................................x DAFTAR TABEL ............................................................................................xii DAFTAR GAMBAR ........................................................................................xiii ABSTRAK........................................................................................................xv BAB I PENDAHULUAN ...............................................................................1 2.1 Latar belakang ......................................................................................1 1.1 Rumusan Masalah ................................................................................5 1.2 Batasan Masalah ..................................................................................5 1.3 Tujuan .................................................................................................6 1.4 Manfaat ................................................................................................6 1.5 Metodologi Penelitian ..........................................................................6 1.6 Sistematika Penulisan ..........................................................................8 BAB II 2.2 2.3 2.4
2.5
2.6 2.7 2.8
2.9
LANDASAN TEORI ..........................................................................10 Autentifikasi.........................................................................................10 Tanda Tangan Digital (Digital Signature).............................................11 Kriptografi ...........................................................................................13 2.4.1 Pengertian Kriptografi...............................................................13 2.4.2 Algoritma Kriptografi ...............................................................15 2.4.2.1 Algoritma Kunci Simetris (Symmetric-Key 2.4.3 Cryptography) ..........................................................................15 2.3.2.2 Algoritma Kunci Asimetris (Asymmetric-Key Cryptography) ........................................................... .15 Algoritma Rsa (Rivest-Shamir-Adleman) ..............................................16 2.5.1 Pembentukan Kunci ..................................................................16 2.5.2 Proses Enkripsi (Signing) ..........................................................18 2.5.3 Proses Dekripsi (Verifiying) ......................................................18 Tanda Tangan Manual (Handwriting Signature) ...................................19 Pengenalan Pola ...................................................................................20 Jaringan Syaraf Tiruan .........................................................................22 2.7.1 Jaringan Learning Vector Quantization (LVQ) .........................24 2.7.1.1 Arsitektur Jaringan...................................................................25 Keaslian Dokumen Dan Keamanan Dokumen Dari Segi Prespektif Islam Dan Integrasinya ........................................................................26
BAB III PERANCANGAN DAN DESAIN SISTEM.....................................30 3.1 Materi Penelitian ..................................................................................30
3.2 Alat Penelitian ......................................................................................30 3.2.1 Kebutuhan Hardware ...............................................................30 3.2.2 Kebutuhan Software .................................................................31 3.3 Analisis Sistem.....................................................................................32 3.3.1 Proses Pembuatan Template ......................................................33 3.3.2 3.3.1.1 Image Prepocessing .....................................................35 3.3.3 3.3.1.2 Pengkodean Karakter (Feature extraction) ...................39 3.3.4 Pembelajaran Tanda Tangan Manual Dengan LVQ ...................39 3.3.5 Pengenalan Tanda Tangan Manual ............................................40 3.3.6 Pembangkitan Kunci Tanda Tangan Digital RSA ......................41 3.3.7 Proses Enkripsi (Signing) Tanda Tangan Digital .......................42 3.3.8 Proses Verifikasi Tanda Tangan Digital ...................................43 3.3.9 Contoh Perhitungan Dengan LVQ ............................................44 3.4 Perancangan Sistem .............................................................................50 3.4.1 Use Case ...................................................................................50 3.4.2 Sequence Diagram ....................................................................51 3.4.3 3.4.2.1 Sequence diagram proses pengolahan Image.................51 3.4.4 3.4.2.2 Sequence diagram proses signing ..................................52 3.4.5 3.4.2.3 Sequence diagram proses verifikasi ...............................53 3.4.6 Activity Diagram .......................................................................53 3.5 Struktur Basis Data ..............................................................................54 3.6 Perancangan Uji Coba .........................................................................55 3.6.1 Skenario Uji Coba.....................................................................55 3.6.2 3.6.1.1 Pengujian Tanda Tangan Manual LVQ ..........................55 3.6.3 3.6.1.2 Pengujian Tanda Tangan Digital RSA ...........................56 BAB IV IMPELEMENTASI DAN HASIL ....................................................57 4.1 Implementasi Program .........................................................................57 4.1.1 Implementasi Antarmuka ..........................................................57 3.6.4 4.1.1.1 Halaman Menu Utama ...................................................57 3.6.5 4.1.1.2 Form Konfigurasi ..........................................................58 3.6.6 4.1.1.3 Form Makey Key ...........................................................60 3.6.7 4.1.1.4 Form Signing ................................................................61 3.6.8 4.1.1.5 Form Verifiying ............................................................62 3.6.9 Implementasi Pemrosesan Citra (Image Preprocessing) ...........62 4.1.2 Implementasi jaringan Saraf Tiruan LVQ (Learning Vector Quantization) ...........................................................................65 4.1.3 Implementasi Algoritma RSA ...................................................68 4.2 Hasil Uji Coba Sistem ..........................................................................74 4.2.1 Uji Coba Pembelajaran LVQ ....................................................75 4.2.2 Uji Coba RSA ...........................................................................79 BAB V PENUTUP...........................................................................................81 5.1 Kesimpulan .........................................................................................81 5.2 Saran ..................................................................................................81 DAFTAR PUSTAKA .......................................................................................82
DAFTAR TABEL
Tabel 2.1 Tabel 3.1 Tabel 3.2 Tabel 3.3 Tabel 3.4 Tabel 3.5 Tabel 3.6 Tabel 3.7 Tabel 3.8 Tabel 4.1 Tabel 4.2 Tabel 4.3 Tabel 4.4 Tabel 4.5 Tabel 4.6 Tabel 4.7
Contoh pengelompokan pola berdasarkan cirinya ............................20 Data Matrik input gambar ................................................................44 Data Bobot ......................................................................................44 Data Latih ........................................................................................44 Basis Data Pengguna (User) ............................................................54 Basis Data Tanda Tangan Manual ....................................................54 Basis Data Beban Akhir ...................................................................55 Rancangan tabel Tanda Tangan manual LVQ ..................................56 Rancangan Tabel Avalanche Effect Tanda Tangan Digital RSA .......56 Uji Coba Nilai Max Epoch 10 Dan Nilai Target Erornya 0,1............75 Uji Coba Nilai Max Epoch 100, Nilai Target Erornya 0,1 ................75 Uji Coba Nilai Max Epoch 1000, Nilai Target Erornya 0,01 ............76 Uji Coba Nilai Max Epoch 10, Nilai Target Erornya 0,01 ................77 Uji Coba Nilai Max Epoch 100, Nilai Target Erornya 0,01 ..............77 Uji Coba Nilai Max Epoch 1000, Nilai Target Erornya 0,01 ............78 Tabel Uji Coba RSA ........................................................................80
DAFTAR GAMBAR
Gambar 2.1 Gambar 2.2 Gambar 2.3 Gambar 3.1 Gambar 3.2 Gambar 3.3 Gambar 3.4 Gambar 3.5 Gambar 3.6 Gambar 3.7 Gambar 3.8 Gambar 3.9 Gambar 3.10 Gambar 3.11 Gambar 3.12 Gambar 3.13 Gambar 3.14 Gambar 3.15 Gambar 3.16 Gambar 3.17 Gambar 4.1 Gambar 4.2 Gambar 4.3 Gambar 4.4 Gambar 4.5 Gambar 4.6 Gambar 4.7 Gambar 4.8 Gambar 4.9 Gambar 4.10 Gambar 4.11 Gambar 4.12 Gambar 4.13 Gambar 4.14 Gambar 4.15 Gambar 4.16 Gambar 4.17
Sistem Kriptografi ......................................................................13 Skema Algoritma Kunci Publik...................................................16 Jaringan Syaraf Learning Vector Quantization ............................25 Representasi Image LVQ ............................................................32 Diagram Perancangan Sistem......................................................33 Flowchart Binerisasi Image ........................................................34 Diagram Proses Image Preprocessing..........................................35 Pseudocode fungsi grayscale ......................................................36 Flowchart Binerisasi ...................................................................37 Flowchart Proses Cropping .........................................................38 Flowchart Proses Pembelajaran LVQ ..........................................40 Flowchart Proses Pengenalan Tanda Tangan Manual .................41 Flowchart Proses Pembangkitan Kunci RSA ...............................42 Flowchart Proses Signing Algoritma RSA ..................................43 Flowchart Proses Verifiying Algoritma RSA ..............................43 Use case Sistem pengenalan pola tanda tangan............................51 Sequnce diagram proses image preprocessing .............................52 Sequence diagram proses signing ................................................52 Sequence diagram proses verifikasi.............................................53 Activity diagram ..........................................................................53 Struktur Menu program ..............................................................53 Halaman Menu Utama ................................................................58 Form Image Preprocesing ..........................................................59 Form Learning LVQ ...................................................................60 Form Pembentukan Kunci RSA ..................................................61 Implementasi Form Signing ........................................................62 Implementasi Form verifying ......................................................63 Source code fungsi RGBToGray .................................................63 Source code Fungsi Threshold ....................................................64 Source code Fungsi Cropping .....................................................65 Source Code Fungsi Scalling ......................................................65 Source Code Pengkodean Karakter .............................................65 Source Code Procedure Training_2 .............................................68 Cuplikan Source code Pengenalan...............................................68 Cuplikan Source code Fungsi nilai n ...........................................68 Cuplikan Source code Fungsi nilai phi ........................................68 Cuplikan Source code Fungsi Kunci privat d...............................69
Gambar 4.18 Gambar 4.19 Gambar 4.20 Gambar 4.21 Gambar 4.22 Gambar 4.23 Gambar 4.24
Cuplikan Source code proses Signing..........................................69 Cuplikan Source code proses RSAEncrypt...................................70 Cuplikan Source code Convert 256 to 64 ....................................71 Cuplikan Source code Verifiying .................................................72 Cuplikan Source code RSADecrypt .............................................73 Cuplikan Source code Convert 64 to 256 ....................................74 Grafik pembelajaran Maxepoch 10 dan 100, target error 0,1, dan alpha 0,01–0,09 ..........................................................................76 Gambar 4.25 Grafik pembelajaran Maxepoch 1000, target error 0,01 ...............77 Gambar 4.26 Grafik pembelajaran Maxepoch 1000, target error 0,01 ...............78
ABSTRAK
Rakhmanullah, Afif. 2005. Autentifikasi Pengenalan Tanda Tangan Manual Menggunakan Jaringan Saraf Tiruan LVQ (Learning Vector Quantization) Dan Tanda Tangan Digital Menggunakan Algoritma RSA (Riset Shamir Adleman). Pembimbing : (I) M. Ainul Yaqin, M. Kom, (II) H. Syahiduz Zaman, M. Kom Kata Kunci: Pengenalan Pola, Jaringan Saraf Tiruan LVQ, Algoritma RSA Informasi merupakan kebutuhan manusia, bukan saja pada abad modern ini, tetapi sejak manusia tercipta. Hal ini disebabkan, antara lain oleh adanya naluri ingin tahu yang menghiasi makhluk bernama manusia. Internet merupakan salah satu media untuk bertukar informasi atau berkomunikasi. Ketika saling berkomunikasi tidak menutup kemungkinan untuk mengirim informasi yang berbentuk dokumen elektronik (file) yang memiliki tanda tangan untuk megesahkan dokumen. Hal ini memerlukan adanya mekanisme untuk menjamin keaslian (autentifikasi) tanda tangan tersebut dengan tujuan informasi yang dikirim sesuai dengan kebenarannya. Keaslian (autentifikasi) tanda tangan menjadi aset yang sangat berharga baik dari suatu organisasi, perusahaan, pemerintah maupun pribadi. Hal ini menyebabkan keaslian (autentifikasi) tanda tangan menjadi sangat penting untuk dilindungi dari orang-orang yang tidak bertanggung jawab yang akan memanipulasi tanda tangan untuk kepentingannya yang dapat merugikan orang lain. Mekanisme keamanan diperlukan untuk menjamin keaslian dari tanda tangan tersebut, dalam penelitian ini akan dibangun mekanisme untuk menjamin keaslian tanda tangan atau autentifikasi dengan menghubungkan pengenalan tanda tangan manual menggunakan jaringan saraf tiruan LVQ dengan tanda tangan digital menggunakan algoritma RSA. Tujuan dari penelitian ini adalah mengimplementasikan algoritma RSA dan LVQ untuk autentifikasi tanda tangan manual dan digital kedalam aplikasi. Aplikasi ini dibangun dengan menggunakan bahasa pemograman Delphi dan menggunakan Database Access. Metode autentifikasi menggunakan jaringan saraf tiruan LVQ (Learning Vector Quantization) dan algoritma RSA (Riset Shamir Adleman). LVQ adalah metode pengenalan pola yang melakukan pembelajaran terlebih dahulu atau supervised learning, sedangkan RSA adalah algoritma kriptografi yang mempunyai dua kunci yaitu kunci publik dan kunci rahasia. Berdasarkan hasil uji coba yang telah dilakukan, maka Authentifikasi tanda tangan manual dengan jaringan saraf tiruan LVQ dan tanda tangan digital dengan algoritma RSA menghasilkan tingkat keberhasilan sukses sebesar 100 % untuk tanda tangan digital, dan 74 % untuk tanda tangan manual dengan pembelajaran menggunakan nilai max epoch 1000, nilai Learning rate 0,01-0,09 dan nilai target error 0,01. Dan rata–rata waktu penandatangan (signing) 15 milidetik dan rata-rata untuk verifikasi 53 milidetik.
ABSTRACT Rakhmanullah, Afif. 2005. Signature authentication Manual Introduction Using LVQ Neural Networks (Learning Vector Quantization) and Digital Signature Algorithm Using RSA (Research Shamir Adleman). Supervisor: (I) M. Ainul Yaqin, M. Kom, (II) H. Syahiduz Zaman, M. Kom
Keywords: Pattern Recognition, LVQ Neural Networks, RSA Information is a human need, not only in this modern age, but since man is created. This is due, among others, by the instinct to know that adorned creature called human. Internet is a medium to exchange information or communicate. When communicating with each other did not close the possibility to send information in the form of electronic documents (files) that have megesahkan signatures to the document. This requires mechanisms to ensure the authenticity (authentication) with a view to signature information transmitted in accordance with the truth. Authenticity (authentication) signature becomes a valuable asset both from an organization, company, government or private. This causes the authenticity (authentication) signature is very important to be protected from people who are not responsible who will manipulate signatures to its interests that could harm others. Security mechanisms necessary to ensure the authenticity of these signatures, in this study will be built mechanisms to ensure the authenticity of the signature or authentication by connecting the manual signature recognition using LVQ neural networks with digital signatures using RSA algorithm. The purpose of this study was to implement the RSA algorithm and LVQ for authentication and digital signatures into applications manually. This application was built using Delphi programming language and use the Access database. Authentication method using an artificial neural network LVQ (Learning Vector Quantization) algorithm and RSA (Research Shamir Adleman). LVQ is a method of pattern recognition is done prior learning or supervised learning, while RSA is a cryptographic algorithm that has two keys namely a public key and secret key. Based on trial results that have been done, then the manual signature Authentication with LVQ neural network and digital signatures with RSA algorithm to produce the success rate of 100% success for digital signatures, and 74% for manual signatures by learning to use the max epoch 1000, the value of learning rate from 0.01 to 0.09 and 0.01 target value error. And the average time of signing (signing) 15 milliseconds and the average for the verification of 53 milliseconds.
BAB I PENDAHULUAN
1.1
Latar Belakang Informasi merupakan kebutuhan manusia, bukan saja pada abad modern ini,
tetapi sejak manusia tercipta. Hal ini disebabkan, antara lain oleh adanya naluri ingin tahu yang menghiasi makhluk bernama manusia. Internet merupakan salah satu media untuk bertukar informasi atau berkomunikasi. Ketika saling berkomunikasi tidak menutup kemungkinan untuk mengirim informasi yang berbentuk dokumen elektronik (file) yang memiliki tanda tangan untuk mengesahkan dokumen. Bentuk obyek tanda tangan yang kita lihat sehari-hari seperti suatu persoalan yang sederhana. Banyak dari kita mungkin tidak membayangkan bahwa orang lain tidak akan menduplikasi tanda tangan kita karena sulit untuk diduplikasi atau tidak ada gunanya menduplikasi tanda tangan tersebut. Tetapi pada saat-saat tertentu mulai diwaspadai tanda tangan yang kita buat atau yang dibuat oleh orang lain, dengan tujuan agar kita dapat mengetahui keaslian dari tanda tangan, baik tanda tangan kita maupun milik orang lain. Hal tersebut mulai menjadi persoalan bagi kita bila suatu transaksi dokumen menjadi tidak syah karena terjadi pemalsuan tanda tangan. Dan tentunya dapat merugikan pihak-pihak yang bersangkutan. Hal ini memerlukan adanya mekanisme untuk menjamin keaslian (autentifikasi) tanda tangan tersebut dengan tujuan dokumen yang dikirim sesuai
dengan kebenarannya. Tanda tangan merupakan salah satu bukti untuk membenarkan atau mengesahkan suatu dokumen, dikarenakan keaslian dokumen yang memiliki tanda tangan menjadi aset yang sangat berharga baik dari suatu organisasi, perusahaan, pemerintah maupun pribadi. Hal ini menyebabkan keaslian (autentifikasi) tanda tangan menjadi sangat penting untuk dilindungi dari orang-orang yang tidak bertanggung jawab yang akan memanipulasi tanda tangan untuk kepentingannya yang dapat merugikan orang lain. Di dalam UndangUndang Republik Indonesia No 11 tahun 2008 yang mengatur mengenai informasi dan transaksi elektronik (UU-ITE) dalam pasal 1 ayat ke-12 menyebutkan bahwa alat verifikasi dan autentifikasi dokumen elektronik adalah tanda tangan elektronik. Dengan demikian kita harus senantiasa berhati-hati dalam menjaga keaslian (autentifikasi) tanda tangan. Al Qur’an juga mengingatkan kita untuk berhati-hati dengan kebenaran informasi/berita baik si penerima informasi maupun si pemberi informasi, dalam surat Al-Hujarat ayat 6 Allah Berfirman:
Artinya : “Hai orang-orang yang beriman, jika datang kepadamu orang Fasik membawa suatu berita, Maka periksalah dengan teliti agar kamu tidak menimpakan suatu musibah kepada suatu kaum tanpa mengetahui keadaannya yang menyebabkan kamu menyesal atas perbuatanmu itu”.(QS.Al Hujaraat/49:6) Di sisi lain kepada pembawa berita, Al Qur’an berpesan :
Artinya : “Hai orang-orang yang beriman, bertakwalah kamu kepada Allah dan Katakanlah Perkataan yang benar,” (QS.Al Ahzab/33:70) Atas dasar dua surat di atas, para ulama menekankan bahwa semua ucapan apa pun bentuknya dan kandungannya, di samping harus sesuai dengan kenyataan, juga harus menjamin sasarannya untuk tidak terjerumus ke dalam kesulitan, bahkan membutuhkan manfaat. Dari sinilah dikenal dengan ungkapan li kulli maqam maqal wa likulli maqal maqam (untuk setiap tempat ada ucapan yang sesuai dan untuk setiap ucapan ada tempat yang sesuai). Boleh jadi ada kebenaran yang harus di tangguhkan penyampaiannya demi kemaslahatan. Dalam hadits riwayat Buchary dan Muslim dari Abdullah bin Mas’ud r.a berkata : Bersabda Nabi s.a.w : “ Sesungguhnya kebenaran itu membawa kepada kebaikan (ta’at) dan kebaikan itu membawa ke sorga. Dan seseorang membiasakan dirinya berkata benar hingga tercatat di sisi Allah siddiq. Dan dusta membawa kepada lancung sedang lancung membawa neraka. Dan seseorang suka berdusta sehingga tercatat di sisi Allah pendusta. “ (HR Buchary, Muslim). Hadits ini menjelaskan tentang membiasakan diri berbuat kebaikan dan berkata benar karena itu akan tercatat sebagai orang yang sidiq di sisi Allah. Keaslian
(autentifikasi)
tanda
tangan
dapat
dilakukan
dengan
menggunakan pengenalan pola tanda tangan manual menggunakan jaringan saraf tiruan LVQ (Learning Vector Quantization) dan tanda tangan digital menggunakan algoritma RSA (Rivest Shamir Adleman). Jaringan saraf LVQ (Learning Vector Quantization) adalah suatu metode klasifikasi pola yang masing-masing unit keluaran mewakili kategori atau kelas tertentu. Suatu lapisan kompetitif akan secara otomatis belajar untuk
mengklasifikasikan vektor vektor input. Kelas-kelas yang didapatkan sebagai hasil dari lapisan kompetitif ini hanya tergantung pada jarak antara vektor-vektor input. Jika 2 vektor input mendekati sama, maka lapisan kompetitif akan meletakkan kedua vektor input tersebut ke dalam kelas yang sama. Sedangkan Algoritma RSA (Rivest Shamir Adleman) adalah merupakan algoritma kriptografi kunci publik (asimetris). Ditemukan pertama kali pada tahun 1977 oleh R. Rivest, A. Shamir, dan L. Adleman. RSA disebut sistem sandi asimetris RSA yang menggunakan algoritma asimetrik dan mempunyai dua kunci yang berbeda, disebut pasangan kunci (key pair) untuk proses enkripsi dan dekripsi. Tanda tangan digital merupakan suatu nilai kriptografis yang bergantung pada pesan dan pengirim pesan (Munir, 2004). Dengan tanda tangan digital keaslian informasi dapat dijamin dan juga dapat digunakan untuk membuktikan asal informasi. Selain tanda tangan digital, pengenalan tanda tangan manual (handwriting signature) yang digabungkan dengan tanda tangan digital mulai dikenalkan karena keamanannya lebih terjamin. Dalam tanda tangan digital, penyerangan (cracking) dilakukan untuk memecahkan kunci atau pesan (informasi), dan metode penggabungan dari pengenalan tanda tangan manual (handwriting signature) dan tanda tangan digital merupakan salah satu solusi keamanan yang lebih baik. Contoh penggabungan tanda tangan digital dengan tanda tangan manual adalah smart card. Smart card mempunyai pasangan kunci privat dan kunci publik yang digunakan sebagai autentifikasi tanda tangan digital dan foto sebagai tanda tangan manual (handwritten signature).
Kunci-kunci yang ada pada pasangan kunci mempunyai hubungan secara matematis, tetapi tidak dapat dilihat secara komputasi untuk mendeduksi kunci yang satu ke pasangannya. Algoritma ini disebut kunci publik, karena kunci enkripsi dapat disebarkan. Orang-orang dapat menggunakan kunci publik ini, tapi hanya orang yang mempunyai kunci privat sajalah yang bisa mendekripsi data tersebut. Berdasarkan latar belakang di atas betapa pentingnya autentifikasi tanda tangan yang merupakan salah satu bukti untuk mengesahkan atau membenarkan dokumen, maka penulis membuat tugas akhir dengan judul “AUTENTIFIKASI PENGENALAN POLA TANDA TANGAN MANUAL MENGGUNAKAN JARINGAN SARAF TIRUAN LVQ (LEARNING VECTOR QUANTIZATION) DAN TANDA TANGAN DIGITAL MENGGUNAKAN ALGORITMA RSA (RIVEST SHAMIR ADLEMAN)”. 1.2
Rumusan Masalah Berdasarkan uraian pada latar belakang di atas, maka didapatkan rumusan
masalah, yaitu bagaimana mengimplementasikan autentifikasi pengenalan pola tanda tangan manual menggunakan jaringan saraf tiruan LVQ dan tanda tangan digital menggunakan algoritma RSA. 1.3
Batasan Masalah Dari permasalahan diatas, berikut ini diberikan batasan masalah untuk
menghindari melebarnya masalah yang akan diselesaikan:
a. Data input adalah berupa Image tanda tangan manual bertipe bitmap (bmp). Proses input tanda tangan manual (handwriting signature) berupa image (offline recognition). b. Gambar tanda tangan tidak ada kotoran (noise) didalam image tanda tangan manual seperti stempel. c. Metode yang digunakan dalam aplikasi ini adalah metode LVQ untuk tanda tangan manual dan RSA untuk tanda tangan digital. d. Aplikasi
ini
menggunakan
bahasa
pemrogramana
Delphi
dan
menggunakan Database Acces. 1.4
Tujuan Tujuan dari penelitian ini adalah mengimplementasikan autentifikasi
pengenalan pola tanda tangan manual dan tanda tangan digital menggunakan jaringan saraf tiruan LVQ dan algoritma RSA. 1.5
Manfaat Manfaat yang dapat dihasilkan dari penyusunan skripsi ini adalah untuk
mengetahui autentifikasi (keaslian) tanda tangan pada dokumen teks. 1.6
Metodologi Penelitian Metodologi yang digunakan dalam aplikasi ini adalah sebagai berikut:
1.
Pengumpulan data-data yang diperlukan Beberapa metode yang akan dipakai dalam pengumpulan data: a. Studi Literatur Pada metode ini penulis akan melakukan pencarian, pembelajaran dari berbagai macam literatur dan dokumen yang menunjang pengerjaan
skripsi ini khususnya yang berkaitan dengan autentifikasi pengenalan pola tanda tangan manual menggunakan jaringan saraf tiruan LVQ dan tanda tangan digital menggunakan algoritma RSA. b. Browsing Melakukan pengamatan ke berbagai macam website di internet yang menyedikan informasi yang mendukung dan relevan dengan permasalahan dalam pembuatan sistem ini. 2.
Analisa data yang telah dikumpulkan Membuat analisa terhadap data yang sudah diperoleh dari hasil studi literatur dan browsing yaitu menggabungkan dengan laporan dan kebijakan pemakai menjadi spesifikasi yang terstruktur dengan menggunakan pemodelan.
3.
Perancangan dan Desain Sistem Memahami
rancangan
aplikasi
sesuai
data
yang
ada
dan
mengimplementasikan model yang diinginkan oleh pengguna. Pemodelan sistem ini berupa Context Diagram, Data Flow Diagram, ER-Diagram dan Flowchart, guna mempermudah dalam proses-proses selanjutnya. 4.
Pembuatan Aplikasi Tahap ini merupakan tahap pembuatan dan pengembangan aplikasi sesuai dengan desain sistem yang ditetapkan pada tahap sebelumnya. Aplikasi autentifikasi pengenalan pola tanda tangan manual menggunakan jaringan saraf LVQ dan tanda tangan digital menggunakan algoritma RSA dibangun dengan bahasa pemograman Delphi dan Acces.
5.
Uji Coba dan Evaluasi
Menguji coba seluruh spesifikasi terstruktur dan sistem secara keseluruhan. Pada tahap ini, dilakukan uji coba sistem yang telah selesai disusun. Proses uji coba ini diperlukan untuk memastikan bahwa sistem yang telah dibuat sudah benar, sesuai dengan karakteristik yang ditetapkan dan tidak ada kesalahan-kesalahan yang terkandung di dalamnya. 6.
Penyusunan Buku Tugas Akhir Tahap terakhir ini merupakan dokumentasi pelaksanaan tugas akhir. Diharapkan, buku tugas akhir ini bermanfaat bagi pembaca yang ingin mengembangkan sistem ini lebih lanjut maupun pada lain kasus.
1.7
Sistematika Penulisan Adapun sistematika pada Tugas Akhir ini adalah sebagai berikut : BAB I
PENDAHULUAN Bab ini berisi tentang latar belakang, rumusan masalah, batasan masalah, tujuan, manfaat, metodologi dan sistematika penulisan.
BAB II
LANDASAN TEORI Bab ini menjelaskan tentang teori-teori yang terkait dan menunjang dalam pembuatan tugas akhir ini, meliputi : 1. Autentifikasi 2. Tanda Tangan Digital 3. Kriptografi 4. Algoritma RSA (Rivest-Shamir-Adleman) 5. Tanda Tangan Manual (Handwriting Signature) 6. Pengenalan Pola
7. Jaringan Syaraf Tiruan BAB III
DESAIN DAN PERANCANGAN SISTEM Bab ini menjelaskan tentang analisa yang dilakukan dalam merancang dan membuat aplikasi autentifikasi pengenalan pola tanda tangan manual dan tanda tangan digital yang meliputi Context Diagram, Data Flow Diagram, ER-Diagram dan Flowchart.
BAB IV
HASIL DAN PEMBAHASAN Bab ini membahas tentang implementasi dari aplikasi yang dibuat secara keseluruhan. Serta melakukan pengujian terhadap aplikasi yang dibuat untuk mengetahui aplikasi tersebut telah dapat menyelesaikan permasalahan yang dihadapi sesuai dengan apa yang diharapkan.
BAB V
PENUTUP Bab ini berisi tentang kesimpulan dan saran yang diharapkan dapat bermanfaat untuk pengembangan program aplikasi selanjutnya.
BAB II LANDASAN TEORI
2.1
Autentifikasi Autentifikasi adalah proses pembuktian keaslian dan integritas suatu data
yang dikirim dari seseorang. Sedangkan integritas adalah jaminan bahwa suatu data yang diterima adalah data yang sama dengan data yang dikirim Dalam autentifikasi dokumen teks, autentifikasi yang baik adalah autentifikasi yang memberikan jaminan kerahasiaan (Confidentiality) dan autorisasi (Authorization). Yang dimaksud jaminan kerahasiaan dalam hal ini adalah dokumen yang dimaksud mempunyai informasi yang dapat dijadikan suatu alat pengesahan (biasanya pengesahan dilakukan dengan verifikasi). Hal ini sejalan dengan Firman Allah SWT pada QS.Al Hujaraat/49:6 sebagai berikut:
Artinya : “Hai orang-orang yang beriman, jika datang kepadamu orang Fasik membawa suatu berita, Maka periksalah dengan teliti agar kamu tidak menimpakan suatu musibah kepada suatu kaum tanpa mengetahui keadaannya yang menyebabkan kamu menyesal atas perbuatanmu itu”.(QS.Al Hujaraat/49:6) Di sisi lain kepada pembawa berita, Al Qur’an berpesan:
Artinya: “Hai orang-orang yang beriman, bertakwalah kamu kepada Allah dan Katakanlah Perkataan yang benar,” (QS.Al Ahzab/33:70)
Atas dasar Surat ini, para ulama menekankan bahwa semua ucapan apa pun bentuknya dan kandungannya, di samping harus sesuai dengan kenyataan, juga harus menjamin sasarannya untuk tidak terjerumus ke dalam kesulitan, bahkan membutuhkan manfaat. Dari sinilah dikenal dengan ungkapan “li kulli maqam maqal wa likulli maqal maqam” (untuk setiap tempat ada ucapan yang sesuai dan untuk setiap ucapan ada tempat yang sesuai). Boleh jadi ada kebenaran yang harus ditangguhkan penyampaiannya demi kemaslahatan (M Quraish, 1994). Metode yang digunakan dalam autentifikasi dokumen elektronik adalah dengan cara menambahkan (meng-embedded) tanda tangan digital (digital signature) pada dokumen elektronik . 2.2
Tanda Tangan Digital (Digital Signature) Tanda tangan digital merupakan suatu nilai kriptografis yang bergantung
pada pesan dan pengirim pesan (Munir, 2004). Tanda tangan digital bukanlah tanda tangan yang didigitasi dengan scanner kemudian ditambahkan (diembended) kedalam pesan (Ratna, 2005). Dengan tanda tangan digital keaslian informasi dapat dijamin dan juga dapat digunakan untuk membuktikan asal informasi. Tanda tangan digital juga merupakan salah satu mekanisme untuk menjaga keautentikan/keaslian pesan beserta pengirimnya. (Baharsyah, 2006). Dalam Undang-Undang Republik Indonesia No 11 tahun 2008 mengenai informasi dan transaksi elektronika (UU-ITE) pengertian tanda-tangan elektronik adalah suatu tanda tangan yang terdiri atas Informasi Elektronik yang dilekatkan, terasosiasi atau terkait dengan Informasi Elektronik lainnya yang digunakan sebagai alat
verifikasi dan autentikasi. Aturan lebih lanjut mengenai tanda-tangan elektronik ini ada dalam Pasal 11 ayat 1 yang mengatur bahwa : Tanda Tangan Elektronik memiliki kekuatan hukum dan akibat hukum yang sah selama memenuhi persyaratan sebagai berikut : a) Data pembuatan Tanda Tangan Elektronik terkait hanya kepada Penanda Tangan. b) Data pembuatan Tanda Tangan Elektronik pada saat proses penandatanganan elektronik hanya berada dalam kuasa Penanda Tangan. c) Segala perubahan terhadap Tanda Tangan Elektronik yang terjadi setelah waktu penandatanganan dapat diketahui. d) Segala perubahan terhadap Informasi Elektronik yang terkait dengan Tanda Tangan Elektronik tersebut setelah waktu penandatanganan dapat diketahui. e) Terdapat
cara tertentu yang dipakai untuk mengidentifikasi siapa
Penandatangannya. f) Terdapat cara tertentu untuk menunjukkan bahwa Penanda Tangan telah memberikan persetujuan terhadap Informasi Elektronik yang terkait. Tanda tangan digital merupakan implementasi dari kriptografi kunci publik. Didalam kriptografi kunci publik proses enkripsi menggunakan kunci publik dan proses dekripsi menggunakan kunci privat. Sedangkan didalam skema tanda tangan digital. Proses enkripsi menggunakan kunci privat (Signing) dan dekripsi (Verifying) menggunakan kunci publik.
Digital signature adalah sebuah tanda dari pengirim yang ditempatkan pada data secara unik dengan tujuan untuk merahasiakan data dari orang yang tidak bertanggung jawab. 2.3
Kriptografi Cryptography salah satu ilmu yang sangat penting dan mulai menonjol
sejak digunakan pada aplikasi radio dan pengiriman perintah perang pada Perang Dunia ke II. Aplikasi ini pada PD II digunakan untuk membuat kode dan membakar atau mengacak kode lawan. Saat ini cryptography semakin dikembangkan untuk aplikasi-aplikasi pertahanan keamanan maupun untuk aplikasi bisnis. 2.3.1 Pengertian Kriptografi Menurut Fidens (2006), kriptografi adalah ilmu yang berguna untuk mengacak data sehingga tidak dapat dibaca oleh pihak ketiga.
Gambar 2.1 Sistem Kriptografi Pada intinya sistem pengamanan dokumen dengan Cryptography ada 2 langkah yaitu : a. Proses Enkripsi
Proses enkripsi adalah suatu proses yang mengubah plainteks (kode sesungguhnya) menjadi ciperteks (kode rahasia). Untuk merubah plainteks ke ciperteks digunakan fungsi matematika dan kunci.
b. Proses Dekripsi
Proses dekripsi adalah suatu proses yang mengubah ciperteks menjadi plainteks, dimana dokumen yang sudah teracak dikembalikan ke dokumen semula yang juga menggunakan fungsi matematika dan kunci. Sebelum proses Proses enkripsi maupun dekripsi dilakukan, ada satu pengaman awal yaitu menentukan kunci sandi kunci pengaman (key pairs) yang terdiri dari private key, public key dan modulo yang digunakan untuk membuka dan mengunci system. Setelah system dapat dibuka dengan kunci pengaman, proses enkripsi maupun dekripsi dapat dilakukan, baik dilakukan dengan proses enkripsi dan enkripsi sekali saja maupun proses enkripsi dan dekripsi yang dilakukan berkalikali agar semakin terjamin kerahasiaannnya. Banyak metode yang berasal dari fungsi matematika yang digunakan untuk proses enkripsi maupun dekripsi. Salah satu metode tersebut yang digunakan dalam penelitian ini adalah metode RSA. Pada metode RSA yang berperan penting adalah penyandian blok, yaitu setiap proses perhitungan enkripsi dan dekripsi dilakukan dengan hitungan per blok. Pada kriptografi modern, algoritma kriptografi modern, algoritma kriptografi bersifat publik, tetapi kunci harus tetap dijaga kerahasiaannya. Kunci adalah parameter yang digunakan untuk transformasi enkripsi dan dekripsi. Kunci biasanya berupa string atau deretan bilangan. Konsep penggunaan kriptografi menurut fidens (2006) yaitu : 1. Kerahasiaan (Confidentiallity) yaitu proses penyembunyian data dari orangorang yang tidak mempunyai otoritas.
2. Integritas (Integrity) yaitu proses untuk menjaga agar sebuah data tidak dirubah-rubah waktu dikirim maupun disimpan. 3. Penghindaran penolakan (Non Repundatition) yaitu proses untuk menjaga bukti-bukti bahwa suatu data berasal dari seseorang. 4. Autentikasi (Authentication) yaitu proses untuk menjamin keaslian data. 2.3.2 Algoritma Kriptografi Berdasarkan kunci (Key) yang dipakai dalam kriptografi, algoritma kriptografi dibagi menjadi 2 yaitu algoritma kunci simetris (symmetric-key cryptography) dan algoritma kunci asimetris (asimetric-key cryptography). 2.3.2.1 Algoritma Kunci Simetris (Symmetric-Key Cryptography) Algoritma kunci asimetris menggunakan kunci untuk proses enkripsi yang sama dengan kunci yang digunakan untuk proses dekripsi. Dalam hal ini pengirim dan penerima harus menyetujui suatu kunci tertentu atau yang bisa disebut kunci privat (secret key). Keamanan dari kriptografi ini terletek pada kerahasiaan kuncinya. Kelebihan dari kriptografi simetris ini lebih cepat dibanding algoritma asimetris contoh algoritma ini adalah blowish, IDEA, Data encryption standard (DES). 2.3.2.2 Algoritma Kunci Asimetris (Asymmetric-Key Cryptography) Dalam algoritma ini kunci yang digunakan untuk proses enkripsi berbeda dengan kunci yang digunakan untuk proses dekripsi. Untuk proses enkripsi kunci yang digunakan disebut kunci publik (Public key). Sedangkan untuk dekripsi kunci yang digunakan kunci rahasia (Privat Key). Algoritma ini juga bisa disebut algoritma kunci publik. Dalam algoritma asimetris, kunci publik dapat diketahui
orang lain, sedangkan kunci privat hanya diketahu pemiliknya. Contoh dari algoritma ini adalah RSA (Rivest-Shamir-Adleman), ElGamal, Elliptic Curve Cryptography (ECC). 2.4
Algoritma RSA (Rivest-Shamir-Adleman) RSA merupakan algoritma kriptografi kunci publik (asimetris). Ditemukan
pertama kali pada tahun 1977 oleh R. Rivest, A. Shamir, dan L. Adleman. Nama RSA sendiri diambil dari ketiga penemunya tersebut. Sebagai algoritma kunci publik, RSA mempunyai dua kunci, yaitu kunci publik dan kunci rahasia. Kunci publik boleh diketahui oleh siapa saja, dan digunakan untuk proses enkripsi. Sedangkan kunci rahasia hanya pihak-pihak tertentu saja yang boleh mengetahuinya, dan digunakan untuk proses dekripsi. Keamanan sandi RSA terletak pada sulitnya memfaktorkan bilangan yang besar. Sampai saat ini RSA masih dipercaya dan digunakan secara luas di internet.
Gambar 2.2 Skema Algoritma Kunci Publik RSA terdiri dari tiga proses, yaitu proses pembentukan kunci, proses enkripsi dan proses dekripsi. Sebelumnya diberikan terlebih dahulu beberapa konsep perhitungan matematis yang digunakan RSA. 2.4.1 Pembentukan Kunci Berikut ini adalah proses pembentukan kunci. Proses ini dilakukan oleh pihak penerima, dalam hal ini adalah B.
1. Ambil secara random dua bilangan prima p dan q yang besar dan berbeda, namun ukuran keduanya (jumlah digit dalam basis bilangan yang digunakan) harus sama. 2. Hitung modulus n dan fungsi Euler’s Totient φ (n) dengan rumus : n
=pq
φ (n)
= (p −1)[q −1]
Ket dengan : n
= modulus (public key)
p dan q = dua bilangan prima yang dimunculkan secara random. 3. Pilih suatu bilangan integer e sedemikian hingga I<e<φ (n) dan gcd(e,φ (n)) = 1 Ket dengan : I
= bilangan integer
e
= public key (kunci enkripsi)
gcd
= persekutuan pembagi terbesar (greatest common divisor)
4. Hitung nilai integer d dimana I < d <φ (n) sedemikian hingga d = e−1mod φ (n) atau ed = I(modφ (n)) Ket dengan : d = private key (kunci dekripsi) 5. Membangun tabel untuk mempresentasikan tiap karakter. 6. Plainteks (teks yang akan dienkripsi) disandikan dengan angka-angka sesua dengan tabel yang terbentuk oleh proses 5 dan akan diperoleh suatu nilai M yang merupakan kumpulan angka-angka dari plaintext, kemudian kumpulan angka-angka tersebut diblok tiap 4 angka menjadi m1,m2, L,mn. Proses enkripsi dilakukan per blok dan masing-masing blok rumus enkripsinya adalah c1 m1 e (modn) 1 = 1 , c2 m2 e (modn) 2 = 2,...dst, sehingga menghasilkan nilai C dimana C merupakan kumpulan angka-angka dari c1,c2, L,cn.
7. Proses dekripsi dilakukan dengan menggunakan logika seperti langkah 6 dengan melakukan perhitungan terbalik, yaitu m1 c1d (modn) 1 = 1 , m2 c2d (modn) 2 = 2 ,dst, sehingga menghasilkan nilai M dimana M = m1 m2 m3 Nilai akhir M tersebut dipresentasikan balik dengan table yang dibangun seperti pada proses 5 di atas. 8. Kunci publik: (e,n) dan kunci rahasia/privat : (d,n) Agar mempermudah dalam memahami sandi RSA, khusus pada tulisan ini, plainteks yang digunakan hanya berupa bilangan 0 samapai dengan 25 yang berkorespondensi dengan huruf a sampai dengan z. Akan tetapi pada penggunaan yang sebenarnya, digunakan korespondensi khusus seperti kode ASCII, serta bilangan-bilangan yang sangat besar. Perhatikan, dalam pemilihan p dan q harus memenuhi n = pq lebih dari atau sama dengan nilai plainteks yang mungkin. Dalam hal ini n = pq ³ 25. 2.4.2 Proses Enkripsi (Signing) Untuk mengenkripsi sebuah pesan M, maka M harus dipecah menjadi sejumlah m < n lalu dilanjutkan dengan menghitung chypertext c menggunakan kunci publik (e,n) dengan menggunakan persamaan : c = me mod n Kemudian chypertext c hasil enkripsi dikirim 2.4.3 Proses Dekripsi (Verifiying) Untuk mendapatkan m dari c yang telah dikirim, pendekripsian dilakukan menggunakan kunci privat (d,n) dengan persamaan : m = cd mod n
setelah m didapat, maka pesan M dapat diketahui. 2.5
Tanda Tangan Manual (Handwriting Signature) Tanda tangan manual atau biasa disebut Handwriting Signature
merupakan salah satu bagian dari ciri atau karakter seorang (Biometric) (Alisher, 2003). Tanda tangan manual didigitasi melalui scan, dan tanda tangan manual yang dimasukkan lewat pen tablet atau mouse disebut online signature. Menurut Alisher (2005) konsep biometric yang digunakan didalam aplikasi autentifikasi memiliki kriteria sebagai berikut : 1. Unik 2. Sulit dikopi atau dicuri 3. Diterima Oleh Publik Beberapa contoh biometric sebagai autentifikasi menurut Fairhurst (2003) adalah : 1. Ciri-ciri wajah 2. Karakteristik Suara 3. Sidik Jari 4. Tanda Tangan Manual 5. Pola selaput mata 6. bentuk tangan 7. pola urat tangan 8. tombol dinamis 9. bau 10. bentuk kuping 11. pola pembuluh darah retina mata Konsep biometric dibagi menjadi dua kategori yaitu fisik dan kebiasaan. Fairhurt (2003). Tanda tangan manual merupakan kebiasaan (Behaviour) biometric. Didalam sistem biometric dapat dilakukan dengan 2 model yaitu identifikasi dan verifikasi. Identifikasi yaitu sistem untuk melatih data pola dari
beberapa orang kemudian sistem membandingkan data input dengan setiap data template, dan dan menghasilkan pola dengan data template biometric yang paling serupa. Sedangkan untuk verifikasi adalah digunakan untuk memberi akses kedalam sistem dengan cara yang sama seperti identifikasi. 2.6
Pengenalan Pola Pengenalan pola atau Pattern Recognition adalah disiplin ilmu yang
bertujuan untuk mengklasifikasikan obyek menjadi beberapa kategori atau kelas (Koutroumbas, 2003). Pola adalah entitas yang terdefinisi dan dapat diidentifikasi melalui ciricirinya (features). Ciri-ciri tersebut digunakan untuk membedakan suatu pola dengan pola lainnya. Ciri yang bagus adalah ciri yang memiliki daya pembeda yang tinggi sehingga pengelompokan pola berdasarkan ciri yang dimiliki dapat dilakukan dengan keakuratan yang tinggi. Sebagai contoh tabel 2.4 berikut ini: Tabel 2.1 Contoh pengelompokan pola berdasarkan cirinya Pola Huruf Suara Tanda tangan Sidik jari
Ciri Tinggi, tebal, titik sudut, lengkungan garis Amplitude, frekuensi, nada, intonasi, warna Panjang, kerumitan, tekanan Lengkungan, jumlah garis
Ciri dari suatu pola diperoleh dari hasil pengukuran terhadap objek uji. Khusus pada pola yang terdapat di dalam citra, ciri-ciri yang dapat diperoleh berasal dari informasi: a. Spasial
: intensitas piksel dan histogram
b. Tepi
: arah dan kekuatan
c. Kontur
: garis, elips, dan lingkaran
d. Wilayah/bentuk
: keliling, luas, dan pusat massa
e. Hasil transformasi Fourier : frekuensi
Pendekatan dari pengenalan pola menurut Guiterres (2002) dibedakan menjadi tiga yaitu Statistical (statPR)n Neural (NeurPR) dean Syntactic (SyntPR). Pendekatan statistik adalah model pendekatan yang mendefinisikan kondisi probabilitas dari kelas-kelas Feuture dengan fungsi Pr(x|cj) atau dapat dikatakan probabilitas dari feuture vector x merupakan kelas cj Guiterres (2002). Pendekatan neural adalah model pengklasifikasian dari proses jaringan unit yang dimasukkan. Pengetahuan dari klasifikasi ini disimpan berdasarkan kekuatan hubungan dan berat dari setiap unit Guiterres (2002). Sedangkan pendekatan struktural yang sama dari setiap unit yang dimasukkan Guiterres (2002). Ada banyak aplikasi yang bisa dijadikan implementasi dari pengenalan pola, di antaranya adalah pengenalan wajah pada manusia, pengenalan tulisan tangan, pengenalan penyakit berdasarkan gejala-gejala yang ditemukan pada objek. Pengenalan wajah dan tulisan tangan manusia bisa dibuat melalui pendekatan pemrosesan citra yang mana tujuan akhir dari pemrosesan citra tersebut digunakan untuk pengelompokan objek sehingga menghasilkan output yang diinginkan. Sedangkan pengenalan penyakit berdasarkan gejala-gejala yang ada pada seorang pasien bisa dilakukan dengan pendekatan analisa data, kemudian mengambil kesimpulan dari data-data yang sudah dikelompokkan. Atau dengan kata lain, pembuatan aplikasi secara otomatis bercerita dan menjelaskan secara terperinci tentang informasi yang dikandung objek. Dan bagaimana kelengkapan informasi yang dikandung dari objek tersebut bergantung kepada kualitas dan kuantitas dari data statistik.
Beberapa metode yang bisa digunakan untuk pengenalan pola adalah Jaringan Syaraf Tiruan (JST), metode statistik, metode terstruktur dan lain sebagainya. Dengan JST, menganalogikan cara berfikir pada otak manusia. Jadi, informasi di proses sebagaimana otak manusia memproses informasi yang di dapat. Misalnya di dalam skripsi ini mengenai pengenalan pola tanda tangan manual pada dokumen teks. Sedangkan metode statistik berdasarkan hasil analisa data yang sudah terkumpul. Misalnya pengenalan dan analisa penyakit pada manusia. 2.7
Jaringan Syaraf Tiruan Jaringan Syaraf Tiruan (JST) merupakan representasi buatan dari otak
manusia yang selalu mencoba mensimulasikan proses pembelajaran pada otak manusia tersebut. Istilah buatan disini digunakan karena jaringan syaraf ini diimplementasikan dengan menggunakan program komputer yang mampu menyelesaikan sejumlah proses perhitungan selama proses pembelajaran (Kusumadewi, 2003). Jaringan Syaraf Tiruan memodelkan jaringan syaraf biologis yang terdapat pada otak manusia. Pemodelan terutama hanya didekati dari sudut komputasinya saja. Jaringan saraf tiruan bisa dibayangkan seperti otak buatan di dalam ceritacerita fiksi ilmiah. Otak buatan manusia ini dapat berpikir seperti manusia buatan sang khalik dan juga sepandai manusia dalam menyimpulkan sesuatu dari potongan-potongan informasi yang diterima dari situlah komputer diusahakan agar bisa berpikir sama seperti cara berpikir manusia. Akal manusia diciptakan agar dapat memikirkan
kejadian-kejadian yang ada, sesuai dengan firman Allah SWT dalam Al-Qur’an Az Zumar/39 ayat 21 sebagai berikut:
Artinya:”Apakah kamu tidak memperhatikan, bahwa Sesungguhnya Allah menurunkan air dari langit, Maka diaturnya menjadi sumber-sumber air di bumi kemudian ditumbuhkan-Nya dengan air itu tanam-tanaman yang bermacam-macam warnanya, lalu menjadi kering lalu kamu melihatnya kekuning-kuningan, kemudian dijadikan-Nya hancur berderai-derai. Sesungguhnya pada yang demikian itu benar-benar terdapat pelajaran bagi orang-orang yang mempunyai akal.” (QS Az Zumar/39:21) Dari Ayat diatas telah dijelaskan ”inafidzalika ladzikroo liuuulil albab” potongan ayat tersebut menjelaskan bahwa kita sebagai Hamba Allah SWT untuk dapat mengambil pelajaran dari setiap kejadian bagi mereka yang mempunyai akal. Seperti halnya Jaringan Saraf Tiruan dapat melakukan peniruan terhadap aktivitas-aktivitas yang terjadi di dalam suatu jaringan saraf biologi, aktivitasaktivitas yang terjadi adalah aktivitas mengingat, memahami, menyimpan, dan memanggil kembali apa yang pernah dipelajari oleh otak. Jaringan saraf tiruan tidak diprogram untuk menghasilkan keluaran tertentu. Dengan kata lain, penyelesaian masalah dengan jaringan saraf tiruan tidak memerlukan pemrograman. Semua keluaran atau kesimpulan yang ditarik oleh jaringan saraf tiruan didasarkan pada pengalaman selama mengikuti proses pembelajaran melalui contoh-contoh yang diberikan (Ririen, 2007:96). Selama proses pembelajaran, pola-pola input disajikan bersama-sama dengan pola output
yang diinginkan. Sebagai tanggapan atas pola-pola input dan output yang disajikan tersebut, jaringan akan menyesuaikan nilai bobotnya. Jika pelatihan telah berhasil, bobot-bobot yang dohasilkan selama pelatihan jaringan akan memberikan tanggapan atau jawaban yang benar terhadap input yang diberikan. JST terdiri dari sejumlah simpul (node) yang merupakan elemen pemroses. Setiap simpul tersebut memodelkan sebuah sel saraf biologis (neuron). Hubungan antar simpul dicapai melalui bobot koneksi (weight). Bobot koneksi menentukan apakah sinyal yang mengalir bersifat peredam (inhibitory connection). Bobot koneksi yang bersifat meredam dapat dinyatakan, misalnya oleh bilangan negatif, sedangkan yang bersifat merangsang oleh bilangan positif. Selain ditentukan oleh karakteristik bobot koneksinya, besrnya sinyal yang keluar dari sebuah simpul juga ditentukan oleh fungsi aktifasi (activation function) yang digunakannya. Artinya, pemilihan fungsi aktifasi menentukan derajat keaktifan dari sebuah simpul (Liman, 2005). 2.7.1 Jaringan Learning Vector Quantization (LVQ) LVQ merupakan metode pengenalan pola yang melakukan pembelajaran terlebih dahulu atau supervised learning Kusumadewi (2003). Didalam pengenalan tanda tangan manual, kumpulan tanda tangan atau yang disebut template yang dipelajari terlebih dahulu sebelum dilakukan pencocockan (fenton 2004) LVQ adalah suatu metoda
klasifikasi pola yang masing-masing unit
keluaran mewakili kategori atau kelas tertentu (beberapa unit keluaran seharusnya
digunakan untuk masing-masing kelas). Vektor bobot untuk suatu unit keluaran sering dinyatakan sebagai sebuah vektor referens. Diasumsikan bahwa serangkaian pola pelatihan dengan klasifikasi yang tersedia bersama dengan distribusi awal vektor referens. Sesudah pelatihan, jaringan LVQ mengklasifikasi vektor masukan dengan menugaskan ke kelas yang sama sebagai unit keluaran, sedangkan yang mempunyai vektor referens diklasifikasikan sebagai vektor masukan. 2.7.1.1 Arsitektur Jaringan LVQ merupakan jaringan syaraf dengan tipe arsitektur jaringan lapistunggal umpan-maju (Single Layer Feedforward) yang terdiri atas unit masukan.
Gambar 2.3 Jaringan Syaraf Learning Vector Quantization Algoritma LVQ (Kusumadewi,2003) : 1. Tetapkan: Bobot (W), Maksimum Epoh (MaxEpoh), error minimum yang diharapkan (Eps), learning rate (α) 2. Masukkan : a. Data input: x(m,n) b. Target berupa kelas : T(1,n)
3. Tetapkan kondisi awal : a. Epoh = 0; b. Err = 1. 4. Kerjakan selama : (epoh < MaxEpoh) dan (α >Eps) a. Epoh = epoh+1; b. Kerjakan untuk i= 1 sampai n i. Memilih (J) jarak sedemikian hingga || X –Wj || minimum (sebut sebagai Cj) ii. Perbaiki Wj dengan ketentuan: - Jika T = Cj maka : - Wj(baru) = Wj (lama) + α (X –Wj(lama)) - Jika Cj ≠ T maka: Wj (baru) = Wj (lama) - α (X –Wj(lama)) c. Kurangi nilai Pengurangan α. 2.8
Keaslian Dokumen Dan Keamanan Dokumen Dari Segi Prespektif Islam Dan Integrasinya
Artinya:”Dan Sesungguhnya Kami telah mendatangkan sebuah kitab (Al Quran) kepada mereka yang Kami telah menjelaskannya atas dasar pengetahuan Kami[546]; menjadi petunjuk dan rahmat bagi orangorang yang beriman.” (QS. Al A’raaf/7:52) Al Qur’an merupakan kitab suci agama islam yang diturunkan di dunia ini sebagai petunjuk dan rahmat bagi yang beriman, atas dasar pengetahuan ”Kami” tentang apa yang menjadi kemashlahatan bagi hamba-hamba ”Kami” di dunia dan akhirat. Al Qur’an merupakan kitab yang benar-benar berasal dari Allah SWT (Kalamullah) sesuai dengan firman Allah SWT surat Al Imran/3 ayat 7:
Artinya: ”Dia-lah yang menurunkan Al kitab (Al Quran) kepada kamu. di antara (isi) nya ada ayat-ayat yang muhkamaat], Itulah pokok-pokok isi Al qur'an dan yang lain (ayat-ayat) mutasyaabihaat. Adapun orang-orang yang dalam hatinya condong kepada kesesatan, Maka mereka mengikuti sebahagian ayat-ayat yang mutasyaabihaat daripadanya untuk menimbulkan fitnah untuk mencari-cari ta'wilnya, Padahal tidak ada yang mengetahui ta'wilnya melainkan Allah. dan orang-orang yang mendalam ilmunya berkata: "Kami beriman kepada ayat-ayat yang mutasyaabihaat, semuanya itu dari sisi Tuhan kami." dan tidak dapat mengambil pelajaran (daripadanya) melainkan orang-orang yang berakal.” (QS. Ali Imran/3:7) Oleh karena itu sebagai umat yang beriman dan berilmu tidaklah kita raguragu terhadap keaslian dan kebenaran Al Qur’an karena Al Qur’an dijaga langsung keaslianya oleh Allah SWT melalui hamba-hambanya yang beriman dan bertakwa. Dari sinilah kita dapat mengambil pelajaran dari arti sebuah kebenaran, yang dapat kita terapkan dalam kehidupan sehari-hari. Autentifikasi atau keaslian dokumen merupakan salah satu hal yang harus dilindungi dari orang-orang yang tidak bertanggung jawab. Salah satu solusi untuk menjaga keaslian sebuah dokumen adalah dengan megamankan dokumen tersebut dari pihak-pihak yang tidak berkepentingan. Sebagaimana firman Allah dalam surat Al Hasyr/59:23:
Artinya: ”Dialah Allah yang tiada Tuhan selain Dia, Raja, yang Maha Suci, yang Maha Sejahtera, yang Mengaruniakan Keamanan, yang Maha Memelihara, yang Maha perkasa, yang Maha Kuasa, yang memiliki segala Keagungan, Maha suci Allah dari apa yang mereka persekutukan.” (QS. Al Hasyr/59:23) Keamanan erat hubungannya dengan keimanan, dimana ketika keimanan lemah niscaya keamanan akan tergoncang. Dua unsur inilah harus saling mendukung, sesuai firman Allah dalam surat Al An’am/6:82:
Artinya: ”orang-orang yang beriman dan tidak mencampuradukkan iman mereka dengan kezaliman (syirik), mereka Itulah yang mendapat keamanan dan mereka itu adalah orang-orang yang mendapat petunjuk.” (QS. Al An’am/6:82) Seorang muslim akan dapat melaksanakan kewajibannya sebagai seorang muslim jika dirinya merasa aman dari ketakutan-ketakutan. Begitu penting sampai-sampai Nabi Ibrahim memohon kepada Allah curahan kezmanan sebelum meminta kemudahan rizki, sebab orang yang di dera rasa takut tidak akan dapat menikmati lezatnya makan dan minum. Didalam surat Al Baqorah ayat 126 Allah menceritakan permohonan Nabi Ibrahim:
Artinya: ”Dan (ingatlah), ketika Ibrahim berdoa: "Ya Tuhanku, Jadikanlah negeri ini, negeri yang aman sentosa, dan berikanlah rezki dari buahbuahan kepada penduduknya yang beriman diantara mereka kepada Allah dan hari kemudian. Allah berfirman: "Dan kepada orang yang kafirpun aku beri kesenangan sementara, kemudian aku paksa ia menjalani siksa neraka dan Itulah seburuk-buruk tempat kembali.”(QS. Al Baqoroh/2:126)
Secara eksplisit beliau mendahulukan permohonan keamanan dari pada permohonan rizki. Dari sini dapat kita ketahui bersama betapa pentingnya nilai keamanan bagi setiap bangsa. Setiap negara pasti menginginkan negaranya aman segala mekanisme ditempuh untuk menciptakan suasana aman. Namun ada negara yang memiliki pemahaman keliru dalam mewujudkan rasa aman tersebut pemukulan, penganiayaan dan memaksakan kehendak kepada rakyat demi keamanan. Tindakan inilah yang disebut diktatorisme, adapula dengan cara membebaskan penjahat dengan istilah liberalisme. Adapaula negara yang memanfaatkan perkembangan teknologi untuk menciptakan rasa aman di negaranya baik secara individu maupun secara berbangsa dan bernegara. Negara kita Republik Indonesia juga menginginkan rasa aman demi terwujudnya kemerdekaan baik kemerdekaan dalam beragama maupun bersosial dari tujuan itulah para pahlawan kita rela berjuang untuk merebut rasa aman dari penjajah. Demikian pula di dalam dunia komputer tidak lepas pula dengan keamanan salah satunya dengan enkripsi untuk menjaga keaslian sebuah dokumen dari orang yang tidak berkepentingan.
BAB III PERANCANGAN DAN DESAIN SISTEM
3.1
Materi Penelitian Materi yang digunakan dalam penelitian ini diantaranya :
a. Rancangan Aplikasi Autentifikasi pengenalan pola tanda tangan manual menggunakan jaringan saraf tiruan LVQ dan tanda tangan digital menggunakan algoritma RSA. b. Data yang digunakan untuk mendukung sistem yang terdiri dari : 1) Image preprocessing yaitu sistem ini dapat mengubah image berwarna kedalam bentuk citra biner. 2) Melakukan pembelajaran terhadap pola tanda tangan yang terlebih dahulu melalui tahap Image preprocessing. 3) Melakukan proses pengenalan terhadap pola tanda tangan dengan menggunakan jaringan saraf tiruan LVQ. 4) Membuat kunci publik dan privat untuk proses enkripsi dan dekripsi pada tanda tangan digital. 3.2
Alat Penelitian
3.2.1 Kebutuhan Hardware Kebutuhan hardware dalam Aplikasi Autentifikasi pengenalan pola tanda tangan manual menggunakan jaringan saraf tiruan LVQ dan tanda tangan digital menggunakan
algoritma
RSA
mulai
tahap
design,
perancangan,
dan
implementasinya mengunakan sebuah perangkat Komputer dengan spesifikasi sebagai berikut : Hardware yang digunakan: a. Prosesor Intel Dual Core 2,66 GHz b. RAM 256 MB c. Hardisk dengan kapasitas 40 GB d. Monitor 17” e. Keyboard f. Mouse PS2 Hardware minimum untuk menjalankan program : a. Processor Pentium III 450 MHz. b. Hardisk 40 GB. c. Memory 128 MB. d. Mouse, Keyboard, dan Monitor. 3.2.2 Kebutuhan Software Adapun untuk kebutuhan software dalam
Aplikasi
Autentifikasi
pengenalan pola tanda tangan manual menggunakan jaringan saraf tiruan LVQ dan tanda tangan digital menggunakan algoritma RSA mulai tahap design, perancangan, dan implementasinya mengunakan software sebagai berikut: Software yang digunakan : a. Sistem Operasi Windows XP Service Pack 2 b. Borland Delphi 6.0 c. Microsoft Office Access 2003 Software minimum untuk menjalankan progam : a. Sistem Operasi Windows XP Service Pack 2 b. Borland Delphi 5 c. Microsoft Office Access xp
3.3
Analisis Sistem Autentifikasi pengenalan pola tanda tangan manual menggunakan jaringan
saraf tiruan LVQ dan tanda tangan digital menggunakan algoritma RSA. Merupakan pembuatan perangkat lunak yang mengimplementasikan kedua metode tersebut yaitu Jaringan saraf tiruan LVQ (Learning Vektor quantization) dan Algoritma RSA (Rivest-Shamir-Adleman). Tujuan pembuatan system ini adalah mengenali pola tanda tangan yang berupa citra, baik citra grayscale 8 bit atau citra warna 24 bit. Kemudian dilakukan image preprocessing yaitu proses awal agar citra tersebut dapat diproses selanjutnya. Jika semua operasi pada preprocessing telah dikerjakan, maka sistem siap melakukan proses pengkodean dalam bentuk matrik. Matrik atau vektor-vektor dari tanda tangan manual akan dirubah dalam bentuk hash untuk keamanannya. .
(a) (b) Gambar 3.1 Representasi image LVQ (a) image karakter, (b) matrik image Hasil pengenalan berupa nim, nama dan nilai hash dari tanda tangan tersebut akan dienkripsi dengan algoritma RSA menggunakan kunci publik. Hasil enkripsi akan disimpan dan akan didekripsikan menggunakan kunci privat. Hasil yang diinginkan oleh sistem adalah dapat mengenali pola tanda tangan yang telah di scan terlebih dahulu dengan menggunakan jaringan saraf tiruan LVQ, setelah
diketahui polanya tanda tangan akan dienkripsi dengan tanda tangan digital menggunakan algoritma RSA. Aplikasi ini dalam pengimplementasiannya menggunakan input berupa data identitas user meliputi nama, nim, image tanda tangan bmp, nilai learning rate, target error, max epoch ,dan bil prima p, q, e. Kemudian dilakukan proses pembuatan template, proses pembentukan nilai hash, proses learning LVQ, Proses Pengenalan Tanda Tangan Manual, Proses Pembangkitan kunci Tanda Tangan RSA, Proses Enkripsi, lalu Proses verifikasi Tanda Tangan. Output dari aplikasi ini berupa hasil pembelajaran, kunci privat dan kunci publik, binerisasi image, plain teks, nama, nim, dan nilai hash user serta image tanda tangan. Berikut diagram perancanga sistem untuk aplikasi Autentifikasi pengenalan pola tanda tangan manual menggunakan jaringan saraf tiruan LVQ dan tanda tangan digital menggunakan algoritma RSA:
Gambar 3.2 Diagram Perancangan Alur Sistem 3.3.1 Proses Pembuatan Template Proses pembuatan template ini meliputi proses image prepocessing dan pengkodean karakter. Proses ini harus dilalui terlebih dahulu agar inputan image dapat disimpan dalam database yang nantinya akan digunakan dalam proses learning LVQ dan juga proses RSA.
Dalam hal ini, akan dijelaskan bagaimana diagram alir proses pembuatan template yang dapat dilihat pada flowchart di bawah ini:
Gambar 3.3 Flowchart Binerisasi Image Berikut adalah penjelasan flowchart pembuatan template : 1.
Image berwarna berupa tanda tangan dimasukkan ke perangkat lunak secara manual bertipe bmp.
2.
Image akan mengalami proses image preprocesing yaitu melalui tahap grayscale, threshold, thining, crooping sehinga terbentuk citra biner.
3.
Image akan disesuaikan dengan ukuran matrik 20 x 20 berdasarkan pengamatan visual ukuran tersebut sesuai dengan standart image pada aplikasi ini, penyesuaian tersebut melalui proses scalling.
4.
Image akan dikodekan kedalam bentuk matrik apabila warna hitam kurang dari threshold maka akan bernilai 1 dan 0 jika lebih.
5.
Hasil matrik dimasukkan dalam database bersama id tanda tangan.
3.3.1.1 Image Preprocessing Sebelum suatu citra mengalami pemrosesan lebih lanjut, perlu dilakukan proses awal (preprocessing) terlebih dahulu, yaitu pengolahan citra (image) dengan tujuan mendapatkan gambar dengan pola yang dapat dikodekan dengan menggunakan metode template matching yang menghasilkan kode tertentu menurut warna pikselnya. Sehingga dapat digunakan dalam program untuk pengenalan tanda tangan. Tahapan-tahapan pada proses ini dapat dilihat pada diagram di bawah ini:
Gambar 3.4 Diagram proses image preprocessing Adapun uraian dari gambar diatas adalah sebagai berikut: data tanda tangan yang akan diproses, dilakukan proses scanning terlebih dahulu dengan menggunakan alat yang disebut scanner dan dengan format bitmap (*.bmp).
Setelah data tersebut diperoleh berupa data gambar dengan format bitmap, langkah selanjutnya yaitu pemrosesan pada komputer. Berikut penjelasan diagram alir image prepocessing : 1. GrayScale Proses awal yang banyak dilakukan dalam image preprocessing adalah mengubah citra warna menjadi citra grayscale untuk menyederhanakan model citra. Citra berwarna terdiri atas 3 layer matriks, yaitu : R-layer, G-layer, B-layer. Agar dapat mgubah citra berwarna menjadi citra keabuan kita daapat melakukan konversi dengan mengambil rata-rata nilai r, g, dan b sehingga dapat dirumuskan menjadi: S = R+G+B 3 Berikut pseudocode untuk fungsi grayscale: Function ToGray Var R,G,B Begin R ← GerRValue(clr); G ← GetGValue(clr); B ← GetBValue(clr); Result := Round(R*n + G*n +B*n); End
Gambar 3.5 Pseudocode fungsi grayscale 2. Thresholding Thresholding berfungsi untuk mengatur derajat keabuan pada citra sesuai keinginan. Untuk mengatur derajat keabuan kita dapat menggunakan rumus sebagai berikut :
X = b.int (w/b)
Keterangan : w adalah nilai derajat keabuan sebelum thresholding x adalah nilai derajat keabuan setelah thresholding
Pemilihan nilai threshold yang digunakan berpengaruh terhadap ketajaman suatu citra. Biasanya rentangan nilai graylevel yang sering digunakan adalah antara 0-255. Pada skripsi ini, nilai treshold yang digunakan adalah 180. Proses pengubahan ini, dilakukan dengan memeriksa piksel citra. Jika piksel kurang dari 180 maka warna piksel berubah menjadi hitam, begitu juga sebaliknya jika piksel lebih dari 180 maka warna piksel akan berubah menjadi putih. Berikut diagram alir untuk proses binerisasi:
Gambar 3.6 Flowchart Binerisasi 3. Thining Setelah melalui proses binerisasi, dalam hal ini membuat citra menjadi berwarna hitam putih. Maka proses selanjutnya yaitu thinning atau penipisan biasanya digunakan untuk skeletonizing yang sering digunakan dalam aplikasi
pattern recognition. Pada citra tersebut dilakukakn thinning untuk mendapatkan gambar dengan ukuran 1 piksel. Adapun manfaat setelah mendapatkan citra 1 piksel yaitu agar kode tersebut mempunyai ukuran piksel yang sama meskipun tebal dan tipisnya berbeda-beda. 4. Cropping Crooping adalah memotong satu bagian dari citra sehingga diperoleh citra yang berukuran lebih kecil. Operasi ini pada dasarnya adalah operasi translasi, yaitu menggeser koordinat titik citra. Rumus yang digunakanuntuk operasi ini adalah :
x’ = x – xL untuk x = xL sampai xR x’ = y –yT untuk y = yT sampai yB
(xL, yT) dan (xR, yB) masing-masing adalah koordinat titik pojok kiri atas dan pojok kanan bawah bagian citri yang akan di-crop. Berikut diagram alir untuk proses croping. Berikut adalah flowchart untuk proses cropping:
Gambar 3.7 Flowchart proses cropping
5. Scaling Proses scalling bertujuan untuk memperbesar atau memperkecil image agar kode yang akan dihasilkan memiliki lebar dan tinggi yang sama. 3.3.1.2 Pengkodean Karakter (Feature extraction) Feature extraction merupakan salah satu cara untuk mengenali karakter dengan melihat ciri-ciri khusus yang dimiliki oleh karakter tersebut. Oleh karena itu, setelah melakukan proses scalling proses selanjutnya adalah feature ekstraction. Pada proses ini, citra masukan dibagi menjadi 20 bagian yang sama tinggi dan lebarnya. Setelah itu dikodekan menurut pikselnya, jika berwarna hitam atau kurang dari nilai treshold maka citra tersebut dikodekan 1 sebaliknya jika berwarna putih dan lebih dari nilai threshold maka dikodekan 0. Tujuan dari proses ini yaitu untuk memberi kode yang berbeda pada setiap karakter sehingga karakter yang satu dengan karakter yang lain dapat dipisahkan berdasarkan kode yang dimilikinya. Disamping itu, proses pengkodean karakter ini dimaksudkan untuk mengambil ciri (feature) dari sebuah huruf. Pengambilan ciri dalam penelitian ini, menggunakan teknik integral proyeksi yaitu sebuah teknik yang menjumlahkan nilai setiap kolom atau setiap baris. Integral proyeksi tersebut dapat didefinisikan dengan rumus: nkolom
h(i )
x(i, j) j 1
nbaris
h( j )
x(i, j ) i 1
3.3.2 Pembelajaran Tanda Tangan Manual Dengan LVQ Dalam proses pembelajaran kumpulan data dalam template dicari beban akhir dalam proses pembelajaran, beban akhir dari pembelajaran digunakan dalam
proses pengenalan tanda tangan manual. Berikut flowchart proses pembelajaan tanda tangan manual dengan LVQ tampak pada gambar 3.8. 3.3.3 Pengenalan Tanda Tangan Manual Dalam proses pengenalan, beban akhir dari proses pembelajaran digunakan sebagai penentu hasil karena dalam algoritma LVQ, jarak terdekat dari input data dengan beban akhir adalah hasil dari pengenalan. Berikut flowchart pengenalan tanda tangan manual pada gambar 3.9.
Gambar 3.8 Flowchart proses pembelajaran LVQ
Gambar 3.9 Flowchart proses pengenalan tanda tangan manual 3.3.4 Pembangkitan Kunci Tanda Tangan Digital RSA Dalam pemrosesan tanda tangan digital, kunci adalah parameter yang sangat penting. Parameter yang utama dalam pembangkitan kunci algoritma RSA adalah bilangan prima p dan q, untuk menghasilkan n. Semakin besar nilai prima p dan q semakin besar pula tingkat kesulitan untuk memfaktorkan bilangan menjadi faktor primanya. Menurut Munir (2005) nilai p dan q disarankan lebih dari 100 digit agar pemfaktoran menjadi sangat sukar dan hampir tidak mungkin dilakukan. Flowchart Proses pembangkitan kunci publik dan kunci privat dalam algoritma RSA sebagai berikut :
Gambar 3.10 Flowchart pembangkitan kunci RSA Agar
algoritma
RSA
dapat
dimplementasikan
dalam
algoritma
pemrograman nilai dari p dan q diasumsikan diatas 2 sampai 5 digit bilangan positif. Algoritma RSA dalam proses enkripsi dilakukan dengan kunci publik (e) dan proses dekripsi dengan kunci privat (d), sedangkan dalam tanda tangan digital kebalikan dari kriptografi kunci publik yaitu proses enkripsi (signing) dilakukan dengan kunci privat dan dekripsi (Verifying) dilakukan dengan kunci publik. 3.3.5
Proses Enkripsi (Signing) Tanda Tangan Digital
Proses enkripsi dengan algoritma RSA menggunakan kunci publik (e, n). Flowchart proses signing tanda tangan digital dapat dilihat pada Gambar berikut:
Gambar 3.11 Flowchart Proses Signing algoritma RSA 3.3.6
Proses Verifikasi Tanda Tangan Digital
Dalam proses pemverifikasian sebuah dokumen yang dikirim proses pertama yaitu pengenalan dari user dalam perangkat lunak menggunakan tanda tangan manual. Kemudian proses pemverifikasian dilakukan dengan kunci privat (d,n) dari user yang mengirim pesan. Flowchart proses verifying tanda tangan digital dapat dilihat pada gambar 3.12.
Gambar 3.12 Flowchart Proses verifiying algoritma RSA
3.3.7 Contoh Perhitungan Dengan LVQ Pada subbab ini tidak menggunakan perhitungan dengan data yang sebenarnya, namun memakai nilai yang sederhana sehingga muda untuk dipahami maksud dari sistem kerja perangkat lunak ini. Misalkan diketahui 10 input vector dalam 2 kelas sebagai berikut : Tabel 3.1 Data Matrik input gambar No 1 2 3 4 5 6 7 8 9 10
Matrik Input (X) 1, 0, 0, 0, 1, 0 0, 0, 1, 0, 0, 1 0, 0, 1, 0, 1, 0 0, 1, 0, 0, 0, 1 1, 0, 1, 0, 1, 1 0, 1, 1, 1, 1, 0 0, 0, 1, 1, 0, 0 0, 1, 0, 1, 0, 0 1, 0, 0, 1, 0, 1 0, 1, 1, 1, 1, 1
Kelas 1 1 1 1 1 2 2 2 2 2
Dua inputan yang pertama akan diinisialisasi sebagia bobot : Tabel 3.2 Data Bobot No Matrik Bobot Target 1 1, 0, 0, 0, 1, 0 1 2 0, 1, 1, 1, 1, 0 2 Sedangkan 8 inputan sisanya akan digunakan sebagai data yang akan dilatih : Tabel 3.3 Data Latih No 1 2 3 4 5 6 7 8
Matrik Latih 0, 0, 1, 0, 0, 1 0, 0, 1, 0, 1, 0 0, 1, 0, 0, 0, 1 1, 0, 1, 0, 1, 1 0, 0, 1, 1, 0, 0 0, 1, 0, 1, 0, 0 1, 0, 0, 1, 0, 1 0, 1, 1, 1, 1, 1
Target 1 1 1 1 2 2 2 2
Sebagai Nilai awal dipilih Learning Rate (α ) = 0.05, dengan pengurangan sebesar 0.1* α, dan maksimum epoch (MaxEpoch) = 100 Epoch ke-1 :
Data Ke-1 : (0, 0, 1, 0, 0, 1) Jarak pada bobot ke – 1 = √ ( 0 - 1 )2 + ( 0 – 0 ) 2 + ( 1 – 0 ) 2 + ( 0 – 0 ) 2 + ( 0 – 1 ) 2 + ( 1 – 0 ) 2 =2 Jarak Pada bobot ke – 2 = √ ( 0 - 0 )2 + ( 0 – 1 ) 2 + ( 1 – 1 ) 2 + ( 0 – 1 ) 2 + ( 0 – 1 ) 2 + ( 1 – 0 ) 2 =2 Jarak Terkecil adalah pada w ke-1 Target data ke-1 adalah 1 Karena target data ke-1 = w ke-1, maka w ke-1 baru adalah : Wj(baru) = Wj(lama) + α ( Xi - Wj(lama) ) = 1 + 0.05*(0-1) = 0.95 = 0 + 0.05*(0-0) = 0 = 0 + 0.05*(1-0) = 0.05 = 0 + 0.05*(0-0) = 0 = 1 + 0.05*(0-1) = 0.95 = 0 + 0.05*(1-0) = 0.05 W1(baru) = (0.95, 0, 0.05, 0, 0.95, 0.05) Data Ke-2 : (0, 0, 1, 0, 1, 0) Jarak pada bobot ke – 1 = √ (0 – 0.95)2 + (0 – 0) 2 + (1 – 0.05) 2 + (0 – 0) 2 + (1 – 0.95) 2 + (1 – 0.05) 2 = 1.345 Jarak Pada bobot ke – 2 = √ ( 0 - 0 )2 + ( 0 – 1 ) 2 + ( 1 – 1 ) 2 + ( 0 – 1 ) 2 + ( 1 – 1 ) 2 + ( 0 – 0 ) 2 = 1.414 Jarak Terkecil adalah pada w ke-1 Target data ke-2 adalah 1 Karena target data ke-2 = w ke-1, maka w ke-1 baru adalah : Wj(baru) = Wj(lama) + α ( Xi - Wj(lama) ) = 0.95 + 0.05*(0-0.95) = 0.9025 = 0.00 + 0.05*(0-0.00) = 0
= 0.05 + 0.05*(1-0.05) = 0.0975 = 0.00 + 0.05*(0-0.00) = 0 = 0.95 + 0.05*(1-0.95) = 0.9525 = 0.05 + 0.05*(0-0.05) = 0.0475 W1(baru) = (0.9025, 0, 0.0975, 0, 0.9525, 0.0475) Data Ke-3 : (0, 1, 0, 0, 0, 1) Jarak pada bobot ke – 1 =√ (0 – 0.9025)2 + (1 – 0) 2 + (0 – 0.0975) 2 + (0 – 0) 2 + (0 – 0.9525) 2 + (1 – 0.0475) 2 = 1.907 Jarak Pada bobot ke – 2 = √ ( 0 - 0 )2 + ( 1 – 1 ) 2 + ( 0 – 1 ) 2 + ( 0 – 1 ) 2 + ( 0 – 1 ) 2 + ( 1 – 0 ) 2 =2 Jarak Terkecil adalah pada w ke-1 Target data ke-3 adalah 1 Karena target data ke-3 = w ke-1, maka w ke-1 baru adalah : Wj(baru) = Wj(lama) + α ( Xi - Wj(lama) ) = 0.9025 + 0.05*(0-0.9025) = 0.8574 = 0.0000 + 0.05*(0-0.0000) = 0.0500 = 0.0975 + 0.05*(1-0.0975) = 0.0926 = 0.0000 + 0.05*(0-0.0000) = 0.0000 = 0.9525 + 0.05*(1-0.9525) = 0.9049 = 0.0475 + 0.05*(0-0.0475) = 0.0951 W1(baru) = (0.8574, 0.0500, 0.0926, 0.0000, 0.9049, 0.0951) Data Ke-4 : (1, 0, 1, 0, 1, 1) Jarak pada bobot ke – 1 =√(1–0.8574)2 +(0–0.0500)2 +(1–0.0926)2 +(0–0.0000)
2
+(1–0.9049) 2+(1–
0.0951) 2 = 1.293 Jarak Pada bobot ke – 2 = √ ( 1- 0 )2 + ( 0 – 1 ) 2 + ( 1 – 1 ) 2 + ( 0 – 1 ) 2 + ( 1 – 1 ) 2 + ( 1 – 0 ) 2
=2 Jarak Terkecil adalah pada w ke-1 Target data ke-4 adalah 1 Karena target data ke-4 = w ke-1, maka w ke-1 baru adalah : Wj(baru) = Wj(lama) + α ( Xi - Wj(lama) ) = 0.8574+ 0.05*(0-0.8574) = 0.8645 = 0.0500+ 0.05*(0-0.0500) = 0.0475 = 0.0926 + 0.05*(1-0.0975) = 0.1380 = 0.0000+ 0.05*(0-0.0000) = 0.0000 = 0.9049 + 0.05*(1-0.9049) = 0.9096 = 0.0951 + 0.05*(0-0.0951) = 0.1404 W1(baru) = (0.8645, 0.0475, 0.1380, 0.0000, 0.9096, 0.1404) Data Ke-5 : (0, 0, 1, 1, 0, 0) Jarak pada bobot ke – 1 =√(1–0.8645)2 +(0–0.0475)2 +(1–0.1380)2 +(0–0.0000)
2
+(1–0.9096) 2+(1–
0.1404) 2 = 1.827 Jarak Pada bobot ke – 2 = √ ( 0 - 0 )2 + ( 0 – 1 ) 2 + ( 1 – 1 ) 2 + ( 1 – 1 ) 2 + ( 0 – 1 ) 2 + ( 0 – 0 ) 2 = 1.414 Jarak Terkecil adalah pada w ke-2 Target data ke-5 adalah 2 Karena target data ke-5 = w ke-2, maka w ke-2 baru adalah : Wj(baru) = Wj(lama) + α ( Xi - Wj(lama) ) = 0 + 0.05*(1-0) = 0.0000 = 1 + 0.05*(0-1) = 0.9500 = 1 + 0.05*(1-1) = 1.0000 = 1 + 0.05*(0-1) = 1.0000 = 1 + 0.05*(1-1) = 0.9500 = 0 + 0.05*(1-0) = 0.0000 W2(baru) = (0.0000, 0.9500, 1.0000, 1.0000, 0.9500, 0.0000)
Data Ke-6 : (0, 1, 0, 1, 0, 0) Jarak pada bobot ke – 1 =√(1–0.8645)2 +(0–0.0475)2 +(1–0.1380)2 +(0–0.0000)
2
+(1–0.9096) 2+(1–
0.1404) 2 = 1.876 Jarak Pada bobot ke – 2 = √ ( 0 - 0 )2 + ( 1 – 0.95 ) 2 + ( 0 – 1 ) 2 + ( 1 – 1 ) 2 + ( 0 – 0.95 ) 2 + ( 0 – 0 ) 2 = 1.380 Jarak Terkecil adalah pada w ke-2 Target data ke-6 adalah 2 Karena target data ke-6 = w ke-2, maka w ke-2 baru adalah : Wj(baru) = Wj(lama) + α ( Xi - Wj(lama) ) = 0.0000 + 0.05*(0-0.0000) = 0.0000 = 0.9500 + 0.05*(1-0.9500) = 0.9525 = 1.0000 + 0.05*(0-1.0000) = 0.9500 = 1.0000 + 0.05*(1-1.0000) = 1.0000 = 0.9500 + 0.05*(0-0.9500) = 0.9025 = 0.0000 + 0.05*(0-0.0000) = 0.0000 W2(baru) = (0.0000, 0.9525, 0.9500, 1.0000, 0.9025, 0.0000) Data Ke-7 : (1, 0, 0, 1, 0, 1) Jarak pada bobot ke – 1 =√(1–0.8645)2 +(0–0.0475)2 +(1–0.1380)2 +(0–0.0000)
2
+(1–0.9096) 2+(1–
0.1404) 2 = 1.614 Jarak Pada bobot ke – 2 = √ ( 1 - 0 )2 + ( 0 – 0.9525 ) 2 + ( 0 – 0.95 ) 2 + ( 1 – 1 ) 2 + ( 0 – 0.9025 ) 2 + ( 0 – 1 )2 = 2.150 Jarak Terkecil adalah pada w ke-2 Target data ke-7 adalah 2 Karena target data ke-7 ≠ w ke-1, maka w ke-1 baru adalah :
Wj(baru) = Wj(lama) + α ( Xi - Wj(lama) ) = 0.8645+ 0.05*(0-0.8645) = 0.8577 = 0.0475 + 0.05*(1-0.0475) = 0.0499 = 0.1380 + 0.05*(0-0.1380) = 0.1449 = 0.0000 + 0.05*(1-0.0000) = -0.050 = 0.9096 + 0.05*(0-0.9096) = 0.9551 = 0.1404 + 0.05*(0-0.1404) = 0.0974 W1(baru) = (0.8577, 0.0499, 0.1449, -0.050, 0.9551, 0.0974) Data Ke-8 : (0, 1, 1, 1, 1, 1) Jarak pada bobot ke – 1 =√(1–0.8577)2 +(0–0.0499)2 +(1–0.1449)2 +(0+0.050)
2
+(1–0.9551) 2+(1–
0.0974) 2 = 2.071 Jarak Pada bobot ke – 2 = √ ( 0 - 0 )2 + ( 1 – 0.9525 ) 2 + ( 1 – 0.95 ) 2 + ( 1 – 1 ) 2 + ( 1 – 0.9025 ) 2 + ( 1 – 0 )2 = 1.002 Jarak Terkecil adalah pada w ke-2 Target data ke-8 adalah 2 Karena target data ke-8 ≠ w ke-2, maka w ke-2 baru adalah : Wj(baru) = Wj(lama) + α ( Xi - Wj(lama) ) = 0.0000 + 0.05*(0-0.0000) = 0.0000 = 0.9525 + 0.05*(1-0.9525) = 0.9549 = 0.9500 + 0.05*(0-0.9500) = 0.9525 = 1.0000 + 0.05*(1-1.0000) = 1.0000 = 0.9025 + 0.05*(0-0.9025) = 0.9074 = 0.0000 + 0.05*(0-0.0000) = 0.0500 W2(baru) = (0.0000, 0.9549, 0.9525, 1.0000, 0.9074, 0.0500) α = α – 0.1 * α = 0.05 – 0.1 * 0.05 = 0.045 Proses ini diteruskan untuk epoch ke-2 sampai dengan epoch ke 100. setelah mencapai epoch yang ke-100 diperoleh bobot akhir :
W1 = (0.3727 0.2161 0.6347 0.2164 0.7901 0.4254) W1 = (0.0000 0.7969 0.7900 1.0000 0.5869 0.2171) Maka jika kita mau menstimulasikan inpit (1, 0, 0, 0, 0, 1) maka kita cari terlebih dahulu jarak input tersebut terhadap kedua bobot. Nomor dari bobot dengan jarak terpendek akan menjadi kelasnya. Jarak pada bobot ke – 1 = √(1–0.3727)2 +(0–0.2161)2 +(1–0.6347)2 +(0-0.2164)
2
+(0–0.7901) 2+(1–
0.4254) 2 =1.3581 Jarak Pada bobot ke – 2 = √(1- 0.0000)2 +(0 – 0.7969)2 +(1 – 0.7900)2+(0 – 1.0000)2 +(0 – 0.5869)2+(1 – 0.2171) 2 = 2.0534 Jarak Terkecil pada bobot ke-1, Sehingga input tersebut termasuk pada kelas-1 3.4
Perancangan Sistem
3.4.1 Use Case Use case dibuat untuk menggambarkan aktivitas-aktivitas yang dilakukan dalam sistem. Model analisa use case diwakili dengan diagram use case. Diagram use case menggambarkan fungsionalitas sistem sebagai prosedur/aturan yang disepakati sistem berjalan sesuai dengan yang diinginkan.
Proses image preprocessing
Proses pembentukan hash Form konfigurasi Proses pembelajaran LVQ
Proses Pembentukan kunci RSA
User
Form Signing
Proses pengenalan tanda tangan
Proses enkripsi
Form Verifyng
Proses dekripsi
Gambar 3.13 Use case Sistem pengenalan pola tanda tangan 3.4.2 Sequence Diagram Diagram ini menjelaskan interaksi objek yang disusun dalam suatu urutan waktu dan memperlihatkan tahap demi tahap apa yang seharusnya terjadi untuk menghasilkan sesuatu didalam use case. 3.4.2.1 Sequence Diagram Proses Pengolahan Image Preprocessing Proses ini proses untuk mengubah bentuk citra menjadi citra biner kemudian peringkasan citra biner menggunkan fungsi hash satu arah.
Image preprocessing : User
Grayscale citra keabuan
Threshold
Thining
Crooping
Scalling
Chain code
Hash : TGambar
Get Image
Pengolahan image
Set image setting derajat keabuan Penipisan image set image set image menjadi 20x20 pengubahan bentuk matrix peringakasan matrix
Simpan hasil hash
Gambar 3.14 Sequnce diagram proses image preprocessing 3.4.2.2 Sequence Diagram Proses Signing Proses ini melalui tahap pembelajaran terlebih dahulu kemudian pengenalan tanda tangan, hasil dari pengenalan berupa nim, nama dan nilai hash dari peringkasan citra biner. menggunkan kunci publik e dan n dari hasil pembentukan kunci. Training LVQ : User Set Learning Rate
Pengenalan tanda tangan
enkripsi
: TGambar
Set Max Epoch
Set target error Get training data Get data bobot
Hitung jarak terdekat
set nim, nama, nilai hash
set kunci publik (e,n)
Gambar 3.15 Sequence diagram proses signing
3.4.2.3 Sequence Diagram Proses Verifikasi Proses verifikasi yaitu mendekripsikan file dari hasil enkripsi di dalam proses signing. Proses dekripsi menggunkan kunci privat d dan n setelah pendekripsian data tersebut akan dicek apakah terdaftar atau belum terdaftar
Data Enkripsi
Kunci privat
: User
Verifikasi : TGambar
Get file Set kunci d
Set junci n Pengecekan data
Hasil dekripsi
Terdaftar
Gambar 3.16 Sequence diagram proses verifikasi 3.4.3 Activity Diagram Diagram aktivitas memodelkan alur kerja (work flow) sebuah proses atau use case dan urutan aktivitas dalam suatu proses. Berikut proses aktivitas keseluruhan dari proses pengenalan pola tanda tangan manual dan tanda tangan digital. User
Form Konfigurasi
Mengambil image berwarna 24 bit *.bmp
proses image preprocessing
Pengenalan tanda tangan
mendapatkan hasil citra biner
memasukkan kunci publik e dan n
melalukan funsi hash untuk peringkasan biner
proses enkripsi
simpan data hash
Form Signing
simpan file hasil enkripsi
melakukan proses pembelajaran tanda tangan manual pembentukan kunci tanda tangan digital
Gambar 3.17 Activity diagram
Form v erifyng
ambil file hasil enkripsi
memasukkan kunci privat d dan n
proses dekripsi proses pengecekan data
3.5
Struktur Basis Data Basis data adalah suatu pengorganisasian sekumpulan data yang saling
terkait sehigga memudahkan aktivitas untuk memperoleh informasi. (Kadir, 2003: 254). Berikut adalah tabel yang digunakan dalam proses jalanya aplikasi. 1. Nama Tabel
: TGambar
Kunci utama (*)
: Id_gambar
Fungsi
: Tabel ini berisi pengguna yang mempunyai tanda tangan manual dan tanda tangan digital. Tabel 3.4 Basis Data pengguna (User)
Field Id_gambar Id_user Nim Nama_user Nama_file publik_e Publik_n Hash 2. Nama Tabel
Type AutoNumber (LongInt) Number (LongInt) Number (LongInt) Text (50) Text (50) Text (50) Text (50) Text (100)
Allow Null No No No No No No No No
: Tbtm
Kunci utama (*)
: Id_user
Fungsi
: Tabel ini digunakan pengguna yang menyimpan vektor dari tanda tangan manual. Tabel 3.5 Basis Data Tanda tangan manual
Field Id_user Nama_user Vektor Threshold 3. Nama Tabel
Type AutoNumber (LongInt) Text (50) Memo Number
Allow Null No No No No
: Tbobot
Kunci utama (*)
: Id
Fungsi
: Tabel ini digunakan pengguna yang menyimpan vektor dari tanda tangan manual.
Tabel 3.6 Basis Data beban akhir Field Id_user Id_bobot Input_ke Nilai 3.6
Type Text (50) AutoNumber (LongInt) Number Number
Allow Null No No No No
Perancangan Uji Coba Tujuan dari subbab ini adalah untuk mencari arsitektur jaringan saraf
tiruan yang optimal dalam proses pelatihan dan pengenalan. Arsitektur jaringan saraf tiruan yang dimaksudkan adalah nilai learning rate dan target error. 3.6.1 Skenario Uji Coba Pengujian dilakukan dalam 2 bagian yaitu pengujian tanda tangan manual dan pengujian tanda tangan digital. Data tanda tangan berjumlah 13 orang dengan masing-masing orang memberikan 3 contoh tanda tangan sebagai data latih jadi data keseluruhan sebanyak 39 tanda tangan. 3.6.1.1 Pengujian Tanda Tangan Manual LVQ Pengujian ini dilakukan dengan cara mecoba jumlah unit pada learning rate antara 0,01 sampai 0,09. nilai max epoch adalah 100 dan 1000 untuk mendapatkan hasil yang maksimal maka epoch dapat diperbesar hingga 10.000 epoch Hasil dari uji coba disajikan pada tabel 3.7. Tabel 3.7 Rancangan tabel Tanda tangan manual LVQ Learning Rate
Max Epoch
Target Error
Waktu Training (milidetik)
Hasil Training
Konvergen
Hasil
3.6.1.2 Pengujian Tanda Tangan Digital RSA Pengujian dilakukan dengan mencatat waktu yang dibutuhkan terhadap file plaintext, dekripsi terhadap file hasil enkripsi. Penyajian pengujian tanda tangan digital RSA dapat dilihat pada tabel dibawah ini: Tabel 3.8 Rancangan Tabel Tanda Tangan digital RSA Uji Ke
Ukuran File kb
Nilai n
Kunci e
Kunci d
Waktu signing
Waktu Verfiyng
BAB IV IMPLEMENTASI DAN HASIL
4.1
Implementasi Program
4.1.1 Implementasi Antarmuka Di dalam penjelasan program ini dijelaskan tentang alur pembuatan dan kegunaan program yang dibuat beserta tampilan desain. Berikut ini struktur program yang menggambarkan tampilan-tampilan halaman yang ada dalam program.
Gambar 4.1 Struktur Menu program 4.1.1.1 Halaman Menu Utama Halaman menu utama ini merupakan tampilan awal saat program dijalankan, dimana dalam menu utama ini terdapat pilihan untuk memasuki form yang lain yaitu terdapat form konfigurasi, form make key, form signing dan form verifiying. Masing-masing form memiliki fungsi yang berbeda-beda dalam aplikasi ini. Berikut penjelasan dari setiap form dalam halaman menu utama dan juga gambarnya: 1. Konfigurasi
: untuk melakukan proses image preprocessing dan
pembelajaran tanda tangan 2. Make Key
: untuk setting tanda tangan manual dan tanda tangan digital
3. Signing
: untuk proses signing
4. Verifikasi
: untuk verifikasi tanda tangan
5. Close
: untuk keluar dari program
Gambar 4.2 Halaman Menu Utama 4.1.1.2 Form Konfigurasi Pada halaman form konfigurasi terdapat proses untuk melakukan konfigurasi perangkat lunak terdiri dari pengenalan pola tanda tangan manual berupa inputan image *.bmp yang diproses dengan image preprocessing dan Proses pembelajaran LVQ. 1. Form Image Preprocesing Form Image Preprocesing digunakan untuk mengenali pola tanda tangan berupa image .bmp. Proses yang dilalui dalam tahap image preprocessing yaitu grayscale, thining, crooping, scalling.
Gambar 4.3 Form Image Preprocesing Halaman ini berfungsi untuk mengkonfigurasi antara tanda tangan manual dengan tanda tangan digital, gambar hasil scan di ambil dari filelist box yang disesuaikan dengan alamat drive dan foldernya, selanjutnya gambar diproses dengan image preprocesing yang terdapat pada menu image preprocesing. Menumenu yang ada adalah : 1. Button Image Preprocessing terdapat Grayscale, Threshold, Thining, Crooping, Scalling. 2. Page control terdapat 2 page yaitu halaman untuk hasil proses image preprocessing dan halaman ke 2 untuk hasil kode binerisasi. 3. Button simpan untuk menyimpan data hasil Image Preprocessing dan identitas pemilik tanda tangan. 2. Form Learning LVQ Form Learning LVQ digunakan untuk proses pembelajaran pada jaringan saraf tiruan dengan 3 inputan yaitu Max epoch, Learning Rate, Target error.
Gambar 4.4 Form Learning LVQ 1. Button
Pembelajaran,
tentang
proses
pembelajaran
LVQ
setelah
memberikan inputan max epoch, learnrate, error rate. 2. Memo1 untuk proses thread dan pembelajaran sedangkan memo 2 untuk hasil lama waktu training dan load data. 3. Button simpan file untuk menyimpan data. 4.1.1.3 Form Pembentukan Kunci RSA Form Pembentukan Kunci RSA digunakan untuk pembuatan kunci tanda tangan digital dengan inputan bilangan prima p dan bilangan prima q.
Gambar 4.5 Form Pembentukan Kunci RSA
Pada pembuatan kunci tanda tangan digital lebih ke segi matematikanya keterangan gambar tersebut adalah : 1. Button hitung n berfungsi untuk mencari nilai n dari dua bilangan prima p dan q. 2. Kemudian untuk button hitung kunci untuk menghitung kunci privat d yang dihasilkan dari bilangan prima. 3. Button random untuk mengacak bilangan prima. 4.1.1.4 Form Signing Form signing digunakan untuk mengenali tanda tangan dengan jaringan saraf tiruan LVQ (Learning Vector Quantization) dan melakukan proses enkripsi dengan algoritma RSA (Rivest Shamir Adleman).
Gambar 4.6 Implementasi Form Signing Form ini berfungsi untuk melakukan proses signing dengan mengambil image yang telah disimpan terlebih dahulu. Proses signing merupakan proses pengengkripsian tanda tangan dari kunci d, dan n. Menu-Menu yang terdapat pada halaman ini antara lain : 2. Button Load Image, digunakan untuk mengambil gambar yang ada didalam file berupa *.bmp.
3. Button Pengenalan yaitu untuk mengenali tanda tangan manual dari LVQ. 4. Button signing untuk menandatangani dengan kunci e dan n yang akan di tanda tangani digital. 5. Hasil pengenalan berupa image, nim, nama dan Hash tanda tangan. 6. Button save untuk menyimpan hasil dari enkripsi data. 7. Ltime unuk hasil waktu signing. 4.1.1.5 Form Verifying Form verifying digunakan untuk dekripsi file menggunakan kunci privat d dan kunci privat publik n untuk mengetahui bahwa data tersebut telah terdaftar.
Gambar 4.7 Implementasi Form verifying Halaman ini berfungsi untuk mengecak keaslian dari tanda tangan yaitu tanda tangan manual menggunakan metode LVQ dan tanda tangan digital dengan metode RSA. Menu-menu yang ada pada halaman ini adalah : 1. Button Load File digunakan untuk memangil file hasil enkripsi. 2. Button verifikasi digunakan untuk mengecek tanda tangan digital untuk mengetahui data tersebut terdaftar. 4.1.2 Implementasi Pemrosesan Citra (Image Preprocessing) Implementsai pemrosesan citra terdiri dari beberapa subproses seperti yang dijelaskan sebagai berikut :
a. Grayscale Metode pengubahan warna dari RGB ke Grayscale menggunakan fungsi pengubah. Untuk melakukan perhitungan tersebut perlu diambil intensitas tiap warna pada tiap blok pixel. var x,y,r,g,b:integer; Clr:TColor; begin for y := 0 to image1.Height-1 do begin for x := 0 to image1.width-1 do begin Clr := image1.canvas.Pixels[x,y]; r := GetRValue(clr); g := GetGValue(clr); b := GetBValue(Clr); clr := Round((r+g+b)/3);// Mengubah RGB ke graysacale image1.canvas.Pixels[x,y] := RGB(clr,clr,clr); end; end; end;
Gambar 4.8 Source code fungsi RGBToGray b. Thresholding Proses Thresholding (nilai ambang) dilakukan dengan membandingkan nilai grayscale dari tiap Pixel dengan nilai yang digunakan untuk thresholding. FunctionTForm1.Thres(ABitmap:TBitmap;AThreshold:byte;Intensi ty,Saturation : boolean):TBitmap; Var LRowIn, LRowOut : PRGBTripleArray; Ly, Lx : integer; LBlack, LWhite : TRGBTriple; if Intensity then begin then LRowOut[Lx] := LWhite else LRowOut[Lx] := LBlack; end else if Saturation then begin LR1 := trunc( (-0.105465 * LR)+(-0.207424 * LG)+(0.312889 * LB) ); //perhitungan nilai ambang if (0.3 * LR) + (0.59 * LG) + (0.11 * LB) >= AThreshold LR2 := trunc( (0.445942 * LR) + (-0.445942 * LG) ); if Sqrt( Sqr(LR1) + Sqr(LR2) ) >= AThreshold then LRowOut[Lx] := LWhite else LRowOut[Lx] := LBlack; end; end; end;end;
Gambar 4.9 Source code Fungsi Threshold
c. Cropping Cropping dilakukan dengan mengambil perpotongan x dan y. berikut implementasi untuk cropping.
var TmpBmp : TBitmap; warna,titik,x,y : integer; begin Image1.Canvas.DrawFocusRect(Rect(PDown.x, PDown.y, PActually.x, PActually.y)); TmpBmp := TBitmap.Create; with TmpBmp do try Width := Round(abs(PActually.x - PDown.x)); Height := Round(abs(PActually.y - PDown.y)); BitBlt(Canvas.Handle, 0, 0, Width, Height, //untuk drag obyek yang dipotong Image1.Canvas.Handle, PDown.x,PDown.y, SRCCOPY); for x:=1 to 20 do for y:=1 to 20 do begin titik:=0; warna:=getRValue(TmpBmp.Canvas.Pixels[x,y]); if warna<255 then begin warna:=clBlack; titik:=1;
Gambar 4.10 Source code Fungsi Cropping d. Scalling Pada tahap ini ukuran citra diperbesar dan diperkecil sesuai dengan yang ditetapkan pada implementasi skripsi ini yaitu diperkecil menjadi ukuran 20 x 20. var a,b:real; i,j,warna,titik:integer; begin image1.Picture.Bitmap.PixelFormat:=pf8bit; image3.Picture:=image1.Picture; lebar:=20;
tinggi:=20;// untuk menyamakan ukuran 20x20 a:=image1.Width/lebar; b:=image1.Height/tinggi; scalling(1/a,1/b); image3.Picture.Bitmap.Width:=lebar; image3.Picture.Bitmap.Height:=tinggi; for i:=0 to lebar-1 do for j:=0 to tinggi-1 do begin titik:=0; warna:=getRValue(image3.Canvas.Pixels[i,j]); if warna<255 then begin warna:=clBlack; titik:=1; end;
Gambar 4.11 Source code Fungsi Scalling e. Pengkodean Karakter Setelah proses awal selesai dilakukan maka proses selanjutnya yaitu pengkodean. Gambar dikodekan menjadi biner dan ditampilkan pada stringgrid. Gambar discalling menjadi 20 x 20 piksel selanjutnya dikodekan jika berwarna hitam maka dikodekan satu dan juga sebaliknya jika berwarna putih maka dikodekan 0. Listing programnya sebagai berikut : Begin
for x:=1 to 20 do for y:=1 to 20 do begin stringGrid1.Cells[x,y]:=intToStr(tempData[x,y]); StringGrid1.Cells[x,y+1]:=IntToStr(tempData[x,1]+tempData[x ,2]+tempData[x,3]………………. StringGrid1.Cells[x+1,y]:=IntToStr(tempData[1,y]+tempData[2 ,y]+tempData[3,y]……………. end;end;
Gambar 4.12 Source code Pengkodean karakter 4.1.3 Implementasi Quantization)
Jaringan
Saraf
Tiruan
LVQ
(Learning Vector
Pada awal tahap pengenalan tanda tangan harus melalui proses pembelajaran terlebih dahulu keseluruhan data image menggunakan Jaringan saraf Tiruan LVQ.
a. Pembelajaran Vektor procedure TLVQ.Training2; var i,j,k:integer; epsilon,l,selisih,s,w,dmin1,dmin2:double; pattern: PPattern; bobot: PPattern; bobotterupdate,bobotterupdate2 :PPattern; bStop:boolean; listjarakbobot:TList; jarak:PJarakBobot; jarak1,jarak2:PJarakBobot; begin epsilon := 0.25; bStop:= false; currentepoch:=0; txtStatus.Lines.Add('Training.....'); procedure TLVQ.Training2; var i,j,k:integer; epsilon,l,selisih,s,w,dmin1,dmin2:double; pattern: PPattern; bobot: PPattern; bobotterupdate,bobotterupdate2 :PPattern; bStop:boolean; listjarakbobot:TList; jarak:PJarakBobot; jarak1,jarak2:PJarakBobot; begin epsilon := 0.25; bStop:= false; currentepoch:=0; txtStatus.Lines.Add('Training.....'); //hitung window w:=0.25; s := (1-w)/(1+w); //list jarak bobot listjarakbobot := TList.Create; while not bStop do begin inc(currentepoch); txtStatus.Lines.Add('Epoh : '+ inttostr(currentepoch)); //untuk setiap datapembelajaran for i := 0 to (ListPembelajaran.Count - 1) do begin pattern := ListPembelajaran.Items[i]; //hitung jarak tiap pattern dengan tiap data bobot listjarakbobot.Clear; for j:= 0 to ListBobot.Count-1 do bobot := ListBobot.Items[j]; //hitung jarak l:=0; for k:= 0 to NumInput-1 do begin
jarak1 := listjarakbobot.Items[0]; //terdekat pertama jarak2 := listjarakbobot.Items[1]; //terdekat kedua dmin1:=jarak1.jarak; dmin2:=jarak2.jarak; bobotterupdate := ListBobot.Items[jarak1.idbobot]; bobotterupdate2 := ListBobot.Items[jarak2.idbobot]; //cek apakah masuk window jika masuk hitung bobot yang baru if(min(dmin1/dmin2,dmin2/dmin1)>s)then begin //jika id user pattern = id user kedua bobot maka ditambah semua bobot terdekat 1 dan 2 if(pattern.iduser = bobotterupdate.iduser) and (pattern.iduser = bobotterupdate2.iduser) then begin for k:=0 to NumInput -1 do begin bobotterupdate^.TandaTangan[k]:= bobotterupdate^.TandaTangan[k] + epsilon*alpha *(pattern^.TandaTangan[k]-bobotterupdate^.TandaTangan[k]); bobotterupdate2^.TandaTangan[k]:= bobotterupdate2^.TandaTangan[k] + epsilon*alpha *(pattern^.TandaTangan[k]-bobotterupdate2^.TandaTangan[k]); end; end else begin //jika id user pattern sama dengan id user bobot terdekat 1 maka bobot terdekat 1 ditambah sedangkan bobot terdekat 2 dikurangi if(pattern.iduser = bobotterupdate.iduser)then begin for k:=0 to NumInput -1 do begin bobotterupdate^.TandaTangan[k]:= bobotterupdate^.TandaTangan[k] + alpha *(pattern^.TandaTangan[k]-bobotterupdate^.TandaTangan[k]); bobotterupdate2^.TandaTangan[k]:= bobotterupdate2^.TandaTangan[k] - alpha *(pattern^.TandaTangan[k]-bobotterupdate2^.TandaTangan[k]); end; end else begin for k:=0 to NumInput -1 do begin bobotterupdate^.TandaTangan[k]:= bobotterupdate^.TandaTangan[k] - alpha *(pattern^.TandaTangan[k]-bobotterupdate^.TandaTangan[k]); bobotterupdate2^.TandaTangan[k]:= bobotterupdate2^.TandaTangan[k] + alpha *(pattern^.TandaTangan[k]-bobotterupdate2^.TandaTangan[k]);
end; end; end; end; end; CekKesalahan; alpha:= alpha*0.95; if (currentepoch=maxepoch) then txtStatus.Lines.Add('max epoch tercapai'); if (alpha < targeterror) then txtStatus.Lines.Add('alpha tercapai'); if (currentepoch=maxepoch) {or (alpha < targeterror) }then begin bStop:=true; end; end; MessageDlg('Training selesai!',mtInformation,[mbOK],0); end;
Gambar 4.13 Source code Procedure Training_2 b. Pengenalan Tanda Tangan ………………… LVQthread.kenali(image2.Picture.Bitmap,imgMirip1,imgMirip2,i mgMirip3);
……………. Gambar 4.14 Cuplikan Source code Pengenalan 4.1.4 Implementasi Algoritma RSA (Riset Shamir Adleman) a. Pembuatan Kunci Tanda Tangan Digital Function getnilain(nilaip,nilaiq : int64):int64; begin result := nilaip*nilaiq; end;
Gambar 4.15 Cuplikan Source code Fungsi nilai n Function getnilaiphi(nilaip,nilaiq : int64):int64; begin result := (nilaip-1) * (nilaiq-1); end;
Gambar 4.16 Cuplikan Source code Fungsi nilai phi Function getkunciprivatd(nilaie,nilaiphi : int64):int64; var nilaid : int64; k: integer; begin k:=1; repeat nilaid:= (1+(k*nilaiphi))div nilaie; inc(k); until (((nilaie*nilaid)-1) mod nilaiphi = 0); result := nilaid; end;
Gambar 4.17 Cuplikan Source code Fungsi Kunci privat d b. Proses Signing Menggunakan Kunci Publik (Enkripsi) var test, s,b64:string; e,n:tfgint; stin,ms:integer; begin //memecah tiap edit test := nim.text + '_' + namaorang.text + '_' + Hash.Text; edit11.Lines.Add(test); Base10StringToFGInt(edit2.Text, e);//input password e,n Base10StringToFGInt(edit3.text, n); RSAEncrypt(test, e, n, test); edit13.Clear; ConvertBase256to64(test,b64);//fungsi mengubah 256 edit13.lines.A dd(b64); FGIntDestroy(e); FGIntDestroy(n); end;
Gambar 4.18 Cuplikan Source code proses Signing Procedure RSAEncrypt(P : String; Var exp, modb : TFGInt; Var E : String); Var i, j, modbits : longint; PGInt, temp, zero : TFGInt; tempstr1, tempstr2, tempstr3 : String; Begin Base2StringToFGInt('0', zero); FGIntToBase2String(modb, tempstr1); modbits := length(tempstr1); convertBase256to2(P, tempstr1); tempstr1 := '111' + tempstr1; j := modbits - 1;
While (length(tempstr1) Mod j) <> 0 Do tempstr1 := '0' + tempstr1; j := length(tempstr1) Div (modbits - 1); tempstr2 := ''; For i := 1 To j Do Begin // mengubah tiap string ke bentuk ascii tempstr3 := copy(tempstr1, 1, modbits - 1); While (copy(tempstr3, 1, 1) = '0') And (length(tempstr3) > 1) Do delete(tempstr3, 1, 1); Base2StringToFGInt(tempstr3, PGInt); delete(tempstr1, 1, modbits - 1); If tempstr3 = '0' Then FGIntCopy(zero, temp) Else FGIntMontgomeryModExp(PGInt, exp, modb, temp); FGIntDestroy(PGInt); tempstr3 := ''; FGIntToBase2String(temp, tempstr3); While (length(tempstr3) Mod modbits) <> 0 Do tempstr3 := '0' + tempstr3; tempstr2 := tempstr2 + tempstr3; FGIntdestroy(temp); End; While (tempstr2[1] = '0') And (length(tempstr2) > 1) Do delete(tempstr2, 1, 1); ConvertBase2To256(tempstr2, E); FGIntDestroy(zero); End;
Gambar 4.19 Cuplikan Source code proses RSAEncrypt Var temp, x, a : String; i, len6 : longint; g : integer; trans : Array[0..255] Of String; Begin initialize8(trans); temp := ''; For i := 1 To length(str256) Do temp := temp + trans[ord(str256[i])]; If (length(temp) Mod 6) = 0 Then a := '' Else If (length(temp) Mod 6) = 4 Then Begin temp := temp + '00'; a := '=' End Else Begin temp := temp + '0000'; a := '==' End; Var temp, x, a : String; i, len6 : longint; g : integer; trans : Array[0..255] Of String;
Begin initialize8(trans); temp := ''; For i := 1 To length(str256) Do temp := temp + trans[ord(str256[i])]; If (length(temp) Mod 6) = 0 Then a := '' Else If (length(temp) Mod 6) = 4 Then Begin temp := temp + '00'; a := '=' End Else Begin temp := temp + '0000'; a := '==' End; str64 := ''; len6 := length(temp) Div 6; For i := 1 To len6 Do Begin x := copy(temp, 1, 6); zeronetochar6(g, x); str64 := str64 + PGPchr64[g]; delete(temp, 1, 6); End; str64 := str64 + a; End;
Gambar 4.20 Cuplikan Source code Convert 256 to 64 c. Proses Verifying Menggunakan Kunci Privat (Dekripsi) procedure Tfrmverifikasi.Button4Click(Sender: TObject); var test,b64,nim,nama,hash2:string; d,n,nilgint:tfgint; i, x : integer; begin Query1:=DMod1.query1; test:=memo1.text; nim:=''; nama:=''; hash2:=''; ConvertBase64to256(test,b64); test:=''; Base10StringToFGInt(edit6.Text, d); Base10StringToFGInt(edit9.text, n); RSADecrypt(b64, d, n, Nilgint, Nilgint, Nilgint, Nilgint, test);// pemanggilan procedure dekripsi RSA edit11.text:=test; FGIntDestroy(d); FGIntDestroy(n); FGIntDestroy(nilgint); x:=1;
begin if test[i]='_' then x:=x+1 else if x=1 then nim:=nim+test[i] else if x=2 then nama:=nama+test[i] else if x=3 then hash2:=hash2+test[i]; end; nim2.Text:=nim; edit2.Text:=nama; edit1.Text:=hash2; cekverifikasi (nim,nama,hash2);end;
Gambar 4.21 Cuplikan Source code Verifiying Begin Base2StringToFGInt('0', zero); FGIntToBase2String(modb, tempstr1); modbits := length(tempstr1); convertBase256to2(E, tempstr1); While copy(tempstr1, 1, 1) = '0' Do delete(tempstr1, 1, 1); While (length(tempstr1) Mod modbits) <> 0 Do tempstr1 := '0' + tempstr1; If exp.Number = Nil Then Begin FGIntModInv(q, p, temp1); FGIntDestroy(temp1); FGIntModInv(p, q, temp1); FGIntDestroy(temp1); End; j := length(tempstr1) Div modbits; tempstr2 := ''; For i := 1 To j Do Begin tempstr3 := copy(tempstr1, 1, modbits); While (copy(tempstr3, 1, 1) = '0') And (length(tempstr3) > 1) Do delete(tempstr3, 1, 1); Base2StringToFGInt(tempstr3, EGInt); delete(tempstr1, 1, modbits); If tempstr3 = '0' Then FGIntCopy(zero, temp) Else Begin If exp.Number <> Nil Then FGIntMontgomeryModExp(EGInt, exp, modb, temp) Else Begin FGIntCopy(temp3, temp1); FGIntCopy(temp3, temp2); FGIntAddMod(temp1, temp2, modb, temp); FGIntDestroy(temp1); FGIntDestroy(temp2); End; End; Begin Base2StringToFGInt('0', zero); FGIntToBase2String(modb, tempstr1);
modbits := length(tempstr1); convertBase256to2(E, tempstr1); While copy(tempstr1, 1, 1) = '0' Do delete(tempstr1, 1, 1); While (length(tempstr1) Mod modbits) <> 0 Do tempstr1 := '0' + tempstr1; If exp.Number = Nil Then Begin FGIntModInv(q, p, temp1); FGIntDestroy(temp1); FGIntModInv(p, q, temp1); FGIntDestroy(temp1); End; j := length(tempstr1) Div modbits; tempstr2 := ''; For i := 1 To j Do Begin tempstr3 := copy(tempstr1, 1, modbits); While (copy(tempstr3, 1, 1) = '0') And (length(tempstr3) > 1) Do delete(tempstr3, 1, 1); Base2StringToFGInt(tempstr3, EGInt); delete(tempstr1, 1, modbits); If tempstr3 = '0' Then FGIntCopy(zero, temp) Else Begin If exp.Number <> Nil Then FGIntMontgomeryModExp(EGInt, exp, modb, temp) Else Begin FGIntCopy(temp3, temp1); FGIntCopy(temp3, temp2); FGIntAddMod(temp1, temp2, modb, temp); FGIntDestroy(temp1); FGIntDestroy(temp2); End; End; FGIntDestroy(EGInt); tempstr3 := ''; FGIntToBase2String(temp, tempstr3); While (length(tempstr3) Mod (modbits - 1)) <> 0 Do tempstr3 := '0' + tempstr3; tempstr2 := tempstr2 + tempstr3; FGIntdestroy(temp); End; If exp.Number = Nil Then While (Not (copy(tempstr2, 1, 3) = '111')) And (length(tempstr2) > 3) Do delete(tempstr2, 1, 1); delete(tempstr2, 1, 3); ConvertBase2To256(tempstr2, D); FGIntDestroy(zero); End;
Gambar 4.22 Cuplikan Source code RSADecrypt
Procedure PGPConvertBase64to256(str64 : String; Var str256 : String); Var temp, x : String; i, j, len8 : longint; g : char; trans : Array[0..255] Of String; Begin initialize6PGP(trans); temp := ''; str256 := ''; If str64[length(str64) - 1] = '=' Then j := 2 Else If str64[length(str64)] = '=' Then j := 1 Else j := 0; For i := 1 To (length(str64) - j) Do temp := temp + trans[ord(str64[i])]; If j <> 0 Then delete(temp, length(temp) - 2 * j + 1, 2 * j); len8 := length(temp) Div 8; For i := 1 To len8 Do Begin x := copy(temp, 1, 8); zeronetochar8(g, x); str256 := str256 + g; delete(temp, 1, 8); End; End;
Gambar 4.23 Cuplikan Source code Convert 64 to 256 4.2
Hasil Uji Coba Sistem Pada subbab ini akan dilakukan pembahasan mengenai pengujian yang
telah dilakukan perangkat lunak. Uji coba dalam hal ini dibagi menjadi 2 yaitu pengujian pembelajaran tanda tangan manual LVQ dan pengujian signing verifikasi RSA.
4.2.1 Uji Coba Pembelajaran LVQ a. Tabel Uji Coba Dengan Nilai Max Epoch 10, Nilai Target Erornya 0,1, dan alpha 0,01 - 0,09 (Learning rate < target error) Tabel 4.1 Uji Coba Dengan Nilai Max Epoch 10 Dan Nilai Target Erornya 0,1 Learning Max Target Rate Epoch Error 0,01 0,02 0,03 0,04 0,05 0,06 0,07 0,08 0,09
10 10 10 10 10 10 10 10 10
0,1 0,1 0,1 0,1 0,1 0,1 0,1 0,1 0,1
Waktu Training (milidetik) 52775 170588 99388 81448 201912 163817 191928 240912 67782
Konvergen
Persentase
True
False
True
False
12 17 17 19 13 15 17 21 15
27 22 22 20 26 24 22 18 24
31% 44% 44% 49% 33% 38% 44% 54% 38%
69% 56% 56% 51% 67% 62% 56% 46% 62%
b. Tabel Uji Coba Dengan Nilai Max Epoch 100, Nilai Target Erornya 0,1, dan alpha 0,01 - 0,09 (Learning rate < target error) Tabel 4.2 Uji Coba Dengan Nilai Max Epoch 100, Nilai Target Erornya 0,1 Learning Max Target Rate Epoch Error 0,01 0,02 0,03 0,04 0,05 0,06 0,07 0,08 0,09
100 100 100 100 100 100 100 100 100
0,1 0,1 0,1 0,1 0,1 0,1 0,1 0,1 0,1
Waktu Training (milidetik) 505942 543507 626219 721021 550527 805589 4535449 603755 660804
Konvergen
Persentase
True
False
True
False
12 18 18 27 18 24 21 29 26
27 21 21 12 21 15 18 10 13
31% 46% 46% 69% 46% 62% 54% 74% 67%
69% 54% 54% 31% 54% 38% 46% 26% 33%
Berdasarkan hasil uji coba di atas, dimana nilai target errornya lebih besar dari learning rate didapatkan hasil untuk maksimal epoh 10 adalah 47 % untuk hasil kebenaranya dengan rata-rata waktu yang dibutuhkan 141 detik sedangkan
untuk epoh 100 dengan target error 0,1 dibutuhkan waktu 1061 detik dengan persentase untuk kebenarannya 55%. Tabel 4.1 dan 4.2 dapat direpresentasikan dalam bentuk grafik yang ditunjukkan pada gambar 4.24
5000000 4000000 3000000 2000000 1000000 Waktu ( MiliDetik)
0 1
2
3
4
5
6
7
Nilai learning rate 8
9
10
Nilai learning rate
Max Epoch 10
Target Error
Waktu ( MiliDetik)
Max Epoch 100
Waktu ( MiliDetik)
Gambar 4.24 Grafik pembelajaran Maxepoch 10 dan 100, target error 0,1, dan alpha 0,01–0,09 c. Tabel Uji Coba Dengan Nilai Max Epoch 100, Nilai Target Erornya 0,01, dan alpha 0,01 - 0,09 (Learning Rate = Target Error) Tabel 4.3 Uji Coba Dengan Nilai Max Epoch 1000, Nilai Target Erornya 0,01 Learning Max Target Rate Epoch Error 0,01 0,02 0,03 0,04 0,05 0,06 0,07 0,08 0,09
1000 1000 1000 1000 1000 1000 1000 1000 1000
0,01 0,01 0,01 0,01 0,01 0,01 0,01 0,01 0,01
Waktu Training (milidetik) 1814735 1842250 2002641 1835375 2218328 4470984 1847641 1989578 2869453
Konvergen
Persentase
True
False
True
False
12 18 18 27 18 24 21 29 26
27 21 21 12 21 15 18 10 13
31% 46% 46% 69% 46% 62% 54% 74% 67%
69% 54% 54% 31% 54% 38% 46% 26% 33%
Dari tabel 4.3 diperoleh nilai minimal kesalahan pada learning rate 0,08 yaitu total kesalahan 10 dari 39 data dengan nilai presentase kebenaran 74 %. Rata-rata waktu yang ditempuh untuk melalukan proses training dengan epoch 1000 dan
target error 0,01 adalah 2321 detik dengan persentase kebenaran 55%. Tabel 4.3 dapat direpresentasikan dalam bentuk grafik dibawah ini.
5000000 4000000 3000000 2000000 1000000 0 1
2
3
4
5
Nilai learning rate
6
Nilai learning rate 7
8
9
Waktu ( MiliDetik) Training 10
Gambar 4.25 Grafik pembelajaran Maxepoch 1000, target error 0,01 c. Tabel Uji Coba Dengan Nilai Max Epoch 10, 100, dan 1000, Target Erornya 0,01 dan Alpha 0,1–0,9 (Learning rate > target error) Tabel 4.4 Uji Coba Dengan Nilai Max Epoch 10, Nilai Target Erornya 0,01 Learning Max Target Rate Epoch Error 0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9
10 10 10 10 10 10 10 10 10
0,01 0,01 0,01 0,01 0,01 0,01 0,01 0,01 0,01
Waktu Training (milidetik) 73399 63462 58469 56519 111260 60388 100511 77189 92556
Konvergen
Persentase
True
False
True
False
13 18 6 9 3 3 3 3 3
26 21 33 30 36 36 36 36 36
33 % 46 % 15 % 23 % 8% 8% 8% 8% 8%
67 % 54 % 85 % 77 % 92 % 92 % 92 % 92 % 92 %
Tabel 4.5 Uji Coba Dengan Nilai Max Epoch 100, Nilai Target Erornya 0,01 Learning Max Target Rate Epoch Error 0,1 0,2 0,3 0,4 0,5
100 100 100 100 100
0,01 0,01 0,01 0,01 0,01
Waktu Training (milidetik) 411375 369359 336500 338312 525031
Konvergen
Persentase
True
False
True
False
23 21 24 20 12
16 18 15 19 27
58 % 53 % 61 % 51 % 31 %
42 % 47 % 39 % 49 % 69 %
0,6 0,7 0,8 0,9
100 100 100 100
0,01 0,01 0,01 0,01
9 7 6 6
341953 322016 369516 444062
30 32 33 33
23 % 17 % 15 % 15 %
77 % 68 % 85 % 85 %
Tabel 4.6 Uji Coba Dengan Nilai Max Epoch 1000, Nilai Target Erornya 0,01 Waktu Training (milidetik)
Learning Max Target Rate Epoch Error 0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9
1000 1000 1000 1000 1000 1000 1000 1000 1000
0,01 0,01 0,01 0,01 0,01 0,01 0,01 0,01 0,01
Konvergen
4230266 4937094 4955610 15356250 10182500 2373984 2483344 2504422 2409516
Persentase
True
False
True
False
23 21 25 20 12 10 7 6 6
16 18 14 19 27 29 32 33 33
60% 54% 64% 51% 31% 26% 18% 15% 15%
40% 46% 36% 49% 69% 74% 82% 85% 85%
20000000 15000000 10000000 5000000 0 1
2
3
4
Nilai learning rate
5
6
Nilai learning rate 7
8
9
Waktu ( MiliDetik) Training
Gambar 4.26 Grafik pembelajaran Maxepoch 1000, target error 0,01
Dari hasil uji coba pada tabel 4.4, 4.5, 4.6 terlihat jelas bahwa semakin banyak epoch yang diproses makaa semakin sedikit tingkat kesalahannya terbukti pada epoch 1000 dengan learning rate 0,3 dengan waktu pembelajaran 4955610 milidetik mendapatkan tingkat kesalahan 14 dari 39 data sedangankan pada epoch 10 dan 100 tingkat kesalahannya adalah 33 dan 15. Rata–rata waktu yang ditempuh untuk epoch 10 adalah 67 detik presentase tingkat kesalahan 82 %,
untuk epoch 100 rata-rata waktu yang ditempuh 384 detik persentase tingkat kesalahan 62 %. Dengan meningkatkan jumlah maksimal epoch menjadi 1000 maka rata-rata waktu yang ditempuh 5492 milidetik dengan persentase tingkat kesalahan 63 %. 4.2.2 Uji Coba RSA Pengujian tanda tangan digital menggunakan algoritma RSA dilakukan 5 kali untuk mengetahui kebenaran tanda tangan dan apakah tanda tangan tersebut telah terdaftar apa belum. Form Signig pada gambar 4.6 diatas digunakan untuk mengenali tanda tangan seseorang yang sudah terdaftar selanjutnya enkripsi data tersebut menggunakan kunci n dan kunci publik e. Untuk form verifyng digunakan untuk mengdeskripsikan file yang berisi chiper text dari hasil enkripsi menjadi plain text menggunakan kunci privat d dan n apakah data tersebut benar-benar terdaftar
untuk lebih jelas hasil dari enkripsi dan dekripsi tersebut berikut
pemaparan hasil dalam bentuk tabel 4.7.
Tabel 4.7 Tabel Uji Coba RSA Uji Ke
Ukuran File Byte
Nilai n
Kunci e
Kunci d
Waktu signing
Waktu Verfiyng
1
68
962163043
65537
312836937
47
49
2 3 4
62 58 58
818834363 261888749 984758849
65537 65537 65537
409740401 128838785 317779901
31 15 16
65 49 50
5 6
64 61
135324661 400169923
65537 65537
30067377 48518441
16 31
65 49
7
64
187821551
65537
64062905
16
81
8
68
1064547271 65537
711292337
79
49
9
62
1036342271 65537
508546961
31
34
10 11 12 13
65 65 62 61
294936311 524697031 960553537 499539433
94025729 204331873 744493265 372812901
31 15 16 16
65 34 81 65
65537 65537 65537 65537
Hasil
1234567890_brian_vNQq/D+olsXhl/jmzfyB+7aoStW = 90897_ageng_SyZnD8xK8mfTBRmWKiwPZiGc+dG = 66565_agis_cDru/mbXdSUqcq0NiR2mOIotNoM= 12345_adi_2PVnm08iGIYEGqdyTobbH42JOlW= 234234_dirga_MvnRlTkGumtxMjhGsOCAsCqSVmy = 3234414_doni_Haw1eL6QsOM3xxSjqlY7QfQU3s4= 12345678_mel_S5z547M2sT0opCaXCXUsYLA268c = 667574747_meynar_CsmjEvnxO2Cap1/sKa9kVoyvO Va= 53522525_nanda_zUa6uOGBsfBjqpY6u5TqBV5DnC p= 123456789_rey_cvCFCGhWwTaVWukMEj0U+reLO fu= 1234567_vildan_zI8oiOg32im3PCN7nBKvPamiI8S= 123456_wulan_DZHtJvGx7P5SP4jUc7bkvzhZTRJ= 1234_yudha_7chvJjb9g8bFupkDQHm5wfFR7xJ=
BAB V KESIMPULAN DAN SARAN
5.1
Kesimpulan Setelah melakukan uji coba sistem maka dapat disimpulkan : - Tingkat keberhasilan dari jaringan saraf tiruan LVQ dipengaruhi oleh 3 inputan yaitu maksimal epoch (set training jaringan), learning rate (laju pembelajaran), serta target error. Semakin besar nilai maksimal epoch maka semakin sedikit tingkat kesalahan dalam pembelajaran dengan menambah pula nilai learning rate-nya dan meminimalkan target errornya. - Authentifikasi tanda tangan manual dengan jaringan saraf tiruan dan tanda tangan digital dengan algoritma RSA mengahsilkan tingkat keberhasilan sukses sebesar 100 % untuk tanda tangan digital, dan 85 % untuk tanda tangan manual dengan pembelajaran menggunakan nilai max epoch 100, nilai Learning rate 0,1-0,9 dan nilai target error 0,01.
5.2
Saran 1. Menambah jumlah percobaan di edalam pengenalan tanda tangan manual dengan kelas dan jumlah data vector yang berbeda agar didapatkan keakuratan nilai persentase. 2. Mencoba menerapkan metode jaringan saraf tiruan LVQ dan metode algoritma RSA dengan kasus yang lainnya.
DAFTAR PUSTAKA Ahmad, Balaza dan firdausy kartika. 2005. Teknik Pengolahan Citra Digital Menggunakan Delphi. Yogyakarta: Andi Publishing. Alisher, 2005. Biometric Cryptosystem Using Online Signatures. http://www.google.co.id/#hl=id&q=biometric+alisher+2005, 17 januari 2010. Anonymous. http://www.wikipedia.org/signature recognition. Azizah, Rizqina. 2006. Analisis Tiga metode Ekstraksi ciri Pada Pola Tanda Tangan. Surabaya: Institut Teknologi Sepuluh Nopember. Bahri,S, Kusnassriyanto dan Siachriyanto wawan. 2008. Teknik Pemrograman Delphi Edisi Revisi. Bandung: Informatika. Bahreisy, H. Salim. 1984. Tarjamah Riadhus Shalihin. Bandung: P.T Alma’arif. Baharsyah, M. Pramana. 2006 Undeniable Signature. http://www.google.co.id/search?hl=id&q=tanda+tangan+digital+baharsya h+2006. 17 januari 2010. DPR RI, 2008. Undang-Undang Republik Indonesia no 11 tahun 2008. www.djkn.depkeu.go.id/index.php/20080529636/Undang-undangnomor_11_tahun 2008.html.auntizatio-44219.pdf. Duda, P. Hart and D.Stork. LVQ Pattern Classification. John Wiley and sony inc. Fairhurst, 2003. Biometrics for Secure Authentication . http://www.google.co.id/#hl=id&q=contoh+biometric+fairhurst+2003. 17 januari 2010 Gonzalez, R.C, and woods,RS. 2002. Digital Image Processing, 2nd ed., Prentice Hall, Upper Sadle river,Nj. Gultom, Bernadus Surya Perdana. 2006. Analisis Kinerja Algoritma RSA dan Pengacakan Citra pada Image enggunakan Transformasi wavelet. Bandung: STT Telkom. Kadir, Abdul. 2003. Pengenalan Sistem Informasi. Yogyakarta: Andi Offset. Kusuma, Dewi. 2003. Artificial Intelegence (Teknik dan Aplikasinya). Yogyakarta: Graha Ilmu.
KusumoPutro, Benyamin. 2001. Pengenalan Huruf Tulisan Menggunakan Ekstraksi Ciri Berbasis Fuzzy dan Jaringan Syaraf Tiruan. Jurnal Ilmu Komputer dan Teknologi Informasi. Kusuma, Dewi, S. 2004. Membangun jaringan saraf tiruan menggunakan matlab dan excel link. Yogyakarta: Graha Ilmu. Kurniawa, Agus dan Purnomo Hery. 2006. Supervised Pada Neural Networks dan Aplikasinya. Yogyakarta: Graha Ilmu. Kusumawati, Ririen. 2007.Artificial Intelligence Menyamai Kecerdasan Buatan Illahi?. Malang: UIN-Malang Press. Liman, J. (2005). Feedforward Neural Network. www.ukrida.co.id, diakses tanggal 12 November 2009. Munir, Rinaldi.. 2004. Pengolahan Citra Digital dengan Pendekatan Algoritmik. Informatika Bandung. Munir, Rinaldi. 2006. Kriptografi. Bandung: Informatika Bandung. Ratna, M. 2005. Studi dan Implementasi Cramer Shoup untuk Tanda Tangan Dijital. http://www.google.co.id/search?hl=id&q=tanda+tangan+digital+ratna+20 05. 17 Januari 2010 Susetyoko, R., Iman, B.N dan Harsono, T. 2005. LVQ Neural Network Dengan Pembangkitan Variabel Random Uniform Untuk Vektor Training pada Pengenalan Tanda Tangan. Surabaya: PENS-Institu Teknologi Sepuluh Nopember. Shihab, M. Quraish 1994. Lentera hati : kisah dan hikmah .Bandung: Mizan. Winarko, Edi. 2006. Perancangan Database Dengan Power Designer 6.32. Jakarta: Prestasi Pustaka. Zainal. 2002. Aplikasi Neural Network Pada Pengenalan Pola Tanda Tangan. Politeknik elektronika Negeri Surabaya. http://reference.kfpum.edu.sa/content/v/lvq_pak_the_Learning_vector_www.wiki pedia.org/signature. http://tedi heriyanto.net/papers/jst.htm informatika.org/~rinaldi/kriptografi/20062007/makalah-makalah/makalah-025.pdf.