TUGAS AKHIR
MHD JERRY PRABOWO 152406106
PROGRAM STUDI D3 TEKNIK INFORMATIKA
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM UNIVERSITAS SUMATERA UTARA
MEDAN 2018
ENKRIPSI DAN DEKRIPSI DENGAN MENGGUNAKAN METODE BASE64 BERBASIS ANDROID
TUGAS AKHIR
Diajukan untuk melengkapi tugas dan memenuhi syarat memperoleh Ahli Madya
MHD JERRY PRABOWO 152406106
PROGRAM STUDI D3 TEKNIK INFORMATIKA
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM UNIVERSITAS SUMATERA UTARA
MEDAN 2018
ENKRIPSI DAN DEKRIPSI DENGAN MENGGUNAKAN METODE BASE64 BERBASIS ANDROID
TUGAS AKHIR
Saya menyatakan bahwa laporan tugas akhir ini adalah hasil karya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing disebutkan sumbernya.
Medan, Juni 2018
Mhd Jerry Prabowo 152406106
PERSETUJUAN LAPORAN TUGAS AKHIR
Judul : Enkripsi dan Dekri[si dengan Menggunakan Metode Base64 Berbasis Android
Kategori : Tugas Akhir
Nama : Mhd Jerry Prabowo
Nomor Induk Mahasiswa : 152406106
Program Studi : Diploma 3 Teknik Informatika Fakultas : MIPA – Universitas Sumatera Utara
Disetujui di Medan, Juni 2018
Ketua Program Studi Pembimbing
Dra. Normalina Napitupulu, M.Sc Ulfi Andayani, S.Kom., M.Kom NIP. 196311061989022001 NIP. 198604192015042004
ABSTRAK
ENKRIPSI DAN DEKRIPSI DENGAN MENGGUNAKAN METODE BASE64 BERBASIS ANDROID
Oleh :
Mhd Jerry Prabowo (152406106)
Masalah keamanan salah satu aspek penting dalam suatu sistem, tetapi sering kali keamanan suatu sistem diabaikan. Sering kali pada perancangan masalah suatu sistem, keamanan berada diurutan setelah tampilan atau bahkan berada diurutan terakhir dari daftar hal-hal yang dianggap penting dari suatu sistem. Tujuan utama dari aplikasi ini adalah untuk memudahkan dalam melakukan enkripsi serta dekripsi data dalam penyandian menggunakan kriptogtafi base64.
Terdapat beberapa tahapan dalam pembuatan aplikasi ini, yaitu analisa, perancangan, proses pengerjaan dan evaluasi terhadap model program yang telah dihasilkan. Tujuan utama dari aplikasi ini adalah untuk memudahkan dalam melakukan enkripsi serta dekripsi data dalam penyandian.
Kata Kunci: Kriptografi, Enkripsi, Dekripsi, Keamanan
ABSTRACT
ENCRYPTION AND DECRYPTION USING BASE64 METHODS BASED ON ANDROID Submitted by
Mhd Jerry Prabowo (152406106)
Security issues are an important aspect of a system, but often the security of a system is ignored. Often on the design of the problem of a system, security is ranked after display or even in the last order of the list of things that are considered important of a system. The main purpose of this application is to facilitate the encryption and decryption of data in the encryption using base64 cryptogtafi.
There are several stages in making this application, namely analysis, design, process
workmanship and evaluation of the program model that has been produced. The main purpose of this application is to facilitate the encryption and decryption of data in the encoding.
Keywords: Cryptography, Encryption, Decryption, Security
PENGHARGAAN
Puji dan syukur penulis panjatkan kepada Tuhan Yang Maha Pemurah dan Maha Penyayang, dengan limpah karunia-Nya Penulis dapat menyelesaikan penyusunan laporan tugas akhir ini dengan judul Enkripsi dan Dekripsi dengan Menggunakan Metode Base64 Berbasis Android.
Terima kasih penulis sampaikan kepada Ibu Ulfi Andayani, S.Kom., M.Kom selaku pembimbing yang telah meluangkan waktunya selama penyusunan laporan tugas akhir ini.
Terima kasih kepada Ibu Dra. Normalina Napitupulu, M.Sc dan Bapak Drs. James Piter Marbun, M.Kom selaku ketua program studi dan sekertaris program studi D3 Teknik Informatika FMIPA-USU Medan, dekan dan wakil dekan FMIPA USU, seluruh staf dan dosen Program studi D3 Teknik Informatika FMIPA USU, pegawai dan rekan-rekan kuliah. Akhirnya tidak terlupakan kepada Bapak, Ibu dan keluarga yang selama ini memberikan bantuan dan dorongan yang diperlukan. Semoga Tuhan Yang Maha Esa akan membalasnya.
Medan, Juni 2018
Mhd Jerry Prabowo
DAFTAR ISI
Halaman
PERSETUJUAN LAPORAN TUGAS AKHIR i
ABSTRAK ii
ABSTRACT iii
PENGHARGAAN iv
DAFTAR ISI v
DAFTAR TABEL vii
DAFTAR GAMBAR viii
DAFTAR LAMPIRAN ix
DAFTAR SINGKATAN x
BAB 1. PENDAHULUAN
1.2 Latar Belakang 1
1.2 Rumusan Masalah 2
1.3 Batasan Masalah 3
1.4. Tujuan Penelitian 3
1.5. Manfaat Penelitian 3
1.6. Metodologi 3
1.7. Sistematika Penulisan 5
BAB 2. LANDASAN TEORI
2.1. Algoritma Base64 6
2.2. Sistem Operasi Android 8
2.3. Platform Android 9
2.4. Java 10
2.5. AndroidStudio 10
2.6. Flowchart 11
BAB 3. ANALISIS PERANCANGAN SISTEM
3.1. Analisis Sistem 15
3.1.1. Tempat dan Waktu Penelitian 16
3.1.2. Tahapan Kegiatan Penelitian 16
3.1.3. Metode Pengumpulan Data 17
3.1.4. Metode Penelitian 17
3.1. Perancangan Sistem 18
3.2.1. Flowchart Aplikasi 19
3.2.2. Diagram Konteks Sistem 20
4.2.1. Perangkat Keras 21
4.2.2. Perangkat Lunak 21
4.3. Tampilan Aplikasi 22
4.3.1. Logo Aplikasi 22
4.3.2. Tampilan Splash Screen 23
4.3.3. Tampilan Home 24
4.3.4. Tampilan Menu Enkripsi 25
4.3.5. Tampilan dari Menu Dekripsi 31
4.3.6. Tampilan Tentang 35
BAB 5. PENUTUP
5.1. Kesimpulan 36
5.2. Saran 36
DAFTAR PUSTAKA LAMPIRAN
DAFTAR TABEL
Nomor Judul Halaman
Tabel
2.1. Simbol Flowchart 12
3.1. Wakt dan Pelaksanaan Penelitian 16
Nomor Judul Halaman Gambar
2.1. Tabel Base64 7
3.1. Flowchart Aplikasi 19
4.1. Tampilan dari Logo Aplikasi 22
4.2. Tampilan Splashscreen 22
4.3. Tampilan Home 23
4.4. Tampilan Menu Enkripsi 25
4.5. Tampilan Menu Dekripsi 31
4.6. Tampilan Tentang 36
DAFTAR LAMPIRAN
Nomor Judul Halaman
Lampiran
1. Listing Program 42
2. Surat Keterangan Dosen Pembimbing Tugas Akhir 42
3. Surat Keterangan Hasil Uji Program Tugas Akhir 43
4. Kartu Bimbingan Tugas Akhir 44
AVD = Android Virtual Device
SDK = Android Software Development Kit
JDK = Java Development Kit
API = Application Programming Interface
BAB 1 PENDAHULUAN
1.1 Latar Belakang
Masalah keamanan salah satu aspek penting dalam suatu sistem, tetapi sering kali keamanan suatu sistem dikesampingkan. Sering kali pada perancangan suatu sistem, keamanan berada diuru-tan setelah tampilan atau bahkan berada diurutan terakhir dari daftar hal-hal yang dianggap penting dari suatu sistem. Apabila mengganggu performansi dari sistem, seringkali masalah keamanan tidak begitu dipedulikan, bahkan ditiadakan Aplikasi mobile merupakan salah satu hasil dari perkembangan teknologi di dunia. Aplikasi yang dulunya hanya untuk perangkat komputer, sekarang ini sudah ada aplikasi untuk perangkat genggam seperti PDA atau telepon selular. Aplikasi mobile sangat mudah untuk didapatkan melalui Play Store dari berbagai platform (iOS, Android, BlackBerry, atau Windows Phone). Dengan diciptakannya aplikasi dalam bentuk mobile, maka kiranya aplikasi tersebut dapat lebih mempermudah manusia dalam menjalani kehidupan sehari-hari. Aplikasi mobile dapat digunakan sebagai saluran untuk berbagi informasi terkait pekerjaan atau yang lainnya. Dengan demikian, maka para penggunanya akan merasa dimudahkan.
Arti kata kriptografi berasal dari bahasa yunani, yaitu kripto dan graphia. Arti dari kata Kripto adalah secret (rahasia) dan arti dari kata graphia adalah writing (tulisan). Berdasarkan dari terminologinya, kriptografi merupakan ilmu dan seni yang digunakan untuk menjaga keamanan pesan yang dikirim dari suatu tempat ke tempat yang lain. Algoritma kriptografi terdiri dari tiga fungsi dasar, diantaranya enkripsi, dekripsi, dan kunci. Algoritma dapat dibagi menjadi tiga bagian berdasarkan kunci yang dipakainya yaitu algoritma simetri, algoritma asimetri, hash function.
Transformasi Base64 adalah salah satu algoritma untuk encoding dan decoding suatu data kedalam format ASCI, yang di dasarkan pada bilangan 64. karakter yang dihasilkan dari Base64 teridiri dari A-Z , a-z dan 0..9, serta ditambah dengan 2 karakter terakhir yaitu / dan +. ( Zirroto, 2008)
Penulis menggunakan bantuan software Android Studio sebagai pertimbangan untuk membuat aplikasi Enkripsi dan Dekripsi menggunakan Metode Base64 berbasis Android karena memiliki kelebihan salah satunya, Android Studio dilengkapi dengan emulator yang mencakup semua devices, baik ukuran maupun bentuk. Keunggulan tersebut jelas memudahkan developer untuk melihat hasil project mereka dari berbagai devices yang ada.
Oleh sebab itu, penulis mencoba mencari solusi untuk membuat sistem baru yaitu dengan menggunakan aplikasi Enkripsi dan Dekripsi menggunakan Metode Base64 berbasis Android, msyarakat dapat dengan mudah untuk mengenkripsi dan mendekripsi sandi untuk keamanan system.
1.2 Rumusan Masalah
Berdasarkan permasalahan yang diuraikan di atas, perlu adanya aplikasi enkripsi dan dekripsi untuk membaca sandi tertentu dalam system keamanan maupun dalam mempelajari proses enkripsi serta dekripsi.
1.3 Batasan Masalah
Dalam merancang sistem ini ada beberapa batasan masalah yang ditemukan, diantaranya : 1. Hanya enkripsi dan dekripsi pada system menggunakan metode base64.
2. Ditujukan untuk pengguna yang ingin memperdalam kriptografi dengan metode base64.
3. Menggunakan Android dan Java Programming.
1.4 Tujuan Penelitian
Dalam penyusunan tugas akhir ini tujuan yang dicapai dalam ini adalah : 1. Mengembangkan aplikasi keamanan penyandian.
2. Merancang sistem membaca sandi dengan enkripsi dan dekripsi
1.5 Manfaat Penelitian
Manfaat yang diperoleh dari Enkripsi dan Dekripsi dengan Menggunakan Metode Base64 Berbasis Android, yaitu:
3
1. Sebagai media penyandian menggunakan smartphone.
2. Sebagai media pembelajaran membaca sandi dengan metode base64.
1.6 Metodologi Penelitian
Dalam menyusun tugas akhir ini penulis melakukan penerapan metode penelitian dalam memperoleh data-data yang dibutuhkan sehingga penyusunan tugas akhir ini dapat diselesaikan dengan baik. Adapun metode penelitian yang dilakukan adalah sebagai berikut :
1. Pengumpulan Data
Pengumpulan data-data yang erat kaitannya dengan permasalahan yang terjadi diatas dengan cara membaca buku-buku, informasi online dan membaca bahan-bahan dari sumber lainnya.
2. Identifikasi Masalah
Identifikasi masalah dilakukan dengan melihat dari data yang sudah terkumpul dan penulis mengangkatnya kedalam sebuah solusi yang telah dijadikan judul.
3. Perancangan Aplikasi
Perancangan aplikasi yaitu melakukan desain dan koding untuk Enkripsi dan Dekripsi dengan Menggunakan Metode Base64 berbasis Android.
4. Pengujian
Menguji perancangan untuk Enkripsi dan Dekripsi dengan Menggunakan Metode Base64 berbasis Android setelah aplikasinya terbentuk. Tahap ini dilakukan untuk mengetahui apakah sistem sudah berjalan dengan baik atau masih terdapat kesalahan/ error.
5. Peyusunan Laporan
Pada tahap ini dilakukan pembuatan laporan dari perancangan untuk Enkripsi dan Dekripsi dengan Menggunakan Metode Base64 berbasis Android berupa tugas akhir.
1.7 Sistematika Penulisan
Agar dapat memberikan gambaran yang jelas pada penulisan tugas akhir ini, maka penulis membaginya dalam beberapa bab sebagai berikut :
BAB 1 : PENDAHULUAN
Bab ini menguraikan tentang latar belakang pembangunan aplikasi, perumusan masalah, batasan masalah, tujuan penelitian, manfaat penelitian, metodologi penelitian, hingga sistematika penulisan tugas akhir ini.
BAB 2 : LANDASAN TEORI
Bab ini menguraikan tentang teori-teori dasar dalam pembangunan aplikasi android ini. Mulai dari pengertian Android serta apa-apa saja yang dibutuhkan untuk memulai pemrograman mobile android.
BAB 3 : ANALISIS DAN PERANCANGAN SISTEM
Bab ini menguraikan mengenai analisis dan perancangan sistem mulai dari perancangan layout, diagram konteks sistem, hingga flowchart sistem BAB 4 : IMPLEMENTASI SISTEM
Bab ini menguraikan tentang bagaimana proses lanjutan dari perancangan sistem.
BAB 5 : KESIMPULAN DAN SARAN
Bab ini menguraikan tentang kesimpulan dan saran yang dikutip oleh penulis selama proses pembangunan aplikasi.
BAB 2
LANDASAN TEORI
2.1 Algoritma Base64
Transformasi base64 merupakan salah satu algoritma untuk encoding dan decoding suatu datake dalam format ASCII, yang didasarkan pada bilangan dasar 64 atau bisa dikatakan sebagai salah satu metoda yang digunakan untuk melakukan encoding (penyandian) terhadap data binary. Karakter yang dihasilkan pada transformasi base64 ini terdiri dari A..Z, a..z dan 0..9, serta ditambah simbol “+” dan
“/” serta satu buah karakter sama dengan (=) di dua karakter terakhir yang dipakai untuk pengisian pad atau dengan kata lain penyesuaian dan menggenapkan data binary. Karakter simbol yang akan dihasilkan akan tergantung dari proses algoritma yang berjalan. [6]
Kriptografi transformasi base64 banyak digunakan di dunia Internet sebagai media data format untuk mengirimkan data, penggunaan tersebut dikarenakan hasil dari encode base64 berupa plaintext, maka data ini akan jauh lebih mudah dikirim, dibandingkan dengan format data yang berupa binary. Algoritma base64 menggunakan kode ASCII dan kode index base64 dalam melakukan proses enkripsi ataupun dekripsinya. Dalam melakukan enkripsi pada URL website, kode index base64 perlu dimodifikasi. Simbol “+” dimodifikasi menjadi “-” dan simbol simbol
“/” menjadi “_”. Tabel index base64 dapat dilihat pada tabel 2.1 dan tabl 2.2.
Tabel 2.1 Kode Index Base64 (URL and Filename Safe)
Value Encoding Value Encoding Value Encoding Value Encoding
0 A 16 Q 32 g 48 w
1 B 17 R 33 h 49 x
2 C 18 S 34 i 50 y
3 D 19 T 35 j 51 z
4 E 20 U 36 k 52 0
5 F 21 V 37 l 53 1
6 G 22 W 38 m 54 2
7 H 23 X 39 n 55 3
8 I 24 Y 40 o 56 4
9 J 25 Z 41 p 57 5
10 K 26 a 42 q 58 6
11 L 27 b 43 r 59 7
12 M 28 c 44 s 60 8
13 N 29 d 45 t 61 9
14 O 30 e 46 u 62 -
15 P 31 f 47 v 63 _
(pad) =
8
Tabel 2.2 Kode Index Base64
Menurut Ariyus (2008) yang dikutip oleh Wahyu [6], teknik enkripsi base64 sebetulnya sederhana, jika terdapat sebuah (string) bytes yang akan disandikan ke algoritma base64 maka tahapannya yaitu:
1. Pecah string bytes tersebut ke per-3 bytes.
2. Gabungkan 3 bytes menjadi 24 bit. dengan catatan 1 bytes = 8 bit, sehingga 3 x 8 = 24 bit.
3. Lalu 24 bit yang disimpan di-buffer (disatukan) dipecah-pecah menjadi 6 bit, maka akan menghasilkan 4 pecahan.
4. Masing masing pecahan diubah ke dalam nilai desimal, dimana maksimal nilai 6 bit dalah 63.
5. Terakhir, jadikan nilai-nilai desimal tersebut menjadi index untuk memilih maksimal index ke 64 atau karakter ke 63 dari penyusun base64.
Dan seterusnya hingga akhir string bytes yang akan mengalami konversi. Apabila dalam proses encoding terdapat sisa pembagi, maka tambahkan karakter pad (=) sebagai penggenap sisa tersebut. Oleh karena itu, terkadang pada base64 akan muncul satu atau dua karakter (=).
2.2 Proses Enkripsi dan Dekripsi
Enkripsi yaitu suatu proses pengaman suatu data yang disembunyikan atau proses konversi data ( plaintext ) menjadi bentuk yang tidak dapat dibaca/
dimengerti. Enkripsi telah digunakan untuk mengamankan komunikasi di berbagai negara, namun, hanya organisasi-organisasi tertentu dan individu yang memiliki kepentingan yang sangat mendesak akan kerahasiaan yang menggunakan enkripsi. Di pertengahan tahun 1970an enkripsi kuat dimanfaatkan untuk pengamanan oleh sekretariat agen pemerintah Amerika Serikat pada domain publik, dan saat ini enkripsi telah digunakan pada sistem secara luas, seperti Internet, e-commerce, jaringan telepon bergerak dan ATM pada bank.
Enkripsi dapat digunakan untuk tujuan keamanan, tetapi teknik lain masih diperlukan untuk membuat komunikasi yang aman, terutama untuk memastikan integrasi dan autentikasi dari sebuah pesan. Untuk menampilkan enkripsi dan kebalikannya dekripsi, digunakan algoritma yang biasa disebut Cipher dengan menggunakan metode serangkaian langkah yang terdefinisi yang diikuti sebagai prosedur. Alternatif lain ialah Encipherment. Informasi yang asli disebuh sebagai plaintext, dan bentuk yang sudah dienkripsi disebut sebagai chiphertext. Pesan chipertext berisi seluruh informasi dari pesan plaintext, tetapi tidak dalam format yang didapat dibaca manusia ataupun komputer tanpa menggunakan mekasnisme yang tepat untuk melakukan dekripsi.Sedangkan Dekripsi yaitu kebalikan dari proses enkripsi yaitu proses konversi data yang sudah dienkripsi ( ciphertext ) kembali menjadi data aslinya ( Original Plaintext ) sehingga dapat dibaca/ dimengerti kembali.
10
2.3 Sistem Operasi Android
Sejarah sistem operasi Android dimulai sejak diumumkannya Open Handset Alliancedi akhir tahun 2007. Sebenarnya ide untuk membuat sistem operasi open source untuk peranti embedded sudah ada sejak lama. Karena backing dari Google yang sangat agresiflah, maka Android bisa sangat terkenal hanya dalam beberapa tahun saja. Beberapa perusahaan telekomunikasi, kini mulai memiliki atau menawarkan perangkat android dalam produk-produknya. Tidak hanya ponsel, tapi perangkat lain seperti tablet, netbook, televise, bahkan hingga ke peranti embedded di mobile memiliki sistem operasi android. Sebenarnya android pada awalnya tidak dikembangkan oleh google, tapi dikembangkan oleh google, tapi dikembangkan oleh sebuah perusahaan bernama Android Inc. Karena google melihat banyaknya user yang online dengan perangkat mobile maka google mengira bahwa perangkat mobile ini memiliki masa depan yang cerah. Sehingga Android Inc dikuasaioleh Google di tahun 2005. Pada waktu yang sama, Apple di tahun 2007 juga mengembangkan sebuah sisteem operasi iOS untuk iPhone-nya dengan fitur-fitur yang sangat inovatif seperti multitouchdan adaya open marker untuk aplikasi.
Menurut buku karya Alfa Satyaputra dan Eva Maulina Aritonang yang berjudul “Beginning Android Programming with ADT Bundle” (2014), android adalah sebuah sistem operasi untuk smartphone dan tablet. Dimana sistem operasi ini dapat diilustrasikan sebagai jembatan antara piranti dan penggunanya, sehingga pengguna bisa berinteraksi dengan devicenya dan menjalankan aplikasi-aplikasi yang tersedia pada device.
Android menyediakan platform terbuka bagi para pengembang untuk menciptakaan aplikasi mereka. Awalnya, Google Inc, memberi Android Inc. yang merupakan pendatang baru untuk urusan peranti lunak smartphone. Kemudian, untuk mengembangkan Android dibentuklah Open Handset Alliance, sebuah konsorsium dari 34 perusahaan peranti keras, peranti lunak, dan telekomunikasi, termasuk Google, HTC, Intel, Motorola, Qualcomm, T-Mobile, dan Nvidia.
2.4 Platform Android
Platform adalah teknologi yang digunakan sebagai dasar atas mana aplikasi yang lainnya, proses atau teknologi yang dibangun. Pada komputer pribadi, platform adalah perangkat lunan dasar atau computer itu sendiri dan perangkat lunak atau sistem operasi yang mana perangkat lunak lainnya bisa berjalan.
Android diuji sebagai platform mobile pertama yang lengkap, terbuka, dan bebas. Para desainer dapat melakukan pendekatan yang komprehensif ketika mereka sedang mengembangkan platform android dalam membangun perangkat lunak dan memungkinkan untuk peluang pengembangan aplikasi.
Platform android disediakan melalui lisensi open source. Pengembang dapat dengan bebas untuk mengembangkan aplikasi yang menggunakan linux kernel 2.6 ini.
Android adalah aplikasi yang bebas untuk dikembangkan. Tidak ada lisensi atau biaya royalty untuk dikembangkan pada platform android ini. Tidak ada biaya keanggotaan yang diperlukan. Tidak ada biaya pengujian, bahkan tidak ada kontrak yang diperlukan. Aplikasi untuk android dapat didistribusikan dan diperdagangkan dalam bentuk apapun.
Dalam hal ini, android dibangun atas dasar sistem operasi linux yang bersifat open source. Android memilih linux sebagai dasar pembuatannya dikarenakan linuk memilki probabilitas yang baik, sistem keamanan yang bagus serta fitur-fitur menarik.
Linux merupakan sistem operasi dengan kemanan yang tinggi. Android mengandalkannya karena keamanan yang dimiliki linux tersebut. Seluruh aplikasi android berjalan sesuai dengan proses-proses linux. Linux hadir dengan banyak fitur yang bermanfaat. Android mengambil banyak manfaatnya, seperti dukungan manajemen memori, manajemen power, dan jaringan (Gargenta, 2011).
12
2.5 Java
Java menurut defenisi dari Sun adalah nama untuk sekumpulan teknologi untuk membuat dan menjalankan perangkat lunak pada computer standalone ataupun pada lingkungan jaringan. Java dikembangkan pada bulan Agustus 1991, dengan nama semula Oak. Pada Januari 1995, karena nama Oak dianggap kurang komersial, maka diganti menjadi Java. Pada Desember 1998, Sun memperkenalkan nama “Java 2” (J2) sebagai generasi kedua dari Java Platform. Konvensi nama baru ini diterapkan untuk semua edisi Java yaitu Standard Edition (J2SE), Enterprise Edition (J2EE), dan Micro Edition (J2ME). Ada tiga platform Java yang telah didefenisikan, yang masing-masing diarahkan untuk tujuan tertentu dan untuk lingkungan yang berbeda- beda, yaitu sebagai berikut :
1. Standart Edition (J2SE), merupakan inti dari Bahasa pemrograman java. J2SE di desain untuk jalan pada computer desktop dan computer workstation.
2. Enterprise Edition (J2EE). Dengan built-in mendukung untuk services. JSP dan XML, edisi ini ditunjukkan untuk aplikasi berbasis server.
3. Micro Edition (J2ME). Di desain untuk piranti dengan memori terbatas, layar display terbatas dan power pemrosesan yang juga terbatas.
Bahasa pemrograman Java mendukung multithreading, artinya program dapat dibuat untuk dijalanka oleh thread tertentu. Beberapa thread (baik yang menjalankan program java ataupun program lain) dapat dijalankan secara bersam-sama.
2.6 Android Studio
Android Studio adalah Lingkungan Pengembangan Terpadu - Integrated Development Environment (IDE) untuk pengembangan aplikasi Android, berdasarkan IntelliJ IDEA. Selain merupakan editor kode IntelliJ dan alat pengembang yang berdaya guna, Android Studio menawarkan fitur lebih banyak untuk meningkatkan produktivitas Anda saat membuat aplikasi Android, misalnya:
1. Sistem versi berbasis Gradle yang fleksibel 2. Emulator yang cepat dan kaya fitur
3. Lingkungan yang menyatu untuk pengembangan bagi semua perangkat Android 4. Instant Run untuk mendorong perubahan ke aplikasi yang berjalan tanpa membuat
APK baru
5. Template kode dan integrasi GitHub untuk membuat fitur aplikasi yang sama dan mengimpor kode contoh
6. Alat pengujian dan kerangka kerja yang ekstensif
7. Alat Lint untuk meningkatkan kinerja, kegunaan, kompatibilitas versi, dan masalah-masalah lain
8. Dukungan C++ dan NDK
9. Dukungan bawaan untuk Google Cloud Platform, mempermudah pengintegrasian Google Cloud Messaging dan App Engine.
Android Studio direncanakan untuk menggantikan Eclipse ke depannya sebagai IDE resmi untuk pengembangan aplikasi Android. Sebagai pengembangan dari Eclipse, Android Studio mempunyai banyak fitur-fitur baru dibandingkan dengan Eclipse IDE. Berbeda dengan Eclipse yang menggunakan Ant, Android Studio menggunakan Gradle sebagai build environment.
2.7 Flowchart
Flowchart merupakan bagan atau gambar yang memperlihatkan hubungan antar proses beserta instruksinya, gambaran ini dinyatakan dengan simbol yang mana tiap-tiap simbol mewakili proses tertentu. Sedangkan hubungan antar-proses digambarkan dengan garis-garis.
Flowchart merupakan langkah awal pembuatan program. Setelah flowchart selesai disusun, selanjutnya pemrogram menerjemahkannya ke dalam bentuk program menggunakan Bahasa pemrogramana. Berikut ini adalah simbol-simbol standar pada sebuah flowchart berserta fugnsinya.
14
Tabel 2.3. Simbol Flowchart
No Nama Simbol Fungsi
1 Terminator
Digunakan untuk mewakili simbol
start dan end
2 Arrow Menunjukkan alur
proses
3 Rectangle
Menunjukkan langkah pemrosesan
4 Trapezium Simbol untuk
input-output
5 Document Digunakan untuk
mewakili output
6 Decision
Simbol yang berfungsi untuk
menyatakan keputusan
7 Preparation
Simbol yang berfungsi untuk proses inisialisasi
atau pemberian harga awal
8 Connector
Simbol untuk keluar-masuk atau
penyambungan peoses pada halaman yang
berbeda
9 Manual input
Simbol untuk memasukkan data
secara manual melaui keyboard
10 Manual operation
Simbol yang menunjukkan pengolahan yang
tidak dilakukan oleh computer
11 Predefine process
Simbol untuk pelaksanaan suatu
bagian
12 Display
Simbol yang menyatakan peralatan output yang digunakan seperti layar, printer, plotter dan
sebagainya
16
13 Magnetic disk
Simbol yang digunakan untuk pemyimpanan data
ke database
14 Storage Data
Simbol yang menyatakan input
yang berasal dari disk atau disimpan
ke disk
Pada bab ini menjelaskan tentang mengenai metode-metode penelitian untuk mengumpulkan informasi atau data serta melakukan investigasi terhadap data yang telah didapatkan, Metode penelitian memberikan gambaran rancangan penelitian yang meliputi prosedur atau langkah-langkah yang harus ditempuh, waktu penelitian, sumber data, dan dengan cara apa data-data tersebut diperoleh dan selanjutnya diolah dan dianalisis.
3.1 Metode Penelitian
langkah yang dimiliki dan dilakukan oleh peneliti dalam rangka untuk mengumpulkan informasi atau data serta melakukan investigasi pada data yang telah didapatkan tersebut. Metode penelitian memberikan gambaran rancangan penelitian yang meliputi antara lain: prosedur dan langkah-langkah yang harus ditempuh, waktu penelitian, sumber data, dan dengan langkah apa data-data tersebut diperoleh dan selanjutnya diolah dan dianalisis.
3.1.1. Tempat dan Waktu Penelitian
Tempat penelitian merupakan hal yang mendasari pemilihan, pengolahan serta penafsiran suatu data dan keterangan yang berkaitan dengan apa yang menjadi tujuan penelitian.
18
Tabel 3.1. Waktu pelaksanaan penelitian NO KEGIATAN
Maret Apri
l
Mei Juni
1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 1. Pengumpulan data
2. Identifikasi masalah 3. Penyusunan
proposal
4. Perancangan sistem dan desain aplikasi 5. Pengkodingan
aplikasi
6. Pengujian sistem 7. Penyusunan laporan
TA
3.1.2 Tahapan Kegiatan Penelitian
Tahapan kegiatan penelitian dalam perancangan Aplikasi Pengarsipan Surat Masuk dan Surat Keluar ini terdiri dari metode pengumpulan data dan metode penelitian. Dalam membangun aplikasi membangun aplikasi dibutuhkan beberapa komponen, diantaranya yaitu:
a. Perangkat keras (hardware)
Satu unit laptop Toshiba dengan spesifikasi:
1. Processor : AMD A8-6410 APU AMD Radeon R5 Graphics 2. Installed RAM : 4 GB
3. Tipe Sistem : 64-bit operating system, x64 based processor
b. Perangkat Lunak (software)
1. Sistem operasi : Windows 10 Enterprise 2. Bahasa Pemrograman : Java
3. Aplikasi pemrograman : Android Studio 3.0
4. Browser : Google Chrome
3.1.3 Metode Pengumpulan Data
Metode yang digunakan penulis dalam melakukan pengumpulan data pada penelitian ini adalah:
a. Studi Pustaka, yaitu dengan mengumpulkan dan mempelajari teori-teori serta literature yang berhubungan dengan judul penelitian.
b. Observasi, yaitu metode pengumpulan data yang kompleks karena melibatkan berbagai faktor dalam pelaksanaannya. Metode observasi dilakukan dengan cara mengamati keperluan yang dibutuhkan untuk anak-anak.
3.1.4 Metode Penelitian
Metode adalah suatu cara atau teknik yang sistematik untuk mengerjakan atau menyelesaikan sesuatu. Berikut ini metodologi penelitian yang gunakan dalam membangun aplikasi ini, yaitu:
1. Pengumpulan Data
Mengumpulkan data sekunder yang dibutuhkan untuk perancangan aplikasi dengan cara mengobservasi terlebih dahulu dan melihat refrensi dari aplikasi yang sudah ada.
2. Analisis
Dilakukan untuk memperoleh informasi tentang sistem, menganalisis data–data yang ada dalam sistem dan juga menganalisis poin – poin masalah pada sistem terutama mengenai kelebihan dan kekurangan aplikasi.
3. Perancangan (Desain)
Membangun / mengembangkan sistem yang diusulkan berupa perancangan sistem data flowchart dimana tahapan ini dapat dibangun dengan memperoleh informasi diantaranya memastikan informasi yang didapat akurat, memberikan ulasan-ulasan yang terperinci.
4. Penulisan Program (Coding)
membuat program didalam aplikasi yang dibuat agar dapat berjalan sesuai dengan yang difungsikan.
5. Uji Program.
20
Pengujian akan dilaksanakan jika program telah selesai dikerjakan. Bila saat pengujian terdapat kesalahan maka perlu adanya perbaikan terhadap program agar menghasilkan hasil yang maksimal.
3.2 Perancangan Sistem
Pada saat hendak membuat sebuah sistem yang akan digunakan pada suatu perusahaan, setiap pengembang aplikasi diharuskan membuat sebuah rancangan dari sistem yang ingin dibuat. Rancangan ini bertujuan untuk memberi gambaran umum dari sistem yang akan berjalan nantinya kepada setiap stakeholder. Menurut Kamus Besar Bahas Indonesia ( KBBI ) perancangan sistem adalah merancang atau mendesain suatu sistem yang baik, yang isinya adalah langkah-langkah operasi dalam prosedur untuk mendukung operasi sistem.
Berikut ini terdapat pula beberapa teori mengenai pengertian perancangan sistem. Menurut Satzinger, Jackson, dan Burd (2012:5), perancangan sistem adalah sekumpulan aktivitas yang menggambarkan secara rinci bagaimana sistem akan berjalan. Hal itu bertujuan untuk menghasilkan produk perangkat lunak yang sesuai dengan kebutuhan user.
Menurut Bentley dan Whitten (2009:160) melalui buku yang berjudul
“system analysis and design for the global enterprise” juga menjelaskan bahwa perancangan sistem adalah teknik pemecahan masalah dengan melengkapi komponen-komponen kecil menjadi kesatuan komponen sistem kembali ke sistem yang lengkap. Teknik ini diharapkan dapat menghasilkan sistem yang lebih baik.
Analisis dan desain data menyangkut mengkonfigurasi dari komponen perangkat keras dari suatu sistem.
3.2.1 Flowchart Enkripsi dan Dekripsi Base64
Berikut adalah alur flowchart untuk aplikasi yang dibangun beserta penjelasannya.
Gambar 3.2.3 Flowchart Enkripsi Base64
22
Gambar 3.2.3 Flowchart Dekripsi Base64
Pada bab ini akan dijelaskan mengenai proses implementasi aplikasi berbasis Android mobile programming dalam penyandian dengan enkripsi dan dekrisi menggunakan metode base64.
4.1 Implementasi Sistem
Setelah proses analisa dan perancangan sistem selesai, selanjutnya proses implementasi library Android SDK kedalam aplikasi dengan menggunakan developing Tool Android untuk membangun aplikasi.
4.2 Spesifikasi
4.2.1 Perangkat Keras
1. Processor Inter® Core™ i7-3517U CPU 1.90Ghz.
2. Memory RAM 4GB DDR3.
3. Resolusi monitor 1366x768 pixel (64bit).
4. Nvidia GEFORCE GT635M.
5. Kapasitas Harddisk 500GB.
6. Mouse.
7. Kabel USB 2.0.
8. Smartphone (RAM 3GB, 6.0.1 Marshmallow).
4.2.2 Perangkat Lunak
1. Windows 10 Ultimate 64bit.
2. Android Studio.
3. Android SDK.
4. CorelDraw.
24
4.3 Tampilan Aplikasi 4.3.1 Logo Aplikasi
Tampilan logo aplikasi dari Pembelajaran Bahasa Jepang Karakter Hiragana Menggunakan Metode Coaching berbasis Android.
Gambar 4.1 Tampilan dari Logo Aplikasi
4.3.2 Tampilan Splash Screen
Tampilan splashscreen meruppakan tampilan pembuka padaplikasi saat pertama kali dijalankan.
Gambar 4.3 Tampilan dari Splashscreen
4.3.3 Tampilan Home
Tampilan home atau bisa disebut sebagai halaman utama dari sebuah aplikasi yang menyediakan tombol-tombol yang berfungsi sebagai akses menuju layout yang menampilkan isi dari aplikasi tersebut. Terdapat tiga tombol utama yaitu untuk penulisan, pengenalan dan kamus kata.
26
Gambar 4.3 Tampilan dari Homescreen
4.3.4 Tampilan Menu Enkripsi
Pada tampilan ini akan memberikan output hasil dari ekripsi kalimat yang diberikan.
Gambar 4.4 Tampilan dari Menu Enkripsi.
Gambar 4.4 Tampilan dari Menu Enkripsi.
28
Gambar 4.4 Tampilan dari Menu Enkripsi.
4.3.5 Tampilan dari Menu Dekripsi
Pada tampilan ini akan memberikan output dari dekripsi kalimat yang diberikan dari enkripsi sandi atau data.
Gambar 4.5 Tampilan dari Dekripsi.
Gambar 4.5 Tampilan dari Dekripsi.
Gambar 4.5 Tampilan dari Dekripsi.
30
4.3.6 Tampilan Tentang
Menampilkan tentang atau informasi dari aplikasi.
Gambar 4.6 Tampilan Tentang.
5.1 Kesimpulan
Kesimpulan yang dapat diambil dari Tugas Akhir yang berjudul Pembuatan Aplikasi Enkripsi dan Dekripsi dengan Menggunakan Metode Base64 Berbasis Android sebagai berikut :
1. Dalam system keamanan penyandian sedeerhana kita dapat menggunakan metode base64 untuk melakukan enripsi dan dekripsi data atau sandi.
2. Pemanfaatan aplikasi Android lebih mudah dan dapat dimana saja untuk mengenkrisi serta mendekripsi data.
3. Meningkatkan kualitas enkripsi dan dekripsi data menggunakan mobile programming.
5.2 Saran
Untuk pengembangan aplikasi ini ke depannya, berikut beberapa saran yang dianjurkan : 1. Untuk ke depannya aplikasi ini bisa disempurnakan kembali serta diperbaharui setiap
item yang tersedia dalm aplikasi ini sehingga mengikuti zaman.
2. Dalam proses untuk mendapatkannya, aplikasi ini dapat diunggah ke Market atau Play Store dari Android.
3. Untuk memberikan kepuasan kepada user, dapat ditambah dengan metode-metode lainnya untuk enkripsi dan dekripsi data.
DAFTAR PUSTAKA
Safaat H. 2013. Pemrograman Aplikasi Mobile Smartphone dan Tablet PC berbasis
Android. Bandung: Informatika
Albahra bin Ladjamudin. 2005. Analisa dan Desain Sistem Informasi. Edisi 1.
Yogyakarta: Graha Ilmu.
Gagenta, M.2011. Learning Android. California: O’Reilly Media
Rickyanto, Isak (2003), Dasar Pemrograman Berorientasi Objek dengan Java 2:
JDK 1.4, Andi Offset, Yogyakarta.
Android Developers. 2010. Android SDK Docs. http://www.android.com/ diakses tanggal 25 Maret 2018.
Benfano Suwito ,2006. Konsep Enkripsi dan Dekripsi Palembang : Surabaya.
Erwin Gunadhi, 2012, Penerapan Kriptografi Base64 Untuk Keamanan Url (Uniform Resource Locator) Website Dari Serangan Sql Injection, Garut, Sekolah Tinggi Teknologi Garut
krisma pradana putra, 2015. aplikasi php encoder dan decoder menggunakan algoritma base64 dan kunci keamanan, jurusan teknik informatika fakultas teknik universitas muhammadiyah malang.
Dekripsi.Java
package com.base64.base64encryption;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.view.View;
import android.widget.LinearLayout;
public class Home extends Activity {
LinearLayout wrapEnkripsi, wrapDekripsi, wrapTentang;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.home);
wrapEnkripsi = findViewById(R.id.wrapEnkripsi);
wrapDekripsi = findViewById(R.id.wrapDekripsi);
wrapTentang = findViewById(R.id.wrapTentang);
wrapEnkripsi.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
startActivity(new Intent(Home.this, Enkripsi.class));
} });
wrapDekripsi.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
startActivity(new Intent(Home.this, Dekripsi.class));
} });
wrapTentang.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
startActivity(new Intent(Home.this, Tentang.class));
} });
} }
enkripsi. Java
package com.base64.base64encryption;
import android.app.Activity;
import android.support.annotation.Nullable;
import android.util.Base64;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
import java.io.UnsupportedEncodingException;
public class Enkripsi extends Activity {
EditText kalimat;
Button btn;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.enkripsi);
kalimat = findViewById(R.id.kalimat);
btn = findViewById(R.id.btn);
btn.setOnClickListener(new View.OnClickListener() { @Override
public void onClick(View view) {
String text = kalimat.getText().toString();
if(text.length() == 0){
Toast.makeText(Enkripsi.this, "Silahkan isi
}else{
// Sending side
byte[] data = new byte[0];
try {
data = text.getBytes("UTF-8");
} catch (UnsupportedEncodingException e) { e.printStackTrace();
}
String hasil = Base64.encodeToString(data, Base64.DEFAULT);
Intent intent = new Intent(Enkripsi.this, Hasil.class);
intent.putExtra("from", "enkripsi");
intent.putExtra("text", text);
intent.putExtra("hasil", hasil);
startActivity(intent);
finish();
} } });
} }
Hasil. Java
import android.app.Activity;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.widget.TextView;
public class Hasil extends Activity {
TextView hasil, text, title;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.hasil);
hasil = findViewById(R.id.hasil);
text = findViewById(R.id.textIntent);
title = findViewById(R.id.title);
String hasil_intent =
getIntent().getStringExtra("hasil");
String text_intent = getIntent().getStringExtra("text");
String title_intent =
getIntent().getStringExtra("from");
if(title_intent.equalsIgnoreCase("enkripsi")){
title.setText("HASIL ENKRIPSI");
}else if(title_intent.equalsIgnoreCase("dekripsi")){
title.setText("HASIL DEKRIPSI");
text.setText(text_intent);
hasil.setText(hasil_intent);
} }
main_activity. Java
package com.base64.base64encryption;
import android.content.Intent;
import android.os.Handler;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
int SPLASH_TIME_OUT = 1300;
new Handler().postDelayed(new Runnable() {
/*
* Showing splash screen with a timer. This will be useful when you
@Override
public void run() {
// This method will be executed once the timer is over
// Start your app main activity
Intent i = new Intent(MainActivity.this, Home.class);
startActivity(i);
finish();
}
}, SPLASH_TIME_OUT);
} }
tentang. Java
package com.base64.base64encryption;
import android.app.Activity;
import android.os.Bundle;
import android.support.annotation.Nullable;
public class Tentang extends Activity { @Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.tentang);
} }