• Tidak ada hasil yang ditemukan

T1 672009112 Full text

N/A
N/A
Protected

Academic year: 2017

Membagikan "T1 672009112 Full text"

Copied!
18
0
0

Teks penuh

(1)

1 1. Pendahuluan

Keamanan informasi data adalah proses untuk melindungi data dari perusakan atau penyalahgunaan yang dilakukan oleh orang dalam atau di luar sebuah organisasi. Informasi yang merupakan hasil pengolahan dari data, mempunyai nilai yang berbeda bagi setiap orang. Seringkali sebuah informasi menjadi sangat berharga, dan tidak semua orang diperkenankan untuk mengetahuinya. Untuk itu perlu adanya kerahasiaan tentang informasi tersebut demi mencegah akses terhadap data-data yang dianggap sensitif oleh orang-orang yang tidak berhak di dalam maupun di luar organisasi.

Karena alasan tersebut keamanan untuk menjaga kerahasiaan informasi harus diterapkan demi melindungi data organisasi yang telah tersimpan. Teknologi informasi digunakan untuk menjaga keamanan informasi data. salah satunya yaitu penyimpanan data pada basis data menggunakan teknik kriptografi yang diterapkan pada data tersebut. Dengan adanya teknologi informasi, Kantor Pelayanan dan Perbendaharaan Negara (KPPN) Ambon melakukan suatu perubahan sistem dalam pengelolaan data gaji seluruh pegawai dengan mengkonversikan berkas-berkas gaji pegawai ke bentuk digital menggunakan sistem perhitungan gaji berbasis Web Service, dan menyimpan data gaji ke dalam database agar tidak terjadi kehilangan data. Namun, pengelolaan data menggunakan sistem perhitungan gaji masih terdapat permasalahan yang timbul, dimana berkas atau data-data pegawai yang telah dimasukan ke dalam database, sering terjadi perubahan pada nominal gaji pegawai oleh pihak-pihak yang tidak bertanggung jawab, sehingga terjadi ketidaksesuaian perhitungan dengan pengeluaran anggaran untuk pembayaran gaji Pegawai Negeri Sipil di KPPN Ambon.

Solusi untuk menangani masalah tersebut adalah dengan merancang sebuah sistem guna mengamankan data gaji pegawai dengan penerapan algoritma kriptografi one time pad untuk meningkatkan keamanan basis data pada data gaji pegawai di KPPN Ambon. Skema enkripsi yang akan dibangun di sini menerapkan teknik pada kriptografi klasik, yang menganut kerahasiaan pada kunci (key). Kunci pada algoritma ini juga menggunakan teknik substitusi kode geser (Shif) demi keamanan yang lebih baik.

2. Tinjauan Pustaka

Pada penelitian yang berjudul ”Pemanfaatan Kembali Kriptografi Klasik dengan Melakukan Modifikasi Metode-Metode Kriptografi yang ada” dibahas mengenai memanfaatkan karakter-karater ASCII kriptografi klasik masih dapat digunakan pada jaman sekarang. Hal ini dikarenakan, karakter ASCII memiliki extended character yang berjumlah 128, sehingga jumlah total karakter yang dapat digunakan adalah 256. Dengan kata lain, jumlah kerumitan algoritma akan meningkat karena kemungkinan-kemungkinan yang ada semakin besar daripada hanya menggunakan karakter alfabet yang berjumlah 26 [1].

(2)

2

sederhana namun unbreakable. Di dalamnya memuat contoh aplikasi serta pengaplikasiannya sehingga dapat memberikan gambaran tentang kegunaan dari kriptografi one time pad itu sendiri [2].

Berdasarkan penelitian terdahulu yang membahas tentang penerapan pemanfaatan kode algoritma klasik dan algoritma One Time Pad maka dilakukan penelitian yang bertujuan untuk menerapkan Algoritma One Time Pad untuk Meningkatkan Keamanan Basis Data pada Data Gaji Pegawai, karena karakter yang digunakan pada kriptografi One Time Pad adalah karakter ASCII (American Standard Code for Information Interchange) yaitu suatu standar internasional dalam kode huruf dan simbol seperti Hex dan Unicode tetapi ASCII lebih bersifat universal yang memungkinkan untuk memiliki tingkat kerumitan yang lebih besar daripada karakter alfabet. Selain itu, penelitian ini juga akan menerapkan teknik substitusi Kode Geser (Shift) pada kunci yang digunakan untuk kriptografi One Time Pad. Penggabungan ini dimaksudkan agar kriptografi ini memiliki tingkat kerumitan algoritma yang lebih daripada hanya menggunakan satu algoritma kriptografi yang ada. Penggabungan ini akan diterapkan untuk menyimpan data gaji pegawai pada sistem.

