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

Gratis

0
0
113
7 months ago
Preview
Full text
(1)PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 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 2014 i

(2) PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 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 2014 ii

(3) PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI iii

(4) PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI iv

(5) PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI HALAMAN PERSEMBAHAN Taruh Semua Angan-Angan dan cita-citamu di depan keningmu 5 cm supaya tidak lepas dari jangkauanmu Thanks for supporting v

(6) PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 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 Pambudi vi

(7) PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 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, Thomas Haryo Pambudi vii

(8) PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 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 Kata kunci : Algoritma RSA, php injection viii

(9) PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 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 Key word :RSA Algoritm, PHP injection ix

(10) PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 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. Bapak H.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 urusan administrasi akademik terutama menjelang ujian tugas akhir. x

(11) PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 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 Thomas Haryo Pambudi xi

(12) PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 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 LANDASAN TEORI ...............................................................................................7 2.1 Pengertian SDLC ...................................................................................................... 7 2.2 Prototyping............................................................................................................... 8 2.3 Komunikasi ............................................................................................................ 10 2.4 Jaringan ................................................................................................................... 12 2.4 Kriptografi............................................................................................................... 23 2.4.1 Sejarah.............................................................................................................. 23 xii

(13) PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 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 5.3 Hasil Pengujian ...................................................................................................... 93 xiii

(14) PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI Bab VI ....................................................................................................................95 PENUTUP ..............................................................................................................95 6.1 Kesimpulan ............................................................................................................. 95 6.2 Saran ....................................................................................................................... 95 xiv

(15) PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 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 Tabel 3.13 Kelas Analisis Dekripsi .................................................................61 xv

(16) PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 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 Gambar 5.10 : setting pada server untuk membatasi akses ................................91 xvi

(17) PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI Gambar 5.11 : mereject akses dari gogle chrome ................................................92 Gambar 5.12 : mereject akses dari firefox ...........................................................92 Gambar 5.13 : mereject akses dari web mobile ...................................................93 xvii

(18) PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 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 algoritma kunci asimetris penerima dan pengirim mengubah cipterteks menjadi 1

(19) PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 2 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 menggunakan algoritma RSA?

(20) PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 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 mengamankan isi pesan chatting 3

(21) PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 4 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. 3. Metode penyadapan

(22) PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 5 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, rancangan proses serta rancangan antar muka yang akan digunakan.

(23) PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 6 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 pengujian.

(24) PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 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 Penggabungan elemen konvensional Linear Sequential Model dengan filosofi interatif pada Prototyping 7

(25) PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 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 selanjutnya. Proses ini terus berulang sampai piranti lunak mencapai tahap akhir. 8

(26) PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 9 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 produk akhir (final), kemudian prototype tersebut dibuang (tak dipakai).

(27) PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 2. 10 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 pesan nantinya.

(28) PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 11 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 yang dimaksudkan. [3]

(29) PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 2. 12 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 terdiri dari performa, kehandalan, dan keamanan. Performa dapat diukur dengan

(30) PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 13 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 teknologi Local Area Network (LAN), yang umumnya hanya dibatasi oleh area

(31) PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 14 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 International Standard Organization (ISO) sebagai model untuk

(32) PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 15 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 oleh aplikasi ke dalam format yang dapat ditransmisikan melalui

(33) PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 16 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 menjadi format yang disebut sebagai frame. Selain itu, pada level

(34) PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 17 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 pembentukan jaringan

(35) PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 18 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 : Gambar 2.3 TCP/IP Model

(36) PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI  19 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 pengembang penjelajah Web pada tahun 1996 awal.

(37) PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 20 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 digunakan.

(38) PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 21 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 sejenis."

(39) PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 22 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 metode GET dan HEAD dan jika mungkin, metode OPTIONS[4].

(40) PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 23 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 huruf a, b, dan c menjadi d, e, dan f . Pada perang dunia kedua, Jerman

(41) PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 24 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 boleh digunakan oleh pihak yang berhak untuk mendekripsikan pesan

