Stsn6's Weblog

Akan Selalu Memberikan Yang Terbaik Untuk Negara

Tugas RC4 Magdalena Christine,Mahful H. ,Rani Diansari.(tk.1 MP)

#include “stdio.h”

char *EnkripDekrip(const char *pText, int iTextLen, const char *pKey);
void swapints(int *array, int ndx1, int ndx2);

int main()
{
char xbox[256], passwd[25], *pEnkripsi, *pDekripsi, *pkar;
int i, iLen;
clrscr();
for(;;)
{

printf(“\n                +—-   APLIKASI ENKRIPSI – DEKRIPSI RC4   —-+”);
printf(“\n                |                                              | “);
printf(“\n                |By :                                          | “);
printf(“\n                |      1. Magdalena Christine                  | “);
printf(“\n                |      2. Mahful Hudha S.                      | “);
printf(“\n                |      3. Rani Diansari                        | “);
printf(“\n                |     ( Tingkat 1 Manajemen Persandian)        | “);
printf(“\n                + ——————————————– + “);

printf(“\n\n\nPlease insert your message (press enter to out from this program): “);
fgets(xbox, sizeof(xbox), stdin);
for (i = strlen(xbox) – 1; (i >= 0) && (xbox[i] == 10); i–)
xbox[i] = 0;
if (!xbox[0])
break;
printf(“\nKunci: “);
fgets(passwd, sizeof(passwd), stdin);
for (i = strlen(passwd) – 1; (i >= 0) && (passwd[i] == 10); i–)
passwd[i] = 0;
if (!passwd[0])
break;
iLen = strlen(xbox);
pEnkripsi = EnkripDekrip(xbox, iLen, passwd);
printf(“\nHasil Enkripsi:\n”);
for (pkar = pEnkripsi, i=0; i < iLen; pkar++, i++)
{
if (!(i % 20))
printf(“\n”);
printf(“%c “, (unsigned char)*pkar);
}
printf(“\n”);

pDekripsi = EnkripDekrip(pEnkripsi, iLen, passwd);
pDekripsi[iLen] = 0;
printf(“\nDecrypted text: %s”, pDekripsi);

}

}

char *EnkripDekrip(const char *pText, int iTextLen, const char *pKey)

{
char *cipher;
int a, b, i=0, j=0, k;
int ilen;
int sbox[256];
int key[256];

ilen = strlen(pKey);

for (a=0; a < 256; a++)
{
key[a] = pKey[a % ilen];
sbox[a] = a;
}

for (a=0, b=0; a < 256; a++)
{
b = (b + sbox[a] + key[a]) % 256;
swapints(sbox, a, b);
}

cipher = (char *)malloc(iTextLen);

for (a=0; a < iTextLen; a++)
{
i = (i + 1) % 256;
j = (j + sbox[i]) % 256;
swapints(sbox, i, j);
k = sbox[(sbox[i] + sbox[j]) % 256];
cipher[a] = pText[a] ^ k;
}
return cipher;
}

void swapints(int *block, int ndx1, int ndx2)
{
int kosong = block[ndx1];
block[ndx1] = block[ndx2];
block[ndx2] = kosong;
}


Iklan

Juni 27, 2008 Posted by | Uncategorized | Tinggalkan komentar

DISTRIBUSI FREKUENSI MONOLATERAL by RIO YP 1 TP

RIO YU NIA PRATAMA

#include <stdio.h>
#include <string.h>