Kriptografi (cryptography) berasal dari Bahasa Yunani yang terdiri dari dua suku kata yaitu “cryptós” artinya menyembunyikan dan “gráphein” artinya tulisan. Kriptografi adalah ilmu yang mempelajari teknik-teknik matematika yang berhubungan dengan aspek keamanan informasi seperti kerahasiaan, integritas data, serta otentikasi [3].

Beberapa istilah yang sering digunakan di dalam kriptografi adalah plaintext, ciphertext, encrypt, decrypt, cipher, kunci, dan sistem kriptografi. Plaintext adalah informasi yang dapat dibaca dan dimengerti maknanya. Ciphertext adalah informasi yang telah disandikan ke bentuk yang lain sehingga maknanya tidak dapat dimengerti. Encrypt adalah proses menyandikan plaintext menjadi ciphertext. Decrypt adalah proses mengembalikan ciphertext menjadi plaintext. Cipher adalah algoritma yang digunakan untuk melakukan transformasi plaintext ke ciphertext. Kunci adalah parameter yang diperlukan cipher untuk transformasi encrypt dan decrypt. Sistem kriptografi adalah kumpulan yang terdiri atas algoritma kriptografi, semua plaintext dan ciphertext yang mungkin serta kunci.

Teknik kriptografi yang dibahas dalam penelitian ini Algoritma One-Time Pad ditemukan oleh Mayor Joseph Mauborgne dan Gilbert Vernam pada tahun 1917. Algoritma One-Time Pad merupakan algoritma berjenis kunci simetris yang artinya bahwa kunci yang digunakan untuk melakukan enkripsi dan dekripsi adalah sama. Dalam proses enkripsi, algoritma ini menggunakan cara stream cipher dimana cipher berasal dari hasil exlusive-or antara bit plaintext dan bit key [2].

(3)

3

pergeseran yang berbeda. Sistem kerja enkripsi One Time Pad adalah setiap kali melakukan enkripsi, dibangkitkan kunci (pad) yang panjangnya sama dengan teks yang akan dienkripsikan.

Berikut adalah contoh konsep sederhana yang dibangun oleh One Time Pad [4] :

Misalkan terdapat kunci k yang terdiri atas string bit k0k1…kN dan digunakan untuk mengenkripsi plainteks m = m0m1…mN dengan melakukan operasi XOR (Ekslusif-OR) per bitnya. Jadi, cipherteks c = c0c1..cN didapat dari

Setiap kunci hanya digunakan satu kali dan kemudian dibuang. Karena setiap kunci hanya digunakan satu kali dengan probabilitas yang sama dan hanya terdapat tepat satu kunci yang mengenkripsi m ke c, maka one-time pad memiliki kerahasiaan yang sempurna. Sistem kerja dari metode ini juga membutuhkan pengetahuan di bidang logika matematika, khususnya meng-XOR-kan operand satu dengan operand lainnya. Makna dari Ekslusif-OR adalah bahwa kalau kedua input sama maka nilai keluarannya adalah F (false), tetapi bila kedua input berbeda akan menghasilkan nilai T (true) [5].

Selain logika XOR juga dibutuhkan pemahaman dalam pengkonversian ASCII (American Standard Codes for International Interchange) menjadi biner. Hal ini karena, setiap karakter yang dimasukkan akan dilihat bentuk ASCII nya kemudian diubah ke biner, hal ini juga berlaku untuk kunci yang digunakan. Kemudian setelah mendapatkan nilai binernya, data baru akan di-XOR-kan. Tabel 1 adalah contoh biner dan XOR pada karakter.

Tabel 1 Contoh Penggunaan Biner dan XOR pada Karakter.

