• Tidak ada hasil yang ditemukan

APLIKASI PENGIRIMAN PESAN PENGKODEAN MENGGUNAKAN METODE AES 128 BIT BERBASIS ANDROID.

N/A
N/A
Protected

Academic year: 2017

Membagikan "APLIKASI PENGIRIMAN PESAN PENGKODEAN MENGGUNAKAN METODE AES 128 BIT BERBASIS ANDROID."

Copied!
77
0
0

Teks penuh

(1)

APLIKASI PENGIRIMAN PESAN PENGKODEAN MENGGUNAKAN METODE AES 128 BIT BERBASIS ANDROID

SKRIPSI

Diajukanoleh : YUDITH ADI SUCAHYO

NPM : 0734010025

Kepada

J URUSAN TEKNIK INFORMATIKA FAKULTAS TEKNOLOGI INDUSTRI

UNIVERSITAS PEMBANGUNAN NASIONAL “VETERAN” J AWA TIMUR

(2)

ii

Dengan mengucapkan puji syukur kehadirat Alloh SWT atas rahmat serta hidayahnya yang diberikan sehingga dapa tmenyelesaikan Tugas Akhir ini dengan baik dan tepat waktu dimana hasilnya disusun dengan bentuk laporan yang berjudul Aplikasi Pengiriman Pesan Pengkodean Menggunakan Metode AES 128 bit berbasis Android.

Adapun laporan ini disusun yaitu untuk memenuhi syarat mengikuti seminar TA serta untuk memenuhi syarat kelulusan salah satu mata kuliah “TugasAkhir” di Universitas Pembangunan Nasioanal “Veteran” JawaTimur.

Penulis menyadari bahwa manusia yang serba kurang sempurna, maka di dalam upaya menyusun Tugas Akhir ini peneliti telah banyak memperoleh bantuan dan bimbingan dari berbagai pihak, mengingat keterbatasan pengalaman yang dimiliki oleh peneliti, sehingga penulis sangat mengharapkan segala kritik dan saran yang konstruktif dan membangun demi kebaikan maupun sistematika penulisan akan selalu peneliti terima dengan senang hati guna kesempurnaan Tugas Akhir ini. Harapan peneliti mudah – mudahan apa yang penulis lakukan ini dapat menjadi sumbangan pemikiran dan berguna bagi semuanya, terutamaUniversitas Pembangunan Nasional “Veteran” JawaTimur.

Surabaya, Desember 2012

(3)

iii

UCAPAN TERIMA KASIH

Dalam pembuat laporan ini, peneliti telah mendapatkan bantuan dan bimbingan dari berbagai pihak yang terkait, baik secara moril maupun materiil oleh karena itu pada kesempatan kali ini peneliti ingin menyampaikan ucapan terima kasih kepada:

1. Bapak Prof. Dr. IrTeguhSoedarto, MP. Selaku Rektor Universitas Pembangunan Nasional “Veteran” JawaTimur Surabaya.

2. Bapak Ir. Sutiyono, MT selaku Dekan Fakultas Teknologi Industri.

3. Ibu Dr.Ir. Ni Ketut Sari, MT,selaku Kepala Jurusan Teknik Informatika Universitas Pembangunan Nasional ”Veteran” Jawa Timur.

4. Bapak Hudan Studiawan, S.Kom, M.kom, sebagai Dosen Pembimbing yang telah meluangkan waktu dan memberikan bimbingan serta petunjuk selama menyusun Tugas Akhir ini.

5. Para Dosen Penguji Seminar : Barry Nuqoba, S.Si, M.Kom, Ir.Mu’tasim Billah, MS yang telah membuka wawasan baru bagi peneliti.

6. Para Dosen Penguji Lisan : Ir.Mu’tasim Billah, MS, Harianto, S.Kom, M.eng, Achmad Junaidi, S.Kom yang telah memberikan masukan positif kepada peneliti. 7. Kedua Orang Tua tercinta serta keluarga yang telah memberikan doa dan semangat

kepada penulis.

(4)

iv

9. Kepada teman-teman KKN 41 love you all dan kepada Dody asmara,Edwin prasetyo terima kasih yang telah mensupport agar cepat selesai Tugas Akhir ini.

Surabaya, Januari 2013

(5)

v

1.6Sistematika Penulisan... 4

(6)

vi

3.5.1 Diagram Alur Perancangan program ... 39

3.5.2 Konteks Diagram ... 40

3.5.3 Data Flow Diagram Level 0 ... 41

3.5.4 Data Flow Diagram Level 1 Proses Enkripsi ... 42

(7)

vii

4.1 Spesifikasi sistem ... 51

4.2 Perangkat Sistem ... 51

4.2.1 Perangkat Keras yang Digunakan ... 51

4.2.2 Perangkat Lunak yang Digunakan ... 52

4.3 Implementasi Desain Antarmuka ... 52

4.3.1 Halaman Utama ... 53

5.3 Uji Coba Penerimaan Pesan Terenkripsi ... 64

5.4 Uji Coba Penerimaan Pesan Terdekkripsi ... 65

BAB VI KESIMPULAN DAN SARAN 6.1 Kesimpulan ... 67

(8)

i

Disusun Oleh : Yudith Adi Sucahyo

Dosen Pembimbing I : Hudan Studiawan S.kom, M.Kom

Abstraksi

Operating system Android merupakan operating system yang banyak digunakan pada smartphone maupun tablet pc. Perkembangan android secara pesat dikarenakan berbasis open source sehingga memudahkan developer untuk menciptakan aplikasi-aplikasi pendukung yang memberi manfaat bagi pengguna. Smart phone atau pun tablet pc mempunyai banyak fungsi. Aplikasi yang pasti digunakan oleh setiap orang adalah aplikasi pengiriman pesan pendek atau Short Message Standart (SMS).Pengiriman pesan pendek menjadi pilihan utama dalam berkomunikasi oleh pengguna.

Teknologi pengiriman pesan pendek saat ini menggunakan algoritma 64 bit untuk melakukan pengkodean. Berdasar permasalahan ini dalam melakukan penelitian dan pembuatan aplikasi pesan pendek yang menggunakan pengkodean pada AES 128 bit. Aplikasi ini dapat menjamin kerahasiaan isi pesan dengan melakukan perubahan pengkodean. Adanya fitur password menambah kekuatan dari aplikasi ini sehingga tidak bisa dibuka oleh user lain.

Pada percobaan yang dilakukan, aplikasi dapat berjalan dengan baik sesuai perancangan, yaitu dapat melakukan proses pengkodean AES 128 bit dan dekripsi untuk kembali membaca pesan yang telah di enkripsi. Aplikasi dapat berjalan di operating system android dengan lancar.

(9)

1 1.1. Latar Belakang

Teknologi komunikasi kian berkembang pesat, belum lama mengenal gadget berbasis Java, Symbian, Lalu Blackberry, kini dengan disuguhkan teknologi Operating System yang diberi nama Android. Android adalah sistem operasi berbasis Linux yang saat ini banyak di gunakan untuk smart phone dan

tablet computer. Android memberi kemudahan dengan menyediakan platform terbuka (open source) bagi para pengembang aplikasi untuk menciptakan aplikasi sendiri. Salah satu aplikasi berbasis android adalah aplikasi pengiriman pesan pendek.

Adanya kemungkinan penyadapan data, maka aspek keamanan dalam pertukaran informasi menjadi sangat penting karena suatu komunikasi data jarak jauh belum tentu memiliki jalur transmisi yang aman dari penyadapan sehingga keamanan informasi menjadi bagian penting dalam dunia informasi itu sendiri. Terdapat data-data yang tidak terlalu penting, sehingga apabila publik mengetahui data tersebut, pemilik data tidak terlalu dirugikan. Tetapi apabila pemilik data adalah pihak militer atau pemerintah, keamanan dalam pertukaran informasi menjadi sangat penting karena data yang dikirim kebanyakan adalah data-data rahasia yang tidak boleh diketahui oleh publik.

(10)

