Anda di halaman 1dari 7

LAPORAN PRAKTIKUM

PROGRAM ENKRIPSI DAN DEKRIPSI


Laporan ini ditujukan untuk memenuhi nilai tugas mata kuliah Struktur Data dan Algoritma

OLEH:
FADHILA NUR AISYAH
NIM.L0122058

PROGRAM STUDI INFORMATIKA


FAKULTAS TEKNOLOGI INFORMASI DAN SAINS DATA
UNIVERSITAS SEBELAS MARET
2023
BAB I
PENDAHULUAN
A. DASAR TEORI
Kemajuan teknologi saat ini menjadikannya media penyalur informasi.
Sebagai mana yang kita ketahui, informasi merupakan sesuatu yang sangat
berharga dan harus dijaga dengan baik. Oleh karena itu, diperlukannya sebuah
pengaman informasi. Pengaman ini pada prinsipnya difungsikan untuk menjaga
informasi agar yang tidak berhak menerima informasi tersebut tidak bisa
membaca, mengubah, maupun menghapus informasi tersebut. Salah satu bidang
ilmu yang digunakan untuk menjaga keamanan informasi adalah kriptografi,
dengan ilmu ini informasi yang dianggap penting dan rahasia dapat diamankan
dengan teknik penyandian yang hanya dimengerti oleh pihak pemberi dan
penerima informasi.
Salah satu jenis algoritma kriptografi adalah sebuah algoritma yang
digunakan untuk melakukan enkripsi dan dekripsi data. Enkripsi adalah suatu
proses untuk membuat susunan acak dari teks yang dapat dibaca oleh manusia
(human-readable plaintext) menjadi teks yang tidak dapat dibaca oleh manusia
dan hanya dimengerti oleh sistem saja (incomprehensible text). Teks hasil dari
enkripsi disebut dengan “ciphertext”. Sedangkan dekripsi adalah proses
mengembalikan data terenkripsi menjadi bentuk aslinya atau plaintext.
B. PENJELASAN UMUM PROGRAM
Program ini dibuat untuk membaca suatu informasi dengan menginputkan
pesan (message) rahasia yang akan tersimpan dalam file Asal.txt dan akan di-
enkripsi-kan menjadi sebuah ciphertext yang hanya bisa dimengerti oleh sistem
saja (ciphertext dalam program ini tersimpan pada file Kode.txt). Program ini
hanya bisa diketahui oleh orang yang mengetahui kunci (key) dari program
tersebut sehingga pesan dapat didekripsikan agar menjadi pesan yang dapat dibaca
oleh manusia yang tersimpan dalam file Tujuan.txt.
BAB II
PEMBAHASAN
A. SOURCE CODE
>> Library yang digunakan dalam program ini adalah :
#include <stdio.h>
#include <string.h>

>> Deklarasi variabel umum :


int i;
char ch;
Terdapat 2 variabel yang akan digunakan program dalam keseluruhan fungsi
yaitu variabel i dan ch.

>>Fungsi untuk mengenkripsi pesan :


void encrypt(char message[], int key)
{
for(i = 0; message[i] != '\0'; ++i){
ch = message[i];

// enkripsi huruf kecil


if(ch >= 'a' && ch <= 'z'){
ch = ch + key;

if(ch > 'z'){


ch = ch - 'z' + 'a' - 1;
}

message[i] = ch;
}
// enkripsi huruf kapital
else if(ch >= 'A' && ch <= 'Z'){
ch = ch + key;

if(ch > 'Z'){


ch = ch - 'Z' + 'A' - 1;
}

message[i] = ch;
}
}
}
Dalam fungsi tersebut digunakan 2 variabel yaitu massage (pesan yang akan
ditulis yang didefinisikan dengan setiap karakter abjad yang terpisah/ch) dan
key (kunci untuk kode yang akan digunakan) serta 2 syarat kemungkinan
kondisi, yaitu else if dengan kemungkinan pesan menggunakan huruf kapital
dan huruf kecil.
Cara Kerja Fungsi : Program akan menggeser maju karakter sebanyak i atau
kunci yang dimasukkan.

