Algoritma Simetri Rijndael 128 Pada Real-Time Chatting
Menggunakan Teknologi Multithreading
Diajukan Sebagai Syarat Untuk Menyelesaikan Pendidikan Program Strata-1 Pada
Jurusan Teknik Informatika
Oleh:
Mohammad Sulthan Alif Utama
09021181621138
Jurusan Teknik Informatika
FAKULTAS ILMU KOMPUTER UNIVERSITAS SRIWIJAYA
2021
MOTTO DAN PERSEMBAHAN
MOTTO:
“Kapan Lagi”
Segala sesuatu yang baik tidak boleh ditunda. It’s okay ketika kita gagal
mengambil keputusan karena kita akan belajar dari situ. Dan ini juga hidup
pertama kita, belajarlah banyak-banyak. Jadi, kapan lagi?
Sulthan
--“Maka apabila kamu telah selesai dari satu urusan maka kerjakanlah
dengan sungguh-sungguh urusan yang lain”.
(Al-Insyirah: 7)
Ku persembahkan penelitian ini kepada:
◆ Papa Mahmudi Hasan, AlmarhumahMama Fatma Dalena, Farah dan Jaihan.
◆ Keluargaku tercinta ◆ Teman dan Sahabatku
◆ Fakultas dan Almamater Kebanggaanku ◆ Ilmu pengetahuan, Bangsa dan Negara
vii
KATA PENGANTAR
Puji syukur kepada Allah SWT atas berkat, kesempatan dan rahmat-Nya
yang telah melimpahkan rahmat dan karunianya kepada Penulis sehingga mampu
menyelesaikan Tugas Akhir ini dengan baik. Tugas akhir ini disusun untuk
memenuhi salah satu syarat untuk menyelesaikan Pendidikan program Strata-1
pada Fakultas Ilmu Komputer Program Studi Teknik Informatika di Universitas
Sriwijaya.
Dalam kesempatan ini Penulis ingin menyampaikan kepada seluruh pihak
di bawah ini yang telah memberikan banyak dukungan dan bantuan dalam proses
penyelesaian penelitian ini. Saya ucapkan beribu terima kasih kepada:
1.
Orang tua saya, Papa saya Mahmudi Hasan dan Almarhumah Ibu Saya
Fatma Dalena serta Ibu tersayang saya Fitriani yang jasa dan doanya dalam
mendukung saya selama proses penyusunan skripsi yang tak terhitung.
Adik-adik saya Shafa Azka Fairuz, M. Jaihan Syah, Wais Al-Qarni, Alsya
Kania, dan Naura Aninda serta seluruh keluarga besar saya yang selalu
mendoakan, menghibur, serta memberikan dukungan baik secara moril
maupun materil.
2.
Pembimbing Tugas Akhir saya, Bapak Drs Megah Mulya, M.T. dan
Muhammad Ali Buchari, M.T. yang telah membimbing penulis dengan detail
dan memberi banyak masukan selama penyusunan tugas akhir ini.
3.
Penguji Tugas Akhir, Ibu Alvi Syahrini Utami, M.Kom dan Ibu Mastura
Diana Marieska, M.T. atas jasanya sudah membantu menyempurnakan tugas
akhir penulis dengan masukan-masukan yang bermanfaat dan menyeluruh
selama proses seminar proposal hingga masa perbaikan paska seminar
komprehensif.
4.
Pembimbing Akademik saya Ibu Yunita, S.Si, M.Cs sebagai pengarah
seluruh proses akademik penulis dan memberikan masukan-masukan berarti
bagi penulis hingga penyusunan tugas akhir.
5. Kepada orang-orang paling berpengaruh di hidup saya Sacharum Noor
Zhafiroh, Hanum Sabrina AJ, A. Rafik, Jhoni Iskandar, dan M. Irfan
Triananto Putra yang selalu menyertai penulis dan bersedia untuk
meluangkan waktunya berbagi cerita dan berbagi momen di selama
penyusunan tugas akhir ini.
6. Kepada teman-teman se-kosan perjuangan yang selalu memberikan dukungan,
mengajak bermain ketika penulis lelah,dan
memberikan nasehat-nasehat
berarti selama proses penyusunan skripsi ini.
7. Yang terakhir kepada seluruh keluarga BO Intel, LDF WIFI dan anak kelas
INFORGEN ‘16. Kalian hebat!
Semoga pihak-pihak diatas dan seluruh orang baik yang pernah saya temui dapat
dimudahkan urusannya oleh Allah SWT sampai kapanpun. Saya ucapkan terima kasih
banyak-banyak.
Palembang, 6 Januari 2021
Penulis,
Mohammad Sulthan Alif Utama
ix
DAFTAR ISI
Halaman
KATA PENGANTAR...viii
DAFTAR ISI…. ...x
DAFTAR TABEL... xiii
DAFTAR GAMBAR...xiv
BAB I ... I-1
1.1 Pendahuluan... I-1 1.2 Latar Belakang... I-1 1.3 Rumusan Masalah... I-3 1.4 Tujuan Penelitian... I-4 1.5 Manfaat Penelitian... I-4 1.6 Batasan Masalah...I-5 1.7 Sistematika Penulisan... I-5 1.8 Kesimpulan... I-7 BAB II ...II-1
2.1 Pendahuluan... II-1 2.2 Landasan Teori...II-1 2.2.1 Kriptografi... II-1 2.2.2 Pengenalan Algoritma Rijndael 128...II-2 2.2.2.1 Proses Enkripsi Algoritma Rijndael 128...II-4. 2.2.2.2 Proses Dekripsi Algoritma Rijndael 128...II-7 2.2.2.3 Penjadwalan Kunci Rijndael 128... II-10 2.2.3 Konsep Multi-threading... II-12 2.2.4 Bahasa Pemograman Java... II-13 2.2.5 Multithreading dalam Bahasa Pemograman Java...II-13
2.2.6 Sinkronisasi Thread...II-15 2.2.7 Konsep WebSocket...II-16 2.2.8 Cipher...II-16 2.2.9 Arsitektur Jaringan... II-18
2.2.10 Unified Modeling Language (UML)...II-19
2.3 Penelitian Terdahulu yang Relevan... II-20 2.4 Kesimpulan... II-21 BAB III ... III-1
3.1 Pendahuluan...III-1 3.2 Jenis Data...III-1 3.2.1 Plaintext...III-1
3.2.2 Berkas .zip... III-1 3.2.3 Pengumpulan Data... III-3 3.3 Tahapan Penelitian...III-2 3.3.1 Kerangka Kerja...III-4 3.3.2 Kriteria Pengujian...III-7 3.3.3 Format Data Pengujian...III-7 3.3.4 Alat yang Digunakan dalam Pelaksanaan Penelitian...III-9 3.3.5 Pengujian Penelitian...III-9 3.3.6 Analisa Hasil Pengujian dan Membuat Kesimpulan Penelitian...III-9 3.4 Metode Pengembangan Perangkat Lunak...III-10 3.4.1 Sprint... III-11
3.4.2 Alat Manajemen Proyek Penelitian... III-12 3.5 Manajemen Proyek Penelitian...III-12 3.6 Kesimpulan...III-17 BAB IV ... IV-1
4.1 Pendahuluan...IV-1 4.2 Kick-off...IV-1
4.2.1 Analisis Kebutuhan... IV-1 4.2.1.1 Kebutuhan Fungsional Sistem...IV-1 4.2.1.2 Product Backlog...IV-2 4.3 Sprint...IV-3
4.3.1 Sprint Planning...IV-3
xi
b. Activity Diagram...IV-9 c. Sequence Diagram... IV-14 d. Class Diagram... IV-16 e. Perancangan Interface...IV-17
4.4 Hand Over...IV-18
4.4.1 Rencana Pengujian...IV-18 4.4.2 Pengujian Use Case Enkripsi Dekripsi Pesan... IV-19 4.5 Kesimpulan...IV-20 BAB V ...V-1 5.1 Pendahuluan...V-1 5.2 Data Hasil Percobaan... V-1 5.3 Kesimpulan...V-26 BAB VI ...VI-1 6.1 Kesimpulan...VI-1 6.2 Saran...VI-2
DAFTAR TABEL
Tabel II-1 Tabel S-Box yang dipakai sebagai dasar pengujian...II-3 Tabel II-2 Tabel data yang dipakai sebagai dasar pengujian...II-10 Tabel III-1 Tabel pengujian terhadap kecepatan pengiriman...III-7 Tabel III-2 Tabel pengujian terhadap kecepatan enkripsi dan dekripsi...III-8 Tabel III-4 Jadwal Penelitian dalam Work Breakdown Structure...III-12 Tabel IV-1 Kebutuhan Fungsional...IV-2 Tabel IV-2 Product Backlog...IV-2 Tabel IV-3 Sprint Backlog Pertama...IV-3 Tabel IV-4 Sprint Backlog Kedua...IV-4 Tabel IV-5 Sprint Backlog Ketiga...IV-4 Tabel IV-6 Sprint Backlog Keempat...IV-4 Tabel IV-7 Pengaturan Sprint Pertama...IV-5 Tabel IV-8 Pengaturan Sprint Kedua...IV-5 Tabel IV-9 Pengaturan Sprint Ketiga...IV-5 Tabel IV-10 Pengaturan Sprint Keempat...IV-6 Tabel IV-11 Rencana Pengujian CRIPTOAPP...IV-18 Tabel IV-12 Pengujian Use Case CRIPTOAPP...IV-19 Tabel V-1 Pengujian Waktu Kecepatan Pengiriman Variasi 500 Kata...V-1 Tabel V-2 Pengujian Waktu Kecepatan Pengiriman Variasi 1500 Kata...V-3 Tabel V-3 Pengujian Waktu Kecepatan Pengiriman Variasi 3000 Kata...V-5 Tabel V-4 Pengujian Waktu Kecepatan Pengiriman Variasi 45 MB...V-6 Tabel V-5 Pengujian Waktu Kecepatan Pengiriman Variasi 150MB...V-8 Tabel V-6 Pengujian Waktu Kecepatan Pengiriman Variasi 300MB...V-10 Tabel V-7 Pengujian Waktu Kecepatan Enkripsi & Dekripsi Variasi 500 Kata...V-11 Tabel V-8 Pengujian Waktu Kecepatan Enkripsi & Dekripsi Variasi 1500 Kata...V-14 Tabel V-9 Pengujian Waktu Kecepatan Enkripsi & Dekripsi Variasi 3000 Kata...V-16 Tabel V-10 Pengujian Waktu Kecepatan Enkripsi & Dekripsi Variasi 45 MB...V-19 Tabel V-11 Pengujian Waktu Kecepatan Enkripsi & Dekripsi Variasi 150 MB...V-21 Tabel V-12 Pengujian Waktu Kecepatan Enkripsi & Dekripsi Variasi 300 MB...V-24
xiii
DAFTAR GAMBAR
Halaman
Gambar II-1 Diagram proses enkripsi dan dekripsi algoritma Rijndael 128...II-3 Gambar II-2 Tabel S-Box yang dipakai sebagai dasar pengujian...II-10 Gambar II-3 Ilustrasi transformasi ShiftRows...II-6 Gambar II-4 Formula dari perkalian transformasi MixColumns Gambar III-3...II-6 Gambar II-5 Tabel S-Box yang dipakai sebagai dasar pengujian...II-6 Gambar II-6 Suatu proses yang memiliki single dan multiple threads...II-12 Gambar II-7 Diagram multithreading dalam bahasa pemograman Java...II-13 Gambar II-8 Ilustrasi arsitektur jaringan client-server...II-18 Gambar III-1 Diagram Tahap Penelitian...III-1 Gambar III-2 Diagram Kerangka Kerja...III-2 Gambar III-3 Diagram Alur Proses Perangkat Lunak...III-6 Gambar III-4. Proses Implementasi Metode Scrum...III-10 Gambar III-5. Gantt Chart Manajemen Proyek Penelitian...III-11 Gambar IV-1 Burndown Chart Sprint...IV-7 Gambar IV-2 Diagram Use Case...IV-8 Gambar IV-3 Activity Diagram Pengiriman Single Thread...IV-10 Gambar IV-4 Activity Diagram Pengiriman Pesan Multi Thread...IV-11 Gambar IV-5 Activity Diagram Pengiriman Berkas Single Thread...IV-12 Gambar IV-6 Activity Diagram Pengiriman Berkas Multi Thread...IV-13 Gambar IV-7 Diagram Sequence Single Thread...IV-14 Gambar IV-8 Diagram Sequence Multi Thread...IV-15 Gambar IV-9 Diagram Sequence Berkas Single Thread...IV-15 Gambar IV-10 Diagram Sequence Pengiriman Berkas Multi Thread...IV-16 Gambar IV-11 Class Diagram...IV-17 Gambar IV-12 Perancangan Interface CRIPTOAPP...IV-17 Gambar V-1 Grafik Variasi 500 Kata...V-3 Gambar V-2 Grafik Variasi 1500 Kata...V-4 Gambar V-3 Grafik Variasi 3000 Kata...V-6 Gambar V-4 Grafik Variasi Berkas 45 MB...V-7 Gambar V-5 Grafik Variasi Berkas 150 MB...V-9 Gambar V-6 Grafik Variasi Berkas 300 MB...V-10 Gambar V-7 Grafik Waktu Enkripsi Variasi 500 Kata...V-12 Gambar V-8 Grafik Waktu Dekripsi Variasi 500 Kata...V-13 Gambar V-9 Grafik Waktu Enkripsi Variasi 1500 Kata...V-15 Gambar V-10 Grafik Waktu DekripsiVariasi 1500 Kata...V-16 Gambar V-11 Grafik Waktu Enkripsi Variasi 3000 Kata...V-18 Gambar V-12 Grafik Waktu Dekripsi Variasi 3000 Kata...V-18 Gambar V-13 Grafik Waktu Enkripsi Berkas Variasi 45 MB...V-20 Gambar V-14 Grafik Waktu Dekripsi Berkas Variasi 45 MB...V-21 Gambar V-15 Grafik Waktu Enkripsi Berkas Variasi 150MB...V-23 Gambar V-16 Grafik Waktu Dekripsi Berkas Variasi 150 MB...V-23 Gambar V-17 Grafik Waktu Enkripsi Berkas Variasi 300 MB...V-25 Gambar V-18 Grafik Waktu Dekripsi Berkas Variasi 300 MB...V-26