(42) PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 25 yang terenkripsi. Algoritma yang menggunakan kunci umum dan publik ini antara lain Digital Signature Algorithm (DSA), Rivest- ShamirAdleman (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 faktorfaktor prima. Pemfaktoran 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 Besaran-besaran yang digunakan pada algoritma RSA:

(43) PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 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. Contoh 15.1. Misalkan A akan membangkitkan kunci publik dan 26

(44) PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 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 dalam selang [0, n – 1]. 27

(45) PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 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: c1 = 72679 mod 3337 = 215; c2 = 58279 mod 3337 = 776; 28

(46) PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 29 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 mengembangkan Android.

(47) PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 30 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 mengembangkan aplikasi. Android sendiri menggunakan Linux Kernel 2.6

(48) PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 31 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 2) Applications Frameworks

(49) PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 32 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 c) libraries Graphics mencakup SGL dan OpenGL untuk grafis 2D dan 3D

(50) PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI d) libraries SQLite untuk mendukung database e) libraries SSL dan WebKit terintegrasi dengan web browser dan 33 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 sistem dari Androiditu berada. Berisi file-file system yang mengatur sistem

(51) PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 34 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 tools yang 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 dinyatakan dengan method Activity.setContentView(). ContentView adalah objek yang berada pada root hirarki.

(52) PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 7) 35 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 Content Provider membuat kumpulan aplikasi data secara spesifik sehingga bias digunaka aplikasi lain. Data disimpan dalam file sistem seperti database SQLite.Content Provider menyediakan cara untuk mengakses data yang dibutuhkan oleh sebuah activity. [7]

(53) PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 36 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 fungsifungsi 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 actor belum tentu orang.

(54) PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 37 - Use Case merupakan fungsionalitas yang diseiakan sistem sebagai unitunit yang saling bertukar pesan antar 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 nama use case 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) PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 38 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 Fungsinya atau sebagai syarat dijalankan use case ini << include >> ……………………………… 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 melakukan pengecekan

(56) PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 39 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 banyak.

(57) PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 40 Tabel 2.2 Simbol Pada Diagram Sequence Simbol Deskripsi Aktor Orang, proses, atau sistem lain yang berinteraksi dengan sistem informasi yang akan dibuat di luar sistem informasi yang akan diuat itu sendiri, Nama aktor jadi walaupun simbol dari aktor adalah Atau gambar orang, tapi belum tentu nama aktor merupakan orang ; biasana dinyatakan tanpa waktu aktif menggunakan kata benda di awal frase nama aktor Garis Hidup / lifeline Menyatakan kehidupan suatu objek Objek Menyatakan objek berinteraksi pesan nama objek : nama kelas Waktu aktif Menyatakan objek dalam keadaan aktif dan berinteraksi pesan

(58) PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI Pesan tipe create 41 Menyatakan suatu objek membuat objek yang lain, arah panah mengarah <> Pesan tipe call pada objek yang dibuat Menyatakan suatu objek memanggil operasi/metode yang ada pada objek 1 : nama_metode() 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 Menyatakan bahwa suatu objek mengirimkan data/masukan/informasi 1 : masukan ke objek lainna, arah panah mengarah pada objek yang dikirimi Pesan tipe return Menyatakan bahwa suatu objek yang telah menjalankan suatu operasi atau 1 : keluaran metode menghaasilkan suatu kmbalian ----------------------------ke objek tertentu, arah panah mengarah pada objek yang menerima kembalian

(59) PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI Pesan tipe destroy 42 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 adalah ukuran seberapa dekat keterkaitan intruksi didalam sebuah metode

(60) PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 43 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 Kelas berdasar struktur sistem Nama_kelas +atribut +operasi() Antarmuka / interface nama_interface Asosiasi / association Sama dengan konsep interface pada pemrograman berorientasi objek 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 generalisasi-spesialisasi ( umum

(61) PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI khusus) Kebergantungan / dependency Relasi antar kelas dengan makna ----------------------------------- kebergantungan antar kelas Agregasi / aggregration Relasi antar kelas dengan makna semua-bagian (whole-part) 44

(62) PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 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 perancangan arsitektur sistem, dan pembuatan UML. 45

(63) PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 46 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 penerima dan program akan mendekripsi isi pesan

(64) PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 47 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 sistem perangkat lunak, dikelola dan dibuat oleh Object Management Group. Notasi ini menyediakan satu set elemen grafis untuk permodelan sistem[1].

(65) PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 1. Use Case Diagram Gambar 3.2:Use Case Server Gambar 3.3:UseCase User 48

(66) PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI Definisi Use Case Aktor: Server Tabel 3.1: Definisi Use Case Aktor :Server 1 Menyimpan data 2 Menerima data 3 Mengirim data Actor : server Deskripsi : server menyimpan data Actor : server Deskripsi : server menerima 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 Aktor : WebServer 49

