• Tidak ada hasil yang ditemukan

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.

Dokumen terkait