LAMPIRAN A : LISTING PROGRAM

1. Program Utama program utama; uses Forms, UnitUtama in 'UnitUtama.pas' {FUtama}, UnitKriteria in 'UnitKriteria.pas' {FDataKriteria}, UnitLokasiKriteria in 'UnitLokasiKriteria.pas' {FLokasiDanKriteria}, UnitLokasi in 'UnitLokasi.pas' {FDataLokasi}, Unitlogin in 'Unitlogin.pas' {frmlogin}, UnitTower in 'UnitTower.pas' {FormTower}; {$R *.res} begin Application.Initialize; Application.CreateForm(Tfrmlogin, frmlogin); Application.CreateForm(TFUtama, FUtama); Application.CreateForm(TFDataKriteria, FDataKriteria); Application.CreateForm(TFLokasiDanKriteria, FLokasiDanKriteria); Application.CreateForm(TFDataLokasi, FDataLokasi); Application.CreateForm(TFormTower, FormTower); Application.Run; end.

2. Aplikasi Login unit Unitlogin; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, DB, ADODB, XPMan, Buttons, ExtCtrls, jpeg; type Tfrmlogin Label1: Label2: Label3: Label4:

= class(TForm) TLabel; TLabel; TLabel; TLabel;

Universitas Sumatera Utara

