Lampiran II
KUESIONER KEPUASAN PASIEN RAWAT INAP
RUMAH SAKIT UMUM HERNA MEDAN
Pasien Kami yang terhormat,
1. Kami mohon kiranya Bapak/Ibu/Saudara dapat meluangkan waktu untuk menjawab pertanyaan-pertanyaan yang kami ajukan. Semua keterangan yang disampaikan, kami gunakan untuk kepentingan perbaikan mutu pelayanan di rumah sakit.
2. Kami menjamin kerahasiaan Bapak/Ibu/Saudara dalam pengisian kuesioner ini.
3. Untuk mengisinya, cukup memberikan tanda centang (√) pada salah satu pernyataan yang ada. 4. Atas kesediaan Bapak/Ibu/Saudara, kami ucapkan terima kasih.
A. Informasi Umum/Informasi Pasien
Ruang Perawatan : ………
Jenis Kelamin : ………
Umur : ………
Tanggal Perawatan : ….-….-2012 s/d ….-….-2012
Sumber Biaya : Biaya Pribadi
Biaya Tempat Kerja
Asuransi
Biaya Pemerintah
Lainnya, ……….
Apakah anda baru pertama kali di rawat pada rumah sakit ini
Ya tidak
Petunjuk Untuk mengisi pertanyaan
1
. Kategori 1: sangat tidak baik/ sangat tidak memuaskan
2. Kategori 2: tidak baik/ tidak memuaskan
3. Kategori 3: cukup baik/ cukup memuaskan
4. Kategori 4: baik/ memuaskan
5. Kategori 5: sangat baik/ sangat memuaskan
B.
Instrumen
B.1
Tangibles
(bukti langsung), meliputi penampilan fisik, perlengkapan, pelayan medis, dan
sarana komunikasi
17.
Penerangan lampu pada ruang perawatan/halaman
1
2
3
4
5
ruang rawat inap diwaktu malam
18.
Kelengkapan perabotan di ruang rawat inap
1
2
3
4
5
19.
Ruang rawat inap bebas dari serangga
1
2
3
4
5
20.
Variasi menu makanan
1
2
3
4
5
21.
Kelengkapan perawatan medis sehingga tidak
perlu dikirim ke rumah sakit lain untuk melakukan
pemeriksaan tertentu
1
2
3
4
5
22.
Tersedianya tempat parkir yang cukup
1
2
3
4
5
23.
Tersedianya tempat untuk keluarga penunggu pasien
1
2
3
4
5
24.
Ruang rawat inap mudah dicari
1
2
3
4
5
25.
Dokter mudah untuk dihubungi
1
2
3
4
5
26.
Perawat mudah untuk dihubungi
1
2
3
4
5
27.
Biaya sewa ruang rawat inap terjangkau
1
2
3
4
5
28.
Biaya obat yang terjangkau
1
2
3
4
5
B.2
Reliability
(keandalan), yaitu kemampuan memberikan pelayanan yang dijanjikan
dengan segera, akurat, dan memuaskan
4.
Waktu periksa dokter di bangsal sesuai dengan jadwal
1
2
3
4
5
5.
Kecepatan perawat menanggapi panggilan bel pasien
1
2
3
4
5
6.
Kesesuaian pemberian obat dengan jadwalnya
1
2
3
4
5
B.3 Responsiveness (daya tanggap), yaitu kesediaan para dokter,perawat dan pelayan medis
untuk membantu para pasien dan memberikan perhatian yang tepat
1.
Sikap perilaku dokter saat melakukan pemeriksaan rutin 1
2
3
4
5
2.
Pelayanan petugas ruang rawat inap yang sopan
dan ramah
1
2
3
4
5
3.
Sikap dan perilaku petugas pada saat memberikan
pelayanan di fasilitas penunjang medis
1
2
3
4
5
B.4
Assurance (jaminan), merupakan kemampuan dari dokter, perawat dan pelayan
kesehatan lainnya untuk memberikan keyakinan kepada pasien.
1.
Kesungguhan dokter dalam menangani penyakit pasien
1
2
3
4
5
2.
Ketelitian dokter dalam memeriksa pasien
1
2
3
4
5
3.
Dokter menjelaskan pengobatan yang akan dilakukan
1
2
3
4
5
4.
Kemanjuran/ketepatan terapi yang diberikan dokter
1
2
3
4
5
5.
Penjelasan dokter tentang makanan makanan
1
2
3
4
5
6.
Tanggapan dan jawaban dokter atas keluhan pasien
1
2
3
4
5
7.
Kebijaksanaan dokter/ Pengalaman dokter
1
2
3
4
5
8.
Keterampilan perawat dalam memberikan pelayanan
medis ke pasien
1
2
3
4
5
9.
Keterampilan petugas medis lain dalam memberikan
pelayanan kesehatan
1
2
3
4
5
B.5
Emphaty (empati), mencakup kepedulian serta perhatian individual kepada para Pasien
3.
Sikap perawat dan dokter menanggapi pertanyaan
1
2
3
4
5
keluarga pasien dan pengunjung/tamu pasien
4.
Kesediaan perawat untuk menolong pasien duduk,
berdiri dan berjalan
1
2
3
4
5
Lampiran : III
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls,comobj, Grids, ComCtrls, ExtCtrls, Buttons;
type
TForm1 = class(TForm) OpenDialog1: TOpenDialog; PageControl1: TPageControl; TabSheet1: TTabSheet;
SaveDialog1: TSaveDialog; Label6: TLabel;
procedure Button1Click(Sender: TObject); procedure Button4Click(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure Button2Click(Sender: TObject); procedure TabSheet1Show(Sender: TObject); procedure Button3Click(Sender: TObject); procedure FormCreate(Sender: TObject); private
{ Private declarations } public
{ Public declarations }
procedure baca_tab(SheetIndex:integer);
end;
var
Form1: TForm1; Xlapp1, Sheet:Variant ;
i, MaxRow, MaxCol,X, Y:integer ; dtTmp,str:string;
row : TListItem;
Str:=trim(Edit1.Text);
XLApp1 := createoleobject('excel.application'); XLApp1.Workbooks.open(Str) ;
Sheet := XLApp1.WorkSheets[SheetIndex] ; MaxRow := Sheet.Usedrange.EntireRow.count ; MaxCol := sheet.Usedrange.EntireColumn.count; //ListView1.Columns.Clear;
for i:=1 to MaxCol do begin
//ListView1.Columns.Add.Caption:=sheet.cells.ite m[1,i].value;
form2.sg.Cells[i-1,0] := sheet.cells.item[1,i].value; end;
for x:=2 to MaxRow do begin
//row:=ListView1.Items.add; //row.Caption:=sheet.cells.item[x,1]; for y:=2 to MaxCol do
begin
//row.SubItems.Add(''); //dtTmp:=sheet.cells.item[x,y];
//ListView1.Items[x-2].SubItems.Strings[y-2]:=dtTmp;
procedure TForm1.Button1Click(Sender: TObject); begin
if OpenDialog1.Execute then begin
Edit1.Text:=OpenDialog1.FileName; baca_tab(1);
end; end;
procedure TForm1.Button4Click(Sender: TObject); begin
end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action:=CaFree; end;
procedure TForm1.Button2Click(Sender: TObject); begin
PageControl1.ActivePageIndex:=0; end;
procedure TForm1.TabSheet1Show(Sender: TObject);
begin Edit1.Clear; end;
procedure TForm1.Button3Click(Sender: TObject); begin
form2.Show; end;
procedure TForm1.FormCreate(Sender: TObject); begin
PageControl1.ActivePageIndex:=0; end;
unit Unit2;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Grids, ExtCtrls, StdCtrls;
type
procedure FormCreate(Sender: TObject); procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); private
uses Unit1, Unit3, Unit5;
{$R *.dfm}
procedure TForm2.FormCreate(Sender: TObject); var i1 : integer;
begin
sg.ColWidths[0] := 70; //sg2.ColWidths [0] := 70; sg.ColCount :=39; for i1 := 1 to 38 do sg.ColWidths[i1]:=30;
end;
procedure TForm2.Button1Click(Sender: TObject); var i,j,n: integer;
r : array[1..20] of string;
//edit1.Text := inttostr(maxcol); //edit2.Text := inttostr(maxrow); {sg2.Cells[0,0] := 'N. RUANGAN'; sg2.Cells[1,0] := 'X1';
sg2.Cells[2,0] := 'X2'; sg2.Cells[3,0] := 'X3'; sg2.Cells[4,0] := 'X4'; sg2.Cells[5,0] := 'X5'; }
{sg2.Cells[6,0] := 'MAX-X1'; sg2.Cells[7,0] := 'MAX-X2'; sg2.Cells[8,0] := 'MAX-X3'; sg2.Cells[9,0] := 'MAX-X4'; sg2.Cells[10,0] := 'MAX-X5';
sg2.Cells[11,0] := 'MIN-X1'; sg2.Cells[12,0] := 'MIN-X2'; sg2.Cells[13,0] := 'MIN-X3'; sg2.Cells[14,0] := 'MAX-X4'; sg2.Cells[15,0] := 'MAX-X5';}
{for i := 1 to 15 do sg2.ColWidths[i] := 30; }
kx4:=100;
//memo1.Lines.Add(ruang); R[J] := RUANG;
FORM3.SG1.Cells[0,J]:= RUANG;
FORM3.sg1.Cells[1,j]:= copy(floattostr((x1/(n-1))),1,5);
FORM3.sg1.Cells[2,j]:= copy(floattostr((x2/(n-1))),1,5);
FORM3.sg1.Cells[3,j]:= copy(floattostr((x3/(n-1))),1,5);
FORM3.sg1.Cells[4,j]:= copy(floattostr((x4/(n-1))),1,5);
FORM3.sg1.Cells[5,j]:= copy(floattostr((x5/(n-1))),1,4);
R[J] := RUANG;
FORM3.SG2.Cells[0,J]:= RUANG;
FORM3.sg2.Cells[1,j]:= copy(floattostr((x1/(n-1))),1,5);
FORM3.sg2.Cells[2,j]:= copy(floattostr((x2/(n-1))),1,5);
FORM3.sg2.Cells[3,j]:= copy(floattostr((x3/(n-1))),1,5);
FORM3.sg2.Cells[4,j]:= copy(floattostr((x4/(n-1))),1,5);
FORM3.sg2.Cells[5,j]:= copy(floattostr((x5/(n-1))),1,4);
ruang:= sg.Cells[0,i]; rg:= sg.Cells[0,i]; J:= J+1;
end;
form5.edit1.text := inttostr(i-1); FORM5.Edit12.Text := INTTOSTR(J-1);
label7.Caption := COPY(FLOATTOSTR(bx1),1,6); label8.Caption := COPY(FLOATTOSTR(kx1),1,6); label9.Caption := COPY(FLOATTOSTR(bx2),1,6); label10.Caption := COPY(FLOATTOSTR(kx2),1,6); label11.Caption := COPY(FLOATTOSTR(bx3),1,6); label12.Caption := COPY(FLOATTOSTR(kx3),1,6); label13.Caption := COPY(FLOATTOSTR(bx4),1,6); label14.Caption := COPY(FLOATTOSTR(kx4),1,6); label15.Caption := COPY(FLOATTOSTR(bx5),1,6); label16.Caption := COPY(FLOATTOSTR(kx5),1,6);
FORM3.LBX2.Caption := COPY(FLOATTOSTR(bx2),1,6); FORM3.KBX2.Caption := COPY(FLOATTOSTR(kx2),1,6); FORM3.LBX3.Caption := COPY(FLOATTOSTR(bx3),1,6); FORM3.KBX3.Caption := COPY(FLOATTOSTR(kx3),1,6); FORM3.LBX4.Caption := COPY(FLOATTOSTR(bx4),1,6); FORM3.KBX4.Caption := COPY(FLOATTOSTR(kx4),1,6); FORM3.LBX5.Caption := COPY(FLOATTOSTR(bx5),1,6); FORM3.KBX5.Caption := COPY(FLOATTOSTR(kx5),1,6);
end;
procedure TForm2.Button2Click(Sender: TObject); begin
form3.show; end;
unit Unit3;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls,Unit2, TeeProcs, TeEngine, Chart, ExtCtrls, Grids,
Series, Buttons, ActnMan, ActnColorMaps;
type
procedure BitBtn1Click(Sender: TObject); procedure Button1Click(Sender: TObject); procedure FormCreate(Sender: TObject); procedure Button3Click(Sender: TObject); procedure Button2Click(Sender: TObject); private
uses Unit4, Unit5;
{$R *.dfm}
kecil := kcl4;
if (kecil > kcl5) and (kcl5>= 0) then kecil := kcl5;
kcl := kecil; end;
procedure gbrchart(ch :tchart; nmax,nmin : REAL;
Ch.BottomAxis.SetMinMax(nmin-2,nmax+2); Ch.LeftAxis.SetMinMax(-0.25,1.25);//Mengatur min dan max pd sb y
Ch.LeftAxis.Increment := 0.5; ch.Legend.Visible:=false; ch.Title.Text.Clear;
ch.Title.Font.Color := clred; ch.Title.Text.Insert(0,judul); nint := (nmax-nmin)/4;
Ch.BottomAxis.Increment := nint; nx[1]:= nmin;
procedure gbrchart1(ch :tchart; nmax,nmin : REAL;
Ch.BottomAxis.SetMinMax(nmin-2,nmax+2); Ch.LeftAxis.SetMinMax(-0.25,1.25);//Mengatur min dan max pd sb y
Ch.LeftAxis.Increment := 0.5; ch.Legend.Visible:=false; ch.Title.Text.Clear;
ch.Title.Font.Color := clred; ch.Title.Font.Size:=12; ch.Title.Text.Insert(0,judul); nint := (nmax-nmin)/4;
Ch.BottomAxis.Increment := nint; nx[1]:= nmin;
else if (x <= (nx[4]+nint/2)) and (x>nx[4]) then dt := 2* sqr((x-nx[4])/(nx[5]-nx[4]))
else if (x <= nx[5]) and (x > (nx[4]+ nint/2)) then dt :=1-2* sqr((nx[5]-x)/(nx[5]-nx[4]))
dt :=1;
ch.Series[0].AddXY(x,dt,'',clblue); x := x+0.25;
end; end;
procedure segitiga ( NMAX,NMIN : REAL; N : REAL;
sg.Cells[5*kol+3,brs] :=copy(floattostr(dt),1,5);
if (n < x[3])or (n>=x[5]) then
else if (N >= X[1]) AND (N <X[1]+ INTERVAL/2)
nilai : array[1..5,1..5] of real; x1,x2,x3,x4,x5 : array[1..2] of string; nx1,nx2,nx3,nx4,nx5 : array[1..2] of real;
nmf1,nmf2,nmf3,nmf4,nmf5 : array[1..2] of real; I : INTEGER;
R1,R2,R3,R4,R5 : BYTE;
RULE : ARRAY[1..32] OF STRING; Z : ARRAY[1..32] OF REAL; predikat : array[1..32] of real; mf : array[1..5] of real; J : BYTE;
zhitung,predhitung : real; kepuasan,RATA : real ; begin
nx1[1]:= nilai[1,4];
//mencari nilai RELIABILITY if sg.Cells[11,I] <> '0' then
//mencari nilai RESPONSIVE if sg.Cells[16,I] <> '0' then
end
//mencari nilai EMPHTY if sg.Cells[26,I] <> '0' then floattostr(predikat[j])+ ' '
+floattostr(mf[1]) );
FORM4.Memo1.Lines.Add(FLOATTOSTR(Z[J]));
zhitung := zhitung+predikat[j]; end;
kepuasan := (predhitung/zhitung); if mem = form4.memo1 then BEGIN
form5.SG5.CELLS[0,I] :=SG.CELLS[0,I]; form5.SG5.CELLS[1,I] :=SG.CELLS[1,I]; form5.SG5.CELLS[2,I] :=SG.CELLS[2,I]; form5.SG5.CELLS[3,I] :=SG.CELLS[3,I]; form5.SG5.CELLS[4,I] :=SG.CELLS[4,I]; form5.SG5.CELLS[5,I] :=SG.CELLS[5,I];
{RATA := 100/70*STRTOFLOAT(SG.CELLS[1,I])+ 100/15*STRTOFLOAT(SG.CELLS[2,I])+
procedure TForm3.BitBtn1Click(Sender: TObject); var
minx1,minx2,minx3,minx4,minx5 : real; max1,max2,max3,max4,max5 : real;
interval1,interval2,interval3,interval4,interval5 : real;
x1,x2,x3,x4,x5: array[1..6] of real; n1,n2,n3,n4,n5: real;
ruang : string; jlh,i :integer;
begin
max1 := strtofloat(lbx1.Caption); max2 := strtofloat(lbx2.Caption); max3 := strtofloat(lbx3.Caption); max4 := strtofloat(lbx4.Caption); max5 := strtofloat(lbx5.Caption);
minx1 := strtofloat(kbx1.Caption ); minx2 := strtofloat(kbx2.Caption ); minx3 := strtofloat(kbx3.Caption ); minx4 := strtofloat(kbx4.Caption ); minx5 := strtofloat(kbx5.Caption );
interval1 := (max1-minx1)/4; interval2 := (max2-minx2)/4; interval3 := (max3-minx3)/4; interval4 := (max4-minx4)/4; interval5 := (max5-minx5)/4;
form5.Edit2.Text := lbx1.Caption; form5.Edit4.Text := lbx2.Caption; form5.Edit6.Text := lbx3.Caption; form5.Edit8.Text := lbx4.Caption; form5.Edit10.Text := lbx5.Caption; form5.Edit3.Text := kbx1.Caption ; form5.Edit5.Text := kbx2.Caption ; form5.Edit7.Text := kbx3.Caption ; form5.Edit9.Text := kbx4.Caption ; form5.Edit11.Text := kbx5.Caption ;
x1[1] := minx1; i:= 2;
while i<= 5 do begin
x1[i] := x1[i-1]+interval1; i:= i+1;
x2[i] := x2[i-1]+interval2; i:= i+1;
x3[i] := x3[i-1]+interval3; i:= i+1;
end;
while i<= 5 do begin
x4[i] := x4[i-1]+interval4; i:= i+1;
x5[i] := x5[i-1]+interval5; i:= i+1;
ruang := sg1.Cells [0,1]; i:=1;
while ruang <>'' do begin
n1 := strtofloat(sg1.Cells[1,i]); n2 := strtofloat(sg1.Cells[2,i]); n3 := strtofloat(sg1.Cells[3,i]); n4 := strtofloat(sg1.Cells[4,i]); n5 := strtofloat(sg1.Cells[5,i]);
// derajat keanggotaan dengan dengan kurva segitiga
segitiga(max1,minx1,n1,1,i,sg1); segitiga(max2,minx2,n2,2,i,sg1); segitiga(max3,minx3,n3,3,i,sg1); segitiga(max4,minx4,n4,4,i,sg1); segitiga(max5,minx5,n5,5,i,sg1);
//derajat keanggotaan dengan kombinasi sigmoid dan bell
//di simpan pada string grid 2 sigmoid(max1,minx1,n1,1,i,sg2); sigmoid(max2,minx2,n2,2,i,sg2); sigmoid(max3,minx3,n3,3,i,sg2); sigmoid(max4,minx4,n4,4,i,sg2); sigmoid(max5,minx5,n5,5,i,sg2);
//counter i:= i+1;
ruang := sg1.Cells [0,i]; end;
//edit1.Text := inttostr(i);
end;
procedure TForm3.Button1Click(Sender: TObject); begin
halt; end;
procedure TForm3.FormCreate(Sender: TObject); var a: integer;
begin
for a:= 1 to 5 do begin
sg1.ColWidths[a] :=35; sg2.ColWidths[a] :=35; end;
for a:= 6 to 30 do begin
sg1.ColWidths[a] :=45; sg2.ColWidths[a] :=45; end; SG1.Cells[6,0] :='µX1 STB'; SG1.Cells[7,0] :='µX1 TB'; SG1.Cells[8,0] :='µX1 CB'; SG1.Cells[9,0] :='µX1 B'; SG1.Cells[10,0] :='µX1 SB';
SG1.Cells[11,0] :='µX2 STB'; SG1.Cells[12,0] :='µX2 TB'; SG1.Cells[13,0] :='µX2 CB'; SG1.Cells[14,0] :='µX2 B'; SG1.Cells[15,0] :='µX2 SB';
SG1.Cells[16,0] :='µX3 STB'; SG1.Cells[17,0] :='µX3 TB'; SG1.Cells[18,0] :='µX3 CB'; SG1.Cells[19,0] :='µX3 B'; SG1.Cells[20,0] :='µX3 SB';
SG1.Cells[21,0] :='µX4 STB'; SG1.Cells[22,0] :='µX4 TB'; SG1.Cells[23,0] :='µX4 CB'; SG1.Cells[24,0] :='µX4 B'; SG1.Cells[25,0] :='µX4 SB';
SG1.Cells[30,0] :='µX5 SB'; SG2.Cells[6,0] :='µX1 STB'; SG2.Cells[7,0] :='µX1 TB'; SG2.Cells[8,0] :='µX1 CB'; SG2.Cells[9,0] :='µX1 B'; SG2.Cells[10,0] :='µX1 SB';
SG2.Cells[11,0] :='µX2 STB'; SG2.Cells[12,0] :='µX2 TB'; SG2.Cells[13,0] :='µX2 CB'; SG2.Cells[14,0] :='µX2 B'; SG2.Cells[15,0] :='µX2 SB';
SG2.Cells[16,0] :='µX3 STB'; SG2.Cells[17,0] :='µX3 TB'; SG2.Cells[18,0] :='µX3 CB'; SG2.Cells[19,0] :='µX3 B'; SG2.Cells[20,0] :='µX3 SB';
SG2.Cells[21,0] :='µX4 STB'; SG2.Cells[22,0] :='µX4 TB'; SG2.Cells[23,0] :='µX4 CB'; SG2.Cells[24,0] :='µX4 B'; SG2.Cells[25,0] :='µX4 SB';
SG2.Cells[26,0] :='µX5 STB'; SG2.Cells[27,0] :='µX5 TB'; SG2.Cells[28,0] :='µX5 CB'; SG2.Cells[29,0] :='µX5 B'; SG2.Cells[30,0] :='µX5 SB'; end;
procedure TForm3.Button3Click(Sender: TObject); begin
FORM5.Show; end;
procedure TForm3.Button2Click(Sender: TObject); begin
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, Grids, StdCtrls, ExtCtrls, TeeProcs, TeEngine, Chart,
Series;
max,min :real; JLH :INTEGER; implementation
{$R *.dfm}
procedure gbrchart(ch :tchart; nmax,nmin : REAL;
Ch.BottomAxis.SetMinMax(nmin-2,nmax+2); Ch.LeftAxis.SetMinMax(-0.25,1.25);//Mengatur min dan max pd sb y
Ch.LeftAxis.Increment := 0.5; ch.Legend.Visible:=false; ch.Title.Text.Clear;
ch.Title.Font.Color := clred; ch.Title.Text.Insert(0,judul); nint := (nmax-nmin)/3;
Ch.BottomAxis.Increment := nint; nx[1]:= nmin;
procedure TForm5.FormCreate(Sender: TObject); begin
SG5.Cells [0,0] :='RUANGAN'; SG5.Cells [1,0] :='X1'; SG5.Cells [2,0] :='x2'; SG5.Cells [3,0] :='x3'; SG5.Cells [4,0] :='x4'; SG5.Cells [5,0] :='x5';
SG5.Cells [6,0] :='RATA-RATA'; SG5.Cells [7,0] :='SEGITIGA'; SG5.Cells [8,0] :='SIGMOID'; sg5.Font.Size :=10;
sg5.ColWidths[0] :=100;
end;
procedure bacadatA(sg :TStringGrid; mem :tmemo;
XSG1,XSG2,XSG3,XSG4 : REAL; X,mf :REAL;
kp1,kp2,kp3 : string; begin
//MENCARI JUMLAH MINIMUN PADA RATA-RATA I := 1;
MINR := STRTOFLOAT(SG.Cells[6,I]); MAXR := STRTOFLOAT(SG.Cells[6,I]); WHILE (I <= JLH) DO
BEGIN
IF MINR > STRTOFLOAT(SG.Cells[6,I]) THEN MINR := STRTOFLOAT(SG.Cells[6,I]); IF MAXR < STRTOFLOAT(SG.Cells[6,I]) THEN MAXR := STRTOFLOAT(SG.Cells[6,I]); I:= I+1;
END;
//MENCARI INTERVAL DARI NILAI SEGITIGA I := 1;
MINS := STRTOFLOAT(SG.Cells[7,I]); MAXS := STRTOFLOAT(SG.Cells[7,I]); WHILE (I <= JLH) DO
IF MINS > STRTOFLOAT(SG.Cells[7,I]) THEN MINS := STRTOFLOAT(SG.Cells[7,I]); IF MAXS < STRTOFLOAT(SG.Cells[7,I]) THEN MAXS := STRTOFLOAT(SG.Cells[7,I]); I:= I+1;
END;
gbrchart(gbr,maxs,mins,'KEPUASAN');
INT2 := (MAXS-MINS)/3; X1 := MINS;
X2 := X1 + INT2; X3 := X2 + INT2; X4 := X3 + INT2;
//MENCARI INTERVAL DARI NILAI SIGMOID I := 1;
MINSG := STRTOFLOAT(SG.Cells[8,I]); MAXSG := STRTOFLOAT(SG.Cells[8,I]); WHILE (I <= JLH) DO
BEGIN
IF MINSG > STRTOFLOAT(SG.Cells[8,I]) THEN MINSG := STRTOFLOAT(SG.Cells[8,I]); IF MAXSG < STRTOFLOAT(SG.Cells[8,I]) THEN MAXSG := STRTOFLOAT(SG.Cells[8,I]); I:= I+1;
END;
INT3 := (MAXSG-MINSG)/3; XSG1 := MINSG;
XSG2 := XSG1 + INT3; XSG3 := XSG2 + INT3; XSG4 := XSG3 + INT3;
//MENCARI NILAI KEPUASAN PASIEN; I:=1;
WHILE I <= JLH DO BEGIN
mem.Lines.Add(sg.Cells[0,i]); mem.Lines.Add(' ');
mem.Lines.Add('Dengan perhitungan Rata-rata'); X := STRTOFLOAT(SG.Cells[6,I]);
IF X >= 75 THEN
//dengan segitigs
mem.Lines.Add('Nilai Segitiga '); X := STRTOFLOAT(SG.Cells[7,I]); if x <= x1 then keanggotaan '+ COPY(floattostr(mf),1,5));
if (x <= x1) or ( x > x3) then keanggotaan '+ COPY(floattostr(mf),1,5));
if (x <= x2) or ( x > x4) then keanggotaan '+ COPY(floattostr(mf),1,5)); if (x <= x3) then keanggotaan '+ COPY(floattostr(mf),1,5)); MEM.Lines.Add(' ');
// kurva sigmoid
mem.Lines.Add('Nilai sigmoid '); X := STRTOFLOAT(SG.Cells[8,I]); if x <= x1 then keanggotaan '+ COPY(floattostr(mf),1,5));
if (x <= x1) or ( x > x3) then mf :=0
mf := (x3-x)/(x3-x2);
if mf <> 0 then
mem.Lines.Add(' Cukup dengan derajat keanggotaan '+ COPY(floattostr(mf),1,5));
if (x <= x2) or ( x > x4) then mf :=0
else if x <= x3 then mf := (x-x2)/(x3-x2) else
mf := (X4-x)/(x4-x3);
if mf <> 0 then
mem.Lines.Add(' BAIK dengan derajat keanggotaan '+ COPY(floattostr(mf),1,5)); if (x <= x3) then
mf :=0
else if x <= x4 then mf := (x-x3)/(x4-x3) else
mf := 1;
if mf <> 0 then
mem.Lines.Add(' SANGAT BAIK dengan derajat keanggotaan '+ COPY(floattostr(mf),1,5)); MEM.Lines.Add(' ');
i:=i+1; END;
MEM.Lines.SaveToFile('HASIL.TXT'); end;
procedure TForm5.Button1Click(Sender: TObject); begin
JLH := STRTOINT(EDIT12.Text ); BACADATA(SG5,memo1,GBR1); end;