Kriptografi mendukung kebutuhan dari dua aspek keamanan informasi, yaitu secrecy (perlindungan terhadap kerahasiaan data informasi) dan authenticity (perlindungan terhadap pemalsuan dan pengubahan informasi yang tidak diinginkan). Algoritma kriptografi yang baik akan memerlukan waktu yang lama untuk memecahkan data yang telah disandikan. Seiring dengan perkembangan teknologi komputer maka dunia teknologi informasi membutuhkan algoritma kripografi yang lebih kuat dan aman. Saat ini, AES (Advanced Encryption Standard) digunakan sebagai standar algoritma kriptografi yang terbaru. AES menggantikan DES (Data Encryption Standar) yang pada tahun 2002 sudah berakhir masa penggunaannya. DES juga dianggap tidak mampu lagi untuk menjawab tantangan perkembangan teknologi komunikasi yang sangat cepat. AES sendiri adalah algoritma kriptografi dengan menggunakan algoritma Rijndael yang dapat mengenkripsi dan mendekripsiblok data sepanjang 128 bit dengan panjang kunci 128 bit, 192 bit, atau 256 bit.

(11)

1.2. Perumusan Masalah

Rumusan masalah yang digunakan dalam tugas akhir ini adalah :

1. Bagaimana membuat proses encode menggunakan algoritma AES dengan panjang kunci 128 bit pada handset berbasis android ?

2. Bagaimana membuat proses decode menggunakan algoritma AES dengan panjang kunci 128 bit pada handset berbasis android ?

1.3. Batasan Masalah

Pada tugas akhir ini batasan masalah yang dipergunakan yaitu : 1. Algoritma yang digunakan adalah AES dengan panjang kunci 128 bit.

2. Penelitian ini tidak membahas waktu komputasi yang dibutuhkan saat melakukan pengkodean dan juga waktu pengiriman pesan serta keberhasilan proses pengiriman pesan.

3. Software developer menggunakan Eclipse Helios.

4. Sistem operasi yang dipergunakan adalah Android minimal ver 2.2 (Froyo).

1.4. Tujuan

Tujuan yang ingin dicapai pada pengerjaan tugas akhir ini adalah: Membangun aplikasi yang dapat mengirimkan pesan algoritma AES dengan panjang kunci 128 bit untuk handset berbasis android.

1.5. Manfaat

(12)

android dalam mengamankan pengiriman pesan dengan menggunakan algoritma AES dengan panjang kunci 128 bit.

1.6. Sistematika Penulisan

Sistematika penulisan tugas akhir ini disusun untuk memberikan gambaran umum tentang penelitian yang dijalankan. Sistematika penulisan tugas akhir ini adalah sebagai berikut :

BAB I PENDAHULUAN

Bab ini berisi latar belakang masalah, identifikasi masalah, maksud dan tujuan yang ingin dicapai, batasan masalah, metodologi penelitian yang diterapkan dalam memperoleh dan mengumpulkan data, waktu dan tempat penelitian, serta sistematika penulisan. BAB II TINJ AUAN PUSTAKA

Membahas berbagai konsep dasar dan teori-teori yang berkaitan dengan topik masalah yang diambil dan hal-hal yang berguna dalam proses analisis permasalahan.

BAB III ANALISIS DAN PERANCANGAN

Membahas metode penelitian dan menganalisis masalah dari model penelitian untuk memperlihatkan keterkaitan antar variabel yang diteliti serta perancangan sistem yang akan dibuat.

BAB IV IMPLEMENTASI DAN PENGUJ IAN

(13)

BAB V PENUTUP

Berisi kesimpulan dan saran yang sudah diperoleh dari hasil penulisan tugas akhir.

BAB VI KESIMPULAN DAN SARAN

(14)

6 2.1. Algorithma Dan Pemrograman

Pada era tahun 1950 –1960, kecepatan komputer sangat rendah dan disertai juga dengan keterbatasan dari media penyimpan, sehingga tentunya berakibat juga dengan keterbatasan dalam penulisan program-program komputer. Namun di era saat ini, dengan kecepatan komputer yang cukup handal demikian juga ketersediaan dari media penyimpan yang cukup handal dan besar, serta didukung juga dengan perkembangan bahasa pemrograman yang ada sehingga kita dapat dengan mudah membuat suatu program. Permasalahan yang timbul dalam pembuatan program tersebut adalah bagaimana kita dapat memahaminya, sehingga apabila terdapat perubahan yang akan dilakukan kita dapat memperbaikinya secara mudah. Hal ini tentu saja harus kita perhatikan terutama apabila kita melihat dari biaya yang harus dikeluarkan dalam pembuatan program tersebut. Istilah Pemrograman Terstruktur (Structured Programming) mengacu dari suatu kumpulan tehnik yang dikemukan oleh Edsger Dijkstra. Dengan tehnik ini akan meningkatkan produktifitas programmer, dengan mengurangi waktu yang dibutuhkan dalam penulisan (write), pengujian (test), penelusuran kesalahan (debug) dan pemeliharan(maintain) suatu program. Pada pembahasan berikut ini kita akan melihat bagaimana tehnik ini yang pendekatan yang dilakukan secara modular, dapat membantu kita dalam membangun suatu program.

(15)

Tentunya fungsi yang dijalankan oleh setiap modul sangat terbatas sesuai dengan ruang lingkup yang akan dikerjakan. Dengan adanya sejumlah modul program ini tentu saja kesalahan yang timbul dapat dikurangi. Setiap program tentu akan memiliki program utamanya, yang kemudian akan memanggil sejumlah modul-modul yang ada.

Pemrograman secara modular ini dapat diimplementasikan dengan penggunaan subroutine, suatu kelompok instruksi yang menjalankan suatu pengolahan yang sifatnya terbatas seperti pencetakan, pembacaan untuk proses input atau untuk proses penghitungan. Subroutine dapat dikelompokkan menjadi internal subroutine dan external subroutine.

Sumber : Suarga., 2012, Algorit ma & Pemprograman, Andi Yogyakart a, Yogyakart a. 2.2 Pengembangan Sistem

Pengembangan sistem (System development) dapat berarti menyusun suatu sistem yang baru untuk menggantikan sistem yang lama secara keseluruhan atau memperbaiki sistem yang telah ada. Sistem yang lama perlu diperbaiki atau diganti disebabkan karena beberapa hal, yaitu sebagai berikut :

1. Adanya permasalahan-permasalahan (Problems) yang timbul di sistem yang lama. Permasalahan yang timbul dapat berupa : ketidakberesan pada sistem yang lama dan menyebabkan sistem yang lama tidak dapat beroperasi sesuai dengan yang diharapkan, pertumbuhan organisasi yang menyebabkan harus disusunnya sistem yang baru.

(16)

Adanya permasalahan kesempatan dan instruksi, maka sistem yang baru perlu dikembangkan untuk memecahkan permasalahan-permasalahan yang timbul, meraih kesempatan-kesempatan yang ada atau memenuhi instruksi-instruksi yang diberikan.

Sedemikian telah dikembangkannya sistem yang baru, maka diharapkan akan terjadi peningkatan-peningkatan di sistem yang baru. Peningkatan ini berhubungan dengan kemudahan sistem itu sendiri, diantaranya :

1. Performance (Kinerja), Kinerja dapat diukur dari Throughput dan Response Time. Throughput adalah jumlah dari pekerjaan yang dapat dilakukan suatu saat tertentu. Response Time adalah rata-rata waktu yang tertunda diantara dua transaksi.

2. Information (Informasi), peningkatan terhadap kualitas informasi yang disajikan.

3. Economy (Ekonomis), peningkatan terhadap manfaat-manfaat atau

keuntungan-keuntungan dan penurunan biaya yang terjadi.

4. Control (Pengendalian), peningkatan terhadap pengendalian untuk mendeteksi dan memperbaiki kesalahan-kesalahan.

5. Efficiency (Efisisensi), peningkatan terhadap efisiensi operasi.

6. Service (Pelayanan), peningkatan terhadap pelayanan yang diberikan oleh sistem.

(17)

2.3 Representasi Data

