Implementasi Algoritma One Time Pad pada Mikrokontroler Atmega32 untuk Keamanan Password Sistem Kendali Pintu Berbasis Android
MIKROKONTROLER ATMEGA32 UNTUK
KEAMANAN
PASSWORD
SISTEM
KENDALI PINTU BERBASIS
ANDROID
SKRIPSI
AGUNG PUTU YOGA
111401061
PROGRAM STUDI S-1 ILMU KOMPUTER
FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI
UNIVERSITAS SUMATERA UTARA
MEDAN
2015
(2)
SKRIPSI
Diajukan untuk melengkapi tugas dan memenuhi syarat memperoleh ijazah Sarjana Ilmu Komputer
AGUNG PUTU YOGA 111401061
PROGRAM STUDI S-1 ILMU KOMPUTER
FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA
MEDAN 2015
(3)
PERSETUJUAN
Judul : IMPLEMENTASI ALGORITMA ONE TIME PAD PADA MIKROKONTROLER ATMEGA32 UNTUK
KEAMANAN PASSWORD SISTEM KENDALI PINTU BERBASIS ANDROID
Kategori : SKRIPSI
Nama : AGUNG PUTU YOGA
Nomor Induk Mahasiswa : 111401061
Program Studi : SARJANA (S-1) ILMU KOMPUTER Departemen : ILMU KOMPUTER
Fakultas : FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA
Diluluskan di
Medan, 18 Desember 2015 Komisi Pembimbing :
Pembimbing 2 Pembimbing 1
Maya Silvi Lydia, B.Sc., M.Sc. Dr. Poltak Sihombing, M.Kom. NIP.19740127 200212 2 001 NIP. 196203171991031001
Diketahui/disetujui oleh
Program Studi S-1 Ilmu Komputer Ketua,
(4)
PERNYATAAN
IMPLEMENTASI ALGORITMA
ONE TIME PAD
PADA
MIKROKONTROLER ATMEGA32 UNTUK
KEAMANAN
PASSWORD
SISTEM
KENDALI PINTU BERBASIS
ANDROID
SKRIPSI
Saya mengakui bahwa skripsi ini adalah hasil karya saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing telah disebutkan sumbernya.
Medan, 18 Desember 2015
Agung Putu Yoga 111401061
(5)
UCAPAN TERIMA KASIH
Puji dan syukur penulis ucapkan kehadirat Allah SWT, karena rahmat dan izin-Nya penulis dapat menyelesaikan skripsi ini. Banyak bantuan berupa uluran tangan, budi baik, buah pikiran dan kerjasama yang telah penulis terima selama menempuh studi sampai dengan penyelesaian studi (skripsi) ini. Oleh karena itu, seyogianya penulis menyampaikan ucapan terima kasih kepada pihak-pihak yang telah membantu.
Ucapan terima kasih penulis sampaikan kepada:
1. Bapak Prof. Subhilhar, Ph.D selaku PJ Rektor Universitas Sumatera Utara. 2. Bapak Prof. Dr. Muhammad Zarlis selaku Dekan Fasilkom-TI USU.
3. Bapak Dr. Poltak Sihombing, M.Kom. selaku Ketua Program Studi S-1 Ilmu Komputer Universitas Sumatera Utara dan Dosen Pembimbing I yang telah memberikan bimbingan dan dukungan kepada penulis.
4. Ibu Maya Silvi Lydia, B.Sc., M.Sc. selaku Sekretaris Program Studi S-1 Ilmu Komputer Universitas Sumatera Utara dan Dosen Pembimbing II yang telah memberikan bimbingan dan dukungan kepada penulis.
5. Bapak M. Andri Budiman, S.T., M.Comp.Sc., M.E.M. selaku Dosen Pembanding I yang telah memberikan bimbingan dan dukungan kepada penulis.
6. Bapak Dahlan Sitompul B.Sc, M.Eng selaku Dosen Pembanding II yang telah memberikan bimbingan dan dukungan kepada penulis.
7. Bapak Dr. Syahril Efendi, S.Si., M.I.T. selaku Dosen Pembimbing Akademik yang telah memberikan bimbingan dan dukungannya kepada penulis.
8. Yang teristimewa, Ayahanda Supiadi dan Ibunda Amnah, serta Adinda Yusti Pratidina dan Diah Trinindita yang selalu memberikan kasih sayang dan dukungan kepada penulis.
9. Seluruh tenaga pengajar dan pegawai di Fakultas Ilmu Komputer dan Teknologi Informasi USU, terkhususnya di Program Studi S-1 Ilmu Komputer.
(6)
S.Kom., Kakak Azizah Mei Sari Sebayang, S.Kom. dan Kakak Hayatun Nufus, S.Kom. yang telah memberikan bantuan moral, nasihat dan pengetahuan kepada penulis.
11. Teman-teman kuliah, khususnya Mizfar, Prastia, Cholik, Farid, Tito, Iksan, Tio, Rony, Angga, Madia, Tari, Dias, Nurul, Retri, Aisyah yang telah memberikan semangat, teman diskusi yang menyenangkan dan teman seperjuangan dalam menggapai gelar Sarjana Komputer.
12. Khusus untuk Gina yang membantu dalam merapikan penulisan penelitian, Praktikan dan junior Heru, Huda dan Bobby (‘012) yang membantu dalam pembuatan hardware, Hawa (‘012) yang sudah membuatkan desain layout aplikasi android, Muhari (‘014) yang sudah membnatu membuat perangacangan berangkas.
13. Rekan-rekan di Imu Komputer Laboratory Center (IKLC), UKMI Al-Khuwarizmi Fasilkom-TI USU dan Pemerintahan Mahasiswa (PEMA) Fasilkom-TI USU yang juga membantu dengan memberikan semangat kepada penulis.
14. Semua pihak yang terlibat langsung atau tidak langsung yang penulis tidak dapat tuliskan satu per satu.
Semoga Allah SWT melimpahkan berkah dan kasih sayang-Nya kepada semua pihak yang telah memberikan bantuan, semangat, dukungan dan perhatian kepada penulis dalam menyelesaikan skripsi ini. Semoga skripsi ini bermanfaat bagi penulis, pendidikan, masyarakat, organisasi atau negara.
Medan, 18 Desember 2015
(7)
ABSTRAK
Penjagaan atau jaminan keamanan (privacy) terhadap barang yang bersifat pribadi dan penting merupakan sebuah kebutuhan. Untuk itu diperlukan sebuah sistem yang mampu membatasi akses orang lain agar dapat mengamankan barang pribadi. Sistem Kendali Pintu merupakan sistem keamanan untuk membatasi akses seseorang terhadap ruangan pribadi dengan menggunakan mikrokontroler sebagai kendali terhadap doorlock. Dalam proses pengunciannya, maka dilakukan penginputan
password melalui aplikasi android yang telah terhubung dengan mikrokontroler ATMega32. Untuk meningkatkan keamanan password, maka password akan dienkripsi dengan menerapkan algoritma kriptografi One Time Pad. Hasil enkripsi atau ciphertext selanjutnya akan disimpan didalam sistem android dan password disimpan pada mikrokontroler. Sedangkan untuk membuka kunci dilakukan dengan mendekripsi ciphertext kemudian hasil dekripsi yang berupa plaintext akan dicocokkan dengan password yang telah tersimpan sebelumnya didalam mikrokontroler. Dengan memanfaatkan teknik kriptografi ini mampu melakukan proses penjagaan barang pribadi lebih ketat dari pada teknik penguncian biasa dengan jumlah maksimal 10 karakter. Hasil perhitungan kompleksitas algoritma untuk One Time Padadalah(n).
(8)
IMPLEMENTATION OF ONE TIME PAD ALGORITHM IN
MICROCONTROLLER ATMEGA32 FOR PASSWORD
SECURITY ANDROID BASED
DOOR CONTROL
SYSTEM
ABSTRACT
It is important to guard or secure (privacy) of goods that is personal is necessity. Therefore it required a system capable of restricting the access of others in order to secure personal items.The door control system is a security system to restrict access to a privatel space by using a microcontroller as a doorlock control. The first, when lock on processing, it will be inputting the password through android application which has been connected to the microcontroller ATMega32. To increase the security of password, it is encrypted by applying a cryptographic algorithm, One Time Pad. In one hand results encryption or cipher text will be stored in the android system on the other hand password is stored on the microcontroller. And the second, unlock process is done by decrypting the ciphertext subsequently decrypted form results will be matched with the plaintext password that has been previously stored in the microcontroller. By using the cryptographic technique we are able to process safeguards the personal goods more strictly than the ordinary locking technique with a maximum of 10 characters. Algorithm complexity calculation results for One Time Pad is(n).
(9)
DAFTAR ISI Halaman Persetujuan ii Pernyataan iii Penghargaan iv Abstrak vi Abstract vii
Daftar Isi viii
Daftar Tabel x
Daftar Gambar xi
Daftar Lampiran xiii
Bab 1 Pendahuluan
1.1 Latar Belakang 1
1.2 Rumusan Masalah 2
1.3 Batasan Masalah 2
1.4 Tujuan Penelitian 3
1.5 Manfaat Penelitian 3
1.6 Metodologi Penelitian 3
1.7 Sistematika Penulisan 4
Bab 2 Landasan Teori
2.1 Kriptografi 5
2.1.1 Jenis-jenis algoritma kriptografi 5
2.1.1.1 Algoritma simetris 5
2.1.1.2 Algoritma asimetris 6
2.1.2 Algoritma one time pad 6
2.1.3 Blum Blum Shub 8
2.2 Mikrokontroler ATMega32 9
2.3 LCD karakter 16x2 14
2.4 Bluetooth 17
Bab 3 Analisis dan Perancangan Sistem
3.1 Analisis Sistem 19
3.1.1 Analisis kebutuhan sistem 19
3.1.2 Analisis permodelan sistem 20
3.1.2.1 Pemodelan dengan menggunakan use case diagram 20 3.1.2.2. Pemodelan dengan menggunakan activity diagram 22 3.1.2.3. Pemodelan dengan menggunakan sequence diagram 24
3.2 Perancangan Sistem 25
3.2.1Flowchartsistem 25
3.2.1.1 Flowchart Gambaran umum sistem 25 3.2.1.2 Flowchart proses enkripsi dengan OTP 29 3.2.1.3 Flowchart proses dekripsi dengan OTP 30
(10)
3.2.2.1 Antar muka splashscreen 31
3.2.2.2 Antar muka layout menu 32
3.2.2.3 Antar muka layout lock 32
3.2.2.3 Antar muka layout unlock 33
3.2.3. Perancangan Perangkat Keras 34
3.2.3.1 Kontruksi Utama 35
3.2.3.2 Perancangan perangkat elektronika 36 3.2.3.3 Perancangan antarmuka LCD 37 Bab 4 Implementasi dan pengujian sistem
4.1 Implementasi Sistem 39
4.1.1 Tampilan Antar Muka 40
4.1.1 Tampilan Halaman Splashscreen 40
4.1.2 Tampilan Halaman Menu 40
4.1.3 Tampilan Halaman Lock 41
4.1.4 Tampilan Halaman Unlock 42
4.1.5 Tampilan Halaman Menu About 43 4.1.6 Tampilan Halaman Menu Help 44
4.1.2 Perangkat Keras 44
4.1.2.1 Konstruksi utama 44
4.1.2.2 Perancangan perangkat elektronika 46 4.1.2.3 Tampilan antarmuka LCD 47
4.2 Pengujian Sistem 48
4.2.1 Pengujian One Time Pad 48
4.2.2 Pengujian Kompleksitas Algoritma 51 Bab 5 Penutup
5.1 Kesimpulan 53
5.2 Saran 53
(11)
DAFTAR TABEL Nomor
Tabel Nama Tabel Halaman
2.1 2.2 2.3 2.4 2.5 3.1 3.2 3.3 3.4 3.5 4.1 4.2 4.3 4.5
Konfigurasi pin ATMega32
Koneksi pin port paralel dan ATMega32 Keterangan pin LCD karakter 16x2 Pengaturan display LCD
Pengaturan karakter LCD Defenisi aktor
Use case
Skenario use case lock Skenario use case unlock
Rincian komponen board mikrokontroler ATMega32 Proses Enkripsi One Time Pad
Proses Dekripsi One Time Pad
Kompleksitas algoritma enkripsi one time pad Kompleksitas algoritma dekripsi one time pad
12 14 15 15 16 20 20 21 22 36 49 50 51 52
(12)
DAFTAR GAMBAR
Nomor
Gambar Nama Gambar Halaman
2.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8 2.9 3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 3.9 3.10 3.11 3.12 3.13 3.14 3.15 3.16 3.17 3.18 3.19 3.20 3.21 3.22 3.23 4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 4.9
Skema kriptografi simetris Kriptografi asimetris Arsitektur ATMega32 Konfigurasi pin ATMega32
(a) Flash program memory, (b) data memory Susunan pin LCD karakter 16x2
Hubungan power supply ke LCD Kode karakter CGROM pada LCD Bagian-bagian bluetooth
Use case diagram
Activity diagram untuk proses lock Activity diagram untuk proses unlock Sequence diagram proses lock
Sequence diagram proses unlock
Flowchart koneksi bluetooth android ke mikrokontroler ATMega32
Flowchart lock pintu Flowchart unlock pintu
Flowchart proses enkripsi dengan OTP Flowchart proses dekripsi dengan OTP Rancangan layout splashscreen
Rancangan layout menu Rancangan layout lock Rancangan layout unlock Konstruksi utama ketika lock Konstruksi utama ketika unlock
Perancanganboard mikrokontroler (main board) Rancangan tampilan LCD pada awal sistem
Rancangan Tampilan LCD untuk Input Key dan Password Rancangan Tampilan LCD untuk Input Password
Rancangan Tampilan LCD untuk Tanda Lock Rancangan Tampilan LCD untuk Tanda Unlock Rancangan Tampilan LCD untuk Salah Password Diagram ishikawa
Tampilan Halaman Splashscreen Tampilan Halaman Menu
Tampilan Halaman Lock Tampilan Halaman Unlock Tampilan Halaman Menu About Tampilan Halaman Menu Help Konstruksi utama ketika lock Konstruksi utama ketika unlock
6 6 10 12 13 14 14 16 17 21 23 23 24 25 26 27 28 29 30 31 32 33 34 35 35 37 37 37 38 38 38 38 39 40 41 42 43 43 44 45 45
(13)
4.10 4.11 4.12 4.13 4.14 4.15 4.16 4.17 4.18 4.19
Rangkaian Ares dari perangkat
Implementasi Ares ke papan PCB (a) tampak muka (b) tampak belakang
Tampilan LCD pada Awal Sistem
Tampilan LCD untuk Input Key dan Password Tampilan LCD untuk Input Password
Tampilan LCD untuk Tanda Lock Tampilan LCD untuk Tanda Unlock Tampilan LCD untuk Salah Password
Pengujian pada sistem android (a) Lock dan (b) Unlock
Pengujian pada sistem hardware (a) cipherteks dan (b) key dan password (c) plainteks
46 46 47 47 47 47 48 48 49 50
(14)
DAFTAR LAMPIRAN
Halaman
Lampiran 1 Listing Program 56
(15)
ABSTRAK
Penjagaan atau jaminan keamanan (privacy) terhadap barang yang bersifat pribadi dan penting merupakan sebuah kebutuhan. Untuk itu diperlukan sebuah sistem yang mampu membatasi akses orang lain agar dapat mengamankan barang pribadi. Sistem Kendali Pintu merupakan sistem keamanan untuk membatasi akses seseorang terhadap ruangan pribadi dengan menggunakan mikrokontroler sebagai kendali terhadap doorlock. Dalam proses pengunciannya, maka dilakukan penginputan
password melalui aplikasi android yang telah terhubung dengan mikrokontroler ATMega32. Untuk meningkatkan keamanan password, maka password akan dienkripsi dengan menerapkan algoritma kriptografi One Time Pad. Hasil enkripsi atau ciphertext selanjutnya akan disimpan didalam sistem android dan password disimpan pada mikrokontroler. Sedangkan untuk membuka kunci dilakukan dengan mendekripsi ciphertext kemudian hasil dekripsi yang berupa plaintext akan dicocokkan dengan password yang telah tersimpan sebelumnya didalam mikrokontroler. Dengan memanfaatkan teknik kriptografi ini mampu melakukan proses penjagaan barang pribadi lebih ketat dari pada teknik penguncian biasa dengan jumlah maksimal 10 karakter. Hasil perhitungan kompleksitas algoritma untuk One Time Padadalah(n).
(16)
IMPLEMENTATION OF ONE TIME PAD ALGORITHM IN
MICROCONTROLLER ATMEGA32 FOR PASSWORD
SECURITY ANDROID BASED
DOOR CONTROL
SYSTEM
ABSTRACT
It is important to guard or secure (privacy) of goods that is personal is necessity. Therefore it required a system capable of restricting the access of others in order to secure personal items.The door control system is a security system to restrict access to a privatel space by using a microcontroller as a doorlock control. The first, when lock on processing, it will be inputting the password through android application which has been connected to the microcontroller ATMega32. To increase the security of password, it is encrypted by applying a cryptographic algorithm, One Time Pad. In one hand results encryption or cipher text will be stored in the android system on the other hand password is stored on the microcontroller. And the second, unlock process is done by decrypting the ciphertext subsequently decrypted form results will be matched with the plaintext password that has been previously stored in the microcontroller. By using the cryptographic technique we are able to process safeguards the personal goods more strictly than the ordinary locking technique with a maximum of 10 characters. Algorithm complexity calculation results for One Time Pad is(n).
(17)
PENDAHULUAN
1.1. Latar Belakang
Perkembangan ilmu pengetahuan dapat dirasakan dalam berbagai dimensi kehidupan manusia. Perkembangan ilmu pengetahuan itu sendiri telah memacu perkembangan teknologi. Ilmu pengetahuan dikembangkan untuk menciptakan teknologi yang mempermudah pekerjaan manusia. Perkembangan teknologi juga menuntut kita untuk meningkatkan keamanan.
Kriptografi adalah ilmu dan seni untuk menjaga kerahasiaan pesan atau informasi yang dapat dibaca. Pesan biasanya disebut juga sebagai plaintext. Dalam kriptografi banyak algoritma yang bisa diterapkan seperti:hill cipher, vigenere cipher, caesar cipherdanOne Time Pad (OTP), El Gamal, Rivest-Shamir-Adleman (RSA).
Algoritma One Time Pad (OTP) termasuk algorima kriptografi kunci simetris yang artinya bahwa kunci yang digunakan untuk melakukan enkripsi dan dekripsi merupakan kunci yang sama. OTP merupakan algoritma kriptografi yang sederhana namun dinyatakan oleh para ahli kriptografi sebagai “perfect encription algorithm” karena tidak dapat dipecahkan meskipun diberikan sumber daya yang tidak terbatas. Algoritma OTP merupakan algoritma yang sering digunakan pada keamanan pada sistem transaksi untuk enkripsi password atau pin yang digunakan dikarenakan algoritma OTP sangat baik digunakan untuk data teks yang pendek. Pada OTP harus menggunakan kunci yangrandomuntuk meningkatkan kemanaan dari algoritma OTP.
Setiap ruangan membutuhkan kunci pintu untuk membatasi akses orang yang bisa masuk kedalam ruangan tersebut. Dan terkadang memasang sistem tanda bahaya (alarm system), untuk menjaga keamanan dari suatu ruangan maupun beberapa ruangan maka dibuatlah sistem pengamanan ruangan, maupun yang dikombinasikan antara keduanya yang berfungsi untuk menjaga keamanan dari suatu ruangan.
(18)
Akses kendali pintu (door lock access control) merupakan sebuah sistem yang digunakan untuk membatasi pengguna dalam mengakses suatu ruangan. Sistem tersebut dilengkapi hardware, softwaredan suatu algoritma untuk mengendalikannya. Dalam akses kendali pintu, sistem kendali pintu mengarah pada pembatasan akses pintu masuk ke properti, bangunan, atau ruang untuk orang yang berwenang.
Kendali akses elektronik menggunakan sistem komputerisasi atau mikrokontroler diharapkan dapat memecahkan masalah tersebut. Sistem akses kendali difungsikan sebagai sistem yang dirancang untuk diberikan perintah wewenang membatasi pengguna untuk mengakses ke wilayah, ruangan atau fasilitas tertentu. Sebagai keluaran eksekusi perintah dari mesin akses kendali ditambahkan kunci elektrik (electric lock) dengan sistem buka dan tutup.
Berdasarkan penjelasan di atas, penulis akan merancang suatu sistem keamanan akses kendali pintu dengan menggunakan algoritmaOne Time Pad. Sistem ini menggunakan dua media yaitu smartphone android dan doorlock. Smartphone android dengan komunikasi melalui bluetooth berfungsi untuk mengirim teks (password) sebagai pengaman dandoorlockuntuk mengimplementasikan sistem kunci elektrik.
1.2. Rumusan Masalah
Rumusan masalah yang akan dibahas pada penelitian ini adalah bagaimana untuk melakukan pengamanan terhadap sebuah ruangan dengan menggunakan mikrokontroler dan aplikasi android.
1.3. Batasan Masalah
Adapun batasan masalah dalam tugas akhir ini adalah sebagai berikut: 1. Passwordyang digunakan terdiri dari 10 karakter.
2. Menggunakan bahasa pemrograman Java untuk pemrograman pada aplikasi
androiddan C untuk pemrograman pada mikrokontroler. 3. Algoritma pembangkit kunci yang digunakanBlum Blum Shub.
(19)
1.4. Tujuan Penelitian
Tujuan penelitian ini adalah membuat sistem pengamanan pintu dengan menggunakan mikrokontroler sebagai sistem kendali doorlook dan aplikasi android yang menerapkan algoritmaOne Time pad(OTP).
1.5. Manfaat Penelitian
Manfaat yang didapat dari penelitian ini adalah untuk menghasilkan sistem kendali pintu berbasis android yang menerapkan algoritma One Time Pad (OTP) pada mikrokontroler ATMega32 dan sebagai bahan acuan untuk penelitian selanjutnya.
1.6. Metodologi Penelitian
Tahapan penelitian yang dilakukan dalam penelitian ini adalah : 1. Studi Literatur
Pada tahap ini dilakukan pengumpulan referensi yang diperlukan dalam penelitian. Hal ini dilakukan untuk memperoleh informasi dan data yang diperlukan untuk penulisan skripsi ini. referensi yang digunakan dapat berupa buku, jurnal, artikel, situs internet yang berkaitan dengan penelitian ini.
2. Perancangan Sistem
Merancang sistem sesuai dengan rencana yang telah ditentukan, yaitu meliputi perancangan desain hardware, flowchart, diagram use-case, diagram activity, diagramsequence dan perancangan antarmuka dari aplikasi. Proses perancangan ini berdasarkan pada batasan masalah dari penelitian ini.
3. Implementasi Sistem
Pada tahap ini pembuatan sistem hardware telah selesai dilaksanakan dan menambahkan algoritma One Time Pad ke dalam sistem hardware sesuai dengan analisis dan perancangan yang telah dilakukan sebelumnya.
4. Pengujian Sistem
Pada tahap ini akan dilakukan pengujian terhadap sistem yang telah dibangun. 5. Dokumentasi
Melakukan pembuatan dokumentasi sistem mulai dari tahap awal hingga pengujian sistem, untuk selanjutnya dibuat dalam bentuk laporan penelitian
(20)
1.7. Sistematika Penulisan
Sistematika penulisan skripsi ini terdiri dari beberapa bagian utama yang dijelaskan seperti berikut.
BAB 1 PENDAHULUAN
Menjelaskan latar belakang dari penelitian yang dilakukan, rumusan masalah, batasan masalah, tujuan penelitian, manfaat penelitian, metodologi penelitian dan sistematika penulisan dari skripsi ini.
BAB 2 LANDASAN TEORI
Berisi penjelasan singkat mengenai sistem kriptografi, teori-teori dasar yang digunakan dalam algoritma kriptografi One Time Pad, sistem kriptografi One Time Pad, penjelasan singkat tentang mikrontroler ATMega32, LCD dan beberapa penelitian terdahulu yang relevan.
BAB 3 ANALISIS DAN PERANCANGAN
Membahas analisis terhadap masalah penelitian, analisis kebutuhan dalam membangun sistem dan perancangan terhadap sistem yang akan dibangun.
BAB 4 IMPLEMENTASI DAN PENGUJIAN
Merupakan hasil penelitian yang dilakukan. Berisi tentang penjelasan implementasi sistem berdasarkan analisis dan perancangan sistem, skenario pengujian terhadap sistem yang telah dibangun serta pembahasan hasil pengujian.
BAB 5 KESIMPULAN DAN SARAN
Berisi kesimpulan dari keseluruhan penelitian dan saran berdasarkan hasil pengujianyang diharapkan dapat bermanfaat untuk pengembangan selanjutnya.
(21)
LANDASAN TEORI
2.1. Kriptografi
Ditinjau dari segi terminologinya, kata kriptografi berasal dari bahasa Yunani yaitucrypto
yang berarti secret (rahasia) dan graphia yang berarti writing (tulisan). Jadi kriptografi adalah ilmu dan seni untuk menjaga keamanan pesan ketika pesan dikirim dari suatu tempat ke tempat lain. Maka secara termonologi kriptografi merupakan langkah-langkah logis bagaimana menyembunyikan pesan dari orang-orang yang tidak berhak atas pesan tersebut (Ariyus, 2008).
2.1.1. Jenis-jenis algoritma kriptografi
Algoritma Kriptografi dibagi tiga berdasarkan kunci yang dipakai, yaitu algoritma simetri (menggunakan satu kunci untuk proses enkripsi dan dekripsi), algoritma asimetri (menggunakan kunci yang berbeda untuk proses enkripsi dan dekripsi), dan fungsihash(Ariyus, 2008).
2.1.1.1. Algoritma simetris
Algoritma simetris adalah algoritma yang menggunakan kunci enkripsi yang sama dengan kunci dekripsinya (Wandani, 2012). Algoritma simetris sering juga disebut sebagai algoritma kunci rahasia, algoritma kunci tunggal atau algoritma satu kunci (Lilda, 2008). Bila mengirim pesan dengan algoritma ini, si penerima pesan harus diberitahu kunci dari pesan tersebut agar bisa mendekripsikan pesan yang dikirim. Keamanan dari pesan yang menggunakan algoritma ini tergantung pada kunci.
(22)
Jika kunci tersebut diketahui oleh orang lain maka orang tersebut dapat melakukan enkripsi dan dekripsi pada pesan (Sadikin, 2012). Yang termasuk algoritma kunci simetris adalah hill cipher, vigenere cipher, caesar cipher, OTP, DES, RC2, RC4, RC5, IDEA, Twofish, Magenta, FEAL, SAFER, LOKI, CAST, Rijndael (AES),
Blowfish, GOST, A5, Kasumi dan lain-lainnya.
Gambar 2.1 Skema Kriptografi Simetris 2.1.1.2. Algoritma asimetris
Kunci yang digunakan dalam algoritma asimetri (asymmetric cryptosystems) untuk melakukan enkripsi dan dekripsi berbeda (Smart, 2004). Algoritma asimetris disebut juga dengan kriptografi kunci publik karena algortima ini memiliki kunci yang berbeda untuk enkripsi dan dekripsi, dimana enkripsi menggunakan public key dan untuk dekripsinya menggunakan private key. Public key dan private key harus saling berpasangan secara matematis. Dengan memberikanpublic key, pembuat kunci berhak memberikan dan mendapatkanpublic keyagar pesan aman dan hanya bisa dibaca oleh si pembuat kunci. Dalam kriptografi kunci asimetri, hampir semua algoritma kriptografinya menggunakan konsep kunci publik, seperti Rivest-Shamir-Adleman (RSA), El-Gamal, Rabin dan sebagainya (Harahap, 2014). Kecuali algoritma Pohlig˗Hellman karena kunci enkripsi maupun kunci dekripsinya bersifat rahasia.
Gambar 2.2 Kriptografi Asimetris 2.1.2. Algoritma One Time Pad
Algoritma ini ditemukan pada tahun 1917 oleh Mayor Joseph Mauborgne dan Gilbert Vernam. Cipher ini termasuk ke dalam kelompok algoritma kriptografi simetri
Algoritma
Enkripsi AlgoritmaDekripsi
Kunci Rahasia
Teks
(23)
(Prameswara, 2013). One Time Pad berisi deretan karakter kunci yang dibangkitkan secara acak dan setiap kunci hanya bisa dipakai sekali pakai.
Pemilihan kunci harus secara acak dan kunci hanya bisa digunkan satu kali saja agar algoritma One Time Pad tidak mudah dipecahkan (Mollin, 2007). Panjang stream karakter kunci sama dengan panjang pesan. One Time Pad (pad = kertas bloknot) berisi barisan karakter-karakter kunci yang dibangkitkan secara acak. Satu pad hanya digunakan sekali (one time) saja untuk mengenkripsi pesan, setelah itu pad yang telah digunakan dihancurkan. Panjang kunci One Time Pad = panjang teks asli sehingga tidak ada kebutuhan untuk mengulang penggunaan kunci selama proses enkripsi.
Aturan enkripsi yang digunakan persis sama seperti pada kode Vigenere. Enkripsi: ci = (pi + ki) mod 26...(2.1)
Dekripsi: pi = (ci–ki) mod 26... (2.2)
Dimana: ci= cipherteks pi= plainteks ki= kunci
Bila diketahui teks asli: “ONETIMEPAD”
Dengan kunci: “TBFRGFARM”
Diasumsikan A= 0, B = 1, . . . , Z=25.
Maka akan didapat teks-kode : “IPKLPSFHGQ” yang mana diperoleh sebagai
berikut:
(O + T ) mod 26 = I (N + B ) mod 26 = P (E + F ) mod 26 = K ( T + R ) mod 26 = L ( I + G ) mod 26 = P ( M + F ) mod 26 = S ( E + A ) mod 26 = F ( P + R ) mod 26 = H ( A + F ) mod 26 = G ( D + M ) mod 26 = Q
(24)
Sistem One Time Pad tidak dapat dipecahkan karena beberapa alasan yaitu barisan kunci acak + teks asli yang tidak acak = teks kode yang seluruhnya acak. Mendekripsi teks kode dengan beberapa kunci berbeda dapat menghasilkan teks asli yang bermakna sehingga kriptanalis tidak punya cara untuk menentukan teks asli mana yang benar.
Algoritma ini memiliki beberapa kelemahan, yaitu : Kunci yang dipakai haruslah benar-benar acak. Menggunakan pseudorandom generator tidak dihitung, karena algoritma ini memiliki bagian yang tidak acak. Panjang kunci juga harus sama dengan panjang pesan, sehingga hanya cocok untuk pesan berukuran kecil. Selain itu, karena kunci dibangkitkan secara acak, maka tidak mungkin pengirim dan penerima membangkitkan kunci yang sama secara simultan, dan karena kerahasiaan kunci harus dijamin, maka perlu ada perlindungan selama pengiriman kunci. Oleh karena itu, algoritma ini hanya dapat digunakan jika tersedia saluran komunikasi kedua yang cukup aman untuk mengirim kunci (Prameswara, 2013).
2.1.3. Blum Blum Shub generator
Blum Blum Shub generator merupakan algoritma pembangkit bilangan yang cukup sederhana. BBS diperkenalkan pada tahun 1986 pada Lenore Blum, Manuel Blum, dan Michael Shub (Schneier, 1996) . Berikut ini algoritma dari BBS :
1. Pilih dua bilangan primapdanq, di manap danqkeduanya kongruen 3 modulo 4.
p≡ 3 (mod 4) danq≡ 3 (mod 4)
2. Hasilkan bilangan bulat blumndengan menghitungn= p x q.
3. Pilih lagi sebuah bilangan acak s sebagai seed, bilangan yang dipilih harus memenuhi kriteria:
a. 2 ≤s<n.
b.sdannrelatif prima. 4. Hitung nilaix0=s2modn.
5. Hasilkan bilangan bit acak dengan cara : a. Hitungxi =xi-12modn.
b. Hasilkanzi= bit - bit yang diambil darixi.
Bit yang diambil bisa merupakan LSB (Least Significant Bit) / hanya satu bit atau sebanyakjbit (j tidak melebihilog2(log2n)).
(25)
6. Bilangan bit acak dapat digunakan langsung atau diformat dengan aturan tertentu, sedemikian hingga menjadi bilangan bulat.
2.2. Mikrokontroler ATMega32
Mikrokontroler adalah chip yang berisi berbagai unit penting untuk melakukan pemrosesan data (I/O, timer, memory, Arithmatic Logic Unit (ALU) dan lainnya) sehingga dapat berlaku sebagai pengendali dan komputer sederhana (Susilo, 2010).
Mikrokontroler AVR (Alf and Vegard’s Risc processor) standar memiliki 8 bit, dimana semua instruksi dikemas dalam kode 18-bit dan sebagian besar instruksi dieksekusi dalam 1 (satu) siklus clock. AVR berteknologi RISC (Reduced Instruction Set Computing), dengan menggunakan jumlah instruksi yang lebih sedikit, memungkinkan lahan pada chip (silicon real-estate) digunakan untuk meningkatkan kemampuan chip. Keuntungan dari RISC adalah kesederhanaan desain, chip yang lebih kecil, jumlah pin sedikit dan mengonsumsi sedikit daya (Budiharto, 2010).
Mikrokontroler Keluarga AVR secara umum dikelompokkan menjadi 6 (enam) kelompok, yaitu :
a. Keluarga ATtini : biasanya bentuk dimensinya kecil, ukuran memori kecil, jumlah pin masukan dan keluaran juga sedikit.
b. Keluarga AT90Sxx : Merupakan mikrokontroler yang pertama kali dibuat oleh Atmel Corp.
c. Keluarga ATMega : Merupakan pengembangan mikrokontroler AT90Sxx dengan fitur yang lebih banyak.
d. Keluarga AT86RFxx : Merupakan mikrokontroler berorientasi desain minimal. e. Keluarga AT90USBxx : Merupakan mikrokontroler yang berorientasi
pemrograman USB
f. Keluarga AVR 32 Bit contohnya AP7000, UC3Axxxx, UC3Bxxx, UC3Lxx, dsb : Merupakan mikrokontroler dengan register dan instruksi dengan panjang 32 bit.
Mikrokontroler ATMega32 adalah keluarga dari ATMega yang memiliki Arsitektur sebagai berikut :
(26)
Gambar 2.3 Arsitektur ATMega32
Fitur-fitur yang dimiliki oleh ATMega32 adalah sebagai berikut : a. Performa tinggi, mikrokontroler berdaya rendah.
b. Mikrokontroler dengan arsitektur RISC 8 bit.
1. 131 kode instruksi dalam bahasa assembly, hampir semua membutuhkan satu
clockuntuk eksekusi.
2. Mempunyai 32 x 8 bit register kerja kegunaan umum.
3. Pengoperasian full static, artinya clock dapat diperlambat, bahkan dihentikan sehingga chip berada dalam kondisi sleep. CMOS juga lebih tahan terhadap
noise.
4. Kecepatan mengeksekusi sampai dengan 16 mega instruksi per detik pada saat diberikan osilator sebesar 16 MHZ.
(27)
5. Terdapat rangkaian pengali 2 (dua) kali untuk siklus kerjanya di dalam chip. c. Flash EEPROM (Electrically Eraseable Programmable Read Only Memory)
sebesar 32 kilobyte yang dapat diprogram ulang dan dengan kemampuan Read While Write.
d. Ketahanan hapus-tulisFlash ROM adalah 10.000 kali dengan pengaturan pilihan kodebootdanLock Bityang independen.
e. Memori SRAM sebesar 2kilobyteyang dapat dihapus-tulis 100.000 kali.
f. penguncian kode program untuk keamanan perangkat lunak agar tidak dapat dibaca.
g. Memori yangnon-volatileEEPROM sebesar 1024 byte.
h. Memiliki 2 buah timer/counter 8 bit sebanyak 2 buah dan sebuah timer/counter
16 bit dengan opsi PWM sebanyak 4 kanal.
i. Memiliki 8 kanalAnalog to Digital Converter10 bit dengan jenissingle ended. j. Kemasan TQFP ADC dapat diatur 7 buah kanal jenis diferensial dan khusus 2
kanal dengan penguatan yang dapat diatur melalui registernya sebesar 1x, 10x atau 20x.
k. Antarmuka komunikasi serial USART yang dapat diprogram dengan kecepatan maksimal 2,5 Mbps.
l. Antarmuka SPImaster/slave.
m. Watchdog timerdengan osilator di dalam chip yang dapat diprogram. n. Komparator Analog di dalam chip.
o. Pendeteksian tegangan gagal yang dapat diprogram. p. Osilator RC internal yang terkalibrasi.
q. Sumber interupsi internal dan eksternal.
r. Pilihan Mode sleep : idle, pereduksi noise ADC, penghematan daya konsumsi, penurunan daya, kondisistandby.
s. 32 Pin masukan dan keluaran terprogram.
t. Terdapat pilihan kemasan PDIP 40 pin,TQFP 44 kaki, QFN/MLF 44 titik. u. Tegangan pengoprasian
1. 2,7 – 5,5 Volt untuk ATMega32L 2. 4,5 – 5,5 Volt untuk ATMega32 v. Kecepatan
(28)
2. 0 – 16 MHz untuk ATMega32
w. Konsumsi daya pada 1 MHz, 3 Volt, suhu 25oC untuk ATMega32L.
1. Aktif : 1,1 Miliampere 2. Mode idle: 0,35 Miliampere
3. Mode power down: kurang dari 1 Mikroampere ATMega32 dapat dilihat pada Gambar 2.4 :
Gambar 2.4 Konfigurasi Pin ATMega32
Tabel 2.1 Konfigurasi Pin ATMega32
Nomor Pin Nama Fungsi
10 VCC Catu daya positif
11, 31 GND Catu daya negative/ground
30 AVCC Catu daya positif untuk ADC internal
32 AREF Pin untuk tegangan referensi AADC
1 – 8 PB7…PB0 Pin masukan dan keluaran Port B
33 – 40 PA7…PA0 Pin masukan dan keluaran Port A
14 – 21 PD7…PD0 Pin masukan dan keluaran Port D
22 – 29 PC7…PC0 Pin masukan dan keluaran Port C
9 RESET Pin masukan untuk reset (active low)
(29)
(a) (b)
Gambar 2.5 (a)Flash Program Memory, (b)Data Memory
Untuk dapat menggunakan atau mengoperasikan mikrokontroler ATMega32, harus dibuat sistem minimum yang meliputi komponen antara lain : sumber tegangan (Vcc) sebesar 5V DC, Ground (Gnd) dan sistem reset. Mikrokontroler ATMega32 memiliki clock generator internal sebesar 1 MHz, sehingga mikrokontroler ini dapat bekerja langsung tanpa harus menggunakanclock external.
Untuk membuat program mikrokontroler ATMega32 digunakan editor dan
compileruntuk bahasaC. Dalam pembahasan inieditor dancompileryang digunakan adalah WinAVR. Setelah proses pembuatan dan kompilasi program selesai dilakukan akan diperoleh file intel hex (*.hex). File ini adalah file yang nantinya akan diprogramkan ke mikrokontroler ATMega32 melaluiinterface bsd programmer (Brian Dean's Programmer) yang terhubung ke komputer melalui antarmuka port paralel komputer. Koneksi antara ATMega32 dan port paralel untuk bsd programmer
(30)
Tabel 2.2 Koneksi Pin Port Paralel dan ATMega32
Port Paralel ATMega32
No pin Nama pin No pin Nama pin
7 D5 9 Reset
8 D6 8 SCK
9 D7 6 MOSI
10 S6 7 MISO
25 Ground 11 Ground
2.3. LCD Karakter 16 x 2
LCD (liquid crystal display) adalah piranti output untuk sistem komputer atau mikrokontroler yang dapat menampilkan karakter standar yang telah tersimpan dalam ROM pada LCD tersebut. Karakter yang dapat ditampilkan sebanyak 32 karakter yang tersusun dalam 16 kolom dan dua baris, sehingga sering disebut LCD 16x2. LCD memiliki 16 pin dan memerlukan tegangan 5V DC. Gambar 2.6 menunjukkan bentuk dan susunan pin LCD dan keterangan dari setiap pin diberikan pada tabel 3 (Suyadhi, 2010).
Gambar 2.6 Susunan Pin LCD Karakter 16x2
Sebelum menggunakan modul LCD ini, power supply 5V DC harus diberikan sebagai sumber arusnya seperti yang ditunjukkan Gambar 2.7.
(31)
Tabel 2.3 Keterangan Pin LCD Karakter 16x2 (Iswanto, 2009)
No pin Nama pin Level Fungsi 1 Vss - Ground
2 Vdd - Power supply untuk chip LCD 3 Vo 0V – 5V Power supply untuk LCD 4 RS H/L Register Selection 5 R/W H/L Read atau Write 6 E H→L Enable 7 DB0 H/L Data Bit 0 8 DB1 H/L Data Bit 1 9 DB2 H/L Data Bit 2 10 DB3 H/L Data Bit 3 11 DB4 H/L Data Bit 4 12 DB5 H/L Data Bit 5 13 DB6 H/L Data Bit 6 14 DB7 H/L Data Bit 7
15 LEDA - Power supply untuk LED (+) 16 LEDK - Power supply untuk LED (-)
Untuk menampilkan karakter pada LCD ada beberapa algoritma yang harus dijalankan. Algoritma ini dilakukan dengan memberikan nilai logika 0 atau 1 pada pin yang bersangkutan. Algoritma untuk penampilan karakter ini antara lain:
1. MengaturdisplayLCD,cursordanblink.
Tabel 2.4 Pengaturan Display LCD
E RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
1→0 0 0 0 0 0 0 1 D C B
Keterangan:
D: D=0displaymati dan D=1displayhidup C: C=0cursormati dan C=1cursorhidup B: B=0blinkmati dan B=1blinkhidup
(32)
2. Mengatur karakter yang akan ditampilkan
Tabel 2.5 Pengaturan Karakter LCD (Usman, 2008)
E RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 1→0 0 0 Nilai berdasarkan CGROM
Keterangan: Nilai dari DB0 sampai DB7 yang dimasukkan nantinya akan mengatur tampilan karakter yang berkorespondensi dengan kode karakter CGROM pada chip LCD. Kode karakter CGROM diberikan pada gambar 8.10 yang terdiri dari kolom yang menunjukkan DB6 – DB7 dan baris yang menunjukkan DB0 – DB3.
(33)
2.4. Bluetooth
Bluetooth didefinisikan sebagai sebuah arsitektur protokol ber-layer yang mengandung protokol inti, pengganti kabel dan protokol telepon serta protokol adaptasi. Pada bagian selanjutnya akan dibahas lebih lanjut mengenai masing-masing blok dari arsitektur protokol sebagaimana yang terlihat pada gambar.
Gambar 2.9 Bagian – bagianbluetooth
Layer paling dasar dari arsitektur bluetooth adalah bluetooth radio. Bluetooth
beroperasi pada industrial Scientific and Medical (ISM) band antara 2,40 sampai dengan 2,48 GHz. Terdapat tiga kelas dari transmitter yang dibedakan dari output power dan jangkauan transmisi yang dimiliki.Bluetoothradio menggunakan modulasi Gaussian Frequenscy Shift Keying (GFSK) dalam melakukan transmisinya. Baseband layer adalah lapisan fisik dan berada diatas bluetooth radio. Baseband layer
menangani masalah channel. Untuk menghindari terjadinya interferensi dari sinyal lain yang berada pada band 2,4 GHz seperti WLAN, bluetooth menggunakan prinsip frekuensi hopping. Setiap perangkat bluetooth mempunyai alamat hardware yang khusus dan sebuah bluetooth clock. Sebuah algoritma tertentu digunakan untuk menghitung frekuensi hopping yang digunakan berdasarkan pada hardware address
(34)
pengiriman dan penerimaan data. Di mana pada skema ini perangkat master melakukan transmisi pada slot watu genap dan perangkat slave melakukan transmisi pada slot waktu ganjil. Link Manager berfungsi untuk menjalankan link setup ,
authentication, link configuration dan aspek lainnya dari hubungan radio antara
master dan slave. Selain itu juga berfungsi untuk menemukan lonk manager lainnya dan melakukan komunikasi dengan menggunakan link manager protokol. Untuk memastikan hardware yang berbeda dapat saling mendukung, maka perangkat
bluetooth menggunakan Host Controller Interface (HCI) sebagai tatap muka antara
host bluetooth(contohnya komputer) danbasebanddanlink manager.
Logical Link Control and Adaption Protocol (L2CAP) adalah lapisan yang berbeda di atas baseband protokol dan melayani protokol yang di atasnya dengan kemampuan protokol multiplexingdanpacket augmentationsertareassembly(SAR). Fungsi SAR diperlukan untuk mendukung protokol yang menggunakan paket data yang lebih besar daripada yang dapat didukung oleh baseband. Paket L2CAP yang besar dibagi kedalam beberapa paket baseband yang lebih kecil sebelum dipancarkan dan paket-paket tersebut akan disusun kembali setelah diterima menjadi paket L2CAP.
Service Discovery Protocol pada dasarnya berfungsi untuk menyediakan perangkat (tools) yang dibutuhkan oleh sebuah aplikasi untuk memperoleh informasi dari sebuah perangkat bluetooth,layanan bluetooth apa saja yang tersedia dan untuk menentukan karakteristik dari layanan yang tersedia.Port serialmerupakan salah satu dari layanan komunikasi yang sering digunakan.
RFCOMM adalah pengganti protokol kabel yang termasuk didalam spesifikasi
Bluetooth. RFCOMM melakukan emulasi port serial RS-232 ke dalam protokol L2CAP dan menggantikan fungsi kabel serial. RFCOMM dapat menyediakan sampai dengan 60 port diantara dua perangkat bluetooth. Bluetooth profile digunakan untuk memberikan gambaran untuk implementasi dari sebuah fungsi yang dapat dilakukan.
Bluetooth profile ditunjukan untuk mengurangi masalah yang mungkin timbul dari perbedaan produk yang diproduksi oleh perusahaan yang berbeda. Profile yang dimilki bluetooth sampai saat ini antara lain: basic imaging, basic printing, cordless telephony, dial-up networking, file transfer, handsfree, headset, serial port, dan
(35)
ANALISIS DAN PERANCANGAN SISTEM
3.1. Analisis Sistem
Analisis sistem bertujuan untuk memecah sistem ke dalam komponen-komponen subsistem yang lebih kecil untuk mengetahui hubungan setiap komponen tersebut dalam mencapai tujuan. (Whitten, 2007)
3.1.1. Analisis Kebutuhan Sistem
Analisis kebutuhan sistem meliputi analisis kebutuhan fungsional dan non-fungsional. Kebutuhan fungsional mendeskripsikan fungsi-fungsi yang harus dilakukan oleh sebuah sistem untuk mencapai tujuan. Sedangkan kebutuhan non-fungsional mendeskripsikan fitur lain seperti karakteristik, batasan sistem, performa, dokumentasi dan yang lainnya agar sistem berjalan sukses (Whitten, 2007) .
a. Analisis kebutuhan fungsional sistem
Kebutuhan fungsional yang harus dimiliki oleh sistem keamanan kendali pintu dengan aplikasi Android adalah :
1. Sistem dapat mengimplementasikan enkripsi algoritmaone time padpada saat melakukan penguncian pintu (lock).
2. Sistem dapat mengimplementasikan dekripsi algoritmaone time padpada saat melakukan pembukaan pintu (unlock).
b. Analisis kebutuhan non-fungsional sistem
Kebutuhan non-fungsional yang harus dimiliki oleh sistem keamanan kendali pintu dengan aplikasiandroidadalah :
(36)
1. Waktu proses enkripsi dan dekripsi cepat, sehingga dapat mengefektifkan waktu pengguna sistem.
2. Tampilan antarmuka sistem menarik dan dapat dimengerti oleh pengguna sistem. 3. Sistem yang dibuat dapat dikembangkan dengan mudah, sehingga tidak cepat
usang karena menggunakan konsepobject oriented.
3.1.2. Analisis Pemodelan Sistem
Pemodelan sistem bertujuan untuk menampilkan kebutuhan dari sebuah perangkat lunak. Salah satu jenis pemodelan kebutuhan sistem adalah model berbasis skenario, model ini menggambarkan spesifikasi kebutuhan perangkat lunak dari berbagai sudut pandang aktor di dalam perangkat lunak (Pressman, 2010).
Pada penelitian ini digunakan UML sebagai bahasa pemodelan untuk mendesain dan merancang sistem keamanan kendali pintu berbasis android. Model UML yang digunakan adalah use case diagram,activity diagram, dansequence diagram.
3.1.2.1. Pemodelan dengan menggunakan use case diagram
Untuk mengetahui aktor dan use case yang akan digunakan, maka dilakukan identifikasi aktor dan identifikasi use case. Setelah mendapatkan aktor dan use case, maka use case diagram dapat digambarkan. Pengidentifikasian aktor dan use case
pada sistem ini ditunjukkan pada tabel 3.1 dan tabel 3.2 :
Tabel 3.1 Definisi Aktor
Tabel 3.2 Use Case
UC ID Use Case
UC-01 Lock UC-02 Unlock
No Aktor Deskripsi
1 User Pengguna sistem yang memiliki hak untuk mengunci dan membuka pintu.
(37)
Gambaruse case diagramberdasarkan aktor danuse case, yaitu :
Gambar 3.1Use Case Diagram
a. Use case lock
Use case lock ini akan menjelaskan secara sederhana proses lock pada sistem keamanan kendali pintu dengan android dengan menggunakan algoritma OTP yang dapat dilihat pada tabel 3.3 yang merupakan dokumentasi naratif dariuse case lock.
Tabel 3.3 SkenarioUse Case Lock
Aksi Aktor Reaksi Sistem
Skenario Normal 1. Pilih menulock
2.Generate keydan tampilkankey
3. Inputpassword
4.Tekan tombollock
5. Enkripsipassworddengan OTP 6. Simpan cipherteks dankey di Android
7. Simpanpassworddankeydi EEPROM 8. Tampilan pada LCD “Locked”
(38)
b. Use case unlock
Use case unlock ini akan menjelaskan secara sederhana proses unlock pada sistem keamanan kendali pintu dengan android dengan menggunakan algoritma OTP. Dapat dilihat pada tabel 3.4 yang merupakan dokumentasi naratif dariuse case unlock.
Tabel 3.4 SkenarioUse Case Unlock
Aksi Actor Reaksi Sistem
Skenario Normal 1. Pilih menuunlock
2. Load cipherteks dankeydariAndroid
3.Tekan tombolunlock
4. Loadpassworddankeydari EEPROM 5. Dekripsi cipherteks dengan OTP
6.Mencocokkan hasil dekripsi dengan password yang tersimpan.
7. Tampilan pada LCD “Unlocked” Skenario Alternatif
7. Tampilan pada LCD “Wrong Password”
3.1.2.2. Pemodelan dengan menggunakan activity diagram
Diagram aktifitas atau activity diagram menggambarkan alur kerja (workflow) atau aktifitas dari sebuah sistem.
a. Activity diagram lock
Activity diagram lock akan menggambarkan hubungan aliran kerja yang telah dijelaskan pada use case lock.Activity diagram lockdapat dilihat pada Gambar 3.2.
(39)
Gambar 3.2Activity Diagramuntuk ProsesLock
b. Activity diagram unlock
Activity diagram unlock akan menggambarkan hubungan aliran kerja yang telah dijelaskan pada use case unlock. Activity diagram embed unlock dapat dilihat pada Gambar 3.3.
(40)
3.1.2.3. Pemodelan dengan menggunakan sequence diagram a. Sequence diagram lock
Pada Gambar 3.4 dapat dilihatsequence diagramuntuk proses lock.
Gambar 3.4Sequence DiagramProsesLock
b. Sequence Diagram Unlock
(41)
Gambar 3.5Sequence DiagramProsesUnlock
3.2 Perancang Sistem 3.2.1. Flowchart sistem
Flowchart merupakan diagram alir dari bagan-bagan tertentu yang memiliki arus penggambaran mengenai langkah-langkah penyelesaian suatu permasalahan. Selain itu, flowchart juga memiliki fungsi memudahkan proses pengecekan terhadap sistem yang akan dibuat. Berikut merupakan flowchart dari sistem yang dibangun.
3.2.1.1. Flowchart Gambaran umum sistem
(42)
Gambar 3.6FlowchartKoneksiBluetoothAndroid ke Mikrokontroler ATMega32
Pada flowchart Gambar 3.6 menjelaskan Bluetooth digunakan untuk menghubungkan Android dengan mikrokontroler dalam penyandian kunci sebagai bentuk pengamanan ruangan. Langkah awal perlu dilakukan pengecekan kondisi bluetooth Android untuk memastikan agarbluetoothtelah terkoneksi seperti yang ditunjukkan pada Gambar 3.9. Setelahdoorlockterkoneksi, akan ditampilkan dua pilihan menu yaitu menulockyang digunakan untuk mengunci ruangan dan menu unlock digunakan untuk membuka ruangan yang telah terkunci sebelumnya.
(43)
Gambar 3.7Flowchart Lock
Pada flowchart Gambar 3.7 menjelaskan proses lock dari doorlock dimulai dengan
generate kunci dan menginputkan password melalui Android kemudian kunci dan
passworddikirim dariandroidkedoorlock, selanjutnya layar LCD yang terdapat pada pintu ruangan akan menampilkan kata terkunci seperti yang ditunjukkan pada Gambar
(44)
(45)
Pada flowchartGambar 3.8 menjelaskan proses unlock padadoorlockdengan dimulai mengambil kunci dan password dari database kemudian kunci dan password
dienkripsi dengan algoritma One Time Pad. Hasil enkripsi berupa cipherteks dikirim dari Android ke doorlock, pada doorlock dilakukan dekripsi cipherteks tersebut sehingga menghasilkan sebuah plainteks. Hasil plainteks akan dibandingkan dengan
passwordyang telah tersimpan sebelumnya padadoorlock, jika sesuai maka akan pada layar LCD akan menampilkan kata terbuka, tapi jika tidak sesuai akan LCD akan menampilkanpasswordsalah seperti yang dijelaskan pada Gambar 3.11.
3.2.1.2.Flowchartproses enkripsi dengan OTP
(46)
Dari Gambar 3.9 dapat dilihat proses enkripsi block cipher menggunakan algoritma
One Time Pad (OTP). Pertama input key dan password yang telah ditentukan. Cipherteks dihasilkan dengan menjumlahkan setiap karakter dari key dengan
password.
3.2.1.3 Flowchart proses dekripsi dengan OTP
Gambar 3.10FlowchartProses Dekripsi dengan OTP
Dari Gambar 3.110 dapat dilihat proses dekripsi block cipher menggunakan algoritma
One Time Pad (OTP). Pertama input key dan cipherteks yang telah ditentukan. plainteks dihasilkan dengan mengurangkan setiap karakter dari cipherteks dengan cipherteks.
(47)
3.2.2. Perancangan antar muka
Sistem akan dibangun menggunakan bahasa pemrograman Java dengan menggunakan
software Eclipse. Rancangan antar muka disesuaikan dengan kebutuhan dan software
yang digunakan. Antar muka menggunakan 4 layout, yaitu : layout splashscreen, layout menu, layout lock, dan layout unlock. Layout splashscreen berfungsi sebagai
cover dari sistem dimana terdapat logo universitas. Layout menu untuk menampilkan menu pilihan antara lock dan unlock. Layout lock berfungsi untuk mengunci pintu pada doorlock. Danlayout unlockberfungsi untuk membuka pintu padadoorlock.
3.2.2.1. Antar muka splashscreen
Pada Gambar 3.14 menunjukkanlayoutsplashscreenberfungsi sebagaicoverdan sebagai pembukaan pada aplikasiandroid. Setelah beberapa detiklayout splashscreen
akan hilang dan masuk kelayoutmenu.
(48)
3.2.2.2. Antar muka layout menu
Pada Gambar 3.11 menunjukkan layout menu yang akan menampilkan menu pilihan antaralockdanunlock.
Gambar 3.12 RancanganLayoutMenu
Komponen yang dipakai untuk membangun antar muka layout menu pada Gambar 3.12 adalah sebagai berikut :
1. Button”Lock” :buttonyang berfungsi untuk mengarahkan kelayout lock.
2. Button”Unlock” :buttonyang berfungsi untuk mengarahkan kelayout unlock.
3.2.2.3. Antar muka layout lock
Pada Gambar 3.13 menunjukkan layout lock yang akan menampilkan untuk inputan
key dan password selanjutnya button lock yang akan mengirim key dan passwordke sistemhardware.
(49)
Gambar 3.13 RancanganLayout Lock
Komponen yang dipakai untuk membangun antar mukalayout lockpada Gambar 3.13 adalah sebagai berikut :
1. Edittext”Key” :edittextyang berfungsi untuk menerima inputankey.
2. Edittext”Password” :edittextyang berfungsi untuk menerima inputanpassword.
3. Button”Lock” : button yang berfungsi untuk melakukan enkripsi password
dengankeydan mengirimkeydan cipherteks ke sistemhardware.
4. Button“Connect” : button yang berfungsi untuk membuka komunikasi data
bluetooth.
5. Button “Disconnect”: button yang berfungsi untuk menutup komunikasi data
bluetooth.
3.2.2.4.Antar muka layout unlock
Pada Gambar 3.14 menunjukkanlayout unlockyang akan menampilkan hasil enkripsi berupa cipherteks dan hasil dekripsi berupa plainteks selanjutnyabutton unlockyang akan mengirim cipherteks ke sistemhardware.
(50)
Gambar 3.14 RancanganLayout Unlock
Komponen yang dipakai untuk membangun antar mukalayout lockpada Gambar 3.14 adalah sebagai berikut :
1. Edittext”Cipherteks” :edittextyang berfungsi untuk menampilkan hasil enkripsi. 2. Button”Unlock” :buttonyang berfungsi untuk mengirim cipherteks ke sistem
hardware.
3. Button“Connect” :buttonyang berfungsi untuk membuka komunikasi data
bluetooth.
4. Button “Disconnect”:buttonyang berfungsi untuk menutup komunikasi data
bluetooth.
3.2.3. Perancangan Perangkat Keras
Sistem kendali pintu yang akan dibangun dirancang agar dapat memberikan keamanan untuk pintu dengan cara memberikan hak akses terhadap yang berhak. Ada beberapa hal yang menjadi fokus dalam tahap perancangan perangkat keras yaitu desain konstruksi utama, perancangan alat elektronika dan perancangan antar muka LCD.
(51)
3.2.3.1. Konstruksi Utama
Kerangka adalah konstruksi yang nantinya akan menentukan desain, bentuk dan ukuran dari komponen fisik lainnya. Fungsi utama dari kerangka adalah sebagai tempat atau kedudukan untuk seluruh komponen perangkat keras.
Pemilihan material akan sangat berpengaruh terhadap konstruksi perangkat keras seperti berat, kekuatan, ketahananan terhadap keretakan dan kemampuan meredam getaran. Perpaduan diantaranya akan menghasilkan konstruksi yang kuat.
Kerangka perangkat keras sistem kendali pintu dirancang menggunakan bahan plastik keras (acrilyc) karena dalam mudah dalam pengerjaannya, kuat, tidak mudah retak dan mudah didapat. Kerangka didesain dengan dimensi berukuran 24 cm x 16 cm x 16 cm. Rancangan kerangka dapat dilihat pada Gambar 3.15 dan Gambar 3.16.
Gambar 3.15 Konstruksi utama ketika lock
LCD 16x2
(52)
3.2.3.2 Perancangan perangkat elektronika
Perancangan perangkat elektronik pada gambar 3.17 berhubungan dengan perancangan mikrokontroler, modulbluetooth, LCD 16x2, selenoid dan power supply. Papan mikrokontroler (board microcontroller) akan dibuat menjadi papan utama (main board) karena modul bluetooth akan terhubung langsung dengan papan mikrokontroler serta LCD 16x2 dan selenoid sebagai media output yang akan terhubung pada papan mikrokontroler.
Sumber tegangan (power supply) dibutuhkan untuk memberikan sumber tegangan teregulasi untuk membagikan tegangan sesuai dengan kebutuhan masing-masing komponen. Seperti pada aplikasinya main board membutuhkan tegangan 5 V untuk beroperasi secara stabil, sedangkan selenoid menggunakan 12 V untuk beroperasi secara stabil.
Tabel 3.5 Rincian KomponenBoardMikrokontroler ATmega32
No Nama Barang Banyak Fungsi
1. Mikrokontroler
(ATmega32) 1 Processor Utama
2. Crystall (12MHz) 1 Pembangkit Sinyal (oscilator) 3. Kapasitor nonpolar (22pF) 3 Komponen pendukung
4. Resistor 10k 1 Komponen pendukung 5. Resistor 220 Ohm 3 Komponen pendukung
6 Selenoid 1 Doorlock
7. IC 7805 1 Pembagi tegangan sebesar 5 V
8. LCD 16x2 1 Layar Output
9 LED 1 Sebagai indikator
10 Socket IC 40 PIN 1 Sebagai penyangga mikrokontroller.
11 TIP 102 1 Switch tegangan
12 Push Button 2 Komponen pendukung
13 HC-05 1 Modul bluetooth
14 Pin jantan hitam 26 Konektor ke MCU 15 Trimpot 20k 1 Komponen pendukung
(53)
Gambar 3.17 Perancangan Papan Mikrokontroler (main board) 3.2.3.3 Perancangan antarmuka LCD
Untuk dapat berinteraksi dengan user, tampilan LCD harus dapat dimengerti oleh user dan dari tampilan LCD, userdapat mengetahui data apa yang diminta oleh sistem untuk selanjutnya diproses oleh sistem.Tampilan antar muka LCD sebagai berikut:
1. Tampilan Awal Sistem
Tampilan awal sistem ketikadooorlock systemdimulai :
Gambar 3.18 Rancangan Tampilan LCD pada Awal Sistem
2. Tampilan InputKeydanPassword
(54)
3. Tampilan InputPassword
Tampilan untuk inputpassword.
Gambar 3.20 Rancangan Tampilan LCD untuk InputPassword
4. Tampilan untuk TandaLock
Tampilan bahwa sistem dalam keadaanlock.
Gambar 3.21 Rancangan Tampilan LCD untuk TandaLock
5. Tampilan untuk Tanda Unlock
Tampilan bahwa sistem dalam keadaanunlock.
Gambar 3.22 Rancangan Tampilan LCD untuk TandaUnlock
6. Tampilan untukPasswordsalah
Tampilan ketika salah memasukkanpassword.
(55)
IMPLEMENTASI DAN PENGUJIAN SISTEM
4.1. Implementasi Sistem
Tahap implementasi sistem merupakan lanjutan dari tahap perancangan sistem. Pada tahap ini dilakukan implementasi sistem ke dalam bahasa pemrograman berdasarkan hasil analisis dan perancangan sistem. Pada tahap implementasi ini digunakan perangkat lunak dan perangkat keras, sehingga sistem yang dibangun dapat diselesaikan dengan baik.
Gambar 4.1Diagram Ishikawa
Pada diagram ishikawa pada gambar 4.1 menjelaskan implementasi sistem kendali pintu berbasis android yang aman dengan menerapkan algoritma One Time Pad. Pada sistem kendali pintu yang aman, User dapat melakukan lock dan unlock
terhadap sistem. Material yang digunakan untuk membuat sistem dibutuhkan perangkat hardware berupa ATMega32 sebagai pengendali, LCD karakter 16 x 2 sebagai media output pada hardware dan modul bluetooth HC-05 sebagai media komunikasi data dari aplikasi android ke perangkat hardware. Algoritma yang diterapkan pada sistem adalahOne Time Padsebagai algoritma keamanan (kriptografi) danBlum Blum Shubsebagai algoritma pembangkit kunci.
(56)
4.1.1 Tampilan Antar Muka
1. Tampilan antar muka dari sistem ini diimplementasikan berdasarkan dari tahap analisis dan perancangan sistem. Tampilan antar muka sistem ini terdiri dari 6 (enam) halaman utama, yaitu :
1. HalamanSplashscreen
2. Halaman Menu Utama 3. HalamanLock
4. HalamanUnlock
5. HalamanHelp
6. HalamanAbout
4.1.1.1 Tampilan halaman splashscreen
Halaman splashscreen merupakan halaman yang muncul pertama sekali pada saat sistem dijalankan. Tampilan halamansplashscreendapat dilihat pada Gambar 4.2.
Gambar 4.2 Tampilan HalamanSplashscreen
HalamanSplashscreenhanya tampilan awal yang menampilkan logo dari aplikasi.
4.1.1.2. Tampilan halaman menu
(57)
selanjutnya dari sistem. Berikut tampilan halaman menu yang dapat dilihat pada Gambar 4.3.
Gambar 4.3 Tampilan Halaman Menu
4.1.1.3. Tampilan halaman lock
Halaman lock merupakan halaman yang digunakan untuk melakukan proses enkripsi
password dengan key hasil generate dari algoritma Blum Blum Shub dan kemudian menyimpan hasil enkripsi cipherteks ke database SQLite Android dan mengirim
key dan password ke sistem perangkat keras doorlock melalui bluetooth untuk melakukan penguncian pada sistem perangkat keras doorlock dan menyimpan
password dan key tersebut pada EEPROM mikrokontroler ATMega32. Tampilan halamanLockdapat dilihat pada Gambar 4.4.
(58)
Gambar 4.4 Tampilan HalamanLock
4.1.1.4. Tampilan halaman unlock
Halaman unlock merupakan halaman yang digunakan untuk melakukan proses memuat cipherteks dan key dari database SQLite Android dan kemudian mengirim cipherteks ke sistem perangkat keras doorlock melalui bluetooth untuk melakukan verifikasi password untuk membuka sistem perangkat keras doorlock, yang dilakukan pada mikrokontroler ATMega32 pada sistem perangkat keras doorlock. Tampilan halamanUnlockdapat dilihat pada Gambar 4.5.
(59)
Gambar 4.5 Tampilan HalamanUnlock
4.1.1.5. Tampilan malaman menu about
Halaman menuAboutberisikan informasi tentang sistem danprogrammer pembangun sistem. Tampilan halaman menuAboutdapat dilihat pada Gambar 4.6.
(60)
4.1.1.6. Tampilan Halaman MenuHelp
Halaman menu Help merupakan halaman yang berisikan panduan dalam menggunakan sistem ini. Pada halaman Help, dijelaskan langkah–langkah melakukan proses . Tampilan halaman menuHelpdapat dilihat pada Gambar 4.7.
Gambar 4.7 Tampilan Halaman MenuHelp
4.1.2. Perangkat Keras
Sistem kendali pintu yang telah dibangun dapat memberikan keamanan untuk pintu dengan cara memberikan hak akses terhadap yang berhak. Ada beberapa hal yang menjadi fokus dalam tahap implementasi perangkat keras yaitu desain konstruksi utama perancangan alat elektronika dan perancangan antar muka LCD.
4.1.2.1. Konstruksi utama
Kerangka adalah konstruksi yang nantinya akan menentukan desain, bentuk dan ukuran dari komponen fisik lainnya. Fungsi utama dari kerangka adalah sebagai tempat atau kedudukan untuk seluruh komponen perangkat keras
(61)
plastik keras (acrilyc) karena mudah dalam pengerjaannya, kuat, tidak mudah retak dan mudah didapat.
Gambar 4.8 Konstruksi utama ketikalock
(62)
4.1.2.2. Perancangan perangkat elektronika
Perangkat elektronika berhubungan dengan perancangan mikrokontroler, modul
bluetooth, LCD 16x2, selenoid dan power supply. Papan mikrokontroler (board microcontroller) akan dibuat menjadi papan utama (main board) karena modul
bluetooth akan terhubung langsung dengan papan mikrokontroler serta LCD 16x2 dan selenoid sebagai media output yang akan terhubung pada papan mikrokontroler.
Gambar 4.10 Rangkaian Ares dari perangkat
(a) (b)
Gambar 4.11 Implementasi Ares ke papan PCB (a) tampak muka (b) tampak belakang
(63)
4.1.2.3. Tampilan antarmuka LCD
Untuk dapat berinteraksi dengan user, tampilan LCD harus dapat dimengerti oleh user dan dari tampilan LCD, user dapat mengetahui data apa yang diminta oleh sistem untuk selanjutnya diproses oleh sistem.Tampilan antar muka LCD sebagai berikut: 1. Tampilan awal sistem
Tampilan awal sistem ketikadooorlock systemdimulai.
Gambar 4.12 Tampilan LCD pada Awal Sistem
2. Tampilan inputkeydanpassword
Tampilan untuk inputKeydanPassword.
Gambar 4.13 Tampilan LCD untuk InputKeydanPassword
3. Tampilan input password
Tampilan untuk inputpassword.
Gambar 4.14 Tampilan LCD untuk InputPassword
4. Tampilan untuk tandalock
(64)
4. Tampilan untuk tandaunlock
Tampilan bahwa sistem dalam keadaanunlock.
Gambar 4.16 Tampilan LCD untuk TandaUnlock
5. Tampilan untukpasswordsalah
Tampilan ketika salah memasukkanpassword.
Gambar 4.17 Tampilan LCD untukWrong Password
4.2. Pengujian Sistem
Pengujian dilakukan terhadap algoritma One Time Pad pada sistem kendali pintu untuk mengukur keberhasilan sistem dalam melakukan proses enkripsi dan dekripsi algoritma. Pengujian ini dilakukan dengan beberapa kriteria sebagai berikut :
1. Plainteks berupa password yang terdiri dari karakter ASCII Printable dengan panjang 10 karakter yang diinputkan secara langsung padatextboxtanpa spasi. 2. List yang digunakan adalah ASCII printableyaitu = { , !, “, #, $, %, &, ‘,
(, ), *, +, , , -, ., /, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, :, ;, <, +, >, ?, @, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, [, \, ], ^, _, `, a, b, c, d, e, f, g, h, i, j, k, l, m, n,o, p, q, r, s, t, u, v, w, x, y, z,{, |, },~} || = 95
3. Kunci One Time Pad terdiri dari karakter ASCII Printable yang dibangkitkan secara acak dengan algoritmaRandomNumber Blum Blum Shub.
4.2.1. Pengujian One Time Pad
Enkripsi yang dilakukan pada tahap ini akan menghasilkan cipherteks. Cipherteks ini terdiri 10 karakter plainteks. Pada enkripsi ini diperlukan kunci di mana panjang
(65)
karakternya juga sama dengan plainteksnya. Misalkan, kata plainteks = ‘agungagung’ dan kunci = ‘TOGGHJZMQI’. Tampilan pada sistem dapat ditunjukkan pada Gambar 4.18 (a).
(a) (b)
Gambar 4.18 Pengujian pada sistem android (a) Lock dan (b) Unlock
Gambar 4.18 (b) menunjukkan hasil enkripsi berupa cipherteks=’VW]VPLbc’Q’. Cipherteks ini didapat melalui operasi penjumlahan dari kunciOne Time Padterhadap plainteks awal. Proses Enkripsi dapat dilihat pada Tabel 4.1
Tabel 4.1 Proses Enkripsi One Time Pad
Plainteks ASCII Kunci ASCII C
= ((K+P)-127) + 32 Cipherteks
a 97 T 84 86 V
g 103 O 79 87 W
u 117 G 71 93 ]
n 110 G 71 86 V
g 103 H 72 80 P
a 97 J 74 76 L
g 103 Z 90 98 b
u 117 M 77 101 c
n 110 Q 81 96 ‘
g 103 I 73 81 Q
Pada Tabel 4.1 dihasilkan cipherteks yang ditunjukkan pada kolom Cipherteks. Cipherteks ini dihasilkan dari kunci yang telah diacak oleh algoritmaBlum Blum Shub
(66)
(a)
(b)
(c)
Gambar 4.19 Pengujian hardware (a) cipherteks (b) key dan password (c) plainteks
Dekripsi yang dilakukan pada tahap ini akan menghasilkan plainteks. Plainteks ini terdiri 10 karakter cipherteks. Pada dekripsi ini diperlukan kunci dimana panjang karakternya juga sama dengan cipherteks. Misalkan, kata cipherteks = ‘VW]VPLbc’Q’ dan kunci = ‘TOGGHJZMQI’. Tampilan pada sistem dapat ditunjukkan pada Gambar 4.19 (a) dan Gambar 4.19 (b). Hasil dekripsi dari kunci dan cipherteks menghasilkan plainteks=’agungagung’ seperti terlihat pada Gambar 4.19(c).
Tabel 4.2 Proses Dekripsi One Time Pad
Cipherteks ASCII Kunci ASCII P
= ((C + 127)-32) - K ) Plainteks
V 86 T 84 97 a
W 87 O 79 103 g
] 93 G 71 117 u
V 86 G 71 110 n
P 80 H 72 103 g
L 76 J 74 97 a
b 98 Z 90 103 g
c 101 M 77 117 u
‘ 96 Q 81 110 n
(67)
Pada Tabel 4.2 dihasilkan plainteks yang ditunjukkan pada kolom plainteks. Plainteks ini dihasilkan dari kunci yang telah diacak oleh algoritma Blum Blum Shub dan dikurangkan dengan index ASCII pada cipherteks. Hasil pengurangan bilangan itu dihitung kembali dengan rumus pada kolom P.
4.2.2 Pengujian Kompleksitas Algoritma
Pengujian ini dilakukan untuk mengetahui tingkat nilai masukan n suatu algoritma. Kompleksitas algoritma ini dapat dilihat dari kode program yang digunakan. Untuk kompleksitas algoritma enkripsiOne Time Padditunjukkan pada Tabel 4.3.
Tabel 4.3 Kompleksitas algoritma enkripsi one time pad
No Code C # C x #
1 cipher=" "; C1 1 C1
2 int temp=0; C2 1 C2
3 char c; C3 1 C3
4 for(int i= 0; i<key.length();i++){ C4 n C4n 5 temp = key.charAt(i) + plain.charAt(i); C2 n C2n
6 if(temp>126){ C5 n C5n
7 temp=(temp-126)+31;} C2 n C2n
8 c= (char) temp; C3 n C3n
9 cipher=cipher + c;} C1 n C1n
T(n)=C1+C2+C3+C4n+C5n+C2n+C2n+C3n+C1n T(n)=(C1+C2+C3)n0+(C1+2C2+C3+C4+C5)n1
T(n)(n)Tabel 4.3 menunjukkan hasil dari kompleksitas algoritma dari enkripsi One Time Pad. Pada Tabel 4.3 terdapat Kolom C yaitu sebagai variabel menghitung seberapa banyak
processor melakukan komputasi. Kolom # sebagai variabel untuk menghitung kalimat (statement) program yang dieksekusi. Kolom C x # yaitu menunjukkan hasil perkalian dari C dan #. Sehingga, berdasarkan akumulasi dari kompleksitas algoritma enkripsi One Time Pad adalah (n). Kompleksitas algoritma selanjutnya adalah dekripsiOne Time Padyang ditunjukkan pada Tabel 4.5.
(68)
Tabel 4.5 Kompleksitas algoritma dekripsione time pad
No Code C # Cx #
1 scanf("%s",cipher); C1 1 C1
2 for(i=0;i<10;i++){ C2 n C2n
3 kunci[i] = (char) key[i];} C3 n C3n
4 for(i=0;i<10;i++){ C4 n C4n
5 temp=0; C5 n C5n
6 if(cipher[i]<126){ C6 n C6n
7 temp= cipher[i]+126-31;} C7 n C7n
8 plain[i] =(char) (temp
-key[i]);} C8 n C8n
9 for(i=0;i<10;i++){ C9 n C9n
10 pass[i] = (char )password[i];} C10 n C10n
11 for(i=0;i<10;i++){ C11 n C11n
12 if(plain[i]== pass[i]){ C12 n C12n
13 stat=1;}else{stat=0;
break;}} C13 n C13n
14 if (stat==1){ C14 n C14n
15 flag=1;}else{ C15 n C15n
16 lcd_puts("Password salah");} C16 n C16n T(n)=C1+C2n+C3n+C4n+C5n+C6n+C7n+C8n+C9n+C10n+C11n+C12n+C13n+C14n+ C15n+C16n
T(n)=(C1)n0+(C2+C3+C4+C5+C6+C7+C8+C9+C10+C11+C12+C13+C14+C15+C16)n1
T(n)(n)Tabel 4.5 menunjukkan hasil dari kompleksitas algoritma dari dekripsiOne Time Pad. Pada Tabel 4.5 terdapat Kolom C yaitu sebagai variabel menghitung seberapa banyak
processor melakukan komputasi. Kolom # sebagai variabel untuk menghitung kalimat (statement) program yang dieksekusi. Kolom C x # yaitu menunjukkan hasil perkalian dari C dan #. Sehingga, berdasarkan akumulasi dari kompleksitas algoritma dekripsiOne Time Padadalah(n).
(69)
PENUTUP
5.1. Kesimpulan
Setelah melakukan studi literatur, analisis dan perancangan dan pengujian terhadap sistem kendali pintu berbasis Android dengan menggunakan algoritmaOne Time Pad
dan Blum Blum Shub pada password sistem kendali pintu, maka dapat disimpulkan sebagai berikut:
1. Sistem ini dapat melakukan enkripsi dan dekripsi password 10 karakter dengan menggunakan algoritma One Time Pad dan algoritma Blum Blum Shub sebagai pembangkit kunci.
2. Cipherteks yang didekripsi akan mengembalikan password asli. Apabila pesan cipherteks tidak sempurna atau kunci tidak sesuai, maka password tidak akan kembali ke bentuk asli.
3. Berdasarkan perhitugan kompleksitas algoritma, kompleksitasalgoritma One Time Paddiperoleh(n).
5.2. Saran
Berikut ini adalah hal-hal yang menjadi saran dari penelitian ini atau untuk penelitian selanjutnya yang terkait:
1. Sistem ini hanya bisa diakses oleh satu user sehingga dapat dikembangkan dengan menggunakanmulti user.
2. Sistem hanya mampu melakukan enkripsi dan dekripsi 10 karakter password
sehingga diharapkan dapat menambah jumlah karakterpassword.
3. Sistem ini diharapkan dapat dikembangkan dengan tampilan antarmuka yang lebih menarik.
(70)
Ardiansyah, R. 2011.In System Programming AVR Menggunakan Koneksi Bluetooth.
Jurnal Wima: Universitas Katolik Widya Mandala Surabaya: Volume 10. No. 1.(Online)
http://journal.wima.ac.id/index.php/teknik/article/download/160/156
(5 Februari 2015).
Ariyus, D. 2008.Pengantar Ilmu Kriptografi: Teori, Analisis dan Implementasi. Andi Offset:Yogyakarta.
Budiharto, W. 2010 .Elektronik Digital dan Mikroprosesor.Andi Offset: Yogyakarta. Harahap, A.A. 2014. Implementasi Sistem Keamanan Data Menggunakan
Steganografi Teknik Pemetaan Titik Hitam dengan Pencarian Sekuensial dan Rabin Cryptosystem. Skripsi. Universitas Sumatera Utara.
Hoffstein, J., Pipher, J. & Silverman, J. H. 2008. An Introduction to Mathematical Cryptography. Springer Science: New York.
Iswanto . 2009 .Mikrokontroler AT90S2313 dengan Basic Compiler.Andi Offset: Yogyakarta.
Mollin, R. A. 2007.An Introduction to Cryptography. 2ndEdition. Chapman &
Hall/CRC: Boca Raton, Florida.
Pressman, Roger.S. 2010. Software Engineering. McGraw-Hill: New York. Paar, C. & Pelzl, J. 2010.Understanding Cryptography. Springer-Verlag: Berlin. Prameswara, G. 2013. Implementasi AlgoritmaOne Time Padpada data teks dan
Knapsackpada kunci. Skripsi. Universitas Sumatera Utara.
Sadikin, R. 2012.Kriptografi untuk Keamanan Jaringan dan Implementasinya dalam Bahasa Java. Andi Offset: Yogyakarta.
Schneier, B. 1996.Applied Cryptography: Protocols, algorithms and source code in C. 2ndEdition. John Wiley & Sons, Inc.: New Jersey.
Seniman . 2009 . Implementasi Algoritma Kriptografi AES pada Mikrokontroler ATMega32.Skripsi . Medan: Universitas Sumatra Utara.
Smart, N. 2004.Cryptography: An introduction. 3rdEdition. University of Bristol.
Susilo, D. 2010 .48 Jam Kupas Tuntas Mikrokontroler MCS51 dan AVR. Andi Offset: Yogyakarta.
(71)
Robot Sendiri. Andi Offset: Yogyakarta.
Usman . 2008 .Teknik Antarmuka dan Pemprograman Mikrokontroler AT89S52.Andi Offset: Yogyakarta.
Whitthen, et al. 2007. Metode Desain & Analisis Sistem. Edisi 7th. New York :
(72)
Listing Program A. Hardware void main(void) { PORTA.0=0; //Tampilan Home lcd_gotoxy(0,0); lcd_puts("Doorlock System"); lcd_gotoxy(0,1);
lcd_puts("One Time Pad"); delay_ms(3000);
goto awal; awal:;
//Tampilan Status DoorLock lcd_clear(); lcd_gotoxy(0,0); if(flag==0){ PORTA.0=0; lcd_puts("--LOCKED--"); delay_ms(5000); }else if(flag==1){ PORTA.0=1; lcd_puts("--UNLOCKED--"); delay_ms(5000); } delay_ms(100); while (1) { scanf("%s",req); if(strcmp(req, "lock")==0){ //lock(); lcd_clear(); lcd_gotoxy(0,0); lcd_puts("Key :"); lcd_gotoxy(0,1); lcd_puts("Password :"); delay_ms(1000);
//Input Key dan Password scanf("%s", kunci); scanf("%s", pass); lcd_clear();
//Tampilkan Key dan Password lcd_gotoxy(0,0);
lcd_puts(kunci); lcd_gotoxy(0,1); lcd_puts(pass); delay_ms(1000);
//Simpan password ke EEPROM for(i=0;i<sizeof(pass);i++){
password[i]= pass[i];
lcd_buff[i]= (char) password[i]; }
(73)
//Tampilkan Passsword dari EEPROM lcd_clear(); lcd_gotoxy(0,0); lcd_puts(lcd_buff); delay_ms(1000); */
//Simpan Key ke EEPROM
for(i=0;i<sizeof(kunci);i++){ key[i]= kunci[i];
lcd_buff[i]= (char) key[i]; }
/*
//Tampilkan Key dari EEPROM lcd_clear(); lcd_gotoxy(0,0); lcd_puts(lcd_buff); delay_ms(1000); */ //Status Lock flag=0; goto awal;
}else if(strcmp(req, "unlock")==0){ //unlock(); lcd_gotoxy(0,0); lcd_puts("Password :"); delay_ms(1000); scanf("%s",cipher); lcd_puts(cipher); delay_ms(1000); lcd_clear();
//Ambil Key dari EEPROM for(i=0;i<10;i++){
kunci[i] = (char) key[i]; lcd_buff[i]=kunci[i]; } /*lcd_gotoxy(1,0); lcd_puts(lcd_buff); delay_ms(3000); lcd_clear();*/ //Dekripsi Cipherteks for(i=0;i<10;i++){ temp=0; if(cipher[i]<126){ temp= cipher[i]+126-31; }
plain[i] =(char) (temp - key[i]); lcd_buff[i]=plain[i]; } //Hasil Dekripsi lcd_gotoxy(0,0); lcd_puts(lcd_buff); delay_ms(3000); lcd_clear();
(74)
for(i=0;i<10;i++){
pass[i] = (char )password[i]; lcd_buff[i]=pass[i]; } /* lcd_gotoxy(0,0); lcd_puts(lcd_buff); delay_ms(3000); */
//Cek Kecocokan Password for(i=0;i<10;i++){ if(plain[i]== pass[i]){ stat=1; }else{ stat=0; break; } } if (stat==1){ //Password Benar flag=1; }else{ //Salah Password lcd_clear(); lcd_puts("Wrong Password"); delay_ms(1000); } goto awal; }else{ //Salah Menu lcd_gotoxy(0,0);
lcd_puts("Tidak ada pilihan"); delay_ms(500);
} } }
B. Android
public class LockActivity extends Activity {
//SecureRandom randomGenerator = new SecureRandom(); BBSprng BBS = new BBSprng();
//BigInteger rand = BBS.generatorBBS(2); //keytxt.setText(rand.toString());
int bbs=0;
//Random randomGenerator = new Random(); for (int i = 1; i<=10; i++)
{
/*long seed = System.nanoTime();
long randomInt = (seed * seed *
randomGenerator.nextInt(10000)); if(randomInt<0){
randomInt = - randomInt; }*/
(75)
if(bbs < 0){ bbs = -bbs; }
int y = bbs % 26;
key= key + (char) (65 + y); }
//plaintxt.setText(Integer.toString(bbs)); keytxt.setText(key);
mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter(); if(mBluetoothAdapter == null)
{
Label.setText("No bluetooth adapter available"); }
if(!mBluetoothAdapter.isEnabled()) {
Intent enableBluetooth = new
Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
startActivityForResult(enableBluetooth, 0); }
}
// On Start Activity @Override
public void onStart() {
super.onStart();
if(D) Log.e(TAG, "ON START"); //Open Connection
ButtonOpen.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) { try { SearchBT(); OpenBT(); sendData("lock"); }
catch (IOException ex) { } }
});
//Send plain and Key
ButtonLocked.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
try {
//Encriypt teks
String key = keytxt.getText().toString(); String plain = plaintxt.getText().toString(); if(plain.length()<=10)
{
DatabaseHandler db = new
(76)
db.addKey(cipher, key); sendData(key);
sendData(plain); }else{
Toast.makeText(getApplicationContext(), "Panjang PlainTeks Harus 10", Toast.LENGTH_LONG).show();
} }
catch (Exception ex) { } }
});
//Close Connection
ButtonClose.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
try {
closeBT(); }
catch (IOException ex) { } }
}); }
void SearchBT() {
if(D) Log.d(TAG, "Cari BT");
Set<BluetoothDevice> pairedDevices =
mBluetoothAdapter.getBondedDevices(); if(pairedDevices.size() > 0) {
for(BluetoothDevice device : pairedDevices) {
if(device.getName().equals("HC-05")) {
mmDevice = device;
Label.setText("Slave Client Found"); //break;
} else {
Label.setText("Slave Client Not Found"); }
// Register the BroadcastReceiver
/*IntentFilter filter = new
IntentFilter(BluetoothDevice.ACTION_FOUND);
registerReceiver(mReceiver, filter); // Don't forget to unregister during onDestroy*/
} } }
// Untuk memulai melakukan koneksi dengan client bluetooth void OpenBT() throws IOException
{
if(D) Log.d(TAG, "Buka BT");
UUID uuid =
(1)
}
//Send Cipher
ButtonUnlocked.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
try {
DatabaseHandler db = new
DatabaseHandler(getApplicationContext());
String key = db.getDetails().get("key");
String cipher = db.getDetails().get("cipher"); if(cipher.length()>=10)
{
Ciphertxt.setText(cipher); //Dekripsi(key, cipher); //Send Cipher
sendData(cipher); }else{
Toast.makeText(getApplicationContext(), "Panjang Cipherteks Harus 10", Toast.LENGTH_LONG).show();
} }
catch (IOException ex) { } }
}); }
// Mencari Client Bluetooth yg sudah paired dengan nama “nutscientist“ void SearchBT()
{
if(D) Log.d(TAG, "Cari BT");
Set<BluetoothDevice> pairedDevices =
mBluetoothAdapter.getBondedDevices(); if(pairedDevices.size() > 0) {
for(BluetoothDevice device : pairedDevices) {
if(device.getName().equals("HC-05")) {
mmDevice = device;
Label.setText("Slave Client Found"); //break;
} else {
Label.setText("Slave Client Not Found"); }
// Register the BroadcastReceiver
/*IntentFilter filter = new
IntentFilter(BluetoothDevice.ACTION_FOUND);
registerReceiver(mReceiver, filter); // Don't forget to unregister during onDestroy*/
} } }
// Untuk memulai melakukan koneksi dengan client bluetooth void OpenBT() throws IOException
(2)
A- 9
{
if(D) Log.d(TAG, "Buka BT");
UUID uuid =
UUID.fromString("00001101-0000-1000-8000-00805F9B34FB"); //Standard SerialPortService ID
mmSocket = mmDevice.createRfcommSocketToServiceRecord(uuid); mmSocket.connect();
mmOutputStream = mmSocket.getOutputStream(); mmInputStream = mmSocket.getInputStream(); ListenForData();
Label.setText("Bluetooth Opened");
//Toast.makeText(this, "Bluetooth Dibuka", Toast.LENGTH_LONG).show();
}
// Background thread untuk menerima data dari client bluetooth void ListenForData()
{
if(D) Log.d(TAG, "Listen Data");
final byte delimiter = 13; //atau Carriage Return (CR), di gunakan untuk mendeteksi akhir dari text
stopWorker = false; readBufferPosition = 0; Buffer = new byte[1024];
Thread workerThread = new Thread(new Runnable() {
@Override
public void run() {
while(!Thread.currentThread().isInterrupted() && !stopWorker)
{
//Do work try
{
int bytesAvailable = mmInputStream.available(); if(bytesAvailable > 0)
{
byte[] packetBytes = new byte[bytesAvailable]; mmInputStream.read(packetBytes);
for(int i=0;i<bytesAvailable;i++) {
byte b = packetBytes[i]; if(b == delimiter)
{
byte[] encodedBytes = new
byte[readBufferPosition];
System.arraycopy(Buffer, 0,
encodedBytes, 0, encodedBytes.length);
final String data = new
String(encodedBytes, "US-ASCII");
readBufferPosition = 0; Message m = new Message(); Bundle bund = new Bundle(); bund.putString("My Key", data); m.setData(bund);
h.sendMessage(m); }
else {
(3)
} } } }
catch (IOException ex) {
stopWorker = true; }
} } });
workerThread.start(); }
// Untuk mengirim data ke client bluetooth void sendData(String m) throws IOException {
if(D) Log.d(TAG, "Kirim Data"); m += "\n\r";
mmOutputStream.write(m.getBytes()); Label.setText("Data Sent");
//Toast.makeText(this, “Data Terkirim“,
Toast.LENGTH_LONG).show(); }
//Untuk Ekripsi One Time Pad
//www.life0fpentester.blogspot.com/2014/03/one-time-pad-encryptio n-decryption.html
void Enkripsi(String key, String plain) throws IOException {
String cipher=""; int temp=0;
char c; //int sum;
for(int i= 0; i<key.length();i++) {
temp = key.charAt(i) + plain.charAt(i); if(temp>126){
temp=(temp-126)+31; }
c= (char) temp; cipher=cipher + c;
//Toast.makeText(getApplicationContext(), cipher ,Toast.LENGTH_LONG).show();
}
/*sum = 67 ^ 68; c= (char) sum; cipher=cipher+ c;*/
Ciphertxt.setText(cipher); }
void Dekripsi(String key, String cipher) throws IOException {
String plain=""; int temp=0; char c; //int sum;
(4)
A-11
{
temp = cipher.charAt(i) - key.charAt(i); if(temp<126){
temp=(temp+126)-31; }
c= (char) temp; plain=plain + c;
//Toast.makeText(getApplicationContext(), cipher ,Toast.LENGTH_LONG).show();
}
/*sum = 67 ^ 68; c= (char) sum; cipher=cipher+ c;*/ Label.setText(plain); }
(5)
D
AFTAR
R
IWAYAT
H
IDUP
C
URRICULUMV
ITAEPERSONAL DATA
Full Name
: Agung Putu Yoga
Nick Name
: Agung
Place/ Date of Birth : Binjai/May 26
th1993
Sex
: Male
Religion
: Islam
Nationality
: Indonesia
Address
: Jalan Kenanga Raya, Psr VI, Gang Wirya, No. 7. Medan
Selayang
Mobile Phone
: 087748838867
: agungputuyoga26@gmail.com
Marital Statu
: unmarried / married
EDUCATION
Bachelor of Computer Science
University of Sumatera Utara, Medan
2011-Present
Higher Secondary Education
SMAN 1 TANJUNG PURA
2008-2011
Secondary Education
SMPN 1 HINAI
2005-2008
Primary Education
SDN 056011 BATU MALENGGANG
1999-2005
Programming : Pascal, C, C++, Java, PHP, C#
Database
: MySQL
IDE
: CodeBlock, Free Pascal, Dev C++, Geany, JCreator, NetBeans,
Sharp Develope, eclipse, Visual Studio
Other
:
(6)
B- 2