Kriptograpy caesar dengan delphi 7

Berikut ini adalah materi praktikum pertama mata kuliah keamanan komputer saya, disini saya akan menuliskan langkah untuk membuat sebuah algoritma enkrpsi dan deskripsi caesar menggunakan delphi 7.

1. Langkah pertama adalah mendesain form yang ingin di gunakan .

berikut adalah desain saya :

gambar disamping adalah desainnya, maaf jika gambar tersebut terlalu kecil. Form tersebut terdapat 2 memo, 1 edittext, 1 combobox, 2 radiobutton dan 2 button. untuk saya penamaannya tetap. misalkan memo sebelah kiri namanya adalam memo1, dan memo sebelah kanan adalah memo2, radiobutton atas adalah radiobutton1 dan bawah radiobutton2. edit text bernama edittext1. button proses  adalah button1 dan button clear text adalah button2.

                   Oke, setelah selasai mendesain. baru lah kita masuk untuk codingnya. klik lah tombol F12 pada keyboard anda. maka akan muncul tampilan atau sebuah layar kerja untuk memasukan script pada form tersebut.

nah biar tidak usah berlama – lama langsung aja copy paste program dibawah ini.

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Memo1: TMemo;
    Memo2: TMemo;
    RadioButton1: TRadioButton;
    RadioButton2: TRadioButton;
    Edit1: TEdit;
    Label1: TLabel;
    ComboBox1: TComboBox;
    Button1: TButton;
    Button2: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

function Caesar(x:string; k:string):string;
var i : integer;
    tx : string;

Begin
 tx:=”;
for i:=1 to length(x) do
    tx:=tx+chr(ord(x[i])+5);
    caesar:=tx;
end;

function Dcaesar(x:string; k:string):string;
var i : integer;
    dx : string;

Begin
 dx:=”;
for i:=1 to length(x) do
    dx:=dx+chr(ord(x[i])-5);
    dcaesar:=dx;
end;

procedure TForm1.Button1Click(Sender: TObject);
var i : integer;
begin
 if RadioButton1.Checked then Begin
  i:=combobox1.ItemIndex;
  Case i of
   0 : memo2.lines.Text:=Caesar(memo1.Lines.Text, edit1.Text);
   1 : Messagebox(Handle,’Sory!Belum dibuat!’,’Info’,MB_OK or MB_ICONINFORMATION);
  { 2 : if edit1.Text=” then Messagebox(Handle,’Harus ada kata kunci’,’Info’,MB_OK or MB_ICONINFORMATION)
        else
         memo2.Lines.Text:=vegenere(memo1.Lines.Text,edit1.Text);
}
end;
end

Else if RadioButton2.Checked then Begin
 i:=combobox1.ItemIndex;
Case i of
 0 : memo1.Lines.Text:=Dcaesar(memo2.Lines.Text, edit1.Text);
 1 : Messagebox(Handle,’Sory! Under Construction!’,’Info’,MB_OK or MB_ICONINFORMATION);
 2 : if edit1.text=” then Messagebox(Handle,’Harus ada kata kunci’, ‘Info’,MB_OK or MB_ICONINFORMATION)
    { else
      memo2.Lines.Text:=Dvegenere(memo1.Lines.Text, edit1.Text);
}end;
end

end;

procedure TForm1.Button2Click(Sender: TObject);
begin
 Memo2.Lines.Clear;
 Memo2.Lines.Clear;
 Form1.Refresh;
end;

end.

        Jika sudah tercopy maka klik lah tombol Run berbentuk segitiga hijau di bagian atas, atau tekan F9 dan lihat hasilnya. Jika anda memasukan misal inputan pada memo1 bertulis ARMA lalu pada radiobutton encrypt anda centang dan anda memilih algoritma enkripsi caesar pada combobox. maka tulisan arma akan muncul pada memo2 dengan bertulis FWRF. Hal itu terjadi karena ada perintah tx:=tx+chr(ord(x[i])+5); .  Perintah tersebut akan menambahkan sebanyak lima angka ke dalam karekter yang dimasukan lalu  untuk melakukan deskripsi hanya dibalik saja.

      Akan tetapi jika huruf yang diinputkan pada memo1 lebih besar dari ‘V‘ maka bukan huruf yang akan muncul pada memo2, melainkan sebuah karakter lain dalam sebuah keyboard yang bukan merupakan sebuah huruf alfabetic. misalkan ketika anda memasukan huruf  Z (huruf besar)  pada memo 1,  maka akan muncul karakter _ (garis bawah) pada memo2.  Hal ini terjadi karena huruf “A – Z” memiliki kode ASCII antara 65 sampai 92,  sedangkan “a-z” mempunyai kode ASCII 97 sampai 122. sehingga ketika ada inputan yang melebihi atau kurang dari range tersebut,  yang muncul akan berupa karakter pada keyboard.

       Karena masalah tersebut maka saya memodifikasi sendiri function enkripsi dan deskripsinya. berikut adalah function hasil modif saya.

function Caesar(x:string; k:string):string;
var i : integer;
    tx : string;

Begin
 tx:=”;
for i:=1 to length(x) do
 begin
  if ((ord(x[i])>=ord(‘V’)) and (ord(x[i])<ord(‘a’))) then
     begin
     tx:=tx+chr(ord(x[i])-21);
     end

  else if ord(x[i])>=ord(‘v’) then
     begin
     tx:=tx+chr(ord(x[i])-21);
     end

     else
     begin
    tx:=tx+chr(ord(x[i])+5);
     end;
   end;
    caesar:=tx;
end;

function Dcaesar(x:string; k:string):string;
var i : integer;
    dx : string;

Begin
 dx:=”;
for i:=1 to length(x) do
 begin
  if ord(x[i])<= ord(‘E’) then
     begin
     dx:=dx+chr(ord(x[i])+21);
     end

  else if ((ord(x[i])<=ord(‘e’)) and (ord(x[i])>=ord(‘Z’))) then
     begin
     dx:=dx+chr(ord(x[i])+21);
     end

     else
     begin
    dx:=dx+chr(ord(x[i])-5);
     end;
   end;
    dcaesar:=dx;
end;

          Dengan mengganti fungsi caesar dan dcaesar menjadi hasil modifan saya, maka ketika ada inputan huruf   ‘Z’  dalam memo 1, maka di memo2 akan muncul karakter berupa huruf   ‘E’. Demikian penjelasan dari saya, Maaf belum ada algoritma vegenere dan monobalisticnya  karena minggu ini saya banyak tugas. Oh ya, tolong dikoment ya jika artikel ini membantu dan bila ada yang mau ditanyakan tentang program ini.

mohon maaf , karena website ziddu sedang eror . maka program ini bisa di download dengan klik disini program(nyiing-nying)

3 thoughts on “Kriptograpy caesar dengan delphi 7

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s