B. SOURCE CODE
5. Unit Kriteria Unit UnitKriteria;
interface uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, Grids, DBGrids, ImgList, DB, ADODB, RpRender,
RpRenderPDF, RpCon, RpConDS, RpDefine, RpRave;
type
TFEditKriteria = class(TForm) ImageList1: TImageList;
ADOConn:TADOConnection;
pnlkriteria: TPanel;
labeljudul: TLabel;
DBCri1: TDBGrid;
PanelKriteria: TPanel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
namakriteria: TLabel;
cbcriteria: TComboBox;
cbtipe: TComboBox;
edbobot: TEdit;
edgaus: TEdit;
edind: TEdit;
edpre: TEdit;
btnsave1: TButton;
btnedit: TButton;
btnclose: TButton;
ADOQKriteria: TADOQuery;
ADOQTipe: TADOQuery;
ADOQGrid: TADOQuery;
DsGrid: TDataSource;
pnlfragmen: TPanel;
Label1: TLabel;
Bevel1: TBevel;
lblrumus: TLabel;
Pembilang: TLabel;
per1: TLabel;
per2: TLabel;
per3: TLabel;
Penyebut: TLabel;
pangkat: TLabel;
Kurung: TLabel;
Memo1: TMemo;
GroupBox1: TGroupBox;
Label9: TLabel;
Label10: TLabel;
Label11: TLabel;
Label12: TLabel;
Label13: TLabel;
Label14: TLabel;
Label15: TLabel;
edrmd: TEdit;
edjps: TEdit;
edjpo: TEdit;
edsgi: TEdit;
edh: TEdit;
edbi: TEdit;
edrf: TEdit;
GroupBox2: TGroupBox;
Label16: TLabel;
Label17: TLabel;
Label18: TLabel;
Label19: TLabel;
Label20: TLabel;
Label21: TLabel;
ede: TEdit;
edb: TEdit;
eds: TEdit;
edhj: TEdit;
edvhandak: TEdit;
edvoqe: TEdit;
GroupBox3: TGroupBox;
close: TButton;
btnhitung: TButton;
edx: TEdit;
Label22: TLabel;
Label23: TLabel;
edlub: TEdit;
btnclear: TButton;
GroupBox4: TGroupBox;
Label24: TLabel;
Label25: TLabel;
edv: TEdit;
ADOConnection1: TADOConnection;
procedure Grid;
procedure Clear;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure btncloseClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure cbcriteriaChange(Sender: TObject);
procedure btneditClick(Sender: TObject);
procedure cbtipeChange(Sender: TObject);
procedure btnsave1Click(Sender: TObject);
procedure btnhitungClick(Sender: TObject);
procedure btnclearClick(Sender: TObject);
private
id_type:string;
{ Private declarations } public
{ Public declarations } end;
var
FEditKriteria: TFEditKriteria;
implementation
{$R *.dfm}
procedure TFEditKriteria.Clear;
begin
cbcriteria.Enabled:=true;
cbcriteria.text:='--Choose ID Criteria--';
cbtipe.enabled:=false;
cbtipe.Text:='---Choose Type---';
namakriteria.Caption:='';
edind.Enabled:=false;
edpre.Enabled:=false;
edgaus.Enabled:=false;
edbobot.Enabled:=false;
edind.Text:='0';
edpre.Text:='0';
edgaus.Text:='0';
edbobot.Text:='0';
end;
procedure TFEditKriteria.Grid;
begin
ADOQGrid.SQL.Clear;
ADOQGrid.SQL.Add('select id_criteria,Criteria_Name,Type,p,q,g,weight from criteria,tipe where criteria.id_type=tipe.id_type order by id_criteria asc');
ADOQGrid.Active:= true;
DsGrid:=TDataSource.Create(Self);;
DsGrid.DataSet:=ADOQGrid;
DBCri1.DataSource:=DsGrid;
CBtipe.Enabled:=false;
end;
procedure TFEditKriteria.btneditClick(Sender: TObject);
begin
cbtipe.Color:=clwindow;
cbtipe.Enabled:=true;
end;
procedure TFEditKriteria.btnsave1Click(Sender: TObject);
const petik:char='''';
var query,query1:string;
begin
if cbcriteria.text='--Choose ID Criteria--' then begin
showmessage('Choose ID. Criteria!');
cbcriteria.SetFocus;
end
else if edind.Text=''then begin
MessageDlg('Fill Indifeence Treshold!', mtError, [mbOK], 0);
Edind.SetFocus;
end else
if edpre.Text='' then begin
MessageDlg('Fill Preference Treshold!', mtError, [mbOK], 0);
Edpre.SetFocus;
end else
if edgaus.Text='' then begin
MessageDlg('Fill Gaussian!', mtError, [mbOK], 0);
Edgaus.SetFocus;
end
else if edbobot.Text='' then begin
MessageDlg('Fill Bobot!', mtError, [mbOK], 0);
Edbobot.SetFocus;
end else begin
ADOQKriteria.Active:=false;
query:='select * from criteria where ID_criteria='+cbcriteria.text;
ADOQKriteria.SQL.Clear;
ADOQKriteria.SQL.Add(query);
ADOQKriteria.Active:=true;
if cbtipe.Text='---Choose Type---' then begin
showMessage('Choose Type');
cbtipe.SetFocus;
end;
query1:='update criteria set id_type='+petik+id_type+petik+','+' p='+petik+edind.Text+petik+','+'q='+petik+edpre.Text+petik+','+' g='+petik+edgaus.Text+petik+','+' weight='+petik+edbobot.Text+petik+' where ID_Criteria='+cbcriteria.Text;
ADOConn.Execute(query1);
end;
clear;
cbcriteria.setfocus;
btnsave1.Enabled:=false;
grid;
end;
procedure TFEditKriteria.btnhitungClick(Sender: TObject);
var a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,t,u,v:double;
begin
if edrmd.Text='' then begin showmessage('Fill RMD Value!');edrmd.SetFocus; end
else if edjps.Text='' then begin showmessage('Fill JPS Value!');edjps.SetFocus; end
else if edjpo.Text='' then begin showmessage('Fill JPO Value!');edjpo.SetFocus;end
else if edSGI.Text='' then begin showmessage('Fill RMD Value!');edsgi.SetFocus;end
else if edh.Text='' then begin showmessage ('Fill Hardness Value!');edh.SetFocus;end
else if ede.Text='' then begin showmessage ('Fill E Value!');ede.SetFocus;end
else if edb.Text='' then begin showmessage ('Fill Burden Value!');edb.SetFocus;end
else if eds.Text='' then begin showmessage ('Fill Spacing Value!');eds.SetFocus;end
else if edhj.Text='' then begin showmessage ('Fill H Jenjang Value!');edhj.SetFocus;end
else if edvhandak.Text='' then begin showmessage ('Fill Volume Handak!');edvhandak.SetFocus;end
else if edlub.Text='' then begin showmessage ('Fill Jumlah Lubang!');edlub.SetFocus;end
else begin
a:=strtofloat(edrmd.Text);
b:=strtofloat(edjps.Text);
c:=strtofloat(edjpo.Text);
d:=strtofloat(edsgi.Text);
e:=strtofloat(edh.Text);
f:=0.5*(a+b+c+d+e);
edbi.Text:=floattostr(f);
g:=0.15*f;
edrf.Text:=floattostr(g);
h:=strtofloat(ede.Text);
i:=strtofloat(edb.Text);
j:=strtofloat(eds.Text);
k:=strtofloat(edhj.Text);
l:=strtofloat(edvhandak.Text);
t:=strtofloat(edlub.Text);
m:=i*j*k;
u:=l/t;
n:=m/u;
edvoqe.Text:=floattostr(n);
o:=h/115;
p:=g*(exp((0.8)*ln(n)))*(exp(((1/6))*ln(u)))*(exp(((1/6)-(0.8))*ln(o)));
v:=exp(3*(p));
edx.Text:=floattostr(p);
edv.Text:=floattostr(v);
edx.Font.Color:=clred;
end;
end;
procedure TFEditKriteria.btnclearClick(Sender: TObject);
begin
edrmd.Text:='';
edjps.Text:='';
edjpo.Text:='';
edsgi.Text:='';
edh.Text:='';
edbi.Text:='';
edrf.Text:='';
ede.Text:='';
edb.Text:='';
eds.Text:='';
edhj.Text:='';
edvhandak.Text:='';
edlub.Text:='';
edvoqe.Text:='';
edx.Text:='';
edv.Text:='';
end;
procedure TFEditKriteria.btncloseClick(Sender: TObject);
begin
feditkriteria.closemodal;
end;
procedure TFEditKriteria.cbcriteriaChange(Sender: TObject);
var query1,query:string;
begin
if cbcriteria.Text<>'--Choose ID Criteria--' then begin
btnedit.Enabled:=true;
btnsave1.Enabled:=true;
query:='SELECT * from criteria where id_criteria='+cbcriteria.Text;
ADOQKriteria.Active:=false;
ADOQKriteria.SQL.Clear;
ADOQKriteria.SQL.Add(query);
ADOQKriteria.SQL.Clear;
ADOQKriteria.SQL.Add(query);
ADOQKriteria.Active:=true;
namakriteria.Caption:=ADOQKriteria.fieldbyname('criteria_name').Value
;
query1:='select * from criteria where id_criteria='+cbcriteria.Text;
ADOQKriteria.Active:=false;
ADOQKriteria.SQL.Clear;
ADOQKriteria.SQL.Add(query1);
ADOQKriteria.Active:=true;
if ADOQKriteria.RecordCount<>0 then begin
cbtipe.text:=ADOQKriteria.FieldByName('id_type').Value;
edind.Text:=ADOQKriteria.FieldByName('p').Value;
edpre.Text:=ADOQKriteria.FieldByName('q').Value;
edgaus.Text:=ADOQKriteria.FieldByName('g').Value;
edbobot.Text:=ADOQKriteria.FieldByName('weight').Value;
end;
end else begin
MessageDlg('Choose ID. Bahan Peledak!', mtError, [mbOK], 0);
end;
end;
procedure TFEditKriteria.cbtipeChange(Sender: TObject);
begin
if cbtipe.Text<>'--Choose ID Criteria--' then begin
if cbtipe.Text='biasa' then begin
edbobot.Enabled:=true;
edbobot.Color:=clwindow;
edbobot.SetFocus;
edpre.Text:='0';
edind.Text:='0';
edgaus.Text:='0';
id_type:='1';
end;
if cbtipe.Text='quasy' then begin
edbobot.Enabled:=true;
edbobot.Color:=clwindow;
edpre.Enabled:=true;
edpre.Color:=clwindow;
edind.Text:='0';
edgaus.Text:='0';
edpre.SetFocus;
id_type:='2';
end;
if cbtipe.Text='preferensi linier' then begin
edbobot.Enabled:=true;
edbobot.Color:=clwindow;
edind.Enabled:=true;
edind.Color:=clwindow;
edpre.Text:='0';
edgaus.Text:='0';
edind.SetFocus;
id_type:='3';
end;
if cbtipe.Text='level' then begin
edbobot.Enabled:=true;
edbobot.Color:=clwindow;
edpre.Enabled:=true;
edpre.Color:=clwindow;
edind.Enabled:=true;
edind.Color:=clwindow;
edgaus.Text:='0';
edind.SetFocus;
id_type:='4';
end;
if cbtipe.Text='preferensi linier dan area yang tidak berbeda' then begin
edbobot.Enabled:=true;
edbobot.Color:=clwindow;
edpre.Enabled:=true;
edpre.Color:=clwindow;
edind.Enabled:=true;
edind.Color:=clwindow;
edgaus.Text:='0';
edind.SetFocus;
id_type:='5';
end;
if cbtipe.Text='gaussian' then begin
edbobot.Enabled:=true;
edbobot.Color:=clwindow;
edpre.Enabled:=true;
edpre.Color:=clwindow;
edind.Enabled:=true;
edind.Color:=clwindow;
edgaus.Enabled:=true;
edgaus.Color:=clwindow;
edind.SetFocus;
id_type:='6';
end;
end;
end;
procedure TFEditKriteria.FormClose(Sender: TObject; var Action:
TCloseAction);
begin
action:=cafree;
end;
procedure TFEditKriteria.FormCreate(Sender: TObject);
begin
ADOQKriteria.Active:=false;
ADOQKriteria.SQL.Clear;
ADOQKriteria.SQL.Add('SELECT * from criteria');
ADOQKriteria.Active:=true;
while not ADOQKriteria.Eof do begin
cbcriteria.AddItem(ADOQKriteria.fieldbyname('id_criteria').Value,Self );
ADOQKriteria.Next;
end;
ADOQTipe.Active:=false;
ADOQTipe.SQL.Clear;
ADOQTipe.SQL.Add('SELECT * from tipe');
ADOQTipe.Active:=true;
while not ADOQTipe.Eof do begin
cbtipe.AddItem(ADOQTipe.fieldbyname('type').Value,Self);
ADOQTipe.Next;
end;
memo1.Lines.LoadFromFile('ket.txt');
end;
end.
6. UnitUserConfig
unit UnitUserConfig;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, DB, ADODB, ExtCtrls, ImgList, Grids, DBGrids;
type
TFUserconf = class(TForm) ADOQGrid: TADOQuery;
btnadd: TButton;
btnremove: TButton;
btnmodify: TButton;
btnclose: TButton;
Panel1: TPanel;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
ednpm: TEdit;
edpass: TEdit;
cbprivilage: TComboBox;
ADOConnection1: TADOConnection;
ADOQuery1: TADOQuery;
DSGrid: TDataSource;
btnsearch: TButton;
Label4: TLabel;
Btnview: TButton;
ImageList1: TImageList;
ImageList2: TImageList;
DBGrid1: TDBGrid;
Image: TImage;
Image1: TImage;
btntutup: TButton;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure btncloseClick(Sender: TObject);
procedure btnremoveClick(Sender: TObject);
procedure btnaddClick(Sender: TObject);
procedure btnmodifyClick(Sender: TObject);
procedure BtnviewClick(Sender: TObject);
procedure btnsearchClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
procedure FormActivate(Sender: TObject);
procedure ednpmChange(Sender: TObject);
procedure edpassChange(Sender: TObject);
procedure btntutupClick(Sender: TObject);
private
{ Private declarations } public
{ Public declarations } end;
var
FUserconf: TFUserconf;
implementation
{$R *.dfm}
procedure TFUserconf.btnaddClick(Sender: TObject);
const petik:char='''';
var query1:string;
begin
if ednpm.Text='' then begin
showmessage('Fill NPM');
ednpm.SetFocus;
end
else if edpass.Text='' then begin
showmessage('Fill Password');
edpass.SetFocus;
end else
if (cbprivilage.Text='----choose user privilege----') then begin
ShowMessage('Choose User Privilege!');
cbprivilage.setfocus;
end else begin
if cbprivilage.Text='administrator' then begin
query1:='insert into logadmin (tipe,npm,password) '+'values ('+petik+'adm'+petik+','+petik+ednpm.text+petik+','+petik+edpass.text +petik+')';
ADOConnection1.Execute(query1);
end else
if cbprivilage.Text='user biasa' then begin
query1:='insert into logadmin (tipe,npm,password) '+'values ('+petik+'usr'+petik+','+petik+ednpm.text+petik+','+petik+edpass.text +petik+')';
ADOConnection1.Execute(query1);
end else begin
showmessage('Pilih Tipe User!');
end;
showmessage('Data telah disimpan');
ednpm.Text:='';
edpass.Text:='';
btnmodify.Enabled:=true;
btnremove.Enabled:=true;
btnview.Enabled:=true;
cbprivilage.Text:='----choose user privilege----';
adoqgrid.Active:=false;
adoqgrid.SQL.Clear;
adoqgrid.SQL.Add('select npm,tipe from logadmin');
adoqgrid.Active:=true;
dsgrid:=tdatasource.Create(self);
DSGrid.DataSet:=adoqgrid;
DBGrid1.DataSource:=dsgrid;
end;
end;
procedure TFUserconf.btncloseClick(Sender: TObject);
begin
fuserconf.Close;
end;
procedure TFUserconf.btnremoveClick(Sender: TObject);
const petik:char='''';
var query:string;
begin
if ednpm.Text='' then begin
showmessage('Fill NPM');
ednpm.SetFocus;
end
else if edpass.Text='' then begin
showmessage('Fill Password');
edpass.SetFocus;
end
else if (cbprivilage.Text='----choose user privilege----') then begin
ShowMessage('Choose User Privilege!');
cbprivilage.setfocus;
end else begin
adoquery1.Active:=false;
adoquery1.SQL.Clear;
adoquery1.SQL.Add('select npm,password from logadmin');
adoquery1.Active:=true;
if adoquery1.RecordCount<>0 then begin
if messagedlg('Anda yakin ingin menghapus user ini?',mtconfirmation,[mbyes,mbcancel],0)=mryes then begin
query:='delete from logadmin where npm='+ednpm.Text;
adoconnection1.Execute(query);
showmessage('Data telah dihapus');
ednpm.Text:='';
edpass.text:='';
cbprivilage.Text:='----choose user privilage----';
end else begin
showmessage('User yang Anda Maksud Tidak Ada!');
ednpm.SetFocus;
end;
end;
adoqgrid.Active:=false;
adoqgrid.SQL.Clear;
adoqgrid.SQL.Add('select npm,tipe from logadmin');
adoqgrid.Active:=true;
dsgrid:=tdatasource.Create(self);
DSGrid.DataSet:=adoqgrid;
DBGrid1.DataSource:=dsgrid;
end;
end;
procedure TFUserconf.btnsearchClick(Sender: TObject);
const petik:char='''';
var tipe,query:string;
begin
if ednpm.Text='' then begin
showmessage('Fill NPM!');
ednpm.SetFocus;
end else begin
adoquery1.Active:=false;
query:='select * from logadmin where npm='+ednpm.Text;
adoquery1.SQL.Clear;
adoquery1.SQL.Add(query);
adoquery1.Active:=true;
if (adoquery1.RecordCount>0) then begin
btnmodify.Enabled:=true;
btnremove.Enabled:=true;
btnview.Enabled:=true;
edpass.Text:=adoquery1.FieldByName('password').Value;
tipe:=adoquery1.FieldByName('tipe').Value;
if tipe='adm' then
cbprivilage.Text:='administrator' else
cbprivilage.Text:='user biasa';
end else begin
showmessage('User Data is empty, You can add user!');
edpass.SetFocus;
btnadd.Enabled:=true;
adoqgrid.Active:=false;
adoqgrid.SQL.Clear;
adoqgrid.SQL.Add('select npm,tipe from logadmin');
adoqgrid.Active:=true;
dsgrid:=tdatasource.Create(self);
DSGrid.DataSet:=adoqgrid;
DBGrid1.DataSource:=dsgrid;
end; end;
end;
procedure TFUserconf.btntutupClick(Sender: TObject);
begin
FUserconf.height:=235;
btnview.Visible:=true;
btntutup.Visible:=false;
dbgrid1.Visible:=false;
end;
procedure TFUserconf.btnmodifyClick(Sender: TObject);
const petik:char='''';
var tipe,query:string;
begin
if ednpm.Text='' then begin
showmessage('Fill NPM Value!');
ednpm.SetFocus;
end else
if cbprivilage.Text<>'----choose user privilege----' then begin
if cbprivilage.Text='administrator' then tipe:='adm' else if cbprivilage.Text='user biasa' then tipe:='usr';
query:='update logadmin set tipe='+petik+tipe+petik+','+' Password='+petik+edpass.text+petik+'where npm='+ednpm.Text;
ADOConnection1.Execute(query);
showmessage('Data telah disimpan');
ednpm.Text:='';
edpass.Text:='';
cbprivilage.Text:='----choose user privilege----';
btnview.Enabled:=true;
btnremove.Enabled:=true;
end else begin
showmessage('Choose User Privilege!');
cbprivilage.SetFocus;
end;
adoquery1.SQL.Clear;
adoquery1.SQL.Add('select npm,tipe from logadmin order by npm asc');
adoquery1.Active:=True;
DSGrid:=DSGrid.Create(Self);
DSGrid.DataSet:=adoquery1;
DBGrid1.DataSource:=DSGrid;
end;
procedure TFUserconf.BtnviewClick(Sender: TObject);
begin
height:=486;
DBGrid1.Visible:=true;
btntutup.Visible:=true;
btntutup.Enabled:=true;
btnview.Visible:=false;
end;
procedure TFUserconf.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
with sender as TDBGrid do begin
if (column.Fieldname='Tipe') or (column.Fieldname='Password') then canvas.font.color:=clred
else
dbgrid1.canvas.font.color:=clblue;
DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);
end;
end;
procedure TFUserconf.ednpmChange(Sender: TObject);
begin
btnsearch.Enabled:=true;
edpass.Enabled:=true;
end;
procedure TFUserconf.edpassChange(Sender: TObject);
begin
cbprivilage.Enabled:=true;
end;
procedure TFUserconf.FormActivate(Sender: TObject);
begin
adoquery1.Active:=false;
adoquery1.Active:=true;
ADOQGrid.Active:=false;
ADOQGrid.Active:=true;
end;
procedure TFUserconf.FormClose(Sender: TObject; var Action:
TCloseAction);
begin
action:=cafree;
end;
procedure TFUserconf.FormCreate(Sender: TObject);
begin
image.Picture.LoadFromFile('userconfig.jpg');
image1.Picture.LoadFromFile('userconfig.jpg');
width:=413;
height:=229;
ednpm.text:='';
edpass.text:='';
cbprivilage.ItemIndex:=-1;
end;
end.