>>Fungsi untuk mendekripsi pesan :


void decrypt(char message[], int key)
{
for(i = 0; message[i] != '\0'; ++i){
ch = message[i];

// dekripsi huruf kecil


if(ch >= 'a' && ch <= 'z'){
ch = ch - key;

if(ch < 'a'){


ch = ch + 'z' - 'a' + 1;
}

message[i] = ch;
}
// dekripsi huruf kapital
else if(ch >= 'A' && ch <= 'Z'){
ch = ch - key;

if(ch < 'A'){


ch = ch + 'Z' - 'A' + 1;
}

message[i] = ch;
}
}
}

Dalam fungsi tersebut digunakan 2 variabel yaitu massage (pesan yang akan
ditulis yang didefinisikan dengan setiap karakter abjad yang terpisah/ch) dan
key (kunci untuk kode yang akan digunakan) serta 2 syarat kemungkinan
kondisi, yaitu else if dengan kemungkinan pesan menggunakan huruf kapital
dan huruf kecil.
Cara Kerja Fungsi : Program akan menggeser mundur karakter sebanyak i
atau kunci yang dimasukkan.

>> Fungsi Utama


int main()
{
FILE *filein, *fileout, *buffer;
char str;
char message[100];
int key;
 Menampilkan variabel yang akan digunakan dalam fungsi main.

filein = fopen("Asal.txt", "w");


printf("Masukkan pesan yang akan dienkripsi: ");
fgets(message, sizeof(message), stdin);

printf("Masukkan kunci untuk enkripsi/dekripsi: ");


scanf("%d", &key);
fputs(message, filein);
fclose(filein);
 Program akan membuka filein Asal.txt kemudian program akan
memerintahkan user untuk menginputkan pesan dan pesan akan
dienkripsi sesuai dengan kunci yang sudah diinputkan. Setelah itu, pesan
akan tertulis pada file Asal.txt dan program akan menutup file.

buffer = fopen("Kode.txt", "w");


encrypt(message, key);
printf("Pesan terenkripsi: %s", message);
fputs(message, buffer);
fclose(buffer);
 Program akan membuka file buffer Kode.txt kemudian program akan
menampilkan pesan yang telah dienkripsi sesuai dengan kunci yang
sudah diinputkan menjadi sebuah kode. Setelah itu, kode akan tertulis
pada file Kode.txt dan program akan menutup file.

fileout = fopen("Tujuan.txt", "w");


decrypt(message, key);
printf("Pesan terdekripsi: %s", message);
fputs (message, fileout);
fclose(fileout);
return 0;
}
 Program akan membuka fileout Tujuan.txt kemudian program akan
menampilkan pesan yang telah didekripsi sesuai dengan kunci yang
sudah diinputkan. Setelah itu, pesan akan tertulis pada file Tujuan.txt dan
program akan menutup file sehingga program akan selesai
B. CONTOH OUTPUT
>> Output pada terminal

>> Output pada file Asal.txt

>> Output pada file Kode.txt

>> Output pada file Tujuan.txt


BAB III
PENUTUP
A. KELEBIHAN PROGRAM
1. Sederhana
Program enkripsi-dekripsi ini merupakan suatu program yang sederhana
sehingga mudah diimplementasikan oleh siapa saja.
2. Cepat
Pemrosesan enkripsi-dekripsi dalam program ini termasuk cepat dikarenakan
hanya menggunakan operasi aritmatika yang sederhana.

B. KEKURANGAN PROGRAM
1. Rentan terhadap bruteforce
Program ini bisa dikatakan rentan terhadap bruteforce karena hanya
menggunakan 25 pergeseran sehingga mudah ditebak untuk mendapatkan teks
aslinya.
2. Hanya bisa melakukan enkripsi-dekripsi pada huruf abjad
Dikarenakan program ini hanya bisa melakukan proses enkripsi-dekripsi pada
huruf abjad, jika user menginputkan angka didalamnya maka akan
menampilkan angka yang sama pada hasil enkripsinya.

Anda mungkin juga menyukai