main()
{

int a, b, c, d, e, f, g, h, i, j;
int k, l, m, n, o, p, q, r, s, t;
int u, v, w, x, y, z;

int kar, jum;
char ts[256];

a=0; b=0; c=0; d=0; e=0; f=0; g=0; h=0; i=0; j=0; k=0; l=0; m=0;
n=0; o=0; p=0; q=0; r=0; s=0; t=0; u=0; v=0; w=0; x=0; y=0; z=0;

clrscr();

printf(“DISTRIBUSI FREKUENSI MONOLATERAL\n”);
printf(“——————————–\n\n”);

printf(“ciphertext: “);
gets(ts);
strupr(ts);

jum=strlen(ts);

for(kar=0;kar<jum;kar++)
{
switch(ts[kar])
{
case ‘A’: a++; break;
case ‘B’: b++; break;
case ‘C’: c++; break;
case ‘D’: d++; break;
case ‘E’: e++; break;
case ‘F’: f++; break;
case ‘G’: g++; break;
case ‘H’: h++; break;
case ‘I’: i++; break;
case ‘J’: j++; break;
case ‘K’: k++; break;
case ‘L’: l++; break;
case ‘M’: m++; break;
case ‘N’: n++; break;
case ‘O’: o++; break;
case ‘P’: p++; break;
case ‘Q’: q++; break;
case ‘R’: r++; break;
case ‘S’: s++; break;
case ‘T’: t++; break;
case ‘U’: u++; break;
case ‘V’: v++; break;
case ‘W’: w++; break;
case ‘X’: x++; break;
case ‘Y’: y++; break;
case ‘Z’: z++; break;
}
}

printf(“\n\nHasil DFM:\n\n”);

printf(“A= %2d —> %6.2f%%\t\tN= %2d —> %6.2f%%\n”, a, (float)a/jum*100, n, (float)n/jum*100);
printf(“B= %2d —> %6.2f%%\t\tO= %2d —> %6.2f%%\n”, b, (float)b/jum*100, o, (float)o/jum*100);
printf(“C= %2d —> %6.2f%%\t\tP= %2d —> %6.2f%%\n”, c, (float)c/jum*100, p, (float)p/jum*100);
printf(“D= %2d —> %6.2f%%\t\tQ= %2d —> %6.2f%%\n”, d, (float)d/jum*100, q, (float)q/jum*100);
printf(“E= %2d —> %6.2f%%\t\tR= %2d —> %6.2f%%\n”, e, (float)e/jum*100, r, (float)r/jum*100);
printf(“F= %2d —> %6.2f%%\t\tS= %2d —> %6.2f%%\n”, f, (float)f/jum*100, s, (float)s/jum*100);
printf(“G= %2d —> %6.2f%%\t\tT= %2d —> %6.2f%%\n”, g, (float)g/jum*100, t, (float)t/jum*100);
printf(“H= %2d —> %6.2f%%\t\tU= %2d —> %6.2f%%\n”, h, (float)h/jum*100, u, (float)u/jum*100);
printf(“I= %2d —> %6.2f%%\t\tV= %2d —> %6.2f%%\n”, i, (float)i/jum*100, v, (float)v/jum*100);
printf(“J= %2d —> %6.2f%%\t\tW= %2d —> %6.2f%%\n”, j, (float)j/jum*100, w, (float)w/jum*100);
printf(“K= %2d —> %6.2f%%\t\tX= %2d —> %6.2f%%\n”, k, (float)k/jum*100, x, (float)x/jum*100);
printf(“L= %2d —> %6.2f%%\t\tY= %2d —> %6.2f%%\n”, l, (float)l/jum*100, y, (float)y/jum*100);
printf(“M= %2d —> %6.2f%%\t\tZ= %2d —> %6.2f%%\n”, m, (float)m/jum*100, z, (float)z/jum*100);

printf(“\nJUMLAH CIPHERTEXT= %d”, jum);

getch();

}

Juni 26, 2008 Posted by | Uncategorized | Tinggalkan komentar

DISTRIBUSI FREKUENSI BILATERAL by RIO YP 1TP

RIO YUNIA PRATAMA

#include <stdio.h>
#include <string.h>

