B. SOURCE CODE
1. Unit Add Alternatif
Label1: TLabel;
lbledep: TLabel;
lbledrol: TLabel;
edavail: TEdit;
edep: TEdit;
edrol: TEdit;
procedure btncloseClick(Sender: TObject);
procedure FormClose(Sender: TObject; var Action:
TCloseAction);
procedure btnaddClick(Sender: TObject);
procedure btndeleteClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure cbhandakChange(Sender: TObject);
procedure saveClick(Sender: TObject);
procedure closeClick(Sender: TObject);
procedure btnprometheeClick(Sender: TObject);
procedure ednoidChange(Sender: TObject);
procedure edanChange(Sender: TObject);
private
{ Private declarations } public
{ Public declarations } end;
var
FAdd: TFAdd;
implementation
{$R *.dfm}
uses unitrecomendation;
procedure TFAdd.btnaddClick(Sender: TObject);
const petik:char='''';
var query,query1,query2:string;
begin
if ednoid.Text=''then begin
MessageDlg('Fill No. ID!', mtError, [mbOK], 0);
Ednoid.SetFocus;
end else
if edan.Text='' then begin
MessageDlg('Fill Alternative Name!', mtError, [mbOK], 0);
Edan.SetFocus;
end else
if cbdensity.Text='---Choose Density---' then begin
messagedlg('Fill Density Value!',mterror,[mbok],0);
cbdensity.SetFocus;
end else begin
adoquery1.Active:=false;
query:='select ID_Alternatif,Nama_Bahan_Peledak,Density from nilai_handak where ID_Alternatif='+ednoid.Text;
adoquery1.SQL.Clear;
adoquery1.SQL.Add(query);
adoquery1.Active:=true;
if (adoquery1.RecordCount<>0) then begin
showmessage('DATA SUDAH ADA');
ednoid.Text:='';
edan.Text:='';
cbdensity.Text:='---Choose Density---';
ednoid.setfocus;
end else begin
query1:='insert into nilai_handak'+' values
('+petik+ednoid.text+petik+','+petik+edan.text+petik+','+petik+cb density.Text+petik+',0,0,0,0,0,0,0,0,0)';
query2:='insert into alternative'+' values
('+petik+ednoid.text+petik+','+petik+edan.text+petik+','+petik+cb density.Text+petik+',0)';
ADOConnection1.Execute(query1);
ADOConnection1.Execute(query2);
ednoid.Text:='';
edan.Text:='';
cbdensity.text:='---Choose Density---';
ednoid.SetFocus;
end;
end;
adoquery1.SQL.Clear;
adoquery1.SQL.Add('select ID_Alternatif,Nama_Bahan_Peledak ,density from nilai_handak order by ID_Alternatif asc');
adoquery1.Active:=True;
datasource1:=DataSource1.Create(Self);
datasource1.DataSet:=adoquery1;
DBGridAlter1.DataSource:=datasource1;
end;
procedure TFAdd.btncloseClick(Sender: TObject);
begin
closemodal;
end;
procedure TFAdd.btndeleteClick(Sender: TObject);
const petik:char='''';
var query1,query,query2,query3,query4:string;
begin
if ednoid.Text=''then begin
MessageDlg('Fill No. ID!', mtError, [mbOK], 0);
Ednoid.SetFocus;
end else
if edan.Text='' then begin
MessageDlg('Fill Alternative Name!', mtError, [mbOK], 0);
Edan.SetFocus;
end else
if cbdensity.Text='---Choose Density---' then begin
MessageDlg('Choose Density Value!', mtError, [mbOK], 0);
cbdensity.SetFocus;
end
else begin
adoquery1.Active:=false;
query:='select ID_alternatif,Nama_bahan_peledak,density from nilai_handak where ID_Alternatif='+petik+ednoid.Text+petik+'and Nama_Bahan_Peledak='+petik+edan.Text+petik+';';
adoquery1.SQL.Clear;
adoquery1.SQL.Add(query);
adoquery1.Active:=true;
if (adoquery1.RecordCount<>0) then if
(ednoid.Text=adoquery1.FieldByName('ID_Alternatif').Value)then begin
if messagedlg('Anda yakin ingin menghapus alternatif ini?',mtconfirmation,[mbyes,mbno],0)=mryes then
begin
query1:='delete from nilai_handak where ID_Alternatif='+ednoid.Text;
query2:='delete from alternative where ID_Alternatif='+ednoid.Text;
query3:='delete from nilai_lapangan where ID_Alternatif='+ednoid.Text;
query4:='delete form matriks_promethee where id_alternatif='+ednoid.Text;
adoconnection1.Execute(query1);
ADOConnection1.Execute(query2);
ADOConnection1.Execute(query3);
ednoid.Text:='';
edan.text:='';
cbdensity.Text:='---Choose Density---';
ednoid.setfocus;
edan.enabled:=false;
cbdensity.enabled:=false;
end;
end else begin
showmessage('Data Tidak Ditemukan');
ednoid.Text:='';
edan.text:='';
cbdensity.Text:='---Choose Density---';
ednoid.setfocus;
edan.enabled:=false;
cbdensity.enabled:=false;
end;
end;
adoquery1.SQL.Clear;
adoquery1.SQL.Add('select ID_Alternatif,Nama_Bahan_Peledak ,density from nilai_handak order by ID_Alternatif asc');
adoquery1.Active:=True;
datasource1:=DataSource1.Create(Self);
datasource1.DataSet:=adoquery1;
DBGridAlter1.DataSource:=datasource1;
end;
procedure TFAdd.saveClick(Sender: TObject);
const petik='''';
var query,kueri_action,query1:string;
insert:boolean;
begin
if(CBhandak.Text='---Choose ID---') then begin
ShowMessage('ID Bahan Peledak Belum Dipilih!');
end else begin
if Eds.Text='' then begin
MessageDlg('Fill The Strength Value!', mtError, [mbOK], 0);
Eds.SetFocus;
end
else if Edsen.Text='' then begin
MessageDlg('Fill The Sensitivity Value!', mtError, [mbOK], 0);
edSen.SetFocus;
end
else if Edvod.Text='' then begin
MessageDlg('Fill The Velocity of Detonation Value!', mtError, [mbOK], 0);
Edvod.SetFocus;
end
else if Edwr.Text='' then begin
MessageDlg('Fill The Water Resistance Value!', mtError, [mbOK], 0);
Edwr.SetFocus;
end
else if Edfc.Text='' then begin
MessageDlg('Fill The Fumes Characteristic Value!', mtError, [mbOK], 0);
Edfc.SetFocus;
end
else if Edcost.Text='' then begin
MessageDlg('Fill The Cost!', mtError, [mbOK], 0);
Edcost.SetFocus;
end
else if Edavail.Text='' then begin
MessageDlg('Fill Availabity!', mtError, [mbOK], 0);
Edavail.SetFocus;
end
else if Edep.Text='' then begin
MessageDlg('Fill Material Characteristic!', mtError, [mbOK], 0);
Edep.SetFocus;
end
else if Edrol.Text='' then begin
MessageDlg('Fill Rule'+petik+'s of Law!', mtError, [mbOK], 0);
Edrol.SetFocus;
end else begin
btnpromethee.Enabled:=true;
ADOQNilaiHandak.Active:=false;
ADOQNilaiHandak.SQL.Clear;
query:='select * from nilai_handak where id_alternatif='+petik+cbhandak.Text+petik;
ADOQNilaiHandak.SQL.Add(query);
ADOQNilaiHandak.Active:=true;
insert:=true;
while not ADOQNilaiHandak.Eof do begin
if(ADOQNilaiHandak.FieldByName('id_alternatif').Value=CBhandak.Te xt)then
begin
insert:=false;
break;
end;
ADOQNilaiHandak.next;
end;
if insert then begin
kueri_action:='insert into nilai_handak
values('+petik+CBhandak.Text+petik+','+nama.Caption+','+eds.Text+
','+Edsen.Text+','+Edvod.Text+','+Edwr.Text+','+edfc.Text+','+edc ost.Text+','+edavail.Text+','+edep.Text+','+edrol.Text+')';
end else begin
kueri_action:='update nilai_handak set
strength='+eds.Text+',sensitivity = '+edsen.Text+',
Velocity_of_Detonation = '+edvod.Text+',Water_Resistance = '+Edwr.Text+',Fumes_Characteristic = '+edfc.Text+',Cost
='+edcost.Text+',Availability='+edavail.Text+',Material_Character istic='+edep.Text+',Law='+edrol.Text+' WHERE ID_Alternatif = '+cbhandak.Text;
end;
ADOQNilaiHandak.SQL.Clear;
ADOQNilaiHandak.SQL.Add(kueri_action);
ADOQNilaiHandak.ExecSQL;
end;
end;
ADOQNilaiHandak.SQL.Clear;
ADOQNilaiHandak.SQL.Add('Select * From nilai_handak order by ID_Alternatif asc');
ADOQNilaiHandak.Active:=True;
DSNilai_Handak:=DSNilai_Handak.Create(Self);
DSNilai_Handak.DataSet:=ADOQNilaiHandak;
DBHandak.DataSource:=DSNilai_Handak;
end;
procedure TFAdd.btnprometheeClick(Sender: TObject);
begin
Application.CreateForm(TFRecommendation,FRecommendation);
end;
procedure TFAdd.cbhandakChange(Sender: TObject);
const petik:char='''';
var query1,query:string;
begin
if CBhandak.Text<>'---Choose ID---' then
begin
eds.Color:=clwindow;
edsen.Color:=clwindow;
edvod.Color:=clwindow;
edwr.Color:=clwindow;
edfc.Color:=clwindow;
edcost.Color:=clwindow;
edavail.Color:=clwindow;
edep.Color:=clwindow;
edrol.Color:=clwindow;
query:='SELECT * from nilai_handak where id_alternatif='+CBhandak.Text;
gbnilai.Enabled:=true;
ADOQNilaiHandak.Active:=false;
ADOQNilaiHandak.SQL.Clear;
ADOQNilaiHandak.SQL.Add(query);
ADOQNilaiHandak.Active:=true;
nama.Visible:=true;
nama.Caption:=ADOQNilaiHandak.fieldbyname('Nama_Bahan_peledak').V alue;
query1:='select * from nilai_handak where id_alternatif='+CBhandak.Text;
ADOQNilaiHandak.Active:=false;
ADOQNilaiHandak.SQL.Clear;
ADOQNilaiHandak.SQL.Add(query1);
ADOQNilaiHandak.Active:=true;
if ADOQNilaiHandak.RecordCount<>0 then begin
eds.Text:=floattostr(ADOQNilaiHandak.FieldByName('strength').Valu e);
edsen.Text:=floattostr(ADOQNilaiHandak.FieldByName('sensitivity') .Value);
edvod.Text:=floattostr(ADOQNilaiHandak.FieldByName('Velocity_of_D etonation').Value);
edwr.Text:=floattostr(ADOQNilaiHandak.FieldByName('Water_Resistan ce').Value);
edfc.Text:=floattostr(ADOQNilaiHandak.FieldByName('Fumes_Characte ristic').Value);
edcost.Text:=floattostr(ADOQNilaiHandak.FieldByName('Cost').Value );
edavail.Text:=floattostr(ADOQNilaiHandak.FieldByName('Availabilit y').Value);
edep.Text:=floattostr(ADOQNilaiHandak.FieldByName('Material_Chara cteristic').Value);
edrol.Text:=floattostr(ADOQNilaiHandak.FieldByName('Law').Value);
end;
end else begin
MessageDlg('Choose ID. Bahan Peledak!', mtError, [mbOK], 0);
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.