B. SOURCE CODE
2. Unit Kriteria
end;
end;
procedure TFAdd.closeClick(Sender: TObject);
begin
closemodal;
end;
procedure TFAdd.edanChange(Sender: TObject);
begin
cbdensity.Enabled:=true;
cbdensity.Color:=clWindow;
end;
procedure TFAdd.ednoidChange(Sender: TObject);
begin
edan.Enabled:=true;
edan.Color:=clwindow;
end;
procedure TFAdd.FormClose(Sender: TObject; var Action:
TCloseAction);
begin
action:=cafree;
end;
procedure TFAdd.FormCreate(Sender: TObject);
begin
fadd.Width:=417;
fadd.Height:=493;
ADOQNilaiHandak.Active:=false;
ADOQNilaiHandak.SQL.Clear;
ADOQNilaiHandak.SQL.Add('SELECT * from nilai_handak order by id_alternatif');
ADOQNilaiHandak.Active:=true;
while not ADOQNilaiHandak.Eof do begin
CBhandak.AddItem(ADOQNilaiHandak.fieldbyname('id_alternatif').Val ue,Self);
ADOQNilaiHandak.Next;
end;
ednoid.Text:='';
edan.Text:='';
cbdensity.Text:='---Choose Density---';
end;
end.
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;
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;
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').V alue;
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.