Rancang Bangun Aplikasi Enkripsi Dan Dekripsi Dengan Menggunakan Algoritma Kriptografi RC-6 Pada Platform Android
SKRIPSI
Diajukan untuk Menempuh Ujian Akhir Sarjana
IWAN SETIAWAN
10110914
PROGRAM STUDI TEKNIK INFORMATIKA
FAKULTAS TEKNIK DAN ILMU KOMPUTER
UNIVERSITAS KOMPUTER INDONESIA
2014
(2)
(3)
(4)
Email : i.setia14@gmail.com
Telp : 0811212339
Line Id : wan_utd
Tempat Lahir : Bandung
Tanggal Lahir : 20 September 1989 Jenis Kelamin : Laki-Laki
Agama : Islam
Kewarganegaraan : Indonesia
Alamat : Komp. Cibogo Permai Blok 2 No 9 Cimahi
Pendidikan Formal
1. 1995 – 2001 : SD Budhi Luhur 2. 2001 – 2004 : SMP Negeri 9 Cimahi 3. 2004 – 2008 : SMK Negeri 1 Cimahi
4. 2010 – 2014 : Teknik Informatika – Universitas Komputer Indonesia (UNIKOM)
Pendidikan Non Formal
1. Agustus 2014 : Introduction To Android Mobile Development ( PT. BE Logix Indonesia)
Seminar dan workshop yang diikuti
1. Seminar Augmented Reality “Bring Print To Life” Maret 2014
(5)
v
ABSTRACT ... Error! Bookmark not defined. KATA PENGANTAR ... Error! Bookmark not defined. DAFTAR ISI ... v DAFTAR TABEL ... Error! Bookmark not defined. DAFTAR GAMBAR ... Error! Bookmark not defined. DAFTAR SIMBOL ... Error! Bookmark not defined. DAFTAR LAMPIRAN ... Error! Bookmark not defined. BAB 1 PENDAHULUAN ... Error! Bookmark not defined. 1.1 Latar Belakang Masalah... Error! Bookmark not defined. 1.2 Perumusan Masalah ... Error! Bookmark not defined. 1.3 Maksud dan Tujuan ... Error! Bookmark not defined. 1.4 Batasan Masalah ... Error! Bookmark not defined. 1.5 Metodologi Penelitian ... Error! Bookmark not defined. 1.5.1 Metodologi penelitian yang digunakan. ...Error! Bookmark not defined.
1.5.2 Metode Pembangunan Perangkat Lunak...Error! Bookmark not defined.
1.6 Sistematika Penulisan ... Error! Bookmark not defined. BAB 2 TINJAUAN PUSTAKA ... Error! Bookmark not defined. 2.1 Kriptografi ... Error! Bookmark not defined. 2.1.1 Pengertian Kriptografi ... Error! Bookmark not defined. 2.1.2 Algoritma Kriptografi ... Error! Bookmark not defined. 2.2 Tinjauan matematis ... Error! Bookmark not defined. 2.2.1 Konsep Dasar ... Error! Bookmark not defined. 2.3 RC6 Block Chiper ... Error! Bookmark not defined. 2.3.1 Operasi-operasi Primitif ... Error! Bookmark not defined. 2.3.2 Algoritma RC6 ... Error! Bookmark not defined.
(6)
vi
2.4.1 Android SDK (Software Development Kit) ...Error! Bookmark not defined.
2.4.2 ADT (Android Development Tools) .. Error! Bookmark not defined. 2.4.3 Eclipse ... Error! Bookmark not defined. 2.5 Struktur Pesan SMS ... Error! Bookmark not defined. 2.6 UML ... Error! Bookmark not defined. 2.6.1 Sejarah UML ... Error! Bookmark not defined. 2.6.2 Diagram UML ... Error! Bookmark not defined. 2.6.2.1 Use Case Diagram ... Error! Bookmark not defined. 2.6.2.2 Activity Diagram ... Error! Bookmark not defined. 2.6.2.3 Sequence Diagram ... Error! Bookmark not defined. 2.6.2.4 Class Diagram ... Error! Bookmark not defined. 2.7 MySql ... Error! Bookmark not defined. 2.8 PhpMyAdmin ... Error! Bookmark not defined. BAB 3 ANALISIS DAN PERANCANGAN ... Error! Bookmark not defined. 3.1 Analisis ... Error! Bookmark not defined. 3.1.1 Analisis Masalah ... Error! Bookmark not defined. 3.1.2 Analisis Arsitektur Sistem ... Error! Bookmark not defined. 3.1.3 Analisis Komunikasi Data ... Error! Bookmark not defined. 3.1.4 Analisis Penerapan Algoritma RC6 dalam enkripsi SMS ... Error! Bookmark not defined.
3.2 Analisis Kebutuhan Sistem Non Fungsional ...Error! Bookmark not defined.
3.2.1 Analisis dan Kebutuhan Perangkat Keras ...Error! Bookmark not defined.
3.2.2 Analisis Dan kebutuhan Perangkat Lunak ...Error! Bookmark not defined.
(7)
vii
3.4.2 Perancangan Struktur Menu ... Error! Bookmark not defined. 3.4.3 Perancangan Grafis dan Antarmuka .. Error! Bookmark not defined. 3.4.4 Jaringan Semantik ... Error! Bookmark not defined.
BAB 4 IMPLEMENTASI DAN PENGUJIAN .. Error! Bookmark not defined. 4.1 Implementasi ... Error! Bookmark not defined. 4.1.1 Perangkat Lunak Pembangun ... Error! Bookmark not defined. 4.1.2 Perangkat Keras Pembangun ... Error! Bookmark not defined. 4.1.3 Batasan Implementasi ... Error! Bookmark not defined. 4.1.4 Implementasi Kelas ... Error! Bookmark not defined. 4.1.4.1 Kelas Pada Aplikasi Android ... Error! Bookmark not defined. 4.1.5 Implementasi Basis Data ... Error! Bookmark not defined. 4.1.6 Implementasi Antarmuka ... Error! Bookmark not defined. 4.2 Pengujian ... Error! Bookmark not defined. 4.2.1 Pengujian Alpha ... Error! Bookmark not defined. 4.2.1.1 Rencana Pengujian ... Error! Bookmark not defined. 4.2.1.2 Hasil Pengujian ... Error! Bookmark not defined. 4.2.1.3 Kesimpulan Pengujian Alpha... Error! Bookmark not defined. 4.2.2 Pengujian Beta ... Error! Bookmark not defined. 4.2.2.1 Kuesioner Pengujian Beta ... Error! Bookmark not defined. 4.2.2.2 Hasil kuesioner ... Error! Bookmark not defined. 4.2.2.2.1 Kesimpulan Hasil Kuisioner Error! Bookmark not defined. BAB 5 KESIMPULAN DAN SARAN ... Error! Bookmark not defined. 5.1. Kesimpulan ... Error! Bookmark not defined. 5.2. Saran ... Error! Bookmark not defined.
(8)
87
Komunikasi. Bandung: InformatikaBandung, 2004.
[2] Ariyus, Dony. 2005. Computer Security. Yogyakarta : Andi.
[3] Ariyus, Dony. 2008. Pengantar Ilmu Kriptografi. Yogyakarta : Andi.
[4] H, Nazruddin Safaat. 2012. Pemrograman Aplikasi Mobile Smartphone Dan Tablet PC Berbasis Android.Bandung : Informatika
[5] Timothy Lethbridge dan Robert Laganiere. 2002. Object Oriented Software Engineering: Pratical Software Development Using UML and Java. Mc Graw Hill-Education, UK.
[6] Clements.T. 2003. SMS-Short But Sweet. Sun Microsystem : http://developers.sun.com/techtopics/mobility/midp/articles/sms/ diakses pada Mei 2014
(9)
iii
Puji syukur alhamdulillah penulis panjatkan kehadirat Allah SWT yang Maha pengasih lagi Maha penyayang, karena atas rahmat dan hidayah-Nya penulis dapat menyelesaikan Skripsi yang berjudul “RANCANG BANGUN APLIKASI ENKRIPSI DAN DEKRIPSI DENGAN MENGGUNAKAN ALGORITMA KRIPTOGRAFI RC-6 PADA PLATFORM ANDROID”. Skripsi ini dibuat sebagai salah satu syarat kelulusan program Strata 1 Fakultas Teknik dan Ilmu Komputer, Program Studi Teknik Informatika di Universitas Komputer Indonesia. Dengan penuh rasa syukur, ucapan terima kasih yang mendalam serta penghargaan yang tidak terhingga penulis sampaikan kepada :
1. Allah SWT yang telah memberikan kesehatan, kesempatan, serta rizki kepada penulis dalam proses menyelesaikan skripsi ini dan juga atas semua rahmat dan hidayah-Nya yang dapat menjadikan semangat dalam jiwa.
2. Kepada kedua orang tua yang sangat saya cintai dan saya hormati, yang selalu memberikan semangat, kekuatan moril, dan selalu mendo‟akan penulis.
3. Bpk Irawan Afriyanto, M.T. selaku Ketua Jurusan Teknik Informatika Universitas Komputer Indonesia (UNIKOM).
4. Bpk Harsa Wara Prabawa, S.Si., M.Pd. selaku pembimbing yang selalu memberikan yang terbaik serta sabar dalam memberikan bimbingan kepada penulis.
5. Bpk Andri Heryandi, S.T., M.T. selaku penguji dan reviewer yang memberikan banyak masukan yang sangat berarti bagi penulis.
6. Seluruh staf dosen Teknik Informatika yang telah memberikan ilmu yang sangat berarti untuk penulis.
(10)
iv dukungan untuk menyelesaikan skripsi ini.
Penulis menyadari bahwa skripsi ini masih banyak kekurangan dan masih jauh dari kata sempurna. Oleh karena itu, saran dan kritik yang sifatnya membangun akan penulis terima dengan senang hati. Akhir kata penulis berharap skripsi ini dapat bermanfaat bagi yang membutuhkan.
Wassalamu‟alaikum Wr. Wb.
Bandung, Juli 2014 Penulis
(11)
1
BAB 1
PENDAHULUAN
1.1 Latar Belakang Masalah
Banyak fitur-fitur aplikasi yang disediakan oleh android sebagai system operasi ponsel. Dari sekian banyak fitur yang dimiliki oleh android, salah satunya yang masih banyak digunakan yaitu SMS. Namun, seringkali pengguna kurang memperhatikan system keamanan data yang ada pada ponsel tersebut khususnya keamanan informasi yang ada di pesan singkat. Keamanan data merupakan hal yang sangat penting dalam menjaga kerahasiaan informasi terutama yang berisi informasi sensitif yang hanya boleh diketahui oleh pihak yang berhak saja.
Layanan SMS yang menggunakan aplikasi SMS bawaan ponsel bukan merupakan jalur yang aman dalam pertukaran informasi. Pesan yang dikirim menggunakan aplikasi SMS bawaan ponsel masih berupa teks terbuka yang belum terproteksi selain itu pengiriman SMS yang dilakukan tidak sampai secara langsung ke penerima, akan tetapi pengiriman SMS harus melewati Short Message Service Center (SMSC) yang berfungsi mencatat komunikasi yang terjadi antara pengirim dan penerima. Dengan tersimpannya SMS pada SMSC, maka seorang operator dan mungkin pihak lain yang tidak berhak mengetahui informasi tersebut dapat memperoleh informasi atau membaca SMS di dalam SMSC.
Untuk mengurangi resiko yang ditimbulkan dari celah-celah yang terdapat pada layanan SMS tersebut salah satu cara penanggulangannya adalah dengan menerapkan suatu algoritma kriptografi pada pesan yang dikirmkan. Dengan terenkripsinya pesan yang dikirim maka seseorang yang berhasil mencuri informasi pesan teks yang dikirim tersebut akan kesulitan untuk mengetahui isi dari pesan tersebut. Dengan majunya kemajuan teknologi telepon selular, di mana banyaknya bermunculan telepon selular yang memiliki memori yang cukup besar,
(12)
memungkinkan untuk melakukan implementasi enkripsi pada SMS menjadi memungkinkan.
Data-data yang dikirimkan diubah sedemikian rupa sehingga tidak mudah disadap. Enkripsi adalah proses yang dilakukan untuk mengamankan sebuah data (plaintext) menjadi data yang tersembunyi (ciphertext). Ciphertext adalah pesan yang sudah tidak dapat dibaca dengan mudah. Menurut ISO 7498-2, terminologi yang lebih tepat digunakan untuk megistilahkan enkripsi adalah “enchiper”, sedangkan untuk dekripsi adalah “dechiper”.
Salah satu metode enkripsi yang dapat digunakan untuk aplikasi mobile adalah RC6 (Rivest Code 6). RC 6 merupakan pengembangan daridari algpritma sebelumnya yaitu RC5. Algoritma RC6 dilengkapi dengan beberapa parameter, sehingga dituliskan sebagai RC6-w/r/b. Parameter w merupakan ukuran kata dalam satuan bit, parameter merupakan bilangan bukan negatif yang menunjukan banyaknya iterasi selama proses enkripsi dan parameter b menunjukan ukuran kunci enkripsi dalam byte.
RC 6 dianggap cocok digunakan untuk aplikasi berbasis mobile karena selain sangat sederhana RC 6 juga mudah untuk diimplementasikan pada ponsel berbasis android, karena algoritma ini hanya membutuhkan memory yang kecil.
Berdasarkan pada uraian latar belakang tersebut peneliti tertarik untuk membangun aplikasi pada ponsel berbasis android untuk mengamankan data pesan singkat. Penelitian yang akan dilakukan mengambil judul “RANCANG
BANGUN APLIKASI ENKRIPSI DAN DEKRIPSI DENGAN
MENGGUNAKAN ALGORITMA KRIPTOGRAFI RC-6 PADA
PLATFORM ANDROID”. .
(13)
1.2 Perumusan Masalah
Berdasarkan permasalahan yang telah diuraikan di latar belakang, maka pokok permasalahan yang akan dikaji dalam penelitian ini adalah :
Bagaimana membangun aplikasi enskripsi dan dekripsi SMS dengan menggunakana algoritma Kriptografi RC6 pada ponsel berbasis android.
1.3 Maksud dan Tujuan
Secara umum, penelitian ini dimaksudkan untuk membangun aplikasi enskripsi dan dekripsi SMS dengan menggunakana algoritma Kriptografi RC6 pada ponsel berbasis android. Dengan demikian, penelitian ini bertujuan untuk:
Meningkatkan keamanan pesan yang terkirim,agar tidak mudah diketahui oleh pihak yang tidak berkepentingan.
1.4 Batasan Masalah
Dalam penulisan tugas akhir ini penulis akan membatasi masalah pada beberapa hal berikut ini :
1. Metoda Kriptografi yang digunakan yaitu Algoritma Kriptografi RC-6 simetris.
2. Informasi yang akan di enkripsi hanya pesan singkat pada ponsel yang berbasis android
3. Implementasi metode enkripsi dan dekripsi hanya dilakukan pada aplikasi SMS.
4. Aplikasi yang dibangun tidak menangani pengiriman kunci enkripsi ataupun
dekripsi.
5. Aplikasi ini berjalan minimal meggunakan OS android Versi 2.3 (Gingerbread).
6. Perangkat lunak yang digunakan yaitu eclipse dan framework Android SDK.
(14)
1.5 Metodologi Penelitian
1.5.1 Metodologi penelitian yang digunakan. a. Studi Literatur
Studi yang bisa dijadikan sebagai bahan untuk mengumpulkan dan mengkaji data dengan membaca berbagai literatur yang ada kaitannya dengan masalah yang akan dibahas seperti buku, skripsi, jurnal maupun bentuk tulisan lainnya yang isinya berkaitan erat dengan masalah yang akan diteliti sebagai bahan referensi tertulis.
b. Eksperimen
Eksperimen dilakukan dengan cara melakukan perancangan, implementasi sistem untuk membuat gambaran yang jelas dari masalah yang dihadapi dengan pembuatan simulasi program aplikasi, selain itu dilakukan uji coba dan analisis implementasi yang dibuat.
1.5.2 Metode Pembangunan Perangkat Lunak
Metode pengembangan perangkat lunak yang digunakan untuk membangun aplikasi e-learning untuk pemrograman berorientasi objek ini menggunakan paradigma model waterfall (Ian Sommerville, 2010), yang meliputi beberapa proses diantaranya:
1. Requirements analysis and definition
Tahap ini mengumpulkan kebutuhan secara lengkap kemudian dianalisis dan didefinisikan kebutuhan yang harus dipenuhi oleh program yang akan dibangun. Tahap ini harus dikerjakan secara lengkap untuk bisa menghasilkan desain yang lengkap.
2. System and software design
Tahap ini merupakan kegiatan mengumpulkan kebutuhan secara lengkap kemudian dianalisis dan didefinisikan kebutuhan yang harus dipenuhi oleh aplikasi yang akan dibangun. Tahap ini
(15)
harus dikerjakan secara lengkap untuk bisa menghasilkan desain yang lengkap.
3. Implementation and unit testing
Desain program diterjemahkan ke dalam kode-kode dengan menggunakan bahasa pemrograman yang sudah ditentukan. Program yang dibangun langsung diuji baik secara unit.
4. Integration and system testing
Penyatuan unit-unit program kemudian diuji secara keseluruhan (system testing).
5. Operation and maintenance
Mengoperasikan program dilingkungannya dan melakukan pemeliharaan, seperti penyesuaian atau perubahan karena adaptasi dengan situasi sebenarnya.
1.6 Sistematika Penulisan
Sistematika penulisan tugas akhir ini bertujuan untuk memberikan gambaran umum tentang penelitian yang dijalankan. Sistematika penulisan ini diatur dalam lima bab, yaitu :
BAB 1 PENDAHULUAN
Bab ini menguraikan secara umum tentang latar belakang masalah, identifikasi masalah, maksud dan tujuan, batasan masalah, yang kemudian diikuti dengan metodologi yang digunakan, serta sistematika penulisan penelitian sebagai ringkasan materi dari masing-masing bab.
BAB 2 TINJAUAN PUSTAKA
Membahas berbagai konsep dasar dan teori-teori yang berkaitan dengan topik penelitian yang dilakukan dan hal-hal yang berguna dalam proses analisis permasalahan serta tinjauan terhadap hasil penelitian tentang keamanan pesan singkat pada ponsel.
(16)
BAB 3 ANALISIS DAN PERANCANGAN SISTEM
Bab ini akan menjelaskan mengenai analisa dan perancangan simulasi, pemilihan software yang digunakan, dan analisis perhitungan algoritma kriptografi simetris. serta model matematis untuk analisisnya.
BAB 4 IMPLEMENTASI DAN PENGUJIAN SISTEM
Bab ini merupakan tahapan percobaan dan sekaligus pengujian terhadap program yang dibuat yang diimplementasikan pada ponsel yang berbasis Android BAB 5 KESIMPULAN DAN SARAN
Pada bab ini akan dibahas mengenai kesimpulan dari keseluruhan masalah yang telah dibahas pada bab sebelumnya dan dilengkapi dengan saran-saran yang dapat dijadikan masukan untuk kemudian dapat dikembangkan dan disempurnakan pada perangkat lunak ini.
(17)
7
BAB 2
TINJAUAN PUSTAKA
2.1 Kriptografi
2.1.1 Pengertian Kriptografi
Kriptografi (cryptography) berasal dari bahasa yunani yaitu cryptos artinya rahasia (secret) dan graphein artinya tulisan (writing). Jadi kriptografi berarti tulisan rahasia (secret writing). Secara istilah kriptografi didefinisikan sebagai ilmu sekaligus seni untuk menjaga kerahasian pesan (data atau informasi) yang mempunyai arti atau nilai, dengan cara menyamarkannya (mengacak) menjadi bentuk yang tidak dapat dimengerti menggunakan suatu algoritma tertentu.
Suatu pesan yang akan dirahasisakan atau disandikan dalam ilmu kriptografi disebut plaintext, sedangkan pesan yang telah disandikan sehingga tidak memiliki nilai dan arti lagi dengan tujuan agar pesan tidak dapat dibaca oleh pihak yang tidak berhak disebut chipertext. Dalam ilmu kriptografi juga terdapat istilah enkripsi dan dekripsi. Enkripsi merupakan proses menyandikan plaintext menjadi chipertext dengan menggunakan algoritma tertentu. Sedangkan proses mengembalikan chipertext menjadi plaintext disebut dekripsi. Berikut ini skema umum sebuah penyandian dalam kriptografi [1] :
(18)
2.1.2 Algoritma Kriptografi
Perkembangan algoritma kriptografi dapat kita bagi menjadi dua, yaitu : 1. Kriptografi klasik
Pada algoritma klasik, diterapkan teknik enkripsi konvesional (simetris). Algoritma ini merupakan algoritma kriptografi yang biasa digunakn orang sejak berabad-abad yang lalu.
2. Kriptografi Modern
Kriptografi modern lebih menitikberatkan pada kerahasian kunci yang digunakan pada algoritma tersebut (oleh pemakainya) sehingga algoritma tersebut dapat saja disebarkan tanpa takut kehilangan kerahasian bagi para pemakainya.
Secara umum berdasarkan kesamaan kuncinya, algoritma sandi dibedakan menjadi:
1. Algoritma Simetrik (symmetric algorithm) adalah suatu algoritmayang menggunakan kunci enkripsi sama dengan kunci dekripsi sehingga algoritma ini disebut juga sebagai single-key algorithm. Beberapa algoritma kriptografi simetrik antara lain DES, Blowfish, IDEA, RC4, RC5, RC6,AES atau Rijandel, Serpent dan Twofish. Proses enkripsi – dekripsi algoritma kriptografi simetris dapat dilihat pada gambar dibawah ini :
Gambar 2.2. Algoritma Simetris
Enkripsi Dekripsi
Plaintext Plaintext Plaintext
(19)
Algoritma kriptografi simetris dibagi menjadi 2 kategori yaitu algoritma algoritma aliran (Stream Ciphers) dan algoritma blok (Block Ciphers). Pada algoritma aliran, proses penyandiannya berorientasi satu bit atau satu byte data. Sedang pada algoritma blok, proses penyandiannya berorientasi pada sekumpulan bit atau byte data (per blok).
2. Algoritma Asimetrik (asymmetric algorithm) adalah suatu algoritma yang menggunakan kunci enkripsi tidak sama dengan kunci dekripsi. Algoritma ini menggunakan dua kunci yakni kunci public (public key) dan kunci privat (private key). Beberapa algoritma kunci public antara lain adalah RSA, Rabin dan ElGamal. Proses enkripsi-dekripsi algoritma asimetris dapat dilihat pada gambar dibawah ini :
Gambar 2.3. Algoritma Asimetris
Pada algoritma public key ini, semua orang dapat mengenkripsi data dengan memakai public key penerima yang telah diketahui secara umum. Akan tetapi data yang telah terenkripsi tersebut hanya dapat didekripsi dengan menggunakan private key yang hanya diketahui oleh penerima[2].
Enkripsi Dekripsi
Plaintext Plaintext Plaintext
(20)
2.2 Tinjauan matematis 2.2.1 Konsep Dasar
Dasar matematis yang mendasri proses enkripsi dan dekripsi adalah relasi antara dua himpunan yaitu himpunan berisi elemen plaintext dan himpunan berisi elemen ciphertext. Enkripsi dan dekripsi merupakan fungsi tranformasi antara dua himpunan tersebut. Bila himpunan plaintext dinotasikan dengan P dan himpunan ciphertext dinotasikan dengan C, sedang fungsi enkripsi dinotasikan dengan E dan fungsi dekripsi dengan D maka proses enkripsi-dekripsi dapat dinyatakan dalam notasi matematis denan :
E(P) = C dan D(C) = P
Karena proses enkripsi-dekripsi bertujuan memperoleh kembali data asal, maka : D(E(P)) = P
Relasi antara himpunan plaintext dengan himpunan cihpertext harus merupakan fungsi korespondensi satu-satu (one to one relation). Hal ini merupakan keharusan untuk mencegah terjadinya ambigu dalam dekripsi yaitu satu elemen ciphertext menyatakan lebih dari satu elemen plaintext.
Pada metode kriptografi simetris atau konvensional digunakan satu buah kunci. Bila kunci dinotasikan denan „K‟ maka proses enkripsi-dekripsi metode kriptografi simeteris dapat dinotasikan dengan :
Ek(P) = C dan Dk (C) = P
Dan keseluruhan sistem dinyatakan sebagai : Dk(Ek(P))=P
Pada metode kriptografi nirsimeteris digunakan kunci umum untuk enkripsi dan kunci pribadi untuk dekripsi. Bila kunci umum dinotasikan dengan „PK‟ dan kunci pribadi dinotasikan dengan „SK‟ maka
(21)
proses enkripsi-dekripsi metode kriptografi nirsimeteris dapat dinotasikan dengan :
EPK (P) = C dan DSK (C) =P
Dan keseluruhan sistem dinyakatan sebagai DSK(EPK(P)) = P
2.3 RC6 Block Chiper
RC6 merupakan algoritma yang merupakan keturunan dari RC5 yang juga merupakan kandidat AES (Advanced Encryption Standard). Pada mulanya, perancangan RC6 diawali ketika RC5 dianggap dapat dijadikan kandidat untuk mengikuti kompetisi pemilihan AES. Modifikasi kemudian dibuat untuk meningkatkan keamnan dan performa dan juga untuk dapat memenuhi persyaratan AES
RC6 dirancang untuk menghilangkan segala ketidakamanan yang ditemukan pada RC5, karena analisis pada RC5 menunjukan bahwa ternyata jumlah rotasi yang terjadi pada RC5 tidak sepenuhnya bergantung pada data yang terdapat dalam blok. Selain itu serangan kritanalisis diferensial juga ternyata dapat menembus keamanan yang ditawarkan RC5.
RC6 juga dirancang untuk memenuhi persyaratan AES yang diantaranya adalah kemampuan untuk beroperasi pada mode blok 128 bit. Jika besar blok 128 bit langsung dipaksakan untuk diimplemetasikan dengan algoritma RC5, maka akan dibutuhkan register kerja 64 bit. Spesifikasi arsitektur dan bahasa yang menjadi tempat implementasi algoritma yang ditentukan oleh AES belum mendukung pengoperasian 64 bit yang efisien. Oleh karena itu, daripada menggunakan 2 register 64 bit seperti pada RC5, RC6 menggunakan 4 register 32 bit. Karena menggunakan 4 register makan akan terdapat 2 operasi rotasi pada
(22)
setiap half-round yang ada, dan juga akan lebih banyak bit-bit yang akan digunakan untuk mempengaruhi banyaknya bit yang dirotasi.
RC6 seperti juga RC5 mengeksploitasi penggunaan operasi-operasi primitive yang diimplementasikan secara efisien dalam prosesor-prosesor modern. RC6 juga selain menggunakan ketiga operasi primitive yang digunakan dalam RC5, juga menggunakan operasi perkalian 32 bit yang telah diimplementasikan secara efisien dalam prosesor modern saat ini. Primitive operasi perkalian ini sangat efektif dalam menghasilkan efek “diffusion” atau penyebaran yang tentu saja mengakibatkan RC6 lebih aman daripada RC5. Operasi perkalian ini digunakan untuk menghitung jumlah bit yang dirotasi sehingga konsep data-dependent rotations dapat dengan lebih sempurna diimplementasikan [3].
2.3.1 Operasi-operasi Primitif
Selain ketiga operasi primitif yang digunakan pada RC5, RC6 juga menggunakan operasi perkalian modulu-2w. Berikut adalah daftar operator-operator primitive (termasuk invers) yang digunakan dalam RC6:
a+b : penjumlahan integer modulu 2w a-b : pengurangan integer modulu 2w
a⊕b : operasi eksklusif –OR (xor) dari w-bit word axb : perkalian integer modulu 2W
a<<<b : rotasi a ke kiri sebanyak nilai yang diperoleh dari bit-bit orde bawah sejumlah 2log(w) dari b
a>>>b : rotasi terhadap a ke kanan sebanyak nilai yabg diperoleh dari bit-bit orde bawah sejumlah 2log(w) dari b
(23)
2.3.2 Algoritma RC6
Algoritma RC6 seperti juga RC5 merupakan algoritma chipper yang terparameterisasi. RC6 secara tepat ditulis sebagai :
RC6 – w /r/b
Nilai parameter w, r,dan b menyatakan hal yang sama seperti yang ditunjukan dalam algoritma RC5. Algoritma RC6 yang dipakai sebagai kandidat AES adalah RC6-32/20/b, yang berarti ukuran word 32 bit, jumlah ronde 20 kali, dengan panjang kunci b ditentukan pengguna.
2.3.3 Key Expansion Algoritma
Algoritma untuk membangkitkan kunci internal sama seperti pada RC5. Nilai konstanta Pw dan Qw yang digunakan juga sama, tetapi ukuran array S tidak sama dengan yang seperti RC5. Ukuran t dari array S dalam RC6 adalah t = 2(r+2), yang berarti terdapat lebih banyak kunci internal yang dibangkitkan daripada jumlah kunci internal RC5. Berikut algoritmanya[3].
S[0] = Pw
fori = 1 to (2r + 3) do S[i] = S[i – 1] + Qw
i = 0 j = 0 A = 0 B = 0
for3 × max(c, (2r + 4)) times do S[i] = (S[i] + A + B) <<< 3
A = S[i]
L[i] = (L[j] + A + B) <<< 3 B = L[i]
(24)
i = (i + 1) mod (2r+4) j = (j + 1) mod c 2.3.4 Algoritma Enkripsi
Fungsi enkripsi menerima input 1 blok plaintext yang terbagi dalam 4 register yang masing-masing berupa w-bit word, yaitu A, B, C dan D. Chipertext hasil proses terbagi dan disimpen dalam A, B, C dan D. Dalam proses enkripsi diperlukan table kunci S yang dianggap telah didapat dari proses sebelumnya.
Secara lebih detil, proses enkripsi dengan RC6 dapat dibagi dalam beberapa langkah. Dalam penjelasan berikut, notasi (A,B,C,D) = (B,C,D,A) berarti adalah operasi assignment yang dilakukan parallel (bersamaan) untuk setiap elemen di ruas kanan ke ruas kiri yang berkorespondensi. Langkah-langkahnya adalah sebagai berikut :
1. Mula-mula lakukan half-round loop yang seperti pada RC5 : Fori = 1 to r do
A = ((AB)<<<B)+S[i] ⊕ (A,B) = (B,A)
2. Lakukan dua proses RC5 secara parallel, yang satu untuk register A, B dan yang lain untuk register C, D.
fori = 1 to r do
A = ((AB) <<< B) + S[2i] ⊕ C = ((CD) <<< D) + S[2i+1] ⊕ (A,B) = (B,A)
(C,D) = (D,C)
3. Pada tahap pertukaran,daripada menukar A dengan B dan C dengan D, lakukan permutasi antar keempat register (A,B,C,D) = (B,C,D,A), sehingga komputasi AB bercampur dengan komputasi CD.
(25)
fori = 1 to r do
A = ((AB) <<< B) + S[2i] ⊕ C = ((CD) <<< D) + S[2i+1] ⊕
(A,B,C,D) = (B,C,D,A)
4. Campurkan komputasi AB dengan CD lebih jauh, yaitu dengan mempertukarkan kedua nilai yang menyatakan jumlah rotasi pada masing-masing komputasi.
fori = 1 to r do
A = ((A⊕B) <<< D) + S[2i] C = ((C⊕D) <<< B) + S[2i+1] (A,B,C,D) = (B,C,D,A)
5. Daripada mengunakan nilai B dan D secara langsung, RC6 menggunakan hasil transformasi kedua register ini. Hal ini dilakukan untuk tidak mengulangi maslah rotasi seperti pada RC5 dimana tidak seluruh bit dalam data yang berpengaruh dalam rotasi. Oleh karena itu, fungsi transformasi yang dipilih harus dapat memanfaatkan seluruh bit di dalam data untuk mengatur jumlah bit yang dirotasikan. Fungsi yang dipilih adalah f(x) = x(2x +1) (mod 2w) yang kemudian diikitu dengan rotasi ke kiri sebanyak 5 bit. Transformasi ini terpilih karena fungsi f(x) yang merupakan fungsi satu ke satu memiliki bit-bit orde atas yang menentukan jumlah rotasi yang akan digunakan yang sangat bergantung pada x.
fori = 1 to r do
p = (B × (2B + 1)) <<< 5 q = (D × (2D + 1)) <<< 5 A = ((A⊕p) <<< q) + S[2i] C = ((C⊕q) <<< p) + S[2i+1]
(26)
(A,B,C,D) = (B,C,D,A)
6. Setelah loop di atas selesai, akan terdapat hasil dimana plaintext bias menunjukan bagian input ronde pertama dalam enkripsi dan chipertext bias menunjukan bagian input ronde terakhir dalam enkripsi. Oleh karena itu perlu ditambahkan langkah-langkah di awal dan di akhir loop untuk menyamarkan hubungan ini. Sehingga, terbentuk algoritma enkripsi RC6 yang sebagai berikut :
B = B + S[0] D = D + S[1] fori = 1 to r do
p = (B × (2B + 1)) <<< 5 q = (D × (2D + 1)) <<< 5 A = ((A⊕p) <<< q) + S[2i] C = ((C⊕q) <<< p) + S[2i+1] (A,B,C,D) = (B,C,D,A) A = A + S[2r + 2] C = C + S[2r + 3]
Perlu diketahui juga, dalam varian baru RC6 jumlah rotasi ke kiri yang mengikuti fungsi kuadrat bukan 5 bit tetapi adalah 2log(w) bit[3].
(27)
Gambar 2.4. RC6 Block Chiper 2.3.5 Algoritma Dekripsi
Proses dekripsi ciphertext pada algoritma RC6 merupakan pembalikan dari proses enkripsi. Pada proses whitening, bila proses enkripsi menggunakan operasi penjumlahan, maka pada proses dekripsi menggunakan operasi pengurangan. Sub kunci yang digunakan pada proses whiteneing setelah iterasi terakhir diterapkan sebelum iteasi pertama, begitu juga sebaliknya sub kunci yang diterapkan pada proses whitening sebelum iterasi pertama digunakan pada whitening setelah iterasi terkahir. Akibatnya, untuk melakukan dekripsi, hal yang harus dilakukan semata-mata hanyalah menerapkan algoritma yang sama dengan enkripsi, dengan tiap iterasi menggunakan sub kunci yang sama dengan yang digunakan pada saat enkripsi, hanya saja urutan sub kunci yang digunakan terbalik[3].
Sama seperti pada RC5, algoritma dekripsi RC6 jga merupakan penurunan dari algoritma enkripsi. Algoritmanya sebagai berikut :
C = C – S[2r + 3] A = A – S[2r + 2]
(28)
fori = r downto 1 do
(A,B,C,D) = (D,A,B,C) p = (D × (2D + 1)) <<< 5 q = (B × (2B + 1)) <<< 5 C = ((C – S[2i + 1]) >>> q)p ⊕ A = ((A – S[2i]) >>> p)q ⊕ D = D – S[1]
B = B – S[0] 2.4 Sejarah Android
Menurut Nazaruddin Safaat H, Android adalah sebuah system operasi untuk perangkat mobile berbasis linux yang mencakup system operasi, middleware dan aplikasi. Android menyediakan platform terbuka bagi para pengembang untuk menciptakan aplikasi mereka. Awalnya, google Inc. membeli Android Inc. yang merupakan pendatang baru yang membuat peranti lunak untuk ponsel smartphone. Kemudian untuk mengembangkan Android, dibentuklah Open Handset Alliance, konsorsium dari 34 perusahaan peranti keras, peranti lunak, dan telekomunikasi, termasuk Google, HTC, Intel, Motorola, Qualcomm, T-Mobile, dan Nvidia[4].
Pada saat perilisan perdana Android, 5 November 2007, Android bersama Open Handset Alliance menyatakan mendukung pengembangan open source pada perangkat mobile. Di lain pihak, Google merilis kode-kode Android dibawah lisensi Apache, sebuah lisensi perangkat lunak dan open platform perangkat seluler.
Di dunia ini terdapat dua jenis distributor system operasi android. Pertama yang mendapat dukungan penuh dari Google atau Google Mail Server (GMS) dan kedua adalah yang benar-benar bebas distribusinya tanpa dukungan langsung Google atau dikenal sebagai Open Handset Distribution (OHD).
(29)
Sekitar September 2007 Google mengenalkan Nexus One, salah satu jenis smartphone yang menggunakan android sebagai system operasinya. Telepon seluler ini diproduksi oleh HTC Corporation dan tersedia di pasaran pada 5 januari 2010. Pada 9 desember 2008, diumumkan anggota baru yang bergabung dalam program kerja android ARM Holdings. Atheros Communications, diproduksi oleh Asustek Computer Inc, Garmin Ltd, Softbank, Sony Ericson, Toshiba Corp, dan Vodafone Group Plc. Seiring pembentukan Open Handset Alliance, OHA mengumumkan produk perdana mereka, Android, perangkat mobile yang merupakan modifikasi kernel Linux 2.6. Sejak Android dirilis telah dilakukan berbagai pembaharuan berupa perbaikan bug dan penambahan fitur baru.
Pada masa saat ini sebagian besar vendor-vendor smartphone sudah memproduksi smartphone berbasis android, vendor-vendor itu antara lain HTC, Motorola, Samsung, LG, HKC, Huawei, Archos, Webstation Camangi, Dell, Nexus, SciPhone, WayteQ, Sony Ericsson, Acer, Philips, T-Mobile, Nexian, IMO, Asus dan masih banyak lagi vendor smartphone di dunia yang memproduksi android. Hal ini, karena android itu adalah sistem operasi yang open source sehingga bebas didistribusikan dan dipakai oleh vendor manapun.
Tidak hanya menjadi sistem operasi di smartphone, saat ini Android menjadi pesaing utama dari Apple pada sistem operasi Table PC. Pesatnya pertumbuhan Android selain faktor yang disebutkan di atas adalah karena Android itu sendiri adalah platform yang sangat lengkap baik itu sistem operasinya, Apalikasi dan Tool Pengembangan, Market aplikasi android serta dukungan yang sangat tinggi dari komunitas Open Source di dunia, sehingga android terus berkembang pesat baik dari segi teknologi maupun dari segi jumlah device yang ada di dunia [4].
(30)
2.4.1 Android SDK (Software Development Kit)
Android SDK adalah tools API (Application Programming Interface) yang diperlukan untuk mulai mengembangkan aplikasi pada platform Android menggunakan bahasa pemrograman Java. Android merupakan subset perangkat lunak untuk ponsel yang meliputi sistem operasi, middleware dan aplikasi kunci yang di-release oleh Google. Saat ini disediakan Android SDK (Software Development Kit) sebagai alat bantu dan API untuk mulai mengembangkan aplikasi pada platform Android menggunakan bahasa pemrograman Java. Sebagai platform aplikasi-netral, Android memberi Anda kesempatan untuk membuat Aplikasi yang kita butuhkan yang bukan merupakan aplikasi bawaan Handphone/Smartphone. Beberapa fitur-fitur Android yang paling penting adalah 1. Framework aplikasi yang mendukung penggantian komponen dan
reusable.
2. Mesin Vistual Dalvik dioptimalkan untuk perangkat mobile. 3. Integrated browser berdasarkan engine open source webkit.
4. Grafis yang dioptimalkan dan didukung oleh libraries grafis 2D, grafis 3D berdasarkan spesifikasin openGL ES 1.0 (opsional akselerasi hardware).
5. SQLite untuk penyimpanan data.
6. Media Support yang mendukung audio, video, dan gambar (MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF), GSM telephony (tergantung hardware).
7. Bluetooth, EDGE, 3G, dan WiFi (tergantung hardware).
8. Kamera, GPS, kompas, dan accelerometer (tergantung hardware). 9. Linkungan Development yang lengkap dan kaya termasuk
perangkat emulator, tools untuk debugging, profil dan kinerja memori, dan plugin untuk IDE Eclipse
(31)
2.4.2 ADT (Android Development Tools)
Android Development Tools (ADT) adalah plugin yang didesain untuk IDE Eclipse yang memberikan kita kemudahan dalam mengembangkan aplikasi android dengan menggunakan IDE Eclipse. Dengan menggunakan ADT untuk Eclipse akan memudahkan kita dalam membuat aplikasi project anroid, membuat GUI aplikasi, dan menambahkan komponen-komponen yang lainnya, begitu juga kita dapat melakukan running aplikasi menggunakan Android SDK melalui eclipse. Dengan ADT juga kita dapat melakukan pembuatan package android (.apk) yang digunakan untuk distribusi aplikasi android yang kita rancang.
2.4.3 Eclipse
Eclipse adalah sebuah IDE (Integrated Development Environment) untuk mengembangkan perangkat lunak dan dapat dijalankan di semua platform (platform-independent). Berikut ini adalah sifat dari Eclipse: Multi-platform Target sistem operasi Eclipse adalah Microsoft Windows, Linux, Solaris, AIX, HP-UX dan Mac OS X. Mulit-language: Eclipse dikembangkan dengan bahasa pemrograman Java, akan tetapi Eclipse mendukung pengembangan aplikasi berbasis bahasa pemrograman lainnya, seperti C/C++, Cobol, Python, Perl, PHP, dan lain sebagainya. Multi-role: Selain sebagai IDE untuk pengembangan aplikasi, Eclipse pun bisa digunakan untuk aktivitas dalam siklus pengembangan perangkat lunak, seperti dokumentasi, test perangkat lunak, pengembangan web, dan lain sebagainya. Eclipse pada saat ini merupakan salah satu IDE favorit dikarenakan gratis dan open source, yang berarti setiap orang boleh melihat kode pemrograman perangkat lunak ini. Selain itu, kelebihan dari Eclipse yang membuatnya populer adalah kemampuannya untuk dapat dikembangkan oleh pengguna dengan komponen yang dinamakan plug-in.
(32)
2.5 Struktur Pesan SMS
Sturuktur pesan pada sebuah paket SMS dapat dilihat pada gambar berkut :
Gambar 2.5. Struktur Pesan SMS
Pada Gambar dapat terlihat bahwa pada sebuah paket pesan SMS terdiri dari header dan body. Header pesan terdiri dari instruksi-instruksi kepada komponen-komponen yang bekerja dalam jaringan SMS. Pada instruksi-instruksi tersebut, terdapat informasi yang diperlukan selama pengiriman pesan seperti informasi validitas pesan, dan informasi-informasi lainnya. Pada bagian message body, terdapat isi dari pengirim pesan yang akan dikirim.
Panjang isi pesan pada sebuah paket SMS berukuran maksimal 160 karakter, diman setiap karakter memiliki panjang 7 bit. Beberapa aplikasi standar telepon selular dapat mendukung panjang pesan dengan karakter sepanjang 8 bit (panjang pesan maksimum 140 karakter) dan karakter yang lebih panjang lainnya seperti 16 bit, namun karakter sepanjang 8 bit dan 16 bit ini tidak didukung oleh semua aplikasi standard telepon selular. Pada umumnya karakter sepanjang 8 bit dan 7 bit digunakan untuk menampilkan data seperti gambar dan symbol[6].
(33)
2.6 UML
Unified Modeling Language (UML) adalah bahasa spesifikasi standar untuk mendokumentasikan, menspesifikasikan, dan membangun sistem perangkat lunak. Unified Modeling Language (UML) adalah himpunan struktur dan teknik untuk pemodelan desain program berorientasi objek (OOP) serta aplikasinya.UML adalah metodologi untuk mengembangkan sistem OOP dan sekelompok perangkat tool untuk mendukung pengembangan sistem tersebut. UML mulai diperkenalkan oleh Object Management Group, sebuah organisasi yang telah mengembangkan model, teknologi, dan standar OOP sejak tahun 1980-an. Sekarang UML sudah mulai banyak digunakan oleh para praktisi OOP.UML merupakan dasar bagi perangkat (tool) desain berorientasi objek dari IBM.
UML adalah suatu bahasa yang digunakan untuk menentukan, memvisualisasikan, membangun, dan mendokumentasikan suatu sistem informasi. UML dikembangkan sebagai suatu alat untuk analisis dan desain berorientasi objek oleh Grady Booch, Jim Rumbaugh, dan Ivar Jacobson. Namun demikian UML dapat digunakan untuk memahami dan mendokumentasikan setiap sistem informasi. Penggunaan UML dalam industri terus meningkat. Ini merupakan standar terbuka yang menjadikannya sebagai bahasa pemodelan yang umum dalam industri peranti lunak dan pengembangan sistem[7].
2.6.1 Sejarah UML
Sampai era tahun 1990 puluhan metodologi pemodelan berorientasi objek telah bermunculan di dunia. Diantaranya adalah: metodologi booch, metodologi coad, metodologi OOSE, metodologi OMT, metodologi shlaer-mellor, metodologi wirfs-brock, dsb. Masa itu terkenal dengan masa perang metodologi (method war) dalam pendesainan berorientasi objek. Masing-masing metodologi membawa notasi sendiri-sendiri, yang mengakibatkan timbul masalah baru apabila kita bekerjasama dengan kelompok/perusahaan lain yang menggunakan metodologi yang berlainan.
(34)
2.6.2 Diagram UML
UML menyediakan 10 macam diagram untuk memodelkan aplikasi berorientasi objek, yaitu :
1. Use Case Diagram untuk memodelkan proses bisnis.
2. Conceptual Diagram untuk memodelkan konsep-konsep yang ada di dalam aplikasi.
3. Secuence Diagram untuk memodelkan pengiriman pesan (message) antar objects.
4. Collaboration Diagram untuk memodelkan interaksi antar objects. 5. State Diagram untuk memodelkan perilaku objects di dalam sistem.
6. Activity Diagram untuk memodelkan perilaku Use Cases dan objects di dalam system.
7. Class Diagram untuk memodelkan struktur kelas. 8. Objects Diagram untuk memodelkan struktur object. 9. Component Diagram untuk memodelkan komponen object. 10.Deployment Diagram untuk memodelkan distribusi aplikasi. 2.6.2.1 Use Case Diagram
Use case diagram menggambarkan fungsionalitas yang diharapkan dari sebuah sistem. Yang ditekankan adalah “apa” yang diperbuat sistem, dan bukan “bagaimana”. Sebuah use case merepresentasikan sebuah interaksi antara aktor dengan sistem. Use case merupakan sebuah pekerjaan tertentu, misalnya login ke sistem, meng-create sebuah daftar belanja, dan sebagainya. Seorang/sebuah aktor adalah sebuah entitas manusia atau mesin yang berinteraksi dengan sistem untuk melakukan pekerjaan-pekerjaan tertentu. Sebuah use case dapat meng-include
(35)
fungsionalitas use case lain sebagai bagian dari proses dalam dirinya. Secara umum diasumsikan bahwa use case yang di-include akan dipanggil setiap kali use case yang meng-include dieksekusi secara normal. Sebuah use case dapat di-include oleh lebih dari satu use case lain, sehingga duplikasi fungsionalitas dapat dihindari dengan cara menarik keluar fungsionalitas yang common. Sebuah use case juga dapat meng-extend use case lain dengan behaviour-nya sendiri. Sementara hubungan generalisasi antar use case menunjukkan bahwa use case yang satu merupakan spesialisasi dan yang lain. Penggambaran Use case diagram dapat di lihat dalam gambar 2.6 dibawah ini.
Gambar 2.6. Contoh Use Case Diagram 2.6.2.2 Activity Diagram
Activity diagrams menggambarkan berbagai alir aktivitas dalam sistem yang sedang dirancang, bagaimana masing-masing alir berawal, decision yang mungkin terjadi, dan bagaimana mereka berakhir. Activity diagram juga dapat menggambarkan proses paralel yang mungkin terjadi pada beberapa eksekusi. Activity diagram merupakan state diagram khusus, di mana sebagian besar state adalah action dan sebagian besar transisi di-trigger oleh selesainya state sebelumnya (internal processing). Oleh karena itu activity diagram tidak
(36)
menggambarkan behaviour internal sebuah sistem (dan interaksi antar subsistem) secara eksak, tetapi lebih menggambarkan proses-proses dan jalur-jalur aktivitas dari level atas secara umum. Sebuah aktivitas dapat direalisasikan oleh satu use case atau lebih.
Aktivitas menggambarkan proses yang berjalan, sementara use case menggambarkan bagaimana aktor menggunakan sistem untuk melakukan aktivitas. Decision digunakan untuk menggambarkan behaviour pada kondisi tertentu. Untuk mengilustrasikan proses-proses paralel (fork dan join) digunakan titik sinkronisasi yang dapat berupa titik, garis horizontal atau vertikal. Activity diagram dapat dibagi menjadi beberapa object swimlane untuk menggambarkan objek mana yang bertanggung jawab untuk aktivitas tertentu. Contoh Activity diagram dapat di lihat pada gambar 2.7 berikut ini.
Gambar 2.7. Contoh Activity Diagram 2.6.2.3 Sequence Diagram
Sequence diagram menjelaskan secara detil urutan proses yang dilakukan dalam sistem untuk mencapai tujuan dari use case: interaksi yang terjadi antar class, operasi apa saja yang terlibat, urutan antar operasi, dan informasi yang diperlukan oleh masing-masing operasi. Contoh sequence diagram dapat di lihat pada gambar 2.8 berikut ini.
(37)
Gambar 2.8. Contoh Sequence Diagram 2.6.2.4 Class Diagram
Class diagram merupakan diagram yang selalu ada di permodelan sistem berorientasi objek. Class diagram menunjukkan hubungan antar class dalam sistem yang sedang dibangun dan bagaimana mereka saling berkolaborasi untuk mencapai suatu tujuan. Penggambaran class diagram dapat di lihat dalam gambar 2.9 dibawah ini.
(38)
2.7 MySql
MySQL adalah sebuah program database server yang mampu menerima dan mengirimkan datanya dengan sangat cepat, multi user serta menggunakan perintah standar SQL (Structured Query Language) . MySQL merupakan sebuah database server yang free, artinya kita bebas menggunakan database ini untuk keperluan pribadi atau usaha tanpa harus membeli atau membayar lisensinya.
MySQL pertama kali dirintis oleh seorang programer database bernama Michael Widenius. Selain MySQL ada beberapa program database server lain yang menggunakan standar query berupa SQL, antara lain adalah :
1. Oracle 2. PostgreSQL 3. MySQL Front 4. MsQL
5. SQL Server 6. DLL
MySQL adalah sebuah database server, dapat juga berperan sebagai client sehingga sering disebit database client/server, yang pen source dengan kemampuan dapat berjalan baik di OS (Operating Sistem) manapun, dengan Platform Windows maupun LINUX.
2.8 PhpMyAdmin
PhpMyAdmin merupakan tools open source yang dibuat menggunakan program PHP untuk mengakses database MySQL via web. Dengan menggunakan program ini kita dapat mengelolah database MySQL dengan sangat mudah.
Hampir semua operasi terhadap database dan perintah yang ada dapat dijalankan pada program tersebut, termasuk diantaranya menggunakan perintah Database Definition Language (DDL), Database Manipulation Language (DML) sertaDataControlLanguage(DCL).
(39)
29 3.1 Analisis
Analisis adalah penguraian dari suatu pembahasan, dalam hal ini pembahasan mengenai aplikasi keamanan pengiriman pesan singkat pada platform android, yang berguna untuk mengetahui apa saja yang dapat dijadikan isi dari sebuah aplikasi dan perangkat yang dapat digunakan dalam perancangan aplikasi yang akan dibuat.
3.1.1 Analisis Masalah
Dalam pembahasan kriptografi yang sedang di bahas yaitu mengenai mengamankan isi dari sebuah pesan singkat pada platform android dengan menggunakn algoritma kriptografi RC6. Berikut dibawah ini analisa rancangan dari permasalahan yang sedang di bahas :
a. Kuranganya keamanan pada saat pengiriman pesan singkat melalui SMS.
b. Memanfaatkan layanan SMS untuk mengirim pesan atau informasi yang bersifat rahasia.
3.1.2 Analisis Arsitektur Sistem
Pada Penelitian ini, Sistem menerapkan Asritektur sistem yang terdiri dari client dan server. Arsitektur sistem yang digunakan dalam merancang sistem ditunjukan pada gambar 3.1.
(40)
Gambar 3.1. Arsitektur Sistem
Aplikasi client merupakan antarmuka antara pengguna dengan sistem. Pada bagian client terdapat antarmuka untuk menulis pesan yang terenkripsi dan mendekripsi suatu pesan. Sedangkan pada sisi server berfungsi untuk membuat kunci yang dibutuhkan untuk proses enkripsi dan memberikan kunci yang sudah di buat pada saat proses enkripsi untuk melakukan proses dekripsi pesan singkat. Server bertanggung jawab dalam mengelola kunci yang dibutuhkan pada saat proses enkripsi dan dekripsi pesan singkat.
3.1.3 Analisis Komunikasi Data
Analisis komunikasi data menjelaskan cara pertukaran data antara client dan server. Dalam penelitian ini pertukaran data menggunakan teknik HTTP request, dimana aplikasi akan mengirim sebuah request pada suatu aplikasi server melalui jaringan internet lalu akan menerima response dari aplikasi server tersebut. Meka nisme komunikasi data dalam perancangan aplikasi SMS Secure dapat dilihat pada gambar 3.2.
(41)
Proses mekanisme komunikasi data dalam perancangan aplikasi dimulai dari aplikasi client yang akan mengirim request ke database server, kemudian database server pun enerima request tersebut, lalu melakukan eksekusi query. Setelah itu database server akan membuat kunci dengan format yang sudah ditentukan sebagai response yang akan diterima aplikasi client. Sehingga aplikasi client mendapatkan kunci dari database server untuk melakukan proses enkripsi. 3.1.4 Analisis Penerapan Algoritma RC6 dalam enkripsi SMS
Algoritma RC6 merupakan algoritma sederhana, fungsi yang digunakan merupakan fungsi yang sederhana dan hanya mengandalkan prinsip iterated chipper untuk keamanan. Tampilan hasil enkripsi yang diterima harus diperhatikan, hal ini dikarenakan pada data hasil enkripsi, setiap karakternya akan memiliki panjang karakter 8 bit, sedangkan sebagian telepon seluler hanya dapat menampilkan karakter dengan panjang 7 bit. Dengan demikian dalam penerapan algoritma RC6 pada SMS karakter-karakter yang akan dienkripsi diubah kedalam nilai ASCII, dimana nilai karakter dalam table ASCII ditambah table karakter special adalah 0 sampai dengan 255, artinya satu karakter ASCII akan diwakili oleh 8 bit, dimana 28 = 256. Sehingga, dalam 1 blok plainteks (32 bit) akan menyimpan 4 karakter dan setiap kali iterasi, maka akan diambil 16 karakter dari plaintext.
Apabila panjang plaintext atau panjang kunci kurang dari 16 karakter, maka akan dilakukan padding, yaitu dengan menambah bit “0” (nol) di akhir teks, sehingga panjang teks mencukupi 16 karakter. Layar pada sebagian besar telepon selular hanya dapat menampilkan karakter dengan panjang 7 bit dan pesan yang telah terenkripsi akan berbentuk binary, sehingga layar tidak akan menampilkan dengan semestinya. Oleh karena itu, pada aplikasi yang akan dibangun, untuk menampilkan pesan yang telah terenkripsi, ditambah informasi karakter yang terdapat pesan tersebut dengan format heksadesimal agar dapat ditampilkan dilayar dan informasinya lebih terbaca.
(42)
Algoritma RC6 yang akan digunakan dalam aplikasi Secure SMS yang akan dibangun dengan w sebesar 32 bit, r sebesar 20 kali putaran dan panjang kunci beragam lebih dari 1 karakter (8 bit). Langkah-lanhkah algoritma RC6 dalam Aplikasi SMS Secure ini akan dikelompokan kedalam beberapa bagian, yaitu :
1. Pembangkit Subkunci
Kunci dari pengguna ini akan dimasukan oleh pengguna pada saat akan melakukan proses enkripsi dan dekripsi. Kunci ini memiliki tipe data string.
2. Baca Masukan untuk proses enkripsi
Yang dilakukan pada tahapan ini adalah membaca teks yang menjadi masukan pada proses enkripsi,yaitu field dari aplikasi SMS Secure.pada proses enkripsi pesan, fieldnya adalah isi pesan 3. Enkripsi meliputi whitening awal, iterasi, dan whitening akhir. 4. Baca masukan untuk proses dekripsi
Yang dilakukan pada tahapan ini adalah membaca teks yang menjadi masukan pada proses dekripsi, yaitu record dari hasil pesan yang telah dienkripsi pada pengirim dan menjadi field pesan pada penerima.
5. Dekripsi merupakan kebalikan dari proses enkripsi. 3.2 Analisis Kebutuhan Sistem Non Fungsional
Analisis non-fungsional merupakan analisis yang dibutuhkan untuk menentukan spesifikasi dari kebutuhan system. Spesifikasi ini juga meliputi elemn atau komponen-komponen apa saja yang dibutuhkan untuk system yang akan dibangun sampai dengan system tersebut diimplementasikan. Analisis kebutuhan ini juga menentukan spesifikasi masukan yang diperlukan system, keluaran yang akan dibangun sampai dengan system tersebut diimplementasikan. Analisi kebutuhan ini juga menentukan spesifikasi masukan yang diperlukan system, keluaran yang akan dihasilkan system dan proses yang dibutuhkan untuk mengolah masukan sehingga menghasilkan suatu keluaran yang diinginkan.
(43)
Pada analisis kebutuhan sistem non fungsioanal ini dijelaskan analisis mengenai perangkat keras (hardware), perangkat lunak (software), dan pengguna (user) sebagai bahan analisis kekurangan dan kebutuhan yang harus dipenuhi dalam perancangan sistem yang akan diterapkan.
3.2.1 Analisis dan Kebutuhan Perangkat Keras
Berikut ini adalah spesifikasi perangkat keras minimum yang digunakan dalam pembangunan aplikasi dapat dilihat pada tabel 3.1.
Tabel 3.1. Spesifikasi Perangkat Keras Smartphone
3.2.2 Analisis Dan kebutuhan Perangkat Lunak
Analisis perangkat lunak terdiri dari spesifikasi minimum perangkat yang dibutuhkan . Berikut ini adalah spesifikasi pernagkat lunak yang digunakan dalam membangun dan mengimplementasikan aplikasi :
Tabel 3.2. Spesifikasi perangkat Lunak Smartphone
No. Spesifikasi
1 Dimensi Layar 3,5 inches 2 Resolusi 480 x 800 pixels
3 Memori 4GB
4 RAM 512 MB
5 CPU 1GHz
Komputer
No. Perangkat Lunak
1 Sistem Operasi Windows 7 32bit 2 Aplikasi IDE Eclipse Juno
3 JDK versi 1.7 dan Android SDK Windows 4 ADT versi 22.2
(44)
3.3 Analisis dan Kebutuhan Fungsional
Analisis kebutuhan fungsional menggambarkan proses kegiatan yang akan diterapkan dalam sebuah sistem dan menjelaskan kebutuhan yang diperlukan sistem agar sistem dapat berjalan dengan baik serta sesuai dengan kebutuhan. Analisis kebutuhan fungsional ini meliputi analisis kebutuhan sistem, analisis kebutuhan data dan pemodelan sistem. Pemodelan sistem dimodelkan dengan menggunakan UML (Unified Modeling Language). Tahap-tahap pemodelan dalam analisis tersebut antara lain Use Case diagram, Class Diagram, Activity Diagram, Sequence Diagram
3.3.1 Pemodelan Sistem A. Use case Diagram
Diagram Use Case merupakan bagian tertinggi dari fungsionalitas yang dimiliki sistem yang akan menggambarkan bagaimana seseorang atau aktor akan menggunakan dan memanfaatkan sistem. Diagram ini juga mendeskripsikan apa yang akan dilakukan oleh sistem. Use Case terdiri dari tiga bagian yaitu identifikasi aktor, identifikasi Use Case dan skenario Use Case.
Sebuah use case dapat meng-include fungsionalitas use case lain sebagai bagian dari proses dalam dirinya. Secara umum diasumsikan bahwa use case yang di-include akan dipanggil setiap kali use case yang meng-include dieksekusi secara normal. Sebuah use case dapat di-include oleh lebih dari satu use case lain, sehingga duplikasi fungsionalitas dapat dihindari dengan cara menarik keluar fungsionalitas yang common. Sebuah use case juga dapat meng-extend use case lain dengan behaviour-nya sendiri.
(45)
Gambar 3.3. Diagram Use Case 1. Identifikasi Aktor
Dalam sistem ini terdapat dua actor yaitu pengirim dan penerima, berikut adalah penjelasnnya :
Tabel 3.3. Identifikasi Aktor
No. Aktor Definisi
1 user Merupakan aktor yang menggunakan aplikasi untuk mengirim pesan singkat yang sudah terenkripsi, dan mendekripsi pesan masuk yang terenkripsi
(46)
2. Identifikasi Use Cse
Terdapat 15 Use Case dalam aplikasi ini. Setiap Use Case mengambarkan operasi-operasi yang berbeda. Identifikasi Use Case yang terdapat dalam sistem dapat dilihat pada Tabel Dibawah.
Tabel 3.4.Skenario Use Case Tulis pesan
Identifikasi
Nomor 1
Nama Tulis Pesan
Tujuan Menampilkan layar untuk menulis pesan
Deskripsi User menulis pesan pada aplikasi untuk dikirim
Aktor User
Skenario Utama
Kondisi Awal Menu Utama Aplikasi
Aksi Aktor Reaksi Sistem
1. Memilih Menu Tulis pesan
2.
2. Masuk kedalam form tulis pesan
3. 3. Mengisi semua form tulis pesan
4.
(47)
Tabel 3.5. Skenario Use Case Lakukan Enkripsi
Identifikasi
Nomor 2
Nama Lakukan Enkripsi
Tujuan Mengenkripsi pesan yang sudah di tulis
Deskripsi User mengenkripsi pesan singkat setelah form isi pesan terisi semua
Aktor User
Skenario Utama
Kondisi Awal Aplikasi menampilkan halaman tulis pesan Aksi Aktor Reaksi Sistem
1. Masuk ke halaman tulis pesan
1.
2.Menampilkan halaman tulis pesan
2. 3. Mengisi form isi pesan
4.Mengenkripsi pesan singkat
5.Menampilkan Hasil Enkripsi Kondisi Akhir Menampilkan hasil Enkripsi
(48)
Tabel 3.6. Skenario Use case Pilih Pesan
Identifikasi
Nomor 3
Nama Pilih Pesan
Tujuan Memilih pesan yang akan di dekripsi
Deskripsi User memilih pesan singkat yang akan di dekripsi yang berada di kotak masuk
Aktor user
Skenario Utama
Kondisi Awal Aplikasi menampilkan halaman kotak masuk Aksi Aktor Reaksi Sistem
1. Memilih kotak masuk
3.
2.menampilkan list pesan singkat yang masuk
4. 3. Memilih pesan singkat
5. 4. menampilkan pesan singkat
yang dipilih Kondisi Akhir Menampilkan halaman list kotak masuk
(49)
Tabel 3.7. Skenario Use Case Lakukan Dekripsi
Identifikasi
Nomor 4
Nama Lakukan Dekripsi
Tujuan Mendekripsi pesan singkat yang terenkripsi
Deskripsi User mendekripsi pesan singkat terenkripsi yang berada di list kotak masuk
Aktor user
Skenario Utama
Kondisi Awal Halaman kotak masuk
Aksi Aktor Reaksi Sistem
1. Memilih pesan singkat yang terenkripsi
6.
2.Masuk kehalaman dekripsi pesan
7. 3. Mendekripsi pesan
8. 4. menampilkan hasil dekripsi
(50)
Tabel 3.8. Skenario Use Case Kotak Masuk
Identifikasi
Nomor 5
Nama Baca Kotak masuk
Tujuan Melihat list pesan sinkat yang masuk
Deskripsi User memilih kotak masuk untuk mengetahui pesan singkat yang berada di list kotak masuk
Aktor user
Skenario Utama
Kondisi Awal Halaman utama
Aksi Aktor Reaksi Sistem
1. Memilih icon kotak masuk
9.
2.Masuk kehalaman kotak masuk
(51)
Tabel 3.9.Skenario use case Tampilkan Pesan
Identifikasi
Nomor 6
Nama Tampilkan pesan
Tujuan Untuk menampilkan pesan pada saat memilih pesan di kotak masuk.
Deskripsi User memilih pesan dan menampilkannya.
Aktor user
Skenario Utama
Kondisi Awal Halaman menu utama
Aksi Aktor Reaksi Sistem
1. Memilih icon kotak masuk
3.memilih pesan yang akan di tampilkan
2.Masuk kehalaman list kotak masuk
4.Menampilkan isi pesan yang dipilih Kondisi Akhir Halaman form sms kotak masuk
(52)
Tabel 3.10. Skenario Use Case Isi form SMS
Identifikasi
Nomor 7
Nama Isi form sms
Tujuan Menulis pesan yang akan di enkripsi
Deskripsi User mengisi form sms yang tersedia di halaman tulis pesan
Aktor user
Skenario Utama
Kondisi Awal Halamn tulis pesan
Aksi Aktor Reaksi Sistem
1. Memilih icon tulis pesan
10.
2.Masuk kehalaman tulis pesan
11.3. Mengisi form sms
(53)
Tabel 3.11.Skenario Use Case Contact List
Identifikasi
Nomor 8
Nama Lihat Daftar Kontak
Tujuan Memilih no tujuan yang suda tersimpan di handphone
Deskripsi User memilih icon contact list untuk melihat no tujuan yang berada di dalam handphone
Aktor User
Skenario Utama
Kondisi Awal Halaman tulis pesan
Aksi Aktor Reaksi Sistem
1. Memilih icon contact list
12.
2.menampilkan no tujuan yang tersimpan di handphone
(54)
Tabel 3.12. Skenario Use Case Kirim SMS
Identifikasi
Nomor 9
Nama Kirim sms
Tujuan Mengirim pesan singkat yang sudah terenkripsi
Deskripsi User mengirim pesan singkat yang sudah terenkripsi ke no tujuan yang sudah di pilih
Aktor User
Skenario Utama
Kondisi Awal Halaman tulis pesan
Aksi Aktor Reaksi Sistem
1. menekan tompbol kirim
13.
2.Mengirim pesan singkat yang terenkripsi
(55)
Tabel 3.13. Skenario Use Case Lihat Tentang
Identifikasi
Nomor 10
Nama Lihat tentang
Tujuan Menampilkan informasi tenang penulis
Deskripsi User dapat mengetahui informasi tentang penulis
Aktor user
Skenario Utama
Kondisi Awal Halaman menu utama
Aksi Aktor Reaksi Sistem
1. Memilih icon tentang
14.
2.Menampilkan halaman tentang informasi penulis
(56)
Tabel 3.14. Skenario Pilih Setting
Identifikasi
Nomor 11
Nama Pilih Setting
Tujuan Menyimpan No telepon Pemilik Handphone Deskripsi Menyimpan no telepon untuk proses generate key
Aktor user
Skenario Utama
Kondisi Awal Halaman menu utama
Aksi Aktor Reaksi Sistem
1. Memilih menu setting
15.3. Masukan no telepon dan menyimpan no telepon.
2.Menampilkan halaman setting
(57)
Tabel 3.15. Skenario Get Key
Identifikasi
Nomor 12
Nama Get Key
Tujuan Meminta kunci pada database
Deskripsi Meminta kunci ke database server untuk melakukan proses enkripsi dan dekripsi
Aktor user
Skenario Utama
Kondisi Awal Halaman Tulis Pesan
Aksi Aktor Reaksi Sistem
1. Menekan tombol Icon
16.
2. Meminta kunci ke database server dan menampilkannya
(58)
Tabel 3.16. Skenario Tampilkan Generate Pesan
Identifikasi
Nomor 13
Nama Tampilkan Generate Pesan Tujuan Menampilkan pesan
Deskripsi Menampilakn pesan yang akan di enkripsi dan yang sudah di dekripsi
Aktor user
Skenario Utama
Kondisi Awal Halaman Tulis pesan
Aksi Aktor Reaksi Sistem
1. menekan tombol bergambar kunci
17.
2.Menampilkan pesan yang terenkripsi dan terdekripsi
(59)
Tabel 3.17. Skenario Input No Telepon
Identifikasi
Nomor 14
Nama Input no telepon
Tujuan Mendaftarkan no telepon
Deskripsi Mendaftarkan no telepon pengguna aplikasi agar dapat terbaca oleh handphone
Aktor user
Skenario Utama
Kondisi Awal Halaman setting
Aksi Aktor Reaksi Sistem
1. Menampilkan halaman setting
2. Input no telepon 18.
(60)
Tabel 3.18. Skenario Simpan No Telepon
Identifikasi
Nomor 15
Nama Simpan no telepon
Tujuan Menyimpan No telepon Pemilik Handphone
Deskripsi Menyimpan no telepon agar dapat di baca oleh handphone
Aktor user
Skenario Utama
Kondisi Awal Halaman setting
Aksi Aktor Reaksi Sistem 1. Input no telepon
2. Tekan tombol save 19.
3. Menyimpan no telepon
(61)
B. Diagram Activity
Activity Diagram merupakan bagian dari penggambaran sistem secara fungsional menjelaskan proses-proses logika atau fungsi yang terimplementasi oleh kode program. Activity Diagram memodelkan event-event yang terjadi didalam suatu Use Case dan digunakan untuk pemodelan aspek dinamis dari sistem.
(62)
(63)
Gambar 3.6. Diagram Activity Lihat Tentang
(64)
C. Sequence diagram
Sequence Diagram merupakan gambaran interaksi antar masing-masing objek pada setiap Use Case dalam urutan waktu. Interaksi ini berupa pengiriman serangkaian data antar objek-objek yang saling berinteraksi.
1. Sequence Diagram Kirim Pesan
(65)
2. Sequence Diagram Baca Kotak Masuk
Gambar 3.9. Diagram Sequence Baca Kotak Masuk
3. Sequence diagram Setting
(66)
4. Sequence Diagram Pilih Pesan
Gambar 3.11. Diagram Sequence Pilih Pesan
5. Sequence Diagram Lakukan Dekripsi
(67)
6. Sequence Diagram Lakukan Enkripsi
Gambar 3.13. Diagram Sequence Lakukan Enkripsi
D. Class Diagram
Class Diagram menggambarkan struktur dan hubungan antar objek-objek yang ada pada sistem. Struktur itu meliputi atribut-atribut dan metode-metode yang ada pada masing-masing kelas. Adapun gambaran class diagram dari aplikasi SMS Secure yang dibangun dapat dilihat
(68)
Gambar 3.14. Class Diagram Aplikasi SMS Secure
3.4 Perancangan Sistem
Perancangan akan dimulai setelah tahap analisis terhadap sistem selesai dilakukan. Perancangan dapat didefinisikan sebagai proses aplikasi berbagai teknik dan prinsip bagi tujuan pendefinisian suatu perangkat, suatu proses atau sistem dalam detail yang memadai untuk memungkinkan realisasi fisiknya. Perancangan digambarkan sebagai proses multi-langkah dimana representasi struktur data, struktur program, karakteristik interface, dan detail prosedur, disintesis dari persyaratan informasi.
(69)
3.4.1 Perancangan Data
Perancangan data merupakan tahapan untuk memetakan model konseptual ke model basis data yang akan digunakan. Perancagan data dari aplikasi mobile SMS Sequre merupakan perancangan struktur tabel dari tabel key. Struktur tabel key menggambarkan detail tabel yang berisi field,tipe data,panjang data, dan keterangan lainnya. Berikut ini gambaran struktur tabel pengaturan yang terlihat pada tabel 3.15.
Tabel 3.19. Perancangan Data tbKey
3.4.2 Perancangan Struktur Menu
Perancangan struktur menu merupakan gambaran jalur pemakaian aplikasi. Perancangan struktur menu dari aplikasi secure message dapat dilihat pada gambar 3.12.
Nama Field Tipe Data Ukuran Keterangan
Iddata integer 11 Primary key dtDate date
dtTime time
No_sender varchar 12
No_receiver varchar 12
(70)
Gambar 3.15. Struktur Menu Aplikasi SMS Secure 3.4.3 Perancangan Grafis dan Antarmuka
Tahap perancangan desain bertujuan untuk mencari bentuk yang optimal dari aplikasi yang akan dibangun dengan pertimbangan faktor-faktor permasalahan dan kebutuhan yang ada pada sistem seperti yang telah ditetapkan pada tahap analisis. Dalam tahap ini upaya yang dilakukan yaitu dengan cara mengkombinasikan penggunaan teknologi perangkat keras dan perangkat lunak yang tepat sehingga diperoleh yang optimal dan mudah diimplementasikan. Perancangan grafis dan antarmuka terdiri dari satu bagian utama yaitu desain grafis dan antarmuka frontend application.
(71)
1. Form S01 halaman menu utama
(72)
2. Form S02 halamanTulis Pesan
(73)
3. Form S03 halaman Tentang
(74)
4. Form S04 Halaman Kotak Masuk
(75)
5. Form Halaman Dekripsi Pesan
(76)
6. Form Halaman Setting
(77)
3.4.4 Jaringan Semantik
Jaringan semantik merupakan gambaran pengetahuan grafis yang mana menunjukan hubungan antar objek (lingkaran) dan grafis yang menggambarkan formasi antar objek tersebut. Adapun jaringan semantik untuk mobile pada aplikasi ini dapat dilihat pada gambar 3.22
Gambar 3.22. Jaringan Semantik
Keterangan :
S01 : Halaman Menu Utama S02 : Halaman Tulis Pesan S03 : Halaman Tentang S04 : Halaman Kotak Masuk
S05 : Halaman Form Dekripsi Pesan S06 :HalamanSetting
(78)
68 4.1 Implementasi
Tahap implementasi sistem merupakan tahap penterjemahan perancangan berdasarkan hasil analisis ke dalam suatu bahasa pemrograman tertentu serta penerapan perangkat lunak yang dibangun pada lingkungan yang sesungguhnya. Adapun pembahasan implementasi terdiri dari perangkat lunak pembangun, perangkat keras pembangun, dan implementasi antarmuka.
4.1.1 Perangkat Lunak Pembangun
Perangkat lunak pembangun menjelaskan perangkat lunak yang digunakan untuk membangun aplikasi SMS Secure berbasis mobile. Adapun perangkat lunak yang digunakan untuk membangun aplikasi ini adalah sebagai berikut :
1. Java Development kit versi 6 atau 7, untuk kompilasi kode-kode program 2. Java Runtime Edition, sebagai platform untuk menjalankan sistem
3. Eclipse, sebagai perangkat lunak yang digunakan untuk membangun aplikasi client pada android
4. Android SDK, untuk pengembangan aplikasi android
5. Android Development Tool, sebagai plugin android pda eclipse
6. Android Virtual Device, sebagai emulator untuk menjalankan sistem android
(79)
4.1.2 Perangkat Keras Pembangun
Perangkat keras pembangun menjelaskan perangkat keras yang digunakan untuk membangun aplikasi SMS Secure berbasis mobile. Adapun perangkat keras yang digunakan untuk membangun aplikasi ini adalah sebagai berikut :
1. rocessor Intel dual Core 2,4 Ghz 2. Kapasitas Ram 4 GB
3. Kapasitas Hardisk 320 GB 4. Monitor
5. Keyboard dan mouse 4.1.3 Batasan Implementasi
Batasan dalam melakukan implementasi aplikasi SMS Secure berbasis mobile adalah sebagai berikut :
1. Aplikasi SMS Secure ini akan berjalan minimal pad OS Android 2.3 2. Aplikasi ini akan diimplementasikan secara online menggunakan
perangkat android yang terhubung dengan jaringan internet. 4.1.4 Implementasi Kelas
Setiap kelas pada aplikasi diimplementasikan dalam bahasa java, dimana setiap kelas utama akan diimplementasikan dalam sebuah file. Kelas yang diimplementasikan mengacu pada perancangan yang telah dilakukan
(80)
4.1.4.1 Kelas Pada Aplikasi Android
Tabel 4.1. Daftar Implementasi Kelas Aplikasi SMS Secure
Nama File Fisik Nama Kelas
a_class_HTTP_SendData.java a_class_HTTP_SendData
a_class_HTTP.java a_class_HTTP
About.java About
Baca_sms.java Baca_sms
inbox.java inbox
RC6.java RC6
setting.java setting
SMS.java SMS
Tulis_pesan.java Tulis_pesan
4.1.5 Implementasi Basis Data
Pembuatan database dilakukan dengan menggunakan aplikasi DBMS MySQL. Implementasi database dalam bahasa SQL adalah sebagai berikut :
(81)
CREATE TABLE tbkey (
idData INTEGER(11) AUTO INCREMENT dtDate VARCHAR(10) NULL,
dtTime VARCHAR(8) NULL, no_sender VARCHAR(12) NULL, no_receiver VARCHAR(12) NULL, dtKey VARCHAR(100) NULL, PRIMARY KEY (idData) );
ENGINE=Myisam
4.1.6 Implementasi Antarmuka
Implementasi antarmuka berisi pemaparan setiap tampilan aplikasi SMS Secure berbasis mobile yang dibangun sebagai layout dari masing-masing antarmuka seperti terlihat pada tabel 4.2
Tabel 4.2.Implementasi Antarmuka Aplikasi SMS Secure
No Halaman Dekripsi
1 Main Menu Halamn Berisi Menu Utama
2 Tulis Pesan Halaman Form Penulisan Pesan Dan proses Enkripsi 3 Kotak Masuk Halaman Daftar List Pesan yang Masuk
4 Tentang Halaman Berisi Biodata Peneliti 5 Form dekripsi Halaman Proses Dekripsi
(82)
1. Halaman Menu Utama
Halaman menu yang muncul pertama kali ketika membuka aplikasi, Pada tampilan menu utama terdapat 3 pilihan menu yaitu :
a) Tulis pesan b) Kotak Masuk c) Tentang
Gambar 4.1. Antarmuka halaman Menu Utama
(83)
2. Halaman Tulis pesan
Pada halaman ini aplikasi menampilkan form untuk menulis pesan dan untuk proses enkripsi pesan singkat tersebut.
(84)
3. Halaman Kotak Masuk
Pada halaman ini aplikasi menampilkan daftar pesan yang masuk baik pesan yang terenkripsi maupun pesan yang tidak terenkripsi.
(85)
4. Halaman Tentang
Pada halaman ini aplikasi menampilkan biodata peneliti atau pembuat aplikasi.
(86)
5. Halaman Form Dekripsi
Pada halaman ini aplikasi menampilkan form untuk melakukan proses dekripsi pesan singkat tersebut. Halaman ini akan muncul setelah pengguna memilih pesan yang terenkripsi yang berada di halaman kotak masuk.
(87)
6. Halaman Setting
Pada halaman ini aplikasi menampilkan form untuk mendaftarkan no telepon pengguna aplikasi ke database server.
(88)
Gambar 4.7. Gambar Tbkey
(89)
4.2 Pengujian
4.2.1 Pengujian Alpha
Untuk melakukan pengujian dari sistem yang dibangun yaitu aplikasi SMS Secure dengan platform andoroid, dibuat sebuah mekanisme pengujian yang tercantum dalam rencana pengujian yang digolongkan oleh jenis pengguna
4.2.1.1 Rencana Pengujian
Pengujian dilakukan dengan menguji setiap proses use case diagram dan kemungkinan kesalahan yang terjadi untuk setiap proses. Pengujian ini dilakukan secara black box, yaitu dilakukan dengan memperhatikan masukan sistem dan keluaran dari sistem.
a) Rencana pengujian aplikasi mobile
Tabel 4.3. Rencana pengujian aplikasi SMS Secure
No Menu yang diuji Detail Pengujian Jenis uji
1
Menu Setting Mendaftarkan no telepon pengguna aplikasi ke database server
Black box
2
Menu tulis pesan Menulis pesan dan mengenkripsi pesan serta meminta kunci ke database server
Black box
3
Menu Kotak Masuk Memilih pesan dan mendekripsi pesan singkat yang terenkripsi tersebut
(90)
4.2.1.2 Hasil Pengujian A. Setting
Tabel 4.4. Hasil Pengujian Setting
Deskripsi Prosedur Pengujian
Input Hasil Yang Di Harapkan Hasil Yang didapat Kesimpulan Pengujian Input
Input No Telepon Pengguna
No Hp
Pengguna
Dapat Menginput no telepon pada form halaman setting
Berhasil menginput no telepon pengguna pada form halaman setting
Diterima
Simpan No Telepon
No Hp
Pengguna
Menampilka n pesan jika no telepon sudah tersimpan
Muncul pesan bahwa no telepon telah tersimpan
(91)
B. Tulis Pesan
Tabel 4.5. Hasil Pengujian Tulis Pesan
Deskripsi Prosedur
Pengujian
Input Hasil Yang Di
Harapkan Hasil Yang didapat Kesimpulan Mengisi Form Tulis Pesan
Menulis Pesan Pesan yang akan dikirim
Dapat mengisi seluruh inputan di form tulis pesan
Form tulis pesan dapat terisi oleh inputan dari user
Diterima
Meminta Key Menampilkan
kunci dari database server
Kunci dari database server di dapatkan
Diterima
Enkripsi Pesan Pesan yang Akan Dikirim
Menampilkan kunci dan hasil enkripsi
Kunci untuk enkripsi didapatkan dan proses enkripsi berjalan
Diterima
Mengirim pesan
Pesan terkirim ke Penerima Penerima mendapat notifikasi pesan masuk Diterima
(92)
C. Kotak Masuk
Tabel 4.6. Hasil Pengujian Kotak Masuk
4.2.1.3 Kesimpulan Pengujian Alpha
Berdasarkan hasil pengujian aplikasi yang dilakukan maka dapat disimpulkan bahwa aplikasi SMS Secure berbasis mobile pada platform android yang dibangun sudah berjalan sesuai dengan yang diharapkan baik itu dari segi validasi maupun penanganan masalah.
Deskripsi Prosedur Pengujian
Input Hasil Yang Di Harapkan Hasil Yang didapat Kesimpulan Memilih Pesan Memilih Pesan masuk yang akan di enkripsi
Masuk ke Halaman dekripsi
Aplikasi menampilk an form dekripsi
Diterima
Deskripsi Pesan
Mendekripsi pesan masuk yang sudah terenkripsi
Menampilka n hasil dekripsi pesan
Pesan yang terenkripsi berubah menjadi pesan asli kembali
(1)
B. Tulis Pesan
Tabel 4.5. Hasil Pengujian Tulis Pesan
Deskripsi Prosedur Pengujian
Input Hasil Yang Di Harapkan Hasil Yang didapat Kesimpulan Mengisi Form Tulis Pesan
Menulis Pesan Pesan yang akan dikirim
Dapat mengisi seluruh inputan di form tulis pesan
Form tulis pesan dapat terisi oleh inputan dari user
Diterima
Meminta Key Menampilkan
kunci dari database server
Kunci dari database server di dapatkan
Diterima
Enkripsi Pesan Pesan yang Akan Dikirim
Menampilkan kunci dan hasil enkripsi
Kunci untuk enkripsi didapatkan dan proses enkripsi berjalan
Diterima
Mengirim pesan
Pesan terkirim ke Penerima Penerima mendapat notifikasi pesan masuk Diterima
(2)
C. Kotak Masuk
Tabel 4.6. Hasil Pengujian Kotak Masuk
4.2.1.3 Kesimpulan Pengujian Alpha
Berdasarkan hasil pengujian aplikasi yang dilakukan maka dapat disimpulkan bahwa aplikasi SMS Secure berbasis mobile pada platform android yang dibangun sudah berjalan sesuai dengan yang diharapkan baik itu dari segi validasi maupun penanganan masalah.
Deskripsi Prosedur Pengujian
Input Hasil Yang Di Harapkan
Hasil Yang didapat
Kesimpulan
Memilih Pesan
Memilih Pesan masuk yang akan di enkripsi
Masuk ke Halaman dekripsi
Aplikasi menampilk an form dekripsi
Diterima
Deskripsi Pesan
Mendekripsi pesan masuk yang sudah terenkripsi
Menampilka n hasil dekripsi pesan
Pesan yang terenkripsi berubah menjadi pesan asli kembali
(3)
4.2.2 Pengujian Beta
Pengujian beta dilakukan dilingkunagn pengguna tanpa kehadiran pihak pembangun aplikasi. Pengujian ini merupakan pengujian yang bersifat langsung dilingkungan yang sebenarnya. Pengguna ,elakukan penilaian terhadapaplikasi dengan menggunakan media kuisioner. Dari hasil kuesioner tersebut maka dapat ditarik kesimpulan apakah aplikasi yang dibangun telah sesuai dengan tujuan atau tidak.
4.2.2.1 Kuesioner Pengujian Beta
Kuesioner pengujian beta merupakan media yang digunakan pengguna Aplikasi SMS Secure untuk memberikan penilaian terhadap aplikasi yang dibangun. Kuesioner ini disebarkan menghunakan teknik sampling yaitu Simple Random Sampling yang disebarkan kepada banyak pengguna. Dari hasil kuesioner tersebut akan dilakukan perhitungan agar dapat diambil kesimpulan terhadap penilaian penerapan aplikasi yang dibangun. Kuesioner ini terdiri dari 6 pertanyaan. Adapun pertanyaan, jawaban, dan hasil dari kuesioner pengujian beta adalah sebagai berikut :
a. Pertanyaan
Berikut ini adalah pertanyaan yang diajukan kepada pengguna dalam melakukan pengujian aplikasi ini:
1. Apakah anda pengguna handphone ber-platform android?
2. Bagaimana Pemndapat anda terkait keamanan konten SMS yang anda miliki
3. Aplikasi ini mengurangi kemudahan anda dalam ber-SMS.
4. Bagaimana pendapat anda jika dikembangkan Palikasi untuk Merubah isi pesan.
5. Apakah aplikasi ini memberikan keamanan dalam hal konten data sms yang anda kirimkan
(4)
4.2.2.2 Hasil kuesioner
Tabel 4.7. Tabel hasil Kuisioner
No Pertanyaan Jawaban
1. Apakah Anda Pengguna Handphon Android?
YA TIDAK
10 % 6,7%
2.
Bagaimana Pendapat anda terkait
Keamanan konten SMS yang anda miliki.
a. Belum cukup aman
b. Isi pesan masih bisa dibaca oleh pihak lain
3a. aplikasi ini mengurangi
Kemudahan anda dalam ber-SMS
Sangat Setuju 1,3%
Setuju 4%
Kurang Setuju 6,7% 3b. Bagaimana pendapat anda ji
dikembangkan aplikasi untuk merubah pesan
a. Bagus, dengan adanya aplikasi tersebut diharapkan
dapat meningkatkan keamanan dalam ber-SMS
b. Tidak terlalu dibutuhkan 4. Apakah aplikasi ini memberikan
keamanan dalam hal konten data SMS yang anda kirimkan
Sangat Setuju 4%
Setuju 6,7%
Kurang Setuju 1,3% 5. Bagaimana pendapat anda
mengenai Tampilan Aplikasi ini
a. Cukup menarik b. Mudah digunakan
(5)
4.2.2.2.1 Kesimpulan Hasil Kuisioner
Kebanyakan pengguna handphone android menilai jika keamanan konten SMS yang dimiliki masing-masing pengguna belum cukup aman, dan merasa jika isi pesan masih bias di baca oleh pihak yang tidak berhak. Aplikasi ini juga mudah digunakan sehingga pengguna mudah memahami aplikasi ini. Beberapa pengguna juga menilai baik dengan adanya pengembangan mengenai aplikasi enkripsi pesan singkat.
(6)
86
5.1. Kesimpulan
Beberapa kesimpulan yang dapat penulis ambil dari penulisan skripsi dan perancangan sistem ini adalah sebagai berikut :
Dengan adanya Aplikasi enkripsi dan dekripsi sms ini user dapat menggunakan aplikasi yang lebih aman untuk pertukeran data (sms ) agar privasi pengguna lebih terjamin dan isi pesan tidak di ketahui oleh orang yang tidak berkepentingan.
5.2. Saran
Beberapa saran yang dapat penulis sampaikan dari penulisan skripsi dan perancangan sistem ini, juga berkaitan dengan pengembangan sistem selanjutnya adalah sebagai berikut:
1. Menambahkan notifikasi pada aplikasi ketika menerima sms baru untuk mempercepat dekripsi.
2. Agar Aplikasi ini lebih aman,untuk pengembangan selanjutnya pengembang merubah layout aplikasi ini dengan tidak menampilkan kunci dan hasil enkripsi maupun dekripsi.