ISSN 2548-9704
JTIK
Jurnal Teknik Informatika Kaputama Volume 1
Nomor 1
Januari 2017
DAFTAR ISI Dewan Redaksi PERANCANGAN APLIKASI KEAMANAN PESAN MENGGUNAKAN ALGORITMA ELGAMAL DENGAN MEMANFAATKAN ALGORITMA ONE TIME PAD SEBAGAI PEMBANGKIT KUNCI Achmad Fauzi, Yani Maulita, Novriyenni
1-9
KARAKTERISTIK OPENFLOW CONTROLLER DENGAN ONOS Daniel Halomoan Saragi Napitu, M.Zarlis, Tulus
10-14
AUTOMATIC WATER TANK PUMP SWITCHER USING MICROKONTROLLER ATMEGA16 Nurhayati, Novriyenni, Irwansyah Ilham
15-25
ALGORITMA VIGENERE CIPHER DAN HILL CIPHER DALAM APLIKASI KEAMANAN DATA PADA FILE DOKUMEN Akim Manaor Hara Pardede, Hotler Manurung, Dina Filina
26-33
PENENTUAN RUTE TERPENDEK PENDISTRIBUSIAN NASKAH UJIAN NASIONAL MENGGUNAKAN ALGORITMA DIJKSTRA (DINAS PENDIDIKAN DAN PENGAJARAN KOTA BINJAI) Siswan Syahputra
34-45
ANALISIS PENGARUH MUTASI TERHADAP PERFORMANCE ALGORITMA GENETIKA Erianto Ongko
46-51
PERBANDINGAN ALGORITMA MESSAGE DIGEST-5 (MD5) DAN GOSUDARSTVENNYI STANDARD (GOST) PADA HASHING FILE DOKUMEN Marthin Benedict, Mohammad Andri Budiman, Dian Rachmawati
52-63
Volume 1 Nomor 1 Januari 2017 ISSN 2548-9704
DEWAN REDAKSI Pelindung / Penasehat
: Yayasan Pendidikan Teknologi Informasi Mutiara
Penanggung Jawab
: Lina Arliana Nur Kadim, SE., MM (Ketua STMIK Kaputama)
Penyunting Ahli
: Prof. Dr. M.Zarlis, M.Sc Dr.Ir. Rila Mandala, M.Eng Dr. Poltak Sihombing, M.Kom Dr. Erna Budhiarti Nababan, MIT Dr. Zakarias Situmorang, M.Kom
Penyunting Pelaksana
: Novriyenni, S.Kom., M.Kom Relita Buaton, ST., M.Kom Drs. Katen Lumbanbatu, M.Kom Akim M.H. Padede, ST., M.Kom Yani Maulita, S.Kom., M.Kom
Pimpinan Redaksi
: Budi Serasi Ginting, S.Kom, M.Kom
Sekretaris Redaksi
: Fuzy Yustika Manik, S.Kom., M.Kom
Distribusi dan Pemasaran
: Langgeng Restuwono, S.Kom I Gusti Prahmana, S.Kom Abdul Rahman, S.Kom
JTIK diterbitkan oleh Program Studi Teknologi Informatika STMIK Kaputama sebagai media untuk menyalurkan pemahaman tentang aspek-aspek teknologi informasi berupa hasil penelitian lapangan atau laboratorium maupun studi pustaka. Jurnal ini terbit dua kali dalam setahun yaitu bulan Januari dan Juli. Redaksi menerima naskah yang belum pernah diterbitkan dalam media lain dari dosen, peneliti, mahasiswa maupun praktisi dengan ketentuan penulisan. Naskah yang masuk akan dievaluasi dan disunting untuk keseragaman format, istilah dan tata cara lainnya.
Alamat Redaksi: Lembaga Penelitian dan Pengabdian Masyarakat (LPPM) STMIK Kaputama Jln Veteran No.4A-9A Binjai, 20714, Sumatera Utara, Telp. (061) 8828840,082366304242, Fax. 8875534 e-mail:
[email protected] website: http://www.kaputama.ac.id
Jurnal Teknik Informatika Kaputama (JTIK), Vol 1 No 1, Januari 2017
ISSN : 2548-9704
PERANCANGAN APLIKASI KEAMANAN PESAN MENGGUNAKAN ALGORITMA ELGAMAL DENGAN MEMANFAATKAN ALGORITMA ONE TIME PAD SEBAGAI PEMBANGKIT KUNCI Achmad Fauzi1), Yani Maulita2), Novriyenni3) STMIK Kaputama Jl. Veteran No. 4A-9A, Binjai, Medan, Sumatera Utara Email:
[email protected] 1 ),
[email protected] 2),
[email protected] 3)
Abstrak Pengamanan pesan diperlukan dalam rangka untuk mencegah pesan yang didistribusikan dapat dibuka oleh pihak lain yang tidak berkepentingan di mana pada akhirnya dapat mengancam kemanan dan kenyamanan dari si pengirim maupun penerima pesan tersebut. Untuk mengamankan pesan tersebut dalam dilakukan penerapan ilmu kriptografi yang bertujuan untuk mengubah pesan asli (plaintext) menjadi pesan terenkripsi (ciphertext), di mana untuk membukapesan tersebut memerlukan kunci.Algoritma One Time Paddikenal dengan nama holy grail algorithm dikarenakan algoritma kriptografi One Time Pad adalah algoritma yang sempurna yang tidak bisa dipecahkanbiarpun begitu algoritma One Time Pad memiliki kelemahan dalam menjaga kerahasiaan atau keamanan kunci sehingga harus diberikan pengamanan pada kunci agar kunci dari OTP itu selama pengiriman terjaga kerahasiaanya. Sedangkan pada algoritma asimetri atau kunci publik ada algoritma Elgamal yang juga mempunyai keamanan yang tinggi karena kompleksitas algoritmanya.Dengan disuper enkripsikannya algoritma one time pad dan ElGamal tersebutdapat meningkatkan keamanan pada pesan dan juga dapat menjaga kerahasiaan atau keamanan kunci dari one time pad selama proses pengiriman pesan dan kunci. Kata Kunci : ElGamal, Kriptografi, One Time Pad , Pengamanan.
1. PENDAHULUAN 1.1 Latarbelakang Keamanan merupakan masalah besar dan mengamankan data yang penting sangat penting, sehingga data tersebut tidak dapat disadap atau disalahgunakan untuk tujuan ilegal sehingga merugikan pihak lain. Untuk itulah pemerintah dan lembaga lainnya berusaha mengamankan data mereka sekuat tenaga agar tidak terjadi pembobolan. Biarpun begitu tetap aja ada pihak-pihak yang berusaha membobol itu dengan menggunakan berbagai kunci dan juga metode.Untuk menghindari hal tersebut maka data yang dikirim diubah kedalam data yang tidak dapat dibaca oleh sang pembajak kemudian data tersebut diubah kembali dalam bentuk yang bisa dibaca oleh penerimanya. Teknik dan ilmu untuk membuat data yang tidak dapat dibaca sehingga hanya orang yang berwenang yang mampu membaca data, inilah yang disebut dengan kriptografi (Goyal & Kinger, 2013). Kriptografi secara umum
adalah ilmu dan seni untuk menjaga kerahasiaan pesan ketika pesan dikirim dari suatu tempat ke tempat yang lain. Pada kriptografi terdapat proses enkripsi dan dekripsi yang bertujuan untuk mengamankan data. Enkripsi adalah mengubah pesan asli (plaintext) menjadi pesan dalam bentuk tersandi (ciphertext). Proses enkripsi akan menghasilkan data tersandi dan hanya dapat dibuka atau dibaca oleh pihak penerima yang memiliki kunci (key) sedangkan proses dekripsi adalah proses mengembalikan data tersebut menjadi bentuk asli. (Munir, 2006). Menurut kunci yang digunakan kriptografi terbagi atas dua yaitu kriptografi asimetri dan kriptografi simetri. Kriptografi simetri adalah kriptografi yang menggunakan kunci yang sama saat proses enkripsi dan dekripsi sedangkan kriptografi asimetri adalah kriptografi yang proses enkripsi dan dekripsi menggunakan dua kunci yang berbeda. Pada kriptografi simetri terdapat sebuah algoritma kriptografi klasik yang dikenal sebagai holy grail algorithm. 1
Jurnal Teknik Informatika Kaputama (JTIK), Vol 1 No 1, Januari 2017
Algoritma itu dikenal dengan nama One Time Pad dikarenakan algoritma kriptografi One Time Pad adalah algoritma yang sempurna yang tidak bisa dipecahkan biarpun begitu algoritma One Time Pad memiliki kelemahan dalam menjaga kerahasiaan atau keamanan kunci sehingga harus diberikan pengamanan pada kunci agar kunci dari OTP itu selama pengiriman terjaga kerahasiaanya (Stamp, 2011). Sedangkan pada algoritma asimetri atau kunci publik ada algoritma Elgamal yang juga mempunyai keamanan yang tinggi karena kompleksitas algoritmanya. Berdasarkan alasan itu penulis mencoba melakukan penelitian dengan menggabungkan algoritma simetris yang diambil dr algoritma klasik yaitu One Time Pad(OTP) dengan algoritma asimetris atau algoritma kunci publik yaitu algoritma ElGamal yang dimana nantinya algoritma ElGamal akan digunakan untuk mengamankan kunci dari One Time Pad sebelum kunci dikirim ke penerima. Dengan disuper enkripsinya algoritma nantinya akan memunculkan suatu super enkripsi algoritma yang dapat meningkatkan keamanan sehingga pesan lebih sulit dipecahkan dan juga keamanan kunci OTP dapat terjaga dengan aman sehingga pihak ketiga tidak mudah menjebol pesan yang dikirim. 1.2 Rumusan Masalah Dalam rumusan masalah diatas penulis merumuskan bagaimana proses enkripsi algoritma ElGamal dan algoritma One Time Pad dapat dibagun sehingga dapat meningkatkan keamanan pesan dan kunci. 1.3 Tujuan Penelitian Tujuan peneliti disini adalah menganalisa kerja enkripsi algoritma ElGamal dan algoritma One Time Pad untuk proses keamanan pada teks sehingga dari super enkripsi algoritma tersebut dapat meningkatkan keamanan pada pesan dan juga dapat menjaga kerahasiaan atau keamanan kunci selama proses pengiriman
ISSN : 2548-9704
2. LANDASAN TEORI 2.1 Definisi Kriptografi Kriptografi adalah merupakan ilmu yang mempelajari teknik-teknik matematika yang berhubungan dengan aspek keamanan informasi seperti kerahasiaan, integritas data serta otentikasi. Kriptografi adalah proses penggunaan berbagai teknik dan atau ilmu dan seni untuk menjaga keamanan pesan. Cryptographic algorithm adalah fungsi matematika yang digunakan untuk enkripsi dan dekripsi. Terdapat dua fungsi yang saling berhubungan yaitu satu untuk enkripsi dan satu lagi untuk dekripsi. Enkripsi merupakan proses pengkodean sebuah pesan sehingga isi dari pesan tersebut tidak diketahui. Dekripsi adalah proses kebalikan dari enkripsi yaitu mentransformasi pesan yang dienkripsi kembali menjadi bentuk semula. Sebuah sistem enkripsi dan dekripsi disebut cryptosystem. Bentuk asli dari sebuah pesan disebut plaintext dan bentuk asli yang dienkripsi disebut ciphertext. 2.2 Algoritma Kriptografi Algoritma kriptografi merupakan langkah-langkah logis bagaimana menyembunyikan pesan dari orang-orang yang tidak berhak atas pesan tersebut. Algoritma kriptografi terdiri dari tiga fungsi dasar yaitu : (Ariyus, 2008) 1. Enkripsi merupakan hal yang sangat penting dalam kriptografi, merupakan pengamanan data yang dikirimkan agar terjaga kerahasiannya. Pesan asli disebut plaintext, yang diubah menjadi kodekode yang tidak dimengerti. Enkripsi bisa diartikan dengan cipher atau kode. Untuk mengubah teks asli ke bentuk teks kode digunakan algoritma yang dapat mengkodekan data. 2. Dekripsi merupakan kebalikan dari enkripsi. Pesan yang telah dienkripsi dikembalikan ke bentuk asalnya (teks asli/plaintext) disebut dengan dekripsi. 3. Kunci yang dipakai untuk melakukan enkripsi dan dekripsi. Kunci terbagi menjadi dua bagian yaitu kunci rahasia (private key) dan kunci umum (public key)
2
Jurnal Teknik Informatika Kaputama (JTIK), Vol 1 No 1, Januari 2017
Biasanya algoritma kriptografi dapat dinotasikan sebagai berikut : Plaintext(M) Ciphertext(C) Enkripsi (fungsi E) Dekripsi (fungsi D) Kriptografi itu sendiri terdiri dari dua proses utama yakni proses enkripsi dan proses dekripsi. Seperti yang telah dijelaskan di atas, proses enkripsi mengubah plaintext menjadi ciphertext (dengan menggunakan kunci tertentu) sehingga isi informasi pada pesan tersebut sukar dimengerti. Adapun alur dari proses enkripsi dan dekripsi pada kriptografi dapat dilihat pada gambar 2.1
Gambar 2.1 Konsep Proses Enkripsi dan Dekripsi Sumber : Kriptografi, Dony Ariyus, Andi Publisher 2.3 Super Enkripsi Super Enkripsi merupakan gabungan antara cryptosystem yang memakai asymmetric cryptosystem dan cryptosystem yang memakai symmetric cryptosystem. (Schneier, 1996). Cryptosystem adalah suatu fasilitas untuk mengkonversikan plaintext ke ciphertext dan sebaliknya, cryptosystem terdiri dari suatu algoritma seluruh kemungkinan plaintext, ciphertext, dan kunci. Algoritma super enkripsi adalah algoritma yang memanfaatkan dua tingkatan kunci yaitu kunci rahasia (simetris) – yang disebut juga session key (kunci sesi) – untuk enkripsi data dan pasangan kunci rahasia – kunci public untuk pemberian tanda tangan digital serta melidungi kunci simetriss. (Ariyus, 2008). Kriptografi super enkripsi sering dipakai karena memanfaatkan keunggulan kecepatan pemrosesan data oleh algoritma simetris dan kemudahan transfer kunci menggunakan algoritma asimetris. Hal ini mengakibatkan peningkatan kecepatan tanpa mengurangi kenyamanan serta keamanan.
ISSN : 2548-9704
2.4 Pembangkit Bilangan Acak Semu Pembangkit Bilangan Acak-Semu atau yang biasa dikenal dengan singkatan PRNG (Pseudo-Random Number Generator) adalah sebuah algoritma untuk menghasilkan suatu urutan bilangan yang terlihat acak, namun sebenarnya urutan tersebut tidak benar-benar acak karena urutan tersebut ditentukan oleh suatu nilai awal. Urutan bilangan yang terlihat acak ini sangat penting karena bisa dimanfaatkan untuk suatu parameter bagi percobaan atau simulasi dan juga menjadi pusat pake praktik kriptografi. Sebuah pembangkit bilangan acak-semu bisa dimulai dengan memberikan nilai umpan. Pembangkit bilangan acak-semu ini akan selalu memberikan urutan bilangan yang sama jika diberikan nilai umpan yang sama, dengan jumlah bilangan yang dihasilkan bergantung kepada besar nilai umpan yang diukur dengan satuan bit. Keuntungan dari penggunaan pembangkit bilangan acak-semu ini adalah efisien, algoritma ini mampu menghasilkan banyak angka dalam waktu singkat, dan tertentu, urutan yang digunakan bisa dimunculkan kembali dengan mudah jika nilai awalnya diketahui. Efisien adalah karakteristik yang sangat baik jika aplikasi kita membutuhkan banyak angka. Tertentu juga akan berguna jika kita perlu mengulang suatu urutan bilangan. 2.5 Pembangkit Bilangan Prima Sebagian besar algoritma kuncipublik menggunakan bilangan prima sebagai salah satu nilai parameternya. Bilangan prima yang disarankan berkuran besar sehingga penggunaan tipe data bilangan bulat yang besar mutlak diperlukan. Dalam menghasilkan bilangan prima dapat digunakan berbagai metode. Agar dapat menghasilkan bilangan prima yang besar maka harus menggunakan ruang memori dan waktu. Secara umum pembangkitan bilangan prima dapat dibagi menjadi dua, yaitu dengan membangkitkan bilangan prima dari bilangan prima terkecil dengan pengujian yang akan menghasilkan bilangan prima dengan persentase 100% atau dengan menguji bilangan acak dan kemudian menguji apakah bilangan tersebut termasuk bilangan 3
Jurnal Teknik Informatika Kaputama (JTIK), Vol 1 No 1, Januari 2017
prima. 2.6 One Time Pad One Time Pad termasuk dalam kriptografi klasik yang berkunci simetris. One Time Pad disebut juga sebagai algoritma yang tidak terpecahkan atau juga diketahui sebagai holy grail algorithm. (Horstmeyer, Judkewitz, Vellekoop, Assawawarrarit & Yamg, 2013). Algoritma One Time Pad mempunyai cara kerja dimana penerima pesan mempunya salinan kunci yang sama dan kunci tersebut hanya dipakai satu kali (one time) untuk enkripsi dan dekripsi dan setelah digunakan maka pad (kertas blocknot)harus segera dihancurkan agar tidak bisa dipakai lagi untuk enkripsi dan dekripsi pesan yang lain.Pengirim danpenerimaharus samasamamemiliki satu set materi kunci yang besar dan juga acak, selamakombinasi dari semuapesan yang pernah dikirimkan. Jadi secara teori alasan OTP tidak dapat dipecahkan jika kuncinya secara sempurna diacak, dirahasiakan dan hanya dipakai sekali saja. (Nemati & Yang, 2011) Pada algoritma OTP mempunyai panjang kunci yang sama dengan panjang plaintext.Sehingga tidak ada kebutuhan untuk mengulang penggunaaan kunci selama proses enkripsi. Pada algoritma OTP mempunyai panjang kunci yang sama dengan panjang plaintext. Sehingga tidak ada kebutuhan untuk mengulang penggunaaan kunci selama proses enkripsi. Adapun aturan enkripsi dan dekripsi dari one time pad adalah sebagai berikut: 1. Enkripsi Ci = (Pi + Ki)mod 26 2. Dekripsi Ci=(Pi – Ki) mod 26 Skema OTP tidak dapat dipecahkan karena alasan sebagai berikut : (Ariyus, 2008) 1. Barisan kunci acak + teks asli yang tidak acak = teks kode yang seluruhnya acak. 2. Mendekripsi teks kode dengan berbagai kunci berbeda dapat menghasilkan plainteks yang beragam sehingga kripnatalis tidak punya cara untuk menemukan plainteks mana yang benar. Meskipun OTP merupakan suatu algoritma yang sempurna dan aman, tetapi dalam praktik modern jarang digunakan karena disebabkan oleh panjang kunci = panjang pesan, sehingga
ISSN : 2548-9704
timbul masalah dalam menjaga kerahasiaan kunci selama proses pendistribusian kunci (Stamp, 2011). 2.7 El Gamal Algoritma ElGamal ditemukan pada tahun 1985 oleh ilmuwan Mesir yaitu Taher ElGamal. Algoritma ElGamal merupakan algoritma berdasarkan konsep kunci publik. Algoritma ini pada umumnya digunakan untuk digital signature, namun kemudian dimodifikasi sehingga bisa digunakan untuk enkripsi dan dekripsi. Algoritma kriptografi kunci publik ElGamal merupakan algoritma blok chipper yaitu algoritma yang melakukan proses enkripsi pada blok-blok plainteks yang kemudian menghasilkan blok-blok chipertext, yang nantinya blok-blok chipertext tersebut akan didekripsi kembali dan hasilnya kemudian digabungkan menjadi plainteks semula. Keamanan algoritma ElGamal terletak pada kesulitan perhitungan logaritma diskrit pada modulo prima yang besar, sehingga upaya untuk menyelesaikan masalah logaritma ini menjadi sulit untuk dipecahkan. Algoritma ini memiliki kelebihan yaitu pembangkitan kunci yang menggunakan logaritma diskrit dan metode enkripsi dekripsi yang menggunakan proses komputasi yang besar sehingga hasil enkripsinya berukuran dua kali dari ukuran semula. Kekurangan algoritma ini adalah membutuhkan resource yang besar karena chipertext yang dihasilkan dua kali panjang plaintext serta membutuhkan processor yang mampu untuk melakukan komputasi yang besar untuk perhitungan logaritma perpangkatan besar. (Madhur, Yadav, dan Vijay, 2012) Satu karakter yang direpresentasikan dengan menggunakan bilangan bulat ASCII akan menghasilkan kode dalam bentuk blok yang terdiri atas dua nilai (a, b). (Rashmi Singh, Shiv Kumar, 2012) a) Ambil sebuah karakter dalam pesan yang akan dienkripsi dan transformasi karakter tersebut ke dalam kode ASCII sehingga diperoleh bilangan bulat m. Plainteks tersebut disusun menjadi blok-blok m1, m2, …, sedemikian hingga setiap blok merepresentasikan nilai di dalam rentang 0 (nol) sampai p-1.
4
Jurnal Teknik Informatika Kaputama (JTIK), Vol 1 No 1, Januari 2017
b)
Memilih bilangan acak k, yang dalam hal ini 0 < k < p-1, sedemikian hingga k relative prima dengan p-1. c) Hitung nilai a dan b dengan persamaan berikut : a = gk (mod p) …..………(4) b = yk m (mod p) ...……..(5) d) Diperoleh cipherteks untuk karakter m tersebut dalam blok (a,b) e) Melakukan proses di atas untuk seluruh karakter dalam pesan termasuk karakter spasi. Dekripsi dari cipherteks ke plainteks menggunakan kunci rahasia a yang disimpan kerahasiaanya oleh penerima pesan. Teorema : Diberikan (p,g, y) sebagai kunci public dan x sebagai kunci rahasia pada algoritma ElGamal. Jika diberikan cipherteks (a, b), maka m = b/a x mod p .......... (4) dengan M adalah plainteks. Di mana nilai (ax)-1= r –a = rp -1-a mod p. … (5) a. Ambil sebuah blok cipherteks dari pesan yang telah dienkripsikan pengirim. b. Dengan menggunakan a yang dirahasiakan oleh penerima, hitung nilai plainteks dengan menggunakan “persamaan (4)” dan “persamaan (5)”. Secara garis besar algoritma el-gamal mempunya langkah-langkah pembentukan kunci sebagai berikut : a. Bilangan prima, p (bersifat public atau tidak rahasia) b. Bilangan acak, g (dimana g < p dan bersifat public atau tidak rahasia) c. Bilangan acak, x (dimana x < p dan bersifat private atau rahasia) d. Bilangan acak, k (dimana k < p dan bersifat private atau rahasia) e. m merupakan plainteks dan bersifat private/rahasia f. a dan b merupakan pasangan chiperteks hasil enkripsi bersifat private atau tidak rahasia. Proses Pembentukan kunci Algoritma ElGamal Proses pembentukan kunci merupakan proses penentuan suatu bilangan yang kemudian akan digunakan sebagai kunci
ISSN : 2548-9704
pada proses enkripsi dan dekripsi pesan. Kunci untuk enkripsi dibangkitkan dari nilai p, g, y sedangkan kunci untuk dekripsi terdiri dari nilai x, p. Masing-masing nilai mempunyai persyaratan yang harus dipenuhi. Langkah-langkah dalam pembuatan kunci adalah sebagai berikut : 1. Pilih sembarang bilangan prima p, dengan syarat p > 255. 2. Pilih bilangan acak g dengan syarat g < p. 3. Pilih bilangan acak x dengan syarat 1 ≤ x ≤ p – 2. 4. Hitung y = g^x mod p. Kunci public nya adalah y, g, p sedangkan kunci private nya adalah x. nilai y, g, dan p tidak dirahasiakan sedangkan nilai x harus dirahasiakan karena merupakan kunci privat untuk mendekripsi plainteks. (Rashmi Singh, Shiv Kumar, 2012). 3. METODOLOGI PENELITIAN Subyek penelitian ini adalah Memanfaatkan algoritma kriptografi Elgamal dan One Time Pad (OTP) dalam penyandian data,sehingga nantinya dari proses keamanan akan menghasilkan algoritma yang baru yang mempunyai tingkat kesulitan pengamanan data yang tinggi dan cepat dalam proses enkripsi maupun dekripsi. Adapun metodologi yang digunakan pada penyusunan penelitian diatas antara lain adalah : Studi pustaka, pengumpulan jurnal ilmiah, pengumpulan ebook dan uji coba progam. 4. ANALISA DAN PERANCANGAN 4.1 Proses Enkripsi dan Dekripsi Algoritma One Time Pad Pada tahap awal enkripsi, pesan yang dibutuhkan adalah berupa teks yang akan dienkripsi, dengan menggunakan kunci acak dimana panjang kunci harus sama dengan plaintext. Langkah-langkah proses enkripsinya : Dimasukkan plainteks adalah : FASILKOM dengan kunci yang dibangkitkan secara acak yaitu XBYHMDKO.Misalkan nilai setiap huruf atau karakter yaitu sebagai berikut : Tabel 3.1 Nilai Karakter A B C D E F G H I J K 0 1 2 3 4 5 6 7 8 9 10 Sampai huruf Z = 25 5
Jurnal Teknik Informatika Kaputama (JTIK), Vol 1 No 1, Januari 2017
ISSN : 2548-9704
4.3 Proses Enkripsi Elgamal Hitung proses enkripsi dengan menggunakan rumus ci = (pi + ki) mod 26. (F + X) mod 26 = ( 5 + 23) mod 26 = 28 mod 26 = 2 = C (A + B) mod 26 = (0 + 1) mod 26 = 1 mod 26 = 1 = B (S + Y) mod 26 = (18 + 24)mod 26 = 42 mod 26 = 16 = Q (I + H) mod 26 = (8 + 7) mod 26 = 15 mod 26 = 15 = P (L + M) mod 26 = (11 + 12) mod 26 = 23 mod 26 = 23 = X (K + D) mod 26 = (10 + 3) mod 26 = 13 mod 26 = 13 = N (O + K) mod 26 = (14 + 10) mod 26 = 24 mod 26 = 24 = Y (M + O) mod 26 =(12 + 14) mod 26 = 26 mod 26 = 0 = A Berdasarkan perhitungan diatas diperolehlah ciphertext CBQPXNYA. Ciphertext yang didapat inilah yang akan dikirim ke penerima. Kemudian kunci dari OTP yaitu “XBYHMDKO” terlebih dahulu akan diamakan menggunakan ElGamal sebelum dikirim. 4.2 Proses Pembangkitan Kunci Elgamal Pada proses ini dilakukan pembangkitan kunci publik dan privat dari elgamal yang nantinya akan digunakan untuk proses pengamanan kunci dari OTP “XBYHMDKO”. Berikut urutan langkah-langkah proses pembangkitan kunci : 1. Memilih sebuah bilangan acak prima yang diberi simbol p p = 127 2. Menentukan akar primitvie α modulo p nilai α modulo p = 13 3. memilih bilangan acak a dengan syarat 2≤a≤p–1 a = 17 4. Hitung nilai β = αa mod p β = 1317 mod 127 = 44 Hasil pembangkitan kunci adalah kunci publik adalah triple (44, 13, 127) kunci private adalah pasangan (17, 127) Dua pasangan kunci publik dan kunci privat yang sudah ditentukan ini yang akan digunakan pada enkripsi untuk mengamankan kunci OTP.
Setelah penentuan bilangan prima p = 127 dan elemen primitif α = 13, maka terbentuklah hasil kunci publik (127, 13, 44), langkah selanjutnya adalah melakukan enkripsi pesan kedalam bentuk chipertext. Adapun urutan proses enkripsi pesan tersebut adalah : 1. Masukkan teks yang akan dienkripsi yaitu berupa kunci dari OTP yang akan diamanankan. Plaintext = XBYHMDKO 2. Pesan dipotong menjadi blok-blok karakter dan dikonversi ke dalam kode ASCII. Tabel 3.2 Konversi Blok Karakter ke dalam kode ASCII I Karakter Plainteks mi (ASCII) 1 X 88 2 B 66 3 Y 89 4 H 72 5 M 77 6 D 68 7 K 75 8 O 79 3. Langkah selanjutnya, menentukan bilangan acak k ∈{1, 2, ……, 126}, kemudian dilakukan perhitungan a = αk mod p dan b = βk.m mod p. Tabel 3.3 Perhitungan Enkripsi plaintext I mi K αk mod b = βk.m p mod p 1 88 71 69 8 2 66 107 49 12 3 89 47 84 101 4 72 67 113 104 5 77 103 60 39 6 68 89 98 122 7 75 79 62 51 8 79 29 41 18 4. Kemudian hasil perhitungan disusun dengan pola (a1, b1,a2, b2, ….., ai, bi) maka didapatlah ciphertextnya sebagai berikut : 69 8 49 12 84 101 113 104 60 39 98 122 62 51 41 18 Kunci OTP yang sudah diamankan inilah yang nantinya akan dikirim ke penerima. 4.4 Proses Dekripsi Pada proses ini penerima melakukan dekripsi terhadap kunci OTP yang telah diamankan oleh Elgamal terlebih dahulu 6
ISSN : 2548-9704
Jurnal Teknik Informatika Kaputama (JTIK), Vol 1 No 1, Januari 2017
kemudian baru digunakan untuk membuka pesan yang dienkripsi oleh OTP. 4.5 Proses Dekripsi Elgamal Setelah melakukan proses enkripsi maka untuk membuka kembali plaintext yang sudah dienkrip dilakukan proses dekripsi agar kunci OTP dapat dibaca oleh penerima dan digunakan untuk mendekripsi pesan OTP. Adapaun urutan proses dekripsi adalah sebagai berikut : 1. Masukkan ciphertext yang akan didekripsi Ciphertext = 69 8 49 12 84 101 113 104 60 39 98 122 62 51 41 18 2. Langkah selanjutnya dilakukan perhitungan mi = bi . aip-1-x mod p Tabel 3.4 Perhitungan dekripsi ciphertext i
ai
bi
1 2 3 4 5 6 7 8
69 49 84 113 60 98 62 41
8 12 101 104 39 122 51 18
mi = bi . aip-1-x mod p 88 66 89 72 77 68 75 79
Karakter X B Y H M D K O
3. Didapatlah kembali kunci OTP XBYHMDKO yang kemudian digunakan untuk mendekripsi pesan oleh OTP. 4.6 Proses dekripsi One Time Pad Pada proses ini penerima melakukan dekripsi atas ciphertext yang dikirim dengan menggunakan kunci OTP yang telah didekripsin untuk mendekripsikannya ciphertext pada One-time pad digunakanlah rumus di = (ci – ki) mod 26. cara yang dilakukan adalah sebagai berikut : (C - X) mod 26 = (2 - 23) mod 26 = -22 mod 26 = 5 = F (B - B) mod 26 = (1 - 1) mod 26 = 0 mod 26 =0=A (Q - Y) mod 26 = (16 - 24) mod 26 = -8 mod 26 = 18 = S (P - H) mod 26 = (15 - 7) mod 26 = 8 mod 26 =8=I (X - M) mod 26 = (23 - 12) mod 26 = 11 mod 26 = 11 = L
(N - D) mod 26 = (13 - 3) mod 26 = 10 mod 26 = 10 = K (Y - K) mod 26 = (24 - 10) mod 26 = 14 mod 26 = 14 = O (A - O) mod 26 =(0 - 14) mod 26 = -14 mod 26 = 12 = M Jika terdapat nilai minus atau negatif dalam perhitungan maka ditambahkan 26 untuk membuat angkanya menjadi positif. Maka dari perhitungan diatas penerima mendapatkan kembali plaintext yang dikirim yaitu“FASILKOM” 4.7 Proses Rancangan yang berjalan Tahapan ini dimulai dengan terlebih dahulu mengamankan pesan dengan cara setiap karakter dari pesan dienkrip dengan kunci yang ada, kemudian kunci dari OTP (One Time Pad) diamankan lagi menggunakan Elgamal agar keamanan kunci saat didistribusi tidak bisa dijebol dan juga untuk mengecoh pihak ketiga. Tahapan dalam mengamankan kunci dimulai dengan pembentukan bilangan prima p, menentukan akar primitif α dan menentukan bilangan bulat x, proses selanjutnya menghitung β = αx mod p dan kemudian akan didapatkan kunci publik (p, α, β) dan kunci private(x, p). setelah proses pembentukan kunci Elgamal, dilanjutkan ke proses enkripsi pesan dimana pesan di Elgamal adalah kunci dari OTP yang akan diamankan. Adapun alur dari proses enkripsi pesan dengan OTP dan enkripsi kunci OTP yang akan diamankan dapat dilihat pada gambar 3.1. Kunci OTP
Plainteks
F I = 1 sampai or Enkrips i
Kunci OTP
Kunci OTP →ASCII
Chiperte ks
a= αk mod p dan b=βk.m mod
Kunci OTP yang sudah diamankan
Gambar 4.1. Flowchart proses enkripsi pesan – kunci 7
Jurnal Teknik Informatika Kaputama (JTIK), Vol 1 No 1, Januari 2017
ISSN : 2548-9704
5. HASIL DAN PEMBAHASAN Ada pun hasil proses enkripsi dari algoritma OTP dan algoritma ElGamal sehingga didapatlah hasil ciphertext dan cipherkeynya. Untuk lebih jelasnya dapat dilihat pada gambar dibawah ini.
\ Gambar 5.3 Tampilan setelah dilakukan proses dekripsi pesan dan kunci 6. KESIMPULAN DAN SARAN
Gambar 5.1 Tampilan Hasil Enkripsi Untuk dekripsinya terlebih dahulu kolom padaplaintext dan key OTP dikosongkan atau dihapus seperti yang terlihat pada gambar dibawah ini. Ada pun hasil implementasi sebelum proses dekripsi dari algoritma OTP dan algoritma ElGamal sehingga didapatlah hasil ciphertext dan cipherkeynya. Untuk lebih jelasnya dapat dilihat pada gambar dibawah ini.
Gambar 5.2 Tampilan sebelum di dekripsi Setelah itu tekan tombol decrypt untuk melakukan proses dekripsi pesan OTP dan kunci OTP sehingga didpatlah kembalih hasil plaintext dan kunci OTPnya. Untuk lebih jelasnya dapat dilihat pada gambar dibawah ini.
Apabila kita menggunakan suatu algoritma yang sudah ada bahkan yang sudah memiliki source code nya, maka dengan mudah pesan tersebut akan mudah dibobol dengan menggunakan algoritma yang sudah ada. Dari beberapa percobaan yang dilakukan dari menggabungkan algoritma One Time Pad dan ElGamal yang ada ini, dapat diambil kesimpulan : 1. Merupakan suatu Super Enkripsi algoritma yang baru. 2. Dapat diimplementasikan pada keamanan pesan. 3. Dapat menutupi kelemahan One Time Pad yaitu dimana panjang kunci sama dengan panjang pesan sehingga saat melakukan pengiriman pada dua saluran komunikasi kunci OTP memerlukan perlindungan. Kelemahan ini sudah ditutupi dengan algoritma ElGamal yang melakukan enkripsi terhadap kunci OTP sehingga keamanan kunci dari OTP terjaga begitu juga dengan pesannya. Dengan melakukan enkripsi pada kunci OTP mempunyai dua keuntungan yaitu kerahasian kunci terjaga dan juga dapat mengecoh pembobol karena mereka bisa saja berpikir bahwa kunci hasil dari enkripsi ElGamal ini kunci OTP yang asli. Saran untuk perbaikan penelitian ini agar lebih baik yaitu: 1. Untuk pengembangannya dapat dilakukan pengacakan kunci dari OTP secara random atau acak. 2. Untuk bilangan prima pada kunci ElGamal dapat dikembangkan dengan melakukan 8
Jurnal Teknik Informatika Kaputama (JTIK), Vol 1 No 1, Januari 2017
ISSN : 2548-9704
pengujian menggunakan algoritma untuk mengetest keprimaan suatu angka.
DAFTAR PUSTAKA [1] Ariyus, Dony. 2008. Pengantar Ilmu Kriptografi :Teori, Analisis dan Implementasi, Penerbit Andi:Yogyakarta. [2] Ariyus, Dony. 2006. Computer Security. Penerbit Andi:Yogyakarta. [3] Fauziah Yuli, 2008. Pengamanan Pesan Dalam Editor Teks Mengunakan Hybrid Cryptosystem. SemnasIF [4] Kromodimoeljo Sentot, 2010, Teori & Aplikasi Kriptografi, SPK IT Consulting [5] Munir, Rinaldi. 2006. Kriptografi. Penerbit Informatika:Bandung. [6] Madhur, Kapil.,Yadav, Singh, Jitendra.& Vijay, Ashish, 2012. Modified Elgamal over RSA Digital Signature Algorithm (MERDSA). International Journal of Advanced Research in Computer Science and Software Engeneering(1): 2277-128X [7] Mollin Richard, 2007 An Introduction to Cryptography, Taylor & Francis Group [8] Munir Rinaldi, 2006, Kriptografi. Penerbit informatika, Bandung [9] Sadikin Rifki, 2012, Kriptografi untuk keamanan jaringan, CV Andi Offset, Yogyakarta [10] Schneier, Bruce., 1996, Applied Cryptography : Protocols, Algorithms, and Source Code in C, 2nd Edition John Wiley & Sons Inc
9
ISSN : 2548-9704
Jurnal Teknik Informatika Kaputama (JTIK), Vol 1 No 1, Januari 2017
KARAKTERISTIK OPENFLOW CONTROLLER DENGAN ONOS Daniel Halomoan Saragi Napitu1, M.Zarlis2, Tulus3 Magister Teknik Informatika, Universitas Sumatera Utara (USU) Jln Universitas No 9A Kampus USU, Medan, Sumatera Utara
[email protected]
Abstrak Openflow merupakan protokol yang digunakan dalam implementasi Software Defined Networking (SDN). Sebagai bagian proses komunikasi antara controller Openflow dan switch Openflow, protokol Openflow berfungsi sebagai bagian utama proses komunikasi antar kedua perangkat tersebut. Sebagai perangkat pusat, Openflow controller
memiliki fungsi utama dalam komunikasi. Setiap vendor
memiliki pendekatan yang berbeda mengenai bagaimana penerapan proses komunikasi yang dilakukan oleh controller . Jurnal ini menjelaskan mengenai bagaimana operasional Openflow controller dengan menggunakan Open Network Operating System (ONOS).
Kata kunci : Openflow Controller , Openflow Network
1.
PENDAHULUAN
mempermudah melakukan kontrol terhadap seluruh perangkat yang mendukung protokol
Ada beberapa jenis Openflow controller
Openflow
yang dikembangkan vendor yang berbeda, seperti POX, NOX, Beacon, Helios, dan lain-
2.
METODOLOGI PENELITIAN
lain. Setiap controller dengan vendor yang berbeda memiliki karakteristik yang berbeda
Penelitian
dilaksanan
dengan
juga. Mengenal karakteristik sebuah controller
menggunakan
perlu dilakukan untuk mengetahui proses kerja
Mininet (untuk emulasi jaringan Openflow)
implementasinya yang dapat digunakan dalam
dan controller
jaringan industri maupun penelitian akademik.
System
Dalam jurnal ini yang digunakan adalah Open
diinstalasi ke dalam sistem operasi Linux
Network Operating System (ONOS). ONOS
Ubuntu Server. Topologi yang digunakan
merupakan sistem operasi jaringan SDN
dapat dilihat pada Gambar 2.1.
komponen
(ONOS)
perangkat
lunak
Open Network Operating versi
Cardinal
yang
bersifat open source yang pertama. Fokus untuk ONOS adalah jaringan service provider dan ONOS telah dilengkapi fasilitas untuk 10
ISSN : 2548-9704
Jurnal Teknik Informatika Kaputama (JTIK), Vol 1 No 1, Januari 2017
dari hasil pengiriman paket ICMP yang berhasil terhadap kedua host, seperti terlihat pada Gambar 3.
Gambar 2.1. Topologi penelitian 2.1.
Open
Network
Operating
System
(ONOS) ONOS
merupakan
sistem
operasi
jaringan SDN bersifat open source yang
Gambar 2.3. Konektivitas antara kedua host
pertama. Tujuan utama ONOS adalah jaringan service provider dan ONOS telah dilengkapi tampilan
GUI
dan
pelengkap
untuk
mempermudah kontrol terhadap perangkat
3.
PRINSIP
KERJA
DAN
KARAKTERISTIK ONOS Untuk
mendeteksi perangkat yang
yang mendukung protokol Openflow yang
tergabung/yang berada dalam kontrol, sebuah
terhubung padanya. Tampilan GUI untuk
Openflow controller
skenario penelitian dapat dilihat pada Gambar
untuk mendeteksi link yang ada yaitu Link
2.2.
Layer Discovery Protocol Broadcast
menggunakan protokol
Domain
(LLDP) dan
Discovery
Protocol
(BBDP). Berdasarkan paket yang ditangkap dengan LPDP
Wireshark, dengan
de:ad:be:ef:ba:11
ONOS
alamat
menggunakan
MAC
dengan
asal
alamat
yaitu tujuan
Nicirane 00:00:01, sementara untuk BBDP (0x8942) menggunakan alamat MAC yang sama Gambar 2.2. Tampilan ONOS pada topologi
de:ad:be:ef:ba:11dengan
tujuan
broadcast. Dapat dilihat pada Gambar 3.1.
penelitian
2.2 . Hasil Konfigurasi
Keberhasilan
hasil
konfigurasi
topologi pada controller ONOS dapat dilihat 11
ISSN : 2548-9704
Jurnal Teknik Informatika Kaputama (JTIK), Vol 1 No 1, Januari 2017
Ketika host hendak memulai komunikasi, seperti jaringan tradisional, tetap dilakukan pengiriman
Address
Resolution
Protocol
(ARP) oleh host untuk mencari tujuan. Hal tersebut dapat dilihat pada Gambar 3.4.
Gambar 3.1 LLDP dan BBDP pada ONOS
Untuk membedakan tiap switch yang terhubung padanya, controller
ONOS
menjalankan nomor port secara acak sebagai identitas dari tiap switch. Bisa dilihat pada Gambar 3.2., dimana nomor port dijelaskan
Gambar 3.4. ARP dari komunikasi antar host
sebagai channelID. Komunikasi
antar
host
kemudian
dapat
berjalan, dimana apabila ada alamat tujuan yang
tidak
mengirimkan controller dimana Gambar 3.2. Penerapan nomor port pada
untuk
paket
switch
packet-in
akan kepada
ONOS untuk menanyakannya, dengan
menggunakan
channelID, controller
identitas
akan mengirimkan
paket packet-out sebagai respon.
switch Sementara
diketahui,
identitas
dari
controller utama, ONOS menggunakan port
4. HASIL PENELITIAN
6633. Dapat dilihat pada Gambar 3.3., alur komunikasi dari controller
kepada switch
yang berada dalam kontrolnya.
Berdasarkan
penelitian
mengenai
prinsip kerja ONOS menggunakan topologi dan metode yang digunakan, ONOS sebagai controller
tentu mengatur alur komunikasi
dengan cara yang berbeda dengan jaringan tradisional dan juga memiliki karakter berbeda dengan controller dengan vendor lain.
Gambar 3.3. Komunikasi antara controller dan switch
12
ISSN : 2548-9704
Jurnal Teknik Informatika Kaputama (JTIK), Vol 1 No 1, Januari 2017
[7]
5. KESIMPULAN DAN SARAN
Hu,
F. 2014. Network Innovation
through Openflow and SDN. CRC Press: Boca Raton.
Adapun hal yang dirasa perlu dilakukan untuk mendukung penelitian lebih lanjut adalah
melakukan
penelitian
menggunakan controller
[8]
dengan
Kay, R. 2016. Pragmatic Network Latency Engineering Fundamental Facts
vendor lain agar
and
Analysis.
(Online)
dapat dilihat bagaimana kinerja jaringan
https://www.cpacket.com/wp-
Openflow sehingga memudahkan penelitian
content/uploads/2016/03/introductionto
yang menggunakan controller yang spesifik.
networklatencyengineering.pdf (28 Juni
DAFTAR PUSTAKA
2016). [9]
[1]
[2]
Azodolmolky,
S.
2013.
Software
2015. Software Defined Networking:
Defined Networking with Openflow.
Anatomy of Openflow. Lulu Publishing
PACKT Publishing: Birmingham.
Services: Raleigh.
Benton, K., Camp, L.J., Small, C. 2013. Openflow
Vulnerability
[10] Mininet
Assessment.
ACM SIGCOMM Workshop on Hot
[4]
[5]
(Online)
2016). [11]
Nadeau, T.D. & Gray, K. 2013. SDN:
Topics in Software Defined Networks.
Software Defined Networks. O’Reilly
Pp. 151-152.
Media: Sebastopol.
Chappel, L. 2010. Wireshark Network
[12] Open Networking Foundation. 2014.
Analysis. Protocol Analysis Institute:
The Benefits of Multiple Flow Tables
San Jose.
and
Chappel, L. 2013. Wireshark 101
https://www.opennetworking.org/image
Essential Skills for Network Analysis.
s/stories/downloads/sdn-
Protocol Analysis Institute: San Jose.
resources/technical-
Duarte, O.C.M.B., Pujolle, G. 2013.
reports/TR_Multiple_Flow_Tables_and
Virtual
_TTPs.pdf (9 Oktober 2015).
Networks.
London.Flowgrammable.
ISTE
Ltd: 2016.
openflow/#tab_switch (28 Juni 2016).
TTPs.
(Online)
[13] Peterson, L., Davie, B. 2003. Computer
(Online).http://flowgrammable.org/sdn/
[6]
Overview.
http://mininet.org/overview (17 Agustus
HotSDN’13 Proceedings of The Second
[3]
Marschke, D., Doyle, J., Moyer, P.
Networks a System Approach. Morgan [14]
Kauffman Publisher: San Francisco. The
Heller, B., Sherwood, R. & McKeown,
Open
N. 2012. The Controller
Introducing ONOS – a SDN Network
Problem.
Placement
HotSDN’12 Proceedings
of
The First Workshop on Hot Topics in
Networking
Lab.
2014.
Operating System for Service Providers. (Online)
htp://onosproject.org
/wp-
Software Defined Networks, pp. 7-12. 13
Jurnal Teknik Informatika Kaputama (JTIK), Vol 1 No 1, Januari 2017
ISSN : 2548-9704
content/uploads/2014/11/Whitepaper-
Switching and Routing (HPSR), pp. 50-
ONOS-final.pdf (9 Oktober 2015).
56.
[15] The Open Networking Lab. (Online)
[17] Ubuntu Documentation. (Online)
https://wiki.onosproject.org/display/ON
https://help.ubuntu.com/lts/serverguide/l
OS/Guides (9 Oktober 2015).
xc.html (9 Oktober 2015)
[16] Turull, D., Hidell, M., Sjödin, P. 2014. Performance Evaluation of Openflow Controller s for Network Virtualization. 2014 IEEE 15th International Conference on High Performance
14
Jurnal Teknik Informatika Kaputama (JTIK), Vol 1 No 1, Januari 2017
ISSN : 2548-9704
AUTOMATIC WATER TANK PUMP SWITCHER USING MICROKONTROLLER ATMEGA16
Nurhayati1, Novriyenni2, Irwansyah Ilham3 Program Studi Manajemen Informatika, STMIK KAPUTAMA BINJAI Jl. Veteran No. 4A-9A, Binjai, 20174 Sumatera Utara www. Kaputama.ac.id //Email :
[email protected]
Abstrak Perkembangan teknologi informatika semakin hari semakin bertambah maju. Dalam dunia industri, informatika memegang peranan penting dalam proses produksi. Seiring dengan lajunya percepatan teknologi, membuat banyak orang menjadi termotivasi untuk membuat sesuatu hal yang baru. Sesuatu yang dapat dikendalikan secara otomatis dengan menggunakan suatu sistem yang mudah dioperasikan. Pada kenyataanya, informatika juga dapat mengurangi beban pemerintah dalam hal penghematan energi listrik, dengan alat-alat yang dapat menghemat listrik atau pun sumber daya lainnya. pengisian penampung air yang dapat menghemat air dan listrik, sehingga dibuatlah judul “Automatic Water Tank Pump Switcher Using Microkontroller ATMEGA16 “.Ketika sistem diaktifkan, dimana dalam hal ini sistem pengisian akan aktif, maka pengontrolan terhadap penampung air sudah dimulai, untuk selanjutnya pemilik rumah tidak perlu menunggu apakah tangki air sudah penuh atau belum. Dengan demikian pemilik rumah sudah dapat menghemat air, listrik dan waktu dalam kehidupan sehari-hari. Kata Kunci : Mikrokontroler Atmega16, Pompa Air Otomatis
1. PENDAHULUAN 1.1 Latarbelakang Perkembangan teknologi informatika semakin hari semakin bertambah maju. Dalam dunia industri, informatika memegang peranan penting dalam proses produksi. Seiring dengan lajunya percepatan teknologi, membuat banyak orang menjadi termotivasi untuk membuat sesuatu hal yang baru. Sesuatu yang dapat dikendalikan secara otomatis dengan menggunakan suatu sistem yang mudah dioperasikan. Pada kenyataanya, informatika juga dapat mengurangi beban pemerintah dalam hal penghematan energi listrik, dengan alat-alat yang dapat menghemat listrik atau pun sumber daya lainnya. Otomasi adalah penggunaan sistem kendali untuk mengontrol proses. Dalam hal ini, otomasi merupakan sistem mengontrol satu prosedur atau lebih secara otomatis, dengan campur tangan operator manusia yang minim. Salah satu contoh dalam hal, pengisian penampung air yang dapat menghemat air dan listrik. Apalagi pada jaman sekarang ini, di
mana terdapat banyak himbauan kepada masyarakat untuk dapat lebih berhemat terutama energi listrik dan air. Dengan latar belakang inilah, penulis memilih judul “Automatic Water Tank Pump Switcher Using Microkontroller ATMEGA16 “. Ketika sistem diaktifkan, dimana dalam hal ini sistem pengisian akan aktif, maka pengontrolan terhadap penampung air sudah dimulai, untuk selanjutnya pemilik rumah tidak perlu menunggu apakah tangki air sudah penuh atau belum. Dengan demikian pemilik rumah sudah dapat menghemat air, listrik dan waktu. Karena tidak akan ada lagi air dan listrik yang terbuang dengan sia-sia yang disebabkan kelalaian kita ( Dwi Pipit Haryanto dan Anto Cuswanto, 2010). 1.2 Rumusan Masalah 1. Bagaimana Penerapan Sistem dan parameter kendali Mikrokontroller dalam kehidupan sehari-hari? 2. Bagaimana merancang dan mengkonstruksi suatu sistem otomatis untuk menciptakan kehidupan yang hemat energi? 15
ISSN : 2548-9704
Jurnal Teknik Informatika Kaputama (JTIK), Vol 1 No 1, Januari 2017
3. Bagaimana Mengoptimalkan Pemakaian Listrik, Air dan Waktu dalam kehidupan sehari-hari?
Table 2.1 Jenis-jenis AVR Mikrokontroler
1.3 Tujuan 1. Dapat mengoptimasi bahasa program mikrokontroller dari suatu sitem melalui teknik-teknik yang telah ada. 2. Dapat merancang dan mengkonstruksi sistem pengontrolan pengisian penampung air berbasis mikrokontroller.
2. LANDASAN TEORI 2.1 Mikrokontroler Mikrokontroler merupakan alat pengolah data digital dan analog (fitur ADC pada seri AVR) dalam level tegangan maksimum 5v, keunggulan mikrokontroler dibandingkan dengan mikroprosesor yaitu lebih murah dan didukung dengan software compiler yang sangat beragam seperti compiler C/C++, Basic, Pascal, bahkan Assembler sekalipun sesuai dengan kemampuannya. Keunggulan mikrokontroler yaitu memiliki kecepatan eksekusi yang lebih cepat karena sebagian besar instruksi diproses dalam satu siklus clock. Pada mikrokontroler AVR membutuhkan sedikit komponen pendukung, tidak seperti mikrokontroler yang system pendukungnya terpisah atau terbentuk secara persial, seperti RAM, ROM dan Mikroprosesor sendiri. Atmel merupakan sebuah perusahaan yang sangat terkenal dengan produk mikrokontroler. Mikrokontroler produk Atmel dikelompokkan dalam satu keluarga, masing-masing mikrokontroler mempunyai spesifikasi tersendiri namun masih kompatibel dalam pemrogramanya. Beberapa produsen mikrokontroler mengeluarkan jenis mikrokontroler yang memiliki fitur-fitur yang sangat beragam seperti AVR jenis Tiny, ATMEGA dan AT90. Dari segi jumlah pin dan memori dapat kita lihat perbedaan mikrokontroler jenis AVR ini, seperti table di bawah ini:
Tipe TinyAV R AT90 ATMEG A
Memori
Jumla h Pin
Flas h
EEPRO M
8-32
1-2k
64-128
20-44
1-8k 128-512 8128k 512-4k
32-64
SRA M 0-128 0-1k 5124k
2.2 Mikrokontroler AVR Atmega 16 AVR merupakan seri mikrokontroler CMOS 8-bit buatan Atmel, berbasis arsitek RISC (Reduced Instruction Set Computer). Hampir semua instruksi dieksekusi dalam satu siklus clock.AVR mempunyai 32 register general-purpose, timer/counter fleksible dengan mode compare, interrupt internal dan eksternal, seri USART, programmable watchdog timer, dan mode power saving, ADC dan PWM internal. AVR juga mempunyai InSystem Programmable Flash on-chip yang mengijinkan memori program untuk diprogram ulang dalam menggunakan hubungan seri SPI ATMega16. Atmega16 mempunyai throughput mendekati 1 MIPS per MHz membuat disainer sistem untuk mengoptimalkan konsumsi daya versus kecepatan proses. Arsitektur RISC dengan throughput mencapai 16 MIPS pada frekuensi 16 MHz. 2.3 Konfigurasi Pin AVR Atmega16 Konfigurasi pin dari Atmega16 dengan kemasan 40 pin Dual In Line Package (DIP) dapat dilihat pada gambar 2.1 di bawah.
Gambar 2.1 Konfigurasi Pin Atmega16 kemasan 40 pin 16
Jurnal Teknik Informatika Kaputama (JTIK), Vol 1 No 1, Januari 2017
Tabel 2.2 Fungsi Khusus Port B
ISSN : 2548-9704
8. XTAL1 dan XTAL2 merupakan pin masukan eksternal clock. 9. AVCC merupakan pin masukan tegangan untuk ADC 10. AREF merupakan pin masukan tegangan referensi untuk ADC 2.4 Arsitektur Atmega16
5. Port C (PC0-PC7) merupakan input/output dua arah full duplex dan merupakan pin khusus dengan fungsi sebagai berikut: Tabel 2.3 Fungsi Khusus Port C
Mikrokontroler Atmega 16 memiliki arsitektur Harvard, yaitu memisahkan memori untuk kode program dan memori untuk data sehingga dapat memaksimalkan unjuk kerja dan paralelisme.instruksi-instruksi dalam memori program dieksekusi dalam stu alur tunggal, dimana pada saat satu instruksi dikerjakan instruksi berikutnya sudah diambil (pre-fetched) dari memori program. Konsep ini lah yang memungkinkan instruksi-instruksi dapat dieksekusi dalam setiap satu siklus clock. 32 x 8 bit register serba guna dapat digunakan untuk mendukung operasi pada Aritmetic Logic Unit (ALU) yang dilakukan dalam satu siklus. Enam dari register serba guna dapat digunakan sebagai tiga buah register pointer 16 bit pada mode pengalamatan tak langsung untuk mengambil data pada ruang memori data. Atmega 16 terlihat pada gambar dibawah ini.
6. Port D (PD0-PD7) merupakan pin input/output dua arah full duplex dan merupakan pin khusus dengan fungsi sebagai berikut: Tabel 2.4 Fungsi khusus Port D
2.5 Regulator IC 7805
7. RESET merupakan pin yang digunakan untuk mereset mikrokontroler
Regulator IC adalah IC yang digunakan untuk mengatur tegangan. IC 7805 adalah regulator 5V yang membatasi output tegangan 5V dan menarik 5Vdiatur oleh power Supply. Muncul dengan ketentuan untuk menambahkan heatsink. Nilai maksimum 17
Jurnal Teknik Informatika Kaputama (JTIK), Vol 1 No 1, Januari 2017
untuk input ke regulator tegangan 35V. Hal ini dapat memberikan aliaran tegangan stabil konstan 5V untuk input tegangan yang lebih tinggi sampai batas ambang 35V. Jika tegangan dekat 7.5V maka tidak menghasilkan panas dan karenanya tidak perlu untuk heatsink. Jika tegangan lebih, maka kelebihan listrik dibebaskan sebagai panas dari 7805. Ini mengatur output stabil 5V jika tegangan input adalah dari 7.2V ke 35V. Oleh karena itu, untuk menghindari kehilangan daya harus mempertahankan input ke 7.2V. dalam beberapa fluktuasi tegangan sirkuit fatal, untuk situasi seperti itu maka digunakan regulator IC 7805. Dibawah ini adalah gambar dari regulator 7805:
ISSN : 2548-9704
3. Memiliki proteksi terhadap overload (beban lebih), overheat (panas lebih) dan hubungan singkat Tetapi demikian regulator ini juga memiliki kekurangan yang berarti diantara adalah sebagai berikut: 1. Tegangan input harus lebih tinggi 2-3 Volt dari tegangn output sehingga IC 7805 kurang tepat jika digunakan untuk menstabilkan tegangan battery 6 Volt menjadi 5 Volt. 2. Seperti halnya regulator lain, arus input sama dengan arus output. Karena tegangan input harus lebih tinggi dari tegangan output, maka akan tejadi panas pada IC regulator 7805 sehingga diperlukan heatsink (pendingin) yang cukup. 2.6 Relay
2.3 Gambar regulator 7805
Regulator ini menghasilkan tegangan output stabil 5V dengan syarat tegangan input yang diberikan minimal 7-8 Volt (lebih besar dari tegangan output) sedangkan batas maksimal tegangan input yang diperbolehkan dapat dilihat datasheet IC 7805 karena jika tidak maka tegangan output yang dihasilkan tidak akan stabil atau kurang dari 5V. Jika dibandingkan dengan regulator lain, seri 7805 ini mempunyai keunggulan yaitu: 1. Untuk regulator tegangan DC, tidak memerlukan komponen elektronik tambahan. 2. Aplikasi mudah dan hemat ruang
Relay adalah saklar yang dioperasikan secara listrik dan merupakan komponen electromechanical yang tediri dari 2 bagian uatma akni elektromagnet dan mekanikal. Relay menggunakan prinsip elektromagnetik untuk menggerakkan kontak saklar sehingga dengan arus listrik yang kecil dapat menghantarkan listrik yang bertegangan lebih tinggi. Pada dasarnya relay tediri dai 4 komponen dasar, yaitu: 1. Electromagnet (Coil) 2. Armature 3. Switch Contact Point (Saklar) 4. Spring Beberapa fungsi relay yang telah umum diaplikasikan kedalam peralatan elektronika diantaranya adalah: 1. Relay digunakan untuk menjalankan fungsi Logika (Logic Function) 2. Relay digunakan untuk memberikan fungsi penundaan waktu (Time Delay Funcion). Dibawah ini adalah gambar bentuk relay dan simbol relay yang sering ditemukan di rangkaian elektronika.
18
Jurnal Teknik Informatika Kaputama (JTIK), Vol 1 No 1, Januari 2017
ISSN : 2548-9704
3. Pin R/W (Read/Write) berfungsi sebagai instruksi pada modul, jika low tulis data, jika high baca data 4. Pin E (Enable) digunakan untuk memegang data baik masuk atau keluar Berikut ini adalah gambar rangkaian LCD (Liquid Crystal Display) 16 x 2
Gambar 2.4 Bentuk Relay dan Simbol Relay
2.7
Liquid Crystal Display (LCD)
LCD (Liquid Crystal Display) merupakan perangkat displayyang paling umum dipasangkan ke mikrokontroler, mengingat ukurannya yang kecil dan kemampuan menampilkan karakter atau grafik yang lebih baik dibandingkan display 7 segment atau alphanumeric. LCD (Liquid Crystal Display) adalah modul penampil yang banyak digunakan karena tampilannya menarik. LCD yang paling banyak digunakan adalah LCD M1632 karena harganya cukup murah dan konsumsi daya rendah. LCD mempunyai pin data, kontrol catu daya dan pengatur kontras tampilan.
2.5 Gambar Rangkaian LCD 16 x 2 2.8
Resistor
Resistor adalah komponen elektronika yang berfungsi untuk menghambat arus listrik dan menghasilkan nilai resistenasi tertentu. Kemampuan resistor dalam menghambat arus listrik sangat beragam disesuaikan dengan nilai resistensi resistor tersebut.
Gambar 2.6 Bentuk dan Simbol Resistor
Fungsi dari pin-pin pada rangkaian LCD yaitu: 1. Pin data, dapat dihubungkan dengan bus data dari rangkaian lain seperti mikrokontroler dengan lebar dat 8 bit 2. Pin RS (Register Select) berfungsi sebagai indikator atau yang menentukan jenis data yang masuk apakah data atau perintah. Logika low menunjukkan yang masuk adalah perintah sedangkan logika high menunjukkan data
Resistor memiliki beragam jenis dan bentuk. Diantaranya resistor yang berbentuk silinder, SMD (Surface Mount Devices) dan wirewound. Resistor dengan kode warna terdiri dari 3 macam, yaitu: 1. Resistor 4 pita warna dengan 1 pita warna untuk toleransi 2. Resistor 5 pita warna dengan 1 pita warna untuk toleransi 3. Resistor 5 pita warna dengan 1 pita warna untuk toleransi dan 1 pita warna untuk reliabilitas.
19
ISSN : 2548-9704
Jurnal Teknik Informatika Kaputama (JTIK), Vol 1 No 1, Januari 2017
dan kapasitor yang memiliki kapasitas yang dapat diubah-ubah (kapasitor variabel).
Gambar 2.7 Jenis dan Simbol Kapasitor 2.9
Transistor 2.11
Transistor adalah alat semikonduktor yang dipakai sebagai penguat, sebagai sirkuit pemutus dan penyambung, stabilisasi tegangan atau pun modulasi sinyal. Transistor memiliki dua tipe dasar yaitu transistor bipolar (BJT) dan transistor unipolar (FET). Transistor bipolar menggunakan dua polaritas pembawa muatan yaotu elektron dan lubang untuk membawa arus listrik. Dalam transistor bipolar, arus listrik utama harus melewati satu daerah/lapisan pembatas dan ketebalan lapisan ini diatur dengan kecepatan tinggi dengan tujuan untuk mengatur aliran arus utama tersebut. Sedangkan transistor unipolar hanya menggunakan satu jenis pembawa muatan (elektron atau hole). 2.10
Pompa Air
Pompa air adalah suatu alat yang berfungsi untuk memompa air dimana pada bagian pompa air ini menggunakan pompa air aquarium ikan hias yang dijual dipasaran. Pada sistem ini pompa air berfungsi untuk mengisi air dan menghentikan air masuk kepenampungan air (toples plastik) sesuai masukan yang diterima dari rangkaian driver, dimana ketika relay dalam kondisi ON (menyala) pompa berfungsi mengisi air pada penampung air dan sebaliknya ketika relay dlaam kondisi OFF (mati) pompa air berhenti mengisi air. Adapun gambar dari pompa air terlihat pada gambar dibawah ini:
Kapasitor
Kapasitor atau kondensator (C) adalah komponen dasar elektronika yang termasuk dalam komponen pasif yang digunakan untuk menyimpan muatan listrik dalam jangka waktu tertentu. Kapasitor pada umumnya terdiri atas dua plat logam yang dipisahkan oleh suatu bahan penyekat, biasa disebut bahan elektronika yaotu berupa vakum udara, keramik, gelas, mika dan lain-lain. Jika kedua ujung plat metal diberi tegangan listrik, maka muatan-muatan positif akan mengumpul pada salah satu kaki (elektroda) metalnya dan pada saat yang sama muatan-muatan negatif terkumpul pada ujung metal lainnya. Muatan positif tidak dapat mengalir menuju ujung kutub negatif dan sebaliknya muatan negatif tidak bisa menuju ku ujung positif karena terpisah oleh bahan dielektrik yang ninkonduktif. Kapasitor dibagi dalam bebrapa jenis yaitu kapasitor yang memiliki kapasitas tetap (kapasitor non polar), kapasitor yang memiliki polaritas pada kedua kakinya yaitu polaritas + dan polaritas – (kapasitor polar)
Gambar 2.8 Pompa Air 2.12
Sensor Switch Air
Sensor switch air adalah saklar otomatis yang digunakan untuk mendeteksi ketinggian, contohnya untuk mendeteksi suatu volume benda cair yang terdapat pada suatu tabung atau tangki penampungan seperti penampungan air. Sensor switch berada dibagian depan (besi panjang yang dipisahkan oleh benda berwarna putih) berfungsi untuk mendeteksi benda cair, kemudian kontrolnya ada dibagian belakang berbentuk bulat, didalamnya terdapat rangkaian elektronik yang bertugas sebagai pengontrol kerja switch, selain itu juga sebagai terminal untuk dihubungkan ke perangkat listrik lainnya, selain itu switch mempunyai tegangan kerja antara 100-200 Vac dan mempunyai beban kerja sekitar 5 Ampere. 20
Jurnal Teknik Informatika Kaputama (JTIK), Vol 1 No 1, Januari 2017
Adapun gambar dari sensor switch adalah seperti di bawah ini:
Gambar 2.9 Sensor Switch Air 3. ANALISA
DAN
PERANCANGAN
SISTEM
Ini akan membahas bagaimana cara untuk menganalisa hardware dan software. Agar masalah bisa diselesaikan, dibutuhkan metode-metode khusus untuk menyelesaikan masalah, berikut metode-metodenya: 1. Perancangan Blok Diagram Analisa rangkaian meliputi perancangan blok diagram rangkaian, jika susunan sudah benar maka akan dilanjutkan pembuatan rangkaian. 2. Perancangan Rangkaian Selanjutnya membuat alur kerja rangkaian dan membuat perancangan rangkaian masing-masing driver dan memberi input program sebagai pengendali tiap-tiap rangkaian. 3.1 Perancangan Perangkat Keras
ISSN : 2548-9704
Untuk mengetahui cara kerja dari sistem Automatic Water Tank Pump Switcher Using Microkontroller ATMEGA16 berdasarkan blok diagram alat diatas yaitu saat power supply menyala (ON) akan membuat mikrokontroler ATMEGA16, LCD display juga dalam posisi menyala (ON). Pada saat sensor switch off kemudian sinyal dikendalikan oleh rangkaian mikrokontroler selanjutnya driver akan mengkatifkan pompa dan mengisi air pada toples plastik hasilnya akan ditampilkan di LCD (ON). Pada sensor switch ON/ tertekan air, kemudian sinyal dikendalikan oleh rangkaian mikrokontroler selanjutnya driver akan mematikan pompa dan hasilnya ditampilkan di LCD (ON) demikian seterusnya. 3.2 Rangkaian Sensor yang Digunakan
Gambar 3.2 Rangkaian Sensor Switch Dalam perancangan ini sensor yang digunakan adalah sensor switch air untuk mendeteksi ketinggian atau lever dari volume air pada tangki. Sensor switch dipasang pada tangki air untuk mendeteksi volume air yang masuk ke dalam tangki, kemudian alat tersebut dihubungkan dengan mesin pompa air, pada saat volume air di dalam tangki mencapai level tertentu dan terdeteksi oleh sensor, maka sensor switch akan bekerja sebab sensor switch terendam oleh air, ketika itu pula sensor switch akan memerintahkan mesin pompa air untuk berhenti berputar dalam artian sensor switch akan memutuskan aliran arus yang ke mesin pompa air. Mesin pompa air akan kembali bekerja ketika volume air yang ada di dalam tangki berkurang atau kosong dan terdeteksi oleh sensor switch yang dipasang dibagian bawah tangki (low) pada saat itu pula sensor akan memerintahkan mesin pompa air untuk bekerja atau berputar agar mengisi tangki, demikian seterusnya. 21
Jurnal Teknik Informatika Kaputama (JTIK), Vol 1 No 1, Januari 2017
3.3
ISSN : 2548-9704
Rangkaian Keseluruhan dari Alat
Mikrokontroler ATMEGA16 adalah suatu chip IC yang terdiri dari 40 pin, dalam perancangan alat ini pin-pin digunakan adalah:PB 0 s/d PB 7 digunakan untuk tampilan LCD, PC 2 dan PC 3 digunakan untuk rangkaian sensor, Pin/kaki Chip 12 digunakan sebagai X-TAL2, Pin/kaki Chip 13 digunakan sebagai X-TAL1, Pin/kaki Chip 32 dan 30 digunakan sebagai AREF dan AVCC Adapun gambar dari rangkaian Mikrokontroler ATMEGA16 adalah seperti gambar di bawah ini:
Gambar 3.4 Rangkaian Driver Pompa Air
3.5 Power Supply
Gambar 3.3 Rangkaian Mikrokontroler ATMEGA16 3.4
Rangkaian Driver Pompa Air
Pompa air adalah suatu alat yang berfungsi untuk memompa air dimana pada bagian pompa air ini menggunakan pompa air pada aquarium ikan hias yang dijual dipasaran. Pada sistem disini pompa air berfungsi untuk mengisi air dan menghentikan air masuk kepenampungan air (toples plastik) sesuai masukan yang diterima dari rangkaian driver, dimana ketika relay dalam kondisi ON (menyala) pompa berfungsi mengisi air pada penampung air dan sebaliknay ketika relay dalam kondisi OFF (mati) pompa air berhenti mengisi air. Adapun gambar dari rangkaian driver pompa air terlihat pada gambar dibawah ini:
Rangkaian Power Supply digunakan untuk memberikan tegangan ke dalam mikrokontroler yang stabil dan mempunyai arus yang cukup ke dalam mikrokontroler sehingga tidak terjadi tegangan turun saat diperasikan. Mikrokontroler ATMEGA16 membutuhkan sebuah tegangan tunggal sebanyak +4,5 sampai +5 Volt dan relay membutuhkan tegangan sebesar 12 Volt untuk dapat aktif. Untuk itu dibuatlah catu daya dengan komponen sebagai berikut. Transformator sebesar 500mA digunakan untuk menurunkan tegangan bolak-balik dari PLN yang sebesar 220 Volt menjadi tegangan yang lebih kecil yaitu 5 Volt yang digunakan untuk menghidupkan mikrokontroler dan 12 Volt untuk mengaktifkan relay untuk mengendalikan pompa. Tegangan bolak-balik yang telah diturunkan ini kemudian disarankan oleh dioda penyearah yang disusun dalam susuna jembatan (bridge) dan hasil penyearahan adalah tegangan searah dengan tegangan sebesar 15 Volt uantuk menggerakkan relay. IC 7805 digunakan untuk menstabilkan tegangan tersebut menjadi tegangan 5 Volt dan IC 7812 digunakan untuk menstabilkan tegangan tersebut menjadi tegangan 12 Volt yang selanjutnya digunakan untuk mencatu rangkaian.
Gambar 3.4 Rangkaian Power Supply 22
Jurnal Teknik Informatika Kaputama (JTIK), Vol 1 No 1, Januari 2017
3.5 Flowchart
12 13
Flowchart sistem kerja mikrokontroler pada Automatic Water Tank Pump Switcher Using Microkontroller ATMEGA16 ini adalah sebagai berikut:
Elco 25V Transistor TO-92
3 Buah 2 Buah
USBDownloader USBDownloader adalah perangkat keras yang digunakan untuk pengisian program dari komputer ke IC mikrokontroler Atmega16 seperti gambar dibawah ini, yaitu:
Start
Air Isi
ISSN : 2548-9704
Yes
Tampilan LCD
No
Sensor Aktif
InInfofoLLeevveel lAAirir
Gambar 4.1 USBDownloader Proses Pemasangan Komponen
Mesin Nyala
Yes
No
End
Gambar 3.6 Flowchart Automatic Water Tank Pump Switcher Using Microkontroller ATMEGA16
3.6 Bahan dan Peralatan Yang Digunakan Perangkat keras yang berupa peralatan dan bahan yang dibutuhkan pada sistem ini meliputi: Tabel 4.1 Peralatan dan Bahan yang Digunakan pada Sistem Perancangan No Peralatan dan Bahan Jumlah 1 Mikrokontroler 1 Buah Atmega16 2 Buzzer 1 Buah 3 Relay 2 Buah 4 LCD 2x16 1 Buah 5 Regulator IC 7805 3 Buah 6 Sensor Switch Air 1 Buah 7 LED (Light Emiting 3 Buah Diode) 8 Saklar (switch) 1 Buah 9 Metal Film Resistor 2 Buah 10 Dioda 1A 5 Buah 11 Carbon Film Resistor 2 Buah
Bentuk dari pemasangannya adalah sebagai berikut: Resistor dipasang pada PCB, Kapasitor dipasang pada PCB, IC dipasang pada PCB, Buzzer dipasang pada PCB, LCD dipasang pada modul rangkaian, Sensor switch dipasang pada galon air, Relay dipasang pada PCB, Switch/Saklar dipasang pada PCB, Elco dipasang pada PCB, Semua komponen dipasang pada PCB. Pengujian rangkaian keseluruhan dilakukan setelah pengecekan mulai dari bagian masing-masing rangkaian penyusun dan pengisian ke dalam IC Mikrokontroler Atmega16 selesai. Langkah pengujian alat penampungan air otomatis ini adalah: 1. Menghubungkan kabel AC dari rangkaian ke sumber listrik 2. Mengisi air pada sumur atau toples plastic 3. Mencatat hasil pengukuran untuk kemudian dianalisa. Pengujian dilakukan menggunakan toples dan galon aqua, kondisi ini menyerupai kondisi yang sebenarnya di dalam penampungan air. Pada saat pengujian semua bagian berjalan sebagaimana mestinya. Pada sensor air telah bekerja mampu memberikan umpan ke bagian mikrokontroler. Bagian kontroler melanjutkan ke bagian relay driver dan diteruskan unutk memberikan instruksi ke bagian LCD dan pompa air. Ketika air kosong pada penampungan maka sensor akan aktif, menandakan air kosong pada LCD. Disaat itu 23
Jurnal Teknik Informatika Kaputama (JTIK), Vol 1 No 1, Januari 2017
juga pompa akan aktif dan mengisi air ke penampungan, level air akan terlihat pada tampilan LCD dimulai dari level 1, level 2, level 3 dan level 4, tergantung dari air yang mengenai sensor switch. Ketika air sudah penuh berada pada level 4 maka pompa air akan otomatis mati dan berhenti mengisi air pada penampungan. Begitu juga sebaliknya ketika air mulai kosong maka pompa akan kembali menyala dan mengisi air pada penampungan air.
4.2
ISSN : 2548-9704
Saran
1. Agar sensor switch dapat terbaca dengan bagus maka sebaliknya setelah melakukan uji coba pada alat ini, sensor harus segera dikeringkan agar tidak terjadi korosi atau pengikisan terhadap sensor oleh air. 2. Untuk memperpanjang masa sensor sebaiknya gunakan sensor yang tahan terhadap pengikisan air, agar alat dapat digunakan sebagai keperluan kehidupan sehari-hari. 3. Untuk menyempurnakan tampilan pada LCD dapat dilakukan pengembangan terhadap rangkaian display dan mengembangkan program dengan mengembangkan bahasa C pada mikrokontroler Atmega16. DAFTAR PUSTAKA
Gambar 4.3 Rangkaian saat Air pada Level 4
[1]
4. KESIMPULAN DAN SARAN 4.1 Kesimpulan Dari hasil penulisan ini maka dapat diperoleh kesimpulan sebagai berikut: 1. Dari hasil pengujian yang dilakukan bahwasanya rangkaian penampungan air otomatis menggunakan mikrokontroler Atmega16 yang dirancang pada ini dapat melakukan pengisian secara otomatis sehingga layak untuk digunakan dalam kehidupan sehari-hari. 2. Setelah dilakukan pengujian terhadap alat penampungan air otomatis selesai ternyata terdapat penghematan penggunaan listrik, air dan waktu. 3. Penggunaan sensor switch air dapat menghasilkan data yang lebih akurat karena sensor ini akan terpasang pada tangki air dan terendam oleh air. Tetapi sensor dapat tidak terdetect karena terjadi korosi pada switch akibat dari terendam air terus menerus. 4. Pada penampungan air ini akan terlihat level-level air yang dihasilkan dari sensor switch, sehingga kita tidak perlu melihat secara terus menerus air yang ada dalam penampungan air.
[2]
[3]
[4]
[5]
[6]
[7]
Subandi. Februari 2014. “Sistem Aplikasi Kran Otomatis Untuk Penghematan Air Berbasis Mikrokontroler Atmega16”. Jurnal Teknologi Technoscientia. Vol.6 No.2 Februari 2014. Cuswanto Anto, Hariyanto Dwi Pipit (2010). “Otomatisasi Pengisian Penampung Air Berbasis Mikrokontroler AT8535”. 2010. Achmad Andani, Umraeni A. Ejah. Agustus 2011. “Penentuan Level Air Tangki Dengan Sistem Kendali”. Jurnal Ilmiah “Elektrikal Enjiniring”UNHAS. Volume 09/No.02/Mei-Agustus/2011 Prihantoro Tegar Bhakti, Husni Rizky Charli Wijaya (2011). “Alat Pendeteksi Tinggi Permukaan Air Secara Otomatis Pada Bak Penampungan Air Menggunakan Sensor Ultrasonik Berbasis Mikrokontroler”. 2010/2011. Nugroho Gigih Prio, S Mazharuddin Ary, Studiawan Hudan (2013). “Sistem Kecepatan Air dan Sensor Ketinggian Air pada Mikrokontroler Arduino”. Jurnal Teknik Pomits. Vol. 2, No. 1 (2013). Hadi Mokh. Sholihul. “Mengenal Mikrokontroler AVR Atmega16”. IlmuKomputer.Com. Arief Ulfah Mediaty (2011). “Pengujian Sensor Ultrasonik PING untuk Pengukuran Level Ketinggian dan Volume Air”. Jurnal Ilmiah “Elektrikal 24
Jurnal Teknik Informatika Kaputama (JTIK), Vol 1 No 1, Januari 2017
ISSN : 2548-9704
Enjiniring” UNHAS. Volume 09/No.02/Mei-Agustus/2011. [8] Astari Sutris, MT.ST.Pramana Rozeff, Msc.Nusyirwan Deny. “Kran Air wudhu’ Otomatis Berbasis Arduino Atmega 328”. Universitas Maritim Raja Ali Haji. [9] Vrileuis Adam. April 2013. “Pemantau Lalu Lintas dengan Sensor LDR Berbasis Mikrokontroler Atmega16”. Jurnal Rekayasa Elektrika. Vol.10, No. 3, April 2013. [10] Raharjo Budi, Joni I Made. Oktober 2008. Pemrograman C dan Implementasinya Edisi Kedua. Bandung: Penerbit Informatika. [11] Nurcahyo Sidik (2012). Aplikasi dan Teknik Pemrograman Mikrokontroler AVR Atmel. Yogyakarta: Penerbit Andi. [12] Istiyanto Jazi Eko (2014). Pengantar Elektronika & Instrumentasi Pendekatan Project Arduino & Android. Yogyakarta: Penerbit Andi. [13] Phys.Dipl, Blocher Richard (2003). Dasar Elektronika. Yogyakarta: Penerbit Andi. [14] Yudhanto Danang Saktyo (2012). “Tandon Air Otomatis Berbasis Mikrokontroler Atmega16”. STMIK adi Unggul Bhirawa. Surakarta.
25
ISSN : 2548-9704
Jurnal Teknik Informatika Kaputama (JTIK), Vol 1 No 1, Januari 2017
ALGORITMA VIGENERE CIPHER DAN HILL CIPHER DALAM APLIKASI KEAMANAN DATA PADA FILE DOKUMEN
Akim Manaor Hara Pardede1, Hotler Manurung 2, Dina Filina
3
1, 2, 3
Program Studi Sistem Informasi, STMIK KAPUTAMA Jl. Veteran 4A-9A,Binjai *
[email protected]
Abstrak
Perkembangan kriptografi terus berlanjut walaupun algoritma yang terkemuka dan dinilai kompleks sudah mulai bisa dipecahkan. Algoritma- algoritma kriptografi klasik seperti Hill Cipher dan Vigenere Cipher pin memiliki kelemahan akan kriptanalisis. Algoritma hill cipher dan vigenere cipher merupakan salah satu metode dari beberapa metode yang digunakan untuk melakukan kerahasian data, hill cipher adalah algoritma keamanan data menggunakan perhitungan perkalian matriks, sedangkan vigenere cipher adalah algoritma yang melakukan enkripsi sekaligus sebuah teks yang terdiri dari beberapa huruf. Jika kedua algoritma diatas dikombinasikan dalam sebuah aplikasi keamanan data, maka akan lebih sulit memecahkan sandinya bila dibandingkan dengan hanya menggunakan satu algoritma saja. Penggabungan antara dua algoritma tersebut menjadi sebuah solusi untuk memperkuat algoritma menjadi lebih sulit untuk dapat dipecahkan dan untuk mengecoh kriptanalisis. Filet eks yang telah diamankan menggunakan Algoritma Vigenere Cipher akan diamankan lagi menggunakan Algoritma Hill Cipher. Implementasi sistem menggunakan perangkat lunak Visual Basic.Net 2010. Hasil dari sistem ini berupa file yang ter-enkripsi (cipherfile) yang tidak bisa dimengerti. Kemudian fileteks kembali normal setelah di-dekripsi. Kata kunci: Hill Cipher, Kriptografi, Vigenere Cipher, Visual Basic.Net 2010
1. PENDAHULUAN 1.1 Latarbelakang Dalam sistem keamanan data dikenal sebuah metode enkripsi yang mempunyai kode-kode pengamanan untuk mengacak data dan juga mempunyai kode- kode untuk mengembalikan data yang teracak ke data yang sebenarnya. Enkripsi bisa diartikan dengan chiper atau kode, dimana pesan asli (plaintext) diubah menjadi kode-kode tersendiri sesuai metode yang disepakati oleh kedua belah pihak, baik pihak pengirim pesan maupun penerima pesan. Aplikasi-aplikasi keamanan data sudah banyak diterapkan dan digunakan dalam kehidupan sehari-hari, khususnya pada aplikasi smartphone android yang pada saat ini menjadi kebutuhan primer bagi kita semua. Penelitian yang dilakukan oleh F. Wiwiek Nurwiyati dan Indra Yatini B (Oktober 2013) dengan judul “Enkripsi Dekripsi Data Menggunakan Metode Stream
Dan Vigenere Cipher”. Dengan hasil sebagai berikut: Teknik kriptografi enkripsi dekripsi dengan menggunakan metode Stream dan Vigenere Cipher dapat melindungi data dimana program akan melakukan proses enkripsi dan deskripsi menggunakan dua kunci yang berbeda satu kunci dibangkitkan dengan karakter plain text dan satu lagi di inputkan secara manual. Algoritma enkripsi akan memberikan hasil yang berbeda tergantung pada kunci yang digunakan. Mengubah kunci dari enkripsi akan mengubah output (keluaran) dari algoritma enkripsi. Setelah itu ciphertext kemudian ditransmisikan oleh pengirim. Kemudian akan dilakukan proses dekripsi, yaitu sebuah proses untuk mengembalikan teks yang telah acak menjadi kebentuk semula dengan algoritma dan kunci yang sama. Dalam hal ini dilakukan oleh penerima, sehingga akan kembali menjadi sebuah informasi yang dapat dipahami oleh penerima.
26
Jurnal Teknik Informatika Kaputama (JTIK), Vol 1 No 1, Januari 2017
Algoritma hill cipher dan vigenere cipher merupakan salah satu metode dari beberapa metode yang digunakan untuk melakukan kerahasian data, hill cipher adalah algoritma keamanan data menggunakan perhitungan perkalian matriks, sedangkan vigenere cipher adalah algoritma yang melakukan enkripsi sekaligus sebuah teks yang terdiri dari beberapa huruf. Jika kedua algoritma diatas dikombinasikan dalam sebuah aplikasi keamanan data, maka akan lebih sulit memecahkan sandinya bila dibandingkan dengan hanya menggunakan satu algoritma saja. 1.2 Rumusan Masalah Berdasarkan latar belakang masalah yang ada diatas, maka penulisan merumuskan masalah sebagai berikut : 1. Dengan menggunakan Algoritma Vigenere Cipher dan Algoritma Hill Cipher, bagaimana merancang keamanan data file teks agar data tersebut tidak mudah dipecahkan. 2. Merancang keamanan data file teks dengan mengkombinasikan Algoritma Vigenere Cipher dan Algoritma Hill Cipher. 1.3 Tujuan Penelitian Tujuan penelitian ini antara adalah : 1. Merancang keamanan data file teks menggunakan algoritma Vigenere Cipher dan Hill Cipher. 2. Menghasilkan suatu sistem yang mampu melindungi data dan merahasiakannya dengan menggunakan algoritma Vigenere Cipher dan Hill Cipher.
2. LANDASAN TEORI
ISSN : 2548-9704
ciphertext bisa memiliki banyak kemungkinan plaintextnya. Teknik ini bisa dilakukan oleh dua cara yaitu : angka dan huruf. Cipher ini hanya bergantung pada metodologi confusion untuk membuat cipher text. Pola berulang pada plaintext tidak melalui difusi, melainkan hanya dikamuflase oleh seri dari pergeseran Caesar cipher. Vigenere cipher dianggap unbreakable selama hampir 300 tahun. Tetapi akhirnya metode untuk memecahkannya ditemukan oleh Kasiski dan Kerckhoff. Kedua metode berdasar pada fakta bahwa kuncinya berulang dan pada umumnya bahasa yang digunakan sehari-hari bersifat repetitif. Jika pesan jauh lebih panjang dari kunci, pada akhirnya kunci akan mengenkripsi satu kumpulan huruf yang sama yang sebelumnya telah digunakan dan dienkripsi oleh kunci yang sama. Hal ini akan menciptakan suatu pola yang berisi kumpulan huruf yang berulang. Dengan mencari frekuensi antara kumpulan huruf yang berulang dan memfaktorkannya, bisa ditemukan panjang kunci. Jika panjang kunci sudah diketahui, kunci akan dengan mudah diketahui dengan menggunakan analisis frekuensi pada setiap kumpulan Caesar cipher. Makin panjang kunci, akan makin sulit dan makin panjang proses penemuan kunci. Faktanya, jika kuncinya paling tidak sama panjang dengan panjang plaintext, cipher text kebal dari serangan tersebut. Cipher di mana panjang kunci sama dengan panjang pesan disebut one time pad. a. Angka Teknik subtitusi vigenere dengan menggunakan angka dilakukan dengan menukarkan huruf dengan angka, hampir sama dengan kode geser. Kunci dengan 5 huruf kode jika ditukar dengan angka akan menjadi K = (10, 20,13, 2, 8), dan teks-aslinya “ STMIK KAPUTAMA BINJAI”.
2.1 Algoritma Vigenere Cipher Menurut Sadikin (2012, h. 48) sandi vigenere merupakan sistem sandi polialfabetik yang sederhana, sistem sandi polialfabetik mengenkripsikan sekaligus sebuah teks yang terdiri dari beberapa huruf. Sandi vigenere menggunakan subtitusi dengan fungsi shift. Sedangkan menurut Ariyus (2006, h. 33) pada teknik subtitusi vigenere setiap 27
Jurnal Teknik Informatika Kaputama (JTIK), Vol 1 No 1, Januari 2017
Teks-asli : STMIK KAPUTAMA BINJAI Kunci : ( 10, 20, 13, 2, 8 ) Teks-kode : CNAKSUUCWBKGNDQXDNK b. Huruf Untuk mengenkripsikan pesan dengan kode vigenere digunakan tabula recta (disebut juga bujursangkar vigenere). Kolom paling kiri dari bujursangkar menyatakan huruf-huruf kunci, sedangkan baris paling atas menyatakan huruf-huruf plainteks. Setiap baris di dalam bujursangkar menyatakan hurufhuruf cipherteks yang diperoleh dengan Caesar Cipher, yang mana jauh pergeseran huruf plainteks ditentukan nilai desimal oleh huruf kunci tersebut (di sini, a = 0, b = 1, c = 2, …, z = 25). Sebagai contoh, huruf kunci c (= 2) menyatakan huruf plainteks digeser sejauh 2 huruf ke kanan (dari susunan alfabetnya). Bujur sangkar Vigènere digunakan untuk memperoleh cipherteks dengan menggunakan kunci yang sudah ditentukan. Jika panjang kunci lebih pendek dari pada panjang plainteks, maka kunci diulang penggunaannya (sistem periodik). Secara matematis enkripsi dengan kode Vigenere bisa dinyatakan sebagai berikut: Algoritma enkripsi vigenere cipher : Ci = ( Pi + Ki ) mod 26 Algoritma dekripsi vigenere cipher : Pi = ( Ci – Ki ) mod 26 Dimana : Ci = nilai desimal karakter ciphertext ke-i Pi = nilai desimal karakter plaintext ke-i Ki = nilai desimal karakter kunci ke-i Salah satu kelebihan kode vigenere adalah sulitnya melakukan kapitanalisis dengan metode analisis frekuensi karena dua huruf yang sama dalam teks-kode belum tenetu bisa dideskripsikan menjadi dua huruf yang sama dalam teks-asli. Kelemahan utama kode vigenere adalah kuncinya yang pendek dan penggunaannya yang berulang-ulang. Jika kriptanalis dapat menentukan panjang kunci saja maka teks-kode dapat diperlakukan seperti rangkaian beberapa kode Kaisar. 2.2 Algoritma Hill Cipher
ISSN : 2548-9704
perhitungan perkalian matriks. Kunci pada sandi hill adalah sebuah matriks K berukuran n x n yang digunakan untuk mensubtitusi n alphabet sekaligus. Menurut Ariyus (2008, h. 59) kode hill termasuk salah satu kripto polialfabetik, yang berarti setiap karakter alfabet bisa dipetakan ke lebih dari satu macam karakter. Kode ini ditemukan pada tahun 1929 oleh Lester S. Hill. Teknik Dasar Hill Cipher Teknik Hill Cipher adalah aritmatika modulo terhadap matriks. Dalam penerapannya, Hill Cipher menggunakan teknik perkalian matriks dan teknik invers terhadap matriks. Kunci pada Hill Cipher adalah matriks n x n dengan n merupakan ukuran blok. Matriks K yang menjadi kunci ini harus merupakan matriks yang invertible, yaitu memiliki inverse K-1 sehingga: Keterangan: K = Kunci K-1 = Invers Kunci I = Matriks Identitas Kunci harus memiliki invers karena matriks K-1 tersebut adalah kunci yang digunakan untuk melakukan dekripsi .
3.
PERANCANGAN
3.1 Perancangan UML (Unified Modelling Language) Dalam bagian ini akan dijelaskan untuk mendeskripsikan apa yang harus dilakukan oleh sistem, digambarkan dalam bentuk use case yang bertujuan untuk menunjukkan alur kerja dan proses dari sistem aplikasi yang akan dibuat. Use Case Diagram atau diagram use case merupakan pemodelan untuk menggambarkan kelakuan (behavior) sistem yang akan dibuat, diagram use case mendeskripsikan sebuah interaksi antara satu atau lebih actor dengan sistem yang akan dibuat. Proses yang akan digambarkan akan berlangsung secara terstruktur. Berikut merupakan gambaran use case diagram untuk sistem yang akan dibangun pada gambar 3.1 :
Menurut Sadikin (2012, h. 51) sandi hill merupakan sandi polyalphabet dengan menggunakan metode subtitusi dengan 28
ISSN : 2548-9704
Jurnal Teknik Informatika Kaputama (JTIK), Vol 1 No 1, Januari 2017
merupakan flowchart dekripsi cipherfile dan cipherkey : «uses»
Mulai
Ekripsi Vigenere Cipher
Tekssandi, Kunci_Matriks Hill Cipher
Ekripsi
«uses»
InvK = K.Invers() AdjK = K.Adjoint() DetK = K.Determinan()
«uses»
For(int i = 0; i
Ekripsi Hill Cipher HasilModulo = (detK*1) % 256
«uses» Dekripsi kunci
Dekripsi
Ya
matrixP = invK *matixC
«uses»
K.invK = 1
HasilModulo ==1 Tidak
Actor1
Ya
Dekripsi dengan kunci Vigenere Cipher
invK = (y*adjK)
Teksasli_1
y=i
Teksasli_1, Kunci Vigenere Cipher
Teksasli_1 = Kunci
Tidak
J = panjang_teks
Gambar 3.1. Use Case Diagram Sistem For i = 1 To J Ya
Gambar 1 menyatakan diagram use case sistem kriptografi untuk keamanan file teks. Use Case ini menjelaskan mengenai bagaimana proses pengenkripsian dan dekripsi menggunakan kedua algoritma vigenere cipher dan hill cipher, disini sistem menggunakan dua buah kunci yaitu kunci Poli-alfabetik dan kunci matriks. Untuk menyandikan filetext yang ingin di jaga kerahasiaannya.
Teksasli = Teksasli_1
Kunci = Teksasli_1
Teksasli
Selesai
Gambar 3.2. Flowchart Dekripsi Filetext Vigenere Cipher dan Hill Cipher
3.2 Perancangan Sistem
4. HASIL DAN PEMBAHASAN
Dalam merancang sistem pengamanan filetext ini penulis menggunakan algoritma vigenere cipher dan algoritma hill cipher dalam menyelesaikan masalah. Perancangan sistem ini menggunakan bagan alir (flowchart) untuk mengetahui bagaimana proses enkripsi dan dekripsi akan dirancang dalam sistem. Pada proses dekripsi berikut ini dapat dilakukan, apabila pada proses dekripsi cipherkey sebelumnya sudah berhasil, maka dapat dilakukan proses dekripsi cipherfile. Dari kunci matriks hill cipher yang sudah diinputkan, akan dilakukan proses pencarian matriks adjoint, matriks determinan, dan matriks inverse dari determinan kunci matriks, juda inverse dari kunci matriks. Kunci matriks inverse akan dimodulokan dengan jumlah karakter code ASCII 256, kemudian setelah diperoleh kunci matriks inverse maka dapat dilakukan proses dekripsi cipherfile dengan mengkalikan kunci matriks inverse dengan file yang terenkripsi (cipherfile). Berikut
Dengan menggunakan Algoritma Hill Cipher dan Algoritma Vigenere Cipher, penulis mengharapkan dapat mengamankan fileteks dengan aman. Serta dapat membantu dalam menyandikan fileteks. Untuk membuat suatu keputusan perlu diketahui terlebih dahulu kriteria-kriteria yang ada. Dari kriteria-kriteria tersebut kita dapat melakukan proses pengambil keputusan. Implementasi merupakan kelanjutan dari kegiatan perancangan sistem. Tahap ini merupakan tahap meletakkan sistem supaya siap untuk di operasikan dan dapat dipandang sebagai usaha untuk mewujudkan sistem yang telah di rancang. Langkah-langkah dalam tahap implementasi ini adalah urutan kegiatan awal sampai akhir yang harus dilakukan dalam mewujudkan sistem yang telah di rancang.
29
Jurnal Teknik Informatika Kaputama (JTIK), Vol 1 No 1, Januari 2017
ISSN : 2548-9704
Pengujian Proses Enkripsi File Dokumen Pada proses ini form enkripsi dapat ditampilkan dengan mengklik button Enkripsi pada form utama setelah program dijalankan. Sebelum dilakukan proses enkripsi terhadap fileteks maka hal yang pertama dilakukan adalah memilih file yang akan dienkripsi melalui button “cari”yang terdapat pada form.
Gambar 4.3. File .docx Sebelum di Enkripsi
Gambar 4.1. Seteleh Proses Pemilihan Dokumen Setelah file sudah dipilih kemudian lanjutkan proses enkripsi dengan mengisi kunci vigenere cipher dan setelah itu klik button enkripsi, seperti gambar berikut ini :
Gambar 4.4. File .docx Setelah di Enkripsi Pengujian Proses Dekripsi File Dokumen
Gambar 4.2 Proses Enkripsi Hasil pengujian dapat dilihat dari gambar sebagai berikut :
Pada proses ini form dekripsi dapat ditampilkan dengan mengklik button dekripsi yang terdapat pada form utama setelah program dijalankan. Sebelum dilakukan proses dekripsi terhadap file, maka hal yang pertama kali dilakukan adalah memilih file yang akan di-dekripsi dengan mengklik button “cari” yang terdapat pada form dengan ekstensi file .encrypt.
30
ISSN : 2548-9704
Jurnal Teknik Informatika Kaputama (JTIK), Vol 1 No 1, Januari 2017
Gambar 4.5. Proses Setelah Pemilihan File Dokumen Setelah file sudah dipilih, kemudian lanjutkan proses dekripsi dengan menginputkan kunci vigenere cipher dan setelah itu klik button dekripsi, seperti gambar berikut ini :
Gambar 4.8. File .docx Setelah di Dekripsi
N o
Tabel 1. Uji Program ( Jumlah Kata yang panjang ) Kunci Ket Na Jumla ma h File Kata
1
Krip togr afi
681 kata
kaputam a
Berhasil
2
Visu al Basi c
136 kata
kita1234
Berhasil
kamiiiii
Gagal ( karena mengguna kan kunci dengan huruf berulangulang )
binjai
Gagal ( karena jumlah kata yang digunakan melebihi batas maksimal )
Enkr ipsi 21 kata
3 Gambar 4.6. Proses Dekripsi
4
Hill Ciph er
812 kata
Berhasil 5 Gambar 4.7. File .docx Sebelum di Dekripsi
Vige nere
513 kata
1909201 6
31
ISSN : 2548-9704
Jurnal Teknik Informatika Kaputama (JTIK), Vol 1 No 1, Januari 2017
No 1 2
Tabel 2. Uji Program Proses Enkripsi Plainteks Kunci Cipherteks Kaputama Binjai
kamiiiii
ILOVEST MIKKAP UTAMA BINJAI
kaputama
3
Teknik Informati ka
kamikami
4
Sekolah Tinggi Manajem en Informati ka dan Komputer
kakakaka
STMIK
16092016
5
Ô¦ëS¯+Œ ç³0 }|b ‹v_Ó¹“ÏŸˆtÉ •ö¸«‡~l´’Ëœ d^Ûj•Úg¾ D© ɽ6ˆ×’ÝJ ~ÛGtý€:£\¹ Æž"y ¢{Ñ• x Áýi]úz}µõ’» 4~¹1t+i»ù¬* É=-)›s:£:£:£ 2 ÷{(ñ—Ÿ
Tabel 3. Uji Program Proses Dekripsi N Plain o teks
Kunci
1 Ô¦ëS ¯+Œ ç³0} |b
kamiiiii
2 ‹v_Ó ¹“ÏŸˆ tÉ•ö ¸«‡~l ´’Ëœ d^Ûj •Úg ¾D©
kaputam a
3 ɽ 6ˆ×’ ÝJ~ ÛGtý €:£\¹
kamika mi
Cipherte ks
K©putam © Binj©i
ILOVEST MIKKAP UTAMA BINJAI
Teknik Informati ka
Ket
Gagal
Berhasil
4 Æž" y
Sekolah Tinggi Manajem en Informati ka dan Komputer
¢{Ñ• x
Áýi] úz}µ õ’»4 ~¹1t+ i»ù¬ *É=• )›s:£: £:£
kakakak a
5 2 ÷{( 1609201 STMIK ñ—Ÿ 6
Berhasil
Berhasil
5. KESIMPULAN DAN SARAN 5.1 Kesimpulan Setelah melakukan tahap penelitian, perancangan, dan tahap implementasi terhadap pengamanan file dengan sistem kriptografi dimana enkripsi file dengan menggunakan algoritma Vigenere Cipher dan algoritma Hill Cipher diperoleh kesimpulan bahwa : 1. Kunci yang digunakan untuk mengenkripsi harus sama dengan kunci yang digunakan untuk melakukan dekripsi. Apabila kunci yang diinputkan tidak sama, maka hasil dari dekripsi tidak akan sama dengan plainfile semula seperti sebelum dienkripsi. 2. Algoritma Vigenere Cipher dan Algoritma Hill Cipher digunakan untuk melindungi file berupa file, dalam hal ini penulis masih menguji sebatas file TXT, DOCX dan XLSX. 3. Hasil dekripsi dari cipherfile akan menghasilkan plainfile yang sama dengan plainfile sebelum dienkripsi.
Berhasil 5.2 Saran Berdasarkan kesimpulan diatas menggemukakan beberapa saran diharapkan dapat menjadi masukan kemajuan sistem yang akan datang.
maka yang bagi Dan
32
Jurnal Teknik Informatika Kaputama (JTIK), Vol 1 No 1, Januari 2017
ISSN : 2548-9704
beberapa saran yang akan dikemukakan adalah sebagai berikut : 1. Sistem ini menggunakan Algoritma Vigenere Cipher dan Algoritma Hill Cipher, kunci dari Algoritma Hill Cipher menggunakan matriks berordo 2x2 dan kunci matriks tersebut telah ditetapkan oleh sistem, sehingga untuk pengembangan selanjutnya dapat mengenkripsi dan dekripsi dengan user yang menginputkan matriks serta menggunakan matriks berordo 3x3, 4x4 .... nxn. 2. File yang dapat dienkripsi dan dekripsi didalam sistem ini hanya file dengan ekstensi txt, docx dan xlsx. Untuk pengembangannya agar bisa menggunakan file dengan jenis ekstensi lainnya. UCAPAN TERIMA KASIH Kami menyampaikan terima kasih yang sebesar-besarnya kepada Ketua Yayasan Pendidikan Teknologi Informasi Mutiara atas dukungan dana berupa hibah penelitian bagi dosen STMIK KAPUTAMA tahun anggaran 2016. Kami juga mengucapkan terimakasih kepada mitra Ketua STMIK KAPUTAMA dan Ketua LPPM STMIK KAPUTAMA, yang telah melakukan arahan dalam pelaksanaan penelitian ini. DAFTAR PUSTAKA [1]
[2]
[3]
[4]
[5]
Ariyus, 2008. Pengantar Ilmu Kriptografi: Teori Analisis & Implementasi. Andi, Yogyakarta. Ariyus, 2006. Kriptografi Keamanan Data dan Komunikasi. Andi, Yogyakarta. Sadikin, 2012. Kriptografi untuk Keamanan Jaringan. Andi , Yogyakarta. Sugiarti, 2013. Analisis dan Perancangan UML Generated VB.06. Graha Ilmu, Yogyakarta. Yatini B, 2010. Flowchart, Algoritma, dan Pemrograman menggunakan Bahasa C++ Builder. Graha Ilmu ,Yogyakarta.
33
Jurnal Teknik Informatika Kaputama (JTIK), Vol 1 No 1, Januari 2017
ISSN : 2548-9704
PENENTUAN RUTE TERPENDEK PENDISTRIBUSIAN NASKAH UJIAN NASIONAL MENGGUNAKAN ALGORITMA DIJKSTRA (DINAS PENDIDIKAN DAN PENGAJARAN KOTA BINJAI) Siswan Syahputra Program Studi Sistem Informasi STMIK KAPUTAMA, Jln. Veteran No. 4A-9A Binjai, Sumut, Indonesia e-mail :
[email protected]
Abstrak Penentuan rute terpendek menuju lokasi tujuan merupakan salah satu masalah yang sering dihadapi pengguna jalur darat. Hal ini juga terjadi saat proses pendistribusian Naskah Ujian Nasional yang dilakukan oleh Dinas Pendidikan dan Pengajaran Kota Binjai. Pada umumnya pemilihan rute saat pendistribusian Naskah Ujian Nasional menuju sekolah tujuan dilakukan dengan cara konvensional atau berdasarkan kesepakatan oleh petugas pendistribusi naskah tersebut, proses ini tidak dilakukan berdasarkan data yang akurat. Masalah rute terpendek dapat diselesaikan dengan sistem informasi geografis berbasis web menggunakan algoritma Dijkstra. Algoritma Dijkstra adalah algoritma pencarian rute terpendek berdasarkan graf untuk memecahkan masalah rute terpendek tunggal. Hal ini diterapkan hanya pada bobot graf positif. Algoritma Dijkstra digunakan untuk memecahkan jalur terpendek dengan biaya minimum. Kata Kunci: Algoritma Dijkstra, Rute Terpendek, Graf Berbobot.
1. PENDAHULUAN 1.1 Latar Belakang Penentuan rute terpendek menuju lokasi tujuan merupakan salah satu masalah yang sering dihadapi pengguna jalur darat. Hal ini juga terjadi saat proses pendistribusian Naskah Ujian Nasional yang dilakukan oleh Dinas Pendidikan dan Pengajaran Kota Binjai. Kota Binjai merupakan kota yang memiliki banyak jalan – jalan alternatif yang menghubungkan satu lokasi dengan lokasi lainnya. Dengan banyaknya jalan alternatif, hal ini dapat memberikan sebuah keuntungan efisiensi waktu dalam pendistribusian Naskah Ujian Nasional, jika tepat dalam memilih rute yang lebih pendek atau menjadi masalah keterlambatan waktu, jika memilih rute yang lebih jauh. Pada umumnya pemilihan rute saat pendistribusian Naskah Ujian Nasional menuju sekolah tujuan dilakukan dengan cara konvensional atau berdasarkan kesepakatan oleh petugas pendistribusi naskah tersebut, proses ini tidak dilakukan berdasarkan data yang akurat. Berdasarkan penelitian yang pernah dilakukan oleh Antonio Gusmao, dkk (2013),
masalah rute terpendek dapat diselesaikan dengan sistem informasi geografis berbasis web menggunakan algoritma Dijkstra. Ada beberapa algortima yang dapat digunakan dalam menyelesaikan masalah rute terpendek, diantara nya algoritma Ant Colony dan Dijkstra. Algoritma Dijkstra lebih instensif dalam komputasi untuk pencarian jalur optimum dalam suatu jaringan seperti internet dan waktu rata – rata eksekusi algoritma Dijkstra lebih kecil dibanding algoritma Ant Colony. Maka jalur dalam permasalahan ini algoritma lebih tepat digunakan dengan menggunakan jaringan internet. Algoritma Dijkstra ditemukan oleh seorang ilmuan komputer bernama Edsger Dijkstra pada tahun 1956 dan dipublikasikan pada tahun 1959. Algoritma Dijkstra adalah algoritma pencarian rute terpendek berdasarkan graf untuk memecahkan masalah rute terpendek tunggal. Hal ini diterapkan hanya pada bobot graf positif. Algoritma Dijkstra digunakan untuk memecahkan jalur terpendek dengan biaya minimum. Cara kerja algoritma Dijkstra memakai strategi greedy, dimana pada setiap langkah dipiliha sisi dengan bobot terkecil yang 34
Jurnal Teknik Informatika Kaputama (JTIK), Vol 1 No 1, Januari 2017
menghubungkan sebuah simpul yang sudah terpilih dengan simpul lain yang belum terpilih. Algoritma Dijkstra membutuhkan parameter tempat asal dan tempat tujuan. Hasil akhir algoritma ini adalah jarak terpendek dari tempat asal ke tempat tujuan beserta rutenya (Bambang, 2014). 1.2 Rumusan Masalah Berdasarkan uraian diatas dapat dirumuskan permasalahan pokok sebagai berikut: 1. Bagaimana menentukan jarak terpendek dalam pendistribusian Naskah Ujian Nasional. 2. Bagaimana penerapan algoritma Dijkstra untuk menentukan jarak terpendek dalam pendistribusian Naskah Ujian Nasional. 1.3 Tujuan Penelitian Adapun tujuan yang diharapkan dalam penelitian ini adalah sebagai berikut : 1. Untuk memahami bagaimana algoritma Dijkstra menentukan rute terpendek. 2. Untuk menghasilkan model rute terpendek dalam pendistribusian Naskah Ujian Nasional menggunakan algoritma Dijkstra. 3. Membuat prototype perangkat lunak rute terpendek menuju sekolah – sekolah SMA/SMK di Kota Binjai.
2. LANDASAN TEORI 2.1 Lintasan / Rute Terpendek (Shortest Path) Pemasalahan lintasan / rute terpendek yaitu menemukan lintasan terpendek antara dua atau beberapa simpul lebih yang saling berhubungan. Menurut Hayati dan Yohanes, 2014, Persoalan mencari lintasan terpendek di dalam graf merupakan salah satu persoalan optimasi. Graf yang digunakan dalam pencarian lintasan terpendek adalah graf berbobot (weighted graph), yaitu graf yang setiap sisinya diberikan suatu nilai atau bobot. Bobot pada sisi graf dapat menyatakan jarak antar kota, waktu pengiriman pesan, ongkos pembangunan, dan lain sebagainya. Asumsi yang digunakan di sini adalah bahwa semua bobot bernilai positif. Lintasan terpendek adalah jalur yang dilalui dari suatu node ke
ISSN : 2548-9704
node lain dengan besar atau nilai pada sisi yang jumlah akhirnya dari node awal ke node akhir paling kecil. Lintasan terpendek adalah lintasan minimum yang diperlukan untuk mencapai suatu tempat dari tempat lain. Lintasan minimum yang dimaksud dapat dicari dengan menggunakan graf. Graf yang digunakan adalah graf yang berbobot yaitu graf setiap sisinya diberikan suatu nilai atau bobot. Berikut contoh penerapan pencarian lintasan/rute terpendek : 1. Implementasi algoritma dijkstra dalam aplikasi untuk menentukan lintasan terpendek jalan darat antar kota (Fitri dan Triansyah, 2013). Dalam penelitian tersebut disimpulkan perlu sebuah algoritma untuk dapat menyelesaikan persoalan rute terpendek yaitu dengan algoritma dijkstra. 2. Implementasi algoritma dijkstra pada kartu FPGA (Field-Programmable Gate Array) untuk perhitungan telkom (Benaicha dan Taibi, 2013). Jaringan merupakan satu set perangkat komputer yang digunakan untuk memberikan arus informasi, untuk rute informasi yang benar jaringan menggunakan proses routing dengan menggabungkan fleksibilitas dan kecepatan sehingga diperlukan teknologi baru yaitu FPGA. 3. Penemuan rute terpendek pada aplikasi berbasis peta (Wira, 2010). Pada penelitian ini menghasilkan rute terpendek untuk berbagai keperluan masyarakan yang dihadapkan dengan permasalahan transportasi seperti kemacetan pada jalan raya. Ada beberapa macam persoalan lintasan terpendek, antara lain: 1. Lintasan terpendek antara dua buah simpul (all pairs shortest path) 2. Lintasan terpendek antara semua pasangan simpul (all pairs shortest path) 3. Lintasan terpendek dari simpul tertentu ke semua simpul yang lain (single-source shortest path). 4. Lintasan terpendek antara dua buah simpul yang melalui beberapa simpul tertentu (intermedia shortest path).
35
Jurnal Teknik Informatika Kaputama (JTIK), Vol 1 No 1, Januari 2017
2.2 Algoritma Rute Terpedek (Shortest Path Algorithm) Algoritma yang dapat digunakan untuk mencari rute terpendek telah banyak diteliti. Beberapa algoritma yang dapat digunakan untuk penyelesaian penentuan rute terpendek (Sanan, dkk, 2013), yaitu : 1. Algoritma Dijkstra Dijkstra adalah algoritma berdasarkan Greedy dan memecahkan satu sumber masalah jalan terpendek 2. Algoritma Bellman-Ford Bellman-Ford adalah algoritma berbasis Pemrograman Dinamis. 3. Algoritma A* Search Algoritma A* Search adalah algoritma pencarian graf/pohon yang menemukan jalur dari node awal yang diberikan ke node tujuan tertentu. 4. Algoritma Floyd-Warshall Algoritma ini memecahkan semua pasangan jalur terpendek dalam grafik tepi arah. 5. Algoritma Johnson Algoritma ini memecahkan semua pasangan jalur terpendek, di jarang tertimbang, grafik berarah.
ISSN : 2548-9704
Dalam sejarahnya, graf digunakan oleh Euler untuk memecahkan masalah jembatan Konigsberg. Masalah jembatan Konigsberg merupakan teka-teki yakni dari salah satu tempat tertentu apakah kita dapat berjalan dengan melalui ke tujuh jembatan itu masingmasing tepat satu kali.
Gambar 2.1 Jembatan Konigsberg Banyak orang sudah mencoba melakukannya dengan berbagai cara namun tidak tidak ada yang berhasil. Hal ini menarik Leonard Euler untuk memecahkan masalah tersebut dengan menggunakan konsep yang sekarang dikenal sebagai teori graf. Jika setiap tempat diwakili oleh simpul dan setiap jembatan diwakili oleh sisi, maka masalah tersebut dapat digambarkan sebagai graf dengan empat simpul dan tujuh sisi.
2.3 Teori Graf (Graph) Teori graf merupakan hal yang penting dalam berbagai bidang aplikasi perhitungan, peneliti dapat menggunakan konsep dari teori graf untuk penelitiannya (Shirinivas, 2010). Seperti penelitian ilmu komputer yang dilakukan menggunakan data pertambangan, segmentasi citra, clustering, penagkapan gambar, jaringan dan lain-lain. Struktur data dapat dirancang dalam bentuk pohon (tree), begitu juga dengan pemodelan topologi jaringan dapat dilakukan dengan menggunakan konsep graf. 2.4 Definisi Graf Menurut Setyawan (2014), Graf terdiri atas himpunan simpul V dan himpunan sisi E dengan setiap sisi memiliki ujung-ujung yang berupa simpul. Graf dapat digunakan untuk mempresentasikan berbagai macam sistem nyata, dengan simpul menyatakan unsur dalam sistem tersebut dan unsur-unsur yang saling berhubungan digambanrkan dengan adanya sisi yang menghubungkan unsur-unsur itu.
Gambar 2.2 Representasi Masalah Jembatan Konigsberg Sebagai Graf Dalam representasi graf dari masalah jembatan Konigsberg ternyata keempat simpul tersebut semuanya memiliki derajat ganjil. Dengan latar belakang matematika yang dimilikinya, Euler membuktikan bahwa kita tidak mungkin pergi dari satu simpul tertentu dengan melalui ke tujuh sisi dari graf itu masing-masing tepat satu kali dan kembali ke simpul awal. Euler membuktikan bahwa ini dilakukan jika sebanyak-banyaknya ada dua simpul dengan derajat ganjil, yakni simpul awal dan simpul 36
Jurnal Teknik Informatika Kaputama (JTIK), Vol 1 No 1, Januari 2017
akhir. Dalam perkembangan teori graf, konsep ini dikenal dengan trail Euler (Eulerian trail).
ISSN : 2548-9704
Matrix rusuk dari graf di atas adalah matrix 11x11, karena graf di atas mempunyai 11 rusuk.
2.5 Matrix Graf Sebuah graf dapat disajikan dalam bentuk matrix (Samuel, 2008), yaitu : 1. Matrix titik (Adjacent Matrix) 2. Matrix rusuk (Edge Matrix) 3. Matrix titik – rusuk (Incidence Matrix) Berikut graf yang dinyatakan dalam bentuk matrix titik, rusuk, dan titik – rusuk
Gambar 2.5 Matrix Rusuk 11x11
Gambar 2.3 Graf dalam Bentuk Matrix Matrix titik dari graf diatas adalah matrix 7x7, karena graf diatas mempunyai 7 buah titik.
Cara mengisi elemen-elemen matrik: Bila sebuah rusuk bertemu dengan rusuk yang lain disebuah titik maka elemen amtriknya = 1, bila tidak bertemu di satu titik maka elemen matriknya = 0. Matrik titik rusuk dari graph diatas adalah matrik 7x11, karena graph tersebut memiliki 7 titik dan 11 rusuk.
Gambar 2.6 Matrix Rusuk 7x11
Gambar 2.4 Elemen – elemen Matrix Cara mengisi elemen-elemen matrix: 1. Baris 1 kolom 1, dari A ke A = 0 2. Baris 1 kolom 2, dari A ke B = 1 Titik A dan B terhubung oleh sebuah rusuk 3. Baris 4 kolom 4, dari D ke D = 2 Titik D mempunyai loop 4. Baris 5 kolom 6, dari E ke F = 2 Titik E dan F terhubung oleh 2 buah rusuk e7 dan e8 5. Baris 7 kolom 1, dari G ke A = 0 Titik G dan A tidak terhubungoleh sebuah rusuk
Cara mengisi elemen-elemen matrik Bila sebuah rusuk bertemu dengan sebuah titik maka nilai elemen matrik = 1, bila tidak bertemu maka nilai elemen matrik = 0. 2.6 Algoritma Dijkstra Menurut Liu dan Chen (2010), ide dasar algoritma Dijkstra adalah untuk mengeksplorasi jalan terpendek dari titik sumber (s) ke luar secara bertahap. Dalam proses menetapkan nomor untuk setiap titik (point) yang menyatakan berat jalur terpendek dari s ke titik point (label P) atau batas atas berat jalur terpendek dari s ke titik point (label T). Dalam setiap langkah, memodifikasi label T dan mengubah jumlah titik dengan label T 37
ISSN : 2548-9704
Jurnal Teknik Informatika Kaputama (JTIK), Vol 1 No 1, Januari 2017
untuk menunjukkan dengan label P, sehingga jumlah titik dengan label P dalam grafik G bertambah satu, maka bisa didapatkan jalur terpendek dari s ke setiap titik hanya dengan n1 langkah (n adalah jumlah simpul dalam grafik G). Berikut beberapa contoh penerapan algoritma Dijkstra yang telah dibahas oleh peneliti sebelumnya : 1. Algoritma dijkstra dapat diterapkan dalam pembuatan sistem bantuan bencana alam Real Time (Nandiroh, dkk, 2014). Sistem yang dibangun pada penelitian tersebut dapat diakses menggunakan telepon seluler dengan sistem navigasi dan mampu menunjukkan rute terpendek serta dapat menunjukkan rute alternatif jika terjadi kemacetan atau terjadi kecelakaan di salah satu jalur atau lokasi bencana sehingga tercipta sistem layanan yang real time. 2. Algoritma Dijkstra juga dapat di implementasikan pada aplikasi untuk menentukan lintasan terpendek jalan darat antar kota (Fitria dan Triansyah, 2013). Pada penelitian ini di hasilkan rute terpendek secara optimal dan cepat dalam menentukan rute terpendek menggunakan algoritm dijkstra 3. Pendistribusian barang farmasi menggunakan algoritma dijkstra juga pernah menjadi konsen penelitian (Sulindawaty, dkk, 2015). Pada penelitian tersebut algoritma Dijkstra dibandingkan dengan algoritma Prim. Hasil penelitian yang didapatkan adalah algoritma Dijkstra dan Prim mampu menemukan jalur terpendek ke tempat tujuan. Namun dari hasil analisa, algoritma Dijkstra lebih memiliki komposisi jalur yang lebih dekat dibandingkan dengan algoritma Prim. 3.
METODOLOGI PENELITIAN
3.1 Kerangka Kerja Penelitian Kerangka kerja ini merupakan langkah – langkah yang akan dilakukan dalam penyelesaian maslaah yang akan dibahas. Adapaun kerangka kerja penelitian ini adalah sebagai berikut :
MULAI
PERSIAPAN PENELITIAN OBJECT
PERMASALAHAN
MANFAAT
TUJUAN
JURNAL, BUKU DAN E-BOOK
STUDI PUSTAKA
ALAMAT DAN TITIK KOORDINAT SEKOLAH
PENGUMPULAN DATA
ANALISIS SISTEM ANALISIS DATA
REPRESENTASI GRAF
ANALISIS RUTE TERPENDEK
MODEL RUTE TERPENDEK
PERANCANGAN SISTEM
IMPLEMENTASI HASIL
DAN KESIMPULAN
SELESAI
Gambar 3.1 Kerangka Kerja Penelitian a. Persiapan Penelitian Pada tahap ini ditentukan objek penelitian, permasalahan yang ada, tujuan dan manfaat dari penelitian. b. Studi Pustaka Dalam penelitian ini dilakukan pengumpulan dan mempelajari literatur – literatur yang berhubungan dengan permasalahan, teori – teori, dan algoritma dijkstra baik dari buku, jurnal, e-book dan lain sebagainya. c. Pengumpulan Data Data yang dikumpulkan berupa nama, alamat, lokasi, dan titik koordinat (latitude,longitude) sekolah SMA/SMK di kota Binjai. Data koordinat, data jalan dan persimpangan diperoleh dari aplikasi One Touch Location dan Google Map. d. Analisis Sistem Pada tahap ini data yang telah dikumpulkan kemudian dianalisa dan di representasikan dalam bentuk graf. Dari hasil representasi graf selanjutnya dianalisa dengan alagoritma Dijkstra untuk mendapatkan rute terpendek kemudian di 38
Jurnal Teknik Informatika Kaputama (JTIK), Vol 1 No 1, Januari 2017
gambarkan dalam pemodelan rute terpendek. e. Perancangan Sistem Agar aplikasi prototype yang dibangun sesuai dengan hasil analisa maka pada tahap ini dilakukan perancangan sistem. f. Implementasi Sistem Tahap ini merupakan tahap pengujian terhadap sistem menggunakan aplikasi berbasis web sekaligus mengevaluasi kekurangan – kekurangan yang ada pada sistem. g. Hasil dan Kesimpulan Pada tahap ini di hasilkan rute terpendek dari Dinas Pendidikan dan Pengajaran kota Binjai menuju sekolah-sekolah SMA/SMK di kota Binjai, kemudian disimpulkan dengan algoritma Dijkstra apakah mampu menentukan rute terpendek dengan akurat dalam pendistribusian Naska Ujian Nasional.
4.
ISSN : 2548-9704
mij = ∞, jika tidak ada sisi dari simpul i ke simpul j Larik S = [si] yang dalam hal ini, si = 1, jika simpul i termasuk ke dalam rute terppendek si = 0, jika simpul i tidak termasuk ke dalam rute terpendek Larik D = [d] yang dalam hal ini, di = panjang rute dari simpul awal a ke simpul i.
ANALISA DAN PERANCANGAN
Untuk menyelesaikan masalah penentuan rute terpendek dalam distribusi naskah Ujian Nasional oleh Dinas Pendidikan dan Pengajaran Binjai ke sekolah – sekolah SMA/SMK di seluruh Kota Binjai, akan dilakukan analisa data lokasi yang akan diselesaikan menggunakan algoritma Dijsktra. Adapun hal yang pertama yang akan dilakukan adalah menganalisa data yang diperoleh dan di representasikan dalam bentuk graf berbobot dari data yang ada. Sebuah graf berbobot dengan n buah simpul dinyatakan dengan matriks ketetanggaan M = [mij], dalam hal ini, mij = bobot sisi (i, j) (pada graf tak – berarah mij = mji) mij = 0 mij = ∞, jika tidak ada sisi dari simpul i ke simpul j Selain matriks M, juga menggunakan tabel S = [si] yang dalam hal ini, si = 1, jika simpul i termasuk ke dalam rute terppendek si = 0, jika simpul i tidak termasuk ke dalam rute terpendek Tabel D = [d] yang dalam hal ini, di = panjang rute dari simpul awal a ke simpul i.
Gambar 4.1 Pemodelan Graf Lokasi Sekolah SMA/SMK Di Kota Binjai Dari pemodelan graf lokasi sekolah SMA/SMK di kota Binjai pada gambar 4.7 simpul persimpangan diwakili dengan kode berawalan huruf “S” (S01, S02, S03, ....) sedangkan simpul lokasi awal diwakili dengan kode berawalan huruf “A” (A01) dan untuk simpul tujuan kelanjutan dari kode simpul awal (A02, A03, A04, .....), semua simpul tersebut dihubungkan lintasan – lintasan atau busur yang memiliki bobot jarak dengan satuan kilometer (km) pada setiap busur nya . Selanjutnya dilakukan perhitungan untuk mencari rute terpendek dari simpul awal menuju simpul tujuan. Berikut ini sample perhitungan dari beberapa simpul tujuan : 39
Jurnal Teknik Informatika Kaputama (JTIK), Vol 1 No 1, Januari 2017
Sebuah graf berbobot dengan n buah simpul dinyatakan dengan matriks ketetanggaan M = [mij], dalam hal ini, mij = bobot sisi (i, j) (pada graf tak – berarah mij = mji) mii = 0 Mulai
Beri bobot 0 untuk node yang belum di lalui dan bobot 1 untuk node yang telah di lalui
Inisialisasi simpul persimpangan (S) dan simpul lokasi (A)
Beri nilai bobot jarak untuk setiap node yang di lalui, dan beri nilai ∞ jika node tidak terjangkau
Menentukan nilai jarak untuk setiap simpul bertetanggaan
Mencari rute terpendek dengan membandingkan jarak menuju node tersebut atau melalui simpul yang telah memiliki nilai bobot jarak
Menghitung bobot jarak menuju simpul tujuan
Yes
Ada?
No
Rute terpendek dari simpul awal ke simpul akhir ditemukan
Selesai
Gambar 4.2 Flowchart Algoritma Dijsktra 4.1 Analisa Kebutuhan Sistem Proses analisis kebutuhan ini diawali dengan penjabaran umum aplikasi rute terpendek, identifikasi lokasi sekolah, penjabaran tentang kebutuhan dan kemudian dimodelkan kedalam digram use case. Analisis kebutuhan ini bertujuan untuk menggambarkan kebutuhan – kebutuhan yang harus disediakan oleh sistem agar dapat memenuhi kebutuhan pengguna. 4.2 Gambaran Terpendek
Umum
Aplikasi
Rute
Aplikasi rute terpendek ini merupakan aplikasi prototype yang dirancang untuk mempermudah pengguna untuk mendapatkan lokasi sekolah dalam proses pendistribusian naskah ujian. Ketika mengakses aplikasi ini, pengguna hanya memerlukan sidikit waktu, maka pengguna sudah mendapatkan lokasi sekolah – sekolah yang akan dituju 4.3 Daftar Kebutuhan Sistem Daftar kebutuhan terdiri dari kebutuhan fungsional dan non-fungsional. Pada tabel 4.1
ISSN : 2548-9704
kebutuhan fungsional ditunjukkan dengan penomoran F, sedangkan kebutuhan nonfungsional ditunjukkan dengan penomoran NF. Tabel 4.1 Daftar Kebutuhan Fungsional Identif Kebutuhan Uses Case ikasi Aplikasi harus Melihat mampu lokasi – F01 menampilkan lokasi lokasi - lokasi sekolah sekolah Aplikasi harus Melihat rute mampu menampilkan rute terpendek dari lokasi F02 dari lokasi awal awal menuju menuju lokasi lokasi tujuan tujuan yang telah di pilih Aplikasi harus Melihat rute mampu mencari terpendek lokasi tujuan awal dari lokasi F03 hingga lokasi tujuan awal tujuan akhir hingga berdasarkan rute lokasi tujuan terpendek akhir Aplikasi harus Penambahan mampu F04 menambahkan data lokasi data lokasi sekolah sekolah yang baru Aplikasi harus Penambahan mampu data rute menambahkan F05 perbandinga data rute n perbandingan Tabel 4.2 Daftar Kebutuhan Non-Fungsional Deskripsi Parameter Kode Kebutuhan Aplikasi harus dengan mudah digunakan oleh pengguna (Ketika pengguna menjalankan Usability NF01 aplikasi maka aplikasi akan mampu menampilkan lokasi – lokasi sekolah pada peta dalam 40
Jurnal Teknik Informatika Kaputama (JTIK), Vol 1 No 1, Januari 2017
Compatibility
bentuk marker) Aplikasi harus dapat digunakan pada komputer dengan sistem operasi windows
NF02
Perancangan perangkat lunak dilakukan setelah semua kebutuhan perangkat lunak didapatkan melalui tahap analisis kebutuhan. Perancangan perangkat lunak berdasarkan object oriented analysis dan object oriented design yaitu menggunakan pemodelan UML (Unified Modeling Language). Perancangan di mulai dari perancangan alur atau aktifitas ayang dilakukan pengguna secara prosedural yang dimodelkan dalam activity diagram. Interaksi antar objek yang telah di identifikasi, di modelkan dalam sequence diagram. Selanjutnya, dilakukan perancangan sistem aplikasi rute terpendek dengan mengidentifikasi class dan layout yang dibutuhkan, serta kemudian dimodelkan dalam class diagram. Kemudian tahap perancangan dilanjutkan dengan perancangan antarmuka pengguna 4.5 Diagram Use Case
Pemodelan use case sistem diperoleh dari kebutuhan fungsional yang digunakan untuk menggambarkan interaksi antara satu atau lebih aktor dengan sistem yang akan dibuat. Gambar 4.3 menunjukkan use case sistem. <<extend>>
1.1.1 Melihat rute lokasi sekolah terdekat
User
2.1 Menambah Data Sekolah
<
>
Gambar 4.3 merupakan use case sistem yang terdiri dari 2 aktor yaitu user dan admin, dimana admin dapat memanipulasi data lokasi sekolah dan mengakses aplikasi, sedangkan user hanya dapat melakukan akses aplikasi dan tidak dapat memanipulasi data lokasi sekolah. Setiap use case yang ada pada gambar 4.3 dapat dijelaskan oleh skenario use case. 4.6 Skenario Use Case
4.4 Perancangan Sistem
1.1 Melihat lokasi – lokasi sekolah
ISSN : 2548-9704
Tabel 4.3 menjelaskan kegiatan yang dilakukan pada saat melihat lokasi sekolah pada gambar use case sistem. Pertama pengguna membuka alamat apliaksi pada browser kemudian sistem akan menampilkan peta, marker lokasi sekolah – sekolah SMA/SMK. Tabel 4.3 Skenario Use Case Melihat Lokasi Sekolah Nomor Use F01 Case Melihat lokasi – lokasi Nama Use Case sekolah Komputer terkoneksi Prasyarat internet, aplikasi di Konteks buka pada browser. Mempermudah pengguna untuk Tujuan Konteks menentukan rute lokasi sekolah terdekat Aplikasi telah terpasang dan Prakondisi pengguna membukan aplikasi Aplikasi menampilkan Kondisi Akhir lokasi sekolah dan Sukses menampilkan rute lokasi sekolah terdekat Kondisi Akhir Failed Aktor Pengguna Aktifitas
2.1.1 Login
1.
Admin
Alur Utama
Gambar 4.3 Use Case Sistem
Pengguna membuka aplikasi 2. Sistem menampilkan lokasi – lokasi sekolah. 3. Sistem menampilkan 41
ISSN : 2548-9704
Jurnal Teknik Informatika Kaputama (JTIK), Vol 1 No 1, Januari 2017
rute lokasi sekolah terdekat Tabel 4.3 menjelaskan kegiatan yang dilakukan pada saat admin login ke sistem pada gambar IV.3 Use Case Sistem. Pertama admin login ke sistem kemudian sistem akan menampilkan peta, marker lokasi sekolah – sekolah SMA/SMK, tampilan hampir sama dengan halaman pengguna. Namun ada penambahan kolom yaitu kolom Tambah Lokasi Sekolah dan Input Jarak Sekolah.
4.7 Diagram Activity Diagram activity adalah diagram untuk memodelkan aktivitas antara pengguna dan sistem yang berjalan berdasarkan pada skenario use case. Skenario use case yang digambarkan pada tabel 4.4 dapat di modelkan kedalam diagram activity, dapat terlihat aktor yang melakukan proses tiap langkahnya. User
Sistem
Membuka Aplikasi
Menampilkan peta, lokasi sekolah, rute terpendek
Tabel 4.4 Skenario Use Case Penambahan Data Lokasi Sekolah Nomor Use Case F02 Nama Use Case Prasyarat Konteks
Tujuan Konteks
Prakondisi
Kondisi Akhir Sukses
Penambahan data lokasi sekolah Komputer terkoneksi internet, aplikasi di buka pada browser. Memberi akses kepada admin untuk melakukan penambahan data Aplikasi telah terpasang dan admin membuka aplikasi Aplikasi menampilkan lokasi sekolah dan memberi akses kepada admin untuk dapat melakukan penambahan data
Kondisi Akhir Failed
-
Aktor
Admin Aktifitas
Alur Utama
1. Admin membuka aplikasi 2. Sistem menampilkan lokasi – lokasi sekolah. 3. Sistem memberi akses kepada admin untuk melakukan penambahan data
Gambar 4.4 Aktivitas Diagram Melihat Lokasi Sekolah Gambar 4.4 merupakan aktivitas diagram melihat lokasi sekolah dan rute terpendek. Aktivitas diagram dibuat untuk menjelaskan interaksi antara user dengan sistem. Pertama user membuka aplikasi pada browser di komputer dengan memanggil alamat server atau aplikasi. Kemudian aplikasi menampilkan peta, lokasi sekolah dan rute terpendek. 5.
HASIL DAN PEMBAHASAN
Pada implementasi pengujian ini untuk mengetahui apakah sistem yang dibangun sudah benar sesuai dengan yang dibutuhkan. Pengujian validasi menggunakan metode pengujian Black-Box, karena tidak diperlukan konsentrasi terhadap alur jalannya algoritma program dan ditekankan untuk menemukan rute terpendek menuju sekolah sekolah SMA/SMK di Kota Binjai. Pada penenlitian ini dilakukan pengujian validasi terhadap aplikasi pecarian rute terpendek.
42
ISSN : 2548-9704
Jurnal Teknik Informatika Kaputama (JTIK), Vol 1 No 1, Januari 2017
1. Kasus Uji Pengguna Pada tahap ini dilakukan pengujian terhadap aplikasi untuk mengetahui aplikasi memenuhi kebutuhan fungsional atau tidak dengan menampilkan halaman utama pengguna, menampilkan lokasi – lokasi sekolah SMA/SMK dalam bentuk marker pada peta dan daftar list, serta aplikasi dapat menampilkan hasil pencarian rute terpendek. Berikut merupakan beberapa pengujian yang dilakukan : a. Kasus uji pembukaan aplikasi dan kasus uji melihat lokasi – lokasi sekolah, hasil pengujian di tampilkan pada tabel V.1 Tabel 5.1 Kasus Uji Membuka Aplikasi Kasus uji pembukaan aplikasi pencarian rute Nama Kasus terpendek dan melihat Uji lokasi – lokasi sekolah SMA/SMK Objek Uji Kebutuhan Fungsional Pengujian dilakukan untuk memastikan bahwa aplikasi memenuhi kebutuhan fungsional Tujuan untuk membuka aplikasi Pengujian kemudian menampilkan lokasi – lokasi sekolah SMA/SMK Pengguna membuka browser kemudian Prosedur Uji memasukkan alamat aplikasi pada address bar. Aplikasi dapat menampilkan halaman utama dan lokasi – lokasi Hasil yang sekolah SMA/SMK pada diharapkan peta dalam bentuk marker. b. Kasus uji pencarian rute terpendek dengan menentukan lokasi awal dan lokasi tujuan
Prosedur Pengujian
Hasil yang diharapkan
c. Kasus uji pencarian lokasi tujuan awal hingga akhir berdasarkan rute terpendek Tabel 5.3 Kasus Uji Pencarian Lokasi Tujuan Awal Hingga Lokasi Tujuan Akhir Pencarian lokasi tujuan Nama awal hingga akhir Kasus Uji berdasarkan rute terpendek Objek Uji Kebutuhan Fungsional Pengujian dilakukan untuk memastikan aplikasi mampu mencari lokasi tujuan awal hingga lokasi Tujuan Uji tujuan akhir berdasarkan rute terpendek, kemudian menampilkan hasil pencarian. Pengguna menekan tombol “Cari Rute Berikutnya” pada kolom cari semua Prosedur rute, kemudian pengguna Pengujian menekan tombol “Simpan Rute” untuk menyimpan hasil pencarian. Aplikasi mampu mencari lokasi tujuan awal hingga lokasi tujuan akhir Hasil yang berdasarkan rute terpendek, diharapkan kemudian menyimpan dan menampilkan kembali hasil yang di dapat. 2.
Tabel 5.2 Kasus Uji Pencarian Rute Terpendek Pencarian rute terpendek Nama dengan menentukan lokasi Kasus Uji awal dan lokasi tujuan Objek Uji Kebutuhan Fungsional Pengujian dilakukan untuk Tujuan Uji memastikan aplikasi mampu menampilkan rute terpendek
dengan menentukan lokasi awal dan lokasi tujuan. Pengguna memilih lokasi awal dan lokasi tujuan pada daftar pilihan, kemudian pengguna menekan tombol “Cari Rute” Aplikasi dapat mencari rute terpendek dari lokasi awal ke lokasi tujuan dan menampilkan jalan yang dilalui pada kolom panel rute
Kasus Uji Admin
Pada tahap ini dilakukan pengujian terhadap aplikasi untuk mengetahui aplikasi memenuhi kebutuhan fungsional atau tidak dengan menampilkan halaman admin, menambah data lokasi – lokasi sekolah serta menambah data rute perbandingan. 43
Jurnal Teknik Informatika Kaputama (JTIK), Vol 1 No 1, Januari 2017
Berikut merupakan beberapa pengujian yang dilakukan : a. Kasus uji penambahan data lokasi – lokasi sekolah, hasil pengujian di tampilkan pada tabel 5.4 Tabel 5.4 Kasus Uji Penambahan Lokasi Sekolah Nama Kasus Penambahan lokasi Uji sekolah Objek Uji Kebutuhan Fungsional Pengujian dilakukan untuk memastikan Tujuan Uji aplikasi mampu menambah lokasi sekolah baru. Admin memasukkan data sekolah baru pada kolom Prosedur “Tambah Lokasi Sekolah” kemudian Pengujian admin menekan tombol “Simpan” Aplikasi mampu Hasil yang menambah dan diharapkan menyimpan data lokasi sekolah baru.
ISSN : 2548-9704
6. KESIMPULAN DAN SARAN 6.1 Kesimpulan Berdasarkan hasil analisa, implementasi dan pengujian yang dilakukan, maka di ambil kesimpulan sebagai berikut : 1. Permasalahan pencarian rute terpendek pendistribusian naskah ujian nasional ke seluruh SMA/SMK di Kota Binjai dapat diselesaikan dengan algoritma Dijkstra. 2. Algoritma Dijkstra mampu menghasilkan model rute terpendek dalam pendistribusian naskah ujian nasional ke seluruh SMA/SMK di Kota Binjai. 3. Prototype perangkat lunak pencarian rute terpendek dapat menyimpan dan menampilkan hasil pencarian rute terpendek dari lokasi tujuan awal hingga lokasi tujuan akhir. 4. Dengan menggunakan algoritma Dijkstra dalam proses pencarian rute terpendek dari lokasi tujuan awal hingga lokasi tujuan akhir, jika ada beberapa lokasi yang berdekatan dengan lokasi asal ada kemungkinan lokasi tersebut akan berada di akhir urutan rute terpendek 6.2 Saran
b.
Kasus uji penambahan perbandingan
data
Tabel 5.5 Kasus Uji Penambahan Rute Perbandingan Nama Kasus Penambahan data rute Uji perbandingan Objek Uji Kebutuhan Fungsional Pengujian dilakukan untuk memastikan Tujuan Uji aplikasi mampu menambah data rute perbandingan yang baru Admin memmasukkan data rute perbandingan yang baru pada kolom Prosedur “Input Jarak Lokasi” Pengujian kemudian admin menekan tombol “Simpan”. Aplikasi mampu Hasil yang menambah dan diharapkan menyimpan data rute perbandingan yang baru.
rute Berikut ini beberapa saran yang dapat dipergunakan untuk pengembangan penelitian dalam menentukan rute terpendek 1. Memperluas cakupan wilayah penelitian seperti wilayah Sumatera Utara, sehingga dapat membantu Dinas Pendidikan dan Pengajaran kantor pusat dalam pendistribusian naskah ujian nasional. 2. Dilakukan pengembangan terhadap prototype perangkat lunak pencarian rute terpendek. DAFTAR PUSTAKA [1]Antonio, G., Sholeh, H.P dan Sunaryo, 2013, Sistem Informasi Geografis Pariwisata Berbasis Web Dan Pencitraan Jalur Terpendek Dengan Algoritma Dijkstra, Jurnal EECIS Vol 7, No. 2 [2]Benaicha, R. Dan Taibi, M., 2013, Dijkstra Algorithm Implementation On FPGA Card For Telcom Calculations, International Journal of Engineering Sciences & 44
Jurnal Teknik Informatika Kaputama (JTIK), Vol 1 No 1, Januari 2017
ISSN : 2548-9704
Emerging Technologies, Volume 4, Issue 2, pp: 110-116 ©IJESET. [3]Fitria dan Apri.T.,2013,Implementasi Algoritma Dijkstra Dalam Aplikasi Untuk Menentukan Lintasan Terpendek Jalan Darat Antar Kota Di Sumatera Bagian Selatan, Jurnal Sistem Informasi (JSI), Vol. 5, No.2. [4]Liu, X.Y dan Chen, Y.L.,2010, Application of Dijkstra Algorithm in Logistics Distribution Lines, Proceeding of the Third International Symposium on Computer Science and Computational Technology(ISCSCT ’10) Jiaozuo, P.R China, 14-15 Agustus. [5]Putu Wira Buana, 2010, Penemuan Rute Terpendek Pada Aplikasi Berbasis Web, Lontar Komputer, Vol.1, No. 1 [6]Siti, N., Haryanto dan Hafidh,M.,2014, Implementasi Algoritma Dijkstra Sebagai Solusi Efektif Pembuatan Sistem Bantuan Bencana Real Time, Jurnal Ilmiah Teknik Industri,Vol. 12, No. 2. [7]Sulindawaty, Hendryan, W., dan Trinanda, S., 2015, Pendistribusian Barang Farmasi Menggunakan Algoritma Dijkstra (Studi Kasus: PT. Air Mas Chemical), Jurnal Santikom, Vol. 14, No. 1. [8]Uning, L., dan Marwoto, 2012, Aplikasi Sistem Informasi Geografis Pemetaan Digital Loop Carrier, Jurnal Teknologi Technoscientia, Vol. 5, No.1. [9]Yudi, S., 2014, Visualisasi Graf Dan Algortima – Algoritma Dalam Teori Graf Menggunakan Beberapa Paket Software, Prosiding Seminar Nasional Aplikasi Sains & Teknologi(SNAST),Yogyakarta, 15 November.
45
Jurnal Teknik Informatika Kaputama (JTIK), Vol 1 No 1, Januari 2017
ISSN : 2548-9704
ANALISIS PENGARUH MUTASI TERHADAP PERFORMANCE ALGORITMA GENETIKA Erianto Ongko Prodi Teknik Informatika, Akademi Teknologi Industri Immanuel e-Mail: [email protected]
Abstrak Algoritma genetika pada umumnya digunakan untuk pencarian solusi dari suatu permasalahan yang menuntut pencarian solusi yang optimal pada suatu permasalahan. Salah satu tahapan di dalam algoritma genetika adalah proses mutasi. Proses mutasi dilakukan setelah proses crossover dilakukan. Proses mutasi melibatkan pertukaran gen untuk beberapa gen yang berada pada posisi tertentu. Proses mutasi dimaksudkan untuk mencegah hasil terjebak di dalam kondisi local optima. Penelitian ini dimaksudkan untuk melihat pengaruh dari proses mutasi terhadap performance dari algoritma genetika. Studi kasus di dalam permasalahan ini adalah permasalahan Travelling Salesman Problem (TSP), dimana menggunakan library Berlin52.tsp. Hasil penelitian ini diharapkan dapat memberikan gambaran mengenai pengaruh mutasi terhadap performance algoritma genetika dengan memvariasikan nilai probabilitas mutasi. Kata Kunci: Algoritma Genetika, Mutasi, Performance, Travelling Salesman Problem
1.
PENDAHULUAN
Penelitian mengenai Algoritma Genetika dimulai pada Tahun 1975, ketika John Holland mengemukakan hasil penelitiannya mengenai proses komputasi yang menggunakan konsep evolusi di dalam bukunya yang berjudul "Adaptation in Natural and Aritificial Systems"(Negnevitsky, 2005). Algoritma genetika merupakan contoh permasalahan soft computing yang sering digunakan untuk penyelesaian masalah optimasi. Ketika membahas mengenai algoritma genetika ada tiga parameter utama yang harus didefinisikan yaitu ukuran populasi, probabilitas crossover, dan probabilitas mutasi. Ketiga parameter ini harus didefinisikan dengan baik sehingga tidak terjadi konvergensi dini atau local optima yaitu dimana individu-individu dalam populasi konvergen pada suatu solusi optimum lokal sehingga hasil paling optimum tidak dapat ditemukan (Muzid, 2014). Schrempf dan Hobolth (2017) mengemukakan Model Wright-Fisher untuk proses mutasi pada mutasi dengan probabilitas mutasi yang kecil. Penelitian ini dimaksudkan untuk melihat pengaruh dari proses mutasi terhadap performance dari algoritma genetika. Studi kasus di dalam permasalahan ini adalah
permasalahan Travelling Salesman Problem (TSP), dimana menggunakan library Berlin52.tsp. Hasil penelitian ini diharapkan dapat memberikan gambaran mengenai pengaruh mutasi terhadap performance algoritma genetika dengan memvariasikan nilai probabilitas mutasi dan juga jumlah generasi. 2. 2.1.
LANDASAN TEORI Proses Algoritma Genetika
Algoritma genetika adalah suatu algoritma stochastic yang memodelkan permasalahan evolusi dari spesies biologi melalui seleksi alam (Konar, 2005). Secara umum, proses penentuan populasi dilakukan secara acak dan solusi dibangkitkan sesudah tahapan konsekutif dari proses crossover dan mutasi. Setiap individu dari populasi memiliki nilai yang diasosiasikan kedalam suatu nilai fitness, di dalam kaitannya untuk menyelesaikan suatu permasalahan (Rabunal, 2006). Adapun diagram alir dari algoritma genetika standart dapat dilihat pada Gambar 2.1.
46
Jurnal Teknik Informatika Kaputama (JTIK), Vol 1 No 1, Januari 2017 Mulai Representasi Kromosom
Membangkitkan Populasi Awal
Hitung Fitness
Seleksi
Perkawinan Silang
Tidak
Mutasi
Individu Baru
Optimal ?
Ya
Solusi Optimal
Selesai
Gambar 2.1. Diagram Alir dari Proses Algoritma Genetika (Negnevitsky, 2005) Secara umum struktur dari suatu Algoritma Genetika dapat didefenisikan dengan langkahlangkah sebagai berikut: (Negnevitsky, 2005) 1. Membangkitkan populasi awal Populasi awal ini dibangkitkan secara acak sehingga didapatkan solusi awal. Populasi itu sendiri terdiri atas sejumlah kromosom yang merepresentasikan solusi yang diinginkan. 2. Menghitung Fitness dari Tiap Generasi. Pada tiap generasi, kromosom akan melalui proses evaluasi dengan menggunakan alat ukur yang dinamakan fitness. Nilai fitness suatu kromosom menggambarkan kualitas kromosom dalam populasi tersebut. Fungsi Fitness tersebut dapat dilihat pada Persamaan 1. .........(1) Dari persamaan 1, nilai fitness ditentukan oleh nilai fungsi objektif. Fungsi objektif tersebut menunjukkan hasil penjumlahan jarak pada tiap kromosom. Semakin tinggi nilai fitness akan semakin besar kemungkinan kromosom tersebut terpilih ke generasi berikutnya. Jadi nilai fungsi objektif berbanding terbalik dengan nilai fitness, semakin kecil nilai fungsi objektif semaki besar nilai fitnessnya. 3. Evaluasi solusi Proses ini akan mengevaluasi setiap populasi dengan menghitung nilai fitness setiap kromosom dan mengevaluasinya
ISSN : 2548-9704
sampai terpenuhi kriteria berhenti. Bila kriteria berhenti belum terpenuhi maka akan dilanjutkan dengan proses perkawinan. Beberapa kriteria berhenti sering digunakan antara lain: berhenti pada generasi tertentu, berhenti setelah dalam beberapa generasi berturut-turut didapatkan nilai fitness tertinggi tidak berubah, berhenti dalam ngenerasi tidak didapatkan nilai fitness yang lebih tinggi. 4. Proses Crossover Menentukan nilai Pc (Probability Crossover) dan kemudian menentukan pasangan kromosom yang akan terlibat di dalam proses crossover berdasarkan nilai PC yang dibangkitkan tersebut dengan menggunakan salah satu metode crossover. 5. Proses Mutasi Menentukan nilai mutation rate, dan kemudian berdasarkan nilai bilangan random yang dibangkitkan akan dapat ditentukan gen-gen yang terlibat di dalam proses mutasi tersebut. 6. Menjadikan Kromosom Anak hasil dari Proses Crossover dan Mutasi sebagai Populasi Baru. 2.2.
Proses Mutasi
Mutasi adalah proses pengubahan gen di dalam sebuah kromosom. Proses Mutasi akan dimulai setelah proses crossover selesai dilakukan. Mutasi akan mengubah offspring hasil dari proses crossover dengan mengubah bit 1 menjadi 0 atau bit 0 menjadi 1. Mutasi dapat melibatkan setiap posisi bit dari gen di dalam kromosom dengan beberapa probabilitas yang umumnya berukuran kecil. Mutasi dimaksudkan untuk mencegah hasil pencarian mengarah pada keadaan local optima di dalam sebuah area pencarian (Shaikh, 2012). Jenis mutasi yang akan digunakan di dalam penelitian ini adalah Mutasi dalam Pengkodean Biner. Mutasi di dalam pengkodean biner dilakukan dengan cara melakukan operasi yang menginversi nilai bit pada posisi tertentu yang terpilih secara acak (atau menggunakan skema tertentu) pada kromosom, yang disebut inverse bit.
47
ISSN : 2548-9704
Jurnal Teknik Informatika Kaputama (JTIK), Vol 1 No 1, Januari 2017
Tabel 2.1. Contoh Mutasi pada Pengkodean Biner Kromosom sebelum mutasi 10010111 Kromosom setelah mutasi 10010011 2.3.
Travelling Salesman Problem
Permasalahan matematika tentang Traveling Salesman Problem dikemukakan pada tahun 1800 oleh matematikawan Irlandia William Rowan Hamilton dan matematikawan Inggris Thomas Penyngton. Permasalahan TSP ini merupakan permasalahan di mana seorang salesman harus mengunjungi semua kota di mana tiap kota hanya dikunjungi sekali, dan dia harus mulai dan kembali ke kota asal. Tujuan yang ingin dicapai pada permasalahan TSP adalah mencari rute terpendek bagi seorang salesman. (Biggs et.al, 1976).
3.
METODE PENELITIAN
Travelling Salesman Problem termasuk ke dalam kelas permasalahan NP (NonDeterministic Polynomial) kategori sulit karena memiliki kompleksitas O (nol). Permasalahan utama dari TSP adalah bagaimana seorang salesman dapat mengatur rute perjalanannya untuk mengunjungi sejumlah kota yang diketahui jarak satu kota dengan kota lainnya sehingga jarak yang ditempuh merupakan jarak minimum di mana seorang salesman hanya dapat mengunjungi kota tersebut tepat satu kali. Salah satu metode yang dapat digunakan di dalam menyelesaikan permasalahan TSP yaitu algoritma genetika. Proses mutasi dimaksudkan untuk mencegah hasil dari algoritma genetika terjebak di dalam kondisi local optima. Penelitian ini dimaksudkan untuk melihat pengaruh dari proses mutasi terhadap performance dari algoritma genetika. Data yang digunakan merupakan data benchmark yang diambil dari Travelling Salesman Problem Library (TSPLIB). Adapun data yang digunakan yaitu data berlin52.tsp. Adapun prosedur kerja yang dilakukan oleh peneliti dari penelitian ini dapat dilihat secara keseluruhan pada Gambar 2.
Gambar 3.1 Metode Penelitian Pada Gambar 3.1, dapat dilihat bahwa proses penelitian dimulai dari penentuan input yang dalam hal ini peneliti menggunakan data benchmark yang sudah ada, yang bersumber dari TSPLIB yaitu Berlin52.tsp. Tahapan penelitian yang dilakukan dimulai dari pendefinisian kromosom, pembentukan populasi awal, perhitungan nilai fitness tiap kromosom, penyeleksian kromosom, pemilihan metode kawin silang (crossover) yang dalam hal ini menggunakan arithmetic crossover, dan permutasian. Penelitian ini akan fokus pada output berupa performance berdasarkan pada proses mutasi.
4.
HASIL DAN PEMBAHASAN
Analisis Pembangkitan Populasi Awal Permasalahan Berlin52.TSP yang digunakan di dalam penelitian ini meliputi 51 kota yang akan dikunjungi dari kota asal. Jumlah populasi yang digunakan adalah sebanyak 10 dan terdapat 51 kromosom pada tiap populasi, yang mewakili jumlah kota yang harus dikunjungi.
Analisis Fitness
Proses
Penghitungan
Nilai
Untuk dapat menghitung nilai fitness maka kita harus menghitung nilai fungsi objek terlebih dahulu. Fungsi objektif di dalam permasalahan ini adalah merupakan total jarak perjalanan yang dilalui oleh seorang salesman. Adapun jarak antara 1 kota dengan kota lainnya dapat dihitung dengan menggunakan perhitungan euclidean distance. Adapun persamaan untuk euclidean distance dapat dilihat pada Persamaan 1.
d (i, j ) (xi x j ) ( y i y j ) 2 ……(1) Dimana:
48
ISSN : 2548-9704
Jurnal Teknik Informatika Kaputama (JTIK), Vol 1 No 1, Januari 2017
xi xj yi yj
= Koordinat x kota i = Koordinat x kota j = Koordinat y kota i = Koordinat y kota j Setelah menghitung nilai fungsi objektif, maka nilai fitness dapat dihitung dengan menggunakan Persamaan 2.1 Fitness = 1 / (1+Fungsi_Objektif)....(2)
Analisis Proses Seleksi Proses seleksi di dalam penelitian menggunakan metode roulette wheel selection. Metode roulette wheel selection dapat dilihat pada Gambar 3.
Kromosom Parent 2 α Kromosom Offspring
0.3 0.2 0.3 0.2 0.3 0.2 0.3 0.2 0.3 0.5 0.2 0.2 0.3 0.3 0.4 0.4 0.5 0.5 0.6
Analisis Proses Mutasi Proses mutasi yang akan digunakan di dalam penelitian ini adalah mutasi dalam pengkodean biner. Proses mutasi akan divariasikan nilai probabilitas mutasi sehingga dapat diketahui pengaruh proses mutasi terhadap performance dari algoritma genetika
Analisis Proses Pengujian
Sumber: Kumar, 2012
Gambar 4.1. Metode Roulette Wheel Selection
Analisis Proses Crossover Metode crossover yang digunakan di dalam penelitian ini adalah metode arihtmetic crossover. Jenis arithmetic crossover yang digunakan adalah Whole Arithmetic Crossover. Pada Metode Whole Arithmetic Crossover, gen pada kromosom offspring diperoleh dari hasil operasi aritmatika gen pada kromosom parent, di mana proses aritmatika yang dilakukan sesuai dengan persamaan 3. Illustrasi dari proses whole arithmetic crossover dapat dilihat pada Tabel 2.
Pada penelitian ini akan dilakukan pengujian terhadap algoritma genetika. Metode kawin silang (crossover) yang digunakan adalah Whole Arithmetic Crossover. Penelitian ini akan menguji kaitan antara proses mutasi terhadap performance dari algoritma genetika. Proses mutasi akan diuji berdasarkan variasi dari nilai probabilitas mutasi (mutation rate). Mutation rate akan divariasikan pada nilai 0.1, 0.2, 0.3, dan 0.4. Hasil pengujian diharapkan dapat memberikan gambaran berupa pengaruh proses terhadap performance dari algoritma genetika. Pengujian dilakukan dengan jumlah generasi sebanyak 100 generasi dengan nilai probability crossover 0.25 dan nilai mutation rate (Probabilitas Mutasi) sebesar 0.1 serta nilai α sebesar 0.5 untuk melihat nilai best distance serta average distance. Adapun proses pengujian dapat dilihat pada Gambar 4.2, 4.3, 4.4, dan 4.5.
Child= . x (1 ). y
………….(3)
Tabel 4.1 Whole Arithmetic Crossover Kromosom Parent 1
0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9
Gambar 4.2 Pengujian dengan Menggunakan Probabilitas Mutasi Sebesar 0.1
49
ISSN : 2548-9704
Jurnal Teknik Informatika Kaputama (JTIK), Vol 1 No 1, Januari 2017 0.3 0.4
Gambar 4.3. Pengujian dengan Menggunakan Probabilitas Mutasi Sebesar 0.2
20062.05 19906.38
28950.68 28642.60
Pada Tabel 4.2, dapat dilihat bahwa nilai distance yang semakin rendah adalah semakin baik yang berarti bahwa jarak yang ditempuh pada permasalahan Berlin52.TSP adalah semakin rendah. Pada pengujian dengan memvariasikan nilai probabilitas mutasi sebesar 0.1, 0.2, 0.3, dan 0.4 dan dikaitkan dengan nilai best distance dan nilai average distance. Nilai best distance merupakan nilai distance terendah yang diperoleh pada pengujian dengan melibatkan 51 kromosom dengan jumlah generasi sebanyak 100 generasi. Nilai average distance merupakan nilai rata-rata distance yang diperoleh pada pengujian dengan melibatkan 51 kromosom dengan jumlah generasi sebanyak 100 generasi.
Pembahasan
Gambar 4.4 Pengujian dengan Menggunakan Probabilitas Mutasi Sebesar 0.3
Gambar 4.5. Pengujian dengan Menggunakan Probabilitas Mutasi Sebesar 0.4 Hasil Pengujian dapat dilihat pada Tabel 4.2. Tabel 4.2 Hasil Pengujian Probabilitas Mutasi 0.1 0.2
Best Distance 22055.91 21857.85
Average Distance 27792.58 27451.98
Berdasarkan hasil pengujian bahwa nilai probabilitas mutasi berpengaruh terutama terhadap nilai best distance yang diperoleh. Hal ini dapat dilihat bahwa terjadi peningkatan nilai best distance seiring dengan peningkatan nilai probabilitas mutasi. Bila dikaitkan dengan nilai rata-rata average distance maka niai probabilitas mutasi tidak memiliki pengaruh yang signifikan dan hasil dapat berbeda-beda di dalam tiap pengujian. Pengaruh nilai probabilitas mutasi terhadap nilai best distance meskipun tidak diikuti dengan pengaruh terhadap nilai average distance sudah menunjukkan bahwa proses mutasi memiliki pengaruh terhadap performance dari algoritma genetika. Mutasi tidak berpengaruh besar terhadap nilai average distance, yang merupakan nilai rata-rata dari seluruh distance yang ada pada 100 generasi, dapat terjadi karena ada kalanya pertukaran posisi bit pada proses mutasi pada beberapa generasi dapat mengurangi kualitas gen pada offspring. Namun, secara umum semakin banyak pertukaran gen, yang ditandai dengan semakin tingginya nilai probabilitas mutasi akan dapat mencapai kualitas gen terbaik pada offspring. Hal ini ditandai dengan peningkatan kualitas best distance seiring dengan peningkatan nilai probabilitas mutasi.
50
Jurnal Teknik Informatika Kaputama (JTIK), Vol 1 No 1, Januari 2017
5. KESIMPULAN 5.1 Kesimpulan Berdasarkan hasil penelitian yang dilakukan oleh peneliti maka beberapa kesimpulan yang dapat ditarik oleh peneliti adalah sebagai berikut. 1. Hasil penelitian menunjukkan bahwa proses mutasi berpengaruh terhadap performance dari algoritma genetika. Hal ini ditandai dengan terjadinya peningkatan best distance seiring dengan peningkatan nilai probabilitas mutasi. Peningkatan nilai probabilitas mutasi yang berarti peningkatan jumlah gen yang mengalami pertukaran ternyata dapat meningkatkan kualitas nilai best distance yang diperoleh. 2. Nilai average best distance tidak begitu terpengaruh dengan proses mutasi yang terjadi. Average Distance merupakan nilai rata-rata distance pada 100 generasi, dan ini menandakan bahwa dalam beberapa generasi semakin meningkatnya jumlah gen yang mengalami pertukaran, terkadang tidak dapat meningkatkan kualitas dari offspring yang dihasilkan.
5.2 Saran Adapun saran yang dapat diberikan untuk pelaksanaan penelitian di masa mendatang adalah sebagai berikut. 1. Perlunya dilakukan pengujian dengan memvariasikan jumlah generasi. Hal ini dilakukan untuk mendapatkan gambaran apakah mutasi tetap berpengaruh pada jumlah generasi yang semakin besar. 2. Perlunya memvariasikan metode crossover dan juga nilai probability crossover sehingga akan diperoleh gambaran apakah mutasi tetap berpengaruh bila diubah proses crossover yang ada.
ISSN : 2548-9704
DAFTAR PUSTAKA [1]
[2]
[3]
[4]
[5]
[6]
[7]
[8]
Biggs, N.L., Lloyd, E.K. and Wilson, R.J. 1976. Graph Theory 1736-1936. Clarendon Press: Oxford Konar, Amit. 2005. Computational Intelligence Principles, Techniques, and Applications. Springer: Calcutta, India Kumar, Rakesh and Jyotishree. 2012. Blending Roulette Wheel Selection & Rank Selection in Genetic Algorithms, International Journal of Machine Learning and Computing2(4): 365-370 Muzid, Syafiul. 2014. Dinamisasi Parameter Algoritma Genetika Menggunakan Population Resizing on Fitness Improvement Fuzzy Evalutionary Algorithm (PROFIFEA). Prosiding SNATIF 2014, pp. 471-478 Negnevitsky, Michael. 2005. Artificial Intteligence-A Guide to Intelligent Systems. Addison Wesley: Edinburg Rabunal, Juan R. and Dorado, Julian. 2006. Artificial Neural Networks in Real-Life Applications, Ideal Group Publishing: Hershey, United States of America. Schrempf, D & Hobolth, A. 2017. An alternative derivation of the stationary distribution of the multivariate neutral Wright–Fisher model for low mutation rates with a view to mutation rate estimation from site frequency data. Theoretical Population Biology114: pp. 88-94 Shaikh, Misba and Panchal, Mahesh. 2012. Solving Asymmetric Travelling Salesman Problem Using Memetic Algorithm, International Journal of Emerging Technology and Advanced Engineering 2(11): 634-639
51
Jurnal Teknik Informatika Kaputama (JTIK), Vol 1 No 1, Januari 2017
ISSN : 2548-9704
PERBANDINGAN ALGORITMA MESSAGE DIGEST-5 (MD5) DAN GOSUDARSTVENNYI STANDARD (GOST) PADA HASHING FILE DOKUMEN Marthin Benedict1, Mohammad Andri Budiman2, Dian Rachmawati3 Program Studi S1 Ilmu Komputer, Fakultas Ilmu Komputer dan Teknologi Informasi, Universitas Sumatera Utara 1 [email protected], [email protected], [email protected]
Abstrak Dokumen elektronik memiliki sifat terbuka, artinya isi dokumen dapat dibaca dan diubah dengan mudah oleh pihak-pihak yang tidak berhak. Hal tersebut menyebabkan integritas dokumen menjadi tidak terjamin. Integritas dokumen elektronik dapat dijamin dengan menggunakan teknik kriptografi, salah satunya hash function. Ada banyak algoritma yang dapat digunakan untuk hashing file atau dokumen, dua algoritma diantaranya adalah algoritma Message Digest-5 (MD5) dan algoritma Gosudarstvennyi Standard (GOST). Secara garis besar, kedua algoritma mengambil panjang isi file atau pesan dalam bit lalu dibagi menjadi blok-blok bit setelah itu pada setiap blok akan dilakukan operasi matematika sehingga menghasilkan 128 bit nilai hash pada Message Digest-5 (MD5) dan 256 bit nilai hash pada Gosudarstvennyi Standard (GOST). Setelah itu, nilai hash diubah dalam bentuk heksadesimal sehingga Message Digest-5 (MD5) akan menghasilkan 32 karakter heksadesimal nilai hash dan 64 karakter heksadesimal nilai hash pada Gosudarstvennyi Standard (GOST). Kata Kunci—Kriptografi, Fungsi Hash, Message Digest-5 (MD5), Gosudarstvennyi Standard (GOST), Dokumen Elektronik.
1. PENDAHULUAN 1.1 Latar Belakang Pada era digital ini, dokumen banyak dibuat menggunakan media elektronik disebut dengan dokumen elektronik. Dokumen elektronik adalah informasi yang direkam atau disimpan dengan menggunakan perangkat komputer atau perangkat elektronik lain untuk menampilkan, menafsirkan atau memprosesnya. Dokumendokumen tersebut dapat berupa teks, grafik atau gambar yang dihasilkan oleh perangkat lunak dan disimpan melalui media disc. Salah satu perangkat lunak yang paling banyak digunakan untuk mengolah dokumen elektronik adalah Microsoft Office Word dengan ekstensi .docx. Dokumen elektronik memiliki sifat terbuka, artinya isi dokumen dapat dibaca dan diubah dengan mudah oleh pihak-pihak yang tidak berhak. Hal tersebut menyebabkan integritas dokumen menjadi tidak terjamin. Kriptografi adalah ilmu yang bersandarkan pada teknik matematika untuk berurusan dengan keamanan informasi, seperti kerahasiaan, keutuhan data, dan otentikasi entitas [7]. Integritas dokumen elektronik dapat dijamin dengan menggunakan teknik
kriptografi, salah satunya hash function. Ada banyak algoritma yang dapat digunakan untuk hashingfile atau dokumen, dua algoritma diantaranya adalah algoritma Message Digest-5 dan algoritma Gosudarstvennyi Standard. Algoritma Message Digest-5 secara garis besar mengambil isi file atau pesan yang mempunyai panjang variabel diubah menjadi ‘hash’ atau ‘sidik jari’ yang mempunyai panjang tetap yaitu 128 bit. Sidik jari ini tidak dapat dibalik untuk mendapatkan isi pesan atau file, dengan kata lain tidak ada orang yang dapat melihat pesan dari ‘sidik jari’ Message Digest-5 tersebut. Lebih tepatnya, Message Digest-5 memroses teks masukan ke dalam blok-blok bit sebanyak 512 bit, kemudian dibagi ke dalam 32 bit sub blok sebanyak 16 buah. Keluaran dari Message Digest-5 berupa 4 buah blok, masing-masing 32 bit yang mana akan menjadi 128 bit dari byte terendah A dan tertinggin byte D yang biasa disebut nilai ‘hash’. Algoritma Gost merupakan blok cipher dari bekas Uni Sovyet, yang merupakan singkatan dari “Gosudarstvennyi Standard”. Algoritma Gost merupakan blok cipher 64 bit dengan panjang kunci 256 bit. Algoritma ini 52
mengiterasi algoritma enkripsi sederhana sebanyak 32 putaran (round). Untuk mengenkripsi pertama-tama plaintext 64 bit dipecah menjadi bagian kiri, L dan 32 bit bagian kanan, R. subkunci (subkey) untuk putaran i adalah Ki, enkripsi dilakukan sebanyan 16 putaran (round). Pada setiap putaran, blok R (kanan) tidak akan mengalami perubahan apapun karena hanya akan dipindah menjadi blok L pada putaran selanjutnya. Namun blok R akan digunakan bersamaan dengan subkey kunci internal untuk diolah pada fungsi F dan akan di XOR-kan dengan blok L (kiri). Kedua algoritma ini akan menghasilkan perbedaan waktu pemrosesan dan nilai ‘hash’ atau ‘sidik jari’ pada file dokumen (.docx), sehingga akan dapat dibandingkan algoritma mana yang lebih baik. 1.2 Rumusan Masalah Belum adanya penelitian yang membahas tentang perbandingan antara algoritma hash function Message Digest 5 (MD5) dan Gosudarstvennyi Standard (GOST) padahashingfile .docx. 1.3 Batasan Masalah 1. Jenis file yang akan dicari nilai hash-nya adalah Microsoft Office Word 2007 ke atas (*.docx). 2. Parameter pembanding yang digunakan adalah waktu hashing (milisekon) dan kompleksitas algoritma (Big Ɵ) berdasarkan waktu hashing. 3. Bahasa pemrograman yang digunakan adalah C#. 4. Tidak melakukan penelitian tentang collision. 1.4 Tujuan Penelitian Tujuan dari penelitian ini adalah untuk mencari algoritma yang lebih baik dalam hashing file dokumen dengan membandingkan waktu hashing(milisekon) dan kompleksitas (Big Ɵ) pada algoritma Message Digest 5 (MD5) dan Gosudarstvennyi Standard (GOST).
1.5 Manfaat Penelitian Manfaat dari penelitian ini adalah pembaca dapat mengetahui kegunaan dari algoritma hash function serta algoritma mana yang lebih baik antara Message Digest 5 (MD5) dan Gosudarstvennyi Standard (GOST). 2. TINJAUAN PUSTAKA 2.1 Kriptografi Kriptografi merupakan studi tentang metode untuk mengirim pesan secara rahasia sehingga hanya penerima pesan yang dituju yang dapat menghilangkan penyamaran dan membaca atau memahami isi pesan yang sebenarnya. Berdasarkan etimologinya, kriptografi terdiri dari kryptos yang berarti tersembunyi, dan graphein yang berarti menulis. Pesan asli disebut dengan plaintext, dan pesan yang disamarkan disebut ciphertext. Pesan yang disamarkan dan dikirim ke penerima disebut dengan cryptogram. Proses mengubah plaintext menjadi ciphertext disebut encryption atau enciphering, dan proses kebalikan dari mengubah ciphertext menjadi plaintext, yang dilakukan oleh penerima yang memiliki pengetahuan untuk menghapus penyamaran, disebut decryption atau deciphering. Siapapun yang terlibat dalam kriptografi disebut cryptographer[5]. Kriptografi (keamanan kriptografi) adalah salah satu cara yang efektif untuk keamanan data [2]. 2.2 Fungsi Hash (Hash Function) Fungsi hash adalah fungsi yang menerima masukan string yang panjangnya sembarang dan mengkonversinya menjadi string keluaran yang panjangnya tetap (fixed) (umumnya berukuran jauh lebih kecil daripada ukuran string semula)[6]. Fungsi hash dapat diketahui oleh siapa pun, tak terkecuali, sehingga semuanya dapat memeriksa keutuhan dokumen atau pesan tertentu. Tak ada algoritma rahasia, dan umumnya tak ada pula kunci rahasianya. Jaminan dari keamanan nilai hash berangkat dari kenyataan bahwa hampir tidak ada dua pre-image yang memiliki nilai hash yang sama. Inilah yang disebut dengan sifat collision free dari suatu fungsi hash yang baik. Selain itu, sangat sulit untuk membuat suatu pre-image jika hanya diketahui nilai hash-nya saja. 53
Berikut diuraikan sifat-sifat fungsi hash kriptografi [1]. 1. Tahan pre-image (pre-image resistent): Bila diketahuinilai hashh, sulit didapatkan (secara komputasi tidak layak) m dimana h = hash(m). 2. Tahan pre-image kedua (second preimage resistant): Bila diketahui input m1, sulit dicari input m2 (tidak sama dengan m1) yang menyebabkan hash(m1) = hash(m2). 3. Tahan tumbukan (collision-resistant): Sulit dicari dua input yang berbeda, m1 dan m2, yang menyebabkan hash(m1) = hashi(m2).
Selain itu, fungsi hash mempunyai sifat sebagai berikut. 1. Fungsi H dapat diterapkan pada blok data berukuran berapa saja. 2 H menghasilkan nilai (h) dengan panjang tetap (fixed-length output). 3. H(x) mudah dihitung untuk setiap nilai x yang diberikan. 4. Untuk setiap h yang dihasilkan, sangat sulit dikembalikan nilai x sehingga H(x) = h. 5. Untuk setiap x yang diberikan, sangat sulit mencari y ≠x sedemikian sehingga H(y) = H(x). 6.Sangat sulit mencari pasangan x dan y sedemikian sehingga H(x) = H(y). Skema fungsi hash ditunjukkan pada Gambar 1
Gambar 2.1. Fungsi Hash [6] 2.3 Landasan Matematika 1. Logika Matematika dan Operator Logika Logika matematika berisi pernyataanpernyataan (dapat tunggal maupun gabungan). Pernyataan mempunyai sifat dasar yaitu dapat bernilai benar (pernyataan benar) atau bernilai salah (pernyataan salah), tetapi tidak mungkin memiliki sifat kedua-duanya. Kebenaran dan kesalahan sebuah pernyataan dinamakan nilai kebenaran dari pernyataan tersebut. Operator
logika adalah operator yang digunakan untuk membandingkan dua kondisi logika, yaitu logika benar dan logika salah. Berikut adalah operator logika yang digunakan pada algoritma Message Digest 5 (MD5). NOT () :Bernilai kebalikan dari objek AND (˄) :Bernilai benar jika kedua objek bernilai benar OR (˅) :Bernilai benar jika salah satu objek bernilai benar XOR ( :Bernilai benar jika diantara objek saling berlawanan nilainya Tabel nilai operator logika dapat dilihat pada Tabel 2.1 1 bernilai benar 0 bernilai salah TABEL 2.1 Nilai Operator NOT, AND, OR dan XOR A
B
NOT (A)
A AND B
A OR B
A XOR B
1 1 0 0
1 0 1 0
0 0 1 1
1 0 0 0
1 1 1 0
0 1 1 0
2. Konversi Bilangan Binari ke Bilangan Heksadesimal Konversi dari bilangan binari ke bilangan heksadesimal dapat dilakukan dengan mengkonversikan tiap-tiap empat buah digit binari ke bilangan desimal lalu konversikan bilangan desimal tersebut ke bilangan heksadesimal [4]. Dengan nilai desimal dari setiap digitnya sebagai berikut. Biner = 1111 ↓↓↓↓ Desimal = 8421 Lalu dari bilangan desimal konversikan ke bilangan hexadesimal, dimana: Desimal = 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ↓↓↓↓↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ Heksadesimal=0 12 3 4 5 6 7 8 9 A B C D E F Misalnya bilangan biner 11010100 dapat dikonversikan ke heksadesimal dengan cara: 1101→ D 0100→ 4 54
Jadi 11010100→ D4 Operasi Modulo (mod) Operasi modulus adalah sebuah operasi yang menghasilkan sisa bagi positif dari suatu bilangan bulat terhadap bilangan bulat lain. Dalam bahasa pemrograman operasi ini umumnya dilambangkan dengan simbol %, mod atau modulo. Misalkan a dan m bilangan bulat (m > 0). Operasi a mod m (dibaca “a modulo m”) memberikan sisa jika a dibagi dengan m. 3.
Contoh hasil operasi dengan operator modulo: (1) 20 mod 5 = 0 (20 = 5 × 4 + 0) (2) 19 mod 3 = 1 (19 = 3 × 6 + 1) (3) 0 mod 4 = 0 (0 = 4 × 0 + 0) (4) 7 mod 9 = 7 (7 = 9 × 0 + 7) (5) -38 mod 7 = 4 (-38 = 7(-6) + 4) (6) -12 mod 3 = 0 (-12 = 3(-4) + 0) Penjelasan untuk -38 mod 7 = -3, karena hasil modulo harus positif maka tambahkan 7 ke hasil modulo sehingga-3 + 7 = 4.
Algoritma GOSTberasal dari Russia, dan ditetapkan dalam standar GOST R 34.11-94. Salah satu tujuan GOSTadalah memperluas penerapan teknologi informasi saat membuat, mengolah dan menyimpan dokumen, untuk menjaga kerahasiaan, keutuhan dan keaslian isi dokumen tersebut. Algoritma GOST memiliki jumlah proses sebanyak 32 round, panjang kunci 256 bit dan menggunakan 64 bitblock cipher dengan panjang nilai hash 256 bit [8]. Metoda GOST juga menggunakan 8 buah SBox yang permanen dan operasi XOR serta Rotate Left Shift. Pesan dengan blok-blok yang berukuran 256 akan diproses oleh fungsi GOST hash menjadi nilai hash 256 bit. Jika panjang pesan tidak mencapai kelipatan 256, pesan akan di-padding seminimal mungkin hingga kondisi tercapai (panjang pesan sama dengan kelipatan 256 bit) [9]. H0 = IV (1) Hi = f(Hi−1, Mi) for 0 < i ≤ t
3 Algoritma Message Digest 5(MD5) MD5 adalah fungsi hash satu arah yang dibuat oleh Ronald Rivest pada tahun 1991. MD5 merupakan fungsi hash satu arah yang merupakan perbaikan dari MD4 namun lebih kompleks dari MD4, keduanya mirip dari segi model dan juga menghasilkan 128-bithash[8]. MD5 memproses teks masukan ke dalam blokblok bit sebanyak 512 bit, kemudian dibagi ke dalam 32 bit sub blok sebanyak 16 buah. Keluaran dari MD5 berupa 4 buah blok yang masing-masing 32 bit digabung menjadi 128 bit nilai hash[3]. algoritma MD5 diperlihatkan pada Gambar 2.2
Gambar 2.2 Pembuatan Message Digest dengan Algoritma MD5[6] 4 Algoritma Gosudarstvennyi Standard (GOST)
(2) Ht+1 = f(Ht, |M|) (3) Ht+2 = f(ht+1, ∑ ) = h , (4)
Gambar 2.3 Struktur Fungsi Gost Hash[9] Setelah di-padding, pesan M akan dibagi menjadi tblok pesan (M = M1||M2||M3||..||Mt). Nilai hash yang dihasilkan akan diproses seperti pada Gambar 2.3 Dimana ∑ = M1 M2 .. Mt, dan merupakan hasil modulo 2256 setelah penjumlahan. IV adalah initialvalue yang telah didefiniskan sebelum proses dilakukan dan |M| merepresentasikan sebagai bit panjang yang ditambahkan diakhir pesan. Seperti yang terlihat pada persamaan (4), checksum (∑) merupakan hasil modulo dari penjumlahan semual blok-blok pesan. fungsi GOST hash. Penggunaan komputasi checksum ini merupakan bagian penting yang digunakan 55
pada fungsi GOST hash dibandingkan MD5 dan SHA-1. Fungsi kompresi pada fungsi f, pada dasarnya merupakan gabungan dari tiga bagian: stateupdatetransformation, thekeygeneration dan theoutputtransformation.
bahasa standar pemodelan yang digunakan dan berfungsi untuk merancang sistem. Jenis UML yang digunakan pada penelitian ini terdiri dari use case diagram, activity diagram,sequence diagram, dan flowchart sistem. 3.3 Use Case Diagram
5 Kompleksitas Algoritma Tergantung dari banyaknya input, beberapa algoritma dapat selesai diproses dalam waktu kurang dari satu detik. Namun, algoritma yang kompleks dapat memerlukan waktu beberapa menit hingga berhari-hari untuk menyelesaikan prosesnya. Algoritma bekerja berdasarkan input yang dimasukkan user. Ada dua macam kompleksitas algoritma, yaitu: 1. Kompleksitas waktu, T(n), diukur dari jumlah tahapan komputasi yang dibutuhkan untuk menjalankan algoritma sebagai fungsi dari ukuran masukan n. 2. Kompleksitas ruang, S(n), diukur dari memori yang digunakan oleh struktur data yang terdapat di dalam algoritma sebagai fungsi dari ukuran masukan n. Tergantung isi input, waktu proses dapat bervariasi: Best Case : Omega dilambangkan (Ω) Average Case : Theta dilambangkan (Ɵ) Worst Case : Big-O dilambangkan (O) 3. ANALISIS DAN PERANCANGAN SISTEM 3.1 Analisis Masalah Pada analisis masalah, sebab dan akibat diidentifikasi sehingga nantinya sistem yang akan dibangun dapat bekerja sesuai dengan tujuan utama sistem tersebut dibangun. Permasalahan yang ingin dipecahkan pada penelitian ini adalah untuk mengetahui algoritma mana yang lebih baik antara algoritma Message Digest-5 (MD5) dan algoritma Gosudarstvennyi Standard (Gost) pada hashingfile dokumen. Hashingfile menggunakan algoritma Message digest-5 (MD5) dan Gosudarstvennyi Standard (Gost) dipengaruhi oleh setiap bit pada file yang dilakukan proses hashing. Jenis file yang digunakan yaitu *.docx. 3.2 Perancangan Sistem Penulis menggunakan Unified Modeling Language (UML) pada bagian ini sebagai
Use case diagram merupakan gambaran proses pada sistem dari sudut pandang user. Use case diagram untuk sistem yang akan dibangun dapat dilihat pada Gambar 3.1
Gambar 3.1 Use Case Diagram Use Case pada Gambar 3.1 di atas terlihat di mana user melakukan proses hashing file dokumen pada menu hash. Proses yang ada pada menu hash yaitu, pertama-tama user menginput atau membuka file dokumen di mana pada penelitian ini ekstensi yang digunakan adalah *.docx. Setelah menginput file dokumen selanjutnya user melakukan proses hashing dengan algoritma Message Digest-5 (MD5) dan Gosudarstvennyi Standard (GOST) namun tidak dalam waktu yang bersamaan untuk mencegah ketidakakuratan waktu hashing atau running time. Setelah itu nilai hash dari kedua algoritma akan ditampilkan berikut dengan waktu proses hashing pada masing-masing algoritma. Spesifikasi Use Case dapat diuraikan sebagai berikut. 3.4 Activity Diagram Activity diagram merupakan gambaran alir aktivitas dalam sistem yang akan dibangun, bagaimana masing-masing alir berawal, decision yang mungkin terjadi, dan bagaimana mereka berakhir. Activity diagram juga dapat menggambarkan proses paralel yang mungkin terjadi pada beberapa eksekusi. Activity 56
diagram pada sistem yang akan dibangun dapat dilihat pada Gambar 3.2
Gambar 3.2 Activity Diagram proses Hash Gambar 3.4 Flowchart Sistem
3.5 Sequence Diagram Sequence Diagram adalah bentuk pemodelan sistem yang menggambarkan hubungan antar objek atau objek yang saling berinteraksi melalui pesan dalam eksekusi. Sequence Diagram untuk sistem yang akan dibangun pada penelitian ini adalah sebagai berikut. 3.6 Sequence Diagram pada Proses Hash Sequence diagram pada Proses Hash dapat dilihat pada Gambar 3.3
IMPLEMENTASI DAN PENGUJIAN SISTEM 4.1 Implementasi 4.
Pada tahap ini sistem dibangun sesuai dengan fungsi utamanya menggunakan bahasa pemrograman C# dan IDE visual studio 2015. Tampilan sistem diberikan nuansa hijau dengan alasan, agar user merasa nyaman melihat tampilan sistem dan disesuaikan dengan warna logo Universitas Sumatera Utara. Terdapat tiga halaman tampilan pada sistem yang dibangun, yakni halaman Home, halaman Hash, dan halaman About. 4.2 Pengujian
Gambar 3.3 Sequence Diagram pada Proses Hash 3.7 Flowchart Sistem Flowchart dari sistem yang akan dibangun dapat dilihat pada Gambar 3.4 berikut.
Pengujian terhadap aplikasi perbandingan algoritma Message Digest-5 (MD5) dan Gosudarstvennyi Standard (GOST) pada file dokumen yang telah dibangun dilakukan dengan menguji kinerja atau running time tiap metode dengan beberapa file dokumen yang memiliki besar ukuran file berbeda. File yang sama akan diuji satu persatu dengan metode Message Digest 5 (MD5) dan Gosudarstvennyi Standard (GOST), kemudian hasilnya akan dibandingkan. 1.
Pengujian Metode Message Digest-5 (MD5)
Pengujian dengan metode Message Digest 5 (MD5) akan dilakukan dengan menggunakan tiga sample dan pengujian setiap sample dilakukan lima kali percobaan yang akan menghasilkan lima nilai running time berbeda. 57
Setelah melakukan lima kali percobaan, ratarata dari kelima nilai running time akan didapat dengan menekan button rata-rata. 2.
Percobaan Pertama Pada Pengujian Metode Message Digest 5 (MD5)
Hasil yang diperoleh dari pengujian pertama dengan metode Message Digest 5 (MD5) menggunakan file sample1.docx pada aplikasi yang telah dibangun adalah sebagai berikut: Ukuran File = 12532 bytes Hash = FF7FE44B5F83C897271C2B69EB1DF509 Pada percobaan pertama didapatkan nilai running time 3,7422 milisekon Pada percobaan kedua didapatkan nilai running time 2,2236 milisekon Pada percobaan ketiga didapatkan nilai running time 1,7498 milisekon Pada percobaan keempat didapatkan nilai running time 1,9448 milisekon Pada percobaan kelima didapatkan nilai running time 1,8931 milisekon Rata-rata nilai running time dari lima percobaan adalah 2,3107 milisekon 3.
Percobaan Kedua Pada Pengujian Metode Message Digest 5 (MD5)
Hasil yang diperoleh dari pengujian pertama dengan metode Message Digest 5 (MD5) menggunakan file sample2.docx pada aplikasi yang telah dibangun adalah sebagai berikut: Ukuran File = 130936 bytes Hash = E29D771A455AAA9AF4B822C5B6781A2F Pada percobaan pertama didapatkan nilai running time 10,731 milisekon Pada percobaan kedua didapatkan nilai running time 9,6328 milisekon Pada percobaan ketiga didapatkan nilai running time 11,4293 milisekon Pada percobaan keempat didapatkan nilai running time 12,5219 milisekon Pada percobaan kelima didapatkan nilai running time 10,3705 milisekon Rata-rata nilai running time dari lima percobaan adalah 10,9371 milisekon
4.
Percobaan Ketiga Pada Pengujian Metode Message Digest 5 (MD5)
Hasil yang diperoleh dari pengujian pertama dengan metode Message Digest 5 (MD5) menggunakan file sample3.docx pada aplikasi yang telah dibangun adalah sebagai berikut: Ukuran File = 1303809 bytes Hash = 3EC2BA2B64E24FC802C7878B5857F6F1 Pada percobaan pertama didapatkan nilai running time 103,0555 milisekon Pada percobaan kedua didapatkan nilai running time 90,1812 milisekon Pada percobaan ketiga didapatkan nilai running time 86,2589 milisekon Pada percobaan keempat didapatkan nilai running time 99,6169 milisekon Pada percobaan kelima didapatkan nilai running time 90,0011 milisekon Rata-rata nilai running time dari lima percobaan adalah 93,82272 milisekon 5. Grafik Fungsi Running Time Rata-Rata Metode MD5 Grafik fungsi running time rata-rata percobaan 1, 2, dan 3 metode MD5 dapat dilihat pada Gambar 4.1 berikut.
Gambar 4.1 Grafik Running Time Rata-Rata Percobaan 1, 2, dan 3 Metode MD5 Pada grafik Gambar 4.1 terlihat running time rata-rata metode MD5 percobaan 1, 2, dan 3 berbanding lurus dengan ukuran file yang diproses. Dimana running time akan mengalami penambahan berdasarkan ukuran file yang diproses. Maka perhitungan jumlah byte yang diproses per milisekon pada setiap percobaan dapat dilihat pada Tabel 4.1 berikut.
58
TABEL 4.1 Tabel Bytes per Milisekon Pada Metode MD5 Running Per Ukuran Time Ratabytes per cob File Rata milisekon aan (bytes) (milisekon) 1 12532 2.3107 5423.464751 2
130936
10.9371
11971.72925
3
1303809
93.82272
13896.51675
rata-rata
10430.57025
Pada Tabel 4.1 terlihat ukuran file percobaan pertama yang diproses setiap milisekon adalah 5423,464751 bytes, lalu pada percobaan ke dua ukuran file yang diproses setiap milisekon adalah 11971,72925 bytes, dan pada percobaan ke tiga ukuran file yang diproses setiap milisekon adalah 13896,51675 bytes. Sehingga didapatkan rata-rata ukuran file yang diproses setiap milisekon pada percobaan satu, dua, dan tiga adalah 10430,57025 bytes. 6. Pengujian Metode Standard (GOST)
Gosudarstvennyi
Pada pengujian dengan metode Gosudarstvennyi Standard sama seperti metode Message Digest-5 (MD5) dilakukan dengan menggunakan tiga sample dengan sample yang sama seperti pada pengujian metode Message Digest-5 (MD5) dan pengujian setiap sample dilakukan lima kali percobaan yang akan menghasilkan lima nilai running time berbeda. Setelah melakukan lima kali percobaan, ratarata dari kelima nilai running time akan didapat dengan menekan button rata-rata. 7. Percobaan Pertama Pada Pengujian Metode Gosudarstvennyi Standard (GOST) Hasil yang diperoleh dari pengujian pertama dengan metode Gosudarstvennyi Standard (GOST) menggunakan file sample1.docx pada aplikasi yang telah dibangun adalah sebagai berikut Ukuran File = 12532 bytes Hash = FC6E81907B9B36F774DE273C69A38C15889 37373071F6C15A75583889 56D66B3 Pada percobaan pertama didapatkan nilai running time 32.6413 milisekon
Pada percobaan kedua didapatkan nilai running time 23,3573 milisekon Pada percobaan ketiga didapatkan nilai running time 23.0152 milisekon Pada percobaan keempat didapatkan nilai running time 22.9263 milisekon Pada percobaan kelima didapatkan nilai running time 23.2804 milisekon Rata-rata nilai running time dari lima percobaan adalah 25.0441 milisekon 8. Percobaan Kedua Pada Pengujian Metode Gosudarstvennyi Standard (GOST) Hasil yang diperoleh dari pengujian kedua dengan metode Gosudarstvennyi Standard (GOST) menggunakan file sample2.docx pada aplikasi yang telah dibangun adalah sebagai berikut: Ukuran File = 130936 bytes Hash = EB394A20DC0C11B816FF2A7A99D462D5D B93B444A291C90A8CBB1 D47E268C057 Pada percobaan pertama didapatkan nilai running time 250.1703 milisekon Pada percobaan kedua didapatkan nilai running time 246.1321 milisekon Pada percobaan ketiga didapatkan nilai running time 252.0027 milisekon Pada percobaan keempat didapatkan nilai running time 242.2252 milisekon Pada percobaan kelima didapatkan nilai running time 241.2921 milisekon Rata-rata nilai running time dari lima percobaan adalah 246.36448 milisekon 9. Percobaan Ketiga Pada Pengujian Metode Gosudarstvennyi Standard (GOST) Hasil yang diperoleh dari pengujian ketiga dengan metode Gosudarstvennyi Standard (GOST) menggunakan file sample3.docx pada aplikasi yang telah dibangun adalah sebagai berikut: Ukuran File = 1303809 bytes Hash = 074C240FB86FE320AF05765A60FAADA8C BA0C1E472F33021FFDFD8 19269A4C57 Pada percobaan pertama didapatkan nilai running time 2459.191 milisekon Pada percobaan kedua didapatkan nilai running time 2458.1591 milisekon 59
Pada percobaan ketiga didapatkan nilai running time 2438.5171 milisekon Pada percobaan keempat didapatkan nilai running time 2512.4033 milisekon Pada percobaan kelima didapatkan nilai running time 2505.9575 milisekon Rata-rata nilai running time dari lima percobaan adalah 2474.8456 milisekon 10.Grafik Fungsi Running Time Rata-Rata Metode GOST Grafik fungsi running time rata-rata percobaan 1, 2, dan 3 metode GOST dapat dilihat pada Gambar 4.2 berikut.
Gambar 4.2 Grafik Running Time Rata-Rata Percobaan 1, 2, dan 3 Metode GOST Pada grafik Gambar 4.2 sama seperti metode MD5 running time rata-rata metode GOST percobaan 1, 2, dan 3 berbanding lurus dengan ukuran file yang diproses. Dimana running time akan mengalami penambahan berdasarkan ukuran file yang diproses. Maka perhitungan jumlah byte yang diproses per milisekon pada setiap percobaan dapat dilihat pada Tabel 4.2 berikut. TABEL 4.2 Tabel Bytes per Milisekon Pada Metode GOST
1
12532
Running Time RataRata (milisekon) 25.0441
2
130936
246.36448
531.4727188
3
1303809
2474.8456
526.8243805
rata-rata
519.5647995
Perco baan
Ukuran File (bytes)
bytes per milisekon 500.3972992
Pada Tabel 4.2 terlihat ukuran file percobaan pertama yang diproses setiap milisekon adalah 500,3972992 bytes, lalu pada percobaan ke dua
ukuran file yang diproses setiap milisekon adalah 531,4727188 bytes, dan pada percobaan ke tiga ukuran file yang diproses setiap milisekon adalah 519,5647995 bytes. Sehingga didapatkan rata-rata ukuran file yang diproses setiap milisekon pada percobaan satu, dua, dan tiga adalah 519,5647995 bytes. 11.Perbandingan Running Time Rata-Rata Metode Message Digest-5 (MD5) dan Gosudarstvennyi Standard (GOST) Setelah dilakukan pengujian terhadap masing-masing metode Message Digest-5 (MD5) dan Gosudarstvennyi Standard (GOST) pada tiga sample dokumen elektronik yaitu microsoft word (*.docx) dengan ukuran file yang berbeda sebanyak lima kali percobaan setiap sample dan didapatlah nilai rata-rata running time pada setiap sample. Setelah didapat nilai rata-rata running time setiap sample pada kedua metode hashing, maka dibuatlah grafik garis untuk kedua metode. Agar lebih terlihat perbandingan running time rata-rata pada kedua metode maka nilai running time rata-rata tersebut digabungkan sehingga diperoleh penggabungan grafik pada Gambar 4.3 berikut.
Gambar 4.3 Grafik Perbandingan Running Time Rata-Rata Metode MD5 dan Metode GOST Grafik pada Gambar 4.3 memperlihatkan perbedaan running time rata-rata metode Message Digest-5 (MD5) dan metode Gosudarstvennyi Standard (GOST) pada ketiga sample file dokumen dengan ekstensi file (*.docx) yang telah dilakukan sebelumnya. 12.Kompleksitas Algoritma Message Digest-5 (MD5) 60
Perhitungan Kompleksitas algoritma Message Digest-5 dapat dilihat pada Tabel 4.3 berikut. TABEL 4.3 Kompleksitas Algoritma Message Digest-5 (MD5) Code varint[64] s, K s[ 0..15] := { 7, 12, 17, 22, 7, 12, 17, 22, 7, 12, 17, 22, 7, 12, 17, 22 } s[16..31] := { 5, 9, 14, 20, 5, 9, 14, 20, 5, 9, 14, 20, 5, 9, 14, 20 } s[32..47] := { 4, 11, 16, 23, 4, 11, 16, 23, 4, 11, 16, 23, 4, 11, 16, 23 } s[48..63] := { 6, 10, 15, 21, 6, 10, 15, 21, 6, 10, 15, 21, 6, 10, 15, 21 } for i from 0 to 63 K[i] := floor(232 × abs(sin(i + 1))) end for
C C1
# 1
C# C1
C1
1
C1
C1
1
C1
((not D) and C) g := (5×i + 1) mod 16 else if 32 ≤ i ≤ 47 F := B xor C xor D g := (3×i + 5) mod 16 else if 48 ≤ i ≤ 63 F := C xor (B or (not D)) g := (7×i) mod 16
C1
16N
16C1N
C4
16N
16C4N
C1
16N
16C1N
C1
16N
16C1N
C4
16N
16C4N
C1
16N
16C1N
C1
16N
16C1N
dTemp := D
C1
64N
64C1N
D := C
C1
64N
64C1N
C := B B := B + leftrotate((A + F + K[i] + M[g]), s[i]) A := dTemp
C1
64N
64C1N
C1
64N
64C1N
C1
64N
64C1N
end for
C3
N
C3N
C1
1
C1
C1
1
C1
C2
64
64C2
C1
64
64C2
a0 := a0 + A
C1
N
C1N
C3
1
C3
b0 := b0 + B
C1
N
C1N
varint a0 := 0x67452301
C1
1
C1
c0 := c0 + C
C1
N
C1N
varint b0 := 0xefcdab89
C1
1
C1
d0 := d0 + D
C1
N
C1N
varint c0 := 0x98badcfe
C1
1
C1
C3
1
C3
varint d0 := 0x10325476 append "1" bit to message append "0" bit until message length in bits ≡ 448 (mod 512) append original length in bits mod (2 pow 64) to message for each512-bit chunk of message break chunk into sixteen 32-bit words M[j], 0 ≤ j ≤ 15 varint A := a0
C1
1
C1
C1
1
C1
C4
1
C4
C5
1
C5
C6
1
C6
C4
1
C4
C4
1
C4
C2
N
C2N
C1
N
C1N
C1
N
C1N
varint B := b0
C1
N
C1N
varint C := c0
C1
N
C1N
varint D := d0
C1
N
C1N
for i from 0 to 63
C2
64N
64C2N
if 0 ≤ i ≤ 15 then F := (B and C) or ((not B) and D) g := i
C4
16N
16C4N
C1
16N
16C1N
C1
16N
16C1N
else if 16 ≤ i ≤ 31
C4
16N
16C4N
C1
16N
16C1N
F := (D and B) or
end for varchar digest[16] := a0 append b0 append c0 append d0 leftrotate (x, c) return (x << c) binary or (x >> (32-c));
∑ = T(n) = 10C1 + 128C2 + 2C3 + 3C4 + C2N + 9C1N + 64C2N + 4(16C4N) + 8(16C1N) + 5(64C1N) + C3N + C5 + C6 = 10C1 + 128C2 + 2C3 + 3C4 + C2N + 9C1N + 64C2N + 64C4N + 128C1N + 320C1N + C3N + C5 + C6 = Ɵ(N) 13.Kompleksitas Algoritma Gosudarstvennyi Standard (GOST) Perhitungan Kompleksitas algoritma Gosudarstvennyi Standard (GOST) dapat dilihat pada Tabel 4.4 berikut.
61
TABEL 4.4 Kompleksitas Algoritma Gosudarstvennyi Standard (GOST) code sbox = (10, 4, 5, 6, 8, 1, 3, 7, 13, 12, 14, 0, 9, 2, 11, 15), (5, 15, 4, 0, 2, 13, 11, 9, 1, 7, 6, 3, 12, 14, 10, 8), (7, 15, 12, 14, 9, 4, 1, 0, 3, 11, 5, 2, 6, 10, 8, 13), (4, 10, 7, 12, 0, 15, 2, 8, 14, 1, 6, 5, 13, 11, 9, 3), (7, 6, 4, 11, 9, 12, 2, 10, 1, 8, 0, 14, 15, 13, 3, 5), (7, 6, 2, 4, 13, 9, 15, 0, 10, 1, 5, 11, 8, 14, 12, 3), (13, 14, 4, 1, 7, 0, 5, 10, 3, 12, 8, 15, 6, 2, 9, 11), (1, 3, 10, 9, 5, 11, 4, 15, 8, 6, 7, 14, 13, 0, 2, 12),
k3 = P(w)
C1
1
C1
u = strxor(A(u), C4)
C1
1
C1
v = A(A(v))
C1
1
C1
w = strxor(u, v)
C1
1
C1
C1
1
C1
C1
1
C1
C1
1
C1
C1
1
C1
C1
1
C1
C1
1
C1
C
#
C#
C1
1
C1
C1
1
C1
C1
1
C1
C1
1
C1
C1
1
C1
C1
1
C1
C1
1
C1
C1
1
C1
BLOCKSIZE = 32
C1
1
C1
s = b''.join((s4, s3, s2, s1))
C1
1
C1
C2 = 32 * b'\x00' C3 = hexdec(b'ff00ffff000000ffff000 0ff00ffff0000ff00ff00ff00ffff00f f00ff00ff00')
C1
1
C1
x=s
C1
1
C3
12
C1
1
C1
C1
12
C4 = 32 * b'\x00'
C1
1
C1
C1
12
digest_size = 32 A(x): x4, x3, x2, x1 = x[0:8], x[8:16], x[16:24], x[24:32] return b''.join((strxor(x1, x2), x4, x3, x2))
C1
1
C1
C1
1
C1
x = _chi(x)
C1
12
C2
1
C2
x = strxor(hin, x)
C1
12
P(x): return bytearray(( x[0], x[8], x[16], x[24], x[1], x[9], x[17], x[25], x[2], x[10], x[18], x[26], x[3], x[11], x[19], x[27], x[4], x[12], x[20], x[28], x[5], x[13], x[21], x[29], x[6], x[14], x[22], x[30], x[7], x[15], x[23], x[31],
C2
1
C2
for _ in range(61):
C3
61
C2
1
C2
C1
61
C2
1
C2
C2
61
C2
1
C2
l=0
C1
1
C1 12C 3 12C 1 12C 1 12C 1 12C 1 61C 3 61C 1 61C 1 C1
checksum = 0
C1
1
C1
C2
1
C2
h = 32 * b'\x00'
C1
1
C1
u = hin
C1
1
C1
C1
1
v=m
C1
1
C1
C3
N
w = strxor(hin, m)
C1
1
C1
k1 = P(w)
C1
1
C1
C1
N
u = strxor(A(u), C2)
C1
1
C1
C4
N
v = A(A(v))
C1
1
C1
C1 C3 N C1 N C4 N
w = strxor(u, v)
C1
1
C1
C1
N
k2 = P(w)
C1
1
C1
u = strxor(A(u), C3)
C1
1
C1
C5
N
v = A(A(v))
C1
1
C1
w = strxor(u, v)
C1
1
C1
C1
N
k4 = P(w) h4, h3, h2, h1 = hin[0:8], hin[8:16], hin[16:24], hin[24:32] s1 = ns2block(encrypt(sbox, k1[::-1], block2ns(h1[::-1])))[::1] s2 = ns2block(encrypt(sbox, k2[::-1], block2ns(h2[::-1])))[::1] s3 = ns2block(encrypt(sbox, k3[::-1], block2ns(h3[::-1])))[::1] s4 = ns2block(encrypt(sbox, k4[::-1], block2ns(h4[::-1])))[::1]
for _ in range(12): x = _chi(x) x = strxor(x, m)
x = _chi(x) return x
m = self.data for i in xrange(0, len(m), BLOCKSIZE): part = m[i:i + BLOCKSIZE][::-1] l += len(part) * 8 checksum = addmod(checksum, int(hexenc(part), 16), 2 ** 256) if len(part) < BLOCKSIZE: part = b'\x00' * (BLOCKSIZE - len(part)) + part
C1 N C5 N C1 N 62
h = _step(h, part, self.sbox) h = _step(h, 24 * b'\x00' + pack(">Q", l), self.sbox) checksum = hex(checksum)[2:].rstrip("L") if len(checksum) % 2 != 0: checksum = "0" + checksum checksum = hexdec(checksum) checksum = b'\x00' * (BLOCKSIZE - len(checksum)) + checksum h = _step(h, checksum, self.sbox) return h
C1 N C1 N
C1
N
C1
N
C1
1
C1
C5
1
C5
C1
1
C1
C1
1
C1
C1
1
C1
C1
1
C1
C2
1
C2
∑ = T(n) = 46C1 + 7C2 + 12C3 + 4(12C1) + 61C3 + 2(61C1) + C3N + 5C1N + C4N + C5N + C5 = 46C1 + 7C2 + 12C3 + 48C1 + 61C3 + 122C1 + C3N + 5C1N + C4N + C5N + C5 = Ɵ(N) 5. KESIMPULAN DAN SARAN
5.1 Kesimpulan Berdasarkan hasil studi literatur, analisis, perancangan, implementasi, dan pengujian sistem serta kompleksitas yang telah didapat, maka kesimpulan yang didapat adalah sebagai berikut: 1. Hasil hash dari algoritma Message Digest-5 (MD5) dan Gosudarstvennyi Standard memiliki panjang karakter yang berbeda, dimana panjang hash pada MD5 berjumlah 32 karakter hexadesimal sedangkan GOST memiliki panjang hash berjumlah 64 karakter hexadesimal. 2. Nilai running time pada algoritma Message Digest-5 (MD5) lebih kecil dibandingkan dengan nilai running time algoritma Gosudarstvennyi Standard (GOST). Artinya proses pada algoritma MD5 lebih cepat dibandingkan proses pada algoritma GOST. 3. Kompleksitas big Ɵ algoritma Message Digest-5 (MD5) adalah Ɵ(N) dan big Ɵ algoritma Gosudarstvennyi Standard (GOST) adalah Ɵ(N). Kompleksitas kedua algoritma sama-sama Ɵ(N) yang artinya bernilai linier.
5.2 Saran Saran-saran yang untuk penelitian maupun pengembangan berikutnya adalah: 1. Sistem ini membandingkan file dokumen, dimana ukuran file tidak terlalu besar. Sebaiknya penelitian selanjutnya menggunakan file dengan ukuran data yang lebih besar agar lebih terlihat perbandingan running time-nya. 2. Sistem ini menggunakan dua algoritma yaitu Message Digest-5 (MD5) dan Gosudarstvennyi Standard (GOST), jadi untuk pengembangan selanjutnya sebaiknya menggunakan tiga atau lebih algoritma untuk dapat melihat perbandingan kedua algoritma hash dengan algoritma hash yang lain. DAFTAR PUSTAKA [1] Asmayunita. 2014. Aplikasi Otentikasi Dokumen Menggunakan Algoritma Gost Digital Signatur. Universitas Sumatera Utara. [2] Dolmatov, V. 2010. GOST R 34.11-94: Hash Function Algorithm. (Online) https://tools.ietf.org/html/rfc5831 (8 Mei 2016). [3] Harahap, R. 2010. Sistem Pengamanan Data Teks Menggunakan Algoritma Message Digest-5. Universitas Sumatera Utara. [4] Hartono, J. 1999. Pengenalan Komputer. Andi: Yogyakarta. [5] Mollin, R. A. 2007. An Introduction to Cryptography Second Edition. Chapman & Hall/CRC: Florida. [6] Munir, R. 2006. Kriptografi. Informatika, Bandung. [7] Sadikin, R. 2012. Kriptografi untuk Keamanan Jaringan. Yogyakarta: Penerbit Andi. [8] Schneier, B. 1996. Applied Cryptography: Protocols, Algorithms, and Sorce Code in C Second Edition. Wiley: New York. [9] Wagner, D. (Editor). 2008. Cryptanalysis of the GOST Hash Function. In Mendel et al. Advance in Cryptology – CRYPTO 2008. pp. 162 – 178. Springer: New York.
63