You are on page 1of 12

Lampiran : Source Code

1. Source Code Registrasi


procedure TfrmRegistrasi.ButtonLoginClick(Sender: TObject);
begin
frmLogin.Show;
frmRegistrasi.Close;
end;

procedure TfrmRegistrasi.ButtonRegistrasiClick(Sender: TObject);


var xSEQIDPegawai : string;
begin
with DataModule1.ADOSeqnID do
begin
Active:=false;
Active:=true;
end;
SeqID:=DBEdit1.Text;
if Length(SeqID) = 1 then
xSEQIDPegawai := 'PEG000'+IntToStr(StrToInt(SeqID)+1)
else if Length(SeqID) = 2 then
xSEQIDPegawai := 'PEG00'+IntToStr(StrToInt(SeqID)+1)
else if Length(SeqID) = 3 then
xSEQIDPegawai := 'PEG0'+IntToStr(StrToInt(SeqID)+1)
else if Length(SeqID) = 4 then
xSEQIDPegawai := 'PEG'+IntToStr(StrToInt(SeqID)+1);
if
((EditEmail.Text<>'')and(EditNama.Text<>'')and(EditUsername.Text<>'')and(EditPassword.T
ext<>'')) then
Begin
if (Copy(EditEmail.Text, Length(EditEmail.Text)-9, 30) = '@Gmail.com')
or (Copy(EditEmail.Text, Length(EditEmail.Text)-9, 30) = '@gmail.com')
or (Copy(EditEmail.Text, Length(EditEmail.Text)-11, 30) = '@Gmail.co.id')
or (Copy(EditEmail.Text, Length(EditEmail.Text)-11, 30) = '@gmail.co.id')
then
begin
With DataModule1.QUser do
Begin
Insert;
Fields.FieldByName('id_user').Text:=xSEQIDPegawai;
Fields.FieldByName('email').Text:=EditEmail.Text;
Fields.FieldByName('nama').Text:=EditNama.Text;
Fields.FieldByName('username').Text:=EditUsername.Text;
Fields.FieldByName('password').Text:=EditPassword.Text;
Fields.FieldByName('level').Text:='pegawai';
Post;
Active:=false;
Active:=true;
End;
ShowMessage('Data berhasil disimpan. SILAHKAN LOGIN DENGAN AKUN BARU
ANDA.');
EditEmail.Clear;
EditNama.Clear;
EditUsername.Clear;
EditPassword.Clear;
Close;
end
else
ShowMessage('Email tidak valid.');
End
else
begin
ShowMessage('Ada data kosong. Silahkan periksa kembali. ');
end;
end;
end.

2. Source Code Login


procedure TfrmLogin.ButtonLoginClick(Sender: TObject);
begin
frmRegistrasi.Show;
frmLogin.Close;
end;

procedure TfrmLogin.ButtonRegistrasiClick(Sender: TObject);


begin
GVUser:=EditUsername.Text;
if
DataModule1.QUser.Locate('username;password;level',VarArrayof([EditUsername.Text,Edit
Password.Text,'admin']),[LoCaseInsensitive]) then
begin
MessageDlg('Selamat Datang Admin!',mtConfirmation,[mbOk],1);
GVUser:=EditUsername.Text;
EUsername.Text:=GVUser;
CloseModal;
frmHalamanUtamaAdmin.ShowModal;
EditUsername.Clear;
EditPassword.Clear;
End
else if
DataModule1.QUser.Locate('username;password;level',VarArrayof([EditUsername.Text,Edit
Password.Text,'pegawai']),[LoCaseInsensitive]) then
begin
MessageDlg('Selamat Datang Pegawai!',mtConfirmation,[mbOk],1);
GVUser:=EditUsername.Text;
EUsername.Text:=GVUser;
Close;
frmHalamanUtamaPegawai.ShowModal;
EditUsername.Clear;
EditPassword.Clear;
end
else
begin
MessageDlg('Username atau Password Salah! Silahkan login kembali.',mtConfirmation,
[mbOk],1);
EditUsername.Clear;
EditPassword.Clear;
EditUsername.SetFocus;
end;
end;

end.

3. Source Code Kelola Akun


procedure TfrmKelolaUser.ButtonHapusClick(Sender: TObject);
begin
if (MessageDlg('Apakah anda yakin hapus data yang dipilih?',mtConfirmation,
[mbYes,mbNo],0)=mrYes) then
begin
With DataModule1.QUser Do
Begin
Delete;
ExecSQL;
MessageDlg('Data berhasil terhapus.',mtConfirmation,[mbOK],0);
End;
end;
end;

procedure TfrmKelolaUser.ButtonRegistrasiClick(Sender: TObject);


begin
DataModule1.QUser.SQL.Text := 'Select * FROM user WHERE nama like ' + QuotedStr('%'
+ EditCari.Text + '%') ;
DataModule1.QUser.Active := true ;
if DataModule1.QUser.RecordCount=0 then
begin
MessageDlg('Data Tidak Ditemukan.',mtInformation,[mbOK],0);
DataModule1.QUser.Active:=False;
DataModule1.QUser.SQL.Clear;
DataModule1.QUser.SQL.Text:='select * from user;';
DataModule1.QUser.Active:=True;
end
else
begin
DBGrid1.SetFocus;
end;
end;

procedure TfrmKelolaUser.ButtonSimpanClick(Sender: TObject);


var xSEQIDPegawai : string;
begin
with DataModule1.ADOSeqnID do
begin
Active:=false;
Active:=true;
end;
SeqID:=DBEdit1.Text;
if Length(SeqID) = 1 then
xSEQIDPegawai := 'PEG000'+IntToStr(StrToInt(SeqID)+1)
else if Length(SeqID) = 2 then
xSEQIDPegawai := 'PEG00'+IntToStr(StrToInt(SeqID)+1)
else if Length(SeqID) = 3 then
xSEQIDPegawai := 'PEG0'+IntToStr(StrToInt(SeqID)+1)
else if Length(SeqID) = 4 then
xSEQIDPegawai := 'PEG'+IntToStr(StrToInt(SeqID)+1);

if
((ComboBox1.Text<>'')and(EditEmail.Text<>'')and(EditNama.Text<>'')and(EditUsername.T
ext<>'')and(EditPassword.Text<>'')) then
Begin
if (Copy(EditEmail.Text, Length(EditEmail.Text)-9, 30) = '@Gmail.com')
or (Copy(EditEmail.Text, Length(EditEmail.Text)-9, 30) = '@gmail.com')
or (Copy(EditEmail.Text, Length(EditEmail.Text)-11, 30) = '@Gmail.co.id')
or (Copy(EditEmail.Text, Length(EditEmail.Text)-11, 30) = '@gmail.co.id')
then
Begin
With DataModule1.QUser do
Begin
Insert;
Fields.FieldByName('id_user').Text:=xSEQIDPegawai;
Fields.FieldByName('email').Text:=EditEmail.Text;
Fields.FieldByName('nama').Text:=EditNama.Text;
Fields.FieldByName('username').Text:=EditUsername.Text;
Fields.FieldByName('password').Text:=EditPassword.Text;
Fields.FieldByName('level').Text:=ComboBox1.Text;
Post;
Active:=false;
Active:=true;
End;
ShowMessage('Data berhasil disimpan.');
End
else
ShowMessage('Format email tidak valid');
End
else
begin
ShowMessage('Ada data kosong. Silahkan periksa kembali. ');
end;
end;
procedure TfrmKelolaUser.ButtonTambahClick(Sender: TObject);
begin
EditID.Clear;
EditEmail.Clear;
EditNama.Clear;
EditUsername.Clear;
EditPassword.Clear;
ComboBox1.Text:='';
end;

procedure TfrmKelolaUser.ButtonUbahClick(Sender: TObject);


begin
if (MessageDlg('Apakah anda yakin ubah data ini?',mtConfirmation,
[mbYes,mbNo],0)=mrYes) then
begin
if
((EditNama.Text<>'')and(EditUsername.Text<>'')and(EditPassword.Text<>'')and(EditEmail.T
ext<>'')) then
Begin
With DataModule1.QUser do
Begin
Edit;
Fields.FieldByName('nama').Text:=EditNama.Text;
Fields.FieldByName('username').Text:=EditUsername.Text;
Fields.FieldByName('password').Text:=EditPassword.Text;
Fields.FieldByName('email').Text:=EditEmail.Text;
Fields.FieldByName('level').Text:=ComboBox1.Text;
Post;
Active:=false;
Active:=true;
End;
ShowMessage('Data berhasil disimpan.');
End
else
ShowMessage('Ada data kosong. Silahkan periksa kembali. ');
end;
end;

procedure TfrmKelolaUser.DBGrid1CellClick(Column: TColumn);


begin
EditNama.Text:=DBGrid1.Fields[0].AsString;
EditNama.Text:=DBGrid1.Fields[1].AsString;
EditUsername.Text:=DBGrid1.Fields[2].AsString;
EditPassword.Text:=DBGrid1.Fields[3].AsString;
EditEmail.Text:=DBGrid1.Fields[4].AsString;
ComboBox1.Text:=DBGrid1.Fields[5].AsString;
end;

procedure TfrmKelolaUser.Label2Click(Sender: TObject);


begin
Close;
end;

procedure TfrmKelolaUser.Label3Click(Sender: TObject);


begin
close;
frmHistory.Show;
end;

end.

4. Source Code History


procedure TfrmHistory.Button1Click(Sender: TObject);
begin
DataModule1.frxReport1.ShowReport();
end;

procedure TfrmHistory.Label1Click(Sender: TObject);


begin
close;
frmKelolaUser.Show;
end;

procedure TfrmHistory.Label2Click(Sender: TObject);


begin
Close;
end;

end.

5. Source Code Enkripsi


procedure TfrmEnkripsi.Button1Click(Sender: TObject);
begin
Edit2.Text:='';
OpenDialog1.Title:='Pilih text yang akan dienkripsi.';
if OpenDialog1.Execute then
begin
InputEnkripsi.Text:='';
InputEnkripsi.Lines.LoadFromFile(OpenDialog1.FileName);
Edit2.Text:=OpenDialog1.FileName;
ShowMessage('Data berhasil dimuat');
end;
end;

procedure TfrmEnkripsi.Button2Click(Sender: TObject);


var
NamaFileKey, NamaFileEnkripsi : string;
WordApplication, WordDocument : Variant;
begin
// ResultEnkripsi.Lines.SaveToFile('File Enkripsi/Data.txt');
SaveDialog1.Title:='SIMPAN HASIL KUNCI';
if KeyEnkripsi.Text<>'' then
begin
if SaveDialog1.Execute then
begin
if SaveDialog1.FileName<>'' then
begin
NamaFileKey:=SaveDialog1.FileName+'.doc';
KeyEnkripsi.Lines.SaveToFile(NamaFileKey);
ShowMessage('Kunci Berhasil di Simpan');
end;
end;
end
ELSE
BEGIN
ShowMessage('KUNCI MASIH KOSONG.');
END;

SaveDialog2.Title:='SIMPAN HASIL ENKRIPSI';


if ResultEnkripsi.Text<>'' then
begin
if SaveDialog2.Execute then
begin
if SaveDialog2.FileName<>'' then
begin
NamaFileEnkripsi:=SaveDialog2.FileName+'.doc';
ResultEnkripsi.Lines.SaveToFile(NamaFileEnkripsi);
ShowMessage('Text Enkripsi Berhasil di Simpan');
end;
end;
end
ELSE
BEGIN
ShowMessage('HASIL ENKRIPSI MASIH KOSONG.');
END;
end;

procedure TfrmEnkripsi.ButtonRegistrasiClick(Sender: TObject);


begin
if InputEnkripsi.Text = '' then
BEGIN
ShowMessage('Plaintext masih kosong. Silakan isi text yang akan di Enkripsi!');
InputEnkripsi.SetFocus;
exit;
END
else if length(KeyEdit.Text)>length(InputEnkripsi.Text) then
Begin
ShowMessage('Panjang kunci tidak boleh sama atau lebih dari plaintext');
EXIT;
End;
nKey:=Length(KeyEdit.Text);
keyText:=KeyEdit.Text;
KeyEnkripsi.Clear;
HasilGenerateKey:='';

//PEMBANGKITAN KUNCI
for x:=Length(KeyEdit.Text)+1 to Length(InputEnkripsi.Text) do
begin
HasilKey:=(StrToInt(FloatToStr(StrToFloat(Format('%.3d ',[Ord(keyText[(x)-
nKey])]))+StrToFloat(Format('%.3d ',[Ord(keyText[(x)-1])])))) mod 95) + 32;
keyText:=keyText+Chr(HasilKey);
HasilGenerateKey:=HasilGenerateKey+Chr(HasilKey);
end;

KeyEnkripsi.Text:=KeyEdit.Text+HasilGenerateKey;
GenKey:=KeyEnkripsi.Text;

//input akses
With DataModule1.QHistory do
Begin
Insert;
Fields.FieldByName('username').Text:=frmLogin.GVUser;
Fields.FieldByName('date').Text:=DateToStr(now);
Fields.FieldByName('jenis').Text:='Enkripsi';
Post;
Active:=false;
Active:=true;
End;
end;

procedure TfrmEnkripsi.FormResize(Sender: TObject);


begin
KeyEnkripsi.Width := frmEnkripsi.Width - 50;
Panel1.Width := frmEnkripsi.Width - 50;
ResultEnkripsi.Width := frmEnkripsi.Width - 400;
end;

procedure TfrmEnkripsi.FormShow(Sender: TObject);


begin
InputEnkripsi.Text:='';
InputEnkripsi.TextHint:='Masukan teks yang akan di enkripsi';
KeyEnkripsi.Text:='';
KeyEnkripsi.TextHint:='Key';
ResultEnkripsi.Text:='';
ResultEnkripsi.TextHint:='Hasil enkripsi teks';
KeyEdit.Clear;
Edit2.Clear;
end;

procedure TfrmEnkripsi.Label2Click(Sender: TObject);


begin
Close;
end;

procedure TfrmEnkripsi.Label3Click(Sender: TObject);


begin
close;
frmDeskripsi.Show;
end;

procedure TfrmEnkripsi.Label6Click(Sender: TObject);


begin
frmBantuan.ShowModal;
end;

procedure TfrmEnkripsi.Label8Click(Sender: TObject);


begin
Close;
end;

procedure TfrmEnkripsi.Panel1Click(Sender: TObject);


begin
if (KeyEnkripsi.Text<>'') AND (InputEnkripsi.Text<>'') then
BEGIN
plainText:=(InputEnkripsi.Text);
nPlainText:=Length(InputEnkripsi.Text);

//PROSES ENKRIPSI
for I := 1 to nPlainText do
begin
HasilPlainText := ((Ord(plainText[I]) + Ord(GenKey[I])) mod 95) + 32;
ResultEnkripsi.Text:=ResultEnkripsi.Text+Char(HasilPlainText);
end;
GenEnkripsi:=ResultEnkripsi.Text;
END
ELSE
BEGIN
ShowMessage('Lengkapi text Kunci dan text yang akan di Enkripsi!');
END;
end;

end.

6. Source Code Dekripsi


procedure TfrmDeskripsi.Button1Click(Sender: TObject);
begin
Edit2.Text:='';
OpenDialog2.Title:='Ambil Text Enkripsi yang akan digunakan';
if OpenDialog2.Execute then
begin
InputDekripsi.Text:='';
InputDekripsi.Lines.LoadFromFile(OpenDialog2.FileName);
Edit2.Text:=OpenDialog2.FileName;
ShowMessage('Chipper Text is successfully loaded.');
end;
end;

procedure TfrmDeskripsi.Button2Click(Sender: TObject);


var
NamaFileDekripsi : string;
begin
SaveDialog1.Title:='SIMPAN HASIL GENERATE';
if ResultDekripsi.Text<>'' then
begin
if SaveDialog1.Execute then
begin
if SaveDialog1.FileName<>'' then
begin
NamaFileDekripsi:=SaveDialog1.FileName+'.doc';
ResultDekripsi.Lines.SaveToFile(NamaFileDekripsi);
ShowMessage('Text Dekripsi is successfully saved.');
end;
end;
end
ELSE
BEGIN
ShowMessage('KUNCI MASIH KOSONG.');
END;
end;

procedure TfrmDeskripsi.Button3Click(Sender: TObject);


begin
OpenDialog1.Title:='Ambil Key yang akan digunakan';
if OpenDialog1.Execute then
begin
KeyGenerate.Text:='';
KeyGenerate.Lines.LoadFromFile(OpenDialog1.FileName);
ShowMessage('Key is successfully loaded.');
end;
end;

procedure TfrmDeskripsi.FormCreate(Sender: TObject);


begin
KeyGenerate.Text:='';
InputDekripsi.Text:='';
ResultDekripsi.Text:='';
end;

procedure TfrmDeskripsi.FormShow(Sender: TObject);


begin
KeyGenerate.Clear;
Edit2.Clear;
InputDekripsi.Clear;
ResultDekripsi.Clear;
end;

procedure TfrmDeskripsi.Label1Click(Sender: TObject);


begin
close;
frmEnkripsi.Show;
end;

procedure TfrmDeskripsi.Label2Click(Sender: TObject);


begin
Close;
end;

procedure TfrmDeskripsi.Label6Click(Sender: TObject);


begin
frmBantuan.ShowModal;
end;

procedure TfrmDeskripsi.Label8Click(Sender: TObject);


begin
Close;
end;

procedure TfrmDeskripsi.Panel1Click(Sender: TObject);


begin
nPlainText:=Length(KeyGenerate.Text);
if (KeyGenerate.Text<>'') and (InputDekripsi.Text<>'') then
Begin
ResultDekripsi.Text:='';
for Y := 1 to nPlainText do
begin
HasilDeskripsi := (Ord(InputDekripsi.Text[Y]) - 32) - Ord(KeyGenerate.Text[Y]);
perkalian:= (HasilDeskripsi) - System.Math.Floor(-30 / 95) * 95;
ResultDekripsi.Text:=ResultDekripsi.Text+Char(perkalian);
end;

//input akses
With DataModule1.QHistory do
Begin
Insert;
Fields.FieldByName('username').Text:=frmLogin.GVUser;
Fields.FieldByName('date').Text:=DateToStr(now);
Fields.FieldByName('jenis').Text:='Dekripsi';
Post;
Active:=false;
Active:=true;
End;
End

else
BEGIN
ShowMessage('KEY DAN TEXT ENKRIPSI TIDAK BOLEH KOSONG.');
END;
end;

end.

You might also like