ADOClogin: TADOConnection; ADOQlogin: TADOQuery; XPManifest1: TXPManifest; eduser: TEdit; edpas: TEdit; XPManifest2: TXPManifest; BitBtn1: TBitBtn; BitBtn2: TBitBtn; Image1: TImage; Label5: TLabel; procedure Button2Click(Sender: TObject); procedure Button1Click(Sender: TObject); procedure FormCreate(Sender: TObject); procedure eduserKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); procedure edpasKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); procedure BitBtn1Click(Sender: TObject); procedure BitBtn2Click(Sender: TObject); private { Private declarations } public { Public declarations } end; const petik : char = ''''; var frmlogin: Tfrmlogin; query : string;

implementation uses UnitUtama; {$R *.dfm} procedure Tfrmlogin.Button2Click(Sender: TObject); begin if (Application.MessageBox('Yakin ingin keluar dari aplikasi??' ,'pertanyaan',mb_iconquestion or mb_yesno) = idyes) then Application.Terminate; end; procedure Tfrmlogin.Button1Click(Sender: TObject); begin with adoqlogin do begin close; sql.Clear; sql.Add('select * from login where username = '+ quotedstr (eduser.Text)); open; end; if ADOQlogin.RecordCount = 0 then

Universitas Sumatera Utara

Application.MessageBox('Maaf, username tersebut tidak ada', 'Informasi', MB_OK or MB_ICONINFORMATION) else begin if ADOQlogin.FieldByName('password').AsString edpas.Text then Application.MessageBox('Pastikan username atau password benar', 'Error', MB_OK or MB_ICONERROR) else begin FUtama.Show; Self.Hide; end end; end;

procedure Tfrmlogin.FormCreate(Sender: TObject); var s : Char; alamatdb : WideString; begin // Manipulasi cursors crSQLWait agar tidak tampil Screen.Cursors[crSQLWait] := Screen.Cursors[crDefault]; // atur tampilan form s := '*'; eduser.Text := ''; edpas.PasswordChar := s; edpas.Text := ''; alamatdb := ExtractFilePath(Application.ExeName) + 'ahp.mdb'; with ADOClogin do begin Connected := False; LoginPrompt := False; Mode := cmShareDenyNone; end; ADOClogin.Connected := True; end; procedure Tfrmlogin.eduserKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin if chr(Key) = #13 then begin edpas.SetFocus; end; end; procedure Tfrmlogin.edpasKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin if chr(Key) = #13 then begin with adoqlogin do begin close; sql.Clear; sql.Add('select * from login where username = '+

Universitas Sumatera Utara

quotedstr (eduser.Text)); open; end; if ADOQlogin.RecordCount = 0 then Application.MessageBox('Maaf, username tersebut tidak ada', 'Informasi', MB_OK or MB_ICONINFORMATION) else begin if ADOQlogin.FieldByName('password').AsString edpas.Text then begin Application.MessageBox('Pastikan username atau password benar', 'Error', MB_OK or MB_ICONERROR) end else begin FUtama.Show; Self.Hide; end end; end; end; procedure Tfrmlogin.BitBtn1Click(Sender: TObject); begin if (Application.MessageBox('Yakin ingin keluar dari aplikasi??' ,'pertanyaan',mb_iconquestion or mb_yesno) = idyes) then Application.Terminate; end; procedure Tfrmlogin.BitBtn2Click(Sender: TObject); begin with adoqlogin do begin close; sql.Clear; sql.Add('select * from login where username = '+ quotedstr (eduser.Text)); open; end; if ADOQlogin.RecordCount = 0 then Application.MessageBox('Maaf, username tersebut tidak ada', 'Informasi', MB_OK or MB_ICONINFORMATION) else begin if ADOQlogin.FieldByName('password').AsString edpas.Text then Application.MessageBox('Pastikan username atau password benar', 'Error', MB_OK or MB_ICONERROR) else begin FUtama.Show; Self.Hide; end end; end; end.

Universitas Sumatera Utara

3. Aplikasi Menu Utama unit UnitUtama; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Buttons, ExtCtrls, DB, ADODB; type TFUtama = class(TForm) BitBtn1: TBitBtn; BitBtn2: TBitBtn; BitBtn3: TBitBtn; Label1: TLabel; Image1: TImage; ADOConnection1: TADOConnection; ADOQuery1: TADOQuery; ADOQuery2: TADOQuery; BitBtn4: TBitBtn; procedure FormShow(Sender: TObject); procedure BitBtn1Click(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure BitBtn2Click(Sender: TObject); procedure BitBtn3Click(Sender: TObject); procedure BitBtn4Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var FUtama: TFUtama; pesan : string;

implementation uses unitlokasi,unittower,unitkriteria,unitlokasikriteria; {$R *.dfm} procedure TFUtama.FormShow(Sender: TObject); begin fdatakriteria.Hide; fdatalokasi.Hide; flokasidankriteria.Hide; end; procedure TFUtama.BitBtn1Click(Sender: TObject); begin fdatakriteria.Show;

Universitas Sumatera Utara

futama.Hide; end; procedure TFUtama.FormClose(Sender: TObject; var Action: TCloseAction); begin pesan := 'Anda yakin ingin menutup aplikasi ini ?'; if application.MessageBox(PAnsiChar(pesan),'Konfirmasi',MB_YesNo+MB_IconInf ormation) = IdYes then Application.Terminate else action := caNone; end; procedure TFUtama.BitBtn2Click(Sender: TObject); begin FDataLokasi.Show; end; procedure TFUtama.BitBtn3Click(Sender: TObject); var query1,query2 : string; begin query1 := 'select * from data_lokasi'; adoconnection1.Execute(query1); adoquery1.Active := false; adoquery1.Active := true; query2 := 'select * from prioritas_kriteria'; adoconnection1.Execute(query2); adoquery2.Active := false; adoquery2.Active := true; if adoquery1.RecordCount = 0 then begin pesan := 'Data lokasi masih kosong !, isi data lokasi dengan mengklik tombol "data lokasi".'; application.MessageBox(PAnsiChar(pesan),'Konfirmasi',MB_Ok+MB_IconInform ation); end else if adoquery2.RecordCount = 0 then begin pesan := 'Data kriteria masih kosong !, isi data kriteria dengan mengklik tombol "data kriteria".'; application.MessageBox(PAnsiChar(pesan),'Konfirmasi',MB_Ok+MB_IconInform ation); end else begin flokasidankriteria.Show; futama.Hide; end;

Universitas Sumatera Utara

end; procedure TFUtama.BitBtn4Click(Sender: TObject); begin FormTower.Show; end; end.

4. Aplikasi Data Kriteria unit UnitKriteria; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Grids, DBGrids, StdCtrls, Buttons, Menus, DB, ADODB; type TFDataKriteria = class(TForm) StringGrid1: TStringGrid; BitBtn1: TBitBtn; StringGrid2: TStringGrid; BitBtn2: TBitBtn; ADOConnection1: TADOConnection; ADOQuery1: TADOQuery; DataSource1: TDataSource; BitBtn3: TBitBtn; procedure bersihkan; procedure FormShow(Sender: TObject); procedure BitBtn1Click(Sender: TObject); procedure BitBtn2Click(Sender: TObject); procedure StringGrid1SetEditText(Sender: TObject; ACol, ARow: Integer; const Value: String); procedure StringGrid1KeyPress(Sender: TObject; var Key: Char); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure BitBtn3Click(Sender: TObject); private { Private declarations } public { Public declarations } end; const petik : char = ''''; var FDataKriteria: TFDataKriteria; kriteria : array[1..4] of string = ('Kepadatan Penduduk','Biaya','Jarak','Akses'); query : string;

