Dosen Pengampu :
Disusun Oleh :
Enkripsi dan dekripsi adalah hal yang penting dalam dunia komputer dan keamanan
informasi. Dalam pengembangan program, terdapat berbagai metode enkripsi dan dekripsi
yang dapat digunakan untuk menjaga kerahasiaan data. Salah satu metode sederhana yang
dapat digunakan adalah dengan menggeser karakter menurut urutan ASCII. Metode ini
memanfaatkan kode ASCII untuk mengubah karakter menjadi nilai numerik, kemudian nilai
numerik tersebut diubah dengan menggeser ke kiri atau ke kanan sesuai dengan aturan yang
telah ditentukan.
Dalam laporan ini, akan dijelaskan tentang pembuatan program enkripsi dan dekripsi
sederhana dengan menggunakan bahasa pemrograman C. Program ini bekerja dengan
mengubah nilai ASCII dari setiap karakter huruf dalam file dengan cara menggeser nilai
tersebut sejauh key yang dimasukkan oleh pengguna. Program ini dapat dijalankan melalui
command-line atau terminal dan akan mengambil input dan output dalam format file dengan
ekstensi .txt.
BAB II
PEMBAHASAN
int main() {
FILE *fpIn, *fpOut;
char fileName[100], ch;
int key, option;
//mendeklarasikan nama2 variable yang akan digunakan
printf("Encryption complete.\n");
break;//mengakhiri program
printf("Decryption complete.\n");
break;//mengakhiri program
return 0;
}
B. Analisis Code
#include <stdio.h>
#include <stdlib.h>
1. #include <stdio.h> dan #include <stdlib.h> adalah header file yang digunakan untuk
memberikan akses ke fungsi-fungsi standar C, seperti fungsi untuk membuka, membaca,
menulis, dan menutup file, serta fungsi exit() untuk keluar dari program.
int main() {
FILE *fpIn, *fpOut;
char fileName[100], ch;
int key, option;
//mendeklarasikan nama2 variable yang akan digunakan
printf("=====================================\nEncrypton & Decryption
Program\n");
printf("=====================================\n");
printf("Input 1 for encryption\nInput 2 for decryption\nYour choice : ");
scanf("%d", &option);
printf("=====================================\n");
2. Pada kode tersebut, terdapat deklarasi dua file pointer (fpIn dan fpOut) yang akan
digunakan untuk membuka file. Selain itu, ada juga deklarasi beberapa variabel lainnya,
yaitu fileName, ch, key, dan option.
Setelah itu, program akan menampilkan pesan kepada pengguna untuk memilih opsi
yang akan dilakukan, apakah untuk melakukan enkripsi atau dekripsi. Pesan tersebut
akan ditampilkan dengan menggunakan printf().
Terakhir, program akan meminta input dari pengguna mengenai pilihan opsi dengan
menggunakan scanf(). Opsi yang dimasukkan oleh pengguna akan disimpan dalam
variabel "option".
Lalu function switch() akan memilih code yang harus dijalankan sesuai perintah user.
Output :
printf("Encryption complete.\n");
break;//mengakhiri program
3. Bagian tersebut adalah code yang dijalankan apabila user menginput opsi 1 yaitu
enkripsi
Code tersebut terdiri dari beberapa langkah, yaitu:
- Meminta pengguna untuk memasukkan nama file yang akan dienkripsi dan jumlah
pergeseran huruf yang digunakan untuk enkripsi.
- Membuka file input dengan nama file yang diinputkan oleh pengguna dan
memberikan akses untuk membaca file tersebut.
- Membuat file output dengan nama "encrypted.txt" dan memberikan akses untuk
menulis pada file tersebut.
- Membaca karakter dari file input satu per satu sampai end of file (EOF) ditemukan.
- Jika karakter merupakan huruf alpabet kecil, maka dilakukan pergeseran huruf
sesuai jumlah pergeseran yang telah dimasukkan oleh pengguna.
- Jika karakter merupakan huruf alpabet besar, maka juga dilakukan pergeseran huruf
sesuai jumlah pergeseran yang telah dimasukkan oleh pengguna.
- Setiap karakter yang telah dienkripsi kemudian dituliskan pada file output.
- Setelah selesai membaca dan mengenkripsi semua karakter dari file input, kedua file
input dan output ditutup.
- Program mengakhiri proses dan mencetak teks "Encryption complete." pada layar.
Output :
printf("Decryption complete.\n");
break;//mengakhiri program
4. Bagian tersebut adalah code yang dijalankan apabila user menginput opsi 2 yaitu
dekripsi. Bagian ini hampir sama dengan sebelumnya, hanya saja rumus untuk
penggeseran huruf berbeda.
Langkah-langkah yang ada pada code tersebut hampir sama seperti opsi 1 yaitu :
- Meminta pengguna untuk memasukkan nama file yang akan didekripsi dan jumlah
pergeseran huruf yang digunakan untuk dekripsi.
- Membuka file input dengan nama file yang diinputkan oleh pengguna dan
memberikan akses untuk membaca file tersebut.
- Membuat file output dengan nama "decrypted.txt" dan memberikan akses untuk
menulis pada file tersebut.
- Membaca karakter dari file input satu per satu sampai end of file (EOF) ditemukan.
- Jika karakter merupakan huruf alpabet kecil, maka dilakukan pergeseran huruf
sesuai jumlah pergeseran yang telah dimasukkan oleh pengguna.
- Jika karakter merupakan huruf alpabet besar, maka juga dilakukan pergeseran huruf
sesuai jumlah pergeseran yang telah dimasukkan oleh pengguna.
- Setiap karakter yang telah didekripsi kemudian dituliskan pada file output.
- Setelah selesai membaca dan mengenkripsi semua karakter dari file input, kedua file
input dan output ditutup.
- Program mengakhiri proses dan mencetak teks "Decryption complete." pada layar.
Output :
7. Bagian ini adalah isi dari teks “asal.txt” yang telah dienkripsi. Pergeseran enkripsi yang
diinput adalah 3 sehingga bergeser sebanyak +3 (huruf dari teks awal bergeser 3 ke
kanan, misal ‘a’ bergeser 3 menjadi ‘d’, dst). Nama filenya adalah “encrypted.txt”
8. Bagian ini adalah isi dari teks “encrypted.txt” yang telah didekripsi. Pergeseran dekripsi
yang diinputkan adalah 3 sehingga bergeser sebanyak -3 (huruf dari teks awal bergeser
3 ke kiri, misal ‘z’ bergeser 3 menjadi ‘w’). nama filenya adalah “decrypted.txt”.
C. Kekurangan Program
1. Hanya file berekstensi .txt yang dapat di enkripsi dan dekripsi, apabila file lain akan ada
error dan bug
2. Hanya bisa menghasilkan output file berekstensi .txt
3. Program hanya dapat mengenkripsi dan dekripsi karakter berupa huruf atau alpabet
mulai dari a hingga z baik lower-case maupun upper-case. Untuk karakter lain seperti
angka dan tanda baca tidak akan bisa terenkripsi maupun dekripsi
BAB III
PENUTUP
A. Kesimpulan
Program ini adalah sebuah program sederhana yang dapat melakukan enkripsi dan
dekripsi pada file yang berformat .txt. Program ini ditulis menggunakan bahasa
pemrograman C dan mengimplementasikan metode enkripsi dan dekripsi dengan cara
menggeser nilai ASCII dari setiap karakter huruf alfabet dalam file sebanyak pergeseran
yang dimasukkan oleh pengguna. Apabila user memilih opsi 1 maka maka akan masuk ke
dalam program enkripsi sedangkan untuk opsi 2 akan masuk ke dalam program dekripsi.
Program enkripsi akan menghasilkan file .txt bernama “encrypted.txt” dan berisi huruf dari
file awal yang telah digeser sesuai nilai yang diinput. Untuk program dekripsi akan
menghasilkan file .txt bernama “decrypted.txt” yang merupakan pengembalian file
“encrypted.txt” ke bentuk awal apabila diinput nilai geser sesuai nilai enkripsi sebelumnya.