Sha256 Vs md5 PDF
Sha256 Vs md5 PDF
SKRIPSI
Diajukan untuk melengkapi tugas akhir dan memenuhi syarat mencapai gelar Sarjana
Komputer
PERSETUJUAN
Diluluskan di
Medan, Oktober 2017
Komisi Pembimbing :
Pembimbing 2 Pembimbing 1
Diketahui/Disetujui oleh
Program Studi S1 Ilmu Komputer
Ketua,
PERNYATAAN
SKRIPSI
Saya mengakui bahwa skripsi ini adalah hasil karya saya sendiri, kecuali beberapa kutipan
dan ringkasan yang masing-masing telah disebutkan sumbernya.
PENGHARGAAN
Segala pujian dan syukur hanya bagi Tuhan Yesus Kristus yang telah memberkati dan
memelihara kehidupan ini dan karena kasi setia dan anugerah-Nya prnulis dapat
menyelesaikan penulisan skripsi ini, sebagai syarat untuk memperoleh gelar Sarjana
Komputer, pada Program Studi s1 Ilmu Komputer Fakultas Ilmu Komputer dan Teknologi
Informasi Universitas Sumatera Utara.
Pada pengerjaan skripsi ini yang berjudul “Perbandingan Algoritma Message Digest
(MD5) dan SHA256 pada Hashing File Dokumen” penulis menyadari bahwa banyak pihak
yang turut membantu, baik keluarga, sahabat, dan pihak-pihak lain yang memotivasi dalam
pengerjaannya. Dalam kesempatan ini, penulis mengucapkan terima kasih kepada:
1. Bapak Prof. Dr. Runtung, S.H., M.Hum. selaku Rektor Universitas umatera Utara.
2. Bapak Prof. Dr. Opim Sitompul, M.Sc. selaku Dekan Fakultas Ilmu Komputer
dan Teknologi Informasi Universitas Sumatera Utara.
3. Bapak Dr. Poltak Sihombing, M.Kom. selaku Ketua Program Studi S1 Ilmu
Komputer Fakultas Ilmu Komputer dan Teknologi Informasi Universitas
Sumatera Utara dan juga selaku Dosen Pembanding I yang telah banyak
memberikan arahan dan masukan yang sangat berharga kepada penulis
4. Bapak Almarhum Prof. Iryanto, M.Si. selaku Dosen Pembimbing I yang telah
memberikan arahan, kritik dan saran serta motivasi kepada penulis dalam
pengerjaan skripsi ini.
5. Ibu Dian Rachmawati, S.Si., M.Kom. juga selaku Dosen Pembimbing I yang telah
memberikan arahan, kritik dan saran serta motivasi kepada penulis dalam
pengerjaan skripsi ini.
6. Bapak Jos Timanta Tarigan, S.Si, M.Kom. selaku Dosen Pembimbing II yang
mau membimbing penulis dalam penyelesaian pengerjaan skripsi ini.
7. Bapak Drs. Dahlan Sitompul, M. Eng. selaku Dosen Pembanding II yang telah
banyak memberikan arahan dan masukan yang sangat berharga kepada penulis.
8. Ayah saya Akim Ginting, Ibu saya Inget Kami br Kaban, dan juga kedua adik
saya Aries Rezky Clinta Ginting dan Erlikasna Ginting yang selalu berdoa,
mendukung, memberi kasih sayang yang begitu berarti bagi penulis.
9. Seluruh tenaga pengajar dan pegawai di Fakultas Ilmu Komputer dan Teknologi
Informasi USU.
10. Teman-teman kuliah yang tidak dapat penulis sebutkan satu-persatu, yang telah
banyak membantu dalam pengerjaan skripsi ini hingga selesai.
11. Semua pihak yang terlibat langsung maupun tidak langsung yang tidak dapat
penulis ucapkan satu demi satu yang telah membantu penyelesaian laporan ini.
Kiranya Tuhan selalu melimpahkan berkat kepada semua pihak yang telah
memberikan bantuan, perhatian, serta dukungan kepada penulis dalam menyelesaikan skripsi
ini.
Penulis,
ABSTRAK
Dokumen adalah kumpulan data yang tertulis atau tercetak yang berisi informasi. Semakin
majunya teknologi, Integritas dari suatu dokumen harus dijaga. Karna sifat dokumen yang terbuka
artinya isi dokumen dapat dibaca dan diubah oleh banyak pihak, sehingga integritas isi informasi
dari dokumen tidak terjaga. Untuk menjaga integritas data dari suatu dokumen, diciptakan suatu
mekanisme yang disebut digital signature atau sering juga nilai hash, yaitu kode khusus yang
dihasilkan dari fungsi penghasil digital signature. Salah satu algoritma yang digunakan untuk
menghasilkan digital signature adalah fungsi hash. Ada banyak fungsi hash. Dua diantaranya
message digest 5 (MD5) dan SHA256. Kedua algoritma ini tentunya mempunyai kelebihan dan
kekurangan masing-masing. Maka dilakukan penelitian untuk menentukan Algoritma mana yang
lebih baik dilihat dari kecepatan running time dan kompleksitas. Dari hasil penelitian
didapatkanlah bahwa kompleksitas dari Algoritma MD5 dan SHA256 adalah sama yaitu Ɵ(N),
namun dalam hal kecepatan running time didapatkan bahwa MD5 lebih baik dibandingkan dengan
SHA256.
ABSTRACT
DAFTAR ISI
Hal.
Persetujuan iii
Pernyataan iv
Penghargaan v
Abstrak vii
Abstract viii
Daftar Isi ix
Daftar Tabel xi
Daftar Gambar xii
Daftar Lampiran xiii
Bab 1 Pendahuluan 1
1.1 Latar Belakang 1
1.2 Rumusan Masalah 2
1.3 Batasan Masalah 3
1.4 Tujuan Penelitian 3
1.5 Manfaat Penelitian 3
1.6 Metodologi Penelitian 3
DAFTAR TABEL
Hal.
Tabel 2.1 Tabel kebenaran 9
Tabel 2.2 Tabel kebenaran 9
Tabel 2.3 Tabel kebenaran 10
Tabel 2.4 Tabel kebenaran 10
Tabel 2.5 Tabel T 15
Tabel 2.6 Fungsi-fungsi dasar MD5 18
Tabel 2.7 Rincian Operasi pada Fungsi F(b, c, d) 18
Tabel 2.8 Rincian Operasi pada Fungsi G(b, c, d) 19
Tabel 2.9 Rincian Operasi pada Fungsi H(b, c, d) 19
Tabel 2.10 Rincian Operasi pada Fungsi I(b, c, d) 20
Tabel 2.11 Tabel konstanta dalam SHA 256 27
Tabel 3.1 Spesifikasi Use Case Hash 40
Tabel 3.2 Spesifikasi Use Case Reset 40
Tabel 3.3 Spesifikasi Use Case Buka File Dokumen 41
Tabel 3.4 Spesifikasi Use Case Hashing File dengan Algoritma MD5 41
Tabel 3.5 Spesifikasi Use Case Hashing File dengan Algoritma SHA256 42
Tabel 3.6 Spesifikasi Use Case Menampilkan Nilai Hash dan Running Time 43
Tabel 3.7 Keterangan Gambar Rancangan Tampilan Menu Home 47
Tabel 3.8 Keterangan Gambar Rancangan Tampilan Menu Hash 48
Tabel 3.9 Keterangan Gambar Rancangan Tampilan Menu About 49
Tabel 4.1 Kompleksitas Algoritma Message Digest 5 (MD5) 63
Tabel 4.2 Kompleksitas Algoritma SHA256 65
DAFTAR GAMBAR
Hal.
Gambar 2.1 Enkripsi dan Dekripsi 5
Gambar 2.2 Fungsi Hash Satu Arah(Schneier, 1996) 8
Gambar 2.3 Satu Operasi MD5 (Rosyanti Harahap, 2010) 13
Gambar 2.4 Pembuatan hash value dengan algoritma MD5 (Munir, 2006) 14
Gambar 2.5 Pengolahan blok 512 bit (Proses HMD5) 16
Gambar 2.6 Operasi Dasar MD5 17
Gambar 2.7 Tahap Preprocessing pada SHA256 23
Gambar 2.8 Tahap Hash Computation pada SHA256 25
Gambar 2.9 Grafik Notasi Ɵ 34
Gambar 3.1 Diagram Ishikawa 37
Gambar 3.2 Use Case Diagram 39
Gambar 3.3 Activity Diagram proses Hash 44
Gambar 3.4 Sequence Diagram pada Proses Hash 45
Gambar 3.5 Flowchart Sistem 46
Gambar 3.6 Rancangan Tampilan Menu Home 47
Gambar 3.7 Rancangan Tampilan Menu Hash 48
Gambar 3.8 Rancangan Tampilan Menu About me dan Latar Belakang 49
Gambar 4.1 Tampilan Halaman Home 52
Gambar 4.2 Tampilan Halaman Hash 52
Gambar 4.3 Tampilan Halaman About 53
Gambar 4.4 Hasil Pengujian Sample 1 dengan Algoritma MD5 55
Gambar 4.5 Hasil Pengujian Sample 2 dengan Algoritma MD5 56
Gambar 4.6 Hasil Pengujian Sample 3 dengan Algoritma MD5 57
Gambar 4.7 Grafik Running Time Rata-rata pada Pengujian Pertama, Kedua, dan Ketiga dengan 58
MD5
Gambar 4.8 Hasil Pengujian Sample 1 dengan Algoritma SHA256 59
Gambar 4.9 Hasil Pengujian Sample 2 dengan Algoritma SHA256 60
Gambar 4.10 Hasil Pengujian Sample 3 dengan Algoritma SHA256 61
Gambar 4.11 Grafik Running Time Rata-rata pada Pengujian Pertama, Kedua, dan Ketiga dengan 62
SHA256
Gambar 4.12 Grafik Running Time Rata-rata pada MD5 dan SHA256 63
DAFTAR LAMPIRAN
Hal.
Lampiran 1 Listing Program A1
Lampiran 2 Daftar Riwayat Hidup B1
BAB 1
PENDAHULUAN
Dokumen adalah kumpulan data yang tertulis atau tercetak yang berisi informasi.
Semakin majunya teknologi, Integritas dari suatu dokumen harus dijaga. Karna sifat
dokumen yang terbuka artinya isi dokumen dapat dibaca dan diubah oleh banyak
pihak, sehingga inteegritas isi informasi dari dokumen tidak terjaga. Untuk menjaga
integritas data dari suatu dokumen, diciptakan suatu mekanisme yang disebut digital
signature atau sering juga nilai hash, yaitu kode khusus yang dihasilkan dari fungsi
penghasil digital signature. Salah satu algoritma yang digunakan untuk menghasilkan
digital signature adalah fungsi hash.
Fungsi hash atau one-way hashing algorithm adalah fungsi satu arah yang
berfungsi dalam pengecekan keaslian atau integritas suatu pesan. Fungsi hash dapat
menerima masukan yang panjangnya bernilai random dan mengubahnya menjadi nilai
hash yang berukuran tetap(fixed). Fungsi hash bekerja dengan mengubah pesan
menjadi message digest atau pesan singkat yang terlihat acak dan tidak akan dapat
dikembalikan menjadi pesan semula. Nilai hash yang dihasilkan tidak akan memiliki
nilai yang sama pada pesan yang berbeda. Ada banyak algoritma hash yang telah
ditemukan antara lain : Snefru, SHA-0, SHA-1, SHA-256, SHA-384, SHA-3,
RipeMD, Whirpool, MD2, MD4, MD5, MD6, Haval dan lain-lain. Semua algoritma
hash tersebut memiliki kelebihan dan kelemahan masing-masing.
Message Digest 5 (MD5) merupakan algoritma hash satu arah yang diciptakan
oleh Ron Rivest. MD5 merupakan hasil pengembangan dari MD4. Algoritma MD5
menerima masukan berupa pesan yang memiliki panjang sembarangan namun
menghasilkan keluaran berupa hash value atau message digest yang mempunyai
panjang 128 bit. Secara garis besar algoritma MD5 terdiri dari beberapa langkah yang
dimulai dari penambahan bit-bit pengganjal yang sering disebut padding bits.
Kemudian mengerjakan proses penambahan nilai panjang pesan semula. Tahap ketiga
adalah melakukan inisialisasi penyangga (buffer) Message Digest. Terakhir
melakukan Pengolahan pesan dalam blok berukuran 512 bit. Proses dikerjakan hingga
mendapat hash value yang memiliki panjang 128 bit.
Ada banyak fungsi SHA, salah satu diantaranya adalah SHA-256. SHA-256
dibuat oleh NIST (The National Institute of Standard and Technology) pada tahun
2000. Masukan untuk SHA-256 adalah pesan yang memiliki panjang sembarang
dengan maksimal panjangnya 264 bit. Keluaran dari SHA-256 adalah hash value yang
memiliki panjang tetap sebesar 256 bit. Ada dua tahap penting dalam operasi SHA-
256 yaitu preprocessing dan hash computation. Preprocessing terdiri dari tiga langkah
yang dimulai dari padding pesan, parsing pesan, kemudian melakukan proses set
initial hash value. Setelah preprocessing selesai, lakukan proses hash computation.
Proses ini terdiri dari empat langkah yang dimulai dari proses mempersiapkan message
schedule, lalu initialize variable, kemudian melakukan komputasi sesuai dengan
fungsi SHA-256, yang terakhir menjumlahkan variabel yang sudah dikomputasi
dengan initial hash value. Dari proses inilah hash value akan didapatkan.
Berdasarkan latar belakang tersebut, penulis akan meneliti algoritma mana yang lebih
baik dalam hashing file dokumen (*.doc atau *.docx), dimana parameternya antara
lain: waktu hashing (satuan ms) yang dibutuhkan untuk masing-masing algoritma dan
Algoritma mana yang memiliki kompleksitas (bigӨ) yang lebih baik diantara
algoritma Message Digest 5 dengan SHA-256.
1. Jenis file yang di hashing adalah file document microsoft office word (*.doc atau
*.docx).
2. Parameter perbandingan adalah waktu hashing(satuan ms) dan kompleksitas (big
Ө) dari kedua algoritma.
3. Menggunakan bahasa pemrograman C#.
4. Menggunakan Komputer dengan processor 2,40 GHz, RAM 8 GB, Sistem Operasi
Windows 10 64 bit.
Tujuan penelitian ini adalah untuk mengetahui algoritma fungsi hash mana yang lebih
baik antara Message Digest 5 dengan SHA-256, dengan membandingkan kecepatan
hashing file.doc atau .docx menggunakan algoritma Message Digest 5 dan SHA-256
dan mengetahui perbandingan kompleksitas (big Ө) algoritma Message Digest 5 dan
SHA-256.
Manfaat penelitian ini adalah pembaca dapat memahami cara kerja algoritma MD5
dan SHA256 serta mengimplementasikan algoritma yang lebih efisien dan efektif.
1. Studi Literatur
Pada tahap ini dilakukan pengumpulan referensi atau literatur yang diperlukan
dalam penelitian. Hal ini dilakukan untuk memperoleh informasi dan data
yang diperlukan untuk penulisan skripsi ini. Referensi atau literatur yang
digunakan dapat berupa buku, jurnal, artikel, maupun situs internet yang berkaitan
dengan Kriptografi, hash function, algoritma MD5, dan SHA-256.
3. Perancangan Sistem
Merancang sistem sesuai dengan rencana yang telah ditentukan, yaitu meliputi
perancangan interface awal seperti button maupun table untuk menampilkan data
hasil fungsi algorima MD5 dan SHA-256. Proses perancangan ini berdasarkan
pada batasan masalah dari penelitian ini.
4. Implementasi Sistem
Pada tahap ini pembuatan sistem telah selesai dilaksanakan dan menambahkan
data hasil algoritma MD5 dan SHA-256 ke dalam sistem.
5. Pengujian Sistem
Pada tahap ini akan dilakukan pengujian terhadap sistem yang telah
dikembangkan.
6. Dokumentasi Sistem
Melakukan pembuatan dokumentasi sistem mulai dari tahap awal hingga
pengujian sistem, untuk selanjutnya dibuat dalam bentuk laporan penelitian
(skripsi).
BAB 2
TINJAUAN PUSTAKA
2.1 Kriptografi
Kriptografi adalah ilmu mengenai teknik enkripsi dimana pesan diacak menggunakan
suatu kunci enkripsi menjadi sesuatu yang sulit dibaca oleh seseorang yang tidak
memiliki kunci dekripsi.(Sentot Kromodimoeljo, 2010).
Pesan atau data yang dapat dimengerti maknanya dinamakan plaintext atau
cleartext. Plaintext dapat berupa deretan bit, berkas teks, rekaman suara, gambar,
video, dan data lainnya yang berbentuk digital. Proses menyembunyikan informasi asli
di dalam pesan dinamakan enkripsi. Pesan yang dienkripsi dinamakan ciphertext.
Proses pengembalian pesan ciphertext kembali ke plaintext atau cleartext dinamakan
dekripsi. Itu sebabnya kriptografi dapat juga diartikan seni dan ilmu pengetahuan
dalam menjaga keamanan pesan (Schneier, 1996).
Pada gambar 2.1 dapat dilihat bahwa enkripsi merupakan proses mengubah
plaintext menjadi ciphertext dan dekripsi merupakan proses mengubah ciphertext
menjadi plaintext.
E(M)=C
D(C)=M
EK(M)=C
DK(C)=M
mengoperasikan data dengan panjang bersifat random dan mengubahnya menjadi nilai
hash yang berukuran tetap (fixed). Jika ditulis dalam notasi matematika misalkan
panjang pesan semula yang sifatnya sembarang dilambangkan H(M), dan panjang nilai
hash yang bersifat tetap dilambangkan dengan h maka:
h=H(M)
Panjang nilai h biasanya tidak terlalu besar antara 128 hingga 512 bit. Keluaran
fungsi hash adalah pesan singkat yang terlihat acak yang disebut juga hash value(nilai
hash) atau message digest(pesan ringkas) ataupun fingerprint(sidik jari). Kriteria yang
sudah menjadi standart untuk kemanan algoritma fungsi hash antara lain:
1. Preimage resistance. Untuk suatu nilai hash yang sembarang(tidak diketahui asal-
usulnya), sangat sukar bahkan tidak mungkin untuk mencari pesan yang
mempunyai nilai hash tersebut, itu sebabnya fungsi hash dikatakan fungsi hash
satu arah.
2. Collision resistance. Sangat sukar untuk menemukan nilai hash yang sama
diantara dua pesan yang berbeda.
Algoritma fungsi hash biasanya membagi pesan sehingga terdiri dari beberapa
blok, setiap blok biasanya 512 atau 1024 bit. Pesan diberi padding meskipun besarnya
merupakan kelipatan dari besarnya blok dan padding diakhiri dengan size dari pesan.
Algoritma hash biasanya terdiri dari dua tahap yaitu Preprocessing dan Hashing.
Tahap Preprocessing biasanya terdiri dari padding dan parameter setup. Tahap
hashing membuat nilai hash dengan melakukan proses komputasi terhadap naskah
yang sudah diberi padding sesuai dengan algoritma hash yang ada. Proses komputasi
dilakukan dengan setiap blok secara berurut diproses dan hasilnya dijadikan feedback
untuk proses blok berikutnya.
h=H(M)
(a) (b)
Gambar 2.2 Fungsi Hash Satu Arah(Schneier, 1996)
Pada Gambar 2.2, dapat diketahu fungsi hash secara sederhana. Pada gambar
2.2(a) dapat dilihat bahwa M merupakan pesan yang akan diproses dengan fungsi hash
dimana fungsinya adalah h=H(M) dan h adalah hash value yang dihasilkan. Gambar
2.2(b) merupakan penyederhanaan gambar 2.2(a), fungsi satu arah secara sederhana
mengubah plaintext menjadi hash value.
Tabel 2.1 merupakan tabel kebenaran dari konjungsi. Dari tabel kebenaran dari
konjungsi diatas, hanya ada satu nilai 1 jika pasangan tersebut keduanya bernilai 1,
lainnya pasti 0.
Algoritma MD5 mungkin sedikit lebih lambat dari MD4 dan memiliki desain yang
lebih komprehensif, namun MD5 memiliki tingkat keamanan yang jauh lebih baik
dibanding MD4. MD5 merupakan salah satu algoritma hash function yang paling
popular. Algoritma ini pada dasarnya dirancang untuk tujuan keamanan yang tinggi di
mana pesan yang besar harus “kompresi” dengan cara yang aman sebelum
ditandatangani dengan kunci pribadi (Rusdianto dan Akhmad, 2016).
Hal yang paling awal dikerjakan sebelum melakukan proses MD5 adalah
mengubah data menjadi data bit. Setelah proses awal ini selesai, maka MD5
memproses data menjadi blok-blok data yang terdiri dari 512 bit blok, dan 512 bit ini
dibagi ke dalam 16 sub-blok yang terdiri dari 32 bit. Hasil proses dari blok-blok ini
akan menghasilkan hash value 128 bit.
Pada gambar 2.3 merupakan satu operasi MD5 yang terdiri atas 64 operasi,
dikelompokkan dalam empat putaran dari 16 operasi. F adalah fungsi nonlinear yang
digunakan pada tiap-tiap putaran. Mi menunjukkan blok 32 bit dari masukan pesan,
dan Ki menunjukkan konstanta 32 bit, berbeda untuk tiap-tiap operasi.
Notasi <<<s merupakan operasi circular left atau pergeseran kiri bit oleh s, s
bervariasi untuk tiap-tiap operasi. Proses pada gambar 2.4 menunjukkan tambahan
modulo 232.
Gambar 2.4 Pembuatan hash value dengan algoritma MD5 (Munir, 2006)
dapat dinamakan low-order word. Setelah ditambah dengan 64 bit, panjang pesan
menjadi 512 bit.
A : 01 23 45 67
B : 89 AB CD EF
C : FE DC BA 98
D : 76 54 32 10
Langkah terakhir melakukan pengolahan pesan dalam blok berukuran 512 bit.
Di langkah ini proses algoritma utama dikerjakan. Pada proses ini menggunakan iterasi
sampai terbentuk blok-blok. Blok-blok ini dibagi menjadi L buah blok dimana panjang
masing-masing blok merupakan 512 bit (Y0 sampai YL-1). Setiap blok 512 bit diproses
dengan penyangga message digest menjadi keluaran 128 bit, dan ini disebut proses
HMD5.
Pada gambar 2.5 diatas menunjukkan proses pengolahan blok 512 bit terdiri
dari 4 putaran, dimana masing-masing putarannya melakukan operasi dasar algoritma
MD5 sebanyak 16 kali setiap operasi dasar dan setiap operasi memakai elemen T yang
nilainya telah ditetap sesuai dengan tabel T pada tabel 2.5. Jadi setiap putaran memakai
16 elemen tabel T. Yq menyatakan blok 512 bit ke-q dari pesan yang telah ditambah
bit-bit pengganjal dan tambahan 64 bit nilai panjang semula. MDq adalah nilai message
digest 128 bit dari proses HMD5 ke-q. Pada awal proses, MDq berisi nilai inisialisasi
penyangga MD. Fungsi fF, fG, fH, dan fI masing-masing berisi 16 kali operasi dasar
terhadap masukan, setiap operasi dasar menggunakan elemen Tabel T. Operasi dasar
MD5 diperlihatkan pada gambar berikut.
Dengan keterangan :
a, b, c, d = empat buah penyangga 32- bit(berisi nilai penyangga A, B,
aaC, D)
g = salah satu fungsi F, G, H, I
CLSs = circular left shift sebanyak s bit
X[k] = kelompok 32 bit ke-k dari blok 512 bit message ke-q dimana
= Nilai k = 0 sampai 15
Fungsi fF, fG, fH, dan fI merupakan fungsi-fungsi untuk memanipulasi masukan
a, b, c, dan d dengan ukuran 32 bit. Masing-masing fungsi dapat dilihat pada tabel
2.26berikut.
Tabel 2.6 Fungsi-fungsi dasar MD5
Nama Notasi G(b, c, d)
fF F(b,c,d) (b c) (b c)
fG G(b,c,d) (b d) (c d)
fH H(b,c,d) bcd
fI I(b,c,d) c (b d)
Pada tabel 2.6 menunjukkan fungsi fF, fG, fH, dan fI yang terdiri atas operasi-
operasi logika. Operator logika AND, OR, NOT, XOR masing-masing dilambangkan
dengan , , , . Dari persamaan yang terlihat pada tabel 2.6 dapat dilihat bahwa
masing-masing fungsi fF, fG, fH, dan fI melakukan operasi dasar.
Misalkan notasi
[abcd k s i]
Menyatakan operasi
yang dalam hal ini <<<s melambangkan operasi circular left shift 32-bit, maka masing-
masing putaran dapat ditabulasikan sebagai berikut:
Putaran 1: 16 kali operasi dasar dengan g(b, c, d) = F(b, c, d) dapat dilihat pada Tabel
2.7
6 [DABC 5 12 6]
7 [CDAB 6 17 7]
8 [BCDA 7 22 8]
9 [ABCD 8 7 9]
10 [DABC 9 12 10]
11 [CDAB 10 17 11]
12 [BCDA 11 22 12]
13 [ABCD 12 7 13]
14 [DABC 13 12 14]
15 [CDAB 14 17 15]
16 [BCDA 15 22 16]
Putaran 2: 16 kali operasi dasar dengan g(b, c, d) = G(b, c, d) dapat dilihat pada Tabel
2.8
Putaran 3: 16 kali operasi dasar dengan g(b, c, d) = H(b, c, d) dapat dilihat pada Tabel
2.9
6 [DABC 4 11 38]
7 [CDAB 7 16 39]
8 [BCDA 10 23 40]
9 [ABCD 13 4 41]
10 [DABC 0 11 42]
11 [CDAB 3 16 43]
12 [BCDA 6 23 44]
13 [ABCD 9 4 45]
14 [DABC 12 11 46]
15 [CDAB 15 16 47]
16 [BCDA 2 23 48]
Putaran 4: 16 kali operasi dasar dengan g(b, c, d) = I(b, c, d) dapat dilihat pada Tabel
2.10
Dari uraian di atas, fungsi hash MD5 dapat ditulis dalam persamaan matematis
berikut:
MD0 = IV
MD0 = MDL-1
Dengan keterangan :
IV = initial vector dari penyangga ABCD, yang dilakukan pada proses
inisialisasi penyangga.
Yq = blok pesan berukuran 512 bit ke-q
L = jumlah blok pesan
MD = nilai akhir message digest
Misalkan dokumen diatas memiliki ukuran 11379 bytes yang bila dikonversi ke satuan
bit akan menjadi 91032 bits. Proses yang algoritma MD5 hingga menghasilkan hash
value atau message digest, adalah sebagai berikut:
C dan D lalu bit-bit keempatnya disambung menjadi 128 bit message digest contohnya
seperti berikut.
1110 1101 0111 1011 0101 0000 1000 0101 1111 1101 1000
0110 1110 1111 0101 0001 1100 1000 0111 1001 0100 1011
0000 1011 1101 1111 0011 1011 0111 0000 0011 1000
ED7B5085FD86EF51C8794B0BDF3B7038
2.5 SHA256
Algoritma hash satu arah dimana tidak mungkin menemukan pesan semula dari
message digest yang dihasilkan. Salah satu algoritma yang lain adalah SHA256.
SHA256 dirancang oleh The National Institute of Standars and Technology (NIST)
pada tahun 2002(Yusmantoro et all, 2014). SHA256 menerima masukan data dengan
panjang maksimum 264 bit dan menghasilkan keluaran berupa message digest atau
hash value dengan panjang 256 bit. SHA256 menggunakan beberapa fungsi logika
antara lain operasi AND, OR, XOR, SHIFT(right), dan ROTATE(right)(Abdurrisyad
F, 2011). Fungsi logika tersebut digunakan untuk mengoperasikan blok-blok terdiri
dari 32 bit.
SHA256 mempunyai operasi yang hampir sama dengan MD5. Pesan yang akan
di-hash, pertama diberi bit-bit pengganjal agar bit-bit memiliki total panjang 512 bit,
lalu bit-bit tesebut diuraikan menjadi blok-blok bit dimana setiap bloknya terdiri dari
512 bit. Blok-blok tersebut dinotasikan sebagai berikut M(1), M(2), …, M(N). Blok-blok
bit tersebut diproses dalam satu waktu. SHA256 menggunakan persamaan matematika
untuk mendapatkan hash value. Adapun persamaan tersebut adalah:
Dengan keterangan:
C = fungsi kompresi dari SHA256
+ = operasi penjumlahan modulo 232
H = hash dari M
Fungsi dari SHA256 mengoperasikan 512 bit blok dan sebuah blok yang terdiri
dari 256 bit intermediate hash value. Intermediate hash value adalah blok yang terdiri
dari 256 bit yang dienkripsi menggunakan blok pesan sebagai kunci. Karena itu ada
dua komponen utama yang harus dideskripsikan yaitu fungsi kompresi SHA256 dan
message schedule dari SHA256.
Preprocessing
Pesan(M) dengan
panjang
Padding Pesan
sembarang
Seperti pada gambar 2.7 diatas hal yang dilakukan dalam preprocessing adalah
padding. Padding pesan dengan menambahkan bit-bit pengganjal sehingga total
panjangnya 512 bit. Padding dilakukan dengan cara menambahkan bit 1 dan sisanya
adalah bit 0 sejumlah k. banyaknya tambahan bit pengganjal dapat dilihat dengan
formula sebagai berikut:
Diakhir pesan yang dipadding tambahkan jumlah pesan yang telah dikonversi
ke bit. Itulah akhir dari proses padding pesan. Proses berikutnya adalah melakukan
parsing pesan.
Sebelum memasuki proses berikutnya ada enam fungsi logika yang digunakan
dalam SHA 256. Enam fungsi tersebut antara lain:
Hash Computation
Persiapkan
message schedule
Initialize variable
a,b, …, h
Preprocessing Gabungkan H0 – H7
Untuk t=0…63;
lakukan komputasi
sesuai fungsi
SHA256
Jumlahkan variabel
a,b, …,h yang sudah
dikomputasi dengan
initial hash value
(𝑡)
𝑀𝑡
𝑊𝑡 = ൝ (256)
0≤t≤15
1 (𝑊𝑖−2 ) + 𝑊𝑖−7 + 0(256) (𝑊𝑖−15 ) + 𝑊𝑖−16
16≤t≤63
Dengan keterangan:
= fungsi XOR
Kemudian Mengerjakan tahap Inisial hash value pada H(0) nilainya sudah
ditetapkan yaitu kumpulan bilangan heksadesimal dimana jika dikonversikan akan
menghasilkan 32 bit, dimana inisial hash value tersebut adalah sebagai berikut:
(0)
a = 𝐻0 =6A09E667
(0)
b = 𝐻1 =BB67AE85
(0)
c = 𝐻2 =3C6EF372
(0)
d = 𝐻3 =A54FF53A
(0)
e = 𝐻4 =510E527F
(0)
f = 𝐻5 =9B056887
(0)
g = 𝐻6 =1F83D9AB
(0)
h = 𝐻7 =5BE0CD19
Berikutnya melakukan proses komputasi untuk t=0 sampai t=63 sesuai dengan
fungsi SHA256. Dimana fungsi SHA256 adalah sebagai berikut:
Dengan keterangan:
a, b, c, d, e. f, g, h = variabel yang berisi blok-blok pesan heksadesimal
(𝟐𝟓𝟔)
𝑲𝟏 = Konstanta SHA256
∑(𝟐𝟓𝟔)
𝟏 (𝒆) ` = (e ROTR 6) (e ROTR 11) (e ROTR 25)
(𝟐𝟓𝟔)
∑𝟎 (𝒂) = (e ROTR 2) (e ROTR 13) (e ROTR 22)
Ch(e,f,g) = (e f) (e g)
Maj(a,b,c) = (a b) (a c) (b c)
ROTR = Rotate Right
= fungsi XOR
= fungsi AND
(0) (𝑖−1)
𝐻0 = a + 𝐻0
(0) (𝑖−1)
𝐻1 = b + 𝐻1
(0) (𝑖−1)
𝐻2 = c + 𝐻2
(0) (𝑖−1)
𝐻3 = d + 𝐻3
(0) (𝑖−1)
𝐻4 = e + 𝐻4
(0) (𝑖−1)
𝐻5 = f + 𝐻5
(0) (𝑖−1)
𝐻6 = g + 𝐻6
(0) (𝑖−1)
𝐻7 = h + 𝐻7
abc
M=”abc”
Dari keterangan diatas diketahui bahwa panjang pesan M = 24 bit, jika dilihat
di persamaan 2, panjang pesan yang disimbolkan dengan l. Proses berikutnya adalah
melakukan padding dengan cara menambahkan bit ‘1’ dan sisanya adalah bit ‘0’
sejumlah k. Dimana k merupakan hasil dari persamaan berikut.
Maka banyak bit ‘0’ yang ditambahkan sejumlah 423 bit. Setelah itu tambahkan
jumlah panjang pesan pada akhir pesan yang di-padding. l = 24 = 00011000. Sehingga
didapati hasil pesan yang dipadding:
Kemudian melakukan parsing pesan. Namun dalam contoh kasus ini karena
panjang pesan yang di-padding tidak melebihi 512 bit, maka hanya menghasilkan 1
blok 512 bit yaitu M(0). Tahap selanjutnya adalah membagi setiap blok 512 bit menjadi
16 blok yang terdiri 32 bit, M0(i), M1(i) ), …, M15(i).
Setelah proses parsing, maka berikutnya melakukan inisial hash value sebagai
berikut:
(0)
𝐻0 =6A09E667
(0)
𝐻1 =BB67AE85
(0)
𝐻2 =3C6EF372
(0)
𝐻3 =A54FF53A
(0)
𝐻4 =510E527F
(0)
𝐻5 =9B056887
(0)
𝐻6 =1F83D9AB
(0)
𝐻7 =5BE0CD19
Kemudian melakukan proses persiapan message schedule, tahap ini diawali
dengan mengkonveri setiap blok menjadi bilangan hexadesimal seperti berikut ini.
Nilai yang dimiliki Mi(j) menjadi nilai Wi(j), sehingga W0(0) = M0(0) dan seterusnya
hingga W63(i-1), dimana i adalah adalah jumlah blok 512 bit.
Selanjutnya dilakukan proses komputasi fungsi SHA256 dari t=0 sampai t=63.
a b c d e f g h
… …. …. …. …. …. …. …. ….
Sehingga didapat hash value atau message digest dari pesan M adalah:
BA7816BF8F01CFEA414140DE5DAE2223B00361A396177A9CB410FF61F
20015AD
Untuk nilai n cukup besar, bahkan tidak terbatas, dilakukan analisis efisiensi
asimptotik dari suatu algoritma untuk menentukan kompleksitas waktu yang sesuai
atau disebut juga kompleksitas waktu asimptotik. Notasi yang digunakan untuk
menentukan kompleksitas waktu asimptotik dengan melihat waktu tempuh (running
time) algoritma adalah notasi asimptotik (asymptotic notation). Kompleksitas waktu
asimptotik terdiri dari tiga macam antara lain:
1. (g(n)) yang dibaca Big Omega dengan nama lain the Asymptotic Lower
Bound yang digunakan untuk menentukan kompleksitas dalam keadaan
terbaik(best case).
2. Ɵ(g(n)) yang dibaca Big Theta dengan nama lain the Asymptotic Tight Bound
yang digunakan untuk menentukan kompleksitas dalam keadaan rata-rata
(average case).
3. O(g(n)) yang dibaca Big O dengan nama lain the Asymptotic Upper Bound
yang digunakan untuk menentukan kompleksitas dalam keadaan
terburuk(worst case).
Bentuk Ɵ(1) memiliki arti bahwa algorima yang sedang dianalisis merupakan
algoritma konstan. Hal ini mengindikasikan bahwa running time algoritma
tersebut tetap, tidak tergantung pada n.
dimisalkan n naik menjadi dua kali semula, log n meningkat sebesar jumlah
tetapan.
Bentuk Ɵ(n log n), terdapat pada algoritma yang membagi persoalan menjadi
beberapa persoalan kecil, menyelesaikan setiap persoalan secara independen,
kemudian menggabungkan solusi masing-masing persoalan.
BAB 3
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 Algoritma Message Digest 5 (MD5)
dan SHA 256 pada hashing file dokumen. Hashing file menggunakan algoritma
algoritma Algoritma Message Digest 5 (MD5) dan SHA 256 dipengaruhi oleh setiap
bit pada file yang dilakukan proses hashing. Jenis file yang digunakan yaitu file .doc
atau .docx.
Dalam membangun sebuah sistem ada hal-hal yang harus dipenuhi dan akan dibahas
pada analisis kebutuhan. Analisis kebutuhan dikelompokan menjadi 2 bagian yaitu:
1. Kebutuhan fungsional
Kebutuhan fungsional berisi aktivitas atau fungsi yang dapat dilakukan oleh
aplikasi yang akan dibangun. Kebutuhan fungsional pada aplikasi yang akan
dibangun pada penelitian ini adalah sebagai berikut:
c. Sistem mampu menampilkan waktu proses hashing file . *.doc atau *docx
dengan algoritma Message digest-5 (MD5) dan SHA256.
2. Kebutuhan non-fungsional
a. Performa
Sistem harus mampu melaksanakan setiap tugas secara utuh dalam selang
waktu yang tidak terlalu lama sesuai dengan ukuran data input yang diberikan.
b. Informasi
c. Ekonomi
Sistem harus dapat bekerja dengan baik tanpa harus mengeluarkan biaya
tambahan dalam penggunaan perangkat keras mamupun perangkat lunak.
d. Kontrol
Sistem yang telah dibangun harus tetap dikontrol setelah selesai dirancang
agar fungsi dan kinerja sistem tetap terjaga serta dapat memberikan hasil yang
sesuai dengan keinginan user.
e. Efisiensi
f. Pelayanan
Tahap ini menjelaskan tahapan dan cara kerja dari sistem yang akan dibangun. Pada
sistem yang akan dibangun pertama-tama file dokumen dipilih dari direktori atau
tempat penyimpanan untuk nantinya akan dilakukan proses hashing. Setelah file
dokumen dipilih lalu proses hash dilakukan satu-per-satu dengan algoritma Message
digest-5 (MD5) dan SHA256, tidak boleh dilakukan sekaligus atau dalam waktu
bersamaan karena dapat mempengaruhi running time, sehingga running time menjadi
tidak akurat. Setelah itu sistem akan menampilkan running time dari algoritma yang
telah dijalankan.
3.2 Pemodelan
Penulis menggunakan Unified Modeling Language (UML) pada bagian ini sebagai
bahasa standar pemodelan yang digunakan dan berfungsi untuk merancang sistem.
Jenis UML yang digunakan pada penelitian ini terdiri dari use case diagram, activity
diagram dan sequence diagram.
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.2
Use Case pada Gambar 3.2 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 *.doc atau *.docx. Setelah menginput file dokumen
Spesifikasi use case Buka File Dokumen dapat dilihat pada Tabel 3.3.
Spesifikasi use case Hashing File dengan algoritma MD5 dapat dilihat pada Tabel
3.4.
Tabel 3.4 Spesifikasi Use Case Hashing File dengan Algoritma MD5
Nama Hash
Actors Pengguna/User
Trigger Pengguna/User mengakses tombol MD5
Preconditions Pengguna/User membuka File Dokumen (*.doc atau
*.docx).
Post Condition Sistem memproses nilai Hashing File Dokumen dengan
algoritma MD5.
Success Scenario 1. User mengeksekusi tombol MD5.
2. Sistem memproses nilai Hashing File Dokumen dengan
algoritma MD5.
Spesifikasi use case Hashing File dengan Algoritma SHA256 dapat dilihat pada
Tabel 3.5.
Tabel 3.5 Spesifikasi Use Case Hashing File dengan Algoritma SHA256
Nama Hash
Actors Pengguna/User
Trigger Pengguna/User mengakses tombol SHA256.
Preconditions Pengguna/User membuka File Dokumen (*.doc atau
*.docx).
Post Condition Sistem memproses nilai Hashing File Dokumen dengan
algoritma SHA256.
Success Scenario 1. User mengeksekusi tombol SHA256.
2. Sistem memproses nilai Hashing File Dokumen dengan
algoritma SHA256.
3. Sistem selesai memproses nilai Hashing File Dokumen
dengan algoritma SHA256.
4. Sistem menampilkan hasil Hashing File Dokumen dan
running time dari algoritma SHA256.
Alternative Flow -
Spesifikasi use case Menampilkan Nilai Hash dan Running Time dapat dilihat pada
Tabel 3.6.
Tabel 3.6 Spesifikasi Use Case Menampilkan Nilai Hash dan Running Time
Nama Hash
Actors Pengguna/User
Trigger Pengguna/User mengakses tombol MD5 atau SHA256.
Preconditions Pengguna/User memproses Hash File Dokumen dengan
algoritma MD5 dan SHA256.
Post Condition Sistem menampilkan nilai Hash dan Running Time dari
algoritma MD5 dan SHA256.
Success Scenario 1. User mengakses tombol MD5 dan SHA256.
2. Sistem menampilkan nilai Hash dan Running Time dari
algoritma MD5 dan SHA256.
Alternative Flow -
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 diagram pada sistem
yang akan dibangun dapat dilihat pada Gambar 3.3.
Sequence diagram pada Proses Hash dapat dilihat pada Gambar 3.4.
Flowchart dari sistem yang akan dibangun dapat dilihat pada Gambar 3.5 berikut.
Halaman menu Home merupakan tampilan awal pada sistem saat dibuka. Pada
tampilan ini terdapat beberapa menu bar yaitu, Home, Hash dan About. Rancangan
tampilan menu Home dapat dilihat pada Gambar 3.6 berikut.
10 11
1
8 9
2
4
Keterangan Rancangan Tampilan Menu Home dapat dilihat pada Tabel 3.7. berikut.
Halaman menu Hash merupakan tampilan utama yang digunakan untuk menghitung
nilai hash dari file dokumen berikut dengan running time-nya menggunakan algoritma
Message Digest-5 (MD5) dan Gosudarstvennyi Standard (Gost). Rancangan tampilan
menu Hash dapat dilihat pada Gambar 3.7 berikut.
14 15
13
12 1
2 4 5
6 7
3 9 10 11
Keterangan Rancangan Tampilan Menu Hash dapat dilihat pada Tabel 3.8. berikut.
Halaman menu About me dan Latar Belakang merupakan tampilan informasi tentang
biodata penulis dan beberapa keterangan lain. Rancangan tampilan menu Menunjukan
Button Item Menu About me dan Latar Belakang dapat dilihat pada Gambar 3.8 berikut.
10 11
9
8 1
2
4 5
Keterangan Rancangan Tampilan Menu About me dan Latar Belakang dapat dilihat
pada Tabel 3.9. berikut.
Tabel 3.9 Keterangan Gambar Rancangan Tampilan Menu About
No Keterangan
1 Menunjukan Menu Item Home
2 Menunjukan Button Menu Item Hash
3 Menunjukan Button Item Menu About me dan Latar Belakang
4 Menunjukan Image untuk Foto Penulis
5 Menunjukan Text Box yang berisi biodata singkat penulis
6 Menunjukan Text Box untuk Ulasan Latar Belakang
7 Menunjukan Scrool Button untuk Ulasan
8 Menunjukan Picture Box Logo Fakultas
9 Menunjukan Label Nama Program
10 Menunjukan Menu Minimize
11 Menunjukan Menu Close
BAB 4
Pada bagian ini, penulis akan memaparkan implementasi dan hasil pengujian pada
sistem dengan membandingkan algoritma Message Digest-5 (MD5) dan SHA256
yang sudah dibangun.
4.1 Implementasi
Tahap implementasi sistem merupakan lanjutan dari tahap analisis dan perancangan
sistem. Pada tahap ini sistem dibangun sesuai dengan fungsi utamanya menggunakan
bahasa pemrograman C# dan IDE visual studio 2015. Tampilan sistem diberikan
nuansa hijau dan biru 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 me dan Latar Belakang.
Halaman Home merupakan tampilan awal sistem yang tampil pada saat sistem pertama
kali dijalankan. Halaman ini berisi tentang informasi skripsi yang dibuat oleh penulis
dimana terdapat judul, nama, nim, logo universitas, dan keterangan program studi
beserta tahun dibuatnya skripsi. Tampilan halaman Home dapat dilihat pada Gambar
4.1 berikut.
Halaman Hash adalah tampilan utama dari program dimana hash dengan algoritma
Message Digest-5 (MD5) dan SHA256 dieksekusi untuk mengetahui nilai hash dan
running time dari kedua algoritma tersebut. Pertama, user memilih file dokumen
dengan ekstensi *.doc atau*.docx yang akan dicari nilai hash dan running timenya
dengan algoritma Message Digest-5 (MD5) dan SHA256. Kemudian user
mengeksekusi tombol MD5 atau SHA256, untuk mencari nilai hash MD5 dengan
mengeksekusi tombol MD5 dan nilai hash SHA-256 dengan mengeksekusi tombol
SHA256 berikut dengan running timenya dari file dokumen yang telah dipilih. Setelah
itu nilai hash dan running time akan ditampilkan pada dataGrid.
Halaman About me dan Latar Belakang merupakan tampilan yang berisi informasi
penulis dan informasi tentang penelitian yang dibuat. Pada tampilan ini terdapat foto,
Nama, NIM, Prodi, dan Kontak penulis beserta logo Fakultas Ilmu Komputer
Universitas Sumatera Utara. Di bagian bawah terdapat informasi atau latar belakang
dari penelitian yang dibuat oleh penulis.
Pengujian sistem merupakan tahap berikutnya dari tahap analisis dan perancangan
sistem. Pengujian sistem dilakukan untuk mengindentifikasi dari sistem yang telah
dibangun apakah berhasil atau tidak. Karena sistem yang dibangun diharapkan
menjadi sarana penyelesaian suatu permasalahan, sistem tersebut harus diuji dengan
beberapa kasus yang berbeda. Sistem yang baik adalah sistem yang sudah diuji dan
dianggap telah memenuhi kebutuhan para user.
ukuran file berbeda. File yang sama akan diuji satu demi satu dengan algoritma
message digest 5(MD5) dan SHA256, kemudian hasilnya akan dibandingkan.
Pengujian perangkat lunak dan implementasinya mengacu pada kualitas perangkat
lunak.
Spesifikasi perangkat keras yang digunakan untuk proses pengujian sistem ini adalah:
Pengujian pertama dilakukan ke file dokumen yang memiliki ekstensi *.docx yang
diberi nama Sample1.docx. Dari pengujian tersebut maka diperoleh hasil sebagai
berikut:
Pada Gambar 4.4 dapat dilihat bahwa ada tujuh kali percobaan pada Sample1.docx
menggunakan algoritma MD5 dimana data hash value dan nilai running time setiap
percobaannya dapat dilihat sebagai berikut:
Ukuran File = 11539 bytes
Hash Value = 98B62AB5CD7D3BBF13D529FE5BDAC629
Percobaan pertama = 5.4544 milisekon
Percobaan kedua = 3.0563 milisekon
Percobaan ketiga = 2.6735 milisekon
Percobaan keempat = 3.4480 milisekon
Percobaan kelima = 2.8266 milisekon
Percobaan keenam = 2.9647 milisekon
Percobaan ketujuh = 3.1273 milisekon
Rata-rata waktu = 3.3644 milisekon
Pengujian kedua dilakukan ke file dokumen yang memiliki ekstensi *.doc yang diberi
nama Sample 2.doc. Dari pengujian tersebut maka diperoleh hasil sebagai berikut:
Pada Gambar 4.5 dapat dilihat bahwa ada tujuh kali percobaan pada Sample 2.doc
menggunakan algoritma MD5 dimana data hash value dan nilai running time setiap
percobaannya dapat dilihat sebagai berikut:
Ukuran File = 22528 bytes
Hash Value = 577CA8666C87EAE17E6A053FE3812E4C
Percobaan pertama = 4.1561 milisekon
Percobaan kedua = 2.6179 milisekon
Percobaan ketiga = 2.8228 milisekon
Percobaan keempat = 4.0095 milisekon
Percobaan kelima = 3.1234 milisekon
Percobaan keenam = 4.4114 milisekon
Percobaan ketujuh = 4.5786 milisekon
Rata-rata waktu = 3.674242857143 milisekon
Pengujian ketiga dilakukan ke file dokumen yang memiliki ekstensi *.doc dengan
ukuran yang lebih besar yang diberi nama sample3.doc. Dari pengujian tersebut maka
diperoleh hasil sebagai berikut:
Pada Gambar 4.6 dapat dilihat bahwa ada tujuh kali percobaan pada sample3.doc
menggunakan algoritma MD5 dimana data hash value dan nilai running time setiap
percobaannya dapat dilihat sebagai berikut:
Ukuran File = 47104 bytes
Hash Value = 14206DAB6EA6E8092D536DC36C26E040
Percobaan pertama = 5.0456 milisekon
Percobaan kedua = 3.5151 milisekon
Percobaan ketiga = 3.7619 milisekon
Percobaan keempat = 3.9363 milisekon
Percobaan kelima = 4.0762 milisekon
Percobaan keenam = 8.6981 milisekon
Percobaan ketujuh = 4.4499 milisekon
Rata-rata waktu = 4.7833 milisekon
4.2.1.4 Grafik Running Time Rata-rata pada Algoritma Message Digest 5(MD5)
Grafik running time rata-rata pada pengujian pertama, kedua, dan ketiga dengan
menggunakan algoritma MD5 dapat dilihat sebagai berikut:
R U N N I N G T I M E R ATA - R ATA ( M S )
Running Time Rata-rata(ms)
4.7833
running time(ms)
3.674242857
3 3.3644
0
Sample1.docx (11539 bytes) Sample2.doc (22528 bytes) Sample3.doc(47104 bytes)
Gambar 4.7 Grafik Running Time Rata-rata pada Pengujian Pertama, Kedua, dan
Ketiga dengan MD5
Gambar 4.7 merupakan grafik running time rata-rata algoritma MD5. Pada
grafik di atas dapat diketahui running time rata-rata dengan menggunakan algoritma
MD5 pada pengujian pertama sampai ketiga dapat dilihat bahwa ukuran file
mempengaruhi proses running time dokumen. Dimana besarnya ukuran berbanding
lurus dengan besarnya running time.
Sama halnya dengan pengujian pada MD5 maka pengujian pada algoritma SHA256
akan dilakukan juga dengan menggunakan tiga sample dan pengujian setiap sample
akan dilakukan sebanyak tujuh kali percobaan yang akan menghasilkan output tujuh
nilai running time berbeda. Tujuh nilai running time tersebut akan dirata-ratakan
dengan mengaktifkan fungsi rata-rata pada sistem dengan cara menekan tombol rata-
rata pada sistem.
Pengujian pertama dilakukan ke file dokumen yang memiliki ekstensi *.docx yang
diberi nama sample1.docx. Dari pengujian tersebut maka diperoleh hasil sebagai
berikut:
Pada Gambar 4.8 dapat dilihat bahwa ada tujuh kali percobaan pada sample1.docx
menggunakan algoritma SHA256 dimana data hash value dan nilai running time setiap
percobaannya dapat dilihat sebagai berikut:
Ukuran File = 11539 bytes
Hash Value :
32E527EBBFD81F6B7739A87F88A4E4AB208DBD50D170DE0D0DF772A60C
79529E
Percobaan pertama = 9.9553 milisekon
Percobaan kedua = 8.7584 milisekon
Percobaan ketiga = 7.9591 milisekon
Percobaan keempat = 7.1864 milisekon
Percobaan kelima = 6.6411 milisekon
Percobaan keenam = 6.6835 milisekon
Percobaan ketujuh = 10.204 milisekon
Rata-rata waktu = 8.198342857143 milisekon
Pengujian kedua dilakukan ke file dokumen yang memiliki ekstensi *.doc yang diberi
nama sample2.doc. Dari pengujian tersebut maka diperoleh hasil sebagai berikut:
Pada Gambar 4.9 dapat dilihat bahwa ada tujuh kali percobaan pada sample2.doc
menggunakan algoritma SHA256 dimana data hash value dan nilai running time setiap
percobaannya dapat dilihat sebagai berikut:
Ukuran File = 22528 bytes
Hash Value :
25B0F833564169D56741059DCCFA09ACCF891DCFC8042323090D83BD08D2
9FA4
Percobaan pertama = 11.4354 milisekon
Percobaan kedua = 9.46050 milisekon
Percobaan ketiga = 11.1852 milisekon
Percobaan keempat = 10.0306 milisekon
Percobaan kelima = 10.0913 milisekon
Percobaan keenam = 9.71930 milisekon
Percobaan ketujuh = 9.83170 milisekon
Rata-rata waktu = 10.25057142857 milisekon
Pengujian ketiga dilakukan ke file dokumen yang memiliki ekstensi *.doc dengan
ukuran yang lebih besar yang diberi nama sample3.doc. Dari pengujian tersebut maka
diperoleh hasil sebagai berikut:
Pada Gambar 4.10 dapat dilihat bahwa ada tujuh kali percobaan pada sample3.doc
menggunakan algoritma SHA256 dimana data hash value dan nilai running time setiap
percobaannya dapat dilihat sebagai berikut:
Ukuran File = 47104 bytes
Hash Value :
42A0E1BCE1DFC2889BB0EC4A442BDFAF924C901971E187FFEFBD32734B
F91CE7
Percobaan pertama = 18.0355 milisekon
Percobaan kedua = 16.0765 milisekon
Percobaan ketiga = 16.8351 milisekon
Percobaan keempat = 16.5426 milisekon
Percobaan kelima = 16.7440 milisekon
Percobaan keenam = 16.1440 milisekon
Percobaan ketujuh = 17.2875 milisekon
Rata-rata waktu = 16.8093142857143 milisekon
Grafik running time rata-rata pada pengujian pertama, kedua, dan ketiga dengan
menggunakan algoritma SHA256 dapat dilihat sebagai berikut:
R U N N I N G T I M E R ATA - R ATA ( M S )
Running Time Rata-rata(ms)
18
16
16.80931429
14
running time(ms)
12
10
10.25057143
8
8.198342857
6
4
2
0
Sample1.docx (11539 bytes) Sample2.doc (22528 bytes) Sample3.doc(47104 bytes)
Gambar 4.11 Grafik Running Time Rata-rata pada Pengujian Pertama, Kedua, dan
Ketiga dengan SHA256
Pada Gambar 4.11 di atas dapat diketahui running time rata-rata dengan
menggunakan algoritma SHA256 pada pengujian pertama sampai ketiga, sama dengan
MD5 dapat dilihat bahwa ukuran file mempengaruhi proses running time dokumen.
Dimana besarnya ukuran berbanding lurus dengan besarnya running time.
18
16
16.80931429
14
Running Time(ms)
12
10
10.25057143
8
8.198342857
6
4
4.7833
2 3.3644 3.674242857
0
Sample1.docx (11539 bytes) Sample2.doc (22528 bytes) Sample3.doc(47104 bytes)
Gambar 4.12 Grafik Running Time Rata-rata pada MD5 dan SHA256
Pada Gambar 4.12 di atas dapat diketahui running time rata-rata dari algoritma
MD5 lebih cepat dibandingkan algoritma MD5.
Perhitungan kompleksitas dari algoritma Message Digest 5 (MD5) dan SHA256 dapat
dilihat sebagai berikut.
h0 := h0 + a C2 N C2N
h1 := h2 + B C2 N C2N
h2 := h3 + C C2 N C2N
h3 := h4 + D C2 N C2N
var char digest[16] := h0 append
C2 1 C2
h1 append h2 append h3
∑ = T(n)
= (C1+ 73C2 + 64C3 + C4 + 3C5)N0 + (456C2+64C3+C4+2C6+64C7)N
= Ɵ(N)
Perhitungan Kompleksitas algoritma SHA256 dapat dilihat pada Tabel 4.2 berikut.
0x766a0abb, 0x81c2c92e,
0x92722c85, 0xa2bfe8a1,
0xa81a664b, 0xc24b8b70,
0xc76c51a3, 0xd192e819,
0xd6990624, 0xf40e3585,
0x106aa070}
K [48..63] :={0x19a4c116,
0x1e376c08, 0x2748774c,
0x34b0bcb5, 0x391c0cb3,
0x4ed8aa4a, 0x5b9cca4f,
0x682e6ff3, 0x748f82ee, C1 1 C1
0x78a5636f, 0x84c87814,
0x8cc70208, 0x90befffa,
0xa4506ceb, 0xbef9a3f7,
0xc67178f2}
append single '1' bit C2 1 C2
append K '0' bits, where K is the
minimum number >= 0 such that
C2 1 C2
L + 1 + K + 64 is a multiple
of 512
append L as a 64-bit big-endian
integer, making the total post-
C2 1 C2
processed length a multiple of
512 bits
append original length in bits
C2 1 C2
mod (2 pow 64) to message
break message into 512-bit chunks C3 N C3N
for each chunk
create a 64-entry message
C4 N C4N
schedule array w[0..15] of
32-bit words
copy chunk into first 16
words w[0..15] of the message C3 N C3N
schedule array
end for C5 N C5N
for i from 16 to 63 C4 48N 48C4N
s0 := (w[i-15] rightrotate 7)
xor (w[i-15] rightrotate
C1 48N 48C1N
18) xor (w[i-15] rightshift
3)
s1 := (w[i-2] rightrotate 17)
xor (w[i-2] rightrotate 19) C1 48N 48C1N
xor (w[i-2] rightshift 10)
w[i] := w[i-16] + s0 + w[i-7]
C1 48N 48C1N
+ s1
end for C5 N C5N
a := h0 C1 1 C1
b := h1 C1 1 C1
c := h2 C1 1 C1
d := h3 C1 1 C1
e := h4 C1 1 C1
f := h5 C1 1 C1
g := h6 C1 1 C1
h := h7 C1 1 C1
for i from 0 to 63 C4 64N 64C4N
S1 := (e rightrotate 6) xor
(e rightrotate 11) xor (e C1 64N 64C1N
rightrotate 25)
ch := (e and f) xor ((not e)
C1 64N 64C1N
and g)
temp1 := h + S1 + ch + k[i] +
C1 64N 64C1N
w[i]
S0 := (a rightrotate 2) xor
(a rightrotate 13) xor (a C1 64N 64C1N
rightrotate 22)
maj := (a and b) xor (a and
C1 64N 64C1N
c) xor (b and c)
temp2 := S0 + maj C1 64N 64C1N
h := g C1 64N 64C1N
g := f C1 64N 64C1N
f := e C1 64N 64C1N
e := d + temp1 C1 64N 64C1N
d := c C1 64N 64C1N
c := b C1 64N 64C1N
b := a C1 64N 64C1N
a := temp1 + temp2 C1 64N 64C1N
end for C5 N C5N
h0 := h0 + a C1 1 C1
h1 := h1 + b C1 1 C1
h2 := h2 + c C1 1 C1
h3 := h3 + d C1 1 C1
h4 := h4 + e C1 1 C1
h5 := h5 + f C1 1 C1
h6 := h6 + g C1 1 C1
h7 := h7 + h C1 1 C1
digest := hash := h0 append h1
append h2 append h3 append h4 C1 1 C1
append h5 append h6 append h7
∑ = T(n)
= (29C1 + 4C2)N0 + (10140C1 + 2C3 + 64C4 + 2C5)N1
= Ɵ(N)
BAB 5
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 SHA256 menghasilkan
keluaran hash value atau message digest yang mempunyai panjang data yang
berbeda, dimana panjang hash pada MD5 berjumlah 32 karakter hexadesimal
sedangkan SHA256 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 SHA256. Dimana proses
pada algoritma MD5 lebih cepat dibandingkan proses pada algoritma SHA256.
3. Kompleksitas big Ɵ algoritma Message Digest-5 (MD5) adalah Ɵ(N) dan big
Ɵ algoritma SHA256 adalah Ɵ(N). Kompleksitas kedua algoritma sama-sama
Ɵ(N) yang artinya bernilai linier. Artinya semakin besar data yang diproses,
maka membutuhkan waktu (running time) yang semakin besar pula.
5.2 Saran
1. Sistem ini hanya bisa membandingkan dua algoritma hash yaitu MD5 dan
SHA256, untuk penelitian berikutnya dapat dikembangkann untuk
membandingkan tiga atau lebih algoritma hash yang ada.
Azizah, Ulfah Nur. 2013. Perbandingan Detektor Tepi Prewit dan Detektor Laplacian
Berdasarka Kompleksitas Waktu dan Hasil Citra. Skripsi. Universitas Pendidikan
Indonesia.
Apridiansyah, Yofi & Rifqo, Muhammad Husni. 2015. Aplikasi Keamanan Lembar Hasil
Studi Menggunakan Algoritma Message d]Digest 5. Jurnal. Bengkulu
Soesianto, F. & Dwijono, Djoni. 2006. Logika Matematika untuk Ilmu Komputer. Buku.
Penerbit Andi: Yogyakarta.
Yusmantoro, S., Hermansyah, E., Efendi, R. 2014. Rancang Bangun Aplikasi Pengamanan
Keaslian Surat Izin Tempat Usaha Menggunakan Algoritma Elgamal dan Secure
Hash Algorithm 256 Studi Kasus: Badan Pelayanan Perizinan Terpadu(BPPT)
Kota Bengkulu. Jurnal. Universitas Bengkulu.
Fikri, Abdurrisyad. 2011. Studi Perbanding Penggunaan Algoritma Hash SHA256 dengan
Simetrik dan Asimetrik Ciphers dalam Perancangan Secure SWF Rich Internet
Aplication(RIA). Jurnal. Intitut Teknologi Bandung.
LISTING PROGRAM
1. Form1.cs
using System;
using System.Windows.Forms;
namespace WindowsFormsApplication2
{
public home()
{
InitializeComponent();
}
}
int mouseX = 0, mouseY = 0;
bool mouseDown;
this.SetDesktopLocation(mouseX, mouseY);
}
2. UserHome.cs
using System.Windows.Forms;
namespace WindowsFormsApplication2
{
public partial class UserHome : UserControl
{
private static UserHome _instance;
}
public UserHome()
{
InitializeComponent();
}
}
}
3. UserHsh.cs
using System;
using System.Windows.Forms;
using System.Diagnostics;
using System.Data;
using System.IO;
namespace WindowsFormsApplication2
{
public partial class UserHsh : UserControl
{
}
}
public UserHsh()
{
InitializeComponent();
}
DGV.Rows.Add();
int i = DGV.Rows.Count - 1;
DGV.Rows[i].Cells[0].Value = i + 1;
DGV.Rows[i].Cells[1].Value = openFileDialog1.SafeFileName;
DGV.Rows[i].Cells[2].Value = new FileInfo(openFileDialog1.FileName).Length
+ " bytes";
DGV.Rows[i].Cells[3].Value = textBox2.Text;
DGV.Rows[i].Cells[4].Value = stopWatch_md5.Elapsed.TotalMilliseconds + "
MS";
DGV.Rows[i].Cells[5].Value = "";
}
//Rata-rata SHA256
for (int r = 0; r < DGV.RowCount; r++)
{
if (DGV.Rows[r].Cells[5].Value.ToString() != "")
{
rrsha +=
double.Parse(DGV.Rows[r].Cells[5].Value.ToString().Replace("MS", ""));
tsha++;
}
}
if (rrsha != 0)
{
rrsha = rrsha / tsha;
}
DGV.Rows.Add();
int i = DGV.Rows.Count - 1;
DGV.Rows[i].Cells[0].Value = "";
DGV.Rows[i].Cells[1].Value = "";
DGV.Rows[i].Cells[2].Value = "";
DGV.Rows[i].Cells[3].Value = "Rata-rata";
if (rrmd5 != 0)
{
DGV.Rows[i].Cells[4].Value = rrmd5.ToString() + " MS";
}
if (rrsha != 0)
{
DGV.Rows[i].Cells[5].Value = rrsha.ToString() + " MS";
}
RR = true;
SHA256Button.Enabled = false;
MD5Button.Enabled = false;
}
DGV.Rows.Add();
int i = DGV.Rows.Count - 1;
DGV.Rows[i].Cells[0].Value = i + 1;
DGV.Rows[i].Cells[1].Value = openFileDialog1.SafeFileName;
DGV.Rows[i].Cells[2].Value = new FileInfo(openFileDialog1.FileName).Length
+ " bytes";
DGV.Rows[i].Cells[3].Value = textBox2.Text;
DGV.Rows[i].Cells[4].Value = "";
DGV.Rows[i].Cells[5].Value = stopWatch_sha256.Elapsed.TotalMilliseconds +
" MS";
}
try
{
worksheet = workbook.ActiveSheet;
worksheet.Name = "ExportedFromDatGrid";
int cellRowIndex = 2;
int cellColumnIndex = 1;
worksheet.Cells[1, 1] = DGV.Columns[0].HeaderText;
worksheet.Cells[1, 2] = DGV.Columns[1].HeaderText;
worksheet.Cells[1, 3] = DGV.Columns[2].HeaderText;
worksheet.Cells[1, 4] = DGV.Columns[3].HeaderText;
worksheet.Cells[1, 5] = DGV.Columns[4].HeaderText;
worksheet.Cells[1, 6] = DGV.Columns[5].HeaderText;
//Loop through each row and read value from each column.
for (int i = 0; i < DGV.Rows.Count; i++)
{
//Getting the location and file name of the excel to save from user.
SaveFileDialog saveDialog = new SaveFileDialog();
saveDialog.Filter = "Excel files (*.xlsx)|*.xlsx";
saveDialog.FilterIndex = 1;
if (saveDialog.ShowDialog() == DialogResult.OK)
{
workbook.SaveAs(saveDialog.FileName);
}
}
catch (System.Exception ex)
{
MessageBox.Show(ex.Message);
}
finally
{
excel.Quit();
workbook = null;
excel = null;
}
}
}
4. UserProfil.cs
using System;
using System.Windows.Forms;
namespace WindowsFormsApplication2
{
public partial class UserProfil : UserControl
{
private static UserProfil _instance;
}
}
public UserProfil()
{
InitializeComponent();
}
5. MD5.cs
using System;
using System.Text;
using System.Windows.Forms;
namespace WindowsFormsApplication2
{
class MD5
{
private static int INIT_A;
private static int INIT_B;
private static int INIT_C;
private static int INIT_D;
private static int[] SHIFT_AMTS = { 7, 12, 17, 22, 5, 9, 14, 20, 4, 11, 16,
23, 6, 10, 15, 21 };
private static int[] TABLE_T = new int[64];
private static void buat_tabel()
{
//pembuatan tabel
unchecked
{
for (int i = 0; i < 64; i++)
{
TABLE_T[i] = (int)(long)((1L << 32) * Math.Abs(Math.Sin(i + 1)));
}
}
}
//padding 0x80
paddingBytes[0] = (byte)0x80;
int a = INIT_A;
int b = INIT_B;
int c = INIT_C;
int d = INIT_D;
int[] buffer = new int[16];
for (int i = 0; i < numBlocks; i++)
{
int index = i << 6;
for (int j = 0; j < 64; j++, index++)
buffer[(int)((uint)j >> 2)] = ((int)((index < messageLenBytes)
? message[index]
: paddingBytes[index - messageLenBytes]) << 24) |
(int)((uint)buffer[(int)((uint)j >> 2)]
>> 8);
int originalA = a;
int originalB = b;
int originalC = c;
int originalD = d;
for (int j = 0; j < 64; j++)
{
int div16 = (int)((uint)j >> 4);
int f = 0;
int bufferIndex = j;
switch (div16)
{
case 0:
f = (b & c) | (~b & d);
//Log.d("computeMD5", "f = " +
Integer.toHexString(f));
break;
case 1:
f = (b & d) | (c & ~d);
bufferIndex = (bufferIndex * 5 + 1) & 0x0F;
break;
case 2:
f = b ^ c ^ d;
bufferIndex = (bufferIndex * 3 + 5) & 0x0F;
break;
case 3:
f = c ^ (b | ~d);
bufferIndex = (bufferIndex * 7) & 0x0F;
break;
}
int temp = RotateLeft(a + f + buffer[bufferIndex] +
TABLE_T[j], SHIFT_AMTS[(div16 << 2) | (j & 3)]);
a = d;
d = c;
c = b;
b = b + temp;
}
a += originalA;
b += originalB;
c += originalC;
d += originalD;
}
return Result.ToString();
}
5. SHA256.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace WindowsFormsApplication2
{
class SHA256
{
struct SHA256_CTX
{
public byte[] data;
public uint datalen;
public uint[] bitlen;
public uint[] state;
}
static uint[] k = {
0x428a2f98,0x71374491,0xb5c0fbcf,0xe9b5dba5,0x3956c25b,0x59f111f1,0x923f82a4,0xab1c5ed
5,
0xd807aa98,0x12835b01,0x243185be,0x550c7dc3,0x72be5d74,0x80deb1fe,0x9bdc06a7,0xc19bf17
4,
0xe49b69c1,0xefbe4786,0x0fc19dc6,0x240ca1cc,0x2de92c6f,0x4a7484aa,0x5cb0a9dc,0x76f988d
a,
0x983e5152,0xa831c66d,0xb00327c8,0xbf597fc7,0xc6e00bf3,0xd5a79147,0x06ca6351,0x1429296
7,
0x27b70a85,0x2e1b2138,0x4d2c6dfc,0x53380d13,0x650a7354,0x766a0abb,0x81c2c92e,0x92722c8
5,
0xa2bfe8a1,0xa81a664b,0xc24b8b70,0xc76c51a3,0xd192e819,0xd6990624,0xf40e3585,0x106aa07
0,
0x19a4c116,0x1e376c08,0x2748774c,0x34b0bcb5,0x391c0cb3,0x4ed8aa4a,0x5b9cca4f,0x682e6ff
3,
0x748f82ee,0x78a5636f,0x84c87814,0x8cc70208,0x90befffa,0xa4506ceb,0xbef9a3f7,0xc67178f
2
};
a = ctx.state[0];
b = ctx.state[1];
c = ctx.state[2];
d = ctx.state[3];
e = ctx.state[4];
f = ctx.state[5];
g = ctx.state[6];
h = ctx.state[7];
ctx.state[0] += a;
ctx.state[1] += b;
ctx.state[2] += c;
ctx.state[3] += d;
ctx.state[4] += e;
ctx.state[5] += f;
ctx.state[6] += g;
ctx.state[7] += h;
}
if (ctx.datalen == 64)
{
SHA256Transform(ref ctx, ctx.data);
DBL_INT_ADD(ref ctx.bitlen[0], ref ctx.bitlen[1], 512);
ctx.datalen = 0;
}
}
}
ctx.data[59] = (byte)(ctx.bitlen[1]);
ctx.data[58] = (byte)(ctx.bitlen[1] >> 8);
ctx.data[57] = (byte)(ctx.bitlen[1] >> 16);
ctx.data[56] = (byte)(ctx.bitlen[1] >> 24);
SHA256Transform(ref ctx, ctx.data);
SHA256Init(ref ctx);
SHA256Update(ref ctx, Encoding.Default.GetBytes(data), (uint)data.Length);
SHA256Final(ref ctx, hash);
return hashStr;
}
}
}
Curriculum Vitae
Ardi Betesda Clinta Ginting
Mobile: +6285275472092
E-Mail: realardi@gmail.com
I. Personal Identification
Full Name : Ardi Betesda Clinta Ginting
Nick Name : Ardi
Place / Date of Birth : Kabanjahe/ December, 10th 1994
Sex : Male
Marital Status : Single
Nationality : Indonesian
Former Address : Jl. Djamin Ginting, Komplek Tropis, Puskesmas Tropis
Kabanjahe, North Sumatera, Indonesia 22111
Telephone : +6285275472092
Residential Address : Jl. Djamin Ginting KM 8,5, Jl. Bendungan, Gg. Bendungan 3,
Kec. Medan Baru, Medan, North Sumatera, Indonesia 20155
Motto : Life is Christ
IV. Achievements
1st Rank Class in twelve Science 2. SMA Negeri 1 Kabanjahe. 2011.
Nomination of the Most Outstanding Student. IMILKOM USU. 2013.
V. Working Experience
Internship in Citra Kreasi Latena, Medan. 2014
Leader Of Small Group. UKM KMK(Unit Kegiatan Mahasiswa Kebaktian Mahasiswa Kristen).
USU. Medan 2014-now
VIII. Seminars
Smart Library Seminar : “TREN DATA EVDO: KULIK LEBIH JAUH LAGI TEKNOLOGI
REV B”. University of Sumatera Sumatera. 2012
Motivation Seminar : “What will you be?”. University of Sumatera Utara. 2013
GELITIK Seminar. University of Sumatera Sumatera. 2014
X. Committee Experiences
Passover celebration of KAKR GBKP Runggun Ketaren Klasis Kabanjahe. Treasurer. 2010
Christmas celebration of KAKR GBKP Runggun Ketaren Klasis Kabanjahe. Chairman of
Committee. 2010
Christmas celebration of KAKR GBKP Runggun Ketaren Klasis Kabanjahe. Chairman of
Committee. 2011
Smart Library Seminar: “TREN DATA EVDO: KULIK LEBIH JAUH LAGI TEKNOLOGI
REV B”. Staff of Equipment. University of Sumatera Sumatera. 2012
Eleventh Anniversary of Computer Science. Staff of Security. University of Sumatera Sumatera.
2012
Christmas celebration of Computer Science: ”Optimize Our Performance”. Staff of Equipment
and Place. 2012
Passover celebration of Faculty of Computer Science and Information Technology: “0 to 1”.
Staff of Donation. 2013
Sport and Art Events (PORSENI IMILKOM 2013):”Let’s show off our skill”. Staff of
Equipment and Place. University of Sumatera Utara. 2013
Welcoming Celebration of New Student’s Study Program of Computing Science (PMB S1 Ilmu
Komputer 2013). Staff of Equipment and Place. University of Sumatera Utara. 2013
Retreat KMKI 2013:”Life Start Here”. Staff of Equipment and Place. University of Sumatera
Utara. 2013
Christmas celebration of Computer Science: ”Patch Our Heart”. Vice Chairman of Committee.
2013
Sport and Art Events (PORSENI IMILKOM 2014):”Let’s show off our skill”. Chief of
Equipment and Place. University of Sumatera Utara. 2014
This curriculum vitae is prepared in valid data by my good intention to be used by any
parties needed.
Sincerely yours,
Ardi Betesda Clinta Ginting