main()
{

char stra[32], strb[32], strc[32], strd[32], stre[32], strf[32], strg[32], strh[32], stri[32], strj[32];
char strk[32], strl[32], strm[32], strn[32], stro[32], strp[32], strq[32], strr[32], strs[32], strt[32];
char stru[32], strv[32], strw[32], strx[32], stry[32], strz[32];

int a=0, b=0, c=0, d=0, e=0, f=0, g=0, h=0, i=0, j=0, k=0, l=0, m=0;
int n=0, o=0, p=0, q=0, r=0, s=0, t=0, u=0, v=0, w=0, x=0, y=0, z=0;

int kar, jum;
char ts[256];

clrscr();

printf(“D F B\n”);
printf(“——————————\n”);
printf(“DISTRIBUSI FREKUENSI BILATERAL\n”);
printf(“——————————\n”);

printf(“——RIO YUNIA PRATAMA——-\n”);

printf(“Teks sandi: “);
gets(ts);
strupr(ts);

jum=strlen(ts);

for(kar=0;kar<31;kar++)
{
stra[kar]= ”;
strb[kar]= ”;
strc[kar]= ”;
strd[kar]= ”;
stre[kar]= ”;
strf[kar]= ”;
strg[kar]= ”;
strh[kar]= ”;
stri[kar]= ”;
strj[kar]= ”;
strk[kar]= ”;
strl[kar]= ”;
strm[kar]= ”;
strn[kar]= ”;
stro[kar]= ”;
strp[kar]= ”;
strq[kar]= ”;
strr[kar]= ”;
strs[kar]= ”;
strt[kar]= ”;
stru[kar]= ”;
strv[kar]= ”;
strw[kar]= ”;
strx[kar]= ”;
stry[kar]= ”;
strz[kar]= ”;
}

for(kar=0;kar<jum-1;kar++)
{
switch(ts[kar])
{
case ‘A’: stra[a]=ts[kar+1]; a++; break;
case ‘B’: strb[b]=ts[kar+1]; b++; break;
case ‘C’: strc[c]=ts[kar+1]; c++; break;
case ‘D’: strd[d]=ts[kar+1]; d++; break;
case ‘E’: stre[e]=ts[kar+1]; e++; break;
case ‘F’: strf[f]=ts[kar+1]; f++; break;
case ‘G’: strg[g]=ts[kar+1]; g++; break;
case ‘H’: strh[h]=ts[kar+1]; h++; break;
case ‘I’: stri[i]=ts[kar+1]; i++; break;
case ‘J’: strj[j]=ts[kar+1]; j++; break;
case ‘K’: strk[k]=ts[kar+1]; k++; break;
case ‘L’: strl[l]=ts[kar+1]; l++; break;
case ‘M’: strm[m]=ts[kar+1]; m++; break;
case ‘N’: strn[n]=ts[kar+1]; n++; break;
case ‘O’: stro[o]=ts[kar+1]; o++; break;
case ‘P’: strp[p]=ts[kar+1]; p++; break;
case ‘Q’: strq[q]=ts[kar+1]; q++; break;
case ‘R’: strr[r]=ts[kar+1]; r++; break;
case ‘S’: strs[s]=ts[kar+1]; s++; break;
case ‘T’: strt[t]=ts[kar+1]; t++; break;
case ‘U’: stru[u]=ts[kar+1]; u++; break;
case ‘V’: strv[v]=ts[kar+1]; v++; break;
case ‘W’: strw[w]=ts[kar+1]; w++; break;
case ‘X’: strx[x]=ts[kar+1]; x++; break;
case ‘Y’: stry[y]=ts[kar+1]; y++; break;
case ‘Z’: strz[z]=ts[kar+1]; z++; break;
}
}

printf(“\n\nHasil DFB:\n\n”);

printf(“A= %-32s \t N= %-32s\n”, stra, strn);
printf(“B= %-32s \t O= %-32s\n”, strb, stro);
printf(“C= %-32s \t P= %-32s\n”, strc, strp);
printf(“D= %-32s \t Q= %-32s\n”, strd, strq);
printf(“E= %-32s \t R= %-32s\n”, stre, strr);
printf(“F= %-32s \t S= %-32s\n”, strf, strs);
printf(“G= %-32s \t T= %-32s\n”, strg, strt);
printf(“H= %-32s \t U= %-32s\n”, strh, stru);
printf(“I= %-32s \t V= %-32s\n”, stri, strv);
printf(“J= %-32s \t W= %-32s\n”, strj, strw);
printf(“K= %-32s \t X= %-32s\n”, strk, strx);
printf(“L= %-32s \t Y= %-32s\n”, strl, stry);
printf(“M= %-32s \t Z= %-32s\n”, strm, strz);

printf(“\nJUMLAH TEKS SANDI= %d”, jum);

getch();

}

Juni 26, 2008 Posted by | Uncategorized | Tinggalkan komentar

coba untuk palisade,.indraadiputra,andikahasditama

