بِسْمِ اللّهِ الرَّحْمَنِ الرَّحِيْمِ
mzm69 - Anda diminta untuk membuat program yang dapat meng-enkrip string menggunakanfungsi pergeseran (translasi) karakter dalam urutan abjad secara siklus. Bila karakter
ditulis dengan huruf besar maka ubah karakter tersebut menjadi dalam huruf kecil terlebih
dahulu sebelum digeser. Besar pergeseran ditentukan melalui parameter fungsi dan selalu
lebih besar dari pada 0. Contoh pergeseran karakter dalam urutan abjad adalah sebagai
berikut:
Pergesesan sebesar 3:
a → d
b → e
c → f
:
:
z → c
Pergesesan sebesar 2:
a → c
b → d
c → f
:
:
z → b
3
Gunakan urutan abjad dalam daftar ASCII untuk mengatur pergeseran.
Prototipe dari fungsi enkripsi adalah:
void enkripsi(char * data, int translasi);
Contoh Input:
Masukkan sebuah string: informatikA
Besar pergeseran karakter: 2
Contoh output:
Hasil enkripsi: kphqtocvkmc
Contoh Input:
Masukkan sebuah string: zOo
Besar pergeseran karakter: 4
Contoh output:
Hasil enkripsi: dss
Source Codenya
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h> /* Header tempat function tolower dideklarasikan */
void enkripsi(char * data, int translasi); /* Encrypt function Prototype */
int main()
{
char string[128]; /* Deklarasi banyak Slot pada Array String */
int up;
printf("\nMasukkan sebuah string: ");
scanf("%[^\n]", string); /* scanf "%[^\n]" digunakan untuk menginput string */
printf("Besar pergeseran karakter: ");
scanf("%d", &up);
while(up<=0) /* Perlakuan saat user memasukkan angka 0 pada besarpergeseran */
{
printf("Masukkan besar pergeseran yang lebih besar dari 0: ");
scanf("%d", &up);
break; /* Keluar dari While (Berhenti) agar tidak terjadi Loop Infinite */
}
enkripsi(string, up); /* memanggil fungsi enkripsi */
printf("\nHasil enkripsi: %s\n\n", string); /* mencetak string yang telah
diencrypt */
return 1;
}
void enkripsi(char *data, int translasi)
{
char *str; /* deklasrasi pointer "str" */
for(str=data; *str!='\0'; str++) /* gerak pointer hingga akhir dari inputan */
{
if(*str==32)str++; /* agar slot yang berisi spasi tetap menjadi spasi */
*str=(int)tolower(*str); /* mengecilkan semua huruf yang diinputkan */
*str=*str+translasi; /* proses enkripsi dengan menaikkan anga ascii nya */
if(*str>122)*str=*str-26;/* kondisi apabila enkripsi ascii nya melebihi
122 (diluar alphabet) akan dikurang 26 agar
angka asciinya menunjukkan alphabet kembali */
}
}
No comments:
Post a Comment