Hasil XOR dari Tabel 1 adalah 0010 0011 dimana bila diubah ke bentuk bilangan desimal akan mendapatkan nilai 35, dan bentuk ASCII dari 35 adalah symbol pagar (#). Hasil dari nilai ini belum tentu selamanya berupa symbol pagar, karena hal ini dapat berubah-rubah dari hasil XOR yang didapatkan.

Selain dapat digunakan per karakter kata, one time pad juga dapat digunakan pada kata ataupun kalimat. Berikut ini adalah contoh penggunaan kriptografi one time pad pada suatu kata. Misalkan kata “NAMA” sebagai masukan, sedangkan kunci menggunakan kata “bete”. Maka, “NAMA” di sini akan diubah per karakter katanya menjadi nilai biner, sehingga didapat nilai sebagai berikut :

Karakter Nilai ASCII Biner Inputan A 65 0100 0001 Kunci b 98 0110 0010 Hasil XOR 0010 0011

(4)

4

Masukan Kunci

Sehingga jika masukan “NAMA” dan kunci “bete” di-XOR-kan, maka akan didapat hasil XOR seperti pada Tabel 2

Tabel 2 Contoh penggunaan Biner dan XOR pada Kata.

Tabel 2 menjelaskan tentang penggunaan biner pada kata “NAMA” dan kata kunci “bete”, kemudian hasil biner tersebut di-XOR-kan sehingga dapat diperoleh hasilnya. Apabila nilai biner dari Hasil XOR pada Tabel 2 dikembalikan ke bentuk angka desimal, kemudian melihat bentuk ASCII dari angka desimal tersebut maka diperoleh hasil ,$9$. Dengan kata lain, kata ”NAMA” yang dienkripsikan akan berubah menjadi “,$9$”.

Kunci pada penelitian ini juga menggunakan algoritma subtitusi kode geser. Teknik subtitusi kode geser (shift) dengan modulus 26 memberikan angka ke setiap alfabet seperti A↔0, B↔1....Z↔25 [6].

Contohnya, teks asli ”UNIVERSITAS” maka teks asli akan mendapatkan angka ”20 13 8 21 4 17 18 8 19 0 18” sesuai dengan penomoran alfabet. Untuk mendapatkan teks-kode, harus mempunyai kunci. Sebagai contoh, kunci yang diambil disini adalah 11, maka jumlahkan setiap angka dari teks asli dengan 11. Jika hasil penjumlahannya lebih dari 26, maka hasilnya dikurangi 26. Misalnya 20 + 11 = 31 –26 = 5. Setelah dijumlahkan, maka hasilnya adalah ”5 24 19 6 15 2 3 19 4 11 3”. Setelah dikonversikan maka akan menghasilkan teks-kode ” FYTGPCDTELD” seperti pada Gambar 1.

A B C D E F G H I J K L M

0 1 2 3 4 5 6 7 8 9 10 11 10

N O P Q R S T U V W X Y Z

13 14 15 16 17 18 19 20 21 22 23 24 25 Gambar 1 Contoh Penomoran Ke Setiap Alfabet.

3. Metode dan Perancangan Sistem

Penelitian yang dilakukan, diselesaikan melalui tahapan penelitian yang terbagi dalam lima tahapan, yaitu: (1) Analisis kebutuhan dan pengumpulan data,

Inputan 01001110 01000001 01001101 01000001

Kunci 01100010 01100101 01110100 01100101

Hasil XOR 00101100 00100100 00111001 00100100

N : 0100 1110 A : 0100 0001 M : 0100 1101 A : 0100 0001

b : 0110 0010 e : 0110 0101 t : 0111 0100

(5)

5

(2) Perancangan sistem, (3) Perancangan aplikasi/program, (4) Implementasi dan pengujian sistem.

Gambar 2 Tahapan Penelitian

Tahapan penelitian pada Gambar 2, dapat dijelaskan sebagai berikut. Tahap pertama: Analisis kebutuhan dan pengumpulan data dengan cara menganalisa kebutuhan pengguna akan tingkat kebutuhan sistem, kebutuhan hardware, kebutuhan software. Selain itu pada tahap ini dilakukan proses wawancara dengan Kepala Seksi Pencarian Dana dan juga staff bagian Informasi Gaji. Data yang dikumpulkan adalah informasi mengenai penggajian yang dilakukan, dan keamanan data yang diperlukan; Tahap kedua: Setelah proses penelitian dan analisa kebutuhan selesai, tahap selanjutnya adalah melakukan perancangan sistem menggunakan diagram Unified Modeling Language (UML) untuk mengetahui setiap proses beserta semua aktifitas dari admin yang akan dibangun pada sistem. Perancangan database untuk merancang tabel-tabel yang berfungsi untuk menyimpan data yang dibutuhkan dalam aplikasi sistem. Perancangan antarmuka, yaitu merancang antarmuka yang berfungsi sebagai penghubung interaksi antara admin dengan sistem; Tahap ketiga, perancangan sistem yaitu merancang aplikasi/program sesuai kebutuhan sistem berdasarkan perancangan sistem yang telah dilakukan. Misalnya bagaimana sistem berjalan saat penyimpanan data dan pengambilan data; Tahap keempat: implementasi dan pengujian sistem, yaitu mengimplementasikan tahapan penelitian kedua dan ketiga ke dalam sebuah program, apabila implementasi program sudah selesai, maka dilakukan pengujian, serta dianalisis untuk melihat apakah aplikasi yang telah dibuat sudah sesuai dengan yang diharapkan atau tidak ada error, jika belum sesuai maka akan dilakukan perbaikan.

Perancangan sistem dibuat berdasarkan kebutuhan yang telah dianalisis sebelumnya, menggunakan Flowchart.

Gambar 3 menjelaskan tentang bagaimana struktur sistem pengenkripsian data pada sistem keamanan data yang akan dirancang. Sistem akan berjalan ketika start kemudian akan mengecek data input yang ada. Setelah data input diperoleh, maka kunci akan di-generate sehingga mempunyai panjang karakter sama dengan input yang diperoleh. Kemudian data input akan diubah ke dalam bentuk biner, hal ini

Perancangan Aplikasi/Program

Implementasi dan Pengujian Sistem Analisis Kebutuhan dan Pengumpulan Data

Perancangan Sistem meliputi Perekayasaan Perangkat Lunak, Perancangan Database dan Perancangan

(6)

6

juga terjadi pada kunci yang didapat tadi. Setelah mendapatkan nilai biner dari input dan kunci, maka input dan kunci akan di-XOR-kan sehingga memperoleh hasil dari nilai XOR tersebut. Nilai XOR tersebut kemudian diubah ke dalam bentuk karakter. Setelah itu proses pengenkripsian data selesai.

Gambar 3 FlowchartProses Pengenkripsian Data

Tidak

Start

Inputan (nip, nama, status, jum anak, golongan, gaji

pokok, tunjangan)

Kunci berupa subtitusi Shif dari kata Administrator

String input diubah menjadi Biner Contoh : A = 1000001

String Kunci diubah menjadi Biner Contoh : c = 1100011

Proses XOR Input dan Kunci

Contoh : 1000001 1100011 Hasil XOR : 0100010

Hasil XOR diubah kenilai Desimal Biner = 0100010

Decimal = 34

Hasil Desimal diubah kenilai ASCII Decimal = 34

ASCII = “

Simpan Hasil

End Berhasil

disimpan?

(7)

7

Gambar 4 Flowchart Proses Pendekripsian Data

Gambar 4 menjelaskan tentang bagaimana struktur sistem pendekripsian data pada sistem keamanan data yang akan dirancang. Sistem akan berjalan ketika start kemudian akan mengecek hasil enkripsi yang ada. Setelah data enkripsi diperoleh, maka akan dicari kuncinya. Kemudian data enkripsi akan diubah ke dalam bentuk biner, hal ini juga terjadi pada kunci yang didapat tadi. Setelah mendapatkan nilai

Start

Inputan ( nama, status, jum anak, golongan, gaji pokok,

tunjangan)

Kunci berupa subtitusi Shif dari kata Administrator

String Hasil Enkripsi diubah menjadi Biner

Contoh : “ =

String Kunci diubah menjadi Biner Contoh : c = 1100011

Proses XOR Hasil Enkripsi dan Kunci Contoh : 0100010

1100011 Hasil XOR : 1000001

Hasil XOR diubah kenilai Desimal Biner = 1000001

Desimal = 65

Hasil Desimal diubah kenilai ASCII Desimal = 65

ASCII = A

Lihat Hasil

(8)

8

biner dari data yang telah dienkripsi dan kunci, maka data tersebut dan kunci akan di-XOR-kan sehingga memperoleh hasil dari nilai XOR tersebut. Nilai XOR tersebut kemudian diubah ke dalam bentuk karakter. Setelah itu proses pendekripsian data selesai.

Contoh enkripsi yang dilakukan dengan menggunakan Algoritma One Time Pad dan teknik subtitusi kode geser seperti contoh Tabel 3.

Tabel 3 Tabel Penggunaan Kriptografi One Time Pad

Nama Golongan Gaji Pokok

Inputan AMIN III/C 5250000

Kunci yang digunakan

(hasil subtitusi kode geser dari “amin” dengan nilai kunci 23)

xjfk Xjfkx xjfkxjf

Inputan Binary 1000001 1001101 1001001 1001110 1001001 1001001 1001001 0101111 1000011 0110101 0110010 0110101 0110000 0110000 0110000 0110000

Kunci Binary 1111000

1101010 1100110 1101011 1111000 1101010 1100110 1101011 1111000 1111000 1101010 1100110 1101011 1111000 1101010 1100110 Hasil XOR Binary 0111001 0100111 0101111 0100101 0110001 0100011 0101111 1000100 0111011 1001101 1011000 1010011 1011011 1001000 1011010 1010110

Hasil enkripsi 9’/% 1#/D; MXS[HZV

(9)

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 1Pseudo 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 2Pseudo 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.Append(combinedChar);}

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.ToInt32(plainChar[count]); 8. if (ascii[count] >= 65 && ascii[count] <= 90){

(10)

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]));}

