IMPLEMENTASI
MULTITHREADING
UNTUK MENINGKATKAN
KECEPATAN WAKTU PROSES PADA ENKRIPSI GAMBAR
DENGAN ALGORITMA
AFFINE CIPHER
SKRIPSI
ILHAM AKBAR
081402039
PROGRAM STUDI TEKNOLOGI INFORMASI
FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI
UNIVERSITAS SUMATERA UTARA
MEDAN
IMPLEMENTASI MULTITHREADING UNTUK MENINGKATKAN KECEPATAN WAKTU PROSES PADA ENKRIPSI GAMBAR
DENGAN ALGORITMA AFFINE CIPHER
SKRIPSI
Diajukan untuk melengkapi tugas dan memenuhi syarat memperoleh ijazah Sarjana Teknologi Informasi
ILHAM AKBAR 081402039
PROGRAM STUDI S1 TEKNOLOGI INFORMASI
FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA
PERSETUJUAN
Judul : IMPLEMENTASI MULTITHREADING UNTUK MENINGKATKAN KECEPATAN WAKTU PROSES PADA ENKRIPSI GAMBAR DENGAN ALGORITMA AFFINE CIPHER
Kategori : SKRIPSI
Nama : ILHAM AKBAR
Nomor Induk Mahasiswa : 081402039
Program Studi : SARJANA (S1) TEKNOLOGI INFORMASI Departemen : TEKNOLOGI INFORMASI
Fakultas : ILMU KOMPUTER DAN TEKNOLOGI INFORMASI (FASILKOM-TI) UNIVERSITAS SUMATERA UTARA
Diluluskan di
Medan, Agustus 2014 Komisi Pembimbing :
Pembimbing 2 Pembimbing 1
Dedy Arisandi, ST, M.Kom Muhammad Anggia Muchtar, ST.MM.IT NIP 19790831 200912 1 002 NIP 19800110 200801 1 010
Diketahui/Disetujui oleh
Program Studi S1 Teknologi Informasi Ketua,
iii
PERNYATAAN
IMPLEMENTASI MULTITHREADING UNTUK MENINGKATKAN KECEPATAN WAKTU PROSES PADA ENKRIPSI GAMBAR
DENGAN ALGORITMA AFFINE CIPHER
SKRIPSI
Saya mengakui bahwa skripsi ini adalah hasil karya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing disebutkan sumbernya.
Medan, Agustus 2014
UCAPAN TERIMA KASIH
Puji dan syukur penulis sampaikan kehadirat Allah SWT yang telah memberikan rahmat dan hidayah-Nya sehingga penulis dapat menyelesaikan skripsi ini sebagai syarat untuk memperoleh gelar Sarjana Teknologi Informasi, Program Studi S1 Teknologi Informasi Universitas Sumatera Utara.
Ucapan terima kasih penulis sampaikan kepada Bapak Dr. Syahril Efendi, S.Si, M.IT selaku pembimbing satu dan Dedy Arisandi, ST, M.Kom selaku pembimbing dua yang telah banyak meluangkan waktu dan pikirannya, memotivasi dan memberikan kritik dan saran kepada penulis. Ucapan terima kasih juga ditujukan kepada Bapak Romi Fadillah Rahmat, B.Comp.Sc., M.Sc. dan Ibu Sarah Purnamawati, ST, M.Sc yang telah bersedia menjadi dosen pembanding. Ucapan terima kasih juga ditujukan kepada Ketua dan Sekretaris Program Studi Teknologi Informasi, Muhammad Anggia Muchtar, ST. MM.IT dan Mohammad Fadly Syahputra, B.Sc, M.Sc.IT, Dekan dan Pembantu Dekan Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara, semua dosen serta pegawai di Program Studi S1 Teknologi Informasi.
v
ABSTRAK
Waktu pemrosesan sebuah tugas didalam sebuah perangkat lunak merupakan satu hal yang cukup menjadi sorotan oleh pengguna, karena semakin cepat waktu pemrosesan maka semakin cepat kegiatan yang dilakukan didalam perangkat lunak tersebut selesai. Para pengembang perangkat lunak sudah seharusnya mempertimbangkan hal ini pada saat mengembangkan sebuah perangkat lunak. Mulai dari pemilihan algoritma yang tepat, meningkatkan spesifikasi hardware, hingga menambah bandwith pada sebuah jaringan komputer (jika perangkat lunak berbasi client server) akan dilakukan oleh pengembang perangkat lunak agar mendapatkan kecepatan waktu proses yang diinginkan pada perangkat lunak yang dikembangkan. Tetapi ada satu teknik yang dapat digunakan untuk meningkatkan kecepatan waktu proses tersebut, yaitu dengan membagi tugas yang akan diproses kedalam beberapa bagian, kemudian menjalankannya secara bersamaan, teknik ini disebut multithreading. Tetapi pada penggunaan yang berlebihan, multithreading justru akan semakin memperlambat proses bahkan akan memperlambat kegiatan yang sedang dilakukan oleh komputer karena objek thread yang terbentuk didalam memori terlalu banyak. Maka dalam penelitian kali ini, penulis mencoba membuktikan bahwa dengan mengalokasikan jumlah thread yang tepat kecepatan waktu proses yang cukup signifikan akan didapat. Untuk bahan pembuktian, penulis mencoba menerapkan multithreading tersebut pada enkripsi gambar dengan ukuran resolusi gambar yang besar.
MULTITHREADING IMPLEMENTATION TO INCREASE RUNTIME PROCESS AT IMAGE ENCRYPTION USING
AFFINE CIPHER ALGORITHM
ABSTRACT
Runtime process is a task inside a software which is becoming the user's judge, because faster this faster the process to finish as well. Software developer must consider this when developing software. Choose the fittest algorithm, increase the hardware spesification, and allocate higher bandwith at workstation (if the software is client server based) are something that software developer must done to get the best runtime. but there is a technique can be used to increase runtime with seperate all of tasks into some small tasks and run it asynchronously (together at the same time). This technique is called multithreading. But at an overflow use, instead of increasing runtime, multithreading just slow it even the computer's perform because of the threads have built inside the computer's memmory are too much. Therefore in this research, writer try to establish that with allocating the right number of threads, the best runtime can be reach. For the object to verify the result, writer try to implement multithreading at the encryption of an image with huge resolution.
DAFTAR ISI
Hal.
PERSETUJUAN ii
PERNYATAAN iii
UCAPAN TERIMA KASIH iv
ABSTRAK v
1.6 Metodologi Penelitian 5
1.7 Sistematika Penulisan 6
BAB 2 LANDASAN TEORI 7
2.1 Multithreading 7
2.1.1 Pengertian Multitasking 7
2.1.2 Pengertian Multithreading 8
2.1.3 Penjadwalan Thread 9
2.1.4 Desain Perancangan Pemrograman Multithreading 9 2.1.4.1 Representasi UML dari Proses dan Thread 10 2.1.4.2 Representasi UML dari Execution Core 11
2.2 Kriptografi 12
3.4 Perancangan Aplikasi 24
3.4.1 Use case diagram 24
3.4.2 Use case spesification 24
3.4.3 Activity Diagram 27
3.4.4 Data Flow Diagram 30
3.4.5 Rancangan antarmuka 31
3.4.5.1 Rancangan halaman utama 32
3.4.5.2 Rancangan halaman setting aplikasi 33
BAB 4 IMPLEMENTASI DAN PENGUJIAN APLIKASI 37
4.1 Implementasi Aplikasi 37
4.1.1 Spesifikasi perangkat keras dan lunak yang digunakan 37 4.1.2 Implementasi perancangan antarmuka 37
4.1.2.1 Tampilan halaman utama 37
4.1.2.2 Tampilan halaman setting aplikasi 38
4.2 Pengujian Aplikasi 39
4.2.1 Rencana pengujian aplikasi 39
4.2.2 Kasus dan hasil pengujian aplikasi 39
4.2.3 Pengujian kinerja aplikasi 42
4.2.4 Pengujian aplikasi 43
BAB 5 KESIMPULAN DAN SARAN 45
5.1 Kesimpulan 45
5.2 Saran 45
DAFTAR TABEL
Hal.
Tabel 3.2.1 : Data yang akan diolah 16
Tabel 3.4.1 : Use case spesification pengaturan jumlah pol thread 25
Tabel 3.4.2 : Proses Enkripsi Gambar 25
Tabel 3.4.3 : Tutorial aplikasi 26
Tabel 4.2.1 : Rencana Pengujian 39
Tabel 4.2.2 : Hasil pengujian 39
DAFTAR GAMBAR
Hal.
Gambar 2.1.1 : Penjabaran multithreading 8
Gambar 2.1.2 : Representasi UML untuk proses dan thread 10
Gambar 2.1.3 : Stereotype dari execution core 11
Gambar 2.1.4 : Class diagram dari sebuah core 11
Gambar 2.1.5 : Anggota tunggal dan multiple dari core 11
Gambar 2.2.1 : Arsitektur umum kriptografi 12
Gambar 3.3.1 : Arsitektur Umum Proses Sequencial 17 Gambar 3.3.2 : Arsitektur Umum Proses Multithreading 17
Gambar 3.3.3 : Algoritma umum dari aplikasi 18
Gambar 3.3.4 : Algoritma enkripsi secara sequencial 19 Gambar 3.3.5 : Algoritma enkripsi secara multithreading.
Bagian yang didalam kotak adalah thread 20
Gambar 3.4.1 : Use case diagram aplikasi 24
Gambar 3.4.2 : Diagram aktifitas untuk Pengaturan Jumlah Pol Thread 27 Gambar 3.4.3 : Diagram aktifitas dari proses enkripsi 28 Gambar 3.4.4 : Diagram aktifitas dari tutorial aplikasi 29 Gambar 3.4.5 : DFD Level 0 Aplikasi enkripsi gambar dengan proses sequencial dan
multithreading 30
Gambar 3.4.6 : DFD level 1 Aplikasi enkripsi gambar dengan proses sequencial dan
multithreading 31
Gambar 3.4.8 : Tampilan Halaman Utama Aplikasi 32 Gambar 3.4.9 : Tampilan Halaman Setting Aplikasi 34
Gambar 4.1.1 : Rancangan halaman utama 38