(67) PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 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 1. Mendapat pesan, publik key 50

(68) PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 51 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 Actor System

(69) PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 52 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 1. Menekan menu daftar pada halaman System

(70) PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 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 2. memilih teman online dan 53

(71) PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI mengirim pesan chatting 3. menekan tombol send 4. proses enkrip dekrip dengan rsa 54

(72) PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 2. Activity Diagram Gambar 3.4: Activity Diagram Sistem Menyeluruh 55

(73) PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 1. Activity Daftar Gambar 3.5 Activity Diagram Daftar 2. Activity Login Gambar 3.6 Activity Diagram Login 56

(74) PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 3. Activity Chatting Enkripsi Gambar 3.7 Activity Diagram Chatting Enkripsi 57

(75) PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 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 1 Halaman Utama Interface 58

(76) PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 2 Daftar Interface 3 DaftarController Controller 4 DaftarEntity Entity 2. Squence Login Gambar 3.12 :Squence Login Chatting 59

(77) PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 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 2 Enkripsi Controller Controller 60

(78) PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 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 Gambar 3.17:Rancangan Halaman Utama Chatting 61

(79) PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 2. Rancangan Halaman Daftar Baru 3. Gambar 3.18 : Rancangan Halaman Daftar Baru Rancangan Halaman Login 4. Gambar 3.19:Rancangan Halaman Login Rancangan Halaman Chatting Gambar 3.20 :Rancangan Halaman Chatting. 62

(80) PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI BAB IV IMPLEMENTASI SISTEM .Pada bab ini dibahas mengenai user interface yang dibangun berdasarkan algoritma yang telah dirancang. 4.1 Implementasi User Interface Implementasi sistem chatting di android dengan penambahan fitur keamanan menggunakan RSA ini dibangun dengan menggunakan program eclipse Gambar 4.1 : Halaman utama chatting 63

