• Tidak ada hasil yang ditemukan

Implementasi Algoritma Knapsack dan Algoritma Boldi-Vigna (ζ4) Pada Keamanan dan Kompresi File Teks

N/A
N/A
Protected

Academic year: 2017

Membagikan "Implementasi Algoritma Knapsack dan Algoritma Boldi-Vigna (ζ4) Pada Keamanan dan Kompresi File Teks"

Copied!
90
0
0

Teks penuh

(1)

LISTING PROGRAM

1. Knapsack

public class Classknapsack{

void Btn_KRClick(object sender, EventArgs e) { richTextBox1.Text = null;

richTextBox1.Text = richTextBox1.Text + w[i] + "\n"; }

Console.WriteLine("Modular inverse does not exist. Decryption aborted");

(2)

for(int i = 0; i < encoded.Length; i++){

void Btn_KPClick(object sender, EventArgs e) { richTextBox2.Text = null;

richTextBox2.Text = richTextBox2.Text + beta[i] + "\n"; }

(3)

} }

void Btn_generateClick(object sender, EventArgs e) { int temp = 0;

void Button1Click(object sender, EventArgs e) {

richTextBox4.Text + encoded[i].ToString() + "\n"; textBox5.Text =

Math.Round(Convert.ToDecimal(watch.ElapsedMilliseconds)/1000,4) .ToString()+" s";

textBox6.Text = richTextBox4.Text.Length.ToString(); MessageBox.Show("file berhasil dienkripsi");

}

void Btn_DekomdekClick(object sender, EventArgs e) {

richTextBox3.Text = null; watch.Start();

string[] encodeds = richTextBox4.Text.Split((Char)10); int[] encoded = Array.ConvertAll(encodeds, int.Parse); string decoded = Classknapsack.Decrypt(encoded, w, m, n); watch.Stop();

richTextBox3.Text = decoded.ToString(); textBox5.Text =

Math.Round(Convert.ToDecimal(watch.ElapsedMilliseconds)/1000,4) .ToString()+" s";

(4)

2. Boldi Vigna

public static void InsertionSort(int[] freq, String charset){ fr = freq;

cs = charset;

int n = charset.Length;

(5)

public static void boldivigna(String st)

void Button3Click(object sender, EventArgs e) { watch.Start();

String dc = classboldivigna.Decode(richTextBox1.Text); String ds = classboldivigna.Decompress(dc, cs, bolvig); richTextBox4.Text = ds.Substring(0,ds.Length-1);

watch.Stop(); textBox7.Text =

Math.Round(Convert.ToDecimal(watch.ElapsedMilliseconds)/1000,4 ).ToString()+" s";

textBox8.Text = richTextBox4.Text.Length.ToString();

MessageBox.Show("file berhasil didekompresi"); }

void Btn_enkomClick(object sender, EventArgs e) {

richTextBox3.Text = null; watch.Start();

String kalimat = richTextBox4.Text; classboldivigna.boldivigna(kalimat); String stb =

classboldivigna.StringToStb(kalimat,classboldivigna.cs,classbol divigna.bolvig);

String code = classboldivigna.Encode(stb); watch.Stop();

richTextBox3.Text = code; textBox3.Text =

Math.Round(Convert.ToDecimal(watch.ElapsedMilliseconds)/1000,4) .ToString()+" s";

textBox4.Text = richTextBox3.Text.Length.ToString(); MessageBox.Show("file berhasil dikompresi");

(6)

CURRICULUM VITAE

1. Biodata

2. Riwayat Pendidikan

2012 – 2016 : S1 Ilmu Komputer Universitas Sumatera Utara, Medan 2009 – 2012 : SMA Negeri 2 Rantau Selatan

2006 – 2009 : SMP Swasta Muhammadiyah-35 Sigambal 2000 – 2006 : SD Negeri 114376 Kebun Sayur

3. Keahlian

Pemrograman : C#, MATLAB

Database : MySql

Design : Photoshop, Corel Draw Perkantoran : Microsoft Office

4. Pengalaman Organisasi

[2012 – 2013] : Anggota Himpunan Mahasiswa Labuhanbatu [2012 – 2014] : Anggota Ikatan Mahasiswa Ilmu Komputer

Nama : Erna Lestari

Nim : 121401024

Alamat Sekarang : Jln. Air Bersih Ujung, Perumahan D’Green Townhouse no.3, Medan

Alamat Orang Tua : Lingk.Kebun Sayur, Sigambal, Rantau Selatan

(7)

6. Seminar

[2014] : Seminar Internasional Youth Convention

[2014] : Seminar Nasional Literasi Informasi “SENARAI” [2015] : Seminar Sosialisasi Toward ASEAN Community 2015:

ASEAN Goes to Campus

(8)

DAFTAR PUSTAKA

Chandra, A.J. 2006. Analisa Perbandingan Kinerja Algoritma Kompresi Huffman, LZW (Lempel-Ziv-Welch) dan DMC (Dynamic Markov Compressions). Skripsi.Universitas Kristen Petra

Denning, D.E.R. 1982. Cryptography And Data Security. London : Addison-Wesley Hayati, D. 2013. Implementasi Pengamanan File Text dengan Algoritma Kriptografi

Knapsack dan Algoritma Steganografi FOF (First of File). Skripsi. Universitas Sumatera Utara

Indra, R. 2009. Kompresi Data dengan Algoritma Huffman dan Perbandingannya dengan Algoritma LZW dan DMC. Makalah. Teknik Informatika Institut Teknologi Bandung

Kandaga, T. 2011.Analisis Penerapan Kompresi dan Dekompresi Data dengan Menggunakan Metode Statistik dan Kamus. Vol. 2 No.2, Desember 2006. Hal 81-91. Bandung. Jurusan Teknik Informatika, Universitas Kristen Maranatha Pattiasina, T.J. 2014. Rancang Bangun Aplikasi Enkripsi dan Dekripsi Email Dengan

Menggunakan Algoritma Advanced Encryption Standard Dan Knapsack. Jurnal Teknika. Institut Informatika Indonesia

Raharjo, B. 2015. Mudah Belajar C#. Informatika bandung. Bandung

Sadikin, R. 2012. Kriptografi untuk Keamanan Jaringan dan Implementasinya dalam Bahasa Java.Andi Offset. Yogyakarta

Saleh, R.H. 2015. Perancangan Perangkat Lunak Pengamanan File Text Menggunakan Algoritma El Gamal Dan Kompresi File Text Menggunakan Algoritma Huffman. Skripsi. Universitas Sumatera Utara

Salomon, D. 2007. Variable-Length Codes For Data Compression.London:Springer Solihin, M. 2013. Perancangan Sistem Pengamanan Dan Kompresi data Teks dengan

Fibonacci Encoding dan Algoritma Shannon-Fano serta Algoritma Deflate. Skripsi. Universitas Sumatera Utara

(9)

BAB 3

ANALISIS DAN PERANCANGAN SISTEM

3.1 Analisis Sistem

Sebelum dilakukan tahap perancangan, perlu dilakukan analisis sistem yang akan dibangun. Analisis sistem merupakan istilah yang secara kolektif mendeskripsikan fase-fase awal pengembangan sistem. Analisis sistem pada dasarnya merupakan tahapan yang ditunjukan untuk menciptakan pemahaman yang menyeluruh terhadap sistem sehingga diperoleh gambaran tentang kebutuhan, cara kerja dan alur data yang akan dikerjakan sistem. Hal ini akan membantu mempermudah dalam proses implementasi sistem.

3.1.1 Analisis Masalah

Dengan sistem ini, masalah yang akan diselesaikan adalah pengamanan data teks dari pihak yang tidak memiliki hak aksas data tersebut. Dalam sistem ini file teks akan dienkripsi menggunakan algoritma Knapsack. Selanjutnya untuk kompresi data teks, dilakukan dengan menggunakan algoritma Boldi-Vigna (ζ4). Sehingga diharapkan file teks ini terjaga keamanannya serta ukuran file dapat lebih kecil dari sebelumnya.

Yang menjadi masalah utama penelitian ini adalah bagaimana mengkombinasikan algoritma knapsack dan Boldi-Vigna (ζ4) pada file teks. Sehingga diharapkan file teks ini terjaga keamanannya serta ukuran file dapat lebih kecil dari sebelumnya. Setelah dipilah dan dibagi kedalam beberapa kategori, dapat diuraikan sebagai berikut:

1. User adalah seorang yang melakukan proses bangkit kunci, enkripsi dan kompresi serta dekompresi dan dekripsi.

2. Proses : Sistem ini akan berjalan mengkombinasikan kedua algoritma Knapsack dan Boldi-Vigna (ζ4) pada file teks yaitu proses Enkripsi kemudian Kompresi atau Dekompresi kemudian Dekripsi.

(10)

Selanjutnya masalah diuraikan kedalam bentuk Diagram Tulang Ikan (Ishikawa Diagram) dapat dilihat pada gambar 3.1 dibawah ini :

Gambar 3.1 Diagram Ishikawa Untuk Analisis Permasalahan Sistem

3.1.2 Analisis Persyaratan

(11)

a. Persyaratan fungsional

Persyaratan fungsional yang harus dipenuhi oleh sistem yang akan dibangun ini adalah :

1. Sistem ini harus mampu membaca file teks berupa *.txt dan *.doc.

2. Sistem ini akan membangkitkan bilangan bulat positif pada pembuatan kunci algoritma Knapsack.

3. Sistem ini akan menghasilkan file teks hasil kompresi berupa *.bv. 4. Sistem ini akan menyimpan kunci kriptografi dalam bentuk *.key.

b. Persyaratan nonfungsional 1. Performa

Sistem yang akan dibangun harus dapat menunjukkan hasil dari kompresi dan enkripsi serta dekompresi dan dekripsi.

2. Mudah dipelajari dan digunakan

Sistem yang dibangun harus sederhana dan agar mudah dipelajari dan digunakan oleh pengguna (user)

3. Hemat biaya

Sistem ini tidak memerlukan perangkat tambahan maupun sistem pendukung dalam penggunaannya.

4. Dokumentasi

Sistem dapat menyimpan file teks yang didekripsi dan kompresi, dekompresi dan enkripsi serta kunci yang dibangkitkan.

5. Manajemen kualitas

sistem memiliki kualitas yang baik yaitu proses enkripsi dan kompresi, dekompresi dan dekripsi file teks dan membangkitkan kunci relatif cepat.

3.1.3 Pemodelan Sistem

(12)

Berikut ini adalah diagram use case yang dirancang sebagai pemodelan persyaratan sistem berdasarkan informasi kebutuhan sistem dan aktor yang berperan didalamnya. a. Use case diagram

Gambar 3.2 Use Case Diagram Pada Sistem

Use case diagram pada gambar 3.2 menjelaskan bahwa sistem dapat diakses oleh seorang aktor yang dinamakan pengguna. Terdapat tiga use case utama yaitu Bangkit Kunci, Enkripsi dan kompresi serta Dekompresi dan Dekripsi.

b. Activity Diagram

Activity diagram menggambarkan berbagai alur aktivitas dalam sistem yang sedang dirancang, bagaimana masing-masing alur berawal, decision yang mungkin terjadi, dan bagaimana mereka berakhir. Berikut ini adalah diagram Activity pada sistem yang akan dibangun.

(13)

Gambar 3.3 Activity Diagram Bangkit Kunci

Activity diagram menggambarkan interaksi aktifitas antara pengguna sistem secara detil dan berurut. Pada Gambar 3.3 kotak paling kiri merupakan aktifitas yang dilakukan oleh pengguna, sedangkan kotak sebelah kanan adalah respon yang diberikan sistem terhadap aktifitas yang dilakukan pengguna terhadap sistem.

(14)

Gambar 3.4 Activity Diagram Enkripsi Dan Kompresi

Activity diagram menggambarkan interaksi aktifitas antara pengguna sistem secara detil dan berurut. Pada Gambar 3.4 kotak paling kiri merupakan aktifitas yang dilakukan oleh pengguna, sedangkan kotak sebelah kanan adalah respon yang diberikan sistem terhadap aktifitas yang dilakukan pengguna terhadap sistem.

(15)

Gambar 3.5 Activity Diagram Dekompresi Dan Dekripsi

Activity diagram menggambarkan interaksi aktifitas antara pengguna sistem secara detil dan berurut. Pada Gambar 3.5 kotak paling kiri merupakan aktifitas yang dilakukan oleh pengguna, sedangkan kotak sebelah kanan adalah respon yang diberikan sistem terhadap aktifitas yang dilakukan pengguna terhadap sistem.

c. Sequence Diagram

(16)
(17)

Gambar 3.8 Sequence Diagram Dekompresi Dan Dekripsi

3.1.4 Flowchart

3.1.4.1 Flowchart sistem secara umum

(18)

Mulai

Input file *.txt atau *.doc

Ciphertext Enkripsi dengan metode

Knapsack

Kompresi dengan metode Boldi-Vigna (ζ4)

Hasil Kompresi

Selesai

(19)

b. Flowchart Dekompresi dan Dekripsi dapat dilihat pada gambar 3.10 dibawah ini :

Mulai

Masukkan Hasil Dari Enkripsi Dan

Kompresi

Hasil Dekompresi Dekompresi Dengan Metode Boldi-Vigna (ζ4)

Dekripsi Dengan Metode

Knapsack Plaintext

Selesai

Gambar 3.10 Flowchart Dekompresi Dan Dekripsi

3.1.4.2 Flowchart proses Algoritma Knapsack

(20)

Start

Input w (1) . w (2) Distance

Hitung Deret Superincreasing / Kunci

Rahasia

Input n

End

Hitung Kunci Publik w (kr) . n mod m

Input m

m > Jumlah Kunci Rahasia

GCD (m,n) =1 Ya

Ya

Tidak

Tidak

Gambar 3.11 Flowchart Bangkit Kunci

b. Flowchart Enkripsi

(21)

Start

Input Plaintext

Input Kunci Publik

Konversi Kode ASCII Plainteks Ke Biner

Hitung Kriptogram

Ciphertext

End

Gambar 3.12 Flowchart Enkripsi

c. Flowchart Dekripsi

(22)

Start

Input Ciphertext

Input Kunci Rahasia

Tentukan Nilai n-¹ Dan k (1+m . k) / n

Dekripsi

Hasil Dekripsi

End

Ubah Posisi Bit Sesuai Posisi Key (Index)

Kode Biner Di Ubah Ke Karakter ASCII

Plaintext

(23)

3.1.4.3 Flowchart proses Boldi-Vigna(ζ4).

a. Flowchart Kompresi

Flowchart proses kompresi dengan metode Boldi-Vigna (ζ4). dapat dilihat pada gambar 3.14 dibawah ini :

Start

Input File Teks (*.txt Atau *.doc)

Ubah Isi File Menjadi Bilangan ASCII

End

Kompresi Dengan Boldi Vigna (ζ4)

Hasil Kompresi

Gambar 3.14 Flowchart Kompresi

b. Flowchart Dekompresi

Flowchart Dekompresi dengan metode Boldi-Vigna (ζ4) dapat dilihat pada gambar

(24)

Start

Input File Kompresi (*.bv)

Ubah Menjadi Bilangan ASCII

End Dekompresi

Hasil Plaintext

Gambar 3.15 Flowchart Dekompresi

3.2 Perancangan Interface

Pada perancangan sistem terdapat pembuatan Graphic User Interface (GUI) yang akan mempermudah user dalam menggunakan sistem yang ada. Pada sistem, terdapat 5 buah Form yang akan ditampilkan antara lain Form Beranda, Form Menu yang di dalamnya terdapat tiga Form yaitu Bangkit Kunci, Enkripsi dan Kompresi,

Dekompresi dan Dekripsi, Form Bantuan, Form Tentang dan Form Keluar. a. Form Beranda

(25)

Gambar 3.16 Form Beranda Keterangan :

1. Tab Beranda

Berguna untuk menampilkan tampilan beranda pada sistem yang ada. 2. Tab Menu

Berguna untuk menampilkan menu yang bisa kita pilih pada sistem. 3. Tab Bantuan

Berguna untuk menampilkan menu bantuan pada sistem yang ada. 4. Tab Tentang

Berguna untuk menampilkan menu tentang pada sistem yang ada. 5. Tab Keluar

Berguna untuk keluar dari sistem. 6. Label Text

Berisi Judul skripsi yang dibuat. 7. Picture Box

(26)

8. Label Text

Berisi keterangan mengenai sistem.

b. Form Menu

Pada Form menu berisi tiga tab yaitu Bangkit Kunci, Enkripsi dan Kompresi, Dekompresi dan Dekripsi. Untuk melihat tampilan Menu dapat dilihat pada gambar 3.17 dibawah ini :

Gambar 3.17 Form Menu

Keterangan : 1. Tab Beranda

Berguna untuk menampilkan tampilan beranda pada sistem yang ada. 2. Tab Menu

Berguna untuk menampilkan menu yang bisa kita pilih pada sistem. 3. Tab Bantuan

(27)

4. Tab Tentang

Berguna untuk menampilkan menu tentang pada sistem yang ada. 5. Tab Keluar

Berguna untuk keluar dari sistem. 6. Tab Bangkit Kunci

Berguna untuk menampilkan menu Bangkit Kunci pada sistem yang ada. 7. Tab Enkripsi dan Kompresi

Berguna untuk menampilkan menu Enkripsi dan Kompresi pada sistem yang ada.

8. Tab Dekompresi dan Dekripsi

Berguna untuk menampilkan menu Dekompresi dan Dekripsi pada sistem yang ada.

d. Form bangkit kunci

Pada Form bangkit kunci terdapat beberapa button dan text box yang akan digunakan untuk melakukan bangkit kunci. Form Bangkit Kunci dapat kita lihat pada gambar 3.18 dibawah ini :

(28)

Keterangan :

1. Tab Beranda

Berguna untuk menampilkan tampilan beranda pada sistem yang ada. 2. Tab Menu

Berguna untuk menampilkan menu yang bisa kita pilih pada sistem. 3. Tab Bantuan

Berguna untuk menampilkan menu bantuan pada sistem yang ada. 4. Tab Tentang

Berguna untuk menampilkan menu tentang pada sistem yang ada. 5. Tab Keluar

Berguna untuk keluar dari sistem. 6. Group Box

Berguna untuk mengelompokkan button dan Text box pada sistem. 7. Text box

Berguna untuk mengambil nilai bangkit kunci yang akan di input oleh user. 8. Button Generate

Berguna untuk menghasilkan nilai bangkit kunci. 9. Button Simpan

Berguna untuk menyimpan file teks. 10.Button Bersih

Berguna untuk menghapus data yang telah di input dan menjadikan nya default. 11.Button kembali

Berguna untuk kembali ke menu utama. 12.Label

Berguna untuk memberi nama pada sistem. 13.Text box

Berguna untuk menampilkan barisan nilai kunci rahasia dan kunci publik.

e. Form Enkripsi dan Kompresi

(29)

Gambar 3.19 Form Enkripsi dan Kompresi Keterangan :

1. Tab Beranda

Berguna untuk menampilkan tampilan beranda pada sistem yang ada. 2. Tab Menu

Berguna untuk menampilkan menu yang bisa kita pilih pada sistem. 3. Tab Bantuan

Berguna untuk menampilkan menu bantuan pada sistem yang ada. 4. Tab Tentang

Berguna untuk menampilkan menu tentang pada sistem yang ada. 5. Tab Keluar

Berguna untuk keluar dari sistem. 6. Group Box

Berguna untuk mengelompokkan button dan Text box pada sistem. 7. Button Pilih Teks

(30)

8. Text box

Berisi informasi dari file teks yang diinput. 9. Button Load Kunci

Berguna untuk mengambil bilangan kunci. 10.Text box

Berisi informasi dari load kunci. 11.Button Enkripsi

Berguna untuk mengenkripsi data teks yang di input. 12.Text box

Berisi informasi dari hasil enkripsi. 13.Button Enkripsi dan Kompresi

Berguna untuk mengenkripsi dan mengkompresi file yang telah di input pada sistem.

14.Text box

Berisi informasi dari hasil enkripsi dan kompresi. 15.Button Simpan

Berguna untuk menyimpan file teks hasil enkripsi dan kompresi. 16.Button Bersih

Berguna untuk menghapus data yang telah di input dan menjadikan nya default. 17.Button kembali

Berguna untuk kembali ke menu utama.

f. Form Dekompresi dan Dekripsi

(31)

Gambar 3.20 Form Dekompresi Dan Dekripsi

Keterangan : 1. Tab Beranda

Berguna untuk menampilkan tampilan beranda pada sistem yang ada. 2. Tab Menu

Berguna untuk menampilkan menu yang bisa kita pilih pada sistem. 3. Tab Bantuan

Berguna untuk menampilkan menu bantuan pada sistem yang ada. 4. Tab Tentang

Berguna untuk menampilkan menu tentang pada sistem yang ada. 5. Tab Keluar

Berguna untuk keluar dari sistem. 6. Button Pilih Teks

(32)

7. Group Box

Berguna untuk mengelompokkan button dan Text Box pada sistem. 8. Text box

Berisi informasi dari file teks yang diinput. 9. Button Dekompresi

Berguna untuk mendekompresi file teks yang telah diinput. 10.Text box

Berisi informasi dari hasil dekompresi. 11.Button Load Kunci

Berguna untuk mengambil bilangan kunci. 12.Text box

Berisi informasi dari load kunci. 13.Button Dekompresi dan Dekripsi

Berguna untuk mendekompresi dan mendekripsi file yang telah di input pada sistem.

14.Text box

Berisi informasi dari hasil dekompresi dan dekripsi. 15.Button Simpan

Berguna untuk menyimpan file teks hasil dekompresi dan dekripsi. 16.Button Bersih

Berguna untuk menghapus data yang telah di input dan menjadikan nya default. 17.Button kembali

Berguna untuk kembali ke menu utama.

g. Form Bantuan

Pada Form Bantuan terdapat beberapa button dan grup box yang berisi

(33)

Gambar 3.21 Form Bantuan

Keterangan : 1. Tab Beranda

Berguna untuk menampilkan tampilan beranda pada sistem yang ada. 2. Tab Menu

Berguna untuk menampilkan menu yang bisa kita pilih pada sistem. 3. Tab Bantuan

Berguna untuk menampilkan menu bantuan pada sistem yang ada. 4. Tab Tentang

Berguna untuk menampilkan menu tentang pada sistem yang ada. 5. Tab Keluar

Berguna untuk keluar dari sistem. 6. Grup Box

(34)

h. Form Tentang

Pada Form Tentang terdapat beberapa button dan grup box yang berisi keterangan untuk membantu user menggunakan sistem yang ada. Form Tentang dapat kita lihat pada gambar 3.22 dibawah ini :

Gambar 3.22 Form Tentang

Keterangan :

1. Tab Beranda

Berguna untuk menampilkan tampilan beranda pada sistem yang ada. 2. Tab Menu

Berguna untuk menampilkan menu yang bisa kita pilih pada sistem. 3. Tab Bantuan

Berguna untuk menampilkan menu bantuan pada sistem yang ada. 4. Tab Tentang

(35)

5. Tab Keluar

Berguna untuk keluar dari sistem. 6. PictureBox

Berguna untuk meletakkan foto dalam format *.PNG. 7. GrupBox

(36)

BAB 4

IMPLEMENTASI DAN PENGUJIAN SISTEM

4.1 Implementasi Sistem

Tahap implementasi sistem dilakukan setelah tahap analisis dan perancangan sistem selesai dilakukan. Tahap ini merupakan tahapan penerjemahan sistem kedalam bahasa pemrograman atau yang lebih sering disebut sebagai pengkodean. Sistem ini akan diimplementasikan pada bahasa C# dengan menggunakan Sharp Develop 4.3. Sistem ini memiliki 4 Form Utama, yaitu Form Beranda, Form Menu, Form Tentang, dan Form Bantuan. Form Menu memiliki 3 Form turunan, yaitu Form Bangkit Kunci, Form Enkripsi, Form Enkripsi dan Kompresi, dan Form Dekompresi dan Dekripsi.

4.1.1 Proses tahapan Algoritma Knapsack dan Boldi-Vigna (ζ4) 4.1.1.1 Proses Bangkit Kunci

Untuk menentuikan barisan kunci rahasia harus memasukkan parameter sebagai berikut :

W (1) = 2 W (2) = 3 Distance = 2

Parameter tersebut kemudian dimasukkan kedalam rumus berikut :

W(3) = (distance) + W(1) + W(2)

W(4) = (distance + 1) + W(1) + W(2) + W(3)

W(5) = (distance + 2) + W(1) + W(2) + W(3) + W(4)

W(6) = (distance + 3) + W(1) + W(2) + W(3) + W(4) + W(5)

(37)

Dimana nilai awal itu adalah W(1) = 2. Sehingga didapat :

Maka dari perhitungan berikut didapatkan bahwa kunci rahasia adalah 2, 3, 7, 15, 31, 63, 127, 250

Untuk menentukan barisan Kunci publik , tentukan nilai Modulus m yaitu angka yang lebih besar dari jumlah semua elemen didalam barisan dan nilai n yaitu nilai yang tidak mempunyai persekutan terhadap m. Pada sistem ini nilai m dibangkitkan secara acak :

Kp = barisan Kunci Publik

w(Kr) = nilai setiap barisan kunci rahasia Sehingga didapat :

(38)

4.1.1.2 Proses Enkripsi dan Kompresi

Proses awal tahap ini adalah enkripsi terlebih dahulu kemudian kompresi. Misal : Plaintext = ERNA LESTARI

Kunci Publik = 8, 12, 28, 60, 124, 252, 5, 497 Kunci rahasia = 2, 3, 7, 15, 31, 63, 127, 250

m = 503

n = 4

n-1 = 133

Enkripsi Plaintext

Blok Plaintext ke-1 = 01000101 = E

Kunci Publik = 8, 12, 28, 60, 124, 252, 5, 497

Kriptogram = (1 x 12) + (1 x 252) + (1 x 497) = 761

Blok Plaintext ke-2 = 01010010 = R

Kunci Publik = 8, 12, 28, 60, 124, 252, 5, 497 Kriptogram = (1 x 12) + (1 x 60) + (1 x 5) = 77

Blok Plaintext ke-3 = 01001110 = N

Kunci Publik = 8, 12, 28, 60, 124, 252, 5, 497

Kriptogram = (1 x 12) + (1 x 124) + (1 x 252) + (1 x 5) = 393

Blok Plaintext ke-4 = 01000001 = A

Kunci Publik = 8, 12, 28, 60, 124, 252, 5, 497 Kriptogram = (1 x 12) + (1 x 497) = 509

Blok Plaintext ke-5 = 00100000 = Sp

(39)

Blok Plaintext ke-6 = 01001100 = L

Kunci Publik = 8, 12, 28, 60, 124, 252, 5, 497

Kriptogram = (1 x 12) + (1 x 124) + (1 x 252) = 388

Blok Plaintext ke-7 = 01000101 = E

Kunci Publik = 8, 12, 28, 60, 124, 252, 5, 497

Kriptogram = (1 x 12) + (1 x 252) + (1 x 497) = 761

Blok Plaintext ke-8 = 01010011 = S

Kunci Publik = 8, 12, 28, 60, 124, 252, 5, 497

Kriptogram = (1 x 12) + (1 x 60) + (1 x 5) + (1 x 497) = 574

Blok Plaintext ke-9 = 01010100 = T

Kunci Publik = 8, 12, 28, 60, 124, 252, 5, 497

Kriptogram = (1 x 12) + (1 x 60) + (1 x 252) = 324

Blok Plaintext ke-10 = 01000001 = A

Kunci Publik = 8, 12, 28, 60, 124, 252, 5, 497 Kriptogram = (1 x 12) + (1 x 497) = 509

Blok Plaintext ke-11 = 01010010 = R

Kunci Publik = 8, 12, 28, 60, 124, 252, 5, 497 Kriptogram = (1 x 12) + (1 x 60) + (1 x 5) = 77

Blok Plaintext ke-12 = 01001001 = I

Kunci Publik = 8, 12, 28, 60, 124, 252, 5, 497

Kriptogram = (1 x 12) + (1 x 124) + (1 x 497) = 633

Maka Ciphertext nya adalah 761, 77, 393, 509, 28, 388, 761, 574, 324, 509, 77, 633.

Kompresi Ciphertext

(40)

Untuk kompresi Ciphertext menggunakan kode ASCII dapat dilihat pada gambar 4.1 dibawah ini :

Tabel 4.1 Jumlah Bit Menggunakan Kode ASCII

Σ Frequensi ASCII Bit Freq*Bit

Sedangkan perhitungan jumlah bit seteleah di kompresi menggunakan metode Boldi-Vigna (ζ4) dapat dilihat pada gambar Tabel 4.2 dibawah ini :

Tabel 4.2 Jumlah Bit Menggunakan Metode Boldi-Vigna (ζ4) Σ Frequensi Boldi-Vigna Bit Freq*Bit

Enter 12 1000 4 48

(41)

“10010 10100 11000 1000 10010 10010 1000 10011 10101 10011 1000 10110 11001 10101 1000 11010 10111 1000 10011 10111 10111 1000 10010 10100 11000 1000 10110 10010 11011 1000 10011 11010 11011 1000 10110 11001 10101 1000 10010 10010 1000 10100 10011 10011 1000”

” Dengan uraian sebagai berikut :

10010 10100 11000 1000 7 6 1 Enter 10010 10010 1000 7 7 Enter

10011 10101 10011 1000 3 9 3 Enter 10110 11001 10101 1000 5 0 9 Enter 11010 10111 1000 2 8 Enter

(42)

Sebelum ditulis ke sebuah file hasil kompresi dilakukan penambahan bit-bit padding dan flag bits diawal dan akhir string bit. Bit-bit itu dihasilkan dari panjang string bit itu sendiri apakah habis dibagi delapan dan berapa sisanya jika dibagi delapan. Karena jumlah string bit 213 tidak habis dibagi delapan dan sisanya adalah 5.

Maka dapat dibuat padding “000” dan flagnya adalah “00000011”. Maka diperoleh bit sebagai berikut :

10010 10100 11000 1000 10010 10010 1000 10011 10101 10011 1000 10110 11001 10101 1000 11010 10111 1000 10011 10111 10111 1000 10010 10100 11000 1000 10110 10010 11011 1000 10011 11010 11011 1000 10110 11001 10101 1000 10010 10010 1000 10100 10011 1001 11000000 00000011

Total bit seluruhnya setelah penambahan padding dan flag bits adalah 224 bit. Dengan uraian hasil kompresi sebagai berikut:

10010101 00110001 00010010 10010100 01001110 10110011 10001011 01100110 • 1 DC2 ” N ³ ‹ f 10110001 10101011 11000100 11101111 01111000 10010101 00110001 00010110 ± « Ä ï x • 1 SYN

10010110 11100010 01111010 11011100 01011011 00110101 10001001 01001010 – â y Ü [ 5 HTJ J 00101001 00111001 11000000 00000011

) 9 À ETX

Hasil Kompresi yaitu “

(43)

Compresion Ratio

4.1.1.3 Proses Dekompresi dan Dekripsi

Setelah file berhasil di enkripsi dan di kompresi, selanjutnya file hasil kompresi di Dekompresi terlebih dahulu untuk mengembalikan ciphertext kemudian selanjutnya di dekripsi. Proses dekompresi didapatkan dari tabel kompresi 4.2 diatas yang menghasilkan bit sebagai berikut :

10010 10100 11000 1000 10010 10010 1000 10011 10101 10011 1000 10110 11001 10101 1000 11010 10111 1000 10011 10111 10111 1000 10010 10100 11000 1000 10110 10010 11011 1000 10011 11010 11011 1000 10110 11001 10101 1000 10010 10010 1000 10100 10011 1001 11000000 00000011

Pembacaan string berdasarkan dengan tabel kode Boldi-Vigna (ζ4) sehingga diperoleh

hasil sebagai berikut : 10010 10100 11000 1000 7 6 1 Enter 10010 10010 1000 7 7 Enter

10011 10101 10011 1000 3 9 3 Enter 10110 11001 10101 1000 5 0 9 Enter 11010 10111 1000 2 8 Enter

(44)

10010 10100 11000 1000 7 6 1 Enter 10110 10010 11011 1000 5 7 4 Enter 10011 11010 11011 1000 3 2 4 Enter

Hasil dekompresi adalah Ciphertext yaitu “761, 77, 393, 509, 28, 388, 761, 574, 324, 509, 77, 633 “

Selanjutnya setelah file berhasil di dekompresi dan telah mendapatkan hasilnya, kemudian akan dilakukan dekripsi. Proses dekripsi adalah :

Ciphertext : 761, 77, 393, 509, 28, 388, 761, 574, 324, 509, 77, 633. Kemudian gunakan rumus :

Ciphertext.n-1 mod m

Maka :

761.126 mod 503 = 316 = 3+63+250, berkoresponden dengan 01000101 yaitu E 77.126 mod 503 = 145 = 3+5+127, berkoresponden dengan 01010010 yaitu R

393. 126 mod 503 = 224 = 3+31+63+127, berkoresponden dengan 01001110 yaitu N 509. 126 mod 503 = 253 = 3+250, berkoresponden dengan 01000001 yaitu A

(45)

388. 126 mod 503 = 97 = 3+31+63, berkoresponden dengan 01001100 yaitu L 761. 126 mod 503 = 316 = 3+63+250, berkoresponden dengan 01000101 yaitu E 574. 126 mod 503 = 395 = 3+15+127+250, berkoresponden dengan 01010011 yaitu S 324. 126 mod 503 = 81 = 3+15+63, berkoresponden dengan 01010100 yaitu T

509. 126 mod 503 = 253 = 3+250, berkoresponden dengan 01000001 yaitu A 77. 126 mod 503 = 145 = 3+15+127, berkoresponden dengan 01010010 yaitu R 633. 126 mod 503 = 284 = 3+31+250, berkoresponden dengan 01001001 yaitu I

Dari hasil dekripsi di atas, maka didapat Plaintext awal yaitu “ERNA LESTARI”.

4.2 Tampilan Antarmuka Sistem

Implementasi dari tahapan analisis sistem dan perancangan dapat dilihat dari tampilan antarmuka sistem sebagai berikut :

4.2.1 Tampilan Form Beranda

(46)

4.2.2 Tampilan Form Menu

Form ini memiliki 3 form turunan, yaitu form Bangkit kunci, form Enkripsi dan kompresi dan form Dekompresi dan Dekripsi.

Form menu dapat dilihat pada gambar 4.2 dibawah ini :

Gambar 4.2 Tampilan Form Menu

4.2.3 Tampilan Form Bangkit Kunci

(47)

4.2.4 Tampilan Form Enkripsi dan Kompresi

Form ini merupakan form untuk melakukan proses Enkripsi dan Kompresi data. Tampilan Enkripsi dan Kompresi dapat dilihat pada Gambar 4.4 dibawah ini :

Gambar 4.4 Tampilan Form Enkripsi Dan Kompresi

4.2.5 Tampilan Form Dekompresi dan Dekripsi

Form ini merupakan form untuk melakukan proses Dekompresi dan Dekripsi file yang telah di enkripsi dan kompresi terlebih dahulu. Tampilan Dekompresi dan Dekripsi dapat dilihat pada gambar 4.5 dibawah ini :

(48)

4.2.6 Tampilan Form Bantuan

Form ini berisi tentang panduan singkat dalam pengguanaan software ini. Tampilan form bantuan dapat dilihat pada gambar 4.6 dibawah ini :

Gambar 4.6 Tampilan Form Bantuan

4.2.7 Tampilan Form Tentang

Form ini berisi tentang data diri penulis dan keterangan singkat dari program ini. Tampilan form tentang dapat dilihat pada gambar 4.7 dibahwah ini :

(49)

4.3 Pengujian

Pengujian sistem merupakan tahap mengidentifikasi hasil dari implementasi sistem apakah sistem telah berjalan sesuai dengan fungsi-fungsi yang sebelumnya ditentukan pada tahap analisis dan perancangan sistem. Pengujian sistem ini dilakukan pada File teks yang berekstensi *.doc dan *.txt. Pengujian sistem yang dilakukan pada penelitian ini dibagi dalam 3 proses utama yaitu pengujian proses Bangkit Kunci, Enkripsi dan Kompresi dan pengujian proses Dekompresi dan Dekripsi.

4.3.1 Pengujian Bangkit Kunci

Form ini merupakan interaksi antara user dan aplikasi untuk melakukan bangkit kunci dengan algoritma knapsack. Pengujian Bangkit Kunci dapat dilihat pada gambar 4.8 dibawah ini :

Gambar 4.8 Tampilan Form Pengujian Bangkit Kunci

(50)

dan distance, kemudian klik button barisan kunci rahasia maka sistem akan menampilkan hasil kunci rahasia. Selanjutnya klik button generate, secara otomatis sistem akan menghasilkan nilai m, dan input nilai n. Kemudian tekan button barisan kunci publik untuk menghasilkan kunci publik. Setelah itu, simpan file hasil bangkit kunci dengan format penyimpanan (*.key), bisa kita lihat pada gambar 4.9 dibawah ini:

Gambar 4.9 Tampilan Form Penyimpanan Hasil Bangkit Kunci

4.3.2 Pengujian Enkripsi dan Kompresi

Form ini merupakan form untuk melakukan proses enkripsi dan Kompresi file teks. Setelah form Enkripsi dan Kompresi muncul, maka lakukan langkah-langkah berikut ini:

1. Mencari file teks yang berformat *.doc atau *.txt dengan cara tekan button pilih teks, kemudian akan muncul pada sistem isi dari file, nama file dan ukuran file. 2. Setelah itu masukkan kunci yang telah di dapat dari hasil bangkit kunci

(51)

Gambar 4.10 Open Dialog Load Kunci

(52)

Gambar 4.11 Tampilan Hasil Enkripsi

4. Selanjutnya tekan button Kompresi untuk mengkompresi ciphertext (hasil enkripsi) tersebut sehingga muncul hasil kompresi pada sistem dapat kita lihat pada gambar 4.12 dan klik button simpan untuk menyimpan hasil kompresi dalam bentuk .bv dapat kita lihat pada gambar 4.13 dibawah ini :

(53)

Gambar 4.13 Tampilan Save File Hasil Kompresi 4.3.3 Pengujian Dekompresi dan Dekripsi

Form ini merupakan form untuk melakukan proses Dekompresi dan Dekripsi. Setelah

form Dekompresi dan Dekripsi muncul, maka lakukan langkah-langkah dibawah ini : 1. Masukkan file yang telah dikompresi sebelumnya. Format file adalah *.bv dapat

dilihat pada gambar 4.14 dibawah ini :

Gambar 4.14 Tampilan Open File

(54)

Gambar 4.15 Tampilan Hasil Dekompresi

3. Setelah file berhasil di Dekompresi, maka yang harus dilakukan selanjutnya adalah masukkan kunci rahasia untuk mendekripsi file hasil dekompresi tersebut. Kunci untuk mendapatkan kunci rahasia, klik button load kunci, pilih file (*.privkey) yang telah disimpan sebelumnya pada saat bangkit kunci dapat dilihat pada gambar 4.16 dibawah ini :

(55)

4. Kemudian klik button Dekripsi untuk menghasilkan Plaintext awal dan menyimpannya dengan menekan button simpan dapat dilihat pada gambar 4.17 dibawah ini :

Gambar 4.17 Tampilan Hasil Dekripsi

4.3.4 Hasil Pengujian

(56)

Tabel 4.3 Hasil Pengujian Enkripsi Dan Kompresi

Tabel 4.4 Hasil Pengujian Dekompresi Dan Dekripsi

(57)

BAB 5

KESIMPULAN DAN SARAN

5.1 Kesimpulan

Berdasarkan hasil studi literatur, analisis, perancangan, implementasi dan pengujian sistem ini, maka didapat kesimpulan sebagai berikut:

1. Dokumen atau file teks yang sudah dienkripsi menjadi ciphertext memiliki karakter yang lebih banyak atau panjang dibandingkan dengan file teks sebelum dilakukan proses enkripsi.

2. Hasil dari enkripsi (ciphertext) selalu berupa angka.

3. File hasil enkripsi setelah dikompresi memiliki kapasitas setengah kali lebih sedikit dibanding file sebelum dikompresi.

4. File hasil kompresi berupa file *.bv (Boldi-Vigna).

5. File hasil bangkit kunci berupa *.pubkey untuk kunci publik dan *.privkey untuk kunci private.

6. Kombinasi antara pengamanan dan kompresi menggunakan algoritma Knapsack dan Boldi-Vigna (ζ4) merupakan perpaduan yang tepat. Dibuktikan dari file hasil dekripsi sama persis, seperti file awal sebelum dilakukan proses enkripsi, misalnya jenis huruf, ukuran huruf dan sebagianya.

5.2 Saran

Adapun saran-saran yang dapat penulis berikan untuk pengembangan dan perbaikan sistem ini adalah sebagai berikut:

1. Diharapkan sistem ini dapat di terapkan pada media pengiriman pesan seperti email, sms dan sebagainya.

2. Diharapkan agar dapat memproses semua bentuk file seperti pdf, docx dan sebagainya.

3. Diharapkan agar mengkombinasikan algoritma kompresi Boldi-Vigna (ζ4) dengan

(58)

BAB 2

LANDASAN TEORI

2.1 Kriptografi

2.1.1 Pengertian Kriptografi

Kriptografi pada awalnya dijabarkan sebagai ilmu yang mempelajari bagaimana menyembunyikan pesan. Pada kriptografi klasik umumnya merupakan teknik penyandian dengan kunci simetrik dan menyembunyikan pesan yang memiliki arti ke sebuah pesan yang nampaknya tidak memiliki arti dengan metode subsitusi (pergantian huruf) dan/atau transposisi (pertukaran tempat). (Sadikin, 2012).

Namun pada pengertian modern kriptografi adalah ilmu yang bersandarkan pada teknik matematika untuk berurusan dengan keamanan informasi seperti kerahasian, keutuhan data dan otentikasi entitas. Jadi pengertian kriptografi modern adalah tidak saja berurusan hanya dengan penyembunyian pesan namun lebih pada sekumpulan teknik yang menyediakan keamanan informasi (Sadikin, 2012).

2.1.2 Sistem Kriptografi

Sistem kriptografi terdiri dari 5 bagian yaitu, (Stinson, 2002) : 1. Plaintext

Plaintext yaitu pesan atau data dalam bentuk aslinya yang dapat terbaca. Plaintext adalah masukan bagi algoritma enkripsi. Untuk selanjutnya digunakan istilah teks asli sebagai pedanan kata plaintext.

2. Secret Key

Secret key yang juga merupakan masukan bagi algoritma enkripsi merupakan nilai

(59)

3. Ciphertext

Ciphertext adalah keluaran algoritma enkripsi. Ciphertext dapat dianggap sebagai pesan dalam bentuk tersembunyi.

4. Algoritma Enkripsi

Algoritma enkripsi memiliki 2 masukan teks asli dan kunci rahasia. Algoritma enkripsi melakukan transformasi terhadap teks asli sehingga menghasilkan teks sandi.

5. Algoritma Dekripsi

Algoritma dekripsi memiliki 2 masukan yaitu teks sandi dan kunci rahasia. Algoritma dekripsi memulihkan kembali teks sandi menjadi teks asli bila kunci rahasia yang dipakai algoritma dekripsi sama dengan rahasia yang dipakai algoritma enkripsi.

Contoh sistem kriptografi konvensional dapat dilihat pada gambar 2.1. Eve

Gambar 2.1 Sistem Kriptografi Konvensional

Sistem enkripsi harus memenuhi kaidah correctness yaitu untuk memenuhi setiap K ∈κ adalah himpunan kunci dan terdapat teks sandi hasil enkripsi teks asli m, c =

�(m) maka harus berlaku �(c) = m untuk semua kemungkinan teks asli.

Pada gambar 1 kunci rahasia dibangkitkan oleh pembangkit kunci dan dikirim melalui saluran aman ke pihak penyandian (encryptor) maupun penyulih sandi (decryptor). Teks sandi dikirim melalui saluran umum sehingga ada pihak ketiga

yang dapat membaca teks sandi itu (Sadikin, 2012).

(60)

2.1.3 Jenis Kriptografi

Berdasarkan jenis kuncinya algoritma kriptografi terdiri dari dua jenis yaitu: 1. Algoritma Simetris (Konvensional)

Algoritma simetris (symmetric cryptography) adalah algoritma yang menggunakan kunci enkripsi yang sama dengan kunci dekripsinya, sehingga algoritma ini disebut juga sebagai single key algorithm. Algoritma ini disebut juga konvensional karena algoritma jenis ini biasa digunakan sejak berabad-abad yang lalu. Sebelum melakukan komunikasi, pengirim dan penerima pesan harus menyetujui suatu kunci tertentu yang sama untuk dipakai secara bersama. Keamanan sistem kriptografi simetri tergantung pada kerahasiaan kunci karena membocorkan kunci berarti orang lain bisa mengenkripsi dan mendekripsi pesan. Agar komunikasi tetap aman, maka keberadaan kunci harus tetap dirahasiakan dari pihak yang tidak berkepentingan dengan cara pengirim harus memastikan bahwa jalur yang digunakan dalam pendistribusian kunci adalah jalur yang aman atau memastikan bahwa pihak yang ditunjuk membawa kunci untuk pertukaran data adalah pihak yang dapat dipercaya. Algoritma-algoritma yang termasuk dalam kriptografi simetris adalah semua algoritma kriptografi klasik seperti hill cipher, vigenere cipher, playfair cipher, dll. Beberapa algoritma kriptografi modern juga termasuk kriptografi simetris, diantaranya adalah IDEA, DES (Data Encryption Standard), Blowfish, Twofish, Tripel DES, Serpent, AES (Advanced Encryption Standard), RC2, RC4, RC5, RC6, dll (Namira, 2013).

Proses enkripsi-dekripsi algoritma kunci simetris dapat dilihat pada gambar 2.2.

Kunci Private, K Kunci Private, K

Plaintext (P) Ciphertext (C) Plaintext (P)

Gambar 2.2 Skema Kriptografi Simetris

Dekripsi

�(C) = P

Enkripsi

(61)

2. Algoritma Asimetris (Kunci Publik)

Kriptografi asimetris (asymmetric cryptography) adalah algoritma yang menggunakan kunci yang berbeda untuk proses enkripsi dan dekripsi. Kunci enkripsi dapat disebarkan kepada umum yang dinamakan sebagai kunci publik (public key), sedangkan kunci dekripsi disimpan untuk digunakan sendiri dan dinamakan sebagai kunci pribadi (private key). Oleh karena itulah, kriptografi ini dikenal pula dengan nama kriptografi kunci publik (public key cryptography). Pada kriptografi jenis ini, setiap orang yang berkomunikasi mempunyai sepasang kunci, yaitu kunci private dan kunci publik. Prosesnya, pengirim (sender) mengenkripsi pesan dengan menggunakan kunci publik sipenerima pesan (receiver) dan hanya si penerima pesanlah yang dapat mendekripsi pesan karena hanya ia yang mengetahui kunci private itu sendiri. Contoh algoritma yang termasuk algoritma kriptografi kunci publik diantaranya adalah RSA, Elgamal, DSA, Knapsack, dll (Namira, 2013). Proses enkripsi dan dekripsi algoritma kunci asimetris dapat dilihat pada gambar 2.3 dibawah ini :

Kunci Private,K1 Kunci Private,K2

Plaintext (P) Ciphertext (C) Plaintext (P)

Gambar 2.3 Skema Kriptografi Asimetris

2.2 Algoritma Knapsack

Knapsack merupakan optimasi pengangkutan barang atau disebut juga optimasi

kombinatoriol. Knapsack problem adalah salah satu masalah bagaimana cara menentukan pemilihan barang dari sekumpulan barang di mana setiap barang tersebut menmpunyai berat dan profit masing-masing, sehingga dari pemilihan barang tersebut didapatkan profit yang maksimum. (Timothy, 2014)

Tujuan Knapsack problem adalah agar dapat mendapatkan keuntungan yang maksimum dari pemilihan barang tanpa melebihi kapasitas daya tampung media

Dekripsi

� (C) = P

Enkripsi

(62)

transportasi tersebut. Dalam teori algoritma, persoalan Knapsack termasuk kedalam kelompok NP-complete. Persoalan yang termasuk NP-complete tidak dapat dipecahkan dalam orde waktu polynomial. (Timothy, 2014)

Jenis-jenis Knapsack adalah: 1. 0/1 Knapsack Problem

Setiap barang hanya terdiri satu unit dan boleh diambil atau tidak sama sekali. 2. 0/n Knapsack Problem

Setiap barang terdiri dari n buat unit dan boleh diambil atau tidak sama sekali 3. Bounded Knapsack Problem

Setiap barang tersedia n buah unit dan jumlahnya terbatas 4. Unbounded Knapsack Problem

Setiap barang tersedia lebih dari satu unit dan jumlahnya tidak terbatas 5. Fractional Knapsack Problem

Barang boleh diambil dalam bentuk pecahan atau sebahagian. Contohnya gula, garam, tepung dan lain-lain. (Namira, 2013)

Knapsack Problem:

Diberikan bobot knapsack adalah M. Diketahui n buah objek yang masing-masing

bobotnya adalah w1, w2, …, wn. Tentukan nilai bi sedemikian sehingga M = b1w1

+ b2w2 + … + bnwn yang dalam hal ini, bi bernilai 0 atau 1. Jika bi = 1, berarti objek i dimasukkan kedalam knapsack, sebaliknya jika bi = 0, objek i tidak dimasukkan. Dalam teori algoritma, persoalan knapsack termasuk ke dalam kelompok NP-complete. Persoalan yang termasuk NP-complete tidak dapat dipecahkan dalam orde waktu polynomial.

Algoritma Knapsack Sederhana

(63)

Knapsack adalah algoritma yang lemah, karena ciphertext dapat didekripsi menjadi plainteksnya secara mudah dalam waktu lancar.

Algoritma non-superincreasing Knapsack atau normal Knapsack

adalah kelompok algoritma Knapsack yang sulit (dari segi komputasi) karena membutuhkan waktu dalam orde eksponensial untuk memecahkannya. Namun, superincreasing Knapsack dapat dimodifikasi menjadi non-superincreasing Knapsack dengan menggunakan kunci publik (untuk enkripsi) dan kunci rahasia (untuk dekripsi). Kunci publik merupakan barisan non-superincreasing sedangkan kunci rahasia tetap merupakan barisan superincreasing. Modifikasi ini ditemukan oleh Martin Hellman dan Ralph Merkle.

a. Cara membuat kunci publik dan kunci rahasia: 1. Tentukan barisan superincreasing.

2. Kalikan setiap elemen di dalam barisan tersebut dengan n modulo m. Modulus m seharusnya angka yang lebih besar daripada jumlah semua elemen di dalam barisan, sedangkan pengali n seharusnya tidak mempunyai faktor persekutuan dengan m.

3. Hasil perkalian akan menjadi kunci publik sedangkan barisan superincreasing semula menjadi kunci rahasia (Namira, 2013).

b. Enkripsi Algoritma Knapsack

1. Menggunakan kunci publik untuk melakukan enkripsi.

2. Plaintext dipecah menjadi blok bit yang panjangnya sama dengan kardinalitas barisan kunci publik.

3. Kalikan setiap bit didalam blok dengan elemen yang berkoresponden di dalam kunci publik.

c. Dekripsi Algoritma Knapsack

1. Menggunakan kunci rahasia untuk melakukan dekripsi.

(64)

3. Mengalikan setiap kriptogram dengan n-1 mod m, lalu nyatakan hasil kalinya sebagai penjumlahan elemen-elemen kunci rahasia untuk memperoleh plaintext dengan menggunakan algoritma pencarian solusi superincreasing (Timothy, 2014).

Contoh :

Misalkan barisan superincreasing adalah {2, 5, 9, 17, 25, 50}, m = 103, dan n = 31. Barisan non-superincreasing (atau normal) Knapsack dihitung sbb:

2 . 31 mod 103 = 62

Jadi, kunci publik adalah {62, 52, 73, 12, 54, 5}, sedangkan kunci rahasia adalah {2,5, 9, 17, 25, 50}.

Enkripsi dilakukan dengan cara yang sama seperti algoritma Knapsack sebelumnya. Mula-mula plaintext dipecah menjadi blok bit yang panjangnya sama dengan kardinalitas barisan kunci publik. Kemudian kalikan setiap bit di dalam blok dengan elemen yang berkoresponden di dalam kunci publik.

Contoh :

(65)

Blok plaintext ke-3 : 110110

Kunci publik : 62, 52, 73, 12, 54, 5

Kriptogram : (1 × 62) + (1 × 52) + (1 × 54) + (1 × 5) = 173 Jadi, ciphertext yang dihasilkan : 130, 62, 173

Dekripsi dilakukan dengan menggunakan kunci rahasia. Mula-mula penerima pesan menghitung n–1 , yaitu balikan n modulo m, sedemikian sehingga n . n–1≡ 1 (mod m). Kekongruenan ini dapat dihitung dengan cara yang sederhana sebagai berikut (disamping dengan cara yang sudah pernah diberikan pada Teori Bilangan Bulat): n . n–1≡ 1 (mod m)

n . n–1 = 1 + km

n–1 = (1 + km)/n , k sembarang bilangan bulat

Kalikan setiap kriptogram dengan n–1 mod m, lalu nyatakan hasil kalinya sebagai penjumlahan elemen-elemen kunci rahasia untuk memperoleh plaintext dengan menggunakan algoritma pencarian solusi superincreasing Knapsack.

Contoh :

Ciphertext dari 130, 62, 173 akan dideskripsikan dengan menggunakan kunci rahasia {2, 5, 9, 17, 25, 50}. Di sini, n = 31 dan m = 103. Nilai n–1 diperoleh sbb:

n–1 = (1 + 103k)/31

Dengan mencoba k = 0, 1, 2, …, maka untuk k = 3 diperoleh n–1 bilangan bulat, yaitu: n–1 = (1 + 103 . 3)/31 = 10

Ciphertext dari Contoh sebelumnya adalah 130, 62, 173 . Plaintext yang berkoresponden diperoleh kembali sebagai berikut:

130. 10 mod 103 = 64 = 5+ 9 + 50 , berkoresponden dengan 011001 62 . 10 mod 103 = 2 = 2 berkoresponden dengan 100000

(66)

2.3. Kompresi Data

Kompresi data merupakan suatu upaya untuk mengurangi jumlah bit yang digunakan untuk menyimpan atau mentransmisikan data. kompresi data meliputi berbagai teknik kompresi yang diterapkan dalam bentuk perangkat lunak (Software) maupun perangkat keras (Hardware). Bila ditinjau dari penggunaannya, kompresi data dapat bersifat umum untuk segala keperluan atau bersifat khusus untuk keperluan tertentu. Keuntungan data yang terkompresi antara lain: penyimpanan data lebih hemat ruang, mempersulit pembacaan data oleh pihak yang tidak berkepentingan dan memudahkan distribusi data dengan media removable seperti flashdisk, CD, DVD, dll (Tjatur, 2011).

Saat ini terdapat berbagai tipe algoritma kompresi, antara lain: Huffman, IFO, LZHUF, LZ77 dan variannya (LZ78, LZW, GZIP), Dynamic Markov Compression (DMC), Block-Sorting Lossless, Run-Length, Shannon-Fano, Arithmetic, PPM (Prediction by Partial Matching), Burrows-Wheeler Block Sorting, dan Half Byte. (Namira, 2013).

2.3.1. Klasifikasi tipe kompresi data

Secara umum, kompresi data dapat diklasifikasikan ke dalam 2 macam, yaitu (Arief, 2006):

1. Kompresi Lossy

Teknik kompresi dimana data yang sudah dikompresi tidak dapat dikembalikan seperti data semula, dinamakan lossy atau distortive atau noise-incurring. Kompresi seperti ini digunakan untuk gambar dan suara dimana kehilangan (loss) data dapat diijinkan dalam kasus tertentu. Contoh data adalah adalah JPEG dan GIF untuk gambar, MPEG untuk video dan MP3 (MPEG Layer-3) untuk format suara.

Contoh: metode kompresi lossy adalah Transform Coding, Wavelet, dan lain-lain.

2. Kompresi Lossless

(67)

antara data awal (sebelum kompresi) dan data setelah dilakukan dekompresi. Contoh program kompresi lossless seperti winzip, winrar, dan pkzip. Contoh metode lossless adalah Boldi-Vigna, Shannon-Fano Coding, Huffman Coding, Arithmetic Coding, Run Length Encoding dan lain sebagainya (Rachmat, 2015).

2.3.2 Dekompresi Data

Dekompresi adalah kebalikan dari proses kompresi. Setiap proses kompresi data tentu saja membutuhkan proses dekompresi kembali untuk mendapatkan data yang sesungguhnya. Pada praktek kasusnya, dekompresi yang baik atau dapat dikatakan efisien jika algoritma dekompresinya sesuai dengan algoritma kompresi pada kasus itu sendiri. Audio, Video, dan Foto adalah contoh data yang sangat sering dilakukan proses kompresi dan dekompresi tentu saja menggunakan dengan algoritma yang sama. Adapun hubungan antara kompresi dan dekompresi dapat dilihat pada gambar dibawah ini (Namira, 2013) :

Output

Gambar 2.4 Compression Dan Decompression

Aplikasi dekompresi data sering juga disebut dengan dekompresor (decompresor). Bagaimanapun dekompresi adalah salah satu solusi terbaik untuk mengembalikan data yang telah mengalami proses kompresi (compressed Files). Kompresor dan dekompresor dapat dikatakan sebagai dua proses yang saling berkaitan baik pada sumber dan tujuan masing-masing proses. Pada kasusnya, source disebut dengan coder dan destinasi pesan disebut dengan decoder.

Compression Algorithm

Decompression

(68)

2.4 Algoritma Boldi-Vigna (ζ4)

Zeta (ζ) kode juga dikenal sebagai Boldi-Vigna code, diperkenalkan oleh Paolo Boldi dan Sebastiano Vigna sebagai keluarga Variable-Length Code yang merupakan pilihan terbaik untuk kompresi. Dimulai dengan hukum Zipf, seorang kuasa hukum empiris [Zipf 07] diperkenalkan oleh Linguis George K. Zipf. Menyatakan bahwa frekuensi setiap kata dalam bahasa alami kira-kira berbanding terbalik dengan posisinya dalam tabel frekuensi.

Boldi-Vigna kode zeta dimulai dengan bilangan bulat k positif yang menjadi menyusut oleh Faktor kode. Himpunan semua bilangan bulat positif dibagi menjadi [20, 2k - 1], [2k, 22k - 1], [22k, 23k - 1], dan secara umum [2hk, 2 (h + 1) k - 1]. Panjang setiap interval adalah 2 (h + 1) k - 2hk (Salomon, 2007).

Diberikan interval [0, z-1] dan sebuah integer x di interval ini, pertama kita hitung s =[ log2 z]. Jika x <2s - z, dikodekan sebagai unsur xth elemen pada interval ini, pada s - 1 bit. Jika tidak, maka dikodekan sebagai (x - z - 2s) th elemen pada interval di s bit. Dengan latar belakang ini, di sini dibahas bagaimana kode zeta dibangun. Mengingat bilangan bulat n akan dikodekan, kami mempekerjakan k untuk menentukan interval di mana n berada. Salah satu yang diketahui, nilai-nilai h dan k yang digunakan dengan cara yang sederhana untuk membangun kode zeta n dalam dua bagian, nilai h + 1 di unary (sebagai nol h diikuti dengan 1), diikuti oleh minimal kode biner dari n - 2hk dalam interval [0, 2 (h + 1) k - 2hk - 1] (Salomon, 2007).

Contoh:

Diberikan k = 3 dan n = 16, kita tentukan dulu n yang terletak di interval [23, 26 -1], yang sesuai dengan h = 1. Dengan demikian, h + 1 = 2 dan kode unary dari 2 adalah 01. Kode biner minimal 16 - 23 = 8 dibangun dalam langkah-langkah berikut. Panjang z dari interval [23, 26 -1] adalah 56. Ini berarti bahwa s =[ log2 56] = 6. Nilai 8 akan dikodekan 8 = 26 - 56, sehingga dikodekan sebagai x - z - 2s = 8- 56-26 = 16 dalam enam bit, sehingga 010000. Dengan demikian, kode ζ3 dari n = 16 adalah 010000111 (Salomon, 2007).

(69)

Tabel 2.1 Kode Daftar Boldi-Vigna ζ4

Contoh :

Diberikan string = “ERNA LESTARI”

Σ = { E, R, N, A, sp, L, S, T, I } , dengan sp = spasi

Maka dibuat sebuah tabel untuk menghitung bit setelah di kompresi. Tabel bisa dilihat pada tabel 2.2 dibawah ini :

Tabel 2.2 Kompresi Dengan Boldi-Vigna (ζ4)

(70)

2.5 Parameter pembanding

Ada 3 parameter pembanding yang digunakan dalam peneltiaan ini, yaitu Ratio of Compression (RC), Compression Ratio (CR), dan Redudancy (Rd).

1. Ratio of Compression (Rc)

Ratio of Compression (Rc) adalah perbandingan antara ukuran data sebelum dikompresi dengan ukuran data setelah dikompresi (Salomon, 2007).

� = …………...………(1)

2. Compression Ratio (Cr)

Compression Ratio (Cr) adalah persentasi besar data yang telah dikompresi yang didapat dari hasil perbandingan antara ukuran data setelah dikompresi dengan ukuran data sebelum dikompresi (Salomon, 2007).

� = � %...……….. (2)

3. Redudancy (Rd)

Redundancy (Rd) adalah kelebihan yang terdapat di dalam data sebelum dikompresi. Jadi setelah data dikompresi dapat dihitung Redundancy data yaitu persentasi dari hasil selisih antara ukuran data sebelum dikompresi dengan data setelah dikompresi (Salomon, 2007).

� = % − � ………..….... (3)

2.6 Penelitian Yang Relevan

Berikut ini beberapa penelitian tentang kriptografi dan kompresi data yang berkaitan dengan algoritma knapsack dan Boldi-Vigna (ζ4):

(71)

dengan menggunakan algoritma Knapsack dapat mengamankan pesan dengan baik.

2. Berdasarkan penelitian oleh Disa (2013), Implementasi Pengamanan File Text Dengan Algoritma Kriptografi Knapsack Dan Algoritma Steganografi FOF (First Of File). Kesimpulan dari penelitian ini yaitu Waktu proses dekripsi jauh lebih lama jika dibandingkan dengan waktu proses enkripsi. Hal ini disebabkan karena penambahan permutasi pada algoritma kriptografi Knapsack.

3. Menurut Markle dan Hellman Knapsack problem akan semakin bagus jika jumlah plaintext n lebih besar dari 100 bit, karena akan menghasilkan ciphertext dua kali lebih banyak dari plaintext awal sehingga sulit bagi kriptanalis untuk menentukan satu dari mereka.

(72)

BAB 1 PENDAHULUAN

1.1 Latar Belakang

Masalah keamanan dan kerahasiaan merupakan salah satu aspek penting dari suatu data, pesan dan informasi. Pengiriman suatu pesan, data dan informasi yang sangat penting membutuhkan tingkat keamanan yang tinggi. Namun, dalam perkembangan teknologi komputer dapat terjadi ancaman dari pihak-pihak yang tidak bertanggung jawab. Ancaman yang dapat terjadi adalah diketahuinya informasi yang bersifat rahasia dalam sebuah proses komunikasi data karena data yang digunakan selama proses komunikasi data belum disandikan, untuk mengatasi masalah-masalah tersebut, perlu dilakukan sebuah langkah pencegahan yang efektif.

Cara yang dapat digunakan adalah dengan melakukan pengkodean terhadap data yang dipakai yaitu kriptografi. Metode kriptografi dilakukan dengan cara

penyandian atau pengacakan data asli (enkripsi), sehingga pihak lain yang tidak mempunyai hak akses atas data tersebut tidak dapat memperoleh informasi yang ada didalamnya. Kemudian, data yang sudah teracak dikembalikan lagi ke bentuk awal (dekripsi). Salah satu teknik pengkodean data yang menarik perhatian penulis adalah Knapsack.

Salah satu penelitian yang membahas tentang keamanan tersebut adalah Implementasi Algoritma Kriptografi Knapsack Dan Algoritma Kompresi Data Run Length Encoding Untuk Mengamankan Dan Kompresi File Teks oleh Namira Utami Tanjung (2013). Pada penelitian ini membahas tentang perancangan sebuah aplikasi yang dapat menerapkan sistem pengamanan file teks dan pemampatan (kompresi) data file teks yang telah di enkripsi serta keefektifan menggunakan algoritma Knapsack dalam pengamanan data yang berupa file teks dengan algoritma kompresi data Run Length Encoding. Enkripsi teks dengan menggunakan algoritma Knapsack dapat mengamankan pesan dengan baik.

(73)

Sedangkan kompresi data adalah proses mengkodekan informasi menggunakan bit atau information-bearing unit lain yang lebih rendah daripada representasi data yang tidak terkodekan dengan suatu sistem encoding tertentu.

Menimbang pentingnya arti keamanan dalam pengiriman data, maka penulis

mengusulkan sebuah penelitian yang berjudul “Implementasi Algoritma Knapsack dan Algoritma Boldi-Vigna (ζ4) Pada Keamanan dan Kompresi File Teks”. Dalam

penelitian ini akan dibahas mengenai teknik enkripsi dan dekripsi menggunakan algoritma Knapsack dan algoritma Boldi-Vigna (ζ4) sebagai kompresi data file teks.

1.2 Rumusan Masalah

Berdasarkan latar belakang diatas, maka yang menjadi rumusan masalah pada penelitian ini adalah bagaimana mengimplementasikan kriptografi dan kompresi file teks dengan metode Knapsack untuk keamanan dan metode Boldi-Vigna (ζ4 ) untuk

kompresi file.

1.3 Batasan Masalah

Dalam penelitian ini penulis membuat batasan masalah sebagai berikut : 1. File teks yang digunakan adalah dalam bentuk *.txt dan *.doc.

2. Algoritma Knapsack digunakan untuk penyandian data teks sedangkan algoritma Boldi-Vigna (ζ4) digunakan sebagai kompresi file teks yang telah disandikan.

3. Knapsack yang digunakan adalah Knapsack 0/1.

4. Bahasa pemrograman yang digunakan adalah bahasa pemrograman C#.

5. Parameter yang diukur pada kompresi data adalah Compression Ratio (CR), Ratio of Compression (RC) dan Redundancy (Rd).

1.4 Tujuan Penelitian

Tujuan dari penelitian ini adalah sebagai berikut :

(74)

2. Membuktikan tepat atau tidaknya mengenkripsi data menggunakan algoritma Knapsack di kombinasikan dengan kompresi data dengan algoritma Boldi-Vigna (ζ4).

1.5 Manfaat Penelitian

Adapun manfaat penelitian ini adalah :

1. Untuk meningkatkan masalah keamanan dan penampatan (kompresi) data.

2. Menambah pengetahuan penulis tentang pengamanan dan penampatan (kompresi) data file dengan metode Knapsack dan Boldi-Vigna (ζ4).

3. Sebagai bahan referensi bagi peneliti lain mengenai pengamanan dan kompresi file dengan metode Knapsack dan Boldi-Vigna( ζ4).

1.6 Metode Penelitian

Penelitian ini menerapkan beberapa metode penelitian sebagai berikut: 1.Studi Literatur

Pada tahap ini dilakukan pengumpulan referensi yang diperlukan dalam penelitian. Hal ini dilakukan untuk memperoleh informasi dan data yang diperlukan untuk penulisan skripsi ini. Referensi yang digunakan dapat berupa buku, jurnal, artikel, situs internet yang berkaitan dengan penelitian. Ini dilakukan untuk memperoleh informasi yang terkait dengan Knapsack, Boldi-Vigna (ζ4), serta

Pemrograman C#.

2. Pengumpulan dan Analisis Data

Pada tahap ini dilakukan pengumpulan dan analisa data yang berhubungan dengan penelitian ini seperti fungsi algoritma Knapsack dan Boldi-Vigna (ζ4)

bisa bekerja dalam enkripsi dan dekripsi juga dalam kompresi dan dekompresi file teks.

3. Perancangan Sistem

Pada tahap ini dilakukan perancangan user interface, Unified Modeling Language (UML), Flowchart dan Struktur program.

4. Implementasi Sistem

(75)

5. Pengujian Sistem

Pada tahap ini, sistem diuji apakah aplikasi yang telah dibuat berhasil berjalan sesuai dengan keinginan dan melakukan perbaikan jika masih terdapat kesalahan (error) pada aplikasi.

Sistematika dalam penulisan skripsi ini disusun menjadi beberapa bab,diantaranya yaitu:

BAB 1 : PENDAHULUAN

Bab ini berisi mengenai latar belakang masalah, rumusan masalah, bataan masalah, tujuan & manfaat penelitian, metode penelitian dan sistematika penulisan.

BAB 2 : LANDASAN TEORI

Bab ini berisi mengenai teori-teori yang digunakan untuk mendukung penulisan penelitian, selain itu dalam bab 2 juga dijelaskan mengenai metode yang digunakan dalam penelitian.

BAB 3 : ANALISIS DAN PERANCANGAN SISTEM

Bab ini terdiri dari tahap analisis sistem dan desain perancangan dari program yang akan dibuat, Unified Modeling Language (UML), Flowchart dan termasuk juga algoritma dari program tersebut.

BAB 4 : IMPLEMENTASI DAN PENGUJIAN SISTEM

Bab ini berisi mengenai implementasi dan pengujian dari program yang sebelumnya telah dirancang dan dianalisis sistemnya.

BAB 5 : KESIMPULAN DAN SARAN

(76)

ABSTRAK

Algoritma Knapsack merupakan bagian dari kriptografi asimetri yang mana kunci enkripsinya berbeda dengan kunci dekripsinya. Di samping masalah keamanan file teks, masalah ukuran dari sebuah file teks juga menjadi pertimbangan. File teks yang berukuran besar dapat dimampatkan dengan melakukan proses kompresi. Algoritma Boldi-Vigna (ζ4) merupakan algoritma yang mengecilkan ukuran file teks. Kombinasi

algoritma Knapsack dan Boldi-Vigna (ζ4) dapat menjamin file Teks tidak dapat dilihat

oleh pengguna yang tidak berhak dan dapat menjamin file teks dapat disimpan dalam media file yang berkapasitas rendah. Pada penelitian ini, penulis membuat program kombinasi algortitma knapsack dan Boldi-Vigna (ζ4) pada file teks. Pada algoritma

Knapsack akan terjadi penambahan ukuran file teks, hal ini dapat dilihat pada contoh kasus yang mana ukuran plaintext (pesan asli) adalah 12 bytes, kemudian setelah dilakukan proses enkripsi ukuran file teks menjadi 45 bytes. Pada algoritma kompresi Boldi-Vigna (ζ4) terjadi pengurangan ukuran sebagai contoh kasus ciphertext (pesan

yang disamarkan) yang awalnya berukuran 45 bytes setelah dilakukan proses kompresi ukurannya menjadi 28 bytes.

(77)

IMPLEMENTATION OF KNAPSACK ALGORITHM AND BOLDI-VIGNA (ζ4) ALGORITHM ON SECURITY

AND COMPRESSION OF FILE TEXT

ABSTRACT

Knapsack algorithm is part of the asymmetric cryptography which the encryption key is different from the decryption key. Beside of security problem, the size of the file is also measure and the file may be compressed further. Boldi-Vigna (ζ4) algorithm is an algorithm that shrink the size of the text file. Combination of Knapsack and

Boldi-Vigna (ζ4) algorithm can guarantee that text files may not be seen by unauthorized users and to ensure the text file may be stored in a low-capacity media file. In this research, writer makes a combination program of Knapsack and Boldi-Vigna (ζ4) for text files. Sometimes Knapsack algorithm may add the size of the text file, it can be seen in the case where the size of the plaintext is only 12 bytes, then after the encryption process the text file size becoming 45 bytes. In the Boldi-Vigna (ζ4) compression algorithm happen size reduction as an example the case of the ciphertext which initially measuring 45 bytes after compression process the size becoming 28 bytes.

(78)

IMPLEMNTASI ALGORITMA KNAPSACK DAN ALGORITMA BOLDI-VIGNA (ζ4) PADA KEAMANAN DAN

KOMPRESI FILE TEKS

SKRIPSI

ERNA LESTARI 121401024

PROGRAM STUDI S-1 ILMU KOMPUTER

FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA

(79)

IMPLEMNTASI ALGORITMA KNAPSACK DAN ALGORITMA BOLDI-VIGNA 4) PADA KEAMANAN DAN

KOMPRESI FILE TEKS

SKRIPSI

Diajukan untuk melengkapi tugas dan memenuhi syarat memperoleh ijazah Sarjana Ilmu Komputer

ERNA LESTARI 121401024

PROGRAM STUDI S-1 ILMU KOMPUTER

FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA

Gambar

Gambar 3.1 Diagram Ishikawa Untuk Analisis Permasalahan Sistem
Gambar 3.2 Use Case  Diagram Pada Sistem
Gambar 3.3 Activity Diagram Bangkit Kunci
Gambar 3.4 Activity Diagram Enkripsi Dan Kompresi
+7

Referensi

Dokumen terkait

Website menggunakan framework codeigniter modular extensions yang menggunakan arsitektur HMVC( Hierarchical Model, View, Controller ), agar struktur program lebih

Kesehatan reproduksi perempuan tidak terpisah dengan kebijakan kependudukan.. Kebijakan kependudukan meliputi dua hal yang mendasar

Selain itu perancangan aristektur: perancangan aristektur yang digunakan dalam sistem ini meliputi Website , Framework Codeigniter Modular Extensions yang mempunyai

Berbagai upaya nasional dan internasional telah dilakukan KNPP-PA untuk berkontribusi dalam memecahkan masalah lingkungan, khususnya yang terkait dengan upaya

Dari diagram aktivitas belajar siklus I dan siklus II dapat dijelaskan mengenai peningkatan aktivitas belajar peserta didik, perolehan data pada siklus I indikator pertama

Berbagai upaya nasional dan internasional telah dilakukan KNPP-PA untuk berkontribusi dalam memecahkan masalah lingkungan, khususnya yang terkait dengan upaya

Level Kognitif Lingkup Materi Teknik Bengkel &amp; K3LH Manajemen Proyek Sistem Telekomunikasi Teknik Dasar Listrik ( TDL ).

Narasumber yang dipilih penulis adalah dua orang perawat yang telah bekerja lebih dari lima tahun di Panti Lansia Santa Anna dan dua orang lansia yang tinggal di Panti Lansia Santa