(11)

11 1. string kunci = tbadmin.Text.Trim();

2. g.setGaji_Bulan(textBox1.Text = OTP.otp(textBox1.Text, (kodegeser.Encrypt(kunci, Convert.ToInt32(23))))); 3. g.setNip(cbnip.Text);

4. g.setGajiPokok(tbgajipokok_HG.Text = OTP.otp(tbgajipokok_HG.Text, (kodegeser.Encrypt(kunci, Convert.ToInt32(23)))));

5. g.setTun_IS(tunistri.Text = OTP.otp(tunistri.Text, (kodegeser.Encrypt(kunci,Convert.ToInt32(23))))); 6. g.setTunAnak(tunanak.Text = OTP.otp(tunanak.Text, (kodegeser.Encrypt(kunci, Convert.ToInt32(23))))); 7. g.setTunBeras(tunberas.Text = OTP.otp(tunberas.Text,

(kodegeser.Encrypt(kunci, Convert.ToInt32(23))))); 8. g.setTun_Pajak(tunpajak.Text = OTP.otp(tunpajak.Text,

(kodegeser.Encrypt(kunci, Convert.ToInt32(23))))); 9. g.setPot_ipn(pot_ipn.Text = OTP.otp(pot_ipn.Text,

(kodegeser.Encrypt(kunci, Convert.ToInt32(23))))); 10. g.setPotPajak(potpajak.Text = OTP.otp(potpajak.Text,

(kodegeser.Encrypt(kunci, Convert.ToInt32(23))))); 11. g.setPotLain(tbpotlain.Text = OTP.otp(tbpotlain.Text,

(kodegeser.Encrypt(kunci, Convert.ToInt32(23)))));