(81) PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 64 public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.startup); setupMenu(); } .... private void setupMenu() { // Menyusun menu String[] menuList = new String[] { "Login", "Registrasi", "Perihal", "Exit" }; // Find and set up the ListView online friends menulist = new ArrayAdapter(this, R.layout.menu, menuList);//menampilkan menulist array ListView menuq = (ListView) findViewById(R.id.menu1); menuq.setAdapter(menulist); menuq.setOnItemClickListener(menuClickListener);//handling pemilihan menu } Gambar 4.2 : source code awal chatting Pada gambar 4.1 ditunjukkan halaman chatting dengan menggunakan android. Di halaman ini user memilih login atau registrasi jika menekan menu registrasi akan seperti gambar 4.3 dibawah ini.

(82) PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 65 Gambar 4.3 : Halaman Daftar chatting private OnItemClickListener menuClickListener = new OnItemClickListener() { public void onItemClick(AdapterView av, View v, int arg2, long arg3) { setContentView(R.layout.message); String option = ((TextView) v).getText().toString(); if (option.equals("Registrasi")) setContentView(R.layout.register); else if (option.equals("Login")) setContentView(R.layout.signin); else if (option.equals("Exit")) { finish(); } else if (option.equals("Online Friends")) { setContentView(R.layout.list); onFriendSetup(); chatService.findFriend(user, "on"); } else if (option.equals("Offline Friends")) { setContentView(R.layout.oflist); offFriendSetup(); chatService.findFriend(user, "off"); } else if (option.equals("Sign Out")) { chatService.setlogout(user); setContentView(R.layout.startup); setupMenu(); } } }; .... case R.id.completeReg_button:

(83) PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 66 username = (EditText) findViewById(R.id.regname); email = (EditText) findViewById(R.id.email); pass = (EditText) findViewById(R.id.password); nick = (EditText) findViewById(R.id.nickName); user = username.getText().toString(); pwd = pass.getText().toString(); mail = email.getText().toString(); nickname = nick.getText().toString(); chatService.regUser(user, mail, pwd, nickname, "user"); setContentView(R.layout.startup); setupMenu(); break; Gambar 4.4 : source code Registrasi Kemudian user memasukan data-data yang akan disimpan ke web server setelah tombol registrasi ditekan maka data akan dikirim ke web server Gambar 4.5 : Halaman Login chatting private OnItemClickListener menuClickListener = new OnItemClickListener() { public void onItemClick(AdapterView av, View v, int arg2, long arg3) { setContentView(R.layout.message); String option = ((TextView) v).getText().toString(); if (option.equals("Registrasi")) setContentView(R.layout.register); else if (option.equals("Login")) setContentView(R.layout.signin);

(84) PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 67 else if (option.equals("Exit")) { finish(); } else if (option.equals("Online Friends")) { setContentView(R.layout.list); onFriendSetup(); chatService.findFriend(user, "on"); } else if (option.equals("Offline Friends")) { setContentView(R.layout.oflist); offFriendSetup(); chatService.findFriend(user, "off"); } else if (option.equals("Sign Out")) { chatService.setlogout(user); setContentView(R.layout.startup); setupMenu(); } } }; ... case R.id.button_Login: userIn = (EditText) findViewById(R.id.userName); passIn = (EditText) findViewById(R.id.password); user = userIn.getText().toString(); pwd = passIn.getText().toString(); chatService.login(user, pwd); break; Gambar 4.6 : source code Login jika user memilih menu login akan tampi gambar 4.7, user akan diminta username dan password yang telah diregistrasi ke web server dan menekan tombol login.

(85) PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 68 Gambar 4.7 : Halaman User chatting private void setupMenu2() { // Menyusun menu String[] menuList = new String[] { "Online Friends", "Offline Friends", "Sign Out" }; // Find and set up the ListView online friends menulist = new ArrayAdapter(this, R.layout.menu, menuList); ListView menu2 = (ListView) findViewById(R.id.menu1); menu2.setAdapter(menulist); menu2.setOnItemClickListener(menuClickListener); } ... private OnItemClickListener menuClickListener = new OnItemClickListener() { public void onItemClick(AdapterView av, View v, int arg2, long arg3) { setContentView(R.layout.message); String option = ((TextView) v).getText().toString(); if (option.equals("Registrasi")) setContentView(R.layout.register); else if (option.equals("Login")) setContentView(R.layout.signin); else if (option.equals("Exit")) { finish(); } else if (option.equals("Online Friends")) { setContentView(R.layout.list); onFriendSetup(); chatService.findFriend(user, "on"); } else if (option.equals("Offline Friends")) { setContentView(R.layout.oflist); offFriendSetup();

(86) PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 69 chatService.findFriend(user, "off"); } else if (option.equals("Sign Out")) { chatService.setlogout(user); setContentView(R.layout.startup); setupMenu(); } } }; Gambar 4.8 : source code User Chatting Pada Gambar 4.7, jika username dan passwordnya sama dengan yang ada di web server maka akan muncul halaman user chatting dimana user akan memilih temen yang online dan yang offline Gambar 4.9 : Halaman Chatting android private void onFriendSetup() { // Find and set up the ListView online friends friendAdapter = new ArrayAdapter(this, R.layout.friend_temp);

(87) PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 70 ListView online = (ListView) findViewById(R.id.online_list);//terdapat di dalam atribut list.xml online.setAdapter(friendAdapter); online.setOnItemClickListener(friendClickListener); } private void offFriendSetup() { // Find and set up the ListView offline friends friendOff = new ArrayAdapter(this, R.layout.friend_off); ListView offline = (ListView) findViewById(R.id.offline_list); offline.setAdapter(friendOff); offline.setOnItemClickListener(friendClickListener); } private OnItemClickListener friendClickListener = new OnItemClickListener() { public void onItemClick(AdapterView av, View v, int arg2, long arg3) { setContentView(R.layout.enkrip1); btnSend = (Button) findViewById(R.id.send_button); // kunci(); //buat mengirim kunci secara otomatis ke server RSAA bb = new RSAA(256); BigInteger eee = bb.getE(); String ekey = eee.toString(); System.out.println("ekey nya :" + ekey); BigInteger ddd = bb.getD(); d_key = ddd.toString(); System.out.println("dkey nya :" + d_key); BigInteger Nn = bb.getN(); n_key = Nn.toString(); BigInteger p = bb.getPPPP(); System.out.println("ppppppp :" + p); BigInteger q = bb.getQQQQ(); System.out.println("qqqqqqqq :" + q); sendMsg = ekey.replace(' ', '~'); sendMsg2 = n_key.replace(' ', '~'); friend = ((TextView) v).getText().toString(); // System.out.println("ISI DARI ACHAT: "+friend+" ke "+user); chatService.sendMessage2(sendMsg, sendMsg2,

(88) PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 71 friend, user, ""); friend = ((TextView) v).getText().toString(); setupChat(); //untuk mengambil data dari user message chatService.getMsg2(friend, user, "person", "run"); // // roomStatus = false; //chatService.getMsg2(friend, user, "person", "run"); } }; ... case R.id.send_button: //setupChat(); System.out.println("message yg tertangkap di setup setelah d potong222:::"+msgOut.getText().toString()); String msgIn = msgOut.getText().toString(); if(msgIn.length()<10){ System.out.println("message yg tertangkap di setup:::"+msgIn); }else{ String simpan=msgIn.substring(0,9); msgOut.setText(""); msgOut.setText(simpan); System.out.println("message yg tertangkap di setup setelah d potong:::"+msgOut.getText().toString()); } msgIn = msgOut.getText().toString(); sendMsg = msgIn.replace(' ', '~'); // if (roomStatus == true) // chatService.sendMessage(sendMsg, roomC, user, "room"); // else chatService.sendMessage(sendMsg, friend, user, ""); ChatArrayAdapter.add("Me : " + msgIn); sendMsg = ""; msgOut.setText(""); break;

