i
Penambahan Fitur Keamanan Menggunakan Algoritma RSA untuk Chatting di Andorid
SKRIPSI
Diajukan Untuk Memenuhi Salah Satu Syarat
Memperoleh Gelar Sarjana Komputer
Program Studi Teknik Informatika
Oleh:
Thomas Haryo
085314055
PROGRAM STUDI TEKNIK INFORMATIKA
JURUSAN TEKNIK INFORMATIKA
FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS SANATA DHARMA
YOGYAKARTA
ii
Security Feature Using RSA Algorithm for Chatting in Android
A Thesis
Presented as Partial Fulfillment of the Requirements
To Obtain the Sarjana Komputer Degree In Study Program of Informatics Engineering
By Thomas Haryo
085314055
INFORMATICS ENGINEERING STUDY PROGRAM INFORMATICS ENGINEERING DEPARTMENT
FACULTY OF SCIENCE AND TECHNOLOGY
SANATA DHARMA UNIVERSITY YOGYAKARTA
v
HALAMAN PERSEMBAHAN
Taruh Semua Angan-Angan dan cita-citamu
di depan keningmu 5 cm supaya tidak lepas dari
jangkauanmu
vi
PERNYATAAN KEASLIAN KARYA
Saya menyatakan dengan sesungguhnya bahwa tugas akhir yang saya tulis tidak
memuat karya atau bagian karya orang lain, kecuali yang telah disebutkan dalam
kutipan dan daftar pustaka, sebagaimana layaknya karya ilmiah.
Yogyakarta,
Penulis
0
Thomas Haryo
vii
LEMBAR PERNYATAAN PERSETUJUAN
PUBLIKASI KARYA ILMIAH UNTUK KEPENTINGAN AKADEMIS
Yang bertanda tangan dibawah ini, saya mahasiswa Universitas Sanata Dharma :
Nama : Thomas Haryo Pambudi
NIM : 085314055
Demi pengembangan pengetahuan, saya memberikan kepada perpustakaan
Universitas Sanata Dharma karya ilmiah yang berjudul :
Penambahan Fitur Keamanan Menggunakan Algoritma RSA untuk Chatting di Andorid
Beserta perangkat yang diperlukan (bila ada). Dengan demikian saya memberikan
kepada perpustakaan Universitas Sanata Dharma hak untuk menyimpan,
mengalihkan dalam bentuk media lain, mengelolanya dalam bentuk pangkalan
data mendistribusikan secara terbatas, dan mempublikasikan di internet atau
media lain untuk kepentingan akademis tanpa perlu meminta ijin dari saya
maupun memberikan royalti kepada saya selama tetap mencantumkan nama saya
sebagai penulis.
Demikian pernyataan ini saya buat dengan sebenarnya.
Yogyakarta,
Yang menyatakan,
viii
Penambahan Fitur Keamanan Menggunakan Algoritma RSA untuk Chatting di Andorid
ABSTRAK
Android adalah sebuah sistem operasi untuk perangkat mobile berbasis linux yang mencakup sistem operasi, middleware dan aplikasi. Android
menyediakan platform terbuka bagi para pengembang untuk menciptakan aplikasi. Ada banyak macam aplikasi, salah satunya adalah aplikasi chatting. Aplikasi
chatting dapat memudahkan pengguna untuk berkomunikasi jarak jauh seperti
berkomunikasi via tulisan (chat), telepon, dan email. Pengguna lebih senang
menggunakan aplikasi chatting untuk berkomunikasi karena bersifat real time
sehingga tidak perlu menunggu balasan terlalu lama seperti email
Aplikasi Chatting milik Siregar tidak memiliki keamanan untuk chatting
hal ini berbahaya bila hasil chattinganya berupa username dan password. Untuk
itu diperlukan Kriptografi untuk menyembunyikanya, salah satu algoritma
kriptografi adalah RSA . Algoritma RSA terletak pada sulitnya memfaktorkan bilangan yang besar menjadi faktor-faktor prima
Pada tahap pengujian akan dilakukan serangan php injection untuk
menjebol server untuk mendapatkan pesan saat melakukan komunikasi. Dengan
menggunakan hak akses pada server, server akan mereject request dari luar selain
program chatting
ix
ABSTRACT
Android is an operating system based on Linux for mobile devices that
includes an operating system, middleware and applications. Android provides an
open platform for developers to create applications. There are many kinds of
applications, one of which is a chat application. Chat applications can allow users
to communicate over long distances such as communicating via writing (chat),
phone, and email. Users prefer to use chat applications to communicate than email
because it is real time, so no need to wait too long for the reply
Siregar’s Chat Application has no security to chat it dangerous if chat result username and password. It required Cryptography for hidden, one algorithm
is RSA. Security RSA algorithm in the difficulty of factoring large numbers into
prime factors
In the testing phase will be conducted php injection attack to break the
server to get the current message communication. By using the permissions on the
server, the server will reject request from the outside and allow request from chat
programs
x
KATA PENGANTAR
Puji dan syukur penulis panjatkan kepada Tuhan Yesus Kristus, karena
atas kebaikan dan kehendak-Nya saya dapat menyelesaikan tugas akhir yang
berjudul “Penambahan Fitur Keamanan Menggunakan Algoritma RSA untuk Chatting di Andorid”. Tugas akhir ini ditulis sebagai salah satu syarat memperoleh gelar sarjana program studi Teknik Informatika, Fakultas Sains dan
Teknologi Universitas Sanata Dharma.
Dalam proses penulisan tugas akhir ini , penulis mengucapkan terima
kasih yang sebesar-besarnya kepada :
1. Ibu PH.Prima Rosa, S.Si., M.Sc., selaku Dekan Fakultas Sains dan
Teknologi Universitas Sanata Dharma Yogyakarta.
2. Bapak Iwan Binanto, M.Cs., selaku Dosen Pembimbing Teknik
Informatika Fakultas Sains dan Teknologi Universitas Sanata Dharma
Yogyakarta, terimakasih atas segala bimbingan, kesabaran dan
mengarahkan serta membimbing penulis dalam menyelesaikan tugas akhir
ini.
3.BapakH.Agung Hernawan,S.T.,M.Kom dan Stephanus Yudianto
Asmoro,S.T.,M.Kom . selaku dosen penguji yang telah memberikan
banyak kritik dan saran untuk tugas akhir saya.
4. Bapak Eko Hari Parmadi,S.Kom.,M.Kom., selaku Dosen Pembimbing
Akademik Teknik Informatika Tahun 2008.
5. Seluruh staff dosen Teknik Informatika Universitas Sanata Dharma
yang telah banyak memberikan bekal ilmu, arahan dan pengalaman selama
saya menempuh studi.
6. Seluruh staff Sekretariat Teknik, yang banyak membantu saya dalam
xi
7. Kedua orang tua dan kakak saya, terima kasih atas semua yang telah
dilakukan untukku, doa, semangat, dukungan dan cintanya sehingga saya
bisa menyelesaikan studi dengan lancar.
8. Linardi, terimakasih atas bantuan yang diberikan dalam penyusunan
tugas akhir ini.
9. Teman-teman Teknik Informatika : linardi,hendro,gendut,justin, dan
semua teman-teman TI lainnya.
10. buat rury henggar my beloved,maria angelika,piki wijoyo,susan,jesi
dan penghuni aditara yg sudah memberikan suport kepada saya
11. Seluruh pihak yang telah ambil bagian dalam proses penulisan tugas
akhir ini yang tidak bisa saya sebutkan satu per satu.
Dengan rendah hati penulis menyadari bahwa tugas akhir ini masih jauh dari
sempurna, oleh karena itu berbagai kritik dan saran untuk perbaikan tugas akhir
ini sangat penulis harapkan. Akhir kata, semoga tugas akhir ini bermanfaat bagi
semua pihak. Terima kasih.
Yogyakarta,
Penulis
xii
DAFTAR ISI
ABSTRAK ... viii
DAFTAR ISI ... xii
BAB I ...1
PENDAHULUAN ...1
1.1 Latar Belakang ... 1
1.2 Rumusan Masalah ... 2
1.3 Tujuan Penelitian ... 3
1.4 Batasan Masalah ... 3
1.5 Manfaat Penelitian ... 3
1.6 Metode Penelitian ... 4
1.7 Sistematika Penulisan ... 5
BAB II ...7
2.4 Kriptografi... 23
xiii
2.4.2 Jenis Algoritma Kriptografi ... 24
2.4.3 ALGORITMA RSA(Rivest, Shamir dan Adleman) ... 25
2.5 Android ... 29
2.6 UML ( Unified Modelling Language) ... 36
BAB III ...45
ANALISA DAN PERANCANGAN SISTEM ...45
3.1 Analisa Sistem ... 45
3.2. Perancangan Sistem ... 45
3.2.1 Arsitektur Sistem... 46
3.2.2 Perancangan Proses ... 47
IMPLEMENTASI SISTEM ...63
4.1 Implementasi User Interface ... 63
Gambar 4.1 : Halaman utama chatting ... 63
4.2 Impelemntasi Algoritma RSA ke dalam sistem ... 72
BAB V...86
HASIL DAN PENGUJIAN ...86
5.1 Pengujian program ... 86
5.2 Pencegahan ... 91
xiv
Bab VI ...95
PENUTUP ...95
6.1 Kesimpulan ... 95
xv
Daftar Gambar dan Tabel
Gambar 2.1 Prototyping model... 9
Gambar 2.2 OSI Model ...15
Gambar 2.3 TCP/IP Model ...18
Tabel 2.1 Simbol Pada Diagram Use Case ...37
Tabel 2.2 Simbol Pada Diagram Sequence... 40
Tabel 2.3 Simbol Pada Diagram Class ...43
Gambar.3.1 Perancangan penyerangan dan pembangunan Chatting ...47
Gambar 3.2:Use Case Server... 48
Gambar 3.3:UseCase User... 48
Tabel 3.1: Definisi Use Case Aktor :Server ...49
Tabel 3.2:Skenario Menerima Data ...49
Tabel 3.3:Skenario menyimpan Data... 50
Tabel 3.4:Skenario Mengirim Data ...50
Tabel 3.5:Definisi Use Case Aktor:User ...51
Tabel 3.6:Skenario Login... 51
Tabel 3.7:Skenario Daftar... 52
Tabel 3.9:Skenario Chatting Enkripsi ...53
Gambar 3.4: Activity Diagram Sistem Menyeluruh... 55
Gambar 3.5 Activity Diagram Daftar... 56
Gambar 3.6 Activity Diagram Login ...56
Gambar 3.7 Activity Diagram Chatting Enkripsi... 57
Gambar 3.8 Activity Chatting Dekripsi... 58
Gambar 3.11 : Squence Daftar Chatting ...58
Tabel 3.10 Kelas Analisis Daftar ...58
Gambar 3.12 :Squence Login Chatting... 59
Tabel 3.11 Kelas Analisis Login... 60
Gambar 3.14:Squence Enkripsi ...60
Tabel 3.12 Kelas Analisis Enkripsi... 60
Gambar 3.15:Squence Deskripsi ...61
xvi
Gambar 3.17:Rancangan Halaman Utama Chatting... 61
Gambar 3.18 : Rancangan Halaman Daftar Baru ...62
Gambar 3.19:Rancangan Halaman Login... 62
Gambar 3.20 :Rancangan Halaman Chatting... 62
Gambar 4.1 : Halaman utama chatting... 63
Gambar 4.2 : source code awal chatting... 64
Gambar 4.3 : Halaman Daftar chatting... 65
Gambar 4.4 : source code Registrasi... 66
Gambar 4.5 : Halaman Login chatting... 66
Gambar 4.6 : source code Login ...67
Gambar 4.7 : Halaman User chatting ...68
Gambar 4.8 : source code User Chatting ...69
Gambar 4.9 : Halaman Chatting android ...69
Gambar 4.10 Source Code Chatting ...72
Gambar 4.11 Source Code Kelas Achat ...73
Gambar 4.12 Source Code Kelas RSA ...73
Gambar 4.13 Source Code Kelas RSA ...74
Gambar 4.14 Source Code Kelas Achat ...75
Gambar 4.15 Source Code Kelas Achat Service ...77
Gambar 4.16 Source Code Kelas RSA ...78
Gambar 4.17 Source Code Kelas Achat ...79
Gambar 4.18 Source Code Kelas AchatService ...84
Gambar 4.19 Source Code Kelas RSA. ...85
Gambar 5.1: hasil wireshark chatting belum diamankan... 86
Gambar 5.2: bertukar kunci publik... 87
Gambar 5.3: hasil wireshark chatting sudah berkomunikasi menggunakan rsa ...87
Gambar 5.4: injeksi web kunci publik... 88
Gambar 5.5: injeksi kunci publik ...88
Gambar 5.6: injeksi message... 89
Gambar 5.7: tampilan di pengirim... 89
Gambar 5.8: pengirim mengirimkan pesan kepada si penyerang ...90
Gambar 5.9: hasil dekrip penyerang ...90
xvii
Gambar 5.11 : mereject akses dari gogle chrome ...92
Gambar 5.12 : mereject akses dari firefox ...92
1
BAB I
PENDAHULUAN
1.1 Latar Belakang
Android adalah sebuah sistem operasi untuk perangkat mobile berbasis linux yang mencakup sistem operasi, middleware dan aplikasi. Android menyediakan
platform terbuka bagi para pengembang untuk menciptakan aplikasi[7]. Ada banyak macam aplikasi, salah satunya adalah aplikasi chatting. Aplikasi chatting
dapat memudahkan pengguna untuk berkomunikasi jarak jauh seperti
berkomunikasi via tulisan (chat), telepon, dan email. Pengguna lebih senang
menggunakan aplikasi chatting untuk berkomunikasi karena bersifat real time
sehingga tidak perlu menunggu balasan terlalu lama seperti email. Sekarang
banyak pengembang android yang membuat aplikasi chatting, termasuk aplikasi
chatting milik Siregar [2] . Dari hasil pengamatan, aplikasi chatting milik Siregar
tidak memiliki fitur keamanan[2]. Sehingga mengakibatkan hasil chatting dapat
dibaca ketika dilihat menggunakan wireshark . Hal ini berbahaya ketika hasil
chatting berisi seesuatu yang sangat penting, misal username dan password. Oleh
karena itu, agar isi chatting tidak dapat dibaca orang lain diperlukan cara untuk
menyembunyikanya, yaitu menggunakan kriptografi.
Kriptografi terdapat 3 algoritma kunci, hash function, algoritma kunci asimetris
dan simetris. Pada algoritma kunci simetris penerima dan pengirim membutuhkan
kunci yang sama untuk mengubah cipterteks untuk menjadi plainteks, sedangkan
plainteks menggunakan kunci privat miliknya. Keuntungan menggunakan
algoritma kunci asimetris dibanding menggunakan algoritma kunci simetris
terletak pada tidak ada kebutuhan untuk mendistribusikan kunci privat
sebagaimana pada sistem kriptografi simetris, kunci publik dapat dikirim ke
penerima melalui saluran yang sama dengan saluran yang digunakan untuk
mengirim pesan walaupun saluran untuk mengirim pesan umumnya tidak aman.
Salah satu Algoritma kriptografi asimetris adalah RSA . Algoritma RSA dibuat oleh 3 orang peneliti dari MIT (Massachussets Institute of Technology) pada tahun 1976, yaitu: Ron (R)ivest, Adi (S)hamir, dan Leonard (A) dleman.
Algoritma RSA terletak pada sulitnya memfaktorkan bilangan yang besar menjadi
faktor-faktor prima. Pemfaktoran dilakukan untuk memperoleh kunci privat.
Selama pemfaktoran bilangan besar menjadi faktor-faktor prima belum ditemukan
algoritma praktis , maka selama itu pula keamanan algoritma RSA tetap
terjamin[5].
Oleh karena itu, penulis tertarik untuk menambahkan fitur keamanan isi pesan
aplikasi chatting milik Siregar [2] dengan menggunakan algoritma RSA.
1.2 Rumusan Masalah
Bagaimana fitur keamanan dapat mengamankan isi pesan chatting
1.3 Tujuan Penelitian
Tujuan dari penelitian ini adalah sebagai berikut :
1. Menambahkan fitur enkripsi menggunakan algoritma RSA untuk
penggamanan isi pesan chatting pada Android.
2. Menguji keamanan chatting
1.4 Batasan Masalah
Dalam tugas akhir ini masalah dibatasi pada:
1. Input berupa teks bukan gambar
2. Panjang isi pesan chatting 256 karakter
1.5 Manfaat Penelitian
Tugas akhir yang dibuat oleh penulis diharapkan memperoleh manfaat dapat
1.6 Metode Penelitian
Metode penelitian yang digunakan dalam penulisan Tugas Akhir ini adalah
sebagai berikut :
1. Referensi ( Literatur )
Metode yang dilakuakan untuk membaca dokumen, maupun referensi
buku yang telah ada, atau sumber lain yang berkenaan dengan objek
yang sedang dibutuhkan.
2. Metode Pengembangan Perangkat Lunak
Dalam pengembangan sistem ini, penulis menggunakan konsep
Prototyping. Model prototyping satu metode siklus hidup sistem yang
didasarkan pada konsep model. Model prototyping terbagi dalam
tahapan:
1. Mendefinisikan objektif secara keseluruhan dan mengidentifikasi
kebutuhan yang sudah diketahui.
2. Melakukan perancangan secara cepat sebagai dasar untuk membuat
prototype.
3. Menguji coba dan mengevaluasi prototype dan kemudian
melakukan penambahan dan perbaikan-perbaikan terhadap
prototype yang sudah dibuat.
Dalam tahap ini akan dilakukan penyadapan chatting. Penyadapan
menggunakan 2 komputer 1 sebagai web server 1 untuk penyadapan,
dan 2 handphone untuk melakukan chatting.
4. Testing Program
Dalam tahap pengujian, dilakukan 2 tahap pengujian, yaitu Test Enkripsi dan Test Dekripsi Chatting. Pengujian dengan memastikan
chatting terenkripsi dengan algoritma RSA dan terdekripsi dan
mengembalikan isi pesan chatting.
1.7 Sistematika Penulisan
Dalam laporan tugas akhir ini, pembahasan disajikan dalam enam bab
dengan sitematika pembahasan sebagai berikut :
BAB I : PENDAHULUAN
Bab ini membahas latar belakang masalah, rumusan masalah, tujuan
penelitian, batasan masalah, metodologi penelitian, dan sistematika
penulisan.
BAB II : LANDASAN TEORI
Bab ini membahas teori-teori yang digunakan dalam pembuatan sistem
BAB III : ANALISA DAN PERANCANGAN SISTEM Bab ini membahas analisa dan perancangan sistem secara umum,
BAB IV : IMPLEMENTASI SISTEM
Bab ini membahas implementasi dalam bentuk aplikasi berdasarkan
analisa dan perancangan yang telah dilakukan.
BAB V : HASIL DAN PENGU JIAN
Bab ini membahas hasil pengujian terhadap sistem.
BAB VI : PENUTUP
Bab ini membahas kesimpulan dan saran dari implementasi sistem dan
7
BAB II
LANDASAN TEORI
2.1 Pengertian SDLC
Systems Development Life Cycle (SDLC) adalah sekumpulan kegiatan yang dibutuhkan dalam membangun suatu solusi sistem informasi yang dapat memberi
jawaban bagi permasalahan maupun kesempatan bisnis . Telah berkembang
beberapa model proses rekayasa piranti lunak, masing-masing memiliki kekuatan
dan kelemahan, akan tetapi seluruhnya memiliki serangkaian fase generik yang
sama [1]. Berikut adalah jenis SDLC yang umum digunakan:
1. Linear Sequential Model
2. Prototyping Model
Konstruksi Prototype berguna sebagai mekanisme untuk mengetahui kebutuhan langsung user piranti lunak secara lebih lanjut serta mendeteksi kelemahan-kelemahannya sehingga sistem dapat
dikembangkan lebih lanjut.
3. RAD (Rapid Application Development)
Rapid Application Modeling merupakan adaptasi dari Linear Sequential Modeling terhadap tahap pengembangan software yang menggunakan waktu yang sempit.
4. Incremental Model
5. Spiral Model
Model ini dibagi menjadi beberapa framework yang disebut task regions, masing-masing mendefinisikan satu set kegiatan tertentu. 6. Concurrent Development Model
2.2 Prototyping
Salah satu metode pengembangan piranti lunak adalah dengan menggunakan
model prototyping. Model ini biasanya digunakan jika customer hanya
memberikan tujuan pembuatan piranti lunak secara umum, tidak mendefinisikan
input, proses, dan output secara detail. Prototyping dimulai dengan komunikasi antara pengembang dengan customer untuk mediskusikan tujuan secara
keseluruhan dari piranti lunak dan mengidentifikasi kebutuhan-kebutuhan yang
harus ada pada piranti lunak. Kemudian pengembang membuat rancangan piranti
lunak secara cepat dengan fokus pada aspek piranti lunak yang akan terlihat oleh
pengguna. Rancangan tersebut kemudian dibangun menjadi
prototype. Prototype kemudian dibawa kepada customer untuk dievaluasi. Hasil evaluasi dari customer kemudian digunakan untuk proses pengembangan
Gambar 2.1 Prototyping model
1. Proses-proses Prototyping
1. Pengumpulan kebutuhan: developer dan klien bertemu dan menentukan tujuan umum, kebutuhan yang diketahui dan gambaran bagian-bagian
yang akan dibutuhkan berikutnya;
2. Perancangan: perancangan dilakukan cepat dan rancangan mewakili
semua aspek software yang diketahui, dan rancangan ini menjadi dasar
pembuatan prototype;
3.Evaluasi Prototype: klien mengevaluasi prototype yang dibuat dan
digunakan untuk memperjelas kebutuhan software.
2. Tiga pendekatan utama prototyping
1. THROW-AWAY
Prototype dibuat dan dites. Prototype digunakan untuk membuat
2. INCREMENTAL
Produk finalnya dibuat sebagai komponen-komponen yang
terpisah. Desain produk finalnya secara keseluruhan haya ada satu tetapi
dibagi dalam komonen-komponen lebih kecil yang terpisah (independent).
3. EVOLUTIONARY
Pada metode ini, prototipenya tidak dibuang tetapi digunakan
untuk iterasi desain berikutnya. Dalam hal ini, sistem atau produk yang
sebenarnya dipandang sebagai evolusi dari versi awal yang sangat terbatas
menuju produk final atau produk akhir[1].
2.3 Komunikasi
Komunikasi sebagai proses pemindahan pengertian dalam bentuk gagasan
atau informasi ke orang lain. Pengertian komunikasi melibatkan lebih sekedar
kata-kata yang digunakan dalam percakapan, tetapi juga ekspresi wajah, intonasi,
titik putus vokal dan sebagainya [3]
1. Komponen Komunikasi
Komponen Komunikasi ada 5, yaitu:
1) Pengirim Pesan
Pengirim pesan adalah individu atau orang yang mengirimkan pesan.
Dalam komunikasi, pengirim pesan disebut juga dengan komunikator.
Dari komunikator pesan dan informasi dikirimkan kepada penerima
2) Pesan
Pesan adalah informasi yang akan dikirim kepada si penerima. Pesan ini
dapat berupa verbal maupun nonverbal. Verbal merupakan pesan yang
menggunakan kata‐kata seperti percakapan, surat, majalah dan sebagainya.
Pesan nonverbal merupakan pesan yang berupa isyarat, gerakan badan,
ekspresi wajah dan nada suara.
3) Saluran
Saluran adalah jalan yang dilalui pesan dari si pengirim kepada penerima.
Saluran ini dapat berupa buku, radio, film, televisi dan yang paling pokok
adalah gelombang suara dan cahaya.
4) Penerima pesan
Penerima pesan adalah individu atau orang yang menganalisis dan
menginterpretasikan isi pesan yang diterimanya. Dalam komunikasi
penerima pesan ini disebut juga komunikan
5) Balikan
Balikan adalah respon dari penerima pesan(komunikan) terhadap pesan
yang diterima yang dikirimkan oleh pengirim pesan(komunikator). Adanya
balikan ini memungkinkan bagi komunikator untuk mengetahui apakah
komunikan telah menginterpretasikan pesan yang dikirim, sesuai dengan
2. Chat Messanger
Chat Messanger adalah suatu teknologi jaringan yang mengijinkan penggunanya mengirimkan pesan secara realtime ke pengguna lain yang
tersambung dalam sebuah jaringan LAN atau Local Area Network ataupun internet. Ada dua komponen pokok dalam cara kerja chat messanger, yaitu: client
dan server. Client adalah pengguna chat messanger sedangkan server adalah penyedia layanan. Aplikasi client berfungsi sebagai antar muka di sisi pengguna, sedangkan aplikasi yg tertanam di server berfungsi sebagai perantara, untuk
mengontrol traffic dan penyimpanan data kontak milik pengguna/ client. Aplikasi
client berfungsi sebagai antar muka di sisi pengguna, sedangkan aplikasi yg
tertanam di server berfungsi sebagai perantara, untuk mengontrol traffic dan
penyimpanan data kontak milik pengguna/ client. Nantinya server akan bertugas
sebagai storage sementara untuk menampung pesan yg dikirim ke client yg sedang
offline. Saat client online, server secara otomatis akan mengirimkan pesan dan
data di server akan terhapus setelah pesan terkirim[3].
2.4 Jaringan
Jaringan adalah serangkaian kumpulan alat (sering disebut node) yang terhubung oleh link komunikasi. Node dapat berupa komputer, printer atau beberapa device lainnya yang terhubung dengan jaringan yang mampu mengirim dan menerima data yang dihasilkan oleh node lainnya pada jaringan. Sebuah jaringan harus dapat memenuhi sejumlah kriteria. Kriteria yang terpenting adalah
berbagai cara, termasuk waktu transit dan waktu respon. Waktu transit adalah
jumlah waktu yang diperlukan untuk sebuah pesan dikirim dari satu device ke
device lain. Waktu respon adalah waktu yang berlangsung antara pemeriksaan informasi dan respon. Performa sebuah jaringan bergantung pada sejumlah faktor,
termasuk jumlah pengguna, jenis media transmisi, kemampuan hardware yang terhubung, dan efisiensi software[4].
Kehandalan
Selain pengiriman akurasi, kehandalan jaringan diukur berdasarkan
frekuensi kegagalan, waktu yang dibutuhkan sebuah link untuk pulih dari
kegagalan, dan ketahanan jaringan dalam bencana.
Keamanan
Masalah-masalah keamanan jaringan termasuk melindungi data dari
akses yang tidak sah, melindungi data dari kerusakan, dan pelaksanaan
kebijakan dan prosedur untuk pemulihan dari pelanggaran dan
kehilangan
data.
Jaringan komputer menjadi penting karena digunakan dalam komunikasi dan
pertukaran data. Hampir di setiap perusahaan terdapat jaringan komputer untuk
memperlancar arus informasi didalam perusahaan tersebut, sehingga dengan
adanya jaringan komputer sangat membantu dalam meningkatkan efisiensi bisnis.
Sebuah jaringan pada awalnya hanyalah berskala kecil yaitu biasanya dengan
lingkungan seperti perkantoran disebuah gedung. Kemudian berkembang menjadi
lingkup area yang luas dengan teknologi Metropolitan Area Network (MAN) misalnya untuk antar wilayah dan Wide Area Network (WAN) untuk antar negara, sehingga pengguna pada daerah geografis yang luas dapat dihubungkan. Internet
merupakan suatu jaringan komputer raksasa yakni terdiri dari jutaan LAN, MAN
dan WAN yang terhubung dan dapat saling berinteraksi. Hal ini dapat terjadi
karena adanya perkembangan teknologi
jaringan yang sangat pesat, sehingga dalam beberapa tahun saja jumlah pengguna
jaringan komputer yang tergabung dalam internet berlipat ganda, karena dengan
internet para pengguna dapat melakukan komunikasi tanpa adanya batasan
geografis.
1) IP (Internet Protocol)
Menurut Forouzan (2007), Internet Protocol (IP) adalah lapisan jaringan
host-to-host yang mengirimkan protokol kepada internet. IP merupakan protokol datagram yang diandalkan dan connectionless, serta merupakan upaya terbaik dalam pengiriman layanan karena IP menyediakan kontrol
tidak adanya kesalahan dan aliran. IP hanya menggunakan mekanisme
deteksi kesalahan dan menyingkirkan paket jika paket tersebut rusak. IP
melakukan yang terbaik untuk mengirimkan suatu paket kepada
tujuannya, tetapi dengan tidak adanya jaminan.
Model Open System Interconnection (OSI)
model Open System Interconnection (OSI) dikembangkan oleh
merancang komunikasi komputer dan sebagai kerangka dasar untuk
mengembangkan protokol lainnya. OSI terdiri dari tujuh layer dan
standar OSI telah diterima di industri komunikasi yang mana dipakai
untuk mengatur karakteristik, elektrik dan prosedur dari perlengkapan
komunikasi. Model Open System Interconnection (OSI) Layer digambarkan seperti pada gambar berikut :
Gambar 2.2 OSI Model • Application Layer
Berfungsi sebagai antarmuka dengan aplikasi dengan fungsionalitas
jaringan, mengatur bagaimana aplikasi dapat mengakses jaringan,
dan kemudian membuat pesan-pesan kesalahan. Protokol yang
berada dalam lapisan ini adalah HTTP, FTP, SMTP, dan NFS.
• Presentation Layer
Berfungsi untuk mentranslasikan data yang hendak ditransmisikan
jaringan. Protokol yang berada dalam level ini adalah perangkat
lunak redirektor (redirector software), seperti layanan Workstation
(dalam Windows NT) dan juga Network shell (semacam Virtual Network Computing (VNC) atau Remote Desktop Protocol (RDP)).
• Session Layer
Berfungsi untuk mendefinisikan bagaimana koneksi dapat dibuat,
dipelihara, atau dihancurkan. Selain itu, di level ini juga dilakukan
resolusi nama.
• Transport Layer
Berfungsi untuk memecah data ke dalam paket-paket data serta
memberikan nomor urut ke paket-paket tersebut sehingga dapat
disusun kembali pada sisi tujuan setelah diterima. Selain itu, pada
level ini juga membuat sebuah tanda bahwa paket diterima dengan
sukses (acknowledgement), dan mentransmisikan ulang terhadp
paket-paket yang hilang di tengah jalan.
• Network Layer
Berfungsi untuk mendefinisikan alamat-alamat IP, membuat
header untuk paket-paket, dan kemudian melakukan routing
melalui internetworking dengan menggunakan router dan switch layer-3.
• Data Link Layer
Befungsi untuk menentukan bagaimana bit-bit data dikelompokkan
ini terjadi koreksi kesalahan, flow control, pengalamatan perangkat keras (seperti halnya Media Access Control Address (MAC
Address)), dan menetukan bagaimana perangkat-perangkat jaringan
seperti hub, bridge, repeater, dan switch layer 2 beroperasi. Spesifikasi IEEE 802, membagi level ini menjadi dua level anak, yaitu lapisan Logical Link Control (LLC) dan lapisan Media Access Control (MAC).
• Physical Layer
Berfungsi untuk mendefinisikan media transmisi jaringan, metode
pensinyalan, sinkronisasi bit, arsitektur jaringan (seperti halnya
Ethernet atau Token Ring), topologi jaringan dan pengabelan.
Selain itu, level ini juga mendefinisikan bagaimana Network Interface Card (NIC) dapat berinteraksi dengan media kabel atau radio[4].
Model TCP/IP
Dalam perpindahan data pada jaringan komputer, sebagai alamat
tujuan dalam jaringan adalah menggunakan Internet Protocol address
atau yang biasa dikenal dengan IP address. IP address digunakan sebagai pengalamatan dalam jaringan komputer, konsep ini
berdasarkan dari konsep TCP/IP, yang digunakan sebagai dasar dalam
komputer dewasa. Penentuan IP address dapat ditentukan dengan berbagai cara, namun ada aturan-aturan yang harus dipenuhi guna
menjaga kemudahan dalam manajemen jaringan.
Transfer Control Protocol / Internet Protocol atau biasa dikenal dengan TCP/IP adalah hasil riset yang dikembangkan badan
pertahanan Amerika Serikat yang awalnya diberi nama ARPANET.
Sama seperti arsitektur OSI, TCP/IP juga menggunakan sistem
layering. Jika arsitektur OSI dikenal dengan seven layer OSI, karena memiliki tujuh layer arsitektur.
Sedangkan TCP/IP hanya mempunyai empat layer arsitektur, yaitu
application layer dan transport layer dari segi protocol dan internet serta network access pada bagian networks.
Model TCP/IP Layer digambarkan seperti pada gambar 2.12 berikut :
HTTP (Hyper Text Transfer Protocol)
Hypertext Transfer Protocol (HTTP) adalah sebuah protokol jaringan lapisan aplikasi yang digunakan untuk sistem informasi
terdistribusi, kolaboratif, dan menggunakan hipermedia.
Penggunaannya banyak pada pengambilan sumber daya yang saling
terhubung dengan tautan, yang disebut dengan dokumenhiperteks,
yang kemudian membentuk World Wide Web pada
tahun 1990 oleh fisikawan Inggris, Tim Berners-Lee. Hingga kini, ada
dua versi mayor dari protokol HTTP, yakni HTTP/1.0 yang
menggunakan koneksi terpisah untuk setiap dokumen, dan HTTP/1.1
yang dapat menggunakan koneksi yang sama untuk melakukan
transaksi. Dengan demikian, HTTP/1.1 bisa lebih cepat karena
memang tidak perlu membuang waktu untuk pembuatan koneksi
berulang-ulang.
Pengembangan standar HTTP telah dilaksanakan oleh Konsorsium
World Wide Web (World Wide Web Consortium/W3C) dan
juga Internet Engineering Task Force (IETF), yang berujung pada
publikasi beberapa dokumen Request for Comments (RFC), dan yang
paling banyak dirujuk adalah RFC 2616 (yang dipublikasikan pada
bulan Juni 1999), yang mendefinisikan HTTP/1.1.
Dukungan untuk HTTP/1.1 yang belum disahkan, yang pada waktu
itu RFC 2068, secara cepat diadopsi oleh banyak
Hingga Maret 1996, HTTP/1.1 yang belum disahkan itu didukung
oleh Netscape 2.0, Netscape Navigator Gold 2.01, Mosaic 2.7, Lynx
2.5, dan dalam Microsoft Internet Explorer 3.0. Adopsi yang
dilakukan oleh pengguna akhir penjelajah Web pun juga cepat. HTTP
adalah sebuah protokol meminta/menjawab antara klien dan server.
Sebuah klien HTTP (seperti web browser atau robot dan lain
sebagainya), biasanya memulai permintaan dengan membuat
hubungan ke port tertentu di sebuah server Webhosting tertentu
(biasanya port 80). Klien yang mengirimkan permintaan HTTP juga
dikenal dengan user agent. Server yang meresponsnya, yang
menyimpan sumber daya seperti berkas HTML dan gambar, dikenal
juga sebagai origin server. Di antara user agent dan juga origin server,
bisa saja ada penghubung, seperti halnya proxy, gateway, dan
juga tunnel.
HTTP tidaklah terbatas untuk penggunaan dengan TCP/IP, meskipun
HTTP merupakan salah satu protokol aplikasi TCP/IP paling populer
melalui Internet. Memang HTTP dapat diimplementasikan di atas
protokol yang lain di atas Internet atau di atas jaringan lainnya. seperti
disebutkan dalam "implemented on top of any other protocol on the
Internet, or on other networks.", tapi HTTP membutuhkan sebuah
protokol lapisan transport yang dapat diandalkan. Protokol lainnya
yang menyediakan layanan dan jaminan seperti itu juga dapat
HTTP menetapkan sembilan metode (kadang disebut "verbs") yang
menunjukkan tindakan yang ingin dilakukan
terhadap sumber teridentifikasi. Hal yang diwakili sumber ini, berupa data yang sudah ada atau data yang diciptakan secara dinamis,
bergantung pada implementasi peladen. Biasanya sumber ini berkaitan
dengan berkas atau keluaran dari berkas pelaksana yang menetap di
peladen.
HEAD
Meminta tanggapan yang identik dengan tanggapan yang sesuai
dengan permintaan GET, namun tanpa badan tanggapan. Ini berguna
untuk mengakses informasi meta yang tertulis dalam kepala tanggapan
tanpa perlu mengangkut seluruh konten.
GET
Meminta representasi sumber tertentu. Permintaan menggunakan GET
(dan beberapa metode HTTP lain) "tidak boleh memiliki kepentingan
melakukan tindakan selain pengaksesan". W3C telah menerbitkan
prinsip panduan mengenai perbedaan ini dengan menyatakan,
"desainaplikasi web harus mematuhi prinsip di atas, serta batasan
POST
Mengirimkan data untuk diproses (misalnya dari bentuk HTML) ke
sumber teridentifikasi. Data dimasukkan dalam badan permintaan. Ini
dapat menghasilkan pembentukan sumber baru atau pemutakhiran
sumber yang sudah ada atau keduanya.
PUT
Mengunggah representasi sumber tertentu.
DELETE
Menghapus sumber tertentu.
TRACE
Menggaungkan kembali permintaan yang diterima, sehingga klien
dapat melihat perubahan atau tambahan yang dilakukan oleh peladen
perantara.
OPTIONS
Mengembalikan metode HTTP yang didukung peladen
untuk URL tertentu. Ini dapat digunakan untuk memeriksa
fungsionalitas peladen web dengan meminta '*' daripada
fungsionalitas sumber tertentu.
PATCH
Menerapkan modifikasi parsial terhadap sumber.
Peladen HTTP diminta untuk mengimplementasikan sedikitnya
2.4 Kriptografi
Kriptografi adalah ilmu sekaligus seni untuk menjaga kerahasiaan pesan
dengan cara menyamarkannya menjadi bentuk tersandi yang tidak mempunyai
makna . Bentuk tersandi ini hanya dapat dibaca oleh pihak yang berhak
membacanya. Pesan yang akan dirahasiakan sebelum disamarkan disebut
plainteks, sedangkan pesan setelah disamarkan disebut chiperteks. Proses
penyamaran plainteks ke chiperteks disebut enkripsi, sedangkan pengembalian
chiperteks menjadi plainteks semula disebut dekripsi[5].
2.4.1 Sejarah
Kriptografi telah lama digunakan oleh tentara Sparta di Yunani sekitar
tahun 400 SM. Mereka menggunakan alat yang disebut scytale. Alat ini terbuat dari daun papirus yang dililitkan pada batang silinder. Pesan yang akan dikirim
ditulis horizontal. Setelah ditulis, daun dilepaskan dari batang kemudian
dikirimkan ke penerima. Penerima dapat membaca pesan tersebut setelah
melilitkan kembali daun tersebut pada batang silinder dengan ukuran diameter
yang sama. Teknik ini dikenal dengan nama transposisi chiper yang merupakan
metode enkripsi tertua . Pada zaman Romawi kuno, Julius Caesar juga
menggunakan kriptografi untuk mengirimkan pesannya. Pesan yang ia kirimkan
ditulis dengan mengganti alfabet dengan alfabet lain dengan kunci tertentu. Sang
penerima tentu saja telah diberi tahu kunci tersebut. Cara menyandikannya adalah
dengan mengganti semua susunan alfabet dengan alfabet yang posisinya berada
setelah alfabet tersebut tergantung kunci. Sebagai contoh, Julius Caesar mengganti
menggunakan mesin untuk mengrenkripsi pesan yang dikirimkan Hitler ke
tentaranya yang bernama mesin enigma. Jerman meyakini kode-kode enkripsi dari mesin tersebut tidak dapat dipecahkan karena memiliki sekitar 15 milyar
kemungkinan untuk mendekripsikannya. Kenyataannya sekutu mampu
mendekripsikannya sehingga mesin tersebut beberapa kali memgalami
perubahan[5].
2.4.2 Jenis Algoritma Kriptografi
Berdasarkan kunci yang dipakai, algoritma kriptografi dibagi menjadi tiga
macam yaitu
1) Hash Function
Fungsi hash sering disebut sebagai fungsi satu arah (one-way function). Fungsi ini mengubah suatu input menjadi output, tetapi output tersebut tidak dapat dikembalikan menjadi bentuk semula. Salah satu
manfaatnya adalah penggunaan sidik jari (fingerprint). Sidik jari digunakan sebagai identitas pengirim pesan. Fungsi lain adalah untuk
kompresi dan message digest. Contoh algoritma fungsi ini adalah MD-5 dan SHA.
2) Asimetri
Pada algoritma ini, digunakan dua buah kunci yang
berhubungan yang disebut dengan kunci umum dan kunci pribadi. Kunci
umum dapat dipublikasikan sehingga pesan dapat dienkripsikan tetapi
tidak dapat didekripsikan dengan kunci tersebut. Kunci pribadi hanya
yang terenkripsi. Algoritma yang menggunakan kunci umum dan publik
ini antara lain Digital Signature Algorithm (DSA), Rivest- Shamir-Adleman (RSA), Diffie-ellman (DH), dan sebegainya.
3) Simetri
Algoritma ini menggunakan kunci yang sama untuk mengenkripsi
dan mendekripsi data. Untuk mendekripsikan data, penerima
menggunakan kunci yang sama dengan kunci yang digunakan pengirim
untuk mengenkripsi data. Contoh dari algoritma ini adalah Data Encryption Standard (DES), International Data Encryption Algorithm
(IDEA), Advanced Encryption Standard (AES), dan sebagainya[5].
2.4.3 ALGORITMA RSA(Rivest, Shamir dan Adleman)
Dari sekian banyak algoritma kriptografi kunci-publik yang pernah dibuat,
algoritma yang paling populer adalah algoritma RSA. Algoritma RSA dibuat oleh 3 orang peneliti dari MIT (Massachussets Institute of Technology) pada tahun 1976,
yaitu: Ron (R)ivest, Adi (S)hamir, dan Leonard (A)dleman. Keamanan algoritma
RSA terletak pada sulitnya memfaktorkan bilangan yang besar menjadi
faktor-faktor prima. Pemfaktor-faktoran dilakukan untuk memperoleh kunci privat. Selama
pemfaktoran bilangan besar menjadi faktor-faktor prima belum ditemukan
algoritma yang ringkas ,maka selama itu pula keamanan algoritma RSA tetap
terjamin
1. Properti Algoritma RSA
1. p dan q bilangan prima (rahasia)
2. n = p q (tidak rahasia)
3. (n) = (p – 1)(q – 1) (rahasia)
4. e (kunci enkripsi) (tidak rahasia) 5. d (kunci dekripsi) (rahasia) 6. m (plainteks) (rahasia) 7. c (cipherteks) (tidak rahasia)
2. Algoritma Membangkitkan Pasangan Kunci
1. Pilih dua buah bilangan prima sembarang, p dan q.
2. Hitung n = p q (sebaiknya p q, sebab jika p = q maka n =
p2 sehingga p dapat diperoleh dengan menarik akar pangkat dua dari n).
3. Hitung (n) = (p – 1)(q – 1).
4. Pilih kunci publik, e, yang relatif prima terhadap (n). 5. Bangkitkan kunci privat dengan menggunakan persamaan
e d 1 (mod (n)).
Akan terdapat bilangan bulat k yang memberikan bilangan bulat d. Hasil dari algoritma di atas:
- Kunci publik adalah pasangan (e, n)
- Kunci privat adalah pasangan (d, n)
Catatan: n tidak bersifat rahasia, namun ia diperlukan pada perhitungan enkripsi/dekripsi.
kunci privat miliknya. A memilih p = 47 dan q = 71 (keduanya prima).
Selanjutnya, A menghitung
n = p q = 3337 dan
(n)= (p – 1)(q – 1) = 3220.
A memilih kunci publik e = 79, karena 79 relatif prima dengan 3220. A mengumumkan nilai e dan n.
Selanjutnya A menghitung kunci dekripsi d seperti yang dituliskan pada langkah instruksi 5 dengan menggunakan persamaan,
Dengan mencoba nilai-nilai k = 1, 2, 3, …, diperoleh nilai d yang bulat adalah 1019. Ini adalah kunci privat untuk mendekripsi
pesan. Kunci ini harus dirahasiakan oleh A. Kunci publik: (e = 79, n = 3337)
Kunci privat: (d = 1019, n = 3337)
3. Algoritma Enkripsi/Dekripsi
Enkripsi
1. Ambil kunci publik penerima pesan, e, dan modulus n. 2. Nyatakan plainteks m menjadi blok-blok m1, m2, …,
sedemikian sehingga setiap blok merepresentasikan nilai di
3. Setiap blok mi dienkripsi menjadi blok ci dengan rumus
ci = mi e mod n Dekripsi
1. Setiap blok cipherteks ci didekripsi kembali menjadi blok mi
dengan rumus
mi = ci d mod n
Contoh 15.2. Misalkan B mengirim pesan kepada A. Pesan (plainteks) yang akan dikirim oleh A adalah
m = HARI INI
atau dalam sistem desimal (pengkodean ASCII) adalah
7265827332737873
B memecah m menjadi blok yang lebih kecil, misalnya m dipecah menjadi enam blok yang berukuran 3 digit:
m1 = 726 m4 = 273
m2 = 582 m5 = 787
m3 = 733 m6 = 003
Nilai-nilai mi ini masih terletak di dalam selang [0, 3337 – 1] agar transformasi menjadi satu-ke-satu.
B mengetahui kunci publik A adalah e = 79 dan n = 3337. A dapat mengenkripsisikan setiap blok plainteks sebagai berikut:
c3 = 73379 mod 3337 = 1743; c4 = 27379 mod 3337 = 933;
c5 = 78779 mod 3337 = 1731; c6 = 00379 mod 3337 = 158 Jadi, cipherteks yang dihasilkan adalah
c = 215 776 1743 933 1731 158.
Dekripsi dilakukan dengan menggunakan kunci privat
d = 1019
Blok-blok cipherteks didekripsikan sebagai berikut:
m1 = 2151019 mod 3337 = 726
m2 = 7761019 mod 3337 = 582
m3 = 17431019 mod 3337 = 733
…
Blok plainteks yang lain dikembalikan dengan cara yang serupa.
Akhirnya kita memperoleh kembali plainteks semula
m = 7265827332737873
yang dalam sistem pengkodean ASCII adalah
m = HARI INI[5].
2.5 Android
Android adalah sistem operasi bergerak (mobile operating system)
yang mengadopsi sistem operasi linux,namun sudah dimodifikasi. Android
telah diambil alih oleh Gogle pada tahun 2005 dari Android, Inc sebagai
bagian strategi untuk mengisi pasar sistem operasi bergerak. Gogle
mengambil alih seluruh hasil kerja Android termasuk tim yang
Gogle menginginkan agar Android bersifat terbuka dan gratis, oleh
karena itu hampir setiap kode program Android diluncurkan berdasarkan
lisensi open-source Apache yang berarti bahwa semua orang yang ingin menggunakan Android dapat men-download penuh source code-nya.
Di samping itu produsen perangkat keras juga dapat menambhkan
extension-nya sendiri ke dalam Android menarik bagi vendor-vendor
perangkat keras
Keuntungan utama dari Android adalah adanya pendekatan aplikasi
secara terpadu. Pengembang hanya berkonsentrasi pada aplikasi
saja,aplikasi tersebut bisa berjalan pada beberapa perangkat yang berbeda
selama masih ditenagai oleh Android[6]
Android dipuji sebagai “platform mobile pertama yang Lengkap,
Terbuka, dan Bebas”.
1) Lengkap (Complete Platform): Para desainer dapat melakukan pendekatan yang komperhensif ketika meeka sedang mengembangkan
platform android. Android merupakan sistem operasi yang amandan abnyak menyediakan tools dan membangun software dan memungkinkan untuk peluang pengembangan aplikasi.
2) Terbuka (Open Source Platform): Platform Android disediakan melalui lisensi open source. Pengembang dapat dengan bebas untuk
3) Free(Free Platform): Android adalah platform/aplikasi yang bebas untuk develop. Tidak ada lisensi atau biaya royalty utuk dikrmbangkan
pada platform Android. Tidak ada biaya keanggotaan diperlukan. Tidak diperlukan biaya pengujian. Tidak ada kontrak yang diperlukan. Aplikasi
untuk android dapat didistribusikan dan diperdagangkan dalam bentuk apa
pun.
Android merupakan generasi baru platform mobile, platform yang memberikan pengembang untuk melakukan pengembangan sesuai yang
diharapkannya. Sistem operasi yang mendasariAndroid dilisensikan di
bawah GNU, General Public Lisensi Versi 2 (GPLv2), yang sering dikenal
dengan istilah “copyleft” lisensi dimana setiap perbaikan pihak ketiga
harus terus jatuh di bawah terms. Android didistribusikan dibawah Lisensi
Apache Software (ASL/Apache2), yang memungkinkan untuk distribusi kedua dan seterusnya.
Arsitektur dari Android secara garis besar dapat dijaelaskan dalam
lima hal di bawah ini:
1) Applications dan Widgets
Applications dan Widgets adalah layer dimana kita berhubungan dengan aplikasi saja, dimana biasanya kita download aplikasi kemudian kita lakukan instalasi dan jalankan aplikasi tersebut
Android adalah “ Open Development Platform” yaitu Android
menawarkan kepada pengembang atau memberi kemampuan kepada
pengembang untuk membangun aplikasi yang bagus dan inovatif.
Pengembang bebas untuk mengakses perangkat keras, akses informasi
resources, menjalankan service background, mengatur alarm, dan menambahkan status notifications, dan sebagainya.
Komponen-komponen yang termasuk di dalam Applications Frameworks
adalah sebagai berikut [7]:
a) Views
b) Content Provider
c) Resource Manager
d) Notification Manager
e) Activity Manager
3) Libraries
Libraries ini adalah layer dimana fitur-fitur Android berada, biasanya para pembuat aplikasi mengakses Libraries untuk menjalankan aplikasinya. Berjalan di atas kernel, Layer ini meliputi Library C/C++ inti seperti Libc dan SSL, serta:
a) libraries media untuk pemutaran audio dan Video b) libraries untuk manajemen tampilan
d) libraries SQLite untuk mendukung database
e) libraries SSL dan WebKit terintegrasi dengan web browser dan
security
f) libraries LiveWebscore mencakup modern modern web browser
dengan engine embedded web view
g) libraries 3D yang mencakup implementasi OpenGL ES 1.0API’s
4) Android Run Time
Layer yang membuat aplikasi Android dapat dijalankan dimana dalam prosesnya menggunakan implementasi Linux. Dalvik Virtual
Machine (DVM) merupakan mesin yang membentuk dasar kerangka
aplikasi Android. Di dalam Android Run Time dibagi menjadi dua bagian yaitu. Core Libraries: Aplikasi android dibangun dalam bahasa java, sementara Dalvik sebagai virtual mesinnya bukan Virtual Machine Java,
sehingga diperlukan sebuah Libraries yang berfungsi untuk menterjemahkan bahasa java/c yang ditangani oleh Core Libraries
a) Dalvik Virtual Machine: Virtual mesin berbasis register
yadioptimalkan untuk menjalankan fungsi-fungsi secara efisien, di man
merupakan pengembangan yang mampu membuat linux kernel untuk
melakukan threading dan manajemen tingkat rendah.
5) Linux Kernel: Linux Kernel adalah layer dimana inti dari operating
processing, memory, resource, drivers, dan sistem-sistem operasi android lainnya. Linux kernel yang sigunakan android adalah linux kernel release 2.6.
Aplikasi Android ditulis dalam bahasa pemrograman java. Kode
java dikompilasi bersama dengan data file resource yang dibutuhkan oeh aplikasi, di mana prosesnya dipackage oleh toolsyang dinamakan “apt
tools” ke dalam paket Android sehingga menghasilkan file dengan ekstensi
apk. File apk itulah yang kita sebut dengan aplikasi, dan nantinya dapat diinstall di perangkat mobile. komponen dari aplikasi android yaitu:
6) Activities
Suatu activity akan menyajikan user interface (UI) kepada
pengguna, sehingga pengguna dapat melakukan interaksi. Sebuah aplikasi
android bias jadi hanya memiliki satu activity,tetapi umumnya aplikasi memiliki banyak activity tergantung pada tujuan dan desain dari aplikasi tersebut. Satu activity biasanya akan dipakai untuk menampilkan aplikasi atau yang bertindak sebagai user interface (UI) saat aplikasi diperlihatkan kepada user. Untuk pidah dari satu avtivity ke activity yang lain kita dapat melakukannya dengan satu even, misalnya click tombol, memilih opsi atau menggunakan triggers tertentu. Secara hirarki sebuah windows activity
7) Service
Service tidak memilki Graphic User Interface (GUI), tetapi berjalan secara background, sebagai contoh dalam memainkan music,
service mungkin memainka music atau mengambil data dari jaringan, tetapi setiap service harus berada dalam kelas induknya.
8) Broadcast Receiver
Broadcast Receiver berfungsi menerimadan bereaksi untuk menyampaikan notifikasi. Contoh broadcast seperti notifikasi zina waktu berubah, baterai low, gambar selesei diambil oleh camera, atau perubahan referensi bahasa yang digunakan.
Broadcast Receiver tidak memiliki user interface (UI), tetapi memilik sebuah activity untuk merespon informasi yang mereka terima, atau mungkin menggunaka Notification Manager untuk memberitahu kepada pengguna, seperti lampu latar atau vibrating (getaran) perangkat, dan lain sebagainya.
9) Content Provider
2.6 UML ( Unified Modelling Language)
Unified Modelling Language adalah sebuah standar bahasa yang banyak digunakan di dunia industri untuk mendefinisikan requirement, membuat analisis dan desain, serta menggambarkan arsitekstur dalam pemrograman berorientasi
objek
1. Use Case Diagram
Use Case atau diagram use case merupakan pemodelan untuk kelakukan
(behavior) sistem informasi yang dibuat.Use Case mendeskripsikan sebuah interaksi antara satu atau lebih actor dengan sistem informasi yang akan dibuat.
Secara kasar, use case digunakan untuk mengetahui fungsi apa saja yang ada di dalam sebuah sistem informasi dan siapa saja yang berhak menggunakan
fungsi-fungsi itu.
Syarat penamaan pada use case adalah nama didefinisikan sesimpel mungkin dan dapat dipahami. Ada dua hal utama pada use case yaitu pendefinisian apa yang disebut actor dan use case.
- Aktor merupakan orang, proses, atau sistem lain yang berinteraksi
dengan sistem informasi yang akan dibuat di luar sistem informasi yang akan
dibuat itu sendiri, jadi walaupun symbol dari aktor adalah gambar orang tetapi
- Use Case merupakan fungsionalitas yang diseiakan sistem sebagai unit-unit yang saling bertukar pesan antar unit-unit atau actor.Berikut adalah symbol-simbol
yang ada pada diagram usecase :
Tabel 2.1 Simbol Pada Diagram Use Case
Simbol Deskripsi
Use Case Fungsionalitas yang disediakan sistem
sebagai unit-unit yang saling bertukar
pesan antar unit atau aktor.
Aktor Orang, proses atau sistem lain yang
berinteraksi dengan sistem informasi
yang akan dibuat itu sendiri, jadi
walaupun symbol dari ator adalah
gambar orang, tapi aktor belim tentu
merupakan orang ; biasanya dinyatakan
menggunakan kata benda di awal frase
nama aktor
Asosiasi Relasi antar kelas dengan makna
umum, asosiasi biasanya disertai
multiplicity
Ekstensi
………
Relasi use case tambahan ke sebuah
use case dimana use case yang ditambahkan dapat berdiri sendiri
walau tanpa use case tambahan itu; mirip denganprinsip inheritance pada pemrograman berorientasi objek;
biasanya use case tambahan memiliki nama depan yang sama dengnan use case yang ditambahkan.
Generalisasi Hubungan generalisasi-spesialisasi(
umum khusus)antara dua buah use case
dimana fungsi yang satu adalah fungsi
yang lebih umu dari lainnya.
Menggunakan / include / uses
<< include >>
………
<<uses>>
Fungsinya atau sebagai syarat
dijalankan use case ini
Ada dua sudut padang yang cukup
besar mengenai unclude di use case :
- include berarti use case
yang dipanggil saat use case tambahan dijalankan - incude berarti use case
yang tambahan akan selalu
apakah use case yang ditambahkan telah
dijalnkan sebelum use case tambahan dijalankan
Kedua interpretasi diatas dapat dianut
tergantung pada pertimbangan dan
interpretasi yang dibutuhkan
2. Sequence diagram
Diagram sekuen menggambarkan kelakuan objek pada use case
dengan mendeskripsikan waktu hidup objek dan message yang dikirimkan dan diterima antar objek . Oleh karena itu untuk menggambar diagram
sekuen maka harus diketahui objek-objek yang terlibat dalam sebuah use case beserta metode-metode yang dimiliki kelas yang diinstansiasi menjadi objek itu.
Banyaknya diagram sekuen yang harus digambar adalah sebanyak
pendefinisian use case yang memiliki proses sendiri atau yang penting semua use case yang telah didefinisika interaksi jalannya pesan sudah dicakup pada diagram sekuen sehingga semakn banyak use case yang didefinisikan maka diagram sekuen yang harus dibuat juga semakin
Tabel 2.2 Simbol Pada Diagram Sequence
Simbol Deskripsi
Aktor
Nama aktor
Atau
tanpa waktu aktif
Orang, proses, atau sistem lain yang
berinteraksi dengan sistem informasi
yang akan dibuat di luar sistem
informasi yang akan diuat itu sendiri,
jadi walaupun simbol dari aktor adalah
gambar orang, tapi belum tentu
merupakan orang ; biasana dinyatakan
menggunakan kata benda di awal frase
nama aktor
Garis Hidup / lifeline Menyatakan kehidupan suatu objek
Objek Menyatakan objek berinteraksi pesan
Waktu aktif Menyatakan objek dalam keadaan aktif
dan berinteraksi pesan
nama aktor
Pesan tipe create
<<create>>
Menyatakan suatu objek membuat
objek yang lain, arah panah mengarah
pada objek yang dibuat
Pesan tipe call
1 : nama_metode()
Menyatakan suatu objek memanggil
operasi/metode yang ada pada objek
lain atau dirinya sendiri, arah panah
mengarah pada objek yang memiliki
operasi/metode, karena ini memanggil
operasi/metode yang dipanggil harus
ada pada diagram kelas sesuai dengan
kelas objek yang berinteraksi.
Pesan tipe send
1 : masukan
Menyatakan bahwa suatu objek
mengirimkan data/masukan/informasi
ke objek lainna, arah panah mengarah
pada objek yang dikirimi
Pesan tipe return
1 : keluaran
---
Menyatakan bahwa suatu objek yang
telah menjalankan suatu operasi atau
metode menghaasilkan suatu kmbalian
ke objek tertentu, arah panah mengarah
Pesan tipe destroy
<<destroy>>
Menyatakan suatu objek mengakhiri
hidup objek lain, arah paah mengarah
pada objek yang diakhiri, sebaiknya
jika ada create maka ada destroy
3. Class Diagram
Diagram kelas atau class diagram menggambarkan struktur sistem dari segi pendefinisian kelas-kelas yang akan dibuat untuk
membangun sistem. Kelas memiliki aoa yang disebut atribut dan metode
atau operasi. Atribtut merupakan variable-variabel yang dimiliki oleh
suatu kelas. Operasi adalaah fungsi-fungsi yang dimiliki oleh suatu kelas.
Berikut adalah susunan struktur kelas yang baik pada diagram kelas :
1) Kelas Main
Kelas yang memiliki fungsi dieksekusi ketika sistem dijalankan
2) Kelas yang menangani tampilan sistem.
Kelas yang mendefinisikan dan mengatur tampilan ke pemakai
3) Kelas yang diambildari pendefinisian use case.
Kelas yang menangani fungsi-fungsi yang harus ada diambi; dari
pendefinisian use case
4) Kelas yang diambil dari pendefinisian data.
Kelas yang digunakan untuk memegang atau membungkus data
menjadi sebuah kesatuan diambil maupun akn disimpan ke basis data
Dalam mendefinisikan metode yang ada dala kelas perlu
memperhatikan apa yang disebut degan cohesion dan coupling. Cohesion
terkait satu sama lain. Sedangkan coupling adalah ukuran seberapa dekat keterkaitan instruksi abtara metode yang satu dengan metode yang lain
dalam sebuah kelas. Sebagai aturan secara umum maka sebuah metode
yang harus dibuat harus memiliki kadar cohesion yang kuat dan kadar
coupling yang lemah. Berikut Simbol-simbol yang ada pada diagram kelas : [8]
Tabel 2.3 Simbol Pada Diagram Class
Simbol Deskripsi
Kelas
Nama_kelas
+atribut
+operasi()
Kelas berdasar struktur sistem
Antarmuka / interface
nama_interface
Sama dengan konsep interface pada pemrograman berorientasi objek
Asosiasi / association Relasi antar kelas denngan makna umum, asosiasi biasanya juga disertai
dengan multiplicity
Asosiasi berarah / directed association Relasi antar kelas dengan makna kelas yang satu digunakan oleh kelas
yang lain, asosiasi biasanya juga
disertai dengan multiplicity
Generalisasi Relasi antar kelas dengan makna
khusus)
Kebergantungan / dependency
---
Relasi antar kelas dengan makna
kebergantungan antar kelas
45
BAB III
ANALISA DAN PERANCANGAN SISTEM
3.1 Analisa Sistem
Sistem aplikasi chatting menggunakan algoritma RSA berbasis mobile Android ini berfungsi untuk mengubah isi pesan chatting menjadi chipertext.
Aplikasi Chatting ini akan enkripsi isi pesan chatting dengan bilangan prima yang
menjadi kunci publik penerima, lalu pesan yang telah di enkripsi dikirim ke
penerima. Penerima akan mendekripsi dengan kunci privat
Dalam membangun aplikasi Chatting yang memiliki fitur kriptografi ini
membutuhkan sistem yang akan didefinisikan antara lain :
1. Memiliki kemampuan untuk mengirimkan dan menerima pesan.
2. Memiliki kemampuan untuk mengenkripsi isi pesan
3. Memiliki kemampuan untuk mendekripsi isi pesan
3.2. Perancangan Sistem
Perancangan sistem dibagi menjadi beberapa tahap perancangan, yaitu
3.2.1 Arsitektur Sistem
Pengirim mengirimkan isi program akan langsung mengenkripsi ,lalu
dikirim ke web server, web server akan meneruskan isi pesan chatting kepada
Gambar.3.1 Perancangan penyerangan dan pembangunan Chatting
3.2.2 Perancangan Proses
Perancangan proses dari aplikasi mobile yang akan dibangun disajikan dalam bentuk logic model dengan mengunakan UML (Unified Modeling Language). UML adalah seperangkat aturan dan notasi untuk spesifikasi
1. Use Case Diagram
Gambar 3.2:Use Case Server
Definisi Use Case Aktor: Server
Tabel 3.1: Definisi Use Case Aktor :Server
1 Menyimpan
data
Actor : server
Deskripsi : server menyimpan data
2 Menerima
data
Actor : server
Deskripsi : server menerima data
3 Mengirim
data
Actor : server
Deskripsi : server mengirim data
Aktor : WebServer
Kondisi awal : web server tidak menerima data
Kondisi akhir : web server menerima data dari user
Skenario : Menerima data
Tabel 3.2:Skenario Menerima Data
Actor System
1. Mengirim isi pesan chatting,key
publik
2. menerima data
Kondisi awal : web server tidak ada data
Kondisi akhir : web server menyimpan data dari user
Scenario: Menyimpan data
Tabel 3.3:Skenario menyimpan Data
Actor System
1. Mengirim pesan chatting dan
publik key
2. Menerima dan
menyimpan
Aktor : WebServer
Kondisi awal : web server tidak ada data
Kondisi akhir : web server mengirim data ke penerima
Scenario: Mengirim data
Tabel 3.4:Skenario Mengirim Data
Actor System
2. Mengirim pesan berdasarkan
nama
Definisi Use Case Aktor: User
Tabel 3.5:Definisi Use Case Aktor:User
1 Daftar Actor : user
Deskripsi : user daftar di sistem chatting
2 Login Actor : user
Deskripsi : user dapat Login di sistem
3 chatting Actor : user
Deskripsi : user dapat chatting enkripsi atau dekrip
Aktor : User
Kondisi awal : User belum login
Kondisi akhir : user masuk ke dalam sistem
Scenario: Login
Tabel 3.6:Skenario Login
1. Menekan menu login pada
halaman utama
2. Menampilkan form login
3. memasukan email dan
pass di form login
4. menekan tombol ok
5. check username dan
pass pada tabel login
6. menampilkan halaman
user
Aktor : User
Kondisi awal : User belum terdaftar
Kondisi akhir : user terdaftar dalam sistem
Scenario: Daftar
Tabel 3.7:Skenario Daftar
Actor System
utama
2. Menampilkan form
daftar
3. memasukan email ,nama,alamat dan
password
4. menekan tombol ok
5. simpan data
Aktor : User
Kondisi awal : User masuk ke form chatting
Kondisi akhir : pesan user terenkripsi dan dekripsi secara otomatis
Scenario: Chatting Enkripsi
Tabel 3.9:Skenario Chatting Enkripsi
Actor System
1. tampil halaman halaman user
mengirim pesan chatting
3. menekan tombol send
4. proses enkrip dekrip dengan
2. Activity Diagram
1. Activity Daftar
Gambar 3.5 Activity Diagram Daftar
2. Activity Login
3. Activity Chatting Enkripsi
4. Activity Chatting Dekripsi
Gambar 3.8 Activity Chatting Dekripsi
3. Sequence Diagram
1. Squence Daftar
Gambar 3.11 : Squence Daftar Chatting
Kelas Analisis
Tabel 3.10 Kelas Analisis Daftar
No Nama Kelas Jenis
2 Daftar Interface
3 DaftarController Controller
4 DaftarEntity Entity
2. Squence Login
Kelas Analisis
Tabel 3.11 Kelas Analisis Login
No Nama Kelas Jenis
1 Halaman Utama Interface
2 Login Interface
3 LoginController Controller
4 LoginEntity Entity
3. Squence Enkripsi
Gambar 3.14:Squence Enkripsi
Kelas Analisis
Tabel 3.12 Kelas Analisis Enkripsi
No Nama Kelas Jenis
1 Chatting Interface
4. Squence Dekripsi
Gambar 3.15:Squence Deskripsi
Kelas Analisis
Tabel 3.13 Kelas Analisis Dekripsi
No Nama Kelas Jenis
1 Chatting Interface
2 dekripsi Controller Controller
4. User Interface
1. Rancangan Halaman Utama
2. Rancangan Halaman Daftar Baru
Gambar 3.18 : Rancangan Halaman Daftar Baru
3. Rancangan Halaman Login
Gambar 3.19:Rancangan Halaman Login
4. Rancangan Halaman Chatting