Data disimpan di dalam komputer pada main memory untuk diproses. Sebuah karakter data disimpan dalam main memory menempati posisi 1 byte. Komputer generasi pertama, 1 byte terdiri dari 4 bit, komputer generasi kedua, 1 byte terdiri dari 6 bit dan komputer generasi sekarang, 1 byte terdiri dari 8 bit. Suatu karakter data yang disimpan di main memory diwakili dengan kombinasi dari digit binary (binary digit atau bit). Suatu kode biner dapat digunakan untuk mewakili suatu karakter.

Suatu komputer yang berbeda menggunakan kode biner yang berbeda untuk mewakili suatu karakter. Komputer yang 1 byte terdiri dari 4 bit, menggunakan kode binary yang berbentuk kombinasi 4 bit, yaitu BCD (Binary coded decimal). Komputer yang menggunakan 6 bit untuk 1 bytenya, menggunakan kode biner yang terdiri dari kombinasi 6 bit, yaitu SBCDIC (Standard Binary Coded Decimal Interchange Code). Komputer yang terdiri dari 8 bit, menggunakan kode biner yang terdiri dari kombinasi 8 bit, yaitu EBCDIC (extended Binary coded decimal interchange code) atau ASCII (American standard code of information interchange).

2.3.1. BCD (Binary Coded Decimal)

(18)

Kode BCD yang orisinil sudah jarang dipergunakan untuk komputer generasi sekarang, karena tidak dapat mewakili huruf atau simbol-simbol karakter khusus.

2.3.2. SBCDIC (Standard Binary Coded Decimal)

SBCDIC merupakan kode biner perkembangan dari BCD. BCD dianggap tanggung, karena masih ada 6 kombinasi yang tidak dipergunakan, tetapi tidak dapat digunakan untuk mewakili karakter yang lainnya. SBCDIC menggunakan kombinasi 6 bit, sehingga lebih banyak kombinasi yang bisa dihasilkan, sebanyak 64 kombinasi kode, yaitu 10 kode untuk digit angka, 26 kode untuk huruf alphabet dan sisanya karakter-karakter khusus yang dipilih

Posisi bit di SBCDIC dibagi menjadi 2 zone, yaitu 2 bit pertama disebut dengan alphabet position dan 4 bit berikutnya disebut dengan numeric bit position.

2.3.3. EBCDIC (Extended Binary Coded Decimal)

EBCDIC terdiri dari kombinasi 8 bit yang memungkinkan untuk mewakili karakter sebanyak 256 kombinasi karakter. Pada EBCDIC, high-order bits atau 4 bit pertama disebut dengan zone bits dan low order bits atau 4 bit kedua disebut dengan numeric bit.

2.3.4. ASCII (American Standar d Code for Infor mation Interchange)

(19)

2.4. Kriptografi

Kriptografi adalah suatu ilmu yang mempelajari bagaimana cara menjaga agar data atau pesan tetap aman saat dikirimkan, dari pengirim ke penerima tanpa mengalami gangguan dari pihak ketiga. Menurut Bruce Scheiner dalam bukunya "Applied Cryptography", kriptografi adalah ilmu pengetahuan dan seni menjaga

message-message agar tetap aman (secure).

Konsep kriptografi sendiri telah lama digunakan oleh manusia misalnya pada peradaban Mesir dan Romawi walau masih sangat sederhana. Prinsip-prinsip yang mendasari kriptografi yakni:

Confidelity (kerahasiaan) yaitu layanan agar isi pesan yang dikirimkan tetap rahasia dan tidak diketahui oleh pihak lain (kecuali pihak pengirim, pihak penerima / pihak-pihak memiliki ijin). Umumnya hal ini dilakukan dengan cara membuat suatu algoritma matematis yang mampu mengubah data hingga menjadi sulit untuk dibaca dan dipahami.

Data integrity (keutuhan data) yaitu layanan yang mampu

mengenali/mendeteksi adanya manipulasi (penghapusan, pengubahan atau penambahan) data yang tidak sah (oleh pihak lain).

Authentication (keotentikan) yaitu layanan yang berhubungan dengan identifikasi. Baik otentikasi pihak-pihak yang terlibat dalam pengiriman data maupun otentikasi keaslian data/informasi.

Non-repudiation (anti-penyangkalan) yaitu layanan yang dapat mencegah suatu pihak untuk menyangkal aksi yang dilakukan sebelumnya (menyangkal bahwa pesan tersebut berasal dirinya).

(20)

algoritma tersebut dapat saja disebarkan ke kalangan masyarakat tanpa takut kehilangan kerahasiaan bagi para pemakainya.

Berikut adalah istilah-istilah yang digunakan dalam bidang kriptografi :

• Plaintext (M) adalah pesan yang hendak dikirimkan (berisi data asli).

• Ciphertext (C) adalah pesan ter-enkrip (tersandi) yang merupakan hasil enkripsi.

• Enkripsi (fungsi E) adalah proses pengubahan plaintext menjadi ciphertext. • Dekripsi (fungsi D) adalah kebalikan dari enkripsi yakni mengubah ciphertext

menjadi plaintext, sehingga berupa data awal/asli.

• Kunci adalah suatu bilangan yang dirahasiakan yang digunakan dalam proses enkripsi dan dekripsi.

Kriptografi itu sendiri terdiri dari dua proses utama yakni proses enkripsi dan proses dekripsi. Seperti yang telah dijelaskan di atas, proses enkripsi mengubah plaintext

menjadi ciphertext (dengan menggunakan kunci tertentu) sehingga isi informasi pada pesan tersebut sukar dimengerti.

plaintext ciphertext plaintext

kunci enkripsi kunci dekripsi

Gambar 2.1 Diagram proses enkripsi dan dekripsi

Peranan kunci sangatlah penting dalam proses enkripsi dan dekripsi (disamping pula algoritma yang digunakan) sehingga kerahasiaannya sangatlah penting, apabila kerahasiaannya terbongkar, maka isi dari pesan dapat diketahui.

(21)

Secara matematis, proses enkripsi merupakan pengoperasian fungsi E (enkripsi) menggunakan e (kunci enkripsi) pada M (plaintext) sehingga dihasilkan C

(ciphertext), notasinya :

Ee(M) – C

Sedangkan untuk proses dekripsi, merupakan pengoperasian fungsi D (dekripsi) menggunakan d (kunci dekripsi) pada C (ciphertext) sehingga dihasilkan M

(plaintext), notasinya :

Dd(C) = M Sehingga dari dua hubungan diatas berlaku :

Dd(Ee(M)) = M

2.4.1 Algoritma Simetris

Algoritma simetris (symmetric algorithm) adalah suatu algoritma dimana kunci enkripsi yang digunakan sama dengan kunci dekripsi sehingga algoritma ini disebut juga sebagai single-key algorithm.

Plaintext ciphertext plaintext

kunci enkripsi (K) kunci dekripsi (K)

Gambar 2.2 Diagram proses enkripsi dan dekripsi algoritma simetris

Sebelum melakukan pengiriman pesan, pengirim dan penerima harus memilih suatu suatu kunci tertentu yang sama untuk dipakai bersama, dan kunci

(22)

ini haruslah rahasia bagi pihak yang tidak berkepentingan sehingga algoritma ini disebut juga algoritma kunci rahasia (secret-key algorithm).

Kelebihan :

• Kecepatan operasi lebih tinggi bila dibandingkan dengan algoritma asimetrik. • Karena kecepatannya yang cukup tinggi, maka dapat digunakan pada sistem

real-time

Kelemahan :

• Untuk tiap pengiriman pesan dengan pengguna yang berbeda dibutuhkan kunci yang berbeda juga, sehingga akan terjadi kesulitan dalam manajemen kunci tersebut.

• Permasalahan dalam pengiriman kunci itu sendiri yang disebut “keydistribution problem”

2.4.2 Algoritma Asimetris

Algoritma asimetris (asymmetric algorithm) adalah suatu algoritma dimana kunci enkripsi yang digunakan tidak sama dengan kunci dekripsi. Pada algoritma ini menggunakan dua kunci yakni kunci publik (public key) dan kunci privat (private key). Kunci publik disebarkan secara umum sedangkan kunci privat disimpan secara rahasia oleh si pengguna. Walau kunci publik telah diketahui namun akan sangat sukar mengetahui kunci privat yang digunakan.

Plaintext ciphertext plaintext

(23)