Universitas Sumatera Utara

implementation uses UnitUtama; {$R *.dfm} procedure TFDataKriteria.bersihkan; var i,j : integer; begin for i := 1 to 4 do for j:= 1 to 4 do stringgrid1.Cells[i,j] := ''; stringgrid1.Col := 1; stringgrid1.Row := 1; end; procedure TFDataKriteria.FormShow(Sender: TObject); var i,j : integer; begin stringgrid1.Visible := true; stringgrid2.Visible := false; bitbtn1.Enabled := true; bitbtn2.Enabled := false; stringgrid1.ColCount := 5; stringgrid1.RowCount := 5; for i:= 1 to 4 do begin stringgrid1.Cells[i,0] := kriteria[i]; stringgrid1.Cells[0,i] := kriteria[i]; end; for i := 1 to 4 do for j:= 1 to 4 do stringgrid1.Cells[i,j] := ''; stringgrid1.Col := 1; stringgrid1.Row := 1; end; procedure TFDataKriteria.BitBtn1Click(Sender: TObject); var jumlah1,jumlah2 : real; i,j : integer; lmax,ci,cr : real; hasilpenjumlahan : array[1..4] of real; normalisasi : array[1..4,1..4] of real; prioritas : array[1..4] of real; lamda : array[1..4] of real; begin // menjumlahkan setiap kolom hasilnya dalam matrik hasilpenjumlahan jumlah1 := 0; for i:=1 to 4 do

Universitas Sumatera Utara

begin for j:=1 to 4 do jumlah1 := jumlah1 + strtofloat(stringgrid1.Cells[i,j]); hasilpenjumlahan[i]:=jumlah1; jumlah1:=0; end; // menentukan elemen kolom hasilnya dalam matrik normalisasi for i:=1 to 4 do for j:=1 to 4 do normalisasi[i,j]:=strtofloat(stringgrid1.Cells[i,j]) / hasilpenjumlahan[i]; //menentukan prioritas kriteria hasilnya dalam matrik prioritas jumlah2:=0; for i:=1 to 4 do begin for j:=1 to 4 do jumlah2:=jumlah2 + normalisasi[j,i]; jumlah2:=jumlah2 / 4; prioritas[i]:=jumlah2; jumlah2:=0; end; //cek apakah matriks input sudah konsisten //matriks input dikalikan dengan matriks prioritas[] for i:=1 to 4 do for j:=1 to 4 do stringgrid1.Cells[i,j] := floattostr(strtofloat(stringgrid1.Cells[i,j]) * prioritas[i]); //jumlahkan setiap baris lalu hasilnya dibagi //dengan setiap elemen pada matrik prioritas //dan simpan hasilnya pada matrik lamda[] jumlah1:=0; for i:=1 to 4 do begin for j:=1 to 4 do jumlah1 := jumlah1 + strtofloat(stringgrid1.Cells[j,i]); jumlah1:=jumlah1 / prioritas[i]; lamda[i]:=jumlah1; jumlah1:=0; end; //jumlahkan setiap elemen matrik lamda dan cari nilai lmax //lmax = hasil penjumlahan setiap elemen matrik lamda / n for i:=1 to 4 do jumlah2 := jumlah2 + lamda[i]; lmax := jumlah2 / 4; //cari ci = (lmax - n) / (n - 1); ci := (lmax - 4) / 3;

Universitas Sumatera Utara

//cari cr = ci / ri dimana ri = 0,90; cr := ci / 0.90; //cek apakah cr < 0,1 if cr < 0.1 then begin //tampilkan hasil akhir stringgrid2.Visible := true; stringgrid2.RowCount := 5; stringgrid2.Cells[1,0]:= 'Prioritas Kriteria'; for i:= 1 to 4 do begin stringgrid2.Cells[0,i] := kriteria[i]; stringgrid2.Cells[1,i]:= floattostr(prioritas[i]); end; //sembunyikan input data stringgrid1.Visible := false; stringgrid2.Visible := true; bitbtn1.Enabled := false; bitbtn2.Enabled := true;