(89) PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 72 Gambar 4.10 Source Code Chatting Pada gambar 4.9 user telah memilih temen chatting dan memasukan isi pesan chatting. 4.2 Impelemntasi Algoritma RSA ke dalam sistem 1. 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). Listing program kelas Achat: private OnItemClickListener friendClickListener = new OnItemClickListener() { public void onItemClick(AdapterView av, View v, int arg2, long arg3) { setContentView(R.layout.enkrip1); btnSend = (Button) findViewById(R.id.send_button); //buat mengirim kunci secara otomatis ke server RSAA bb = new RSAA(256); BigInteger eee = bb.getE(); String ekey = eee.toString(); System.out.println("ekey nya :" + ekey); BigInteger ddd = bb.getD(); d_key = ddd.toString(); System.out.println("dkey nya :" + d_key);

(90) PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI BigInteger Nn = bb.getN(); n_key = Nn.toString(); BigInteger p = bb.getPPPP(); System.out.println("ppppppp :" + p); BigInteger q = bb.getQQQQ(); System.out.println("qqqqqqqq :" + q); sendMsg = ekey.replace(' ', '~'); sendMsg2 = n_key.replace(' ', '~'); friend = ((TextView) v).getText().toString(); chatService.sendMessage2(sendMsg, sendMsg2, friend, user, ""); .... Gambar 4.11 Source Code Kelas Achat Listing program kelas RSA public RSAA(int bits) { Random r = new Random(); p = BigInteger.probablePrime(bitlength, r); q = BigInteger.probablePrime(bitlength, r); n = p.multiply(q); .... } Gambar 4.12 Source Code Kelas RSA 73

(91) PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 74 3. Hitung (n) = (p – 1)(q – 1). 4. Pilih kunci publik, e, yang relatif prima terhadap (n). 5. Bangkitkan kunci privat dengan menggunakan persamaan Listing program kelas RSA ...... phi = p.subtract(BigInteger.ONE).multiply(q.subtract(BigInteger.ONE)); e = BigInteger.probablePrime(bitlength/2, r); while (phi.gcd(e).compareTo(BigInteger.ONE) > 0 && e.compareTo(phi) < 0 ) { e.add(BigInteger.ONE); } d = e.modInverse(phi); } Gambar 4.13 Source Code Kelas RSA 2. Algoritma Enkripsi/Dekripsi 1. 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

(92) PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI dalam selang 3. Setiap blok mi dienkripsi menjadi blok ci dengan rumus e ci = mi mod n - Listing program kelas Achat untuk enkrip message case R.id.send_button: String msgIn = msgOut.getText().toString(); if(msgIn.length()<10){ System.out.println("message yg tertangkap di setup:::"+msgIn); }else{ String simpan=msgIn.substring(0,9); msgOut.setText(""); msgOut.setText(simpan); System.out.println("message yg tertangkap di setup setelah d potong:::"+msgOut.getText().toString()); } msgIn = msgOut.getText().toString(); sendMsg = msgIn.replace(' ', '~'); chatService.sendMessage(sendMsg, friend, user, ""); ChatArrayAdapter.add("Me : " + msgIn); sendMsg = ""; msgOut.setText(""); break; Gambar 4.14 Source Code Kelas Achat 75

(93) PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 76 - Listing program kelas AchatService .... private class sendMsg extends Thread { private String msg, msg2; private String to; private String from; private String r, k, typ; public sendMsg(String m, String t, String n, String r) { msg = m; to = t; from = n; this.r = r; } public void run() { try { char[] tanda = null; char[] msg2 = null; System.out.println("message yang masuk :: " + msg); if (!kunci_ee.equals("")) { BigInteger e_key = new BigInteger(kunci_ee); BigInteger n_key = new BigInteger(kunci_nn);

(94) PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 77 BigInteger tes2 = new BigInteger(msg.getBytes()); String tes22 = tes2.toString(); telah d rubah menjadi byte :: System.out.println("plainteks yang " + tes22); RSAA bb = new RSAA(256); String sandii = ""; System.out.println("nilai e: " +e_key); System.out.println("nilai n: " +n_key); BigInteger halaa = bb.encrypt(tes2, e_key, n_key); System.out.println("hasil enkripsi " + halaa); :: String sandi = halaa.toString(); sendMessagePHP(sandi, to, from, r); System.out.println("message enkrip: " + sandi+"" +to+ " " + from); } else { System.out.println("DI ACHATSERVICE: " + to + " " + from); } catch (Exception err) { } } } Gambar 4.15 Source Code Kelas Achat Service

(95) PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI - 78 Listing program RSA untuk enkrip data ... public synchronized BigInteger encrypt(BigInteger message , BigInteger E , BigInteger N ) { System.out.println("masuk ke dalam method enkrip rsa "); return message.modPow(E, N); } .... Gambar 4.16 Source Code Kelas RSA 2. Dekripsi 1. Setiap blok cipherteks ci didekripsi kembali menjadi blok mi dengan rumus mi = ci d mod n Listing program Achat private OnItemClickListener friendClickListener = new OnItemClickListener() { public void onItemClick(AdapterView av, View v, int arg2, long arg3) { setContentView(R.layout.enkrip1); btnSend = (Button) findViewById(R.id.send_button); RSAA bb = new RSAA(256); BigInteger eee = bb.getE(); String ekey = eee.toString();

(96) PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI System.out.println("ekey nya :" + ekey); BigInteger ddd = bb.getD(); d_key = ddd.toString(); System.out.println("dkey nya :" + d_key); BigInteger Nn = bb.getN(); n_key = Nn.toString(); BigInteger p = bb.getPPPP(); System.out.println("ppppppp :" + p); BigInteger q = bb.getQQQQ(); System.out.println("qqqqqqqq :" + q); sendMsg = ekey.replace(' ', '~'); sendMsg2 = n_key.replace(' ', '~'); friend = ((TextView) v).getText().toString(); chatService.sendMessage2(sendMsg, sendMsg2, friend, user, ""); friend = ((TextView) v).getText().toString(); setupChat(); //untuk mengambil data dari user message chatService.getMsg2(friend, user, "person", "run"); } }; Gambar 4.17 Source Code Kelas Achat 79

(97) PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 80 Listing program Achat service private class getMsg2 extends Thread { private String to; private String from; private int running = 0; private String msge = ""; private String type; public getMsg2(String a, String n, String r) { to = n; from = a; type = r; } void setRunning(int b) { this.running = b; } public void run() { String rs = ""; String rsmessage = ""; EditText pho_no, isi_pesan, kunci_pub1, kunci_n, kunci_e; EditText pesan_terjemah; while (running != 0) {//3 try {//4 char[] msg = null;

(98) PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 81 // Panggil method rs = getMessagePHP2(from, to, type); String[] kunci = rs.split(","); System.out.println("isi rs: " + rs); if (!rs.equals("")) {//5 //System.out.println("masuk getMessagePHP2"); //rsmessage = getMessagePHP2(from, to, type);//6 // rsmessage.getBytes(); // msg = rs.toCharArray(); String[] temp1 = rs.split(","); // // isi_pesan = // // (EditText)findViewById(R.id.editText_sendmsg); kunci_ee = temp1[0]; kunci_nn = temp1[1]; System.out.println("E::::::::::::::::::" + kunci_ee); System.out.println("N::::::::::::::::::" + kunci_nn); // //Toast.makeText(getApplicationContext(), "Berhasil", Toast.LENGTH_LONG).show(); } else {//7 System.out.println("masuk getMessagePHP"); rsmessage = getMessagePHP(from, to, type);

(99) PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 82 msg = rsmessage.toCharArray(); Achat.setMe(rsmessage); System.out.println("get dkehynhya::::::::::::::::::" + Achat.getdkey()); //if (!Achat.getdkey().equals("")) { // System.out // .println("sudah masuk ifffff::::::::::::::::::" // + rsmessage); if (msg.length > 0) {//8 for (int i = 0; i < msg.length; i++) {//9 // msg from server based on its seperate // order if (msg[i] == '_') {//10 System.out.println("msge:::::cetak men::::: "+ msge); int temp = msge.indexOf(":");//11 String fromWHO = msge.substring(0,(temp + 2)); msge = msge.substring((temp + 2),msge.length()); System.out.println("msge bersih:::::cetak men:::::"+ msge);

(100) PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 83 Achat.setMe(msge); rsmessage = Achat.hasil(); rsmessage = rsmessage.concat("_"); rsmessage = fromWHO.concat(rsmessage); msg = rsmessage.toCharArray(); System.out.println("rsmessage:::::cetak men:::::"+ rsmessage); msge = ""; } else {//12 System.out.println("msge:::::"+msge); msge += msg[i]; }//13 }//for }//if 14 }//if 15 //}//16 // share msg to UI if (msg.length > 0) {//17 keluar dari if for (int i = 0; i < msg.length; i++) {//18 // seperate msg from server based on its order if (msg[i] == '_') {//19

(101) PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI System.out.println("msge:::::cetak men:::::" + msge);//20 mhandler.obtainMessage(Achat.MESSAGE_READ, msge) .sendToTarget(); msge = ""; } else {//21 System.out.println("msge:::::" + msge); msge += msg[i]; } }//22 } // sleep time sleep(250);//23 } catch (Exception err) { } } } } Gambar 4.18 Source Code Kelas AchatService 84

(102) PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 85 Listing program RSA public synchronized BigInteger decrypt(BigInteger message , BigInteger D , BigInteger N) { System.out.println("masuk ke dalam method dekrip rsa "); return message.modPow(D, N); } Gambar 4.19 Source Code Kelas RSA.

(103) PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI BAB V HASIL DAN PENGUJIAN 5.1 Pengujian program Ini pengambilan data menggunakan wireshark sebelum ada keamanan data pada aplikasi chatting android milik siregar Gambar 5.1: hasil wireshark chatting belum diamankan. 86

(104) PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI Pada gambar 5.2 program chatting yang telah di tambah algoritma rsa meminta kunci publik si pengirim Gambar 5.2: bertukar kunci publik Gambar 5.3: hasil wireshark chatting sudah berkomunikasi menggunakan rsa 87

(105) PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI  88 Penyerangan dengan web injeksi php Pada gambar 5.4 penyerang akan menginjeksi kunci publik kepada pengirim dan berpura-pura sebagai si penerima Gambar 5.4: injeksi web kunci publik pada gambar 5.5 server menerima injeksi kunci attack dan mengirimkan kepada si pengirim Gambar 5.5: injeksi kunci publik Pada gambar 5.6 penyerang mengirimkan pesan kepada si pengirim menggunakan kunci publik dan berpura-pura sebagai si penerima

(106) PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 89 Gambar 5.6: injeksi message Pada gambar 5.7 tampilan di pengirim ketika mendapat pesan dan mendekrip dengan kunci privatnya Gambar 5.7: tampilan di pengirim

(107) PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI Pada gambar 5.8 pengirim percaya dan mengirimkan pesan ke penyerang dengan menggunakan kunci publik penyerang Gambar 5.8: pengirim mengirimkan pesan kepada si penyerang Pada gambar 5.9 penyerang mendekrip pesan dengan kunci privat penyerang Gambar 5.9: hasil dekrip penyerang 90

(108) PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 5.2 Pencegahan  Pencegahan Menangkal php injection Pada gambar 4.6 membatasi akses web yang dapat mengakses server yaitu aplikasi chatting android mobile dan memblock semua browser akses Gambar 5.10 : setting pada server untuk membatasi akses Setelah di setting akses pada server hanya aplikasi chatting dan semua yang mengakses ke server akan di drop seperti gambar 5.11 91

(109) PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI Gambar 5.11 : mereject akses dari gogle chrome Gambar 5.12 : mereject akses dari firefox 92

(110) PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 93 Gambar 5.13 : mereject akses dari web mobile 5.3 Hasil Pengujian Pembangunan program chatting android dengan fitur keamanan RSA ini tidak mengalami kesulitan, program secara otomatis membuat kunci publik dan kunci privat. Kunci publik di kirimkan ke server dan bersifat tidak rahasia. Pengirim akan menerima kunci publik penerima dan mengenkrip pesan dengan kunci publik penerima, penerima akan mendeskripsi dengan kunci privat. Server yang digunakan untuk berkomunikasi chatting dibangun dengan menggunakan php. Ada beberapa cara yang dilakukan dalam penyerangan php, salah satu penyeranganya yaitu php injection. Penyerangan dilakukan dengan cara php inject, dengan menginject server dan berpura-pura sebagai penerima, seorang attacker dapat memanipulasi kunci publik. Pengirim mengirimkan pesan kepada penyerang dengan mengenkripsi kunci publik sang penyerang, sang penyerang yang mendapatkan enkripsi dari penerima.

(111) PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 94 Penyerang akan mendekrip dengan menggunakan kunci privat milik penyerang. Dan chiptertext dapat dikembalikan menjadi plainttext Untuk mencegah php injection, digunakan hak akses pada server. Ketika browser mengakses server akan di reject, dan memungkinkan hanya aplikasi chatting yang dapat mengakses server untuk berkomunikasi.

(112) PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI Bab VI PENUTUP 6.1 Kesimpulan Berdasarkan hasil percobaan dapat ditarik kesimpulan sebagai berikut 1. Fitur keamanan chatting menggunakan algoritma RSA berhasil ditambahkan di aplikasi chatting yang ada 2. Serangan dengan web injection pada server dapat diatasi dengan cara membatasi hak akses pada server,sehingga hanya aplikasi chatting android saja yang dapat mengakses server selain dari itu akan di reject. 6.2 Saran Saran yang diperlukan untuk perbaikan dan pengembangan program lebih lanjut adalah: 1. Program dapat melakukan chatting secara grup 2. Program bisa mengenkripsi gambar 95

(113) PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI DAFTAR PUSTAKA [1] Pressman, Roger S.2002. “Rekayasa Perangkat Lunak : Pendekatan Praktisi ” [2] Siregar, Michael, Ivan. 2011.” Membongkar Source Code berbagai Aplikasi Android”. Jakarta:Gava Media [3] Yusrizal.2005. “Hambatan-Hambatan Pegawai Fakultas dalam Berkomunikasi dengan Atasan Langsung di Universitas Negeri Padang”. UNP: Skripsi [4] Forouzan, Behrouz A.2004.” Data Communications and Networking”. Boston: McGraw-Hill [5] Munir, Rinaldi.2007.”KRIPTOGRAFI”. Bandung:Informatika [6] Suprianto, Dodit. 2012.” Pemrograman Aplikasi Android “.MediaKom [7] Safaat , Nazruddin. 2013.” Aplikasi Berbasis Android “.Bandung :Informatika [8] Shalahuddin, M.2013.” Rekayasa Perangkat Lunak Terstruktur dan Berorientasi Objek”.Bandung :Informatika 96

(114)

Dokumen baru

Tags

Dokumen yang terkait

SKRIPSI Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Jurusan Teknik Informatika
0
1
127
SKRIPSI Diajukan untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Jurusan Teknik Informatika
0
0
98
SKRIPSI Diajukan untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program Studi Teknik Informatika
0
1
113
SKRIPSI Diajukan untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program Studi Teknik Informatika
0
2
76
SKRIPSI Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Jurusan Teknik Informatika
0
0
87
Studi Kasus ”NEUTRON” Yogyakarta SKRIPSI Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program Studi Teknik Informatika
0
0
184
Diajukan untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program Studi Teknik Informatika
0
0
198
Diajukan untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program Studi Teknik Informatika
0
0
110
Diajukan untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program Studi Teknik Informatika
0
0
128
Skripsi Diajukan untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program Studi Teknik Informatika
0
0
126
SKRIPSI Diajukan untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program Studi Teknik Informatika
0
0
184
SKRIPSI Diajukan untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program Studi Teknik Informatika
0
1
56
Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Komputer Program Studi Teknik Informatika
0
0
129
Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Komputer Program Studi Teknik Informatika
0
0
87
Diajukan untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Komputer Jurusan Teknik Informatika
0
0
129
Show more