IMPLEMENTASI MULTITHREADING UNTUK MENINGKATKAN KECEPATAN WAKTU PROSES PADA ENKRIPSI GAMBAR DENGAN ALGORITMA AFFINE CIPHER SKRIPSI ILHAM AKBAR 081402039
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
2014 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 MEDAN 2014
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 :
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, Muhammad Anggia Muchtar, ST. MM.IT NIP 19800110 200801 1 010
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 Ilham Akbar 081402039
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.
Skripsi ini terutama penulis persembahkan kepada kedua orang tua penulis yang dengan kesabaran luar biasa telah menunggu dan terus menunggu untuk waktu selesainya studi S1 penulis. Ayahanda Erwin yang selalu memberikan nasehat dan jalan keluar dengan cara dan senyum khas nya, mampu membuat kemalasan yang mengenkang penulis berubah menjadi motivasi yang luar biasa, serta ibunda Nila Eva Nita yang dengan suara lembutnya mampu mengembalikan kepingan-kepingan jiwa saya yang telah terserak sehingga saya kembali mengingat tujuan saya diciptakan kedunia ini yaitu beribadah kepada Allah sehingga dimudahkannya lah segala urusan dan rencana yang selama ini terhambat akibat telah jauh melupakannya. Kepada kedua adik saya Ryan Fachri dan Fathur Rahman yang selalu memberikan kedamaian dirumah saat penulis mengerjakan penelitian sehingga mampu menyelesaikannya dengan baik serta mampu menjadi teman bermain dan membuat penulis tidak pernah bosan untuk berada dirumah. Serta kepada teman terdekat saya Indry Ervianti yang tidak pernah bosan untuk memberikan motivasi dan bantuan-bantuan yang saya perlukan untuk terselesaikannya tugas akhir ini. Kemudian penulis juga mengucapkan terima kasih atas saran dan dukungannya kepada teman-teman saya mulai dari program studi Teknologi Informasi hingga yang berada pada kampus lain yang tidak bisa penulis sebutkan satu per satu. Terakhir penulis tidak lupa dan selalu mengucapkan syukur Alhamdulillah kepada Allah SWT, karena atas berkat rahmat dan kasih sayang beliau penulis dapat menyelesaikan tugas akhir ini dan shalawat kepada junjungan kita Baginda Syaidina Muhammad SAW, karena berkat ajaran beliau jugalah penulis paham makna dari belajar dan ilmu pengetahuan yang harus dimiliki sebagai bekal hidup.
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.
Kata kunci : multithreading, parallel processing, thread, task, multitasking, affine cipher , enkripsi, kriptografi.
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.
Keyword : multithreading, parallel processing, thread, task, multitasking, affine
cipher , enkripsi, kriptografi.
DAFTAR ISI
Hal.
DAFTAR GAMBAR x
DAFTAR TABEL
Hal.Tabel 3.2.1 : Data yang akan diolah16 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 Tabel 4.2.3 : Daftar gambar yang akan diproses
43 Tabel 4.2.4 : Hasil pengujian berdasarkan waktu proses
43
DAFTAR GAMBAR
Hal.24 Gambar 3.4.2 : Diagram aktifitas untuk Pengaturan Jumlah Pol Thread
38 Gambar 4.2.1 : Grafik perbandingan waktu proses
38 Gambar 4.1.2 : Rancangan halaman setting aplikasi
34 Gambar 4.1.1 : Rancangan halaman utama
32 Gambar 3.4.9 : Tampilan Halaman Setting Aplikasi
31 Gambar 3.4.8 : Tampilan Halaman Utama Aplikasi
30 Gambar 3.4.6 : DFD level 1 Aplikasi enkripsi gambar dengan proses sequencial dan multithreading
29 Gambar 3.4.5 : DFD Level 0 Aplikasi enkripsi gambar dengan proses sequencial dan multithreading
28 Gambar 3.4.4 : Diagram aktifitas dari tutorial aplikasi
27 Gambar 3.4.3 : Diagram aktifitas dari proses enkripsi
20 Gambar 3.4.1 : Use case diagram aplikasi
Gambar 2.1.1 : Penjabaran multithreading19 Gambar 3.3.5 : Algoritma enkripsi secara multithreading. Bagian yang didalam kotak adalah thread
18 Gambar 3.3.4 : Algoritma enkripsi secara sequencial
17 Gambar 3.3.3 : Algoritma umum dari aplikasi
17 Gambar 3.3.2 : Arsitektur Umum Proses Multithreading
12 Gambar 3.3.1 : Arsitektur Umum Proses Sequencial
11 Gambar 2.2.1 : Arsitektur umum kriptografi
11 Gambar 2.1.5 : Anggota tunggal dan multiple dari core
11 Gambar 2.1.4 : Class diagram dari sebuah core
10 Gambar 2.1.3 : Stereotype dari execution core
8 Gambar 2.1.2 : Representasi UML untuk proses dan thread
44