//simpan ke data base query := 'select * from prioritas_kriteria'; adoconnection1.Execute(query); adoquery1.Active := false; adoquery1.Active := true; if adoquery1.RecordCount = 0 then query := 'insert into prioritas_kriteria (KepadatanPenduduk, Biaya, Jarak, Akses) values ('+petik+stringgrid2.Cells[1,1]+petik+','+petik+stringgrid2.Cells[1,2]+p etik+','+petik+stringgrid2.Cells[1,3]+petik+','+petik+stringgrid2.Cells[ 1,4]+petik+')' else query := 'update prioritas_kriteria set KepadatanPenduduk = '+petik+stringgrid2.Cells[1,1]+petik+', Biaya = '+petik+stringgrid2.Cells[1,2]+petik+', Jarak = '+petik+stringgrid2.Cells[1,3]+petik+', Akses = '+petik+stringgrid2.Cells[1,4]+petik; adoconnection1.Execute(query); adoquery1.Active := false; adoquery1.Active := true; end else begin application.MessageBox('Matriks Kriteria Tidak Konsisten !','Informasi',MB_OK+MB_ICONINFORMATION); bersihkan; end; end; procedure TFDataKriteria.BitBtn2Click(Sender: TObject);

Universitas Sumatera Utara

var i,j : integer; begin //sembunyikan hasil stringgrid2.Visible := false; stringgrid1.Visible := true; bitbtn1.Enabled := true; bitbtn2.Enabled := false; for i := 1 to 4 do for j:= 1 to 4 do stringgrid1.Cells[i,j] := ''; stringgrid1.Col := 1; stringgrid1.Row := 1; end; procedure TFDataKriteria.StringGrid1SetEditText(Sender: TObject; ACol, ARow: Integer; const Value: String); begin if acol = arow then stringgrid1.Cells[acol,arow] := '1'; if stringgrid1.Cells[acol,arow] '' then stringgrid1.Cells[arow,acol] := floattostr(1/strtofloat(stringgrid1.Cells[acol,arow])); end; procedure TFDataKriteria.StringGrid1KeyPress(Sender: TObject; var Key: Char); begin if not(key in ['1'..'9','.',#8]) then key := #0; end; procedure TFDataKriteria.FormClose(Sender: TObject; var Action: TCloseAction); begin action := caHide; futama.Show; end; procedure TFDataKriteria.BitBtn3Click(Sender: TObject); begin fdatakriteria.Close; end; end.

Universitas Sumatera Utara