*/RANCANGAN SISTEM SANDI PALISADE/*

INPUTAN:
char plain[100];
int Lj,Lh,Q,p,x,n,i;
f[n];

keterangan:
Lj= Lajur
Lh= Panjang Karakter teks terang tiap satu bukit
Q= Jumlah/nilai karakter teks terang inputan
p= Panjang Karakter sampai 1 puncak
x= nilai/kedudukan karakter teks terang
n= urutan baris pengambilan teks terang menjadi teks sandi

PROSES:
*/ MINTA INPUTAN PLAIN TEXT/TEKS TERANG /*
*/ BACA JUMLAH ATAU NILAI KARAKTER TEKS TERANG(Q) /*
*/ MINTA INPUTAN NILAI Lj (Lajur) /*
*/ MASUKKAN NILAI INPUTAN Lj ke dalam rumus Lh=Q/Lj, untuk mencari Lh /*
*/ MEMASUKKAN HASIL Lh KE DALAM RUMUS p=(Lh+1)/2 /*
*/ MENGKOMBINASIKAN NILAI Lj,Lh,Q,p, dan x (x=kedudukan per karakter) KE DALAM SUATU MATRIKS YANG BERBENTUK BUKIT /*

CONTOH:

n1 O E A
n2 D N M R D H
n3 N E A D A
n4 I S I E K

Analisis:
1.Satu Lh= I-N-D-O-N-E-S (7)
Perhatikan bahwa Lh juga jarak antar Lj satu dengan yang Lainnya
2.Lj(Lajur)/puncak: Lj1= O Lj3= A
Lj2= E DST
3.Satu p= I-N-D-O (4)

4.DALAM SATU Lh lihat jarak posisi antara,
D(x3)-N(x5)=2
N(x2)-E(x6)=4
I(x1)-S(x7)=6
jadi tiap posisi karakter di n yang satu dengan yang lain berselisih 2 dari deret(2-4-6)

*/MENGAMBIL KARAKTER DARI MATRIKS GELOMBANG UNTUK DISUSUN MENJADI TEKS SANDI/*

SUSUNAN PENGAMBILAN: X4-X11-X18-X3-X5-X10-X12-X17-X19-X2-X6-X9-X13-X16-X1-X7-X8-X14-X15-DST

PENGAMBILAN:
f[N]= ARRAY untuk mengambil nilai n satu per satu
untuk {f[n1]=0}= x4-x11-x18-dst
{f[n2]=1}= x3-x5-x10-x12-dst
{f[n3]=2}= x2-x6-x9-x13-x16-dst
|
|
|
{f[n ke p=n ke p-1]}= sesuai urutan matriks

proses pengambilan:
FOR pertama untuk mengambil karakter sesuai urutan n:
n1= x (p)+ i(Lh) i=parameter(nilai berubah-ubah sesuai urutan)
n2= x(p-1)+i(Lh);{x (p-1)+2}+i(Lh)
n3= x(p-2)+i(Lh);{x(p-2)+2}+i(Lh)
n4= x(p-3)+i(Lh);{x(p-3)+2}+i(Lh)
n5= x(p-4)+i(Lh); {x(p-4)+2}+i(Lh)

FOR KEDUA UNTUK MENGURUTKAN PROSES PENGAMBILAN n DARI n1 SAMPI n ke ???

OUT PUT:
*/TAMPILKAN TEKS SANDI/*

Juni 26, 2008 Posted by | Uncategorized | Tinggalkan komentar

tugas login

#include <stdio.h>
#include <conio.h>
#include <string.h>

void login(char pwd[]){
char tombol;
clrscr();
header();
printf(“Login (Y/N)??”);

tombol=toupper(getch());
while(!(tombol==’N’||tombol==’Y’))
tombol=toupper(getch());
if(tombol==’Y’) password(pwd);
getch();

}

int password(char pwd[]){
char a[30];
int i;
printf(“\nmasukkan password: “);
gets(a);
clrscr();
i=strcmp(a,pwd);
if(i!=0) login(pwd);
else if(i==0) {
printf(“WELCOME TO YOUR ACCOUNT\n\n”);
printf(“PLEASE WAIT\n\n”);
printf(“Now Loading “);
for(i=0;i<11;i++){delay(110000);printf(“.”);}
puts(“\n\nCOMPLETE”);delay(250000);
menu();}
}

int menu(char pwd[]){
int i;
char tombol;
clrscr();
header();
puts(“Menu Utama (Silahkan Pilih):\n”);
puts(“1. Simpan Kunci”);
puts(“2. Ambil Kunci”);
puts(“3. Ubah Password”);
puts(“4. Logout”);
tombol=getch();
while(!(tombol==’1’||tombol==’2’||tombol==’3’||tombol==’4′))
tombol=getch();
switch(tombol)
{case ‘1’: simpan_kunci();break;
case ‘2’: ambil_kunci();break;
case ‘3’: ubah_password();break;
case ‘4’: clrscr();printf(“\n\n\n\n\n\n\n\n\n\n\n\t\t\tTHANKS FOR VISIT THIS PROGRAM\n\t\t\t              “);
for(i=0;i<1105;i++)delay(250);login(pwd);break;}
}

int simpan_kunci(char pwd[])
{
char id_key[15],tombol;
FILE *pf;
char kunci[1000];
clrscr();
printf(“\nID key\t: ……..\b\b\b\b\b\b\b\b”);
gets(id_key);
strcat(id_key,”.txt”);
printf(“\nMasukkan Kunci\t:\n”);
gets(kunci);
encrypt_kunci(kunci);
pf=fopen(id_key,”w”);
fputs(kunci,pf);
fclose(pf);
printf(“\nAdd Kunci(Y/N)??\n”);
tombol=toupper(getch());
while(!(tombol==’N’||tombol==’Y’))
tombol=toupper(getch());
switch(tombol)
{case ‘Y’:simpan_kunci(pwd);break;
case ‘N’:menu(pwd);break;}
}

int encrypt_kunci(char kunci[])
{
int i;
for(i=0;i<(strlen(kunci));i++)
kunci[i]=kunci[i]^i^((i+11)%(25+4));
}

int decrypt_kunci(char kunci[])
{
int i;
for(i=0;i<(strlen(kunci));i++)
kunci[i]=kunci[i]^i^((i+11)%(25+4));
}

int ambil_kunci(char pwd[])
{
char id_key[8],kunci[1000],tombol;
FILE *pf;
clrscr();
printf(“\nID Key\t: ……..\b\b\b\b\b\b\b\b”);
gets(id_key);
strcat(id_key,”.txt”);
pf=fopen(id_key,”r+”);
fgets(kunci,1000,pf);
close(pf);
decrypt_kunci(kunci);
printf(“\nKunci\t: \n%s”,kunci);
printf(“\n\nAmbil Kunci lagi(Y/N)??\n”);
tombol=toupper(getch());
while(!(tombol==’N’||tombol==’Y’))
tombol=toupper(getch());
switch(tombol)
{case ‘Y’:ambil_kunci(pwd);break;
case ‘N’:menu(pwd);break;}
}

int ubah_password(char pwd[])
{
char pwd2[30],pwd3[30];
clrscr();
printf(“\nNew Password\t: “);
gets(pwd2);
printf(“verifying\t: “);
gets(pwd3);
if((strcmp(pwd2,pwd3))!=0) login(pwd);
else if((strcmp(pwd2,pwd3))==0){printf(“SELAMAT PASSWORD ANDA BENAR”);
delay(5);pwd=pwd2;menu(pwd);}
}

int header(void)
{
printf(“\n\t ______________________________________ \n”);
printf(“\t|                                      |\n”);
printf(“\t|          PROGRAM ARSIP KUNCI         |\n”);
printf(“\t|         (simulasi  sederhana)        |\n”);
printf(“\t|     created by : (my inspiration)    |\n”);
printf(“\t|______________________________________|\n\n\n”);
}

main(){
char pwd[30]=”1234″;
login(pwd);
}

indra    hheheheITP

Juni 26, 2008 Posted by | Uncategorized | Tinggalkan komentar

ass..
Maaf Pak sebelumnya,
kami baru bisa posting tugas program sistem sandi yang diberikan Bapak hari ini, dan itu pun masih dalam bentuk rancangan algoritma.
Masalah yang kami hadapi pada saat pembuatan program:
1. Kami kurang media untuk belajar coding, oleh karena padat jam responsi.
2. Senior yang kami anggap sebagai tempat belajar/informasi sedang disibukkan oleh tugas-tugasnya.
Kami sudah mencoba untuk membuat algoritmanya, tapi kami belum bisa mengaplikasikkan algoritmanaya ke program…maaf seharusnya kami lebih aktif bertanya ke Bapak perihal ini…selanjutnya jika diperkenankan, kami mohon bimbingan dari bapak untuk menyelesaikan program ini…

oh iya… dalam contoh palisade yang kami buat kami lupa mencantumkan teks terangnya, yaitu INDONESIA MERDEKA DAHULU..
Terima kasih…

Juni 17, 2008 Posted by | Uncategorized | Tinggalkan komentar

RANCANGAN SISTEM SANDI PALISADE by MAULANA ANDIKA & INDRA ADI

*/RANCANGAN SISTEM SANDI PALISADE/*

INPUTAN:
char plain[100];
int Lj,Lh,Q,p,x,n,i;
f[n];

keterangan:
Lj= Lajur
Lh= Panjang Karakter teks terang tiap satu bukit
Q= Jumlah/nilai karakter teks terang inputan
p= Panjang Karakter sampai 1 puncak
x= nilai/kedudukan karakter teks terang
n= urutan baris pengambilan teks terang menjadi teks sandi

PROSES:
*/ MINTA INPUTAN PLAIN TEXT/TEKS TERANG /*
*/ BACA JUMLAH ATAU NILAI KARAKTER TEKS TERANG(Q) /*
*/ MINTA INPUTAN NILAI Lj (Lajur) /*
*/ MASUKKAN NILAI INPUTAN Lj ke dalam rumus Lh=Q/Lj, untuk mencari Lh /*
*/ MEMASUKKAN HASIL Lh KE DALAM RUMUS p=(Lh+1)/2 /*
*/ MENGKOMBINASIKAN NILAI Lj,Lh,Q,p, dan x (x=kedudukan per karakter) KE DALAM SUATU MATRIKS YANG BERBENTUK BUKIT /*

CONTOH:

n1 O E A
n2 D N M R D H
n3 N E A D A
n4 I S I E K

Analisis:
1.Satu Lh= I-N-D-O-N-E-S (7)
Perhatikan bahwa Lh juga jarak antar Lj satu dengan yang Lainnya
2.Lj(Lajur)/puncak: Lj1= O Lj3= A
Lj2= E DST
3.Satu p= I-N-D-O (4)

4.DALAM SATU Lh lihat jarak posisi antara,
D(x3)-N(x5)=2
N(x2)-E(x6)=4
I(x1)-S(x7)=6
jadi tiap posisi karakter di n yang satu dengan yang lain berselisih 2 dari deret(2-4-6)

*/MENGAMBIL KARAKTER DARI MATRIKS GELOMBANG UNTUK DISUSUN MENJADI TEKS SANDI/*

SUSUNAN PENGAMBILAN: X4-X11-X18-X3-X5-X10-X12-X17-X19-X2-X6-X9-X13-X16-X1-X7-X8-X14-X15-DST

PENGAMBILAN:
f[N]= ARRAY untuk mengambil nilai n satu per satu
untuk {f[n1]=0}= x4-x11-x18-dst
{f[n2]=1}= x3-x5-x10-x12-dst
{f[n3]=2}= x2-x6-x9-x13-x16-dst
|
|
|
{f[n ke p=n ke p-1]}= sesuai urutan matriks

proses pengambilan:
FOR pertama untuk mengambil karakter sesuai urutan n:
n1= x (p)+ i(Lh) i=parameter(nilai berubah-ubah sesuai urutan)
n2= x(p-1)+i(Lh);{x (p-1)+2}+i(Lh)
n3= x(p-2)+i(Lh);{x(p-2)+2}+i(Lh)
n4= x(p-3)+i(Lh);{x(p-3)+2}+i(Lh)
n5= x(p-4)+i(Lh); {x(p-4)+2}+i(Lh)

FOR KEDUA UNTUK MENGURUTKAN PROSES PENGAMBILAN n DARI n1 SAMPI n ke ???

OUT PUT:
*/TAMPILKAN TEKS SANDI/*

Juni 17, 2008 Posted by | Uncategorized | Tinggalkan komentar

RANCANGAN SISTEM SANDI PALISADE BY MAULANA ANDIKA & INDRA ADI

*/RANCANGAN SISTEM SANDI PALISADE/*

INPUTAN:
char plain[100];
int Lj,Lh,Q,p,x,n,i;
f[n];

keterangan:
Lj= Lajur
Lh= Panjang Karakter teks terang tiap satu bukit
Q= Jumlah/nilai karakter teks terang inputan
p= Panjang Karakter sampai 1 puncak
x= nilai/kedudukan karakter teks terang
n= urutan baris pengambilan teks terang menjadi teks sandi

PROSES:
*/ MINTA INPUTAN PLAIN TEXT/TEKS TERANG /*
*/ BACA JUMLAH ATAU NILAI KARAKTER TEKS TERANG(Q) /*
*/ MINTA INPUTAN NILAI Lj (Lajur) /*
*/ MASUKKAN NILAI INPUTAN Lj ke dalam rumus Lh=Q/Lj, untuk mencari Lh /*
*/ MEMASUKKAN HASIL Lh KE DALAM RUMUS p=(Lh+1)/2 /*
*/ MENGKOMBINASIKAN NILAI Lj,Lh,Q,p, dan x (x=kedudukan per karakter) KE DALAM SUATU MATRIKS YANG BERBENTUK BUKIT /*

CONTOH:

n1 O E A
n2 D N M R D H
n3 N E A D A
n4 I S I E K

Analisis:
1.Satu Lh= I-N-D-O-N-E-S (7)
Perhatikan bahwa Lh juga jarak antar Lj satu dengan yang Lainnya
2.Lj(Lajur)/puncak: Lj1= O Lj3= A
Lj2= E DST
3.Satu p= I-N-D-O (4)

4.DALAM SATU Lh lihat jarak posisi antara,
D(x3)-N(x5)=2
N(x2)-E(x6)=4
I(x1)-S(x7)=6
jadi tiap posisi karakter di n yang satu dengan yang lain berselisih 2 dari deret(2-4-6)

*/MENGAMBIL KARAKTER DARI MATRIKS GELOMBANG UNTUK DISUSUN MENJADI TEKS SANDI/*

SUSUNAN PENGAMBILAN: X4-X11-X18-X3-X5-X10-X12-X17-X19-X2-X6-X9-X13-X16-X1-X7-X8-X14-X15-DST

PENGAMBILAN:
f[N]= ARRAY untuk mengambil nilai n satu per satu
untuk {f[n1]=0}= x4-x11-x18-dst
{f[n2]=1}= x3-x5-x10-x12-dst
{f[n3]=2}= x2-x6-x9-x13-x16-dst
|
|
|
{f[n ke p=n ke p-1]}= sesuai urutan matriks

proses pengambilan:
FOR pertama untuk mengambil karakter sesuai urutan n:
n1= x (p)+ i(Lh) i=parameter(nilai berubah-ubah sesuai urutan)
n2= x(p-1)+i(Lh);{x (p-1)+2}+i(Lh)
n3= x(p-2)+i(Lh);{x(p-2)+2}+i(Lh)
n4= x(p-3)+i(Lh);{x(p-3)+2}+i(Lh)
n5= x(p-4)+i(Lh); {x(p-4)+2}+i(Lh)

FOR KEDUA UNTUK MENGURUTKAN PROSES PENGAMBILAN n DARI n1 SAMPI n ke ???

OUT PUT:
*/TAMPILKAN TEKS SANDI/*

Juni 17, 2008 Posted by | Uncategorized | Tinggalkan komentar

OPERASI FILE,,RESKA^_^ I TP

OPERASI FILE
File adalah sebuah organisasi dari sejumlah record. Masing-masing record bisa terdiri dari satu
atau beberapa field. Setiap field terdiri dari satu atau beberapa byte.
Kebanyakan program melibatkan media disk sebagai tempat untuk membaca atau
menyimpan data. Data sendiri disimpan dalam disk dalam suatu kesatuan yang disebut file.
Suatu file merupakan organisasi dari sejumlah record. Masing-masing record dapat terdri
dari satu atau beberapa field dan setiap field terdiri dari satu atau beberapa byte data. Satu
byte data terdiri dari susuan 8 bit data.

Tahapan pada operasi file
Operasi file pada dasarnya meliputi tiga tahapan, yaitu :
1. Membuka / Mengaktifkan file
2. Melaksanakan proses file
3. Menutup file.

1. Membuka / Mengaktifkan file
Sebelum file dapat diakses (dibaca atau ditulisi), mula-mula file harus diaktifkan
lebih dulu. Untuk keperluan ini fungsi yang digunakan yaitu fopen(). Bentuk deklarasinya :
FILE *fopen(char *namafile, char *mode);
Keterangan :
nama file menyatakan nama dari file yang akan diaktifkan
mode jenis operasi yang akan dilakukan terhadap file.

berikut ini yang sering menyababkan terjadinya kesalahan dalam proses membuka file:

1. nama file yang diisikan tidak absah (valid), misal nama file yang mengandung spasi ataupun tanda lain.

2. membuka file dari disk yang belum disiapkan, misalnya disk belum dimasukan atau disk belum diformat.

3. membuka file yang tidak terdapat dalam direktori yang didefinisikan.

4. membuka file yang belum terbuat untuk proses pembacaan (mode “r”).

parameter namafile di atas digunakan untuk menunjukkan nama file yang akan di buka dalam program. sedangkan parameter mode digunakan untuk menentukan mode atau aksi yang akan dilakukan setelah file dibuka. adapun mode-mode yang telah didefinisikan untuk fungsi fopen ( ) adalah sbb:
Jenis-jenis operasi adalah sebagai berikut :

r = membuka suatu file teks untuk pembacaan

w = membuat suatu file teks untuk penulisan

a = menambahkan data ke sebuah file teks

rb = membuka suatu file binary untuk penulisan

wb = membuat suatu file binary untuk penulisan

ab = menambahkan data ke sebuah file binary

r+ = membuka suatu file teks untuk pembacaan/penulisan

w+ = membuat suatu file teks untuk pembacaan/penulisan

a+ = menambahakan data/membuat file teks untuk pembacaan/penulisan

r+b atau rb+ = membuka suatu file binary

w+b atau wb+ = membuat suatu file binary

a+b atau ab+ = menambahkan data ke file binary

2. Menutup file
Untuk menutup file, fungsi yang digunakan adalah fclose(). Bentuk deklarasinya :
int fclose(FILE *pf);
Fungsi fclose() menghasilkan keluaran berupa nol jika operasi penutupan file
berhasil dilakukan. merupakan salah satu operasi file yang berfungsi untuk mengaktifkan sebuah file. hal ini

dilakukan agar file tersebutdapat diakses.

contoh: FILE*fopen(char*namafile,char*mode);

3. Melaksanakan proses file
a) Menulis karakter
Bentuk yang digunakan adalah :
putc(int ch, file *fp)
fp adalah pointer file yang dihasilkan oleh fopen()
ch adalah karakter yang akan ditulis
b) Membaca Karakter
fungsi yang digunakan adalah :
getc(file *fp);
fp adalah pointer file yang dihasilkan oleh fopen()
Fungsi feof(), digunakan untuk mendeteksi akhir file
c) Membaca dan Menulis String
Menggunakan fgets() dan fputs().
Bentuk Umum :
fgets(char *str, int p, file *fp)
fputs(char *str, file *fp)
d) Membaca dan Menulis Blok Data
Fungsi yang digunakan adalah fread() dan fwrite()
Bentuk umum :
fread(void *buffer, int b_byte, int c, file *fp);
fwrite(void *buffer, int b_byte, int c, file *fp);

e) Membaca dan Menulis File yang Terformat
Jika diinginkan, data bilangan dapat disimpan ke dalam file dalam keadaan terformat.
Fungsi yang digunakan adalah :
fprintf(ptr_file, “string control”, daftar argument);
fscanf(pts_file, “string control”, daftar argument);

f) Manajemen file
^#^ mengubah nama file
untuk mengubah suatu nama file dari dalam program, maka kita dapat menggunakan fungsi standar yang telah disediakan oleh bahasa C. adapun fungsi yang dimaksud tersebut adalah fungsi rename() yang memiliki prototipe berikut

int renama (const char*oldname, const char*newname);

parameter oldname merupakan nama file yang lama yang akan diubah menjadi nama baru yang akan didefinisikan pada parameter newname.

^#^ menghapus file
untuk menghapus file, bahasa C telah menyediakan fungsi remove(). adapun prototipenya :

int remove(const chat*filename);

parameter filename menunjukkan nama file yang akan dihapus.

created by,,

RESKA R ^_^ I TP

Juni 13, 2008 Posted by | Uncategorized | Tinggalkan komentar

tugas Login by Asti Meysita I TP

#include <stdio.h>
#include <string.h>

void input();
void login();
main()
{
clrscr();
login();

}

void login()
{
char user[20],pass[20];

printf(”USER NAME : “);
gets(user);
printf(”PASSWORD ANDA :”);
gets(pass);

if(strcmp(user,”giri”)==0||strcmp(user,”wenny”)==0){
if(strcmp(pass,”coba”)==0)
input();
else exit(0);
}
}

void input(){

char nama[30];
int i;
float predikat[2],total,sks[2];
float nip,nilai[2],x[2];

printf(”masukkan nama : “);
gets(nama);

printf(”masukkan nilai ujian matdas : “);
scanf(”%f”,&nilai[0]);
printf(”masukkan nilai ujian bahasa Inggris : “);
scanf(”%f”,&nilai[1]);

printf(”jumlah sks matdas : “);
scanf(”%f”,&sks[0]);
printf(”jumlah sks bahasa inggris : “);
scanf(”%f”,&sks[1]);

for(i=0;i<2;i++){
if (x[i]>=86.0) predikat[i]=4;
if (x[i]<86.0&&x[i]>75.0) predikat[i]=3;
if (x[i]<=75.0&&x[i]>60.0) predikat[i]=2;
if (x[i]<=60.0) predikat[i]=1;
}

for (i=0;i<2;i++){
x[i]=(sks[i]*predikat[i]);

total=0;

total=total+x[i];
nip=total/sks[0]+sks[1];
}

printf(”nama : %s\n”,nama);

printf(”IPS : %f\n”, nip);
getch();

}

Juni 13, 2008 Posted by | Uncategorized | Tinggalkan komentar