Hasil dan Pembahasan T1 672009112 Full text

9 disertai kunci diubah menjadi bentuk biner. Kemudian bentuk biner tersebut di-XOR-kan, sehingga menghasilkan hasil enkripsi data pada table gaji.

4. Hasil dan Pembahasan

Sistem dalam penelitian ini berbentuk desktop application yang disertai dengan GUI Graphical User Interface, bertujuan untuk mempermudah admin dalam pengoperasian sistem. GUI pada sistem ini terdiri dari beberapa form antara lain adalah form Login, form Home, form Manage Data Pegawai, form Manage Data Gaji, form Report Data Pegawai dan form Report Data Gaji. Berikut adalah pseudo code algoritma One Time Pad. Kode Program 1 Pseudo Code Algoritma One Time Pad Kode program 1 menjelaskan enkripsi one time pad dilakukan dengan cara XOR plaintext dan key. Baris ke empat, merupakan fungsi untuk menghitung jumlah karakter plaintext, kemudian pada baris ke tujuh, akan membangun kunci menjadi sama panjang dengan plaintext. Baris ke delapan merupakan fungsi untuk mengambil karakter kunci, kemudian di-XOR dengan karakter plaintext yang dipilih pada baris ke sembilan, dan akan ditambahkan ke hasil enkripsi. Kode Program 2 Pseudo Code Algoritma Kode Geser 1. class OTP { 2. public static string otp string text, string key{ 3. var result = new StringBuilder ; 4. for int c = 0; c text.Length; c++{ 5. char character = text[c]; 6. uint charCode = uint character; 7. int keyPosition = c key.Length; 8. char keyChar = key[keyPosition]; 9. uint keyCode = uint keyChar; 10. uint combinedCode = charCode keyCode; 11. char combinedChar = char combinedCode; 12. result.AppendcombinedChar;} 13. return result.ToString;} 14. } 1. class kodegeser { 2. public static string Encrypt string plainText, int key 3. { 4. char [] plainChar = plainText.ToCharArray; 5. int [] ascii = new int [plainChar.Length]; 6. for int count=0;count plainChar.Length; count++{ 7. ascii[count] = Convert .ToInt32plainChar[count]; 8. if ascii[count] = 65 ascii[count] = 90{ 9. ascii[count] = ascii[count] - 65 + key 26 + 65;} 10 Kode program 2 menjelaskan teknik substitusi kode geser dilakukan dengan cara mengeser plaintext menggunakan besaran key. Baris ke 4-5 merupakan fungsi untuk mengubah string plaintext ke bentuk char, kemudian pada baris ke 6-7 akan mengubah bentuk char plaintext ke bentuk ASCII. Baris ke 8-11 akan menyaring karakter ASCII yakni yang dipakai adalah karakter alfabet A-Z dan a-z saja dimana alfabet A-Z pada tabel ASCII adalah 65-90 dan a-z adalah 97-122. Baris ke 12 akan mengubah hasil dalam bentuk ASCII ke bentuk Char, kemudian akan diubah lagi ke bentuk String pada baris 13. Dalam sistem ini, penggunaan algoritma One Time Pad dan teknik subtitusi kode geser terdapat pada form Manage Data Gaji, dan juga form Report Data Gaji. Form Manage Data Gaji terdapat beberapa textbox yang hanya dapat menampilkan data sesuai label pada textbox tersebut dan button yang harus dieksekusi oleh Admin sesuai dengan label pada textbox dan button tersebut agar dapat melakukan perhitungan gaji pegawai, menyimpan data gaji pegawai dan menghapus data gaji pegawai. Gambar 9 Form Manage Data Gaji Pada Gambar 9, data yang tersimpan adalah data yang sudah terenkripsi pada saat melakukan penyimpanan data. Form Manage Data Gaji juga terdapat button Dekripsi untuk melihat data gaji asli dan button Enkripsi untuk mengembalikan data ke dalam bentuk enkripsi. Form Manage Data Gaji Terdapat juga combobox dengan label NIP yang telah terisi dengan data NIP pegawai sesuai dengan data nip pada database pegawai, yang berfungsi untuk menampilkan data pada textbox sesuai dengan data pemanggilan data pada database. Data gaji pegawai tidak dapat diubah, jadi data yang telah dihitung dan terjadi kesalahan dalam perhitungan akan dihapus dan data pegawai harus di cek pada form Manage Data Pegawai. Button Proses untuk menghitung gaji pegawai, button simpan untuk melakukan penyandian pada data yang dimasukan, kemudian 10. else if ascii[count] = 97 ascii[count] = 122 { 11. ascii[count] = ascii[count] - 97 + key 26 + 97;} 12. plainChar[count] = char ascii[count];} 13. return new string plainChar;} 14. } 11 1. string kunci = tbadmin.Text.Trim; 2. g.setGaji_BulantextBox1.Text = OTP .otptextBox1.Text, kodegeser .Encryptkunci, Convert .ToInt3223; 3. g.setNipcbnip.Text; 4. g.setGajiPokoktbgajipokok_HG.Text = OTP .otptbgajipokok_HG.Text, kodegeser .Encryptkunci, Convert .ToInt3223; 5. g.setTun_IStunistri.Text = OTP .otptunistri.Text, kodegeser .Encryptkunci, Convert .ToInt3223; 6. g.setTunAnaktunanak.Text = OTP .otptunanak.Text, kodegeser .Encryptkunci, Convert .ToInt3223; 7. g.setTunBerastunberas.Text = OTP .otptunberas.Text, kodegeser .Encryptkunci, Convert .ToInt3223; 8. g.setTun_Pajaktunpajak.Text = OTP .otptunpajak.Text, kodegeser .Encryptkunci, Convert .ToInt3223; 9. g.setPot_ipnpot_ipn.Text = OTP .otppot_ipn.Text, kodegeser .Encryptkunci, Convert .ToInt3223; 10. g.setPotPajakpotpajak.Text = OTP .otppotpajak.Text, kodegeser .Encryptkunci, Convert .ToInt3223; 11. g.setPotLaintbpotlain.Text = OTP .otptbpotlain.Text, kodegeser .Encryptkunci, Convert .ToInt3223; 12. g.setGaji_bersihtbgajibersih.Text = OTP .otptbgajibersih.Text, kodegeser .Encryptkunci, Convert .ToInt3223; menyimpannya kedalam database. Hasil enkripsi data gaji dapat dilihat pada Gambar 10. Gambar 10 Hasil Enkripsi dan penyimpanan data gaji. Pemanggilan fungsi untuk proses enkripsi dan penyimpanan data gaji pegawai ke dalam database, ditunjukkan pada Kode Program 1. Kode Program 1 Proses Enkripsi Data Gaji Pada Kode Program 1, baris 1-11 yang berfungsi sebagai perintah pada button simpan pada form Manage Data Gaji data gaji akan mengenkripsikan Gaji_Bulan, Gaji_Pokok, Tun_Anak, Tun _Beras, Pot_Pajak, Pot_Lain, Gaji_Bersih dengan menggunakan encode pada class rumus dan kunci pada textbox yang disubtitusikan pada class kodegeser yang telah disubtitusikan dengan menggunakan nilai kunci 23 dan kemudian menyimpan data tersebut dalam database. Proses dekripsi data juga dapat dilakukan pada form Manage Data gaji pada Gambar 9. Hasil dekripsi data gaji dapat dilihat pada Gambar 11. 12 Gambar 11 Hasil Dekripsi Pemanggilan fungsi untuk proses dekripsi data gaji, ditunjukkan pada Kode Program 2. Kode Program 2 Fungsi Dekripsi Kode Program 2 merupakan perintah untuk medekripsikan data yang telah terenkripsi dengan membuat list database yang sama dengan database dengan menampilkan data yang telah terdekripsi. Baris 1-14 merupakan perintah untuk membuat list database. Baris 18-24 merupakan perintah untuk mendekripsikan row pada database sesuai dengan list database menggunakan decode pada class 1. dgvgaji.DataSource = null ; 2. Dao. DAO d = new Dao. DAO ; 3. List Model. Gaji ld = new List Model. Gaji ; 4. DataGridViewRow rw = new DataGridViewRow ; 5. ld = d.getGajiPegawaiList; 6. dgvgaji.ColumnCount = 8; 7. dgvgaji.Columns[0].Name = NIP ; 8. dgvgaji.Columns[1].Name = Gaji Bulan ; 9. dgvgaji.Columns[2].Name = Gaji Pokok ; 10. dgvgaji.Columns[3].Name = Tun Anak ; 11. dgvgaji.Columns[4].Name = Tun Beras ; 12. dgvgaji.Columns[5].Name = Pot Pajak ; 13. dgvgaji.Columns[6].Name = Pot Lain ; 14. dgvgaji.Columns[7].Name = Gaji Bersih ; 15. for int i = 0; i ld.Count; i++ { 16. String no = i + 1 + ; 17. String nip = ld[i].getNip+ ; 18. string gaji_bulan = OTP .otpld[i].getGaji_Bulan + , kodegeser .Encrypttbadmin.Text, Convert .ToInt3223; 19. String gaji_pokok = OTP .otpld[i].getGajiPokok + , kodegeser .Encrypttbadmin.Text, Convert .ToInt3223; 20. String tun_anak = OTP .otpld[i].getTunAnak + , kodegeser .Encrypttbadmin.Text, Convert .ToInt3223; 21. String tun_beras = OTP .otpld[i].getTunBeras + , kodegeser .Encrypttbadmin.Text, Convert .ToInt3223; 22. String pot_pajak = OTP .otpld[i].getPotPajak + , kodegeser .Encrypttbadmin.Text, Convert .ToInt3223; 23. String pot_lain = OTP .otpld[i].getPotLain + , kodegeser .Encrypttbadmin.Text, Convert .ToInt3223; 24. String gaji_bersih = OTP .otpld[i].getGaji_bersih + , kodegeser .Encrypttbadmin.Text, Convert .ToInt3223; 25. string [] row = new string [] { nip, gaji_bulan, gaji_pokok, tun_anak, tun_beras, pot_pajak, pot_lain, gaji_bersih }; 26. dgvgaji.Rows.Addrow;} 27. MessageBox .Show this , Data Berhasil Di Dekripsi ;} 13 rumus dan dengan kunci pada textbox yang disubtitusikan pada class kodegeser yang telah disubtitusikan dengan menggunakan nilai kunci 11 dan menampilkan data tersebut pada datagridview. Proses perhitungan waktu enkripsi data juga diterapkan dan ditampilkan ketika admin melakukan proses menyimpan data gaji ke dalam database. Hal ini berguna untuk memberikan informasi tentang kecepatan algoritma yang digunakan untuk enkripsi data. Waktu proses akan keluar jika inisialisasi masukan yang dilakukan tidak ada kesalahan, artinya data dapat masuk ke dalam database. Proses ini dapat dilihat pada Gambar 12. Gambar 12 Informasi Waktu Proses. Gambar 12 merupakan waktu yang diperoleh hasil dari proses enkripsi dengan data asli sebagai berikut : Gaji Bulan = June-2014 Gaji Pokok = 2900000 Tunjangan IS = 290000 Tunjangan Anak = 58000 Tunjangan Beras = 300000 Tunjangan Pajak = 145000 Potongan IPN = 191400 Potongan Pajak = 145000 Potongan Lain-lain = 87000 Gaji Bersih = 3026000 Hasil dari proses enkripsi data tersebut dapat dilihat pada informasi berikut ini : Gaji Bulan = KKPC_IE Gaji Pokok = jXZV[V Tunjangan IS = jXZV[V Tunjangan Anak = mYZV[ Tunjangan Beras = kQZV[V Tunjangan Pajak = iU_V[V Potongan IPN = iX[R[V Potongan Pajak = iU_V[V Potongan Lain-lain = `VZV[ Gaji Bersih = kQXP[V Form Report Data Gaji merupakan hasil inputan ke dalam database pada Form Manage Data Gaji pada Gambar 9 yang nantinya juga akan di printout atau 14 disimpan dalam bentuk file dalam beberapa format dokumen yakni Excel.xls, Word.doc atau PDF.pdf. Data yang tedapat pada Report data gaji adalah gabungan dari beberapa data pegawai yg ada pada database data pegawai dan data gaji pegawai yang telah didekripsikan, dapat dilihat pada Gambar 12. Gambar 12 Form Report Data Gaji Dari skenario pengujian yang dilakukan dapat diperoleh hasil pengujian sesuai dengan yang diharapkan. Dari hasil pengujian pada setiap item yang ada pada aplikasi peminjaman barang ini terangkum pada Tabel Hasil Pengujian Sistem yang dibangun perlu diuji dan dianalisis untuk melihat apakah sudah memenuhi kebutuhan dan perancangan sistem. Pengujian sistem menggunakan pengujian black box yaitu metode pengujian yang berfokus pada persyaratan fungsional perangkat lunak yang dibuat. Hasil pengujian sistem yang telah dibuat, ditunjukkan pada Tabel 4. Tabel 4 Tabel Hasil Pengujian BlackBox No Item yang Diuji Sifat Pengujian Cara Pengujian Hasil yang Diharapkan Hasil Uji 1. Login Normal Memasukkan Username : Password : Sistem akan menampilkan pesan “Selamat Datang” dan juga menampilkan halaman utama Sistem. Sesuai Data Salah Memasukkan Username : Password : Sistem tidak akan menampilkan halaman utama dan akan muncul pesan kesalahan “Periksa Username dan Password” Sesuai 2. Manage Normal Menyimpan dan Sistem akan Sesuai 15 Data Pegawai mengubah data pegawai sesuai dengan field yang disediakan, dan menghapus data pegawai. menampilkan pesan jika data berhasil disimpan, diubah, dan dihapus dan akan menampilkan semua data pegawai di tabel pegawai yang telah dikelolah oleh admin pada Form Manage Data Pegawai Data Salah Memasukkan NIP pegawai yang telah disimpan, menyimpan data dengan field yang kosong. Sistem tidak akan mnyimpan, mengubah dan menghapus data pegawai, namun akan menampilkan pesan kesalahan. Sesuai 3. Manage Data Gaji Normal Menghitung, menyimpan dan menghapus data gaji pegawai sesuai dengan field yang disediakan. Menampilkan Data gaji yang dikelolah pada form manage data gaji yang telah terenkripsi pada database gaji pegawai. Sesuai Data salah Memasukkan NIP pegawai yang telah dihitung gajinya dan disimpan, menyimpan data tanpa menghitung gaji terlebih dahulu Sistem tidak akan mnyimpan, mengubah dan menghapus data pegawai, namun akang menampilkan pesan kesalahan. Sesuai 4. Report Data Pegawai Normal Melihat data pegawai, simpan data pegawai dalam bentuk file, cetak data pegawai Report data pegawai akan menampilkan Data pegawai yang ada pada database pegawai untuk di simpan atau dicetak sesuai keinginan admin. Sesuai 5. Report Data Gaji Normal Melihat data pegawai gaji, simpan data gaji dalam bentuk file, cetak data gaji Report data gaji akan menampilkan data gaji pegawai yang ada pada database gaji yang telah didekripsikan oleh sistem untuk di simpan atau dicetak sesuai keinginan admin. Sesuai 16 Berdasarkan hasil pengujian blackbox testing dari setiap item, dapat dijelaskan bahwa setiap menu yang ada sudah dapat berjalan sesuai dengan fungsinya masing-masing baik dalam kelompok uji secara normal maupun dalam kelompok uji tidak normal atau pengujian pesan kesalahan semuanya telah berjalan sesuai dengan rancangan yang telah dibangun. Performance testing merupakan salah satu model yang dimiliki oleh black box testing. Performance testing merupakan evaluasi kemampuan program untuk beroperasi dengan benar dipandang dari sisi acuan kebutuhan seperti kecepatan eksekusi program. [7]. Dalam analisa ini akan dilakukan beberapa pengujian dengan nominal gaji yang akan dienkripsikan. Hal ini dilakukan guna mengetahui apakah nominal gaji yang karakternya panjang akan memakan waktu yang lebih lama dengan nominal gaji yang lebih pendek. Kunci yang digunakan memliki panjang 13 karakter. Untuk panjang nominal gaji yang akan digunakan maksimal memiliki panjang delapan karakter dan terpendek akan digunakan lima karakter, karena sistem yang dibuat merupakan enkripsi gaji yang terdiri dari lima sampai delapan angka nominal gaji pegawai. Tabel 3 Analisa Waktu terhadap Panjang Password Panjang Kunci karakter Panjang Nominal Gaji karakter Rata-rata Waktu Proses ms 13 5 0,005 13 6 0,0010 13 7 0,0011 13 8 0,0011 Hasil percobaan waktu rata-rata tiap baris pada Tabel 3 dilakukan sebanyak 30 kali percobaan, sehingga diperoleh rata-rata waktu prosesnya. Dari hasil rata-rata waktu proses pada Tabel 3, maka dapat disimpulkan bahwa peningkatan panjang jumlah karakter nominal gaji yang akan dienkripsi juga mempengaruhi rata-rata waktu proses, maka dapat diambil kesimpulan bahwa waktu proses dipengaruhi oleh jumlah data yang digunakan. Dalam hal ini, waktu proses dipengaruhi oleh panjang karakter nominal gaji yang dimasukan. Pada pengujian tingkat keamanan ini, akan digunakan metode Kasiski Examination. Kasiski Examination mengambil keuntungan dari kenyataan bahwa sejumlah kata umum akan dienkripsi dengan huruf kunci yang sama, menurut pengumpulan pengulangan huruf pada ciphertext. Tes Kasiski akan efektif, jika terjadi banyak pengulangan pada ciphertext yang dihasilkan. [8]. Berikut adalah contoh ciphertext yang memiliki perulangan dan mengijinkan seorang kriptanalis untuk mengetahui panjang kunci yang digunakan. Plaintext : 12345 5536 2467 12345 2253 234 2467 key : SEAN Ciphertext : 17 bwrzf et{`sa|gsvnbwrzfes|fva|`qa|gsv Perulangan karakter bwrzf diasumsikan bahwa datanya memiliki plaintext yang sama. Jarak perulangannya adalah 16 karakter, berarti memiliki kemungkinan panjang kunci adalah 16, 8, 4, atau 2. Perulangan |gsv juga diasumsikan bahwa datanya memilik plaintext yang sama, dengan jarak perulangan sebesar 20 karakter, berarti kemungkinan panjang kunci yang digunakan adalah 20, 10, 5, 4, atau 2. Dengan mengambil persamaan dari keduanya, maka disimpulkan bahwa panjang kuncinya adalah 2 atau 4. Metode Kasiski hanya dapat menyimpulkan panjang kunci yang digunakan untuk enkripsi data, akan tetapi tidak dapat memprediksi kunci yang digunakan untuk proses enkripsi data.

5. Simpulan