Implementasi Algoritma One Time Pad pada Mikrokontroler Atmega32 untuk Keamanan Password Sistem Kendali Pintu Berbasis Android

(1)

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. ButtonLock” :buttonyang berfungsi untuk mengarahkan kelayout lock.

2. ButtonUnlock” :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. EdittextKey” :edittextyang berfungsi untuk menerima inputankey.

2. EdittextPassword” :edittextyang berfungsi untuk menerima inputanpassword.

3. ButtonLock” : 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. ButtonUnlock” :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

URRICULUM

V

ITAE

PERSONAL DATA

Full Name

: Agung Putu Yoga

Nick Name

: Agung

Place/ Date of Birth : Binjai/May 26

th

1993

Sex

: Male

Religion

: Islam

Nationality

: Indonesia

Address

: Jalan Kenanga Raya, Psr VI, Gang Wirya, No. 7. Medan

Selayang

Mobile Phone

: 087748838867

E-mail

: 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

Android Application Doa Harian Islam

System Information Application Laundry

System Information Application Manga Shop

System Information Application Parking

Android Aplication Inventaris Bussiness Support Pertamina

Android Aplication Doorlock

Windows Phone Application Help!

Windows Phone Application WinBike

ORGANIZATIONAL EXPERIENCES

No Organization

Position

Year

1

OSIS SMAN 1 Tanjung Pura

Anggota Bid. Bela

Negara

2009-2010

2

WADOKAI Tanjung Pura

Ketua Umum

2009-2010

3

UKMI Al-Khuwarizmi

Anggota Bid.

Ristek

2012-2013

4

UKMI Al-Khuwarizmi

Kabid. Aprof

2013-2014

5

Relawan TIK Komisariat USU

Koordinator

Pengkaderan

2013-2014

6

IKLC USU

Anggota pelatihan

dan Pendidikan

2013-2014

7

IKLC USU

Koordinator

Informasi

2013-2015

8

Pema Fasilkom-TI USU

Kadept. Ristek

2014-2015

SEMINARS

No

.

Seminar

Year

1

Seminar BimTek

2010

2

Using Linux

2011

3

Smartfren

2012

4

Seminar Imagine Cup 2013

2012

“I hereby declare that all information above is true and correct to the best of my

knowledge.”

Medan, Desember I8

th

2015

AGUNG PUTU YOGA

PROJECT UNDERTAKEN