12. g.setGaji_bersih(tbgajibersih.Text = OTP.otp(tbgajibersih.Text, (kodegeser.Encrypt(kunci, Convert.ToInt32(23)))));

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

(12)

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.otp(ld[i].getGaji_Bulan() + "", (kodegeser.Encrypt(tbadmin.Text, Convert.ToInt32(23))); 19.String gaji_pokok = OTP.otp(ld[i].getGajiPokok() + "",

(kodegeser.Encrypt(tbadmin.Text, Convert.ToInt32(23)))); 20.String tun_anak = OTP.otp(ld[i].getTunAnak() + "",

(kodegeser.Encrypt(tbadmin.Text, Convert.ToInt32(23)))); 21.String tun_beras = OTP.otp(ld[i].getTunBeras() + "",

(kodegeser.Encrypt(tbadmin.Text, Convert.ToInt32(23)))); 22.String pot_pajak = OTP.otp(ld[i].getPotPajak() + "",

(kodegeser.Encrypt(tbadmin.Text, Convert.ToInt32(23)))); 23.String pot_lain = OTP.otp(ld[i].getPotLain() + "",

(kodegeser.Encrypt(tbadmin.Text, Convert.ToInt32(23)))); 24.String gaji_bersih = OTP.otp(ld[i].getGaji_bersih() + "",

(kodegeser.Encrypt(tbadmin.Text, Convert.ToInt32(23)))); 25.string[] row = new string[] { nip, gaji_bulan,

gaji_pokok, tun_anak, tun_beras, pot_pajak, pot_lain, gaji_bersih };

26.dgvgaji.Rows.Add(row);}

(13)

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 I/S = 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 I/S = 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@

(14)

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

(15)

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.

(16)

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 :

(17)