Gambar 2.3 Diagram proses enkripsi dan dekripsi algoritma asimetris

Pada umumnya kunci publik (public key) digunakan sebagai kunci enkripsi sementara kunci privat (private key) digunakan sebagai kunci dekripsi.

Kelebihan :

• Masalah keamanan pada distribusi kunci dapat lebih baik

• Masalah manajemen kunci yang lebih baik karena jumlah kunci yang lebih sedikit

Kelemahan :

• Kecepatan yang lebih rendah bila dibandingkan dengan algoritma simetris • Untuk tingkat keamanan sama, kunci yang digunakan lebih panjang

dibandingkan dengan algoritma simetris.

2.4.3 Block Cipher dan Stream Cipher

Jika kita melihat berdasarkan ukuran serta format data yang akan diproses, maka algoritma kriptografi dapat dibagi menjadi dua bagian yang utama yaitu:

• Block Cipher, algoritma kriptografi ini bekerja pada suatu data yang berbentuk blok/kelompok data dengan panjang data tertentu (dalam beberapa byte), jadi dalam sekali proses enkripsi atau dekripsi data yang masuk mempunyai ukuran yang sama.

• Stream cipher, algoritma yang dalam operasinya bekerja dalam suatu pesan berupa bit tunggal atau terkadang dalam suatu byte, jadi format data berupa aliran dari bit untuk kemudian mengalami proses enkripsi dan dekripsi.

(24)

ukuran data ini terlalu panjang maka dilakukan pemecahan dalam bentuk blok yang lebih kecil. Jika dalam pemecahan dihasilkan blok data yang kurang dari jumlah data dalam blok maka akan dilakukan proses pading (penambahan beberapa bit).

2.5 Mode Operasi dalam Block Cipher 2.5.1 Electronic Codebook (ECB)

Pada mode operasi ECB sebuah blok input plaintext dipetakan secara statis ke sebuah blok output ciphertext. Sehingga tiap plaintext yang sama akan menghasilkan ciphertext yang selalu sama pula. Sifat- sifat dari mode operasi ECB : Sederhana dan efisien,Memungkinkan implementasi parallel, Tidak menyembunyikan pola plaintext, Dimungkinkan terjadi adanya active attack.

Skema dari mode operasi ECB dapat digambarkan sebagai berikut :

Sender

Receiver

Gambar 2.4 Skema Mode Operasi ECB

(25)

2.5.2 Chiper Block Chaining (CBC)

Pada mode oparasi ini hasil enkripsi dari blok sebelumnya mempengaruhi hasil enkripsi selanjutnya, atau enkripsi sebeluimnya menjadi feedback pada enkripsi blok saat itu., jadi tiap blok ciphertext bergantung bukan hanya pada blok plaintext-nya tapi bergantung pula pada blok-blok plaintext sebelumnya. Sehingga untuk plaintext yang sama, belum tentu menghasilkan ciphertext yang sama pula. Skema dari mode operasi CBC dapat digambarkan sebagai berikut :

Sender Receiver

Gambar 2.5 Skema Mode Operasi CBC.

Mula-mula sebelum si pengirim hendak mengirimkan pesannya kepada si penerima, dia terlebih dahulu harus meng-XOR plaintext dengan IV (initialization vector) baru kemudian dienkripsi, setelah itu baru dikirimkan ciphertext pertamanya kepada si penerima. Plaintext ke-2 pun demikian, harus di-XOR terlebih dahulu dengan

(26)

ciphertext sebelumnya sebelum mengalami proses enkripsi baru kemudian dikirimkan ke si penerima sebagai ciphertext 2 dan seterusnya. Sifat-sifat dari mode operasi CBC : Lebih aman dari active attacks dibandingkan mode operasi ECB, Error pada satu ciphertext dapat berakibat parah, Menutupi pola plaintext dan Implementasi parallel belum diketahui.

Sumber : Munir, Rinaldi, 2007. kriptografi 2005, SPK IT Consulting

2.6 Sistem Operasi Andr oid

Android adalah sistem operasi yang berbasis Linux untuk telepon seluler seperti telepon pintar dan komputer tablet. Android menyediakan platform terbuka bagi para pengembang untuk menciptakan aplikasi mereka sendiri untuk digunakan oleh bermacam peranti bergerak. Awalnya, Google Inc. membeli Android Inc., pendatang baru yang membuat peranti lunak untuk ponsel. 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.

Pada saat perilisan perdana Android, 5 November 2007, Android bersama Open Handset Alliance menyatakan mendukung pengembangan standar terbuka pada perangkat seluler. Di lain pihak, Google merilis kode–kode Android di bawah lisensi Apache, sebuah lisensi perangkat lunak dan standar terbuka perangkat seluler.

(27)

Pada Juli 2005, Google bekerjasama dengan Android Inc., perusahaan yang berada di Palo Alto, California Amerika Serikat. Para pendiri Android Inc. bekerja pada Google, di antaranya Andy Rubin, Rich Miner, Nick Sears, dan Chris White. Saat itu banyak yang menganggap fungsi Android Inc. hanyalah sebagai perangkat lunak pada telepon seluler. Sejak saat itu muncul rumor bahwa Google hendak memasuki pasar telepon seluler. Di perusahaan Google, tim yang dipimpin Rubin bertugas mengembangkan program perangkat seluler yang didukung oleh kernel Linux. Hal ini menunjukkan indikasi bahwa Google sedang bersiap menghadapi persaingan dalam pasar telepon seluler.

