• Tidak ada hasil yang ditemukan

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

N/A
N/A
Protected

Academic year: 2019

Membagikan "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"

Copied!
113
0
0

Teks penuh

(1)

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

(2)

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

(3)
(4)
(5)

v

HALAMAN PERSEMBAHAN

Taruh Semua Angan-Angan dan cita-citamu

di depan keningmu 5 cm supaya tidak lepas dari

jangkauanmu

(6)

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

(7)

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,

(8)

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

(9)

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

(10)

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

(11)

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

(12)

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

(13)

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

(14)

xiv

Bab VI ...95

PENUTUP ...95

6.1 Kesimpulan ... 95

(15)

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

(16)

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

(17)

xvii

Gambar 5.11 : mereject akses dari gogle chrome ...92

Gambar 5.12 : mereject akses dari firefox ...92

(18)

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

(19)

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

(20)

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

(21)

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.

(22)

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,

(23)

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

(24)

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

(25)

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

(26)

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

(27)

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

(28)

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

(29)

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

(30)

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

(31)

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

(32)

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

(33)

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

(34)

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

(35)

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 :

(36)

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

(37)

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

(38)

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

(39)

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

(40)

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

(41)

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

(42)

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

(43)

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.

(44)

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

(45)

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:

(46)

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

(47)

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

(48)

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

(49)

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

(50)

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

(51)

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

(52)

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

(53)

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

(54)

- 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

(55)

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

(56)

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

(57)

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

(58)

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

(59)

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

(60)

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

(61)

khusus)

Kebergantungan / dependency

---

Relasi antar kelas dengan makna

kebergantungan antar kelas

(62)

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

(63)

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

(64)

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

(65)

1. Use Case Diagram

Gambar 3.2:Use Case Server

(66)

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

(67)

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

(68)

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

(69)

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

(70)

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

(71)

mengirim pesan chatting

3. menekan tombol send

4. proses enkrip dekrip dengan

(72)

2. Activity Diagram

(73)

1. Activity Daftar

Gambar 3.5 Activity Diagram Daftar

2. Activity Login

(74)

3. Activity Chatting Enkripsi

(75)

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

(76)

2 Daftar Interface

3 DaftarController Controller

4 DaftarEntity Entity

2. Squence Login

(77)

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

(78)

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

(79)

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

Gambar

Gambar 4.1 : Halaman utama chatting .....................................................................
Gambar 5.13 : mereject akses dari web mobile ...................................................93
Gambar 2.1 Prototyping model
Gambar 2.2 OSI Model
+7

Referensi

Dokumen terkait

Hasil akhir yang diperoleh adalah sebuah Sistem Sinkronisasi Data Berbasis Teks yang secara umum dapat berjalan dengan baik sehingga tidak menutup kemungkinan

Hasil akhir dari sistem yang dibuat adalah : aplikasi yang dibangun dapat membantu manajer dalam memperoleh informasi pembelian, penjualan dan stok barang pada grosir yang

dibuat sistem informasi perpustakaan terpadu berbasis web yang dapat digunakan dalam.. otomasi perpustakaan meliputi pengadaan koleksi, pengembangan

Throughput digunakan untuk mengukur unjuk kerja MPLS pada protokol transport TCP dan protokol aplikasi FTP, sedangkan jitter dan datagram loss untuk mengukur

Pada tahun 1964, penelitian yang dilakukan Singleton menghasilkan sebuah kesimpulan, bahwa Reed-Solomon codes merupakan metode error correction terbaik untuk setiap code

Tujuan penyusunan tugas akhir (skripsi) ini adalah untuk membangun sebuah simulasi pembelajaran metode pencarian relatif hash search yang mendukung proses

Hal ini mengindikasikan bahwa untuk jarak 1 meter sampai 4 meter belum ada perubahan dari adanya pengaruh hubungan kuat sinyal dan throughput pada jaringan

Sehingga akan memungkinkan terjadinya kesalahan dalam hasil akhir dari penentuan tersebut yang nantinya akan menghambat kinerja perusahaan.Penelitian ini bertujuan