APLIKASI OBFUSCATION PADA SOURCE CODE PEMROGRAMAN JAVA UNTUK MELINDUNGI KARYA CIPTA PERANGKAT LUNAK
Tugas Akhir
Sebagai Persyaratan Guna Meraih Gelar Sarjana Strata 1 Teknik Informatika Universitas Muhammadiyah Malang
Zaenal Abidin
NIM. 201110370311050
JURUSAN TEKNIK INFORMATIKA
FAKULTAS TEKNIK
UNIVERSITAS MUHAMMADIYAH MALANG
LEMBAR PERSETUJUAN
APLIKASI OBFUSCATION PADA SOURCE CODE PEMROGRAMAN JAVA UNTUK MELINDUNGI KARYA CIPTA PERANGKAT LUNAK
TUGAS AKHIR
ZAENAL ABIDIN 201110370311050
Sebagai Persyaratan Guna Meraih Gelar Sarjana Strata 1 Teknik Informatika Universitas Muhammadiyah Malang
Menyetujui, Dosen I
Maskur, S.Kom, M.Kom
NIDN : 0711098402
Dosen II
Ilyas Nuryasin, S.Kom, M.Kom
LEMBAH PENGESAHAN
APLIKASI OBFUSCATION PADA SOURCE CODE PEMROGRAMAN JAVA UNTUK MELINDUNGI KARYA CIPTA PERANGKAT LUNAK
TUGAS AKHIR
Sebagai Persyaratan Guna Meraih Gelar Sarjana Strata 1 Teknik Informatika Universitas Muhammadiyah Malang
Disusun Oleh :
ZAENAL ABIDIN 201110370311050
Tugas Akhir ini telah diuji dan dinyatakan lulus melalui sidang majelis penguji pada tanggal 21 April 2015
Menyetujui, Penguji I
Eko Budi Cahyono, S.Kom, M.T
NIDN : 0717027001
Penguji II
Ali Sofyan Kholimi, S.Kom, M.Kom
NIDN : 0701038202
Mengetahui,
Ketua Jurusan Teknik Informatika
Yuda Munarko, S.Kom, M.Sc
LEMBAR PERNYATAAN
Yang bertanda tangan dibwah ini :
NAMA : ZAENAL ABIDIN NIM : 201110370311050
FAK./JUR. : TEKNIK/INFORMATIKA
Dengan ini saya menyatakan bahwa Tugas Akhir dengan judul APLIKASI OBFUSCATION PADA SOURCE CODE PEMROGRAMAN JAVA UNTUK MELINDUNGI KARYA CIPTA PERANGKAT LUNAK beserta seluruh isinya adalah karya saya sendiri bukan merupakan karya tulis orang lain, baik sebagian maupun seluruhnya, kecuali dalam bentuk kutipan yang telah disebutkan sumbernya.
Demikian surat pernyataan ini saya buat dengan sebenar-benarnya. Apabila kemudian ditemukan adanya pelanggaran terhadap etika keilmuan dalam karya saya ini, atau ada klaim dari pihak lain terhadap keaslian karya saya ini maka saya siap menanggung segala bentuk resiko/sanksi yang berlaku
Malang, 8 April 2015 Dosen Pembimbing
Maskur, S.Kom, M.Kom
NIDN : 0711098402
Yang Membuat Pernyataan
Zaenal Abidin
LEMBAR PERSEMBAHAN
Puji syukur kepada Allah SWT atas rahmat dan karuniaNya sehingga penulis dapat menyelesaikan Tugas Akhir ini. Penulis menyampaikan ucapan terima kasih yang sebesar besarnya kepada :
1. Allah SWT yang selalu memberikan kesehatan dan petunjuk dalam pengerjaan tugas akhir ini.
2. Kedua orang tua saya Bapak Tawi, Ibu Kuriyah serta Kakak saya Moch. Khudori dan Adik saya Moch. Khojin, beserta keluarga besar yang telah memberikan semangat, dukungan, motivasi dan lain lain yang tidak dapat disebut satu persatu.
3. Kedua dosen Pembimbing saya Bapak Maskur, S.Kom, M.Kom, selaku dosen pembimbing satu dan Bapak Ilyas Nuryasin, S.Kom, M.Kom selaku dosen pembimbing dua yang telah membimbing saya dalam tugas akhir ini.
4. Bapak Dekan Fakultas Teknik Universitas Muhammadiyah Malang. 5. Bapak Ketua Jurusan, serta bapak ibu dosen Teknik Informatika
Univeritas Muhammadiyah Malang.
6. Teman teman di Pondok Pesantren Miftahul Ulum Putra, khususnya teman sekamar yaitu cak Alfian, Faldy, Barlian yang telah membangunkan tidurku untuk mengerjakan tugas akhir ini. serta teman teman yang lain yang ada di pondok.
7. Teman teman Lab yang sebagai Laboran, partime 2015 maupun yang menjadi Asisten Lab khususnya asisten angkatan 2011 Jurusan teknik informatika.
KATA PENGANTAR
Dengan memanjatkan puji syukur kehadirat Allah SWT atas limpahan rahmat dan hidayah-Nya sehingga penulis dapat menyelesaikan tugas akhir yang berjudul :
APLIKASI OBFUSCATION PADA SOURCE CODE
PEMROGRAMAN JAVA UNTUK MELINDUNGI KARYA CIPTA PERANGKAT LUNAK
Di dalam tulisan ini disajikan pokok-pokok bahasan yang meliputi. Bahasa java, enkripsi AES dan Obfuscation.
Peneliti menyadari masih banyak kekurangan dan keterbatasan dalam penulisan tugas akhir ini. Untuk itu, penulis sangat mengharapkan saran yang membangun agar tulisan ini dapat berguna untuk perkembangan ilmu pengetahuan kedepan.
Malang, …… April 2015 Penulis
DAFTAR ISI
LEMBAR PERSETUJUAN ... 2
LEMBAH PENGESAHAN ... 3
LEMBAR PERNYATAAN ... 4
ABSTRAK ... ERROR! BOOKMARK NOT DEFINED. ABSTRACT ... ERROR! BOOKMARK NOT DEFINED. LEMBAR PERSEMBAHAN ... 5
KATA PENGANTAR ... 6
DAFTAR ISI ... 7
DAFTAR GAMBAR ... 10
DAFTAR TABEL ... 12
BAB I PENDAHULUAN ... ERROR! BOOKMARK NOT DEFINED.
1.1 LATAR BELAKANG ...ERROR! BOOKMARK NOT DEFINED. 1.2 RUMUSAN MASALAH ...ERROR! BOOKMARK NOT DEFINED. 1.3 TUJUAN ...ERROR! BOOKMARK NOT DEFINED. 1.4 BATASAN MASALAH ...ERROR! BOOKMARK NOT DEFINED. 1.5 METODOLOGI PENELITIAN ...ERROR! BOOKMARK NOT DEFINED.
1.5.1 Studi Pustaka ... Error! Bookmark not defined.
1.5.2 Analisis ... Error! Bookmark not defined.
1.5.3 Desain sistem ... Error! Bookmark not defined.
1.5.4 Implementasi ... Error! Bookmark not defined.
1.5.5 Pengujian ... Error! Bookmark not defined.
1.5.6 Dokumentasi ... Error! Bookmark not defined.
1.6 SISTEMATIKA PENULISAN ...ERROR! BOOKMARK NOT DEFINED. BAB II LANDASAN TEORI ... ERROR! BOOKMARK NOT DEFINED.
2.2 SEKURITI ...ERROR! BOOKMARK NOT DEFINED. 2.3 KONSEP DASAR PROGRAM APLIKASI .ERROR! BOOKMARK NOT DEFINED.
2.3.1 Program ... Error! Bookmark not defined.
2.3.2 Aplikasi ... Error! Bookmark not defined.
2.3.3 Program Aplikasi ... Error! Bookmark not defined.
2.4 BAHASA PEMROGRAMAN JAVA ...ERROR! BOOKMARK NOT DEFINED.
2.4.1 Java API ... Error! Bookmark not defined.
2.4.2 Karakteristik Java ... Error! Bookmark not defined.
2.4.3 Kekurangan dan Kelebihan Java ... Error! Bookmark not defined.
2.4.4 Fitur dari java ... Error! Bookmark not defined.
2.4.5 Fase Pemrograman Java ... Error! Bookmark not defined.
2.5 OBFUSCATION ...ERROR! BOOKMARK NOT DEFINED. 2.6 ALGORITMA AES ...ERROR! BOOKMARK NOT DEFINED.
BAB III ANALISIS DAN PERANCANGAN SISTEMERROR! BOOKMARK NOT DEFINED.
3.1 ANALISIS SISTEM ...ERROR! BOOKMARK NOT DEFINED.
3.1.1. Proses Listing File ... Error! Bookmark not defined.
3.1.2. Proses parsing ... Error! Bookmark not defined.
3.1.3. Proses Obfuscate ... Error! Bookmark not defined.
3.1.4. Proses pembuatan file java ... Error! Bookmark not defined.
3.2 PERANCANGAN INTERFACE ...ERROR! BOOKMARK NOT DEFINED.
3.2.1. Modul input/output ... Error! Bookmark not defined.
3.2.2. Modul Parse ... Error! Bookmark not defined.
3.2.3. Modul obfuscate ... Error! Bookmark not defined.
3.2.4. Modul monitor ... Error! Bookmark not defined.
BAB IV IMPLEMENTASI DAN PENGUJIANERROR! BOOKMARK NOT DEFINED.
4.1 IMPLEMENTASI SISTEM ...ERROR! BOOKMARK NOT DEFINED.
4.1.1. Implementasi Modul input/output ... Error! Bookmark not defined.
4.1.2. Implementasi modul Parse ... Error! Bookmark not defined.
4.1.3. Implementasi Modul Obfuscate... Error! Bookmark not defined.
4.2 PENGUJIAN SISTEM ...ERROR! BOOKMARK NOT DEFINED.
4.2.2. Rencana Pengujian ... Error! Bookmark not defined.
4.2.3. Pengujian Wite-box ... Error! Bookmark not defined.
4.2.3.1 Pengujian Wite-box proses listing ... Error! Bookmark not defined. 4.2.3.2 Pengujian wite-box proses ObfuscationError! Bookmark not defined.
4.2.4. Pengujian Modul ... Error! Bookmark not defined.
4.2.5. Hasil pengujian ... Error! Bookmark not defined.
4.2.6. Kesimpulan Pengujian ... Error! Bookmark not defined.
BAB V KESIMPULAN DAN SARAN ERROR! BOOKMARK NOT DEFINED.
5.1 KESIMPULAN ...ERROR! BOOKMARK NOT DEFINED. 5.2 SARAN ...ERROR! BOOKMARK NOT DEFINED. DAFTAR PUSTAKA ... ERROR! BOOKMARK NOT DEFINED.
DAFTAR GAMBAR
Gambar 2. 1 Fase pembentukan Program Java ... Error! Bookmark not defined. Gambar 2. 2 Konsep Obfuscation ... Error! Bookmark not defined. Gambar 3. 1 Flowchart Listing file ... Error! Bookmark not defined. Gambar 3. 2 Flowchart proses parsing ... Error! Bookmark not defined. Gambar 3. 3 Flowchart proses obfuscate ... Error! Bookmark not defined. Gambar 3. 4 Flowchart enkripsi AES 128 ... Error! Bookmark not defined. Gambar 3. 5 Flowchart replace character symbol . Error! Bookmark not defined. Gambar 3. 6 Flowchart Pembuatan file... Error! Bookmark not defined. Gambar 3. 7 Desain interface modul input/output Error! Bookmark not defined. Gambar 3.8 Desain interface modul Parse ... Error! Bookmark not defined. Gambar 3. 9 Desain interface modul Obfuscate .... Error! Bookmark not defined. Gambar 3. 10 Desain interface modul monitoring . Error! Bookmark not defined. Gambar 4. 1 Implementasi interface modul input/outputError! Bookmark not defined. Gambar 4. 2 Potongan source-code Listing file *.javaError! Bookmark not defined. Gambar 4. 3 implementasi interface modul Parse Error! Bookmark not defined.
Gambar 4. 4 Potongan source-code mendeteksi method dan variabelError! Bookmark not defined. Gambar 4. 5 Potongan source-code mendeteksi method dan menyimpanError! Bookmark not defined. Gambar 4. 6 Potongan source-code mendeteksi variabel dan menyimpanError! Bookmark not defined. Gambar 4. 7 Potongan source-code mendeteksi value stringError! Bookmark not defined.
Gambar 4. 8 implementasi interface modul Obfuscate.Error! Bookmark not defined. Gambar 4. 9 Potongan source-code kunci enkripsi randomError! Bookmark not defined. Gambar 4. 10 source-code rename method ... Error! Bookmark not defined.
Gambar 4. 11 source-code rename method caller .. Error! Bookmark not defined. Gambar 4. 12 source-code rename variable ... Error! Bookmark not defined. Gambar 4. 13 source-code rename variable callerError! Bookmark not defined.
Gambar 4. 14 Potongan source-code membuat decript fileError! Bookmark not defined. Gambar 4. 15 potongan source-code change string valueError! Bookmark not defined. Gambar 4. 16 potongan source-code untuk membuat file *.javaError! Bookmark not defined. Gambar 4. 17 potongan source-code untuk menjalankan commandError! Bookmark not defined. Gambar 4. 18 Potongan source-code Manifest fileError! Bookmark not defined.
Gambar 4. 19 potongan source-code untuk membuat command *.JarError! Bookmark not defined. Gambar 4. 20 pengubahan flowchart kedalam flow graph proses listingError! Bookmark not defined. Gambar 4. 21 pengubahan flowchart kedalam flow graph proses
Obfuscation ... Error! Bookmark not defined. Gambar 4. 22 Penomoran ulang flow graph ... Error! Bookmark not defined. Gambar 4. 23 Pengujian modul input/output ... Error! Bookmark not defined. Gambar 4. 24 Pengujian modul Parse ... Error! Bookmark not defined.
Gambar 4. 25 Pengujian modul Obfuscate sebelum encriptError! Bookmark not defined. Gambar 4. 26 Pengujian Modul obfuscate setelah encriptError! Bookmark not defined. Gambar 4. 27 Pengujian modul monitor ... Error! Bookmark not defined. Gambar 4. 28 Grafik penggunaan memori RAM . Error! Bookmark not defined. Gambar 4. 29 Grafik performance program ... Error! Bookmark not defined.
DAFTAR TABEL
Tabel 2. 1 Fase pemrograman Java ... Error! Bookmark not defined. Tabel 2. 2 Jumlah putaran algoritma AES ... Error! Bookmark not defined. Tabel 4. 1 project yang akan di obfuscate ... Error! Bookmark not defined. Tabel 4. 2 Rencana Pengujian ... Error! Bookmark not defined. Tabel 4. 3 Path cyclomatic complexity proses listingError! Bookmark not defined. Tabel 4. 4 Graph matrix proses Listing ... Error! Bookmark not defined. Tabel 4. 5 Pengujian proses listing ... Error! Bookmark not defined. Tabel 4. 6 Path proses Obfuscation ... Error! Bookmark not defined. Tabel 4. 7 Graph Matrix proses Obfuscation ... Error! Bookmark not defined. Tabel 4. 8 Pengujian proses Obfuscation ... Error! Bookmark not defined. Tabel 4. 9 Project testing ... Error! Bookmark not defined. Tabel 4. 10 Pengujian menggunakan Project CalculatorError! Bookmark not defined.
Tabel 4. 11 Pengujian menggunakan Project Calculator ScientificError! Bookmark not defined. Tabel 4. 12 Pengujian menggunakan Project OneClickBankingError! Bookmark not defined. Tabel 4. 13 Hasil pengujian project ... Error! Bookmark not defined.
Daftar Pustaka
Andi Gunawan M.kom, ST. Metode dan Algoritma. 2010. http://www.metode-algoritma.com/2013/02/kriptografi-algoritma-blowfish.html (accessed 10 27, 2014). Binanto, Iwan. “Konsep Bahasa Pemrograman.” 1. Yogyakarta: Andi, 2009.
Coliberg, CS. Watermarking, Temper-Proofing and Obfuscation - Tools for Software. IEEE Transc On Software Engineering Vol 28 No 6., 2002.
Dhanta, Rizky. “Pengantar Ilmu Komputer.” 32. Surabaya: Indah, 2009.
Eliam, Eldad & Chikofsky, Elliot J. Reversing: secrets of reversing engineering. John Wiley & Sons, 2007.
Ir Sugiyono. “Pemrograman Terstruktur.” 21. Kuningan - Jawa Barat: Panji gumilang press, 2005.
Jogiyanto . “Analisis dan Desain Sistem Informasi.” 4. Jogjakarta: Andi, 2004. Komputer, Wahana. Kamus Lengkap Dunia Komputer. Jogjakarta: Andi, 2009.
Liang, Y. Daniel. Introduction to Java programming: comprehensive version 6 th. London, United States of America: Pearson Education Ltd, 2007.
Microsoft. Microsoft Developer Network. 2005. http://msdn.microsoft.com/en-US/library/ms227255(v=vs.80).aspx (accessed 10 27, 2014).
Presman, Roger. Software Engineering A Practitioner's Approach 6 th Edition. McGraw Hill, 2005.
Republik Indonesia . Undang Undang Republik Indonesia Nomor 19 Tahun 2002 Tentang Hak Cipta. Jakarta, 2002.
Republik Indonesia. Undang Undang Republik Indonesia Nomor 28 Tahun 2014 Tentang Hak Cipta. Jakarta, 2014.
Wangsawidjaja, Jeffrey. “Perancangan Program Aplikasi Obfuskator Source Code Actionscript untuk minimalisasi Tindakan Plagiarisme Menggunakan Algoritma Blowfish.” 2006: 15.
Wardiana, Wawan. “Pencegah Pembajakan Perangkat Lunak dengan MenggunakanTeknik Identity-Based Encryption dan Obfuscation.” INKOM, 2009: 1 - 2.