Sekitar September 2007 sebuah studi melaporkan bahwa Google mengajukan hak paten aplikasi telepon seluler (akhirnya Google mengenalkan Nexus One, salah satu jenis telepon pintar GSM yang menggunakan Android pada sistem 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 Ericsson, Toshiba Corp, dan Vodafone Group Plc. Seiring pembentukan Open Handset Alliance, OHA mengumumkan produk perdana mereka, Android, perangkat bergerak (mobile) yang merupakan modifikasi kernel Linux 2.6. Sejak Android dirilis telah dilakukan berbagai pembaruan berupa perbaikan bug dan penambahan fitur baru.

(28)

diperkirakan di dunia ini paling sedikit terdapat 18 jenis telepon seluler yang menggunakan Android.

Pada 9 Maret 2009, Google merilis Android versi 1.1. Android versi ini dilengkapi dengan pembaruan estetis pada aplikasi, jam alarm, voice search (pencarian suara), pengiriman pesan dengan Gmail, dan pemberitahuan email. Pada pertengahan Mei 2009, Google kembali merilis telepon seluler dengan menggunakan Android dan SDK (Software Development Kit) dengan versi 1.5 (Cupcake). Terdapat beberapa pembaruan termasuk juga penambahan beberapa fitur dalam seluler versi ini yakni kemampuan merekam dan menonton video dengan modus kamera, mengunggah video ke Youtube dan gambar ke Picasa langsung dari telepon, dukungan Bluetooth A2DP, kemampuan terhubung secara otomatis ke headset Bluetooth, animasi layar, dan keyboard pada layar yang dapat disesuaikan dengan sistem.

Donut (versi 1.6) dirilis pada September dengan menampilkan proses pencarian yang lebih baik dibanding sebelumnya, penggunaan baterai indikator dan kontrol applet VPN. Fitur lainnya adalah galeri yang memungkinkan pengguna untuk memilih foto yang akan dihapus; kamera, camcorder dan galeri yang dintegrasikan; CDMA / EVDO, 802.1x, VPN, Gestures, dan Text-to-speech engine; kemampuan dial kontak; teknologi text to change speech (tidak tersedia pada semua ponsel; pengadaan resolusi VWGA.

(29)

dukungan HTML5, daftar kontak yang baru, dukungan flash untuk kamera 3,2 MP, digital Zoom, dan Bluetooth 2.1.

Untuk bergerak cepat dalam persaingan perangkat generasi berikut, Google melakukan investasi dengan mengadakan kompetisi aplikasi mobile terbaik (killer apps - aplikasi unggulan). Kompetisi ini berhadiah $25,000 bagi setiap pengembang aplikasi terpilih. Kompetisi diadakan selama dua tahap yang tiap tahapnya dipilih 50 aplikasi terbaik.

Semakin berkembangnya dan semakin bertambahnya jumlah handset Android, semakin banyak pihak ketiga yang berminat untuk menyalurkan aplikasi mereka kepada sistem operasi Android. Aplikasi terkenal yang diubah ke dalam sistem operasi Android adalah Shazam, Backgrounds, dan WeatherBug. Sistem operasi Android dalam situs Internet juga dianggap penting untuk menciptakan aplikasi Android asli, contohnya oleh MySpace dan Facebook.

Pada 20 Mei 2010, Android versi 2.2 (Froyo) diluncurkan. Perubahan-perubahan umumnya terhadap versi-versi sebelumnya antara lain dukungan Adobe Flash 10.1, kecepatan kinerja dan aplikasi 2 sampai 5 kali lebih cepat, intergrasi V8 JavaScript engine yang dipakai Google Chrome yang mempercepat kemampuan rendering pada browser, pemasangan aplikasi dalam SD Card, kemampuan WiFi Hotspot portabel, dan kemampuan auto update dalam aplikasi Android Market.

(30)

WebM, efek audio baru (reverb, equalization, headphone virtualization, dan bass boost), dukungan kemampuan Near Field Communication (NFC), dan dukungan jumlah kamera yang lebih dari satu.

Android Honeycomb dirancang khusus untuk tablet. Android versi ini mendukung ukuran layar yang lebih besar. User Interface pada Honeycomb juga berbeda karena sudah didesain untuk tablet. Honeycomb juga mendukung multi prosesor dan juga akselerasi perangkat keras (hardware) untuk grafis. Tablet pertama yang dibuat dengan menjalankan Honeycomb adalah Motorola Xoom. Perangkat tablet dengan platform Android 3.0 akan segera hadir di Indonesia. Perangkat tersebut bernama Eee Pad Transformer produksi dari Asus. Rencana masuk pasar Indonesia pada Mei 2011.

Diumumkan pada tanggal 19 Oktober 2011, membawa fitur Honeycomb untuk smartphone dan menambahkan fitur baru termasuk membuka kunci dengan pengenalan wajah, jaringan data pemantauan penggunaan dan kontrol, terpadu kontak jaringan sosial, perangkat tambahan fotografi, mencari email secara offline, dan berbagi informasi dengan menggunakan NFC.

(31)

Platform perangkat keras utama untuk Android adalah arsitektur ARM. Ada dukungan untuk x86 dari proyek Android x86 dan Google TV menggunakan versi x86 khusus Android.

Android dan produsen ponsel Android telah menjadi target banyak tuntutan hukum paten. Pada tanggal 12 Agustus 2010, Oracle menggugat Google atas mengklaim pelanggaran hak cipta dan paten yang berhubungan dengan bahasa pemrograman Java. Secara khusus, referensi pelanggaran klaim paten Amerika Serikat tujuh paten termasuk AS 5.966.702 "Metode dan aparatus untuk pra-pengolahan dan packaging kelas file ", dan US 6910205" fungsi Interpreting memanfaatkan hibrida dari instruksi mesin virtual dan asli ".

Sebagai tanggapan, Google telah membuat baris pertahanan, diantaranya counter claiming bahwa Android tidak melanggar paten Oracle atau hak cipta, paten bahwa Oracle adalah tidak valid, dan pertahanan lainnya. Mereka mengatakan bahwa Android didasarkan pada Apache Harmony, implementasi yang bersih dari perpustakaan kelas Java, dan sebuah mesin virtual dikembangkan sendiri disebut Dalvik.

Microsoft juga menggugat beberapa produsen perangkat Android untuk pelanggaran paten, dan mengumpulkan biaya paten lisensi dari orang lain. Pada Oktober 2011 Microsoft mengatakan mereka telah menandatangani perjanjian lisensi dengan sepuluh produsen perangkat Android, terhitung 55% dari pendapatan seluruh dunia untuk perangkat Android. Ini termasuk Samsung dan HTC.

(32)

menurunkan Android melalui litigasi paten, daripada berinovasi dan bersaing dengan produk dan jasa yang lebih baik. Pada bulan Agustus 2011, Google mulai proses pembelian Mobility Motorola untuk US $ 12,5 miliar yang dilihat sebagian sebagai tindakan defensif untuk melindungi Android, karena Motorola Mobilitas memegang lebih dari 17.000 paten. Pada bulan Desember 2011 Google mengakuisisi di wilayah seribu paten dari IBM, yang dapat membantu dalam pertahanan paten terhadap Oracle.

2.7 Perangkat Pemrograman Android

Android menggunakan Dalvik Virtual Machine untuk menjalankan program APK yang terinstall. Dalvik yang di-modifikasi google dibuat berdasarkan Java Virtual Machine milik Sun/ Oracle. Itulah sebabnya untuk membuat program untuk android, kita menggunakan Java sebagai cara yang paling mudah. Bagi yang punya pengalaman pemrograman C, bisa menggunakan Android NDK, hasilnya lebih cepat karena bersifat native, tapi sangat rumit.

(33)

Gambar 2.6. Instalasi Android SDK 1. Buka folder Android SDK

2. Klik program SDK Manager 3. Klik bagian Available packages

4. Kita akan menggunakan SDK Froyo, karena versi ini paling banyak digunakan HP saat ini. Maka minimal yg dipilih adalah :

- SDK Platform Android 2.2, API 8, revision paling baru - Samples for SDK API 8

- Google APIs, Adndroid API 8 - Android SDK Tools

- Android SDk Platform-tools e. Kemudian install selected

(34)

Gambar 2.7. Form Opsi Untuk Android Virtual Device klik virtual devices

- klik New…

- Beri nama, pilih target dengan Android 2.2, API 8 - SD Card Size, dibuat kecil, misalkan 16 MB

- Skin, pilih built-in, yang kecil saja, misalkan resolusi WQVGA400 - Kemudian Create AVD

- Setelah jadi, pilih device tadi, Klik start. Maka tampilan seperti HP Android akan keluar

(35)

Gambar 2.8. Form Instalasi ADT a. klik Help > Install New Software….

b. klik Add, masukkan ini di bagian Location: https://dl-ssl.google.com/android/eclipse/ klik OK

Atau, apabila kita tidak punya koneksi internet langsung, kita bisa mendownload ADT terlebih dahulu di http://developer.android.com/sdk/eclipse-adt.html. Pilih archive, kemudian pilih file zip hasil kita download.

(36)

f. Setelah menutup dan membuka kembali, akan keluar gambar android di toolbar 6. Menghubungkan Android SDK dengan Eclipse

Gambar 2.9. Form Preferences Pada Eclipse

a. Klik window, Android SDK & AVD Manager b. Jangan centang send usage, klik Proceed c. Buka window -> preferences

d. Pilih bagian Android

(37)

2.8 Pemrograman Android

Android dibangun di atas kernel Linux dan mesin, maju maya dioptimalkan untuk yang Java. Kedua teknologi sangat penting untuk Android. Komponen kernel Linux tumpukan Android menjanjikan kelincahan dan portabilitas untuk mengambil keuntungan dari berbagai perangkat keras pilihan untuk masa depan Android yang dilengkapi telepon. Android Java lingkungan adalah kunci: membuat Android sangat mudah diakses untuk programmer karena kedua jumlah pengembang perangkat lunak Java dan lingkungan yang kaya pemrograman Java yang ditawarkan. Handphone platform yang telah mengandalkan kurang dapat diakses pemrograman lingkungan telah melihat adopsi terhambat karena kurangnya aplikasi sebagai pengembang yang akhirnya menghindar dari platform.

Aplikasi mobile, menuntut kemudahan intuitif penggunaan. Sementara konsumen mungkin membeli perangkat berdasarkan fitur keren disebutkan dalam materi pemasaran, instruksi manual hampir tidak pernah disentuh. Kemudahan penggunaan dari UI dari komputasi lingkungan sangat berhubungan dengan penetrasi pasarnya. UIS juga refleksi model akses platform data, jadi jika model navigasi dan data yang bersih dan intuitif, UI akan mengikutinya. Bagian ini memperkenalkan konsep Intents dan IntentFilters, navigasi inovatif Android dan mekanisme memicu. Intents dan IntentFilters membawa "klik" paradigma ke inti dari aplikasi mobile menggunakan (dan pengembangan!) untuk platform Android. Intent adalah sebuah deklarasi yang membutuhkan.

(38)

Intent Sebuah terdiri dari sejumlah potongan informasi yang menjelaskan tindakan yang diinginkan atau jasa. Bagian ini membahas tindakan yang diminta dan, umum, data yang menyertai aksi yang diminta.

Sebuah IntentFilter mungkin generik atau khusus sehubungan dengan Intents tersebut untuk menawarkan suatu layanan.

Atribut aksi Intent adalah biasanya sebuah kata kerja, misalnya: VIEW, PILIH, atau EDIT. Sejumlah built-in tindakan Intent didefinisikan sebagai anggota kelas Intent. Pengembang aplikasi dapat membuat tindakan baru juga. Untuk melihat sepotong informasi, aplikasi akan menggunakan tindakan Intent berikut : android.content.Intent.ACTION_VIEW

Komponen data Intent yang dinyatakan dalam bentuk URI dan dapat hampir setiap bagian dari informasi, seperti catatan kontak, lokasi website, atau referens ke klip media. Tabel 1.1 berisi daftar beberapa contoh URI.

Tabel 2.1. Contoh Daftar URI

(39)

Ketika sebuah Intent dioperasikan, sistem mengevaluasi Activitys tersedia, Jasa, dan terdaftar BroadcastReceivers dan berita yang dikirimkan Intent kepada penerima yang paling tepat. Gambar 2.7 menggambarkan hubungan ini antara intents, IntentFilters, dan BroadcastReceivers.

Gambar 2.10. Cara Kerja Distribusi Intent Pada Aplikasi Android (Biasanya Terdapat Dalam File Manifest.Xml)

IntentFilters sering didefinisikan dalam AndroidManifest.xml sebuah aplikasi dengan <intent-filter> tag. File AndroidManfest.xml dasarnya adalah aplikasi file descriptor, dibahas kemudian dalam bab ini.

(40)

dilakukan dengan menciptakan sebuah Intent dengan tindakan diatur untuk ACTION_VIEW dan URI yang mewakili orang tertentu yang menarik. Berikut adalah contoh dari URI untuk digunakan dengan android.content.Intent tersebut. ACTION_VIEW tindakan : content://contacts/people/1234

Berikut adalah contoh dari URI untuk mendapatkan daftar semua kontak, secara umum : content://contacts/people

Berikut ini adalah potongan kode menunjukkan instruksi Picking dari record yang dihubungi :

Intent myIntent = new Intent(Intent.ACTION_PICK,

Uri.parse("content://contacts/people"));

startActivity(myIntent);

Dalam android sebuah aplikasi mungkin atau mungkin tidak memiliki UI. Jika memiliki UI, ia akan memiliki minimal satu aktivitas. Cara termudah untuk memikirkan sebuah Aktivitas Android adalah untuk menghubungkan layar terlihat ke activity, karena lebih sering daripada tidak ada hubungan satu-ke-satu antara sebuah kegiatan dan layar UI. Sebuah aplikasi Android akan sering mengandung lebih dari satu aktivitas.

(41)

Activity class 1 adalah bagian dari paket Java android.app, ditemukan di Android runtime. Runtime Android ditempatkan di file android.jar. activity class 2 memperluas class Activity. Salah satu tugas utama sebuah Kegiatan melakukan adalah tampilan Elemen UI, yang diimplementasikan sebagai dilihat dan dijelaskan dalam file layout XML 3.

Berpindah dari satu ke yang lain kegiatan ini dilakukan dengan metode startActivity () atau metode startActivityForResult () jika ada panggilan sinkron / hasil paradigma yang diinginkan. Argumen untuk metode ini adalah Intent. Jika aplikasi adalah memiliki siklus hidup yang panjang, harus dimasukkan ke dalam service. Sebagai contoh, data latar belakang sinkronisasi utilitas berjalan terus menerus harus dilaksanakan sebagai service.

(42)

SDK Android merinci tindakan yang tersedia untuk intents standar. Selain itu, ingat bahwa aplikasi pengguna dapat menentukan intents mereka sendiri serta mendengarkan untuk mereka.

Sekarang kita telah diperkenalkan intents dan kelas Android yang proses atau menangani intents, saatnya untuk mengeksplorasi topik utama berikutnya Android aplikasi, ContentProvider, pilihan Android pada publishing data.

(43)

metode untuk mengizinkan aplikasi untuk mengakses data store. Akses mungkin untuk membaca dan / atau menulis operasi. Sebuah ContentProvider dapat menyediakan data untuk Aktivitas atau Layanan dalam aplikasi yang sama yang mengandung serta Aktivitas atau Layanan yang terkandung dalam aplikasi lain.

Sebuah ContentProvider dapat menggunakan bentuk mekanisme penyimpanan data yang tersedia tentang Android platform, termasuk file, database SQLite, atau bahkan hash memori berbasis peta jika data ketekunan tidak diperlukan. Intinya, ContentProvider adalah data yang lapisan menyediakan abstraksi data untuk klien dan penyimpanan sentralisasi dan pengambilan rutinitas di satu tempat.

(44)

Dalam contoh aplikasi tersebut, dipergunakan untuk mencari alamat yang dientrykan user dalam kolom editview, selanjutnya activity class akan mennjalankan intent untuk menghubungkan dengan internet dan menampilkan hasilnya di layar. Berikut ini adalah hasil dari program tersebut :

(45)

37

BAB III

ANALISIS DAN PERANCANGAN SISTEM

3.1 Analisis Sistem

Untuk membuat aplikasi pada proyek akhir ini terlebih dahulu dilakukan analisa sistem, kemudian analisa kebutuhan dan perancangan sistem serta perancangan antar muka. Analisa sistem berguna untuk mengetahui data apa saja yang dibutuhkan dalam proses yang akan dikerjakan. Analisa kebutuhan berguna untuk identifikasi user dan menentukan variabel kebutuhan untuk input dan output user. Perancangan sistem berguna untuk mengintregasikan semua proses - proses yang terjadi. Sedangkan perancangan antarmuka bertujuan digunakan sebagai jembatan antara pengguna dan sistem aplikasi yang dibuat.

3.2 Pengumpulan Data

Pada pembuatan aplikasi ini, diperlukan beberapa data untuk melengkapi uji coba kelayakan aplikasi, pengumpulan data dilakukan dengan metode:

a. Tinjauan Pustaka

(46)

3.3 Analisis Data

Analisis data bertujuan untuk menyusun data dalam cara yang bermakna sehingga dapat dipahami. Para peneliti berpendapat bahwa tidak ada cara yang paling benar secara absolut untuk mengorganisasi, menganalisis dan menginterpretasikan data maka prosedur analisis data dalam penelitian disesuaikan dengan tujuan penelitian.

Dari data yang telah terkumpul maka dilakukan analisa data yaitu menganalisa beberapa cara yang tepat menggunakan metode / algorithma untuk pencocokan string pada sebuah aplikasi. Dalam menggunakan metode yang terbaru untuk mendapatkan hasil yang maksimal dan valid.

3.4 Analisa Sistem

(47)

3.5 Perancangan Sistem

Perancangan sistem digunakan untuk menggambarkan sejumlah proses terstruktur dalam sistem aplikasi. Berorientasi pada aliran sistem yang terjadi, agar memperjelas sistem aliran aplikasi. Penjelasan mengenai sistem dimulai dari diagram alur perancangan Program, DFD Diagram, dan juga keterangan tentang alur kerja dari

aplikasi berupa flowchart dimana akan dirincikan alur kerja aplikasi mulai dari penginputan SMS, proses algoritma AES dan hasil dari proses AES.

3.5.1 Diagr am Alur Per ancangan Pr ogr am

(48)

Proses berjalannya program dapat dilihat pada gambar diagram alur perancangan program diatas. Proses pertama dimulai saat ada karakter yang akan di enkripsi menggunakan metode AES. Proses AES berjalan dengan adanya message key. Jika proses berhasil maka didapatkan teks yang terenkripsi. Teks yang terenkripsi bisa dibaca kembali dengan melalui proses dekripsi. Proses ini juga memerlukan key untuk dekripsi. Hasil dari proses dekripsi adalah teks asli kembali.

3.5.2 Konteks Diagram

DFD menggambarkan penyimpanan data dan proses yang mentransformasikan data. DFD menunjukkan hubungan antara data pada sistem dan proses pada sistem.

(49)

Pada gambar Diagram Konteks diatas adalah suatu proses utama dan proses

basic dimana proses tersebut merupakan proses sistem secara keseluruhan. Dalam gambar diatas ditunjukkan dimana pengirim memberikan data inputan pesan, password dan nomer tujuan. Proses balik dari sistem adalah pengirim dapat melihar informasi pesan keluar dan pesan masuk. Penerima pesan mendapatkan notifikasi dari aplikasi saat ada pesan baru. Agar penerima dapat melihat isi dari pesan peneriman menginputkan password yang sama sesuai yang di setting oleh pengirim.

3.5.3 Data Flow Diagr am Level 0

(50)

. Dalam penggambaran DFD level 0 terdapat 7 proses kerja, yaitu setting password, menulis pesan baru, proses pengkodean dan mengirim SMS, proses SMS masuk di penerima, proses dekripsi pesan masuk oleh penerima, melihat data sms masuk dan melihat data sms keluar.

3.5.4 Data Flow Diagr am Level 1 Proses Enkr ipsi

(51)

Proses enkripsi AES dimulai dengan menambahkan key enripsi. Key enkripsi berasal dari password yang dimassukan oleh user saat masuk ke dalam aplikasi. Key yang telah di inputkan diolah ke dalam proses sub bytes. Proses subbytes merupakan proses subtitusi sederhana dari 16 nilai matrik 4x4 ke 16 nilai baru menurut kaidah permutasi S-box. Setelah melakukan proses subbytes dilanjutkan ke dalam proses shiftrows. Proses shift rows merupakan proses permutasi dari matriks 4x4 ke dalam matriks 4x4 yang baru. Proses selanjutnya adalah proses mixcolumn yaitu proses operasi kepada tiap kolom secara terpisah. Transformasi tersebut didefinisikan dengan proses mengalikan dengan state kolom. Proses terakhir dilakukan dengan proses xor sederhana antara matriks state 4x4 dengan matriks 4x4 yang merupakan key dari round bersesuaian hasil ekspansi kunci. Setiap langkah pada proses enripsi AES 128 bit diulang sebanyak 10 round. Setelah mendapatkan hasil 10 round maka didapatkan bilangan hexa untuk teks yang telah di enkripsi. Hasil proses enkripsi disimpan pada tabel message.

3.6 Cr eate Database

(52)

Gambar 3.5 Query database

3.7 Database Management system

Struktur file merupakan penggambaran deskripsi dari field - field pada proses perancangan database yang terwujud dalam bentuk table beserta keterangan yang diperlukan yaitu antara lain :

A. Nama Tabel : android_metadata

(53)

Tabel 3.1 Keterangan Tabel android_metadata

No Nama Kolom Tipe Data Keterangan

1 RECNO INTEGER PRIMARY KEY

2 LOCALE TEXT LOCAL METADATA

B. Nama Tabel : table_app_data

Fungsi : penyimpanan setting aplikasi

Foreign Key : RecNo

Tabel 3.2 Keterangan Tabel Tabel_app_data

No Nama Kolom Tipe Data Keterangan

1 password INTEGER FOREIGN KEY

2 Use password VARCHAR (25) NAMA SETTING APLIKASI

3 Message key BLOB VARIABEL SETTING

C. Nama Tabel : table_message

Fungsi : Tempat penyimpanan data pesan yang masuk dan keluar

(54)

Tabel 3.3 Keterangan Tabel table_message

NO Nama Kolom Tipe Dat a Ket erangan

1 ID INTEGER PRIM ARY KEY

2 PHONE_NUM BER VARCHAR (20) DATA NO TELPON

3 M ESSAGE BLOB ISI PESAN

4 RECEIVED_DATE DATE TANGGAL PROSES

5 RECEIVED_TIM E TIM E TANGGAL INPUT DATA SEM INAR

6 STATUS STRING STATUS PESAN

3.8 Perancangan Antar muka

Pada implementasi antarmuka ini, menjelaskan bagaimana membuat sebuah antarmuka yang menarik dan mudah dipahami dari sebuah aplikasi sehingga menjadi

user friendly bagi pengguna dan dapat dijalankan dengan mudah oleh pengguna

(55)

3.8.1 Desain Menu Utama

Menu utama dari aplikasi adalah halaman awal dari aplikasi. Terdapat 4 menu, yaitu inbox, outbox, compose message dan setting. Menu inbox berfungsi untuk melihat daftar pesan masuk, menu outbox berfungsi untuk melihat daftar pesan keluar, menu compose message berfungsi untuk membuat pesan baru dan menu setting berfungsi untuk setting menggunakan password atau tidak. Adapun gambaran dari menu utama adalah sebagai berikut :

(56)

3.8.2 Desain Menu Setting

Menu setting berfungsi untuk melakukan setting penggunaan password. User dapat mencentang use password jika berkeinginan memakai password dalam proses pengkodean. Adapun gambaran dari menu setting adalah sebagai berikut :

(57)

3.8.3 Desain Menu Compose Message

Menu compose message berfungsi untuk pengiriman pesan baru. Di halaman ini user dapat memasukkan nomor tujuan dan isi pesan.. Adapun gambaran dari menu compose message adalah sebagai berikut :

(58)

3.8.4 Desain Menu Inbox

Menu inbox berfungsi untuk melihat daftar pesan masuk. Data pesan masuk di sorting berdasarkan pesan terbaru terlebih dahulu. Penampilan penyajian menggunakan menu list.. Adapun gambaran dari menu inbox adalah sebagai berikut :

(59)

51

IMPLEMENTASI

Pada bab ini akan dibahas mengenai implementasi dari rancangan sistem

aplikasi yang telah dibuat pada bab sebelumnya. Bagian implementasi sistem

aplikasi ini meliputi implementasi data, implementasi proses, dan implementasi antarmuka.

4.1 Spesifikasi Sistem

Sistem yang digunakan untuk memproses semua kegiatan yang terdiri atas masing- masing table yang saling berkaitan, misalnya dari proses pengelolahan data proposal, pengelolahan data bimbingan, pengelolahan data seminar, pengelolahan data rekapitulasi dosen pembimbing dan proses mencetak hasil pengelolahan data proposal, bimbingan, seminar dan rekapitulasi dosen pembimbing sehingga akan menghemat banyak waktu serta mempermudah pengguna dalam mengelola data dan menjaga keamanan data.

4.2 Perangkat Sistem

Peralatan yang digunakan untuk semua proses dari keseluruhan tahap pembuatan aplikasi yang ada termasuk uji coba aplikasi.

4.2.1 Perangkat Keras (Hardware) yang Digunakan

(60)

keras yang dimaksud untuk menunjang pembuatan aplikasi adalah dengan spesifikasi sebagai berikut :

1. Processor : Intel Multicore 2,4, Ghz 2. Memory : 1024 Mbyte

3. Hard Disk : 160 Gbyte, dengan ruang kosong minimal 15 Gbyte 4. Display : LCD Monitor dengan resolusi layar 1366 x 768 5. Mouse dan Keyboard Standar

4.2.2 Perangkat Lunak (Software) yang Digunakan

Perangkat lunak yang digunakan dalam perancangan dan pembuatan aplikasi SMS 128berbasis android ini adalah sebagai berikut :

a. Sistem Operasi : Microsoft Windows 7 (Seven) b. Bahasa Pemrograman : Oracle – Sun Java

c. Tool Pemrograman : Eclipse Indigo

d. Dokumentasi : Microsoft Word 2010, Rational Rose

4.3 Implementasi Desain Antar muka

(61)

Desain antar muka diperlukan agar terjadi kenyamanan dan menghindari kesulitan penggunaan saat digunakan oleh user.

4.3.1 Halaman Menu Utama

Gambar 4.1 Halaman Menu Utama.

(62)

melakukan penulisan pesan baru. Menu inbox untuk melihat pesan yang masuk. Menu outbox untuk melihat pesan yang terkirim. Sedangkan menu setting untuk menentukan apakah pengiriman pesan menggunakan password atau tidak menggunakan password.

4.3.2 Halaman Menu Setting

Gambar 4.2 Halaman Menu Setting.

(63)

dapat dilakukan dengan melakukan checklist use password untuk menggunkan

password atau tidak mencentang agar pengiriman pesan tidak menggunakan

password. Saat user mencentang akan keluar tombol change password untuk merubah password.

Gambar 4.3 Halaman menu setting saat kondisi use password dicentang.

(64)

Gambar 4.4 Halaman menu change password.

(65)

4.3.3 Halaman Menu Compose Message

Gambar 4.5 Halaman Compose Message.

(66)

dua tombol navigasi yaitu menekan tombol back untuk kembali ke menu utama dan send untuk mengirim SMS.

4.3.4 Halaman Menu Inbox

Gambar 4.6 Halaman Menu Inbox.

(67)

Gambar 4.7 Halaman detail pesan masuk.

Halaman detail pesan masuk ini untuk melihat secara lengkap isi dari pesan masuk . Menampilkan nomer pengirim pesan dan isi pesan secara lengkap. User dapat menekan tombol back untuk kembali ke menu inbox.

4.3.5 Code Form Menu Utama

Berikut adalah potongan code dari interface form menu utama.

(68)

Potongan code form menu utama di atas menunjukkan proses dalam pembuatan form menu utama. Berdasar potongan code form utama diatas, dilakukan import class data sebagai dasar proses pembuatan menu utama aplikasi. Disaat menu utama dijalankan, aplikasi melakukan koneksi ke database. Hal ini bisa diliat pada potongan code diatas.

4.3.6 Code Proses AES 128

Proses AES 128 merupakan inti dari aplikasi SMS dengan enkripsi AES 128 berbasis android. Proses AES 128 bit terdapat di class encryption. Setelah matriks encryption terbentuk, ditentukan matriks subbytes, matriks shiftrows, matriks mixcolumns dan matriks addroundkey. Lebih jelasnya dapat dilihat pada gambar potongan code dibawah ini

(69)

4.3.7 Code Pengiriman pesan

Saat user melakukan pengiriman SMS, aplikasi akan melakukan proses pengiriman pesan. Fungsi pengiriman SMS ini dapat dilihat di procedure

sendSMS. Procedure sendSMS membutuhkan nomer telpon yang dituju dan isi pesan. Setelah pesan terkirim terdapat informasi bahwa SMS telah dikirim dan SMS telah diterima di nomer penerima. Potongan code pengiriman pesan dapat dilihat pada gambar dibawah ini.

(70)

4.3.8 Code Penerimaan Pesan

Saat ada pesan baru masuk, aplikasi secara otomatis menjalankan proses penerimaan pesan. Proses penerimaan pesan mengolah pesan yang masuk dan memberikan notifikasi ke user. Pesan yang masuk di simpan ke dalam database. Fungsi penerimaan pesan terdapat pada class SMSReceiver. Pada procedure Onreceive dijalankan ketika ada SMS yang baru masuk. Aplikasi melakukan pengecekan nomer Protocol Data Unit (PDU), kemudian melakukan pengecekan isi pesan dan no pengirim. Data yang didapat kemudian disimpan ke dalam database. Berikut dibawah ini merupakan potongan code dari proses penerimaan pesan.

(71)

63

UJ I COBA DAN EVALUASI

Pada bab ini membahas tentang uji coba dan evaluasi proses kelancaran kinerja program untuk mencapai keberhasilan sesuai yang diinginkan agar program berjalan optimal dan implementatif. Untuk uji coba dan evaluasi ditekankan pada proses AES 128. Uji coba dan evaluasi program yang menerangkan bagaimana jalannya program secara detail dan akan dijelaskan pada sub bab dibawah ini : tidak terjadi error pada aplikasi saat digunakan. Pengujian yang dilakukan pada penginputan sample data, penerimaan pesan tertenkripsi dan penerimaan pesan terdekripsi.

5.2 Uji Coba Penginputan Sample Data

(72)

Gambar 5.1 Aplikasi dapat menerima inputan data dengan baik.

5.3 Uji Coba Penerimaan Pesan Ter enkr ipsi

(73)

Gambar 5.2 Uji coba penerimaan pesan terenkripsi.

Hasil diatas menunjukkan bahwa pesan yang diterima penerima telah berhasil di enkripsi dengan baik. Sehingga tidak dapat yang mengetahui isi pesan selain pemilik handphone. Nomer handphone pengirim juga telah dapat ditampilkan dengan baik.

5.4 Uji Coba Penerimaan Pesan Ter dekripsi

(74)

Gambar 5.3 Uji coba penerimaan pesan terdekripsi.

(75)

67

Pada bab terakhir ini, beberapa kesimpulan dan saran yang bisa diberikan berdasarkan penerapan AES 128 pada aplikasi SMS enkripsi AES 128 berbasis Android :

6.1Kesimpulan

Berdasarkan pada hasil penerapan dan uji coba aplikasi SMS AES 128 berbasis android pada bab sebelumnya, dapat ditarik kesimpulan sebagai berikut :

1. Aplikasi dapat melakukan fungsi encode algoritma AES 128 sehingga pesan tidak dapat dibaca .

2. Aplikasi dapat melakukan proses decode algoritma AES dengan baik sehingga pesan dapat dibaca oleh user.

6.2Saran

1. Disarankan aplikasi SMS AES 128 ini di buat untuk system operasi selain android, dikarenakan fungsinya yang menarik dan menunjang privasi seseorang.

(76)
(77)

Suarga., 2012, Algoritma & Pemprograman, Andi Yogyakarta, Yogyakarta.

Kendall & Kendall.2003.Analisis dan Perancangan Sistem.Jakarta: PT. Indeks Kelompok Gramedia.

Wahana Komputer, 2010, The Best Encryption Tools, PT Elex Media Komputindo, Jakarta

Munir, Rinaldi, 2007. kriptografi 2005, SPK IT Consulting

Herlambang, Soendoro dan Tanuwijaya, Haryanto. 2005. Sistem Informasi: Konsep, Teknologi dan Manajemen. Yogyakarta: Graha Ilmu

Gambar

Gambar 2.7. Form Opsi Untuk Android Virtual Device
Gambar 2.8. Form Instalasi ADT
Gambar 2.9. Form Preferences Pada Eclipse
Gambar 2.10. Cara Kerja Distribusi Intent Pada Aplikasi Android (Biasanya
+7

Referensi

Dokumen terkait

Pada gambar 3.4 dibawah ini adalah use case dari sistem aplikasi sharing dokumen berbasis android yang mengimplementasikan algoritma AES ( Advanced Encryption Standard )

Untuk menyelesaikan masalah yang telah diuraikan di atas, dibuatlah sebuah aplikasi chatting yang memiliki fitur keamanan dalam pengiriman pesan teks dan gambar. Dalam

Kunci AES 128 bit kemudian dienkripsi menggunakan algoritma elgamal yang menghasilkan cipherkey, karena hasil enkripsi algoritma elgamal menghasilkan cipherkey berukuran

Pada menu ini terdapat inputan berupa tujuan berupa nomor tujuan, kunci enkripsi AES yang merupakan kunci yang telah disepakati oleh kedua belah pihak

Pengujian terhadap aplikasi pengaman sms dengan metode kriptografi Advanced Encryption Standard (AES) 128 berbasis Android dilakukan terhadap enkripsi, dekripsi, mengirim

Sistem enkripsi dan dekripsi menggunakan algoritma AES-128 ini akan diimplementasikan pada aplikasi Prototype Community Messenger berbasis sistem operasi Android yang

Berdasarkan latar belakang tersebut adalah untuk membuat suatu program aplikasi kriptografi dengan algoritma Advanced Encryption Standard (AES-128 bit) dan algoritma

Dengan memanfaatkan algoritma AES ini, maka dapat dikembangkan suatu aplikasi SMS yang memungkinkan pengguna untuk mengirimkan pesan singkat dengan enkripsi teks