17 bwrzfet{`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

Berdasarkan hasil penelitian, pembahasan dan pengujian yang telah dilakukan tentang penerapan algoritma One Time Pad untuk meningkatkan keamanan basis data pada data gaji pegawai di Kantor Pelayanan Perbendaharaan Negara (KPPN) Ambon, maka diperoleh beberapa kesimpulan sebagai berikut : (1) Dihasilkan sebuah sistem informasi data pegawai dan data gaji pegawai beserta implementasi keamanan data gaji pegawai, dengan menggunakan kriptografi one time pad; (2) Penyandian kriptografi one time pad dapat diimplementasikan pada sistem yang dibuat dengan memanfaatkan algoritma kode geser sebagai kunci dari algoritma kriptografi one time pad; (4) Kecepatan proses enkripsi pada sistem yang dibangun dengan menggunakan algoritma kriptografi one time pad dan kode geser dipengaruhi oleh panjang plaintext yang akan dienkripsi; (5) Metode Kasiski hanya dapat menyimpulkan panjang kunci yang digunakan untuk enkripsi data, akan tetapi tidak dapat memprediksi kunci yang digunakan untuk proses enkripsi data.

Saran untuk pengembangan sistem ini adalah sebagai berikut (1) Aplikasi penyimpanan data dapat dikembangkan menjadi aplikasi untuk enkripsi semua data yang ada di KPPN ambon; (2) Proses enkripsi dan dekripsi dapat dikembangkan lagi, sehingga tidak hanya data gaji yang bentuknya integer, melainkan semua type data yang ada dalam aplikasi dapat dienkripsi dan didekripsi.

6. Daftar Pustaka

[1] Primanio, 2007. Pemanfaatan Kembali Kriptografi Klasik dengan melakukan Modifikasi Metode-Metode Kriptografi yang ada. Bandung : Institut Teknologi Bandung.

[2] Astutik, Duwi. 2007. Algoritma Enkripsi One Time Pad untuk Sistem Pengamanan Access Database Server Menggunakan Bahasa Pemrograman Visual Basic. Semerang : Universitas Negeri Semarang.

(18)

18

[4] Lubis, Haris, 2010. Studi Analisis Aplikasi Algoritma One-Time Pad dan AES pada Keamanan Sistem Cloud Computing. Bandung : Institut Teknologi Bandung.

[5] Manongga, Danny, 2007, Matematika Diskrit, Salatiga: Fakultas Teknologi Informasi Universitas Kristen Satya Wacana.

[6] Airus, Dony, 2008, Pengantar Ilmu Kriptografi, Teori, Analisis dan Implementasi, Yogyakarta: penerbit Andy.

[7] Williams, Laurie, 2006, Testing Overview and Black-Box Testing Techniques, http://agile.csc.ncsu.edu/SEMaterials/BlackBox.pdf. Diakses tanggal 11 Mei 2014.

[8] Namiesyva, Twindania, 2007, Kriptografi Sebagai Media Pembelajaran

dalam Studi Matematika Tingkat Sekolah,

Gambar

Tabel 1 Contoh Penggunaan Biner dan XOR pada Karakter.
Tabel 2 Contoh penggunaan Biner dan XOR pada Kata.
Gambar 2 Tahapan Penelitian
Gambar 3 Flowchart Proses Pengenkripsian Data
+7

Referensi

Dokumen terkait

Mahasiswa dapat menganalisis Bagaimana perusahaan dan para pebisnis menanggapi tantangan- tantangan baru terhadap Bisnis dan Etika 2 Kompetensi Dasar : Mahasiswa dapat

Pada proses pembelajaran ini guru memanfaatkan botol bekas dalam membuat karya seni kerajinan, karena botol mudah didapatkan di lingkungan sehari-hari. Di SMALB-CD YPAC II

Sistem informasi manajemen merupakan serangkaian sub bab informasi yang menyeluruh dan terkoordinasi dan secara rasional terpadu yang mampu mentransformasi data sehingga

[r]

Sebagaimana disajikan pada Gambar 5, hasil analisis tersebut menunjukkan bahwa kadar air volumetri tetap memiliki hubungan yang sangat erat dengan impedensi listrik bila nilai

Survey GPS untuk pemantauan penurunan muka tanah yang dilakukan di Jakarta ini telah dilakukan tiga belas kali dimulai dari tahun 1997 sampai dengan tahun 2011, seperti

Sebuah perusahaan yang melakukan bisnis di internet akan mengurangi biaya tambahan karena biaya tersebut tidak digunakan untuk gedung dan pelayanan pelanggan (customer service),

Solcca cajro csciiertiicpKcn ofcripni in i bsayDitltii kosMJll tca-t: caulitea yna&lt;j aqya bcdopl teroteca ' dolna. csnccrl fcateJ»fcaiica oton litcra tar-11 twrotor