5. Aplikasi Data Lokasi unit UnitLokasi; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Grids, DBGrids, DB, ADODB, StdCtrls, Buttons; type TFDataLokasi = class(TForm) Label1: TLabel; ENama: TEdit; BTambah: TBitBtn; BHapus: TBitBtn; ADOConnection1: TADOConnection; ADOQuery1: TADOQuery; DBGrid1: TDBGrid; DataSource1: TDataSource; BUpdate: TBitBtn; BBatal: TBitBtn; BKeluar: TBitBtn; BKosong: TBitBtn; procedure bersihkan; procedure BTambahClick(Sender: TObject); procedure BEditClick(Sender: TObject); procedure BUpdateClick(Sender: TObject); procedure BBatalClick(Sender: TObject); procedure BHapusClick(Sender: TObject); procedure BKeluarClick(Sender: TObject); procedure BKosongClick(Sender: TObject); procedure DBGrid1CellClick(Column: TColumn); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure FormShow(Sender: TObject); private { Private declarations } public { Public declarations } end; const petik : char = ''''; var FDataLokasi: TFDataLokasi; query : string; pesan :string; implementation uses UnitUtama; {$R *.dfm}

Universitas Sumatera Utara

procedure TFDataLokasi.bersihkan; begin enama.Text := ''; enama.SetFocus; end; procedure TFDataLokasi.BTambahClick(Sender: TObject); procedure cekinput; begin application.MessageBox(PAnsiChar(pesan),'Cek Input',MB_IconStop); end; begin if length(trim(enama.Text)) = 0 then begin pesan := 'Nama Lokasi Tidak Boleh Kosong !'; cekinput; enama.SetFocus; end else begin query := 'insert into data_lokasi (Nama_Lokasi) values ('+petik+enama.Text+petik+')'; adoconnection1.Execute(query); bersihkan; adoquery1.Active := false; adoquery1.Active := true; end; end; procedure TFDataLokasi.BEditClick(Sender: TObject); begin BTambah.Enabled := false; bupdate.Enabled := true; bhapus.Enabled := true; bkosong.Enabled := true; dbgrid1.Enabled := true; enama.SetFocus; end; procedure TFDataLokasi.BUpdateClick(Sender: TObject); procedure cekinput; begin application.MessageBox(PAnsiChar(pesan),'Cek Input',MB_IconStop); end; begin if length(trim(enama.Text)) = 0 then begin pesan := 'Nama Lokasi Tidak Boleh Kosong !'; cekinput; enama.SetFocus; end else begin query := 'update data_lokasi set Nama_Lokasi = '+petik+enama.Text+petik+' where Nama_Lokasi = '+petik+dbgrid1.SelectedField.DataSet.FieldValues['Nama_Lokasi']+petik;

Universitas Sumatera Utara

adoconnection1.Execute(query); bersihkan; adoquery1.Active := false; adoquery1.Active := true; end; end; procedure TFDataLokasi.BBatalClick(Sender: TObject); begin formshow(sender); end; procedure TFDataLokasi.BHapusClick(Sender: TObject); begin if not (dbgrid1.Fields[0].Value = NULL) then begin pesan := 'Anda yakin ingin menghapus '+dbgrid1.Fields[0].Value+'?'; if application.MessageBox(PAnsiChar(pesan),'Konfirmasi',MB_YesNo+MB_IconInf ormation) = IdYes then begin query := 'delete from data_lokasi where nama_lokasi = '+petik+dbgrid1.Fields[0].Value+petik; adoconnection1.Execute(query); adoquery1.Active := false; adoquery1.Active := true; enama.SetFocus; end; end; query := 'select * from data_lokasi'; adoconnection1.Execute(query); adoquery1.Active := false; adoquery1.Active := true; if adoquery1.RecordCount = 0 then formshow(sender); end; procedure TFDataLokasi.BKeluarClick(Sender: TObject); begin fdatalokasi.Close; end; procedure TFDataLokasi.BKosongClick(Sender: TObject); begin if not (dbgrid1.Fields[0].Value = NULL) then begin pesan := 'Anda yakin ingin menghapus semua data lokasi ?'; if application.MessageBox(PAnsiChar(pesan),'Konfirmasi',MB_YesNo+MB_IconInf ormation) = IdYes then begin query := 'delete from data_lokasi'; adoconnection1.Execute(query); adoquery1.Active := false;

Universitas Sumatera Utara

adoquery1.Active := true; bersihkan; bkosong.Enabled := false; dbgrid1.Enabled := false; btambah.Enabled := true; bupdate.Enabled := false; bhapus.Enabled := false; end; end; end; procedure TFDataLokasi.DBGrid1CellClick(Column: TColumn); begin enama.Text := dbgrid1.SelectedField.DataSet.FieldValues['Nama_Lokasi']; end; procedure TFDataLokasi.FormClose(Sender: TObject; var Action: TCloseAction); begin action := caHide; futama.Show; end; procedure TFDataLokasi.FormShow(Sender: TObject); begin bersihkan; query := 'select * from data_lokasi'; adoconnection1.Execute(query); adoquery1.Active := false; adoquery1.Active := true; bupdate.Enabled := true; bhapus.Enabled := true; btambah.Enabled := true; if adoquery1.RecordCount = 0.1 then begin application.MessageBox('Matriks kepadatan penduduk belum konsisten !','Informasi',MB_OK+MB_ICONINFORMATION); bersihkan; pagecontrol1.ActivePageIndex := 0; end else if cr2 >= 0.1 then begin application.MessageBox('Matriks biaya belum konsisten !','Informasi',MB_OK+MB_ICONINFORMATION); bersihkan; pagecontrol1.ActivePageIndex := 0; end else if cr3 >= 0.1 then begin application.MessageBox('Matriks jarak belum konsisten !','Informasi',MB_OK+MB_ICONINFORMATION); bersihkan; pagecontrol1.ActivePageIndex := 0; end else if cr4 >= 0.1 then begin application.MessageBox('Matriks akses belum konsisten !','Informasi',MB_OK+MB_ICONINFORMATION); bersihkan; pagecontrol1.ActivePageIndex := 0; end else begin //tampilkan hasil akhir bitbtn2.Enabled := true; bitbtn1.Enabled := false; stringgrid7.Visible := true; chart1.Visible := true; pagecontrol1.Visible := false; //perhitungan untuk kolom kepadatan penduduk stringgrid7.Cells[0,1] := 'A'; for i := 1 to n do stringgrid7.Cells[1,i] := floattostr(strtofloat(listbox2.Items.ValueFromIndex[0]) * prioritas1[i 1]); //perhitungan untuk kolom biaya stringgrid7.Cells[0,2] := 'B'; for i := 1 to n do stringgrid7.Cells[2,i] := floattostr(strtofloat(listbox2.Items.ValueFromIndex[1]) * prioritas2[i 1]); //perhitungan untuk kolom jarak stringgrid7.Cells[0,3] := 'C';

Universitas Sumatera Utara

for i := 1 to n do stringgrid7.Cells[3,i] := floattostr(strtofloat(listbox2.Items.ValueFromIndex[2]) * prioritas3[i 1]); //perhitungan untuk kolom akses for i := 1 to n do stringgrid7.Cells[4,i] := floattostr(strtofloat(listbox2.Items.ValueFromIndex[3]) * prioritas4[i 1]); //perhitungan untuk hasil akhir hasilakhir := 0; for i := 1 to n do begin for j := 1 to 4 do begin hasilakhir := hasilakhir + strtofloat(stringgrid7.Cells[j,i]); end; stringgrid7.Cells[5,i] := floattostr(hasilakhir); hasilakhir := 0; end; //gambar hasil kedalam chart Series1.Clear; for i := 1 to n do Series1.Add( strtofloat(stringgrid7.Cells[5,i]) , stringgrid7.Cells[0,i] , clTeeColor ); //-------------------------------flokasidankriteria.Height := 530; bitbtn1.Top := 459; bitbtn2.Top := 459; bitbtn3.Top := 459; end; end; procedure TFLokasiDanKriteria.BitBtn2Click(Sender: TObject); begin bitbtn2.Enabled := false; bitbtn1.Enabled := true; stringgrid7.Visible := false; chart1.Visible := false; pagecontrol1.Visible := true; pagecontrol1.ActivePageIndex := 0; bersihkan; flokasidankriteria.Height := 322; bitbtn1.Top := 252; bitbtn2.Top := 252; bitbtn3.Top := 252; end; procedure TFLokasiDanKriteria.BitBtn3Click(Sender: TObject); begin flokasidankriteria.Close; end;

Universitas Sumatera Utara

procedure TFLokasiDanKriteria.FormClose(Sender: TObject; var Action: TCloseAction); begin action := caHide; futama.Show; end; procedure TFLokasiDanKriteria.StringGrid1SetEditText(Sender: TObject; ACol, ARow: Integer; const Value: String); begin if acol = arow then stringgrid1.Cells[acol,arow] := '1'; if stringgrid1.Cells[acol,arow] '' then stringgrid1.Cells[arow,acol] := floattostr(1/strtofloat(stringgrid1.Cells[acol,arow])); end; procedure TFLokasiDanKriteria.StringGrid2SetEditText(Sender: TObject; ACol, ARow: Integer; const Value: String); begin if acol = arow then stringgrid2.Cells[acol,arow] := '1'; if stringgrid2.Cells[acol,arow] '' then stringgrid2.Cells[arow,acol] := floattostr(1/strtofloat(stringgrid2.Cells[acol,arow])); end; procedure TFLokasiDanKriteria.StringGrid3SetEditText(Sender: TObject; ACol, ARow: Integer; const Value: String); begin if acol = arow then stringgrid3.Cells[acol,arow] := '1'; if stringgrid3.Cells[acol,arow] '' then stringgrid3.Cells[arow,acol] := floattostr(1/strtofloat(stringgrid3.Cells[acol,arow])); end; procedure TFLokasiDanKriteria.StringGrid4SetEditText(Sender: TObject; ACol, ARow: Integer; const Value: String); begin if acol = arow then stringgrid4.Cells[acol,arow] := '1'; if stringgrid4.Cells[acol,arow] '' then stringgrid4.Cells[arow,acol] := floattostr(1/strtofloat(stringgrid4.Cells[acol,arow]));

Universitas Sumatera Utara

end; procedure TFLokasiDanKriteria.StringGrid4KeyPress(Sender: TObject; var Key: Char); begin if not(key in ['1'..'9','.',#8]) then key := #0; end; procedure TFLokasiDanKriteria.StringGrid3KeyPress(Sender: TObject; var Key: Char); begin if not(key in ['1'..'9','.',#8]) then key := #0; end; procedure TFLokasiDanKriteria.StringGrid2KeyPress(Sender: TObject; var Key: Char); begin if not(key in ['1'..'9','.',#8]) then key := #0; end; procedure TFLokasiDanKriteria.StringGrid1KeyPress(Sender: TObject; var Key: Char); begin if not(key in ['1'..'9','.',#8]) then key := #0; end; end.

Universitas Sumatera Utara