Beruflich Dokumente
Kultur Dokumente
(*********************************************)
(* Program *)
(* SISTEM PAKAR *)
(* UNTUK MELAKUKAN DIAGNOSIS *)
(* DAN MEMBERIKAN TERAPI *)
(* PENYAKIT EPILEPSI DAN KELUARGANYA *)
(* DENGAN MENGGUNAKAN CERTAINTY FACTOR *)
(* *)
(* oleh : Kusrini *)
(*********************************************)
program Epilepsi;
uses
Forms,
UMain in 'UMain.pas' {FrmMain},
UCampuran in 'UCampuran.pas' {FrmCampuran},
UDM in 'UDM.pas' {DM: TDataModule};
{$R *.RES}
begin
Application.Initialize;
Application.CreateForm(TFrmMain, FrmMain);
Application.CreateForm(TFrmCampuran,
FrmCampuran);
Application.CreateForm(TDM, DM);
Application.Run;
end.
unit UDM;
interface
uses
Windows, Messages, SysUtils, Classes,
Graphics, Controls,
Forms, Dialogs,
Db, IBCustomDataSet, IBQuery, IBDatabase;
type
TDM = class(TDataModule)
IBDB: TIBDatabase;
IBTrans: TIBTransaction;
Query2: TIBQuery;
Query1: TIBQuery;
Query: TIBQuery;
Query3: TIBQuery;
Query4: TIBQuery;
2
Query5: TIBQuery;
private
{ Private declarations }
public
{ Public declarations }
end;
var
DM: TDM;
implementation
{$R *.DFM}
end.
3
unit UCampuran;
interface
uses
Windows, Messages, SysUtils, Classes,
Graphics, Controls, Forms, Dialogs, StdCtrls;
type
TFrmCampuran = class(TForm)
Edit1: TEdit;
ComboBox1: TComboBox;
Button1: TButton;
private
{ Private declarations }
public
Procedure cariQ(str : string);
Procedure cariQ1(str : string);
Procedure cariQ2(str : string);
Procedure cariQ3(str : string);
Procedure cariQ4(str : string);
Procedure cariQ5(str : string);
Procedure Hapus(str : string);
Procedure Tambah(str : string);
procedure PilihEdit(sender : TObject;
x : TEdit; var Key: Char);
procedure PilihCombo(sender : TObject;
x : TComboBox; var Key: Char);
procedure PilihButton(sender : TObject;
4
x : TButton; var Key: Char);
procedure ExitCF(x : tEdit);
procedure TekanCF(x : TCombobox; var key :
char);
function IBCF(x : TEdit) : string;
function Kode(x : TCombobox) : string;
function Kombinasi(x : real; y : real) :
real;
function Min(x : array of real; y :
integer) : real;
function Max(x : array of real; y :
integer) : real;
end;
var
FrmCampuran: TFrmCampuran;
implementation
uses UDM;
{$R *.DFM}
5
end;
end;
6
begin
with DM.Query1 do
begin
Close;
SQL.Clear;
SQL.Add(str);
Open;
end;
end;
7
SQL.Clear;
SQL.Add(str);
Open;
end;
end;
8
SQL.Add(str);
ExecSQL;
end;
if DM.IBTrans.Active = false then
DM.IBTrans.Active := true;
DM.IBTrans.CommitRetaining;
end;
procedure TFrmCampuran.PilihEdit(sender :
TObject; x : TEdit; var Key: Char);
var
Found: boolean;
i,SelSt: Integer;
TmpStr: string;
begin
if Key in ['a'..'z'] then
Dec(Key,32);//uppercase
9
exit;
end;
10
Found := False;
for i := 1 to Items.Count do
if Copy(Items[i-1],1,Length(TmpStr)) =
TmpStr then
begin
Text := Items[i-1]; //update to the
match that was found
ItemIndex := i-1;
Found := True;
Break;
end;
if Found then //select the untyped end of
the string
begin
SelStart := SelSt;
SelLength := Length(Text)-SelSt;
end
else Beep;
end;
end;
procedure TFrmCampuran.PilihCombo(sender :
TObject; x : TComboBox; var Key: Char);
var
Found: boolean;
i,SelSt: Integer;
TmpStr: string;
begin
if Key in ['a'..'z'] then
Dec(Key,32);//uppercase
11
with (Sender as TComboBox) do
begin
SelSt := SelStart;
if (Key = Chr(vk_Back)) and (SelLength <>
0) then
TmpStr := Copy(Text,1,SelStart)+
Copy(Text,SelLength+SelStart+1,255)
Found := False;
for i := 1 to Items.Count do
12
if Copy(Items[i-1],1,Length(TmpStr)) =
TmpStr then
begin
Text := Items[i-1]; //update to the
match that was found
ItemIndex := i-1;
Found := True;
Break;
end;
if Found then //select the untyped end of
the string
begin
SelStart := SelSt;
SelLength := Length(Text)-SelSt;
end
else Beep;
end;
end;
procedure TFrmCampuran.PilihButton(sender :
TObject; x : TButton; var Key: Char);
var
Found: boolean;
i,SelSt: Integer;
TmpStr: string;
begin
if Key in ['a'..'z'] then
Dec(Key,32);//uppercase
13
begin
SelSt := SelStart;
if (Key = Chr(vk_Back)) and (SelLength <>
0) then
TmpStr := Copy(Text,1,SelStart)+
Copy(Text,SelLength+SelStart+1,255)
14
Text := Items[i-1]; //update to the
match that was found
ItemIndex := i-1;
Found := True;
Break;
end;
if Found then //select the untyped end of
the string
begin
SelStart := SelSt;
SelLength := Length(Text)-SelSt;
end
else Beep;
end;
end;
15
end;
end.
16
unit UMain;
interface
uses
Windows, Messages, SysUtils, Classes,
Graphics, Controls, Forms, Dialogs,
abcbarlv, Abcanfr, Abcbar, ExtCtrls,
Abcpanel, ImgList, Abcbtns,
ComCtrls, StdCtrls, Abcbtn, Abclabel,
Abcexctl, Abcbusy, Abcatlab, Grids,
Outline, Menus, jpeg;
type
TFrmMain = class(TForm)
Frame: TabcAnimationFrame;
17
PGejala: TabcPage;
PnlBtnGejala: TPanel;
PnlIsiGejala: TPanel;
LblNama: TLabel;
EdtNamaGejala: TEdit;
LblKetGejala: TLabel;
MemoKetGejala: TMemo;
SBGejala: TStatusBar;
PTentang: TabcPage;
PSawan: TabcPage;
PSyarat: TabcPage;
PEpilepsi: TabcPage;
PNonEpilepsi: TabcPage;
PObat: TabcPage;
PGejalaSawan: TabcPage;
PDE: TabcPage;
PDNE: TabcPage;
PTE: TabcPage;
PTNE: TabcPage;
PDA: TabcPage;
PKonsultasi: TabcPage;
BtnTambahGejala: TabcFormPicBtn;
BtnGantiGejala: TabcFormPicBtn;
BtnHapusGejala: TabcFormPicBtn;
BtnTutupGejala: TabcFormPicBtn;
PnlIsiSawan: TPanel;
LblNamaSawan: TLabel;
EdtNamaSawan: TEdit;
PnlBtnSawan: TPanel;
BtnTambahSawan: TabcFormPicBtn;
BtnGantiSawan: TabcFormPicBtn;
BtnHapusSawan: TabcFormPicBtn;
BtnTutupSawan: TabcFormPicBtn;
SBSawan: TStatusBar;
SBSyarat: TStatusBar;
PnlDaftarGejala: TPanel;
LVDaftarGejala: TListView;
18
PnlDaftarSawan: TPanel;
LVDaftarSawan: TListView;
PnlIsiSyarat: TPanel;
LblNamaSyarat: TLabel;
EdtNamaSyarat: TEdit;
PnlBtnSyarat: TPanel;
BtnTambahSyarat: TabcFormPicBtn;
BtnGantiSyarat: TabcFormPicBtn;
BtnHapusSyarat: TabcFormPicBtn;
BtnTutupSyarat: TabcFormPicBtn;
PnlDaftarSyarat: TPanel;
LVDaftarSyarat: TListView;
PnlIsiEpilepsi: TPanel;
LblNamaEpilepsi: TLabel;
EdtNamaEpilepsi: TEdit;
PnlBtnEpilepsi: TPanel;
BtnTambahEpilepsi: TabcFormPicBtn;
BtnGantiEpilepsi: TabcFormPicBtn;
BtnHapusEpilepsi: TabcFormPicBtn;
BtnTutupEpilepsi: TabcFormPicBtn;
PnlDaftarEpilepsi: TPanel;
LvDaftarEpilepsi: TListView;
SBEpilepsi: TStatusBar;
PnlIsiNonEpilepsi: TPanel;
LblNamaNonEpilepsi: TLabel;
EdtNamaNonEpilepsi: TEdit;
PnlBtnNonEpilepsi: TPanel;
BtnTambahNonEpilepsi: TabcFormPicBtn;
BtnGantiNonEpilepsi: TabcFormPicBtn;
BtnHapusNonEpilepsi: TabcFormPicBtn;
BtnTutupNonEpilepsi: TabcFormPicBtn;
PnlDaftarNonEpilepsi: TPanel;
LVDaftarNonEpilepsi: TListView;
SBNonEpilepsi: TStatusBar;
PnlIsiObat: TPanel;
PnlBtnObat: TPanel;
BtnTambahObat: TabcFormPicBtn;
19
BtnGantiObat: TabcFormPicBtn;
BtnHapusObat: TabcFormPicBtn;
BtnTutupObat: TabcFormPicBtn;
PnlDaftarObat: TPanel;
SBObat: TStatusBar;
LblNamaObat: TLabel;
LblDosisObat: TLabel;
LblEF1Obat: TLabel;
LblEF2Obat: TLabel;
LblLaranganObat: TLabel;
LblHargaObat: TLabel;
EdtNamaObat: TEdit;
EdtDosisObat: TEdit;
EdtEF1Obat: TEdit;
EdtEF2Obat: TEdit;
EDTLaranganObat: TEdit;
EdtHargaObat: TEdit;
PnlBtnGejalaSawan: TPanel;
BtnTambahGS: TabcFormPicBtn;
BtnTutupGS: TabcFormPicBtn;
PnlIsiGS: TPanel;
LblSawanGS: TLabel;
CmbSawanGS: TComboBox;
LblCFGS: TLabel;
EdtCFGS: TEdit;
LVGS: TListView;
LblJikaGS: TLabel;
CmbGejalaGS: TComboBox;
BtnMasukGS: TabcFormPicBtn;
BtnBersihGS: TabcFormPicBtn;
PnlIsiAEpilepsi: TPanel;
LblEpilepsi: TLabel;
LblCFEpilepsi: TLabel;
LblJikaAEpilepsi: TLabel;
CmbEpilepsiAEpilepsi: TComboBox;
EdtCFEpilepsi: TEdit;
LVEpilepsi: TListView;
20
PnlBtnAEpilepsi: TPanel;
BtnTambahAEpilepsi: TabcFormPicBtn;
BtnTutupAEpilepsi: TabcFormPicBtn;
BtnBersihAEpilepsi: TabcFormPicBtn;
PCEpilepsi: TPageControl;
TSSawanEpilepsi: TTabSheet;
TSSyaratEpilepsi: TTabSheet;
CmbSyaratEpilepsi: TComboBox;
BtnMasukLEpilepsi: TabcFormPicBtn;
CmbSawanEpilepsi: TComboBox;
BtnMasukSEpilepsi: TabcFormPicBtn;
PnlBtnNEpilepsi: TPanel;
BtnTambahNEpilepsi: TabcFormPicBtn;
BtnTutupNEpilepsi: TabcFormPicBtn;
BtnBersihNEpilepsi: TabcFormPicBtn;
PnlIsiNEpilepsi: TPanel;
LblNEpilepsi: TLabel;
LblCFNEpilepsi: TLabel;
LblJikaNE: TLabel;
CmbNEpilepsiNE: TComboBox;
EdtCFNEpilepsi: TEdit;
LVNEpilepsi: TListView;
LblNilaiAEpilepsi: TLabel;
EdtNilaiAEpilepsi: TEdit;
PCNEpilepsi: TPageControl;
TSGejalaNEpilepsi: TTabSheet;
CmbGejalaNEpilepsi: TComboBox;
BtnMasukGejalaNEpilepsi: TabcFormPicBtn;
TSSyaratNEpilspsi: TTabSheet;
LblNilaiNEpilepsi: TLabel;
CmbSyaratNEpilepsi: TComboBox;
BtnMasukNEpilepsi: TabcFormPicBtn;
EdtNilaiNEpilepsi: TEdit;
PnlBtnTE: TPanel;
BtnTambahTE: TabcFormPicBtn;
BtnTutupTE: TabcFormPicBtn;
BtnBersihTE: TabcFormPicBtn;
21
PnlIsiTE: TPanel;
LblObatTE: TLabel;
LblEpilepsiTE: TLabel;
LblCFTE: TLabel;
LblSdTE: TLabel;
CmbObatTE: TComboBox;
CmbEpilepsiTE: TComboBox;
EdtCF1TE: TEdit;
EdtCf2TE: TEdit;
LblJikaTE: TLabel;
PnlIsiTNE: TPanel;
LBLOnatTNE: TLabel;
LblNETNE: TLabel;
LblCFTNE: TLabel;
LblSdTNE: TLabel;
LblJikaTNE: TLabel;
CmbObatNE: TComboBox;
CmbNETNE: TComboBox;
EdtCF1TNE: TEdit;
EdtCF2TNE: TEdit;
PnlBtnTNE: TPanel;
BtnTambahTNE: TabcFormPicBtn;
BtnTutupTNE: TabcFormPicBtn;
BtnBersihTNE: TabcFormPicBtn;
PnlBtnAturan: TPanel;
BtnTampilAturan: TabcFormPicBtn;
BtnBersihAturan: TabcFormPicBtn;
BtnHapusAturan: TabcFormPicBtn;
BtnTutupAturan: TabcFormPicBtn;
PnlDaftarAturan: TPanel;
LVDaftarAturan: TListView;
pgbtampil: TProgressBar;
LblJenisAturan: TLabel;
CmbJenisAturan: TComboBox;
PPenjelasan: TabcPage;
PTerapi: TabcPage;
PnlBtnKonsultasi: TPanel;
22
BtnMulaiKonsultasi: TabcFormPicBtn;
BtnLanjutKonsultasi: TabcFormPicBtn;
BtnPenjelasanKonsultasi: TabcFormPicBtn;
BtnUlangKonsultasi: TabcFormPicBtn;
BtnTutupKonsultasi: TabcFormPicBtn;
PnlDiagnosis: TPanel;
PnlJawab: TPanel;
LblCFKonsultasi: TLabel;
RBYa: TRadioButton;
RBTidak: TRadioButton;
EdtCFKonsultasi: TEdit;
RBTTahu: TRadioButton;
PnlBtnPenjelasan: TPanel;
BtnTutupPenjelasan: TabcFormPicBtn;
PnlPenjelasan: TPanel;
PnlTerapi: TPanel;
PnlBtnTerapi: TPanel;
BtnTutupTerapi: TabcFormPicBtn;
LVTerapi: TListView;
BtnBersihGejala: TabcFormPicBtn;
BtnBersihSawan: TabcFormPicBtn;
BtnBersihEpilepsi: TabcFormPicBtn;
BtnBersihNonEpilepsi: TabcFormPicBtn;
BtnBersihObat: TabcFormPicBtn;
BtnBersihSyarat: TabcFormPicBtn;
LVDaftarObat: TListView;
BtnUtama: TabcButtonBar;
BPTentang: TabcButtonPage;
BtnKeluar: TabcPicSpeedBtn;
BtnTentang: TabcPicSpeedBtn;
BPData: TabcButtonPage;
BtnSyarat: TabcPicSpeedBtn;
BtnSawan: TabcPicSpeedBtn;
BtnNonEpilepsi: TabcPicSpeedBtn;
BtnGejala: TabcPicSpeedBtn;
BtnEpilepsi: TabcPicSpeedBtn;
BtnObat: TabcPicSpeedBtn;
23
BPAkuisisi: TabcButtonPage;
BtnAGS: TabcPicSpeedBtn;
BtnTNE: TabcPicSpeedBtn;
BtnDNE: TabcPicSpeedBtn;
BtnDE: TabcPicSpeedBtn;
BtnDaftarAturan: TabcPicSpeedBtn;
BtnTE: TabcPicSpeedBtn;
BPOp: TabcButtonPage;
BtnKonsultasi: TabcPicSpeedBtn;
MMUtama: TMainMenu;
SistemPakar1: TMenuItem;
Tentang1: TMenuItem;
Keluar1: TMenuItem;
DataPengetahuan1: TMenuItem;
Gejal1: TMenuItem;
Sawan1: TMenuItem;
Syarat1: TMenuItem;
N1: TMenuItem;
Epilepsi1: TMenuItem;
NonEpilepsi1: TMenuItem;
N2: TMenuItem;
Obat1: TMenuItem;
AkuisisiPengetahuan1: TMenuItem;
AturanGejalaSawan1: TMenuItem;
AturanEpilepsi1: TMenuItem;
AturanNonEpilepsi1: TMenuItem;
AturanTerapiEpilepsi1: TMenuItem;
AturanTerapiNonEpilepsi1: TMenuItem;
DaftarAturan1: TMenuItem;
Operasi1: TMenuItem;
Konsultasi1: TMenuItem;
SB: TStatusBar;
BtnTerapi: TabcFormPicBtn;
LVKonsultasi: TListView;
LVPenjelasan: TListView;
ImgTentang: TImage;
procedure BtnGejalaClick(Sender: TObject);
24
procedure BtnKeluarClick(Sender: TObject);
procedure BtnTentangClick(Sender: TObject);
procedure BtnSawanClick(Sender: TObject);
procedure BtnSyaratClick(Sender: TObject);
procedure BtnNonEpilepsiClick(Sender:
TObject);
procedure FormShow(Sender: TObject);
procedure BtnEpilepsiClick(Sender:
TObject);
procedure BtnObatClick(Sender: TObject);
procedure BtnAGSClick(Sender: TObject);
procedure BtnDEClick(Sender: TObject);
procedure BtnDNEClick(Sender: TObject);
procedure BtnTEClick(Sender: TObject);
procedure BtnTNEClick(Sender: TObject);
procedure BtnDaftarAturanClick(Sender:
TObject);
procedure BtnKonsultasiClick(Sender:
TObject);
procedure Tentang1Click(Sender: TObject);
procedure Keluar1Click(Sender: TObject);
procedure Gejal1Click(Sender: TObject);
procedure Sawan1Click(Sender: TObject);
procedure Syarat1Click(Sender: TObject);
procedure Epilepsi1Click(Sender: TObject);
procedure NonEpilepsi1Click(Sender:
TObject);
procedure Obat1Click(Sender: TObject);
procedure AturanGejalaSawan1Click(Sender:
TObject);
procedure AturanEpilepsi1Click(Sender:
TObject);
procedure AturanNonEpilepsi1Click(Sender:
TObject);
procedure
AturanTerapiEpilepsi1Click(Sender: TObject);
25
procedure
AturanTerapiNonEpilepsi1Click(Sender: TObject);
procedure DaftarAturan1Click(Sender:
TObject);
procedure Konsultasi1Click(Sender:
TObject);
procedure EdtNamaGejalaKeyPress(Sender:
TObject;
var Key: Char);
procedure MemoKetGejalaKeyPress(Sender:
TObject;
var Key: Char);
procedure BtnTambahGejalaClick(Sender:
TObject);
procedure BtnGantiGejalaClick(Sender:
TObject);
procedure BtnHapusGejalaClick(Sender:
TObject);
procedure BtnBersihGejalaClick(Sender:
TObject);
procedure BtnTutupGejalaClick(Sender:
TObject);
procedure LVDaftarGejalaDblClick(Sender:
TObject);
procedure LVDaftarGejalaKeyPress(Sender:
TObject;
var Key: Char);
procedure EdtNamaSawanKeyPress(Sender:
TObject;
var Key: Char);
procedure BtnTambahSawanClick(Sender:
TObject);
procedure BtnGantiSawanClick(Sender:
TObject);
procedure BtnHapusSawanClick(Sender:
TObject);
26
procedure BtnBersihSawanClick(Sender:
TObject);
procedure BtnTutupSawanClick(Sender:
TObject);
procedure LVDaftarSawanDblClick(Sender:
TObject);
procedure LVDaftarSawanKeyPress(Sender:
TObject;
var Key: Char);
procedure EdtNamaSyaratKeyPress(Sender:
TObject;
var Key: Char);
procedure BtnTambahSyaratClick(Sender:
TObject);
procedure BtnGantiSyaratClick(Sender:
TObject);
procedure BtnHapusSyaratClick(Sender:
TObject);
procedure BtnBersihSyaratClick(Sender:
TObject);
procedure BtnTutupSyaratClick(Sender:
TObject);
procedure LVDaftarSyaratDblClick(Sender:
TObject);
procedure LVDaftarSyaratKeyPress(Sender:
TObject;
var Key: Char);
procedure EdtNamaEpilepsiKeyPress(Sender:
TObject;
var Key: Char);
procedure BtnTambahEpilepsiClick(Sender:
TObject);
procedure BtnGantiEpilepsiClick(Sender:
TObject);
procedure BtnHapusEpilepsiClick(Sender:
TObject);
27
procedure BtnBersihEpilepsiClick(Sender:
TObject);
procedure BtnTutupEpilepsiClick(Sender:
TObject);
procedure LvDaftarEpilepsiDblClick(Sender:
TObject);
procedure LvDaftarEpilepsiKeyPress(Sender:
TObject;
var Key: Char);
procedure
EdtNamaNonEpilepsiKeyPress(Sender: TObject;
var Key: Char);
procedure BtnTambahNonEpilepsiClick(Sender:
TObject);
procedure BtnGantiNonEpilepsiClick(Sender:
TObject);
procedure BtnHapusNonEpilepsiClick(Sender:
TObject);
procedure BtnBersihNonEpilepsiClick(Sender:
TObject);
procedure BtnTutupNonEpilepsiClick(Sender:
TObject);
procedure
LVDaftarNonEpilepsiDblClick(Sender: TObject);
procedure
LVDaftarNonEpilepsiKeyPress(Sender: TObject;
var Key: Char);
procedure EdtNamaObatKeyPress(Sender:
TObject; var Key: Char);
procedure EdtDosisObatKeyPress(Sender:
TObject;
var Key: Char);
procedure EdtEF1ObatKeyPress(Sender:
TObject;
var Key: Char);
procedure EdtEF2ObatKeyPress(Sender:
TObject;
28
var Key: Char);
procedure EDTLaranganObatKeyPress(Sender:
TObject;
var Key: Char);
procedure EdtHargaObatKeyPress(Sender:
TObject;
var Key: Char);
procedure BtnTambahObatClick(Sender:
TObject);
procedure BtnGantiObatClick(Sender:
TObject);
procedure BtnHapusObatClick(Sender:
TObject);
procedure BtnBersihObatClick(Sender:
TObject);
procedure BtnTutupObatClick(Sender:
TObject);
procedure LVDaftarObatDblClick(Sender:
TObject);
procedure LVDaftarObatKeyPress(Sender:
TObject;
var Key: Char);
procedure CmbSawanGSKeyDown(Sender:
TObject;
var Key: Word; Shift: TShiftState);
procedure CmbSawanGSKeyPress(Sender:
TObject;
var Key: Char);
procedure EdtCFGSExit(Sender: TObject);
procedure EdtCFGSKeyPress(Sender: TObject;
var Key: Char);
procedure CmbGejalaGSKeyDown(Sender:
TObject;
var Key: Word; Shift: TShiftState);
procedure CmbGejalaGSKeyPress(Sender:
TObject;
var Key: Char);
29
procedure BtnMasukGSClick(Sender: TObject);
procedure BtnTambahGSClick(Sender:
TObject);
procedure BtnBersihGSClick(Sender:
TObject);
procedure BtnTutupGSClick(Sender: TObject);
procedure
CmbEpilepsiAEpilepsiKeyDown(Sender: TObject;
var Key: Word; Shift: TShiftState);
procedure
CmbEpilepsiAEpilepsiKeyPress(Sender: TObject;
var Key: Char);
procedure EdtCFEpilepsiExit(Sender:
TObject);
procedure EdtCFEpilepsiKeyPress(Sender:
TObject;
var Key: Char);
procedure CmbSawanEpilepsiKeyDown(Sender:
TObject;
var Key: Word; Shift: TShiftState);
procedure CmbSawanEpilepsiKeyPress(Sender:
TObject;
var Key: Char);
procedure BtnMasukSEpilepsiClick(Sender:
TObject);
procedure CmbSyaratEpilepsiKeyDown(Sender:
TObject;
var Key: Word; Shift: TShiftState);
procedure CmbSyaratEpilepsiKeyPress(Sender:
TObject;
var Key: Char);
procedure EdtNilaiAEpilepsiKeyPress(Sender:
TObject;
var Key: Char);
procedure BtnMasukLEpilepsiClick(Sender:
TObject);
30
procedure BtnTambahAEpilepsiClick(Sender:
TObject);
procedure BtnBersihAEpilepsiClick(Sender:
TObject);
procedure BtnTutupAEpilepsiClick(Sender:
TObject);
procedure CmbNEpilepsiNEKeyDown(Sender:
TObject;
var Key: Word; Shift: TShiftState);
procedure CmbNEpilepsiNEKeyPress(Sender:
TObject;
var Key: Char);
procedure EdtCFNEpilepsiKeyPress(Sender:
TObject;
var Key: Char);
procedure
CmbGejalaNEpilepsiKeyPress(Sender: TObject;
var Key: Char);
procedure
BtnMasukGejalaNEpilepsiClick(Sender: TObject);
procedure CmbSyaratNEpilepsiKeyDown(Sender:
TObject;
var Key: Word;
Shift: TShiftState);
procedure
CmbSyaratNEpilepsiKeyPress(Sender: TObject;
var Key: Char);
procedure EdtNilaiNEpilepsiKeyPress(Sender:
TObject;
var Key: Char);
procedure BtnMasukNEpilepsiClick(Sender:
TObject);
procedure BtnTambahNEpilepsiClick(Sender:
TObject);
procedure BtnBersihNEpilepsiClick(Sender:
TObject);
31
procedure BtnTutupNEpilepsiClick(Sender:
TObject);
procedure CmbObatTEKeyDown(Sender: TObject;
var Key: Word; Shift: TShiftState);
procedure CmbObatTEKeyPress(Sender:
TObject;
var Key: Char);
procedure CmbEpilepsiTEKeyDown(Sender:
TObject;
var Key: Word; Shift: TShiftState);
procedure CmbEpilepsiTEKeyPress(Sender:
TObject;
var Key: Char);
procedure EdtCF1TEExit(Sender: TObject);
procedure EdtCF1TEKeyPress(Sender: TObject;
var Key: Char);
procedure EdtCf2TEExit(Sender: TObject);
procedure EdtCf2TEKeyPress(Sender: TObject;
var Key: Char);
procedure BtnTambahTEClick(Sender:
TObject);
procedure BtnBersihTEClick(Sender:
TObject);
procedure BtnTutupTEClick(Sender: TObject);
procedure EdtCFNEpilepsiExit(Sender:
TObject);
procedure CmbObatNEKeyDown(Sender: TObject;
var Key: Word;
Shift: TShiftState);
procedure CmbObatNEKeyPress(Sender:
TObject;
var Key: Char);
procedure CmbNETNEKeyDown(Sender: TObject;
var Key: Word; Shift: TShiftState);
procedure CmbNETNEKeyPress(Sender: TObject;
var Key: Char);
procedure EdtCF1TNEExit(Sender: TObject);
32
procedure EdtCF1TNEKeyPress(Sender:
TObject;
var Key: Char);
procedure EdtCF2TNEExit(Sender: TObject);
procedure EdtCF2TNEKeyPress(Sender:
TObject;
var Key: Char);
procedure BtnTambahTNEClick(Sender:
TObject);
procedure BtnBersihTNEClick(Sender:
TObject);
procedure BtnTutupTNEClick(Sender:
TObject);
procedure CmbJenisAturanKeyDown(Sender:
TObject;
var Key: Word; Shift: TShiftState);
procedure CmbJenisAturanKeyPress(Sender:
TObject;
var Key: Char);
procedure LVDaftarAturanClick(Sender:
TObject);
procedure LVDaftarAturanKeyPress(Sender:
TObject;
var Key: Char);
procedure BtnTampilAturanClick(Sender:
TObject);
procedure BtnHapusAturanClick(Sender:
TObject);
procedure BtnBersihAturanClick(Sender:
TObject);
procedure BtnTutupAturanClick(Sender:
TObject);
procedure RBTTahuEnter(Sender: TObject);
procedure RBTTahuKeyPress(Sender: TObject;
var Key: Char);
procedure RBYaEnter(Sender: TObject);
procedure RBYaKeyPress(Sender: TObject;
33
var Key: Char);
procedure RBTidakEnter(Sender: TObject);
procedure RBTidakKeyPress(Sender: TObject;
var Key: Char);
procedure EdtCFKonsultasiExit(Sender:
TObject);
procedure EdtCFKonsultasiKeyPress(Sender:
TObject;
var Key: Char);
procedure BtnMulaiKonsultasiClick(Sender:
TObject);
procedure BtnLanjutKonsultasiClick(Sender:
TObject);
procedure
BtnPenjelasanKonsultasiClick(Sender: TObject);
procedure BtnUlangKonsultasiClick(Sender:
TObject);
procedure BtnTerapiClick(Sender: TObject);
procedure BtnTutupKonsultasiClick(Sender:
TObject);
procedure BtnTutupTerapiClick(Sender:
TObject);
procedure BtnTutupPenjelasanClick(Sender:
TObject);
private
procedure TampilGejala;
procedure TampilSawan;
procedure TampilSyarat;
procedure TampilEpilepsi;
procedure TampilNonEpilepsi;
procedure TampilObat;
public
Procedure Bersih;
Procedure Sawan(NE : integer);
Procedure Syarat(NE : integer);
Procedure SyaratP(NE : integer);
Procedure Penyakit;
34
Procedure Lewat;
Procedure LewatP;
Procedure GejalaP(NE : integer);
Function Pencarian : string;
Procedure TampilHasil;
end;
var
FrmMain: TFrmMain;
KodeSawanGS, NamaSawanGS, KodeGejalaGS,
NamaGejalaGS,
KodeEpilepsiAE, NamaEpilepsiAE, KodeSawanAE,
NamaSawanAE,
KodeSyaratAE, NamaSyaratAE, KodeNEpilepsiANE,
NamaNEpilepsiANE,
KodeGejalaANE, NamaGejalaANE, KodeSyaratANE,
NamaSyaratANE,
KodeObatTE, NamaObatTE, KodeEpilepsiTE,
NamaEpilepsiTE,
KodeObatTNE, NamaObatTNE, KodeEpilepsiTNE,
NamaEpilepsiTNE
: TStringList;
//untuk konsultasi
NE, NS, NG, NP, NOS, NOG, NOP, RE, RS, RL, RP
: integer;
CFNE, CFNS, CFNG, CFNL, CFNP, CFG1, CFG2,
CFS1, CFS2 : real;
CFS, CFG : array [1..100] of real;
Epilepsi, Gejala, BalikSawan, CekFinal :
boolean;
Nilai : string;
Cari : array[1..100] of integer;
Tor : integer;
35
implementation
{$R *.DFM}
procedure TFrmMain.TampilGejala;
var Daftar : TlistItem;
begin
with DM.Query, Daftar do
begin
Close;
SQL.Clear;
SQL.Add(
' SELECT NOGEJALA, NAMAGEJALA,
KETERANGAN '+
' FROM GEJALA ORDER BY NAMAGEJALA');
Open;
LVDaftarGejala.Items.Clear;
while not eof do
begin
Daftar := LVDaftarGejala.Items.Add;
Daftar.Caption := Fields[1].AsString;
Daftar.SubItems.Add(Fields[2].AsString);
Daftar.SubItems.Add(Fields[0].AsString);
Next;
end;
end;
SBGejala.SimpleText := ' Jumlah Gejala : ' +
IntToStr(LVDaftarGejala.Items.Count);
end;
procedure TFrmMain.TampilSawan;
var Daftar : TlistItem;
begin
with DM.Query, Daftar do
36
begin
Close;
SQL.Clear;
SQL.Add(
' SELECT NOSAWAN, NAMASAWAN '+
' FROM SAWAN ORDER BY NAMASAWAN');
Open;
LVDaftarSawan.Items.Clear;
while not eof do
begin
Daftar := LVDaftarSawan.Items.Add;
Daftar.Caption := Fields[1].AsString;
Daftar.SubItems.Add(Fields[0].AsString);
Next;
end;
end;
SBSawan.SimpleText := ' Jumlah Sawan : ' +
IntToStr(LVDaftarSawan.Items.Count);
end;
procedure TFrmMain.TampilSyarat;
var Daftar : TlistItem;
begin
with DM.Query, Daftar do
begin
Close;
SQL.Clear;
SQL.Add(
' SELECT NOLAIN, NAMALAIN '+
' FROM LAIN ORDER BY NAMALAIN');
Open;
LVDaftarSyarat.Items.Clear;
while not eof do
begin
Daftar := LVDaftarSyarat.Items.Add;
37
Daftar.Caption := Fields[1].AsString;
Daftar.SubItems.Add(Fields[0].AsString);
Next;
end;
end;
SBSyarat.SimpleText := ' Jumlah Syarat
Lain : ' +
IntToStr(LVDaftarSyarat.Items.Count);
end;
procedure TFrmMain.TampilEpilepsi;
var Daftar : TlistItem;
begin
with DM.Query, Daftar do
begin
Close;
SQL.Clear;
SQL.Add(
' SELECT NOEPILEPSI, NAMAEPILEPSI '+
' FROM EPILEPSI ORDER BY
NAMAEPILEPSI');
Open;
LvDaftarEpilepsi.Items.Clear;
while not eof do
begin
Daftar := LvDaftarEpilepsi.Items.Add;
Daftar.Caption := Fields[1].AsString;
Daftar.SubItems.Add(Fields[0].AsString);
Next;
end;
end;
SBEpilepsi.SimpleText := ' Jumlah Syarat
Lain : ' +
IntToStr(LvDaftarEpilepsi.Items.Count);
end;
38
procedure TFrmMain.TampilNonEpilepsi;
var Daftar : TlistItem;
begin
with DM.Query, Daftar do
begin
Close;
SQL.Clear;
SQL.Add(
' SELECT NONONEPILEPSI, NAMANONEPILEPSI
'+
' FROM NONEPILEPSI ORDER BY
NAMANONEPILEPSI');
Open;
LVDaftarNonEpilepsi.Items.Clear;
while not eof do
begin
Daftar := LVDaftarNonEpilepsi.Items.Add;
Daftar.Caption := Fields[1].AsString;
Daftar.SubItems.Add(Fields[0].AsString);
Next;
end;
end;
SBSyarat.SimpleText := ' Jumlah Syarat
Lain : ' +
IntToStr(LVDaftarNonEpilepsi.Items.Count);
end;
procedure TFrmMain.TampilObat;
var Daftar : TlistItem;
i : integer;
begin
with DM.Query, Daftar do
begin
Close;
SQL.Clear;
SQL.Add(
39
' SELECT * FROM OBAT ORDER BY NAMAOBAT
');
Open;
LVDaftarObat.Items.Clear;
i := 0;
while not Eof do
begin
inc(i);
Daftar := LVDaftarObat.Items.Add;
Caption :=
FieldByName('namaobat').AsString;
SubItems.Add('');
SubItems.Add(FieldByName('noobat').AsString);
SubItems.Add(FieldByName('dosis').AsString);
SubItems.Add('');
end;
SubItems.Add(FieldByName('ES1').AsString);
SubItems.Add('');
end;
40
begin
Daftar := LVDaftarObat.Items.Add;
Caption := ' E.Samping (tdk sesuai
dosis)';
SubItems.Add(FieldByName('ES2').AsString);
SubItems.Add('');
end;
SubItems.Add(FieldByName('larangan').AsString);
SubItems.Add('');
end;
SubItems.Add(FieldByName('harga').AsString);
SubItems.Add('');
end;
Next;
end;
end;
SBObat.SimpleText := ' Jumlah Obat : ' +
IntToStr(i);
end;
41
begin
//cek koneksi
if DM.IBDB.Connected = false then
begin
DM.IBDB.Connected := true;
DM.IBTrans.Active := true;
end;
//sawan
TampilSawan;
EdtNamaSawan.Text := '';
BtnTambahSawan.Enabled := true;
BtnGantiSawan.Enabled := false;
BtnHapusSawan.Enabled := false;
//syarat
TampilSyarat;
EdtNamaSyarat.Text := '';
BtnTambahSyarat.Enabled := true;
BtnGantiSyarat.Enabled := false;
BtnHapusSyarat.Enabled := false;
//epilepsi
TampilEpilepsi;
EdtNamaEpilepsi.Text := '';
BtnTambahEpilepsi.Enabled := true;
BtnGantiEpilepsi.Enabled := false;
BtnHapusEpilepsi.Enabled := false;
42
//non epilepsi
TampilNonEpilepsi;
EdtNamaNonEpilepsi.Text := '';
BtnTambahNonEpilepsi.Enabled := true;
BtnGantiNonEpilepsi.Enabled := false;
BtnHapusNonEpilepsi.Enabled := false;
//obat
TampilObat;
EdtNamaObat.Text := '';
EdtDosisObat.Text := '';
EdtEF1Obat.Text := '';
EdtEF2Obat.Text := '';
EDTLaranganObat.Text := '';
EdtHargaObat.Text := '';
BtnTambahObat.Enabled := true;
BtnGantiObat.Enabled := false;
BtnHapusObat.Enabled := false;
//gejalasawan
CmbSawanGS.ItemIndex := -1;
EdtCFGS.Text := '';
LVGS.Items.Clear;
LblJikaGS.Caption := 'JIKA';
CmbGejalaGS.ItemIndex := -1;
//aepilepsi
CmbEpilepsiAEpilepsi.ItemIndex := -1;
EdtCFEpilepsi.Text := '';
LVEpilepsi.Items.Clear;
LblJikaAEpilepsi.Caption := 'JIKA';
PCEpilepsi.ActivePage := TSSawanEpilepsi;
CmbSawanEpilepsi.ItemIndex := -1;
CmbSyaratEpilepsi.ItemIndex := -1;
EdtNilaiAEpilepsi.Text := '';
//anepilepsi
43
CmbNEpilepsiNE.ItemIndex := -1;
EdtCFNEpilepsi.Text := '';
LVNEpilepsi.Items.Clear;
LblJikaNE.Caption := 'JIKA';
PCNEpilepsi.ActivePage := TSGejalaNEpilepsi;
CmbGejalaNEpilepsi.ItemIndex := -1;
CmbSyaratNEpilepsi.ItemIndex := -1;
EdtNilaiNEpilepsi.Text := '';
//atepilespi
CmbObatTE.ItemIndex := -1;
CmbEpilepsiTE.ItemIndex := -1;
EdtCF1TE.Text := '';
EdtCf2TE.Text := '';
//atnepilepsi
CmbObatNE.ItemIndex := -1;
CmbNEpilepsiNE.ItemIndex := -1;
EdtCF1TNE.Text := '';
EdtCF2TNE.Text := '';
//daturan
CmbJenisAturan.ItemIndex := 0;
//konsultasi
LVKonsultasi.Items.Clear;
RBTTahu.Checked := true;
LblCFKonsultasi.Visible := false;
EdtCFKonsultasi.Text := '';
EdtCFKonsultasi.Visible := false;
BtnMulaiKonsultasi.Enabled := true;
BtnLanjutKonsultasi.Enabled := false;
BtnPenjelasanKonsultasi.Enabled := false;
//fokus
BtnUtama.ActivePage := BPTentang;
Frame.ActivePage := PTentang;
44
end;
procedure TFrmMain.BtnTentangClick(Sender:
TObject);
begin
PTentang.Show;
end;
procedure TFrmMain.BtnKeluarClick(Sender:
TObject);
begin
if MessageDlg('Anda Mau Keluar?',
mtConfirmation,
[mbYes, mbNo], 1) = mrYes then Close;
end;
procedure TFrmMain.BtnGejalaClick(Sender:
TObject);
begin
PGejala.Show;
EdtNamaGejala.SetFocus;
end;
procedure TFrmMain.BtnSawanClick(Sender:
TObject);
begin
PSawan.Show;
EdtNamaSawan.SetFocus;
end;
procedure TFrmMain.BtnSyaratClick(Sender:
TObject);
begin
PSyarat.Show;
EdtNamaSyarat.SetFocus;
end;
45
procedure TFrmMain.BtnEpilepsiClick(Sender:
TObject);
begin
PEpilepsi.Show;
EdtNamaEpilepsi.SetFocus;
end;
procedure TFrmMain.BtnNonEpilepsiClick(Sender:
TObject);
begin
PNonEpilepsi.show;
EdtNamaNonEpilepsi.SetFocus;
end;
procedure TFrmMain.BtnObatClick(Sender:
TObject);
begin
PObat.show;
EdtNamaObat.SetFocus;
end;
procedure TFrmMain.BtnAGSClick(Sender:
TObject);
begin
with DM.Query do
begin
//memasukkan sawan di cmbsawan
Close;
SQL.Clear;
SQL.Add(
' SELECT NOSAWAN, NAMASAWAN '+
' FROM SAWAN ORDER BY NAMASAWAN ');
Open;
CmbSawanGS.Items.Clear;
KodeSawanGS := TStringList.Create;
46
NamaSawanGS := TStringList.Create;
while not Eof do
begin
KodeSawanGS.Add(Fields[0].AsString);
NamaSawanGS.Add(Fields[1].AsString);
Next;
end;
CmbSawanGS.Items.Assign(NamaSawanGS);
CmbSawanGS.ItemIndex := -1;
CmbGejalaGS.Items.Clear;
KodeGejalaGS := TStringList.Create;
NamaGejalaGS := TStringList.Create;
while not Eof do
begin
KodeGejalaGS.Add(Fields[0].AsString);
NamaGejalaGS.Add(Fields[1].AsString);
Next;
end;
CmbGejalaGS.Items.Assign(NamaGejalaGS);
CmbGejalaGS.ItemIndex := -1;
end;
PGejalaSawan.Show;
CmbSawanGS.SetFocus;
end;
47
begin
with DM.Query do
begin
//memasukkan epilepsi di cmbepilepsi
Close;
SQL.Clear;
SQL.Add(
' SELECT NOEPILEPSI, NAMAEPILEPSI '+
' FROM EPILEPSI ORDER BY NAMAEPILEPSI ');
Open;
CmbEpilepsiAEpilepsi.Items.Clear;
KodeEpilepsiAE := TStringList.Create;
NamaEpilepsiAE := TStringList.Create;
while not Eof do
begin
KodeEpilepsiAE.Add(Fields[0].AsString);
NamaEpilepsiAE.Add(Fields[1].AsString);
Next;
end;
CmbEpilepsiAEpilepsi.Items.Assign(NamaEpilepsiA
E);
CmbEpilepsiAEpilepsi.ItemIndex := -1;
CmbSawanEpilepsi.Items.Clear;
KodeSawanAE := TStringList.Create;
NamaSawanAE := TStringList.Create;
48
while not Eof do
begin
KodeSawanAE.Add(Fields[0].AsString);
NamaSawanAE.Add(Fields[1].AsString);
Next;
end;
CmbSawanEpilepsi.Items.Assign(NamaSawanAE);
CmbSawanEpilepsi.ItemIndex := -1;
CmbSyaratEpilepsi.Items.Clear;
KodeSyaratAE := TStringList.Create;
NamaSyaratAE := TStringList.Create;
while not Eof do
begin
KodeSyaratAE.Add(Fields[0].AsString);
NamaSyaratAE.Add(Fields[1].AsString);
Next;
end;
CmbSyaratEpilepsi.Items.Assign(NamaSyaratAE);
CmbSyaratEpilepsi.ItemIndex := -1;
end;
PDE.Show;
CmbEpilepsiAEpilepsi.SetFocus;
end;
procedure TFrmMain.BtnDNEClick(Sender:
TObject);
49
begin
with DM.Query do
begin
//memasukkan non epilepsi di cmbnepilepsi
Close;
SQL.Clear;
SQL.Add(
' SELECT NONONEPILEPSI, NAMANONEPILEPSI
'+
' FROM NONEPILEPSI ORDER BY
NAMANONEPILEPSI ');
Open;
CmbNEpilepsiNE.Items.Clear;
KodeNEpilepsiANE := TStringList.Create;
NamaNEpilepsiANE := TStringList.Create;
while not Eof do
begin
KodeNEpilepsiANE.Add(Fields[0].AsString);
NamaNEpilepsiANE.Add(Fields[1].AsString);
Next;
end;
CmbNEpilepsiNE.Items.Assign(NamaNEpilepsiANE);
CmbNEpilepsiNE.ItemIndex := -1;
CmbGejalaNEpilepsi.Items.Clear;
KodeGejalaANE := TStringList.Create;
50
NamaGejalaANE := TStringList.Create;
while not Eof do
begin
KodeGejalaANE.Add(Fields[0].AsString);
NamaGejalaANE.Add(Fields[1].AsString);
Next;
end;
CmbGejalaNEpilepsi.Items.Assign(NamaGejalaANE);
CmbGejalaNEpilepsi.ItemIndex := -1;
CmbSyaratNEpilepsi.Items.Clear;
KodeSyaratANE := TStringList.Create;
NamaSyaratANE := TStringList.Create;
while not Eof do
begin
KodeSyaratANE.Add(Fields[0].AsString);
NamaSyaratANE.Add(Fields[1].AsString);
Next;
end;
CmbSyaratNEpilepsi.Items.Assign(NamaSyaratANE);
CmbSyaratNEpilepsi.ItemIndex := -1;
end;
PDNE.Show;
CmbNEpilepsiNE.SetFocus;
end;
51
begin
with DM.Query do
begin
//memasukkan obat di cmbobat
Close;
SQL.Clear;
SQL.Add(
' SELECT NOOBAT, NAMAOBAT '+
' FROM OBAT ORDER BY NAMAOBAT ');
Open;
CmbObatTE.Items.Clear;
KodeObatTE := TStringList.Create;
NamaObatTE := TStringList.Create;
while not Eof do
begin
KodeObatTE.Add(Fields[0].AsString);
NamaObatTE.Add(Fields[1].AsString);
Next;
end;
CmbObatTE.Items.Assign(NamaObatTE);
CmbObatTE.ItemIndex := -1;
CmbEpilepsiTE.Items.Clear;
KodeEpilepsiTE := TStringList.Create;
NamaEpilepsiTE := TStringList.Create;
while not Eof do
begin
52
KodeEpilepsiTE.Add(Fields[0].AsString);
NamaEpilepsiTE.Add(Fields[1].AsString);
Next;
end;
CmbEpilepsiTE.Items.Assign(NamaEpilepsiTE);
CmbEpilepsiTE.ItemIndex := -1;
end;
PTE.Show;
CmbObatTE.SetFocus;
end;
procedure TFrmMain.BtnTNEClick(Sender:
TObject);
begin
with DM.Query do
begin
//memasukkan obat di cmbobat
Close;
SQL.Clear;
SQL.Add(
' SELECT NOOBAT, NAMAOBAT '+
' FROM OBAT ORDER BY NAMAOBAT ');
Open;
CmbObatNE.Items.Clear;
KodeObatTNE := TStringList.Create;
NamaObatTNE := TStringList.Create;
while not Eof do
begin
KodeObatTNE.Add(Fields[0].AsString);
NamaObatTNE.Add(Fields[1].AsString);
Next;
end;
CmbObatNE.Items.Assign(NamaObatTNE);
53
CmbObatNE.ItemIndex := -1;
CmbNETNE.Items.Clear;
KodeEpilepsiTNE := TStringList.Create;
NamaEpilepsiTNE := TStringList.Create;
while not Eof do
begin
KodeEpilepsiTNE.Add(Fields[0].AsString);
NamaEpilepsiTNE.Add(Fields[1].AsString);
Next;
end;
CmbNETNE.Items.Assign(NamaEpilepsiTNE);
CmbNEpilepsiNE.ItemIndex := -1;
end;
PTNE.Show;
CmbObatNE.SetFocus;
end;
procedure TFrmMain.BtnDaftarAturanClick(Sender:
TObject);
begin
PDA.Show;
CmbJenisAturan.SetFocus;
end;
procedure TFrmMain.BtnKonsultasiClick(Sender:
TObject);
54
begin
PKonsultasi.Show;
BtnUlangKonsultasi.SetFocus;
end;
procedure TFrmMain.Tentang1Click(Sender:
TObject);
begin
BtnUtama.ActivePage := BPTentang;
BtnTentang.Click;
end;
procedure TFrmMain.Keluar1Click(Sender:
TObject);
begin
BtnUtama.ActivePage := BPTentang;
BtnKeluar.Click;
end;
procedure TFrmMain.Gejal1Click(Sender:
TObject);
begin
BtnUtama.ActivePage := BPData;
BtnGejala.Click;
end;
procedure TFrmMain.Sawan1Click(Sender:
TObject);
begin
BtnUtama.ActivePage := BPData;
BtnSawan.Click;
end;
procedure TFrmMain.Syarat1Click(Sender:
TObject);
begin
BtnUtama.ActivePage := BPData;
55
BtnSyarat.Click;
end;
procedure TFrmMain.Epilepsi1Click(Sender:
TObject);
begin
BtnUtama.ActivePage := BPData;
BtnEpilepsi.Click;
end;
procedure TFrmMain.NonEpilepsi1Click(Sender:
TObject);
begin
BtnUtama.ActivePage := BPData;
BtnNonEpilepsi.Click;
end;
procedure
TFrmMain.AturanGejalaSawan1Click(Sender:
TObject);
begin
BtnUtama.ActivePage := BPAkuisisi;
BtnAGS.Click;
end;
procedure TFrmMain.AturanEpilepsi1Click(Sender:
TObject);
begin
BtnUtama.ActivePage := BPAkuisisi;
BtnDE.Click;
end;
56
procedure
TFrmMain.AturanNonEpilepsi1Click(Sender:
TObject);
begin
BtnUtama.ActivePage := BPAkuisisi;
BtnDNE.Click;
end;
procedure
TFrmMain.AturanTerapiEpilepsi1Click(Sender:
TObject);
begin
BtnUtama.ActivePage := BPAkuisisi;
BtnTE.Click;
end;
procedure
TFrmMain.AturanTerapiNonEpilepsi1Click(Sender:
TObject);
begin
BtnUtama.ActivePage := BPAkuisisi;
BtnTNE.Click;
end;
procedure TFrmMain.DaftarAturan1Click(Sender:
TObject);
begin
BtnUtama.ActivePage := BPAkuisisi;
BtnDaftarAturan.Click;
end;
procedure TFrmMain.Konsultasi1Click(Sender:
TObject);
begin
BtnUtama.ActivePage := BPOp;
BtnKonsultasi.Click;
57
end;
procedure
TFrmMain.EdtNamaGejalaKeyPress(Sender: TObject;
var Key: Char);
begin
if Key = #13 then
begin
Key := #0;
MemoKetGejala.SetFocus;
end;
end;
procedure
TFrmMain.MemoKetGejalaKeyPress(Sender: TObject;
var Key: Char);
begin
if Key = #13 then
begin
Key := #0;
if BtnTambahGejala.Enabled = true then
BtnTambahGejala.SetFocus
else BtnGantiGejala.SetFocus;
end;
end;
procedure TFrmMain.BtnTambahGejalaClick(Sender:
TObject);
begin
if EdtNamaGejala.Text = '' then
begin
MessageDlg('Gejalanya diisi dong.....!!!',
mtInformation, [mbOK], 0);
EdtNamaGejala.SetFocus;
Exit;
end;
58
with DM.Query do
begin
try
Close;
SQL.Clear;
SQL.Add(
' INSERT INTO GEJALA (NOGEJALA, '+
' NAMAGEJALA, KETERANGAN) '+
' VALUES (GEN_ID(ID_GEJALA, 1),
:nama, :ket) ');
ParamByName('nama').AsString :=
UpperCase(EdtNamaGejala.Text);
ParamByName('ket').AsString :=
MemoKetGejala.Text;
ExecSQL;
if DM.IBTrans.Active = false then
DM.IBTrans.Active := true;
DM.IBTrans.CommitRetaining;
except
MessageDlg('Gejala '+ EdtNamaGejala.Text
+ ' sudah ada',
mtInformation,[mbOK],0);
EdtNamaGejala.SetFocus;
exit;
end;
Application.ProcessMessages;
end;
TampilGejala;
BtnBersihGejala.Click;
end;
procedure TFrmMain.BtnGantiGejalaClick(Sender:
TObject);
begin
if EdtNamaGejala.Text = '' then
begin
MessageDlg('Gejalanya diisi dong.....!!!',
59
mtInformation, [mbOK], 0);
EdtNamaGejala.SetFocus;
Exit;
end;
with DM.Query do
begin
try
Close;
SQL.Clear;
SQL.Add(
' UPDATE GEJALA SET NAMAGEJALA = :nama,
'+
' KETERANGAN = :ket WHERE NOGEJALA = '+
LVDaftarGejala.Selected.SubItems.Strings[1]);
ParamByName('nama').AsString :=
UpperCase(EdtNamaGejala.Text);
ParamByName('ket').AsString :=
MemoKetGejala.Text;
ExecSQL;
if DM.IBTrans.Active = false then
DM.IBTrans.Active := true;
DM.IBTrans.CommitRetaining;
Application.ProcessMessages;
except
MessageDlg('Gejala '+ EdtNamaGejala.Text
+ ' sudah ada',
mtInformation,[mbOK],0);
EdtNamaGejala.SetFocus;
exit;
end;
end;
TampilGejala;
BtnBersihGejala.Click;
end;
60
procedure TFrmMain.BtnHapusGejalaClick(Sender:
TObject);
begin
with DM.Query do
begin
Close;
SQL.Clear;
SQL.Add(
' DELETE FROM GEJALA WHERE NOGEJALA = '+
LVDaftarGejala.Selected.SubItems.Strings[1]);
ExecSQL;
if DM.IBTrans.Active = false then
DM.IBTrans.Active := true;
DM.IBTrans.CommitRetaining;
end;
TampilGejala;
BtnBersihGejala.Click;
end;
procedure TFrmMain.BtnBersihGejalaClick(Sender:
TObject);
begin
EdtNamaGejala.Text := '';
MemoKetGejala.Text := '';
BtnTambahGejala.Enabled := true;
BtnGantiGejala.Enabled := false;
BtnHapusGejala.Enabled := false;
EdtNamaGejala.SetFocus;
end;
procedure TFrmMain.BtnTutupGejalaClick(Sender:
TObject);
begin
BtnUtama.ActivePage := BPTentang;
Frame.ActivePage := PTentang;
BtnTentang.Show;
61
end;
procedure
TFrmMain.LVDaftarGejalaDblClick(Sender:
TObject);
begin
if LVDaftarGejala.SelCount = 0 then exit;
EdtNamaGejala.Text :=
LVDaftarGejala.Selected.Caption;
MemoKetGejala.Text :=
LVDaftarGejala.Selected.SubItems.Strings[0];
BtnTambahGejala.Enabled := false;
BtnGantiGejala.Enabled := true;
BtnHapusGejala.Enabled := true;
EdtNamaGejala.SetFocus;
end;
procedure
TFrmMain.LVDaftarGejalaKeyPress(Sender:
TObject;
var Key: Char);
begin
if key = #13 then
begin
key := #0;
LVDaftarGejala.OnDblClick(Sender);
end;
end;
procedure TFrmMain.EdtNamaSawanKeyPress(Sender:
TObject;
var Key: Char);
begin
if Key = #13 then
begin
Key := #0;
62
if BtnTambahSawan.Enabled = true then
BtnTambahSawan.SetFocus
else BtnGantiSawan.SetFocus;
end;
end;
procedure TFrmMain.BtnTambahSawanClick(Sender:
TObject);
begin
if EdtNamaSawan.Text = '' then
begin
MessageDlg('Nama sawannya diisi
dong.....!!!',
mtInformation, [mbOK], 0);
EdtNamaSawan.SetFocus;
Exit;
end;
with DM.Query do
begin
try
Close;
SQL.Clear;
SQL.Add(
' INSERT INTO SAWAN (NOSAWAN,
NAMASAWAN) '+
' VALUES (GEN_ID(ID_SAWAN, 1),
:nama)');
ParamByName('nama').AsString :=
UpperCase(EdtNamaSawan.Text);
ExecSQL;
if DM.IBTrans.Active = false then
DM.IBTrans.Active := true;
DM.IBTrans.CommitRetaining;
Application.ProcessMessages;
except
MessageDlg('Sawan '+ EdtNamaSawan.Text +
' sudah ada',
63
mtInformation,[mbOK],0);
EdtNamaSawan.SetFocus;
exit;
end;
end;
TampilSawan;
BtnBersihSawan.Click;
end;
procedure TFrmMain.BtnGantiSawanClick(Sender:
TObject);
begin
if EdtNamaSawan.Text = '' then
begin
MessageDlg('Nama sawannya diisi
dong.....!!!',
mtInformation, [mbOK], 0);
EdtNamaSawan.SetFocus;
Exit;
end;
with DM.Query do
begin
try
Close;
SQL.Clear;
SQL.Add(
' UPDATE SAWAN SET NAMASAWAN = :nama '+
' WHERE NOSAWAN = '+
LVDaftarSawan.Selected.SubItems.Strings[0]);
ParamByName('nama').AsString :=
UpperCase(EdtNamaSawan.Text);
ExecSQL;
if DM.IBTrans.Active = false then
DM.IBTrans.Active := true;
DM.IBTrans.CommitRetaining;
except
64
MessageDlg('Sawan '+ EdtNamaSawan.Text +
' sudah ada',mtInformation,[mbOK],0);
EdtNamaSawan.SetFocus;
exit;
end;
Application.ProcessMessages;
end;
TampilSawan;
BtnBersihSawan.Click;
end;
procedure TFrmMain.BtnHapusSawanClick(Sender:
TObject);
begin
with DM.Query do
begin
Close;
SQL.Clear;
SQL.Add(
' DELETE FROM SAWAN WHERE NOSAWAN = '+
LVDaftarSawan.Selected.SubItems.Strings[0]);
ExecSQL;
if DM.IBTrans.Active = false then
DM.IBTrans.Active := true;
DM.IBTrans.CommitRetaining;
end;
TampilSawan;
BtnBersihSawan.Click;
end;
procedure TFrmMain.BtnBersihSawanClick(Sender:
TObject);
begin
EdtNamaSawan.Text := '';
BtnTambahSawan.Enabled := true;
BtnGantiSawan.Enabled := false;
65
BtnHapusSawan.Enabled := false;
EdtNamaSawan.SetFocus;
end;
procedure TFrmMain.BtnTutupSawanClick(Sender:
TObject);
begin
BtnUtama.ActivePage := BPTentang;
Frame.ActivePage := PTentang;
BtnTentang.Show;
end;
procedure
TFrmMain.LVDaftarSawanDblClick(Sender:
TObject);
begin
if LVDaftarSawan.SelCount = 0 then exit;
EdtNamaSawan.Text :=
LVDaftarSawan.Selected.Caption;
BtnTambahSawan.Enabled := false;
BtnGantiSawan.Enabled := true;
BtnHapusSawan.Enabled := true;
EdtNamaSawan.SetFocus;
end;
procedure
TFrmMain.LVDaftarSawanKeyPress(Sender: TObject;
var Key: Char);
begin
if key = #13 then
begin
key := #0;
LVDaftarSawan.OnDblClick(sender);
end;
end;
66
procedure
TFrmMain.EdtNamaSyaratKeyPress(Sender: TObject;
var Key: Char);
begin
if Key = #13 then
begin
Key := #0;
if BtnTambahSyarat.Enabled = true then
BtnTambahSyarat.SetFocus
else BtnGantiSyarat.SetFocus;
end;
end;
procedure TFrmMain.BtnTambahSyaratClick(Sender:
TObject);
begin
if EdtNamaSyarat.Text = '' then
begin
MessageDlg('Nama syarat lainnya diisi
dong.....!!!',
mtInformation, [mbOK], 0);
EdtNamaSyarat.SetFocus;
Exit;
end;
with DM.Query do
begin
try
Close;
SQL.Clear;
SQL.Add(
' INSERT INTO LAIN (NOLAIN, NAMALAIN)
'+
' VALUES (GEN_ID(ID_LAIN, 1), :nama)
');
ParamByName('nama').AsString :=
UpperCase(EdtNamaSyarat.Text);
67
ExecSQL;
except
MessageDlg('Syarat '+ EdtNamaSyarat.Text
+ ' sudah ada',
mtInformation,[mbOK],0);
EdtNamaSyarat.SetFocus;
exit;
end;
procedure TFrmMain.BtnGantiSyaratClick(Sender:
TObject);
begin
if EdtNamaSyarat.Text = '' then
begin
MessageDlg('Nama syarat lainnya diisi
dong.....!!!',
mtInformation, [mbOK], 0);
EdtNamaSyarat.SetFocus;
Exit;
end;
with DM.Query do
begin
try
Close;
SQL.Clear;
SQL.Add(
68
' update lain set namalain = :nama
where nolain = '+
LVDaftarSyarat.Selected.SubItems.Strings[0]);
ParamByName('nama').AsString :=
UpperCase(EdtNamaSyarat.Text);
ExecSQL;
except
MessageDlg('Syarat '+ EdtNamaSyarat.Text
+ ' sudah ada',
mtInformation,[mbOK],0);
EdtNamaSyarat.SetFocus;
exit;
end;
procedure TFrmMain.BtnHapusSyaratClick(Sender:
TObject);
begin
with DM.Query do
begin
Close;
SQL.Clear;
SQL.Add(' delete from lain where nolain =
'+
LVDaftarSyarat.Selected.SubItems.Strings[0]);
ExecSQL;
if DM.IBTrans.Active = false then
69
DM.IBTrans.Active := true;
DM.IBTrans.CommitRetaining;
end;
TampilSyarat;
BtnBersihSyarat.Click;
end;
procedure TFrmMain.BtnBersihSyaratClick(Sender:
TObject);
begin
EdtNamaSyarat.Text := '';
BtnTambahSyarat.Enabled := true;
BtnGantiSyarat.Enabled := false;
BtnHapusSyarat.Enabled := false;
EdtNamaSyarat.SetFocus;
end;
procedure TFrmMain.BtnTutupSyaratClick(Sender:
TObject);
begin
BtnUtama.ActivePage := BPTentang;
Frame.ActivePage := PTentang;
BtnTentang.Show;
end;
procedure
TFrmMain.LVDaftarSyaratDblClick(Sender:
TObject);
begin
if LVDaftarSyarat.SelCount = 0 then exit;
EdtNamaSyarat.Text :=
LVDaftarSyarat.Selected.Caption;
BtnTambahSyarat.Enabled := false;
BtnGantiSyarat.Enabled := true;
BtnHapusSyarat.Enabled := true;
EdtNamaSyarat.SetFocus;
end;
70
procedure
TFrmMain.LVDaftarSyaratKeyPress(Sender:
TObject;
var Key: Char);
begin
if key = #13 then
begin
key := #0;
LVDaftarSyarat.OnDblClick(sender);
end;
end;
procedure
TFrmMain.EdtNamaEpilepsiKeyPress(Sender:
TObject;
var Key: Char);
begin
if Key = #13 then
begin
Key := #0;
if BtnTambahEpilepsi.Enabled = true then
BtnTambahEpilepsi.SetFocus
else BtnGantiEpilepsi.SetFocus;
end;
end;
procedure
TFrmMain.BtnTambahEpilepsiClick(Sender:
TObject);
begin
if EdtNamaEpilepsi.Text = '' then begin
MessageDlg('Nama epilepsinya diisi
dong.....!!!',
mtInformation, [mbOK], 0);
EdtNamaEpilepsi.SetFocus;
Exit;
71
end;
with DM.Query do
begin
try
Close;
SQL.Clear;
SQL.Add(
' INSERT INTO EPILEPSI (NOEPILEPSI,
NAMAEPILEPSI) '+
' VALUES (GEN_ID(ID_EPILEPSI,1),
:nama)');
ParamByName('nama').AsString :=
UpperCase(EdtNamaEpilepsi.Text);
ExecSQL;
except
MessageDlg('Epilepsi '+
EdtNamaEpilepsi.Text + ' sudah ada',
mtInformation,[mbOK],0);
EdtNamaEpilepsi.SetFocus;
exit;
end;
procedure
TFrmMain.BtnGantiEpilepsiClick(Sender:
TObject);
begin
if EdtNamaEpilepsi.Text = '' then
72
begin
MessageDlg('Nama Epilepsinya diisi
dong.....!!!',
mtInformation, [mbOK], 0);
EdtNamaEpilepsi.SetFocus;
Exit;
end;
with DM.Query do
begin
try
Close;
SQL.Clear;
SQL.Add(' UPDATE EPILEPSI SET
NAMAEPILEPSI = :nama '+
' WHERE NOEPILEPSI = '+
LvDaftarEpilepsi.Selected.SubItems.Strings[0]);
ParamByName('nama').AsString :=
UpperCase(EdtNamaEpilepsi.Text);
ExecSQL;
except
MessageDlg('Epilepsi '+
EdtNamaEpilepsi.Text + ' sudah ada',
mtInformation,[mbOK],0);
EdtNamaEpilepsi.SetFocus;
exit;
end;
73
procedure
TFrmMain.BtnHapusEpilepsiClick(Sender:
TObject);
begin
with DM.Query do
begin
Close;
SQL.Clear;
SQL.Add(
' DELETE FROM EPILEPSI WHERE NOEPILEPSI =
'+
LvDaftarEpilepsi.Selected.SubItems.Strings[0]);
ExecSQL;
if DM.IBTrans.Active = false then
DM.IBTrans.Active := true;
DM.IBTrans.CommitRetaining;
end;
TampilEpilepsi;
BtnBersihEpilepsi.Click;
end;
procedure
TFrmMain.BtnBersihEpilepsiClick(Sender:
TObject);
begin
EdtNamaEpilepsi.Text := '';
BtnTambahEpilepsi.Enabled := true;
BtnGantiEpilepsi.Enabled := false;
BtnHapusEpilepsi.Enabled := false;
EdtNamaEpilepsi.SetFocus;
end;
procedure
TFrmMain.BtnTutupEpilepsiClick(Sender:
TObject);
74
begin
BtnUtama.ActivePage := BPTentang;
Frame.ActivePage := PTentang;
BtnTentang.Show;
end;
procedure
TFrmMain.LvDaftarEpilepsiDblClick(Sender:
TObject);
begin
if LvDaftarEpilepsi.SelCount = 0 then exit;
EdtNamaEpilepsi.Text :=
LvDaftarEpilepsi.Selected.Caption;
BtnTambahEpilepsi.Enabled := false;
BtnGantiEpilepsi.Enabled := true;
BtnHapusEpilepsi.Enabled := true;
EdtNamaEpilepsi.SetFocus;
end;
procedure
TFrmMain.LvDaftarEpilepsiKeyPress(Sender:
TObject;
var Key: Char);
begin
if key = #13 then
begin
key := #0;
LvDaftarEpilepsi.OnDblClick(Sender);
end;
end;
procedure
TFrmMain.EdtNamaNonEpilepsiKeyPress(Sender:
TObject;
var Key: Char);
begin
if Key = #13 then
begin
75
Key := #0;
if BtnTambahNonEpilepsi.Enabled = true then
BtnTambahNonEpilepsi.SetFocus
else BtnGantiNonEpilepsi.SetFocus;
end;
end;
procedure
TFrmMain.BtnTambahNonEpilepsiClick(Sender:
TObject);
begin
if EdtNamaNonEpilepsi.Text = '' then
begin
MessageDlg('Nama penyakitnya diisi
dong.....!!!',
mtInformation, [mbOK], 0);
EdtNamaNonEpilepsi.SetFocus;
Exit;
end;
with DM.Query do
begin
try
Close;
SQL.Clear;
SQL.Add(
' INSERT INTO NONEPILEPSI '+
' (NONONEPILEPSI, NAMANONEPILEPSI) '+
' VALUES (GEN_ID(ID_NONEPILEPSI,1),
:nama)');
ParamByName('nama').AsString :=
UpperCase(EdtNamaNonEpilepsi.Text);
ExecSQL;
except
MessageDlg('Penyakit '+
EdtNamaNonEpilepsi.Text + ' sudah ada',
mtInformation,[mbOK],0);
76
EdtNamaNonEpilepsi.SetFocus;
exit;
end;
if DM.IBTrans.Active = false then
DM.IBTrans.Active := true;
DM.IBTrans.CommitRetaining;
Application.ProcessMessages;
end;
TampilNonEpilepsi;
BtnBersihNonEpilepsi.Click;
end;
procedure
TFrmMain.BtnGantiNonEpilepsiClick(Sender:
TObject);
begin
if EdtNamaNonEpilepsi.Text = '' then
begin
MessageDlg('Nama Penyakitnya diisi
dong.....!!!',
mtInformation, [mbOK], 0);
EdtNamaNonEpilepsi.SetFocus;
Exit;
end;
with DM.Query do
begin
try
Close;
SQL.Clear;
SQL.ADD(' UPDATE NONEPILEPSI SET '+
' NAMANONEPILEPSI = :nama '+
' WHERE NONONEPILEPSI = '+
LVDaftarNonEpilepsi.Selected.SubItems.Strings[0
]);
ParamByName('nama').AsString :=
77
UpperCase(EdtNamaNonEpilepsi.Text);
ExecSQL;
except
MessageDlg('Penyakit '+
EdtNamaNonEpilepsi.Text +
' sudah ada',mtInformation,[mbOK],0);
EdtNamaNonEpilepsi.SetFocus;
exit;
end;
if DM.IBTrans.Active = false then
DM.IBTrans.Active := true;
DM.IBTrans.CommitRetaining;
Application.ProcessMessages;
end;
TampilNonEpilepsi;
BtnBersihNEpilepsi.Click;
end;
procedure
TFrmMain.BtnHapusNonEpilepsiClick(Sender:
TObject);
begin
with DM.Query do
begin
Close;
SQL.Clear;
SQL.Add(' DELETE FROM NONEPILEPSI WHERE
NONONEPILEPSI = '+
LVDaftarNonEpilepsi.Selected.SubItems.Strings[0
]);
ExecSQL;
if DM.IBTrans.Active = false then
DM.IBTrans.Active := true;
DM.IBTrans.CommitRetaining;
end;
TampilNonEpilepsi;
78
BtnBersihNEpilepsi.Click;
end;
procedure
TFrmMain.BtnBersihNonEpilepsiClick(Sender:
TObject);
begin
EdtNamaNonEpilepsi.Text := '';
BtnTambahNonEpilepsi.Enabled := true;
BtnGantiNonEpilepsi.Enabled := false;
BtnHapusNonEpilepsi.Enabled := false;
EdtNamaNonEpilepsi.SetFocus;
end;
procedure
TFrmMain.BtnTutupNonEpilepsiClick(Sender:
TObject);
begin
BtnUtama.ActivePage := BPTentang;
Frame.ActivePage := PTentang;
BtnTentang.Show;
end;
procedure
TFrmMain.LVDaftarNonEpilepsiDblClick(Sender:
TObject);
begin
if LVDaftarNonEpilepsi.SelCount = 0 then
exit;
EdtNamaNonEpilepsi.Text :=
LVDaftarNonEpilepsi.Selected.Caption;
BtnTambahNonEpilepsi.Enabled := false;
BtnGantiNonEpilepsi.Enabled := true;
BtnHapusNonEpilepsi.Enabled := true;
EdtNamaNonEpilepsi.SetFocus;
end;
79
procedure
TFrmMain.LVDaftarNonEpilepsiKeyPress(Sender:
TObject;
var Key: Char);
begin
if key = #13 then
begin
key := #0;
LVDaftarNonEpilepsi.OnDblClick(Sender);
end;
end;
procedure TFrmMain.EdtNamaObatKeyPress(Sender:
TObject;
var Key: Char);
begin
if Key = #13 then
begin
Key := #0;
EdtDosisObat.SetFocus;
end;
end;
procedure TFrmMain.EdtDosisObatKeyPress(Sender:
TObject;
var Key: Char);
begin
if Key = #13 then
begin
Key := #0;
EdtEF1Obat.SetFocus;
end;
end;
procedure TFrmMain.EdtEF1ObatKeyPress(Sender:
TObject;
var Key: Char);
begin
80
if Key = #13 then
begin
Key := #0;
EdtEF2Obat.SetFocus;
end;
end;
procedure TFrmMain.EdtEF2ObatKeyPress(Sender:
TObject;
var Key: Char);
begin
if Key = #13 then
begin
Key := #0;
EDTLaranganObat.SetFocus;
end;
end;
procedure
TFrmMain.EDTLaranganObatKeyPress(Sender:
TObject;
var Key: Char);
begin
if Key = #13 then
begin
Key := #0;
EdtHargaObat.SetFocus;
end;
end;
procedure TFrmMain.EdtHargaObatKeyPress(Sender:
TObject;
var Key: Char);
begin
if Key = #13 then
begin
Key := #0;
81
if BtnTambahObat.Enabled = true then
BtnTambahObat.SetFocus
else BtnGantiObat.SetFocus;
end;
end;
procedure TFrmMain.BtnTambahObatClick(Sender:
TObject);
begin
if EdtNamaObat.Text = '' then
begin
MessageDlg('Nama obatnya diisi
dong.....!!!',
mtInformation, [mbOK], 0);
EdtNamaObat.SetFocus;
Exit;
end;
with DM.Query do
begin
try
Close;
SQL.Clear;
SQL.Add(' INSERT INTO OBAT (NOOBAT,
NAMAOBAT, DOSIS,'+
' ES1, ES2, LARANGAN, HARGA) '+
' VALUES (GEN_ID(ID_OBAT,1), :nama,
:dosis, '+
' :es1, :es2, :larangan, :harga)');
ParamByName('nama').AsString :=
UpperCase(trim(EdtNamaObat.Text));
ParamByName('dosis').AsString :=
trim(EdtDosisObat.Text);
ParamByName('es1').AsString :=
trim(EdtEF1Obat.Text);
ParamByName('es2').AsString :=
trim(EdtEF2Obat.Text);
82
ParamByName('larangan').AsString :=
trim(EDTLaranganObat.Text);
ParamByName('harga').AsString :=
trim(EdtHargaObat.Text);
ExecSQL;
except
MessageDlg('OBAT '+ EdtNamaObat.Text + '
sudah ada',
mtInformation,[mbOK],0);
EdtNamaObat.SetFocus;
exit;
end;
procedure TFrmMain.BtnGantiObatClick(Sender:
TObject);
begin
if EdtNamaObat.Text = '' then
begin
MessageDlg('Nama obatnya diisi
dong.....!!!',
mtInformation, [mbOK], 0);
EdtNamaObat.SetFocus;
Exit;
end;
with DM.Query do
begin
try
83
Close;
SQL.Clear;
SQL.Add(' UPDATE OBAT SET '+
' NAMAOBAT = :nama, dosis = :dosis, '+
' ES1 = :es1, ES2 = :es2, LARANGAN =
:larangan, '+
' HARGA = :harga '+
' WHERE NOOBAT = '+
LVDaftarObat.Selected.SubItems.Strings[1]);
ParamByName('nama').AsString :=
UpperCase(trim(EdtNamaObat.Text));
ParamByName('dosis').AsString :=
trim(EdtDosisObat.Text);
ParamByName('es1').AsString :=
trim(EdtEF1Obat.Text);
ParamByName('es2').AsString :=
trim(EdtEF2Obat.Text);
ParamByName('larangan').AsString :=
trim(EDTLaranganObat.Text);
ParamByName('harga').AsString :=
trim(EdtHargaObat.Text);
ExecSQL;
except
MessageDlg('OBAT '+ EdtNamaObat.Text + '
sudah ada',
mtInformation,[mbOK],0);
EdtNamaObat.SetFocus;
exit;
end;
84
BtnBersihObat.Click;
end;
procedure TFrmMain.BtnHapusObatClick(Sender:
TObject);
begin
with DM.Query do
begin
Close;
SQL.Clear;
SQL.Add(' DELETE FROM OBAT WHERE NOOBAT =
'+
LVDaftarObat.Selected.SubItems.Strings[1]);
ExecSQL;
if DM.IBTrans.Active = false then
DM.IBTrans.Active := true;
DM.IBTrans.CommitRetaining;
end;
TampilObat;
BtnBersihObat.Click;
end;
procedure TFrmMain.BtnBersihObatClick(Sender:
TObject);
begin
EdtNamaObat.Text := '';
EdtDosisObat.Text := '';
EdtEF1Obat.Text := '';
EdtEF2Obat.Text := '';
EDTLaranganObat.Text := '';
EdtHargaObat.Text := '';
BtnTambahObat.Enabled := true;
BtnGantiObat.Enabled := false;
BtnHapusObat.Enabled := false;
EdtNamaObat.SetFocus;
end;
85
procedure TFrmMain.BtnTutupObatClick(Sender:
TObject);
begin
BtnUtama.ActivePage := BPTentang;
Frame.ActivePage := PTentang;
BtnTentang.Show;
end;
procedure TFrmMain.LVDaftarObatDblClick(Sender:
TObject);
begin
if LVDaftarObat.SelCount = 0 then exit;
if LVDaftarObat.Selected.SubItems.Strings[1]
= '' then
exit;
with DM.Query do
begin
Close;
SQL.Clear;
SQL.Add(' SELECT * FROM OBAT '+
' WHERE NOOBAT = ' +
LVDaftarObat.Selected.SubItems.Strings[1]);
Open;
EdtNamaObat.Text :=
FieldByName('namaobat').AsString;
EdtDosisObat.Text :=
FieldByName('dosis').AsString;
EdtEF1Obat.Text :=
FieldByName('es1').AsString;
EdtEF2Obat.Text :=
FieldByName('es2').AsString;
EDTLaranganObat.Text :=
FieldByName('larangan').AsString;
86
EdtHargaObat.Text :=
FieldByName('harga').AsString;
end;
BtnTambahObat.Enabled := false;
BtnGantiObat.Enabled := true;
BtnHapusObat.Enabled := true;
EdtNamaObat.SetFocus;
end;
procedure TFrmMain.LVDaftarObatKeyPress(Sender:
TObject;
var Key: Char);
begin
if key = #13 then
begin
key := #0;
LVDaftarObat.OnDblClick(Sender);
end;
end;
procedure TFrmMain.CmbSawanGSKeyDown(Sender:
TObject;
var Key: Word; Shift: TShiftState);
begin
if Key = (VK_DELETE) then
begin
key := 0;
exit;
end;
end;
procedure TFrmMain.CmbSawanGSKeyPress(Sender:
TObject;
var Key: Char);
begin
FrmCampuran.PilihEdit(CmbSawanGS, EdtCFGS,
Key);
87
end;
88
procedure TFrmMain.EdtCFGSExit(Sender:
TObject);
begin
FrmCampuran.ExitCF(EdtCFGS);
end;
procedure TFrmMain.EdtCFGSKeyPress(Sender:
TObject;
var Key: Char);
begin
if key = #13 then
begin
Key := #0;
CmbGejalaGS.SetFocus;
end else if not ((key in ['0' .. '9'])
or (key = #8) or (key = #46)
or (key = #44)) then key := #0;
end;
procedure TFrmMain.CmbGejalaGSKeyDown(Sender:
TObject;
var Key: Word; Shift: TShiftState);
begin
if Key = (VK_DELETE) then
begin
key := 0;
exit;
end;
end;
procedure TFrmMain.CmbGejalaGSKeyPress(Sender:
TObject;
var Key: Char);
begin
FrmCampuran.PilihButton(CmbGejalaGS,
BtnMasukGS, Key);
end;
89
procedure TFrmMain.BtnMasukGSClick(Sender:
TObject);
var Daftar : TlistItem;
begin
if CmbGejalaGS.ItemIndex = -1 then
begin
MessageDlg('Gejala belum dipilih
lho....!!!',
mtInformation, [mbOK], 0);
CmbGejalaGS.SetFocus;
exit;
end;
LblJikaGS.Caption := 'DAN';
Daftar := LVGS.Items.Add;
if LVGS.Items.Count <= 1 then
Daftar.Caption := 'JIKA mengalami gejala '
+
CmbGejalaGS.Text
else Daftar.Caption := 'DAN mengalami gejala
' +
CmbGejalaGS.Text;
Daftar.SubItems.
Add(KodeGejalaGS.Strings[NamaGejalaGS.
IndexOf(CmbGejalaGS.Text)]);
//kodegejala
CmbGejalaGS.Items.Delete(CmbGejalaGS.ItemIndex)
;
CmbGejalaGS.Text := '';
CmbGejalaGS.ItemIndex := -1;
CmbGejalaGS.SetFocus;
end;
procedure TFrmMain.BtnTambahGSClick(Sender:
TObject);
90
var i : integer;
begin
if CmbSawanGS.Text = '' then
begin
MessageDlg('NAMA SAWAN belum dipilih!',
mtInformation, [mbOK], 0);
CmbSawanGS.SetFocus;
Exit;
end;
for i := 1 to LVGS.Items.Count - 1 do
begin
try
91
Close;
SQL.Clear;
SQL.Add(
' INSERT INTO GEJALASAWAN '+
' (RULE, NOSAWAN, CFSAWAN, NOGEJALA)
'+
' VALUES (GEN_ID(ID_RULE,0), '+
KodeSawanGS.Strings[NamaSawanGS.
IndexOf(CmbSawanGS.Text)] + ', ' +
IBCF(EdtCFGS) + ', '+
LVGS.Items[i].SubItems.Strings[0] +
')');
ExecSQL;
except
end;
end;
end;
if DM.IBTrans.Active = false then
DM.IBTrans.Active := true;
DM.IBTrans.CommitRetaining;
Application.ProcessMessages;
BtnBersihGS.Click;
end;
procedure TFrmMain.BtnBersihGSClick(Sender:
TObject);
begin
CmbSawanGS.ItemIndex := -1;
EdtCFGS.Text := '';
LVGS.Items.Clear;
LblJikaGS.Caption := 'JIKA';
CmbGejalaGS.Items.Clear;
CmbGejalaGS.Items.Assign(NamaGejalaGS);
CmbGejalaGS.ItemIndex := -1;
CmbSawanGS.SetFocus;
end;
92
procedure TFrmMain.BtnTutupGSClick(Sender:
TObject);
begin
BtnUtama.ActivePage := BPTentang;
Frame.ActivePage := PTentang;
BtnTentang.Show;
end;
procedure TFrmMain.CmbEpilepsiAEpilepsiKeyDown(
Sender: TObject; var Key: Word; Shift:
TShiftState);
begin
if Key = (VK_DELETE) then
begin
key := 0;
exit;
end;
end;
procedure
TFrmMain.CmbEpilepsiAEpilepsiKeyPress(
Sender: TObject; var Key: Char);
begin
FrmCampuran.PilihEdit(CmbEpilepsiAEpilepsi,
EdtCFEpilepsi, Key);
end;
procedure TFrmMain.EdtCFEpilepsiExit(Sender:
TObject);
begin
FrmCampuran.ExitCF(EdtCFEpilepsi);
end;
procedure
TFrmMain.EdtCFEpilepsiKeyPress(Sender: TObject;
var Key: Char);
begin
93
if key = #13 then
begin
Key := #0;
PCEpilepsi.ActivePage := TSSawanEpilepsi;
CmbSawanEpilepsi.SetFocus;
end else if not ((key in ['0' .. '9'])
or (key = #8)
or (key = #46)
or (key = #44)) then key := #0;
end;
procedure
TFrmMain.CmbSawanEpilepsiKeyDown(Sender:
TObject;
var Key: Word; Shift: TShiftState);
begin
if Key = (VK_DELETE) then
begin
key := 0;
exit;
end;
end;
procedure
TFrmMain.CmbSawanEpilepsiKeyPress(Sender:
TObject;
var Key: Char);
begin
FrmCampuran.PilihButton(CmbSawanEpilepsi,
BtnMasukSEpilepsi, Key);
end;
procedure
TFrmMain.BtnMasukSEpilepsiClick(Sender:
TObject);
var Daftar : TlistItem;
begin
94
if CmbSawanEpilepsi.ItemIndex = -1 then
begin
MessageDlg('SAWAN belum dipilih
lho....!!!',
mtInformation, [mbOK], 0);
CmbSawanEpilepsi.SetFocus;
exit;
end;
LblJikaAEpilepsi.Caption := 'DAN';
Daftar := LVEpilepsi.Items.Add;
if LVEpilepsi.Items.Count <= 1 then
Daftar.Caption := 'JIKA mengalami sawan '
+
CmbSawanEpilepsi.Text
else Daftar.Caption := 'DAN mengalami sawan '
+
CmbSawanEpilepsi.Text;
Daftar.SubItems.Add('0'); //masuk ke penyakit
Daftar.SubItems.
Add(KodeSawanAE.Strings[NamaSawanAE.
IndexOf(CmbSawanEpilepsi.Text)]);
//kodesawan
CmbSawanEpilepsi.Items.Delete(
CmbSawanEpilepsi.ItemIndex);
CmbSawanEpilepsi.ItemIndex := -1;
CmbSawanEpilepsi.SetFocus;
end;
95
procedure
TFrmMain.CmbSyaratEpilepsiKeyDown(Sender:
TObject;
var Key: Word; Shift: TShiftState);
begin
if Key = (VK_DELETE) then
begin
key := 0;
exit;
end;
end;
procedure
TFrmMain.CmbSyaratEpilepsiKeyPress(Sender:
TObject;
var Key: Char);
begin
FrmCampuran.PilihEdit(CmbSyaratEpilepsi,
EdtNilaiAEpilepsi, Key);
end;
procedure
TFrmMain.EdtNilaiAEpilepsiKeyPress(Sender:
TObject;
var Key: Char);
begin
if key = #13 then
begin
Key := #0;
BtnMasukLEpilepsi.SetFocus;
end;
end;
procedure
TFrmMain.BtnMasukLEpilepsiClick(Sender:
TObject);
var Daftar : TlistItem;
begin
96
if CmbSyaratEpilepsi.ItemIndex = -1 then
begin
MessageDlg('SYARAT LAIN belum dipilih
lho....!!!',
mtInformation, [mbOK], 0);
CmbSyaratEpilepsi.SetFocus;
exit;
end;
LblJikaAEpilepsi.Caption := 'DAN';
Daftar := LVEpilepsi.Items.Add;
if LVEpilepsi.Items.Count <= 1 then
Daftar.Caption := 'JIKA ' +
CmbSyaratEpilepsi.Text + ' : ' +
EdtNilaiAEpilepsi.Text
else Daftar.Caption := 'DAN ' +
CmbSyaratEpilepsi.Text + ' : ' +
EdtNilaiAEpilepsi.Text;
Daftar.SubItems.Add('1'); //masuk ke final
Daftar.SubItems.
Add(KodeSyaratAE.Strings[NamaSyaratAE.
IndexOf(CmbSyaratEpilepsi.Text)]);
//kodesyarat
Daftar.SubItems.Add(EdtNilaiAEpilepsi.Text); //
nilai
CmbSyaratEpilepsi.Items.Delete(
CmbSyaratEpilepsi.ItemIndex);
CmbSyaratEpilepsi.ItemIndex := -1;
EdtNilaiAEpilepsi.Text := '';
CmbSyaratEpilepsi.SetFocus;
end;
procedure
TFrmMain.BtnTambahAEpilepsiClick(Sender:
TObject);
var i : integer;
begin
97
if CmbEpilepsiAEpilepsi.Text = '' then
begin
MessageDlg('EPILEPSI belum dipilih!',
mtInformation, [mbOK], 0);
CmbEpilepsiAEpilepsi.SetFocus;
Exit;
end;
98
' INSERT INTO FINAL '+
' (RULE, NOEPILEPSI, CFEPILEPSI,
NOLAIN, NILAI) '+
' VALUES (GEN_ID(ID_RULE,1), '+
KodeEpilepsiAE.Strings[NamaEpilepsiAE.
IndexOf(CmbEpilepsiAEpilepsi.Text)] +
', ' + IBCF(EdtCFEpilepsi) + ', '+
LVEpilepsi.Items[0].
SubItems.Strings[1] + ', :nilai )');
ParamByName('nilai').AsString :=
LVEpilepsi.Items[0].SubItems.Strings[2];
end;
ExecSQL;
for i := 1 to LVEpilepsi.Items.Count - 1 do
begin
try
Close;
SQL.Clear;
if
LVEpilepsi.Items[i].SubItems.Strings[0] = '0'
then
SQL.Add(
' INSERT INTO PENYAKIT '+
' (RULE, NOEPILEPSI, CFEPILEPSI,
NOSAWAN) '+
' VALUES (GEN_ID(ID_RULE,0), '+
KodeEpilepsiAE.Strings[NamaEpilepsiAE.
IndexOf(CmbEpilepsiAEpilepsi.Text)] +
', ' + IBCF(EdtCFEpilepsi) + ', '+
LVEpilepsi.Items[i].SubItems.Strings[1] + ')')
else
begin
99
SQL.Add(
' INSERT INTO FINAL '+
' (RULE, NOEPILEPSI, CFEPILEPSI,
NOLAIN, NILAI) '+
' VALUES (GEN_ID(ID_RULE,0), '+
KodeEpilepsiAE.Strings[NamaEpilepsiAE.
IndexOf(CmbEpilepsiAEpilepsi.Text)] +
', ' + IBCF(EdtCFEpilepsi) + ', '+
LVEpilepsi.Items[i].SubItems.Strings[1] +
', :nilai )');
ParamByName('nilai').AsString :=
LVEpilepsi.Items[i].SubItems.Strings[2];
end;
ExecSQL;
except
end;
end;
end;
if DM.IBTrans.Active = false then
DM.IBTrans.Active := true;
DM.IBTrans.CommitRetaining;
Application.ProcessMessages;
BtnBersihAEpilepsi.Click;
end;
procedure
TFrmMain.BtnBersihAEpilepsiClick(Sender:
TObject);
begin
CmbEpilepsiAEpilepsi.ItemIndex := -1;
EdtCFEpilepsi.Text := '';
LVEpilepsi.Items.Clear;
LblJikaAEpilepsi.Caption := 'JIKA';
100
PCEpilepsi.ActivePage := TSSawanEpilepsi;
CmbSawanEpilepsi.Items.Clear;
CmbSawanEpilepsi.Items.Assign(NamaSawanAE);
CmbSawanEpilepsi.ItemIndex := -1;
CmbSyaratEpilepsi.Items.Clear;
CmbSyaratEpilepsi.Items.Assign(NamaSyaratAE);
CmbSyaratEpilepsi.ItemIndex := -1;
EdtNilaiAEpilepsi.Text := '';
CmbEpilepsiAEpilepsi.SetFocus;
end;
procedure
TFrmMain.BtnTutupAEpilepsiClick(Sender:
TObject);
begin
BtnUtama.ActivePage := BPTentang;
Frame.ActivePage := PTentang;
BtnTentang.Show;
end;
procedure
TFrmMain.CmbNEpilepsiNEKeyDown(Sender: TObject;
var Key: Word; Shift: TShiftState);
begin
if Key = (VK_DELETE) then
begin
key := 0;
exit;
end;
end;
procedure TFrmMain.CmbNEpilepsiNEKeyPress(
Sender: TObject; var Key: Char);
begin
FrmCampuran.PilihEdit(CmbNEpilepsiNE,
EdtCFNEpilepsi, Key);
end;
101
procedure TFrmMain.EdtCFNEpilepsiExit(Sender:
TObject);
begin
FrmCampuran.ExitCF(EdtCFNEpilepsi);
end;
procedure
TFrmMain.EdtCFNEpilepsiKeyPress(Sender:
TObject;
var Key: Char);
begin
if key = #13 then
begin
Key := #0;
PCNEpilepsi.ActivePage :=
TSGejalaNEpilepsi;
CmbGejalaNEpilepsi.SetFocus;
end else if not ((key in ['0' .. '9'])
or (key = #8)
or (key = #46)
or (key = #44)) then key := #0;
end;
procedure
TFrmMain.CmbGejalaNEpilepsiKeyPress(Sender:
TObject;
var Key: Char);
begin
FrmCampuran.PilihButton(CmbGejalaNEpilepsi,
BtnMasukGejalaNEpilepsi,Key)
end;
procedure
TFrmMain.BtnMasukGejalaNEpilepsiClick(Sender:
TObject);
var Daftar : TlistItem;
begin
102
if CmbGejalaNEpilepsi.ItemIndex = -1 then
begin
MessageDlg('GEJALA belum dipilih
lho....!!!',
mtInformation, [mbOK], 0);
CmbGejalaNEpilepsi.SetFocus;
exit;
end;
LblJikaNE.Caption := 'DAN';
Daftar := LVNEpilepsi.Items.Add;
if LVNEpilepsi.Items.Count <= 1 then
Daftar.Caption := 'JIKA mengalami gejala '
+
CmbGejalaNEpilepsi.Text
else Daftar.Caption := 'DAN mengalami gejala
' +
CmbGejalaNEpilepsi.Text;
Daftar.SubItems.Add('0'); //masuk ke
penyakitnoneipilepsi
Daftar.SubItems.
Add(KodeGejalaANE.Strings[NamaGejalaANE.
IndexOf(CmbGejalaNEpilepsi.Text)]);
//kodegejala
CmbGejalaNEpilepsi.Items.Delete(CmbGejalaNEpile
psi.ItemIndex);
CmbGejalaNEpilepsi.ItemIndex := -1;
CmbGejalaNEpilepsi.SetFocus;
end;
procedure
TFrmMain.CmbSyaratNEpilepsiKeyDown(Sender:
TObject;
var Key: Word; Shift: TShiftState);
begin
103
if Key = (VK_DELETE) then
begin
key := 0;
exit;
end;
end;
procedure
TFrmMain.CmbSyaratNEpilepsiKeyPress(Sender:
TObject;
var Key: Char);
begin
FrmCampuran.PilihEdit(CmbSyaratNEpilepsi,
EdtNilaiNEpilepsi, Key);
end;
procedure
TFrmMain.EdtNilaiNEpilepsiKeyPress(Sender:
TObject;
var Key: Char);
begin
if key = #13 then
begin
Key := #0;
BtnMasukNEpilepsi.SetFocus;
end;
end;
procedure
TFrmMain.BtnMasukNEpilepsiClick(Sender:
TObject);
var Daftar : TlistItem;
begin
if CmbSyaratNEpilepsi.ItemIndex = -1 then
begin
MessageDlg('SYARAT LAIN belum dipilih
lho....!!!',
104
mtInformation, [mbOK], 0);
CmbSyaratNEpilepsi.SetFocus;
exit;
end;
LblJikaNE.Caption := 'DAN';
Daftar := LVNEpilepsi.Items.Add;
if LVNEpilepsi.Items.Count <= 1 then
Daftar.Caption := 'JIKA ' +
CmbSyaratNEpilepsi.Text + ' : ' +
EdtNilaiNEpilepsi.Text
else Daftar.Caption := 'DAN ' +
CmbSyaratNEpilepsi.Text + ' : ' +
EdtNilaiNEpilepsi.Text;
Daftar.SubItems.Add('1'); //masuk ke finalnon
epilepsi
Daftar.SubItems.
Add(KodeSyaratANE.Strings[NamaSyaratANE.
IndexOf(CmbSyaratNEpilepsi.Text)]);
//kodesyarat
Daftar.SubItems.Add(EdtNilaiNEpilepsi.Text); //
nilai
CmbSyaratNEpilepsi.Items.Delete(CmbSyaratNEpile
psi.ItemIndex);
CmbSyaratNEpilepsi.ItemIndex := -1;
EdtNilaiNEpilepsi.Text := '';
CmbSyaratNEpilepsi.SetFocus;
end;
procedure
TFrmMain.BtnTambahNEpilepsiClick(Sender:
TObject);
var i : integer;
begin
if CmbNEpilepsiNE.Text = '' then
105
begin
MessageDlg('Penyakit Non EPILEPSI belum
dipilih!',
mtInformation, [mbOK], 0);
CmbNEpilepsiNE.SetFocus;
Exit;
end;
KodeNEpilepsiANE.Strings[NamaNEpilepsiANE.
IndexOf(CmbNEpilepsiNE.Text)] +
', ' + IBCF(EdtCFNEpilepsi) + ', '+
LVNEpilepsi.Items[0].SubItems.Strings[1] + ')')
else
106
begin
SQL.Add(
' INSERT INTO FINALNONEPILEPSI '+
' (RULE, NONONEPILEPSI, CFNONEPILEPSI,
NOLAIN, NILAI) '+
' VALUES (GEN_ID(ID_RULE,1), '+
KodeNEpilepsiANE.Strings[NamaNEpilepsiANE.
IndexOf(CmbNEpilepsiNE.Text)] +
', ' + IBCF(EdtCFNEpilepsi) + ', '+
LVNEpilepsi.Items[0].SubItems.Strings[1] +
', :nilai )');
ParamByName('nilai').AsString :=
LVNEpilepsi.Items[0].SubItems.Strings[2];
end;
ExecSQL;
for i := 1 to LVNEpilepsi.Items.Count - 1
do
begin
try
Close;
SQL.Clear;
if
LVNEpilepsi.Items[i].SubItems.Strings[0] = '0'
then
SQL.Add(
' INSERT INTO PENYAKITNONEPILEPSI
'+
' (RULE, NONONEPILEPSI,
CFNONEPILEPSI, NOGEJALA) '+
' VALUES (GEN_ID(ID_RULE,0), '+
KodeNEpilepsiANE.Strings[NamaNEpilepsiANE.
IndexOf(CmbNEpilepsiNE.Text)] +
107
', ' + IBCF(EdtCFNEpilepsi) + ', '+
LVNEpilepsi.Items[i].SubItems.Strings[1] + ')')
else
begin
SQL.Add(
' INSERT INTO FINALNONEPILEPSI '+
' (RULE,NONONEPILEPSI,
CFNONEPILEPSI, NOLAIN, NILAI)'+
' VALUES (GEN_ID(ID_RULE,0), '+
KodeNEpilepsiANE.Strings[NamaNEpilepsiANE.
IndexOf(CmbNEpilepsiNE.Text)] +
', ' + IBCF(EdtCFNEpilepsi) + ', '+
LVNEpilepsi.Items[i].SubItems.Strings[1]+',:nil
ai)');
ParamByName('nilai').AsString :=
LVNEpilepsi.Items[i].SubItems.Strings[2];
end;
ExecSQL;
except
end;
end;
end;
if DM.IBTrans.Active = false then
DM.IBTrans.Active := true;
DM.IBTrans.CommitRetaining;
Application.ProcessMessages;
BtnBersihNEpilepsi.Click;
end;
procedure
TFrmMain.BtnBersihNEpilepsiClick(Sender:
TObject);
begin
108
CmbNEpilepsiNE.ItemIndex := -1;
EdtCFNEpilepsi.Text := '';
LVNEpilepsi.Items.Clear;
LblJikaNE.Caption := 'JIKA';
PCNEpilepsi.ActivePage := TSGejalaNEpilepsi;
CmbGejalaNEpilepsi.Items.Clear;
CmbGejalaNEpilepsi.Items.Assign(NamaGejalaANE);
CmbGejalaNEpilepsi.ItemIndex := -1;
CmbSyaratNEpilepsi.Items.Clear;
CmbSyaratNEpilepsi.Items.Assign(NamaSyaratANE);
CmbSyaratNEpilepsi.ItemIndex := -1;
EdtNilaiNEpilepsi.Text := '';
CmbNEpilepsiNE.SetFocus;
end;
procedure
TFrmMain.BtnTutupNEpilepsiClick(Sender:
TObject);
begin
BtnUtama.ActivePage := BPTentang;
Frame.ActivePage := PTentang;
BtnTentang.Show;
end;
procedure TFrmMain.CmbObatTEKeyDown(Sender:
TObject;
var Key: Word; Shift: TShiftState);
begin
if Key = (VK_DELETE) then
begin
key := 0;
exit;
end;
end;
109
procedure TFrmMain.CmbObatTEKeyPress(Sender:
TObject;
var Key: Char);
begin
FrmCampuran.PilihCombo(CmbObatTE,
CmbEpilepsiTE, Key);
end;
procedure TFrmMain.CmbEpilepsiTEKeyDown(Sender:
TObject;
var Key: Word; Shift: TShiftState);
begin
if Key = (VK_DELETE) then
begin
key := 0;
exit;
end;
end;
procedure
TFrmMain.CmbEpilepsiTEKeyPress(Sender: TObject;
var Key: Char);
begin
FrmCampuran.PilihEdit(CmbEpilepsiTE,
EdtCF1TE, Key);
end;
procedure TFrmMain.EdtCF1TEExit(Sender:
TObject);
begin
FrmCampuran.ExitCF(EdtCF1TE);
end;
110
procedure TFrmMain.EdtCF1TEKeyPress(Sender:
TObject;
var Key: Char);
begin
if key = #13 then
begin
Key := #0;
EdtCf2TE.SetFocus;
end else if not ((key in ['0' .. '9'])
or (key = #8)or (key = #46)
or (key = #44)) then key := #0;
end;
procedure TFrmMain.EdtCf2TEExit(Sender:
TObject);
begin
FrmCampuran.ExitCF(EdtCf2TE);
end;
procedure TFrmMain.EdtCf2TEKeyPress(Sender:
TObject;
var Key: Char);
begin
if key = #13 then
begin
Key := #0;
BtnTambahTE.SetFocus;
end else if not ((key in ['0' .. '9'])
or (key = #8) or (key = #46)
or (key = #44)) then key := #0;
end;
procedure TFrmMain.BtnTambahTEClick(Sender:
TObject);
begin
if CmbObatTE.Text = '' then
begin
111
MessageDlg('OBAT belum dipilih!',
mtInformation, [mbOK], 0);
CmbObatTE.SetFocus;
Exit;
end;
with DM.Query do
begin
Close;
SQL.Clear;
SQL.Add(
' INSERT INTO TERAPI '+
' (RULE, NOOBAT, NOEPILEPSI, CFTOTAL1,
CFTOTAL2) '+
' VALUES (GEN_ID(ID_RULE,1), '+
KodeObatTE.Strings[NamaObatTE.
IndexOf(CmbObatTE.Text)] + ', ' +
KodeEpilepsiTE.Strings[NamaEpilepsiTE.
IndexOf(CmbEpilepsiTE.Text)] +
', ' + FrmCampuran.IBCF(EdtCF1TE) + ', '
+
FrmCampuran.IBCF(EdtCF2TE) + ')');
ExecSQL;
if DM.IBTrans.Active = false then
DM.IBTrans.Active := true;
DM.IBTrans.CommitRetaining;
Application.ProcessMessages;
BtnBersihTE.Click;
end;
112
end;
procedure TFrmMain.BtnBersihTEClick(Sender:
TObject);
begin
CmbObatTE.ItemIndex := -1;
CmbEpilepsiTE.ItemIndex := -1;
EdtCF1TE.Text := '';
EdtCf2TE.Text := '';
CmbObatTE.SetFocus;
end;
procedure TFrmMain.BtnTutupTEClick(Sender:
TObject);
begin
BtnUtama.ActivePage := BPTentang;
Frame.ActivePage := PTentang;
BtnTentang.Show;
end;
procedure TFrmMain.CmbObatNEKeyDown(Sender:
TObject;
var Key: Word; Shift: TShiftState);
begin
if Key = (VK_DELETE) then
begin
key := 0;
exit;
end;
end;
procedure TFrmMain.CmbObatNEKeyPress(Sender:
TObject;
var Key: Char);
begin
FrmCampuran.PilihCombo(CmbObatNE, CmbNETNE,
Key)
113
end;
procedure TFrmMain.CmbNETNEKeyDown(Sender:
TObject;
var Key: Word; Shift: TShiftState);
begin
if Key = (VK_DELETE) then
begin
key := 0;
exit;
end;
end;
procedure TFrmMain.CmbNETNEKeyPress(Sender:
TObject;
var Key: Char);
begin
FrmCampuran.PilihEdit(CmbNETNE, EdtCF1TNE,
Key)
end;
procedure TFrmMain.EdtCF1TNEExit(Sender:
TObject);
begin
FrmCampuran.ExitCF(EdtCF1TNE);
end;
procedure TFrmMain.EdtCF1TNEKeyPress(Sender:
TObject;
var Key: Char);
begin
if key = #13 then
begin
Key := #0;
EdtCF2TNE.SetFocus;
end else if not ((key in ['0' .. '9'])
or (key = #8)
114
or (key = #46)
or (key = #44)) then key := #0;
end;
procedure TFrmMain.EdtCF2TNEExit(Sender:
TObject);
begin
FrmCampuran.ExitCF(EdtCF2TNE);
end;
procedure TFrmMain.EdtCF2TNEKeyPress(Sender:
TObject;
var Key: Char);
begin
if key = #13 then
begin
Key := #0;
BtnTambahTNE.SetFocus;
end else if not ((key in ['0' .. '9'])
or (key = #8)
or (key = #46)
or (key = #44)) then key := #0;
end;
procedure TFrmMain.BtnTambahTNEClick(Sender:
TObject);
begin
if CmbObatNE.Text = '' then
begin
MessageDlg('OBAT belum dipilih!',
mtInformation, [mbOK], 0);
CmbObatNE.SetFocus;
Exit;
end;
115
MessageDlg('PENYAKIT belum dipilih!',
mtInformation, [mbOK], 0);
CmbNETNE.SetFocus;
Exit;
end;
with DM.Query do
begin
Close;
SQL.Clear;
SQL.Add(
' INSERT INTO TERAPI '+
' (RULE, NOOBAT, NONONEPILEPSI, CFTOTAL1,
CFTOTAL2) '+
' VALUES (GEN_ID(ID_RULE,1), '+
KodeObatTNE.Strings[NamaObatTNE.
IndexOf(CmbObatNE.Text)] + ', ' +
KodeEpilepsiTNE.Strings[NamaEpilepsiTNE.
IndexOf(CmbNETNE.Text)] +
', ' + FrmCampuran.IBCF(EdtCF1TNE) + ', '
+
FrmCampuran.IBCF(EdtCF2TNE) + ')');
ExecSQL;
if DM.IBTrans.Active = false then
DM.IBTrans.Active := true;
DM.IBTrans.CommitRetaining;
Application.ProcessMessages;
BtnBersihTNE.Click;
end;
end;
procedure TFrmMain.BtnBersihTNEClick(Sender:
TObject);
begin
CmbObatNE.ItemIndex := -1;
CmbNEpilepsiNE.ItemIndex := -1;
EdtCF1TNE.Text := '';
116
EdtCF2TNE.Text := '';
CmbObatNE.SetFocus;
end;
procedure TFrmMain.BtnTutupTNEClick(Sender:
TObject);
begin
BtnUtama.ActivePage := BPTentang;
Frame.ActivePage := PTentang;
BtnTentang.Show;
end;
procedure
TFrmMain.CmbJenisAturanKeyDown(Sender: TObject;
var Key: Word; Shift: TShiftState);
begin
if Key = (VK_DELETE) then
begin
key := 0;
exit;
end;
end;
117
procedure TFrmMain.CmbJenisAturanKeyPress(
Sender: TObject; var Key: Char);
begin
FrmCampuran.PilihButton(CmbJenisAturan,
BtnTampilAturan, Key);
end;
procedure TFrmMain.LVDaftarAturanClick(Sender:
TObject);
begin
if (LVDaftarAturan.SelCount <> 0) and
(LVDaftarAturan.Selected.Caption <> '' )
then
BtnHapusAturan.Enabled := true
else BtnHapusAturan.Enabled := false;
end;
procedure
TFrmMain.LVDaftarAturanKeyPress(Sender:
TObject;
var Key: Char);
begin
LVDaftarAturan.OnClick(sender);
end;
procedure TFrmMain.BtnTampilAturanClick(Sender:
TObject);
var rule : string;
jumlah : integer;
epil : TListItem;
procedure GSawan;
begin
with DM.Query, FrmCampuran, LVDaftarAturan
do
begin
// cari dari gejala sawan
118
cariQ(' SELECT B.RULE, S.NAMASAWAN,
G.NAMAGEJALA, '+
' G.KETERANGAN, B.CFSAWAN '+
' FROM GEJALASAWAN B, SAWAN S, GEJALA G
'+
' WHERE B.NOGEJALA = G.NOGEJALA '+
' AND B.NOSAWAN = S.NOSAWAN '+
' ORDER BY B.RULE, S.NOSAWAN');
119
epil.SubItems.Add(FieldByName('Rule').AsString)
;
epil.SubItems.Add('0'); // dari
gejalasawan
epil := Items.Add;
epil.Caption := '';
epil.SubItems.Add('JIKA mengalami
gejala '+
FieldByName('namagejala').AsString );
epil.SubItems.Add(FieldByName('Rule').AsString)
;
epil.SubItems.Add('0'); // dari
gejalasawan
DM.Query.next;
FieldByName('namagejala').AsString );
epil.SubItems.Add(FieldByName('Rule').AsString)
;
epil.SubItems.Add('0'); // dari
gejalasawan
DM.Query.next;
end;
Application.ProcessMessages;
120
if Application.Terminated or
(BtnTampilAturan.Tag = 0) then
begin
pgbtampil.Visible := false;
Exit;
end;
if pgbtampil.Position < 1000 then
pgbtampil.Position :=
pgbtampil.Position + 1 else
pgbtampil.Position := 0;
end;
end;
end;
Procedure PEpilepsi;
begin
with DM.Query, FrmCampuran, LVDaftarAturan
do
begin
121
epil := Items.Add;
epil.Caption := '';
epil.SubItems.
Add('A T U R A N P E N Y A K I T E
P I L E P S I');
epil.SubItems.Add('');
epil.SubItems.Add('');
epil := Items.Add;
epil.Caption := '';
epil.SubItems.Add('');
epil.SubItems.Add('');
epil.SubItems.Add('');
end;
epil.SubItems.Add(FieldByName('Rule').AsString)
;
epil.SubItems.Add('1'); // dari
penyakit
epil := Items.Add;
epil.Caption := '';
122
epil.SubItems.Add('JIKA mengalami sawan
'+
FieldByName('namasawan').AsString);
epil.SubItems.Add(FieldByName('Rule').AsString)
;
epil.SubItems.Add('1'); // dari
penyakit
DM.Query.next;
FieldByName('namasawan').AsString);
epil.SubItems.Add(FieldByName('Rule').AsString)
;
epil.SubItems.Add('1'); // dari
penyakit
DM.Query.next;
end;
with DM.Query1 do
begin
cariQ1(' SELECT F.RULE, L.NAMALAIN,
'+
' E.NAMAEPILEPSI, F.CFEPILEPSI,
F.NILAI '+
123
' FROM FINAL F, PENYAKIT P, LAIN L,
EPILEPSI E'+
' WHERE F.NOEPILEPSI = E.NOEPILEPSI
'+
' AND P.NOEPILEPSI = E.NOEPILEPSI '+
' AND F.NOLAIN = L.NOLAIN '+
' AND F.RULE = P.RULE '+
' AND F.RULE = '+ RULE +
' GROUP BY F.RULE, L.NAMALAIN,
E.NAMAEPILEPSI, '+
' F.CFEPILEPSI, F.NILAI');
FieldByName('nilai').AsString );
epil.SubItems.Add(FieldByName('Rule').AsString)
;
epil.SubItems.Add('1'); // dari
final
DM.Query1.next;
Application.ProcessMessages;
if Application.Terminated or
(BtnTampilAturan.Tag = 0) then
begin
pgbtampil.Visible := false;
Exit;
end;
if pgbtampil.Position < 1000 then
pgbtampil.Position :=
pgbtampil.Position + 1 else
124
pgbtampil.Position := 0;
end;
end;
end;
end;
125
epil.SubItems.Add('');
epil := Items.Add;
epil.Caption := '';
epil.SubItems.Add('');
epil.SubItems.Add('');
epil.SubItems.Add('');
end;
epil.SubItems.Add(FieldByName('Rule').AsString)
;
epil.SubItems.Add('2'); // dari final
non penyakit
epil := Items.Add;
epil.Caption := '';
epil.SubItems.Add('JIKA ' +
FieldByName('namalain').AsString +
' ' +
FieldByName('nilai').AsString );
epil.SubItems.Add(FieldByName('Rule').AsString)
;
126
epil.SubItems.Add('2'); // dari final
noen epilepsi
DM.Query1.next;
epil.SubItems.Add(FieldByName('Rule').AsString)
;
epil.SubItems.Add('2'); // dari final
noen epilepsi
DM.Query1.next;
end;
Application.ProcessMessages;
if Application.Terminated or
(BtnTampilAturan.Tag = 0) then
begin
pgbtampil.Visible := false;
Exit;
end;
if pgbtampil.Position < 1000 then
pgbtampil.Position :=
pgbtampil.Position + 1 else
pgbtampil.Position := 0;
end;
end;
end;
procedure PNonEpilepsi;
127
begin
with DM.Query, FrmCampuran, LVDaftarAturan
do
begin
// cari dari penyakit non epilepsi
cariQ(' SELECT P.RULE, G.NAMAGEJALA, '+
' E.NAMANONEPILEPSI, P.CFNONEPILEPSI
'+
' FROM PENYAKITNONEPILEPSI P, GEJALA
G, '+
' NONEPILEPSI E'+
' WHERE P.NONONEPILEPSI =
E.NONONEPILEPSI '+
' AND P.NOGEJALA = G.NOGEJALA '+
' ORDER BY NONONEPILEPSI ');
128
while not eof do
begin
inc(jumlah);
rule := FieldByName('Rule').AsString;
epil := Items.Add;
epil.Caption := 'Aturan ' +
FieldByName('Rule').AsString;
epil.SubItems.Add('Menderita epilepsi
"' +
FieldByName('NamaNonEpilepsi').AsString +
'" dengan CF '+ FormatFloat('0.00',
FieldByName('CFNonEpilepsi').AsFloat));
epil.SubItems.Add(FieldByName('Rule').AsString)
;
epil.SubItems.Add('3'); // dari
penyakit non epilepsi
epil := Items.Add;
epil.Caption := '';
epil.SubItems.Add('JIKA mengalami
gejala '+
FieldByName('namagejala').AsString);
epil.SubItems.Add(FieldByName('Rule').AsString)
;
epil.SubItems.Add('3'); // dari
penyakit non epilepsi
DM.Query.next;
129
begin
epil := Items.Add;
epil.Caption := '';
epil.SubItems.Add('DAN mengalami
gejala '+
FieldByName('namagejala').AsString);
epil.SubItems.Add(FieldByName('Rule').AsString)
;
epil.SubItems.Add('3'); // dari
penyakit non epilepsi
DM.Query.next;
end;
with DM.Query1 do
begin
cariQ1(' SELECT F.RULE, L.NAMALAIN,
'+
' E.NAMANONEPILEPSI, '+
' F.CFNONEPILEPSI, F.NILAI '+
' FROM FINALNONEPILEPSI F,
PENYAKITNONEPILEPSI P, '+
' LAIN L, NONEPILEPSI E'+
' WHERE F.NONONEPILEPSI =
E.NONONEPILEPSI '+
' AND P.NONONEPILEPSI =
E.NONONEPILEPSI '+
' AND F.NOLAIN = L.NOLAIN '+
' AND F.RULE = P.RULE '+
' AND F.RULE = '+ RULE +
' GROUP BY F.RULE, L.NAMALAIN,
E.NAMANONEPILEPSI, '+
' F.CFNONEPILEPSI, F.NILAI ');
130
epil := Items.Add;
epil.Caption := '';
epil.SubItems.Add('DAN '+
DM.Query1.FieldByName('namalain').AsString + '
' +
DM.Query1.FieldByName('nilai').AsString );
epil.SubItems.Add(FieldByName('Rule').AsString)
;
epil.SubItems.Add('3'); // dari
finalnonepilepsi
DM.Query1.next;
Application.ProcessMessages;
if Application.Terminated or
(BtnTampilAturan.Tag = 0) then
begin
pgbtampil.Visible := false;
Exit;
end;
if pgbtampil.Position < 1000 then
pgbtampil.Position :=
pgbtampil.Position + 1 else
pgbtampil.Position := 0;
end;
end;
Application.ProcessMessages;
if Application.Terminated or
(BtnTampilAturan.Tag = 0) then
begin
pgbtampil.Visible := false;
Exit;
end;
if pgbtampil.Position < 1000 then
131
pgbtampil.Position :=
pgbtampil.Position + 1 else
pgbtampil.Position := 0;
end;
end;
132
epil.SubItems.
Add('A T U R A N P E N Y A K I T N
O N '+
' E P I L E P S I');
epil.SubItems.Add('');
epil.SubItems.Add('');
epil := Items.Add;
epil.Caption := '';
epil.SubItems.Add('');
epil.SubItems.Add('');
epil.SubItems.Add('');
end;
FieldByName('NamaNonEpilepsi').AsString +
'" dengan CF '+ FormatFloat('0.00',
FieldByName('CFNonEpilepsi').AsFloat));
epil.SubItems.Add(FieldByName('Rule').AsString)
;
epil.SubItems.Add('4');
// dari finalnonepilepsi non
penyakitnonepilepsi
epil := Items.Add;
epil.Caption := '';
epil.SubItems.Add('JIKA ' +
133
FieldByName('namalain').AsString +
' ' +
FieldByName('nilai').AsString );
epil.SubItems.Add(FieldByName('Rule').AsString)
;
epil.SubItems.Add('4');
// dari finalnonepilepsi non
penyakitnonepilepsi
DM.Query1.next;
epil.SubItems.Add(FieldByName('Rule').AsString)
;
epil.SubItems.Add('4');
// dari finalnonepilepsi non
penyakitnonepilepsi
DM.Query1.next;
end;
Application.ProcessMessages;
if Application.Terminated
or (BtnTampilAturan.Tag = 0) then
begin
pgbtampil.Visible := false;
Exit;
end;
if pgbtampil.Position < 1000 then
134
pgbtampil.Position :=
pgbtampil.Position + 1 else
pgbtampil.Position := 0;
end;
end;
end;
Procedure TEpilepsi;
begin
with DM.Query, FrmCampuran, LVDaftarAturan
do
begin
// cari dari terapi
cariQ(' SELECT T.RULE, E.NAMAEPILEPSI,
O.NAMAOBAT, '+
' T.CFTOTAL1, T.CFTOTAL2 '+
' FROM TERAPI T, EPILEPSI E, OBAT O '+
' WHERE T.NOEPILEPSI = E.NOEPILEPSI '+
' AND T.NOOBAT = O.NOOBAT ');
if not eof then
begin
epil := Items.Add;
epil.Caption := '';
epil.SubItems.Add('');
epil.SubItems.Add('');
epil.SubItems.Add('');
epil := Items.Add;
epil.Caption := '';
epil.SubItems.
Add('A T U R A N T E R A P I E P I
L E P S I');
epil.SubItems.Add('');
epil.SubItems.Add('');
epil := Items.Add;
epil.Caption := '';
epil.SubItems.Add('');
epil.SubItems.Add('');
135
epil.SubItems.Add('');
end;
epil.SubItems.Add(FieldByName('Rule').AsString)
;
epil.SubItems.Add('5'); // dari terapi
epil := Items.Add;
epil.Caption := '';
epil.SubItems.Add('JIKA mengalami
epilepsi "' +
FieldByName('namaepilepsi').AsString
+
'" dengan CF ' + FormatFloat('0.00',
FieldByName('CFTotal1').AsFloat) +
' s/d ' + FormatFloat('0.00',
FieldByName('CFTotal2').AsFloat));
epil.SubItems.Add(FieldByName('Rule').AsString)
;
epil.SubItems.Add('5'); // dari terapi
DM.Query.next;
Application.ProcessMessages;
if Application.Terminated or
(BtnTampilAturan.Tag = 0) then
begin
136
pgbtampil.Visible := false;
Exit;
end;
if pgbtampil.Position < 1000 then
pgbtampil.Position :=
pgbtampil.Position + 1 else
pgbtampil.Position := 0;
end;
end;
end;
Procedure TNonEpilepsi;
begin
with DM.Query, FrmCampuran, LVDaftarAturan
do
begin
// cari dari terapi non epilepsi
cariQ(' SELECT T.RULE, E.NAMANONEPILEPSI,
O.NAMAOBAT, '+
' T.CFTOTAL1, T.CFTOTAL2 '+
' FROM TERAPI T, NONEPILEPSI E, OBAT O '+
' WHERE T.NONONEPILEPSI = E.NONONEPILEPSI
'+
' AND T.NOOBAT = O.NOOBAT ');
137
epil.SubItems.Add('');
epil.SubItems.Add('');
epil := Items.Add;
epil.Caption := '';
epil.SubItems.Add('');
epil.SubItems.Add('');
epil.SubItems.Add('');
end;
epil.SubItems.Add(FieldByName('Rule').AsString)
;
epil.SubItems.Add('5'); // dari terapi
epil := Items.Add;
epil.Caption := '';
epil.SubItems.Add('JIKA mengalami
penyakit "' +
FieldByName('namanonepilepsi').AsString +
'" dengan CF ' + FormatFloat('0.00',
FieldByName('CFTotal1').AsFloat) +
' s/d ' + FormatFloat('0.00',
FieldByName('CFTotal2').AsFloat));
epil.SubItems.Add(FieldByName('Rule').AsString)
;
138
epil.SubItems.Add('5'); // dari terapi
DM.Query.next;
Application.ProcessMessages;
if Application.Terminated or
(BtnTampilAturan.Tag = 0) then
begin
pgbtampil.Visible := false;
Exit;
end;
if pgbtampil.Position < 1000 then
pgbtampil.Position :=
pgbtampil.Position + 1 else
pgbtampil.Position := 0;
end;
end;
end;
begin
if DM.IBDB.Connected = false then
DM.IBDB.Connected := true;
jumlah := 0;
if BtnTampilAturan.Tag = 1 then
begin
BtnTampilAturan.Tag := 0;
SB.SimpleText := 'Pencarian
batal..........';
BtnTampilAturan.Caption := '&Tampil';
Exit;
end;
LVDaftarAturan.Items.Clear;
BtnTampilAturan.Tag := 1;
BtnTampilAturan.Caption := '&Stop';
139
case CmbJenisAturan.ItemIndex of
0 : begin
GSawan;
PEpilepsi;
PNonEpilepsi;
TEpilepsi;
TNonEpilepsi;
end;
1 : GSawan;
2 : PEpilepsi;
3 : PNonEpilepsi;
4 : TEpilepsi;
5 : TNonEpilepsi;
end;
pgbtampil.Visible := false;
SB.SimpleText := 'Ditemukan ' +
IntToStr(jumlah) + ' aturan';
BtnTampilAturan.Tag := 0;
BtnTampilAturan.Caption := '&Tampil';
BtnHapusGejala.Enabled := false;
end;
140
procedure TFrmMain.BtnHapusAturanClick(Sender:
TObject);
begin
with FrmCampuran,
LVDaftarAturan.Selected.SubItems do
case StrToInt(Strings[2]) of
0 : Hapus('delete from gejalasawan where
rule = '+
Strings[1]);
1 : begin
Hapus('delete from penyakit where
rule = '+
Strings[1]);
Hapus('delete from final where rule
= '+
Strings[1]);
end;
2 : Hapus('delete from final where rule =
'+
Strings[1]);
3 : begin
Hapus('delete from
penyakitnonepilepsi where rule ='+
Strings[1]);
Hapus('delete from finalnonepilepsi
where rule = '+
Strings[1]);
end;
4 : Hapus('delete from finalnonepilepsi
where rule = '+
Strings[1]);
5 : Hapus('delete from terapi where rule
= '+ Strings[1]);
end;
BtnTampilAturan.Click;
BtnHapusAturan.Enabled := false;
BtnTampilAturan.SetFocus;
141
end;
procedure TFrmMain.BtnBersihAturanClick(Sender:
TObject);
begin
CmbJenisAturan.ItemIndex := 0;
LVDaftarAturan.Items.clear;
CmbJenisAturan.SetFocus;
end;
procedure TFrmMain.BtnTutupAturanClick(Sender:
TObject);
begin
BtnUtama.ActivePage := BPTentang;
Frame.ActivePage := PTentang;
BtnTentang.Show;
end;
procedure TFrmMain.RBTTahuEnter(Sender:
TObject);
begin
BtnLanjutKonsultasi.Enabled := true;
LblCFKonsultasi.Visible := false;
EdtCFKonsultasi.Visible := false;
end;
142
procedure TFrmMain.RBTTahuKeyPress(Sender:
TObject;
var Key: Char);
begin
if key = #13 then
begin
Key := #0;
if BtnMulaiKonsultasi.Enabled = true then
BtnMulaiKonsultasi.SetFocus
else BtnLanjutKonsultasi.SetFocus;
end;
end;
procedure TFrmMain.RBYaKeyPress(Sender:
TObject;
var Key: Char);
begin
if key = #13 then
begin
Key := #0;
EdtCFKonsultasi.SetFocus;
end;
end;
procedure TFrmMain.RBTidakEnter(Sender:
TObject);
begin
BtnLanjutKonsultasi.Enabled := true;
LblCFKonsultasi.Visible := true;
EdtCFKonsultasi.Visible := true;
143
end;
procedure TFrmMain.RBTidakKeyPress(Sender:
TObject;
var Key: Char);
begin
if key = #13 then
begin
Key := #0;
EdtCFKonsultasi.SetFocus;
end;
end;
procedure TFrmMain.EdtCFKonsultasiExit(Sender:
TObject);
begin
FrmCampuran.ExitCF(EdtCFKonsultasi);
end;
144
procedure
TFrmMain.EdtCFKonsultasiKeyPress(Sender:
TObject;
var Key: Char);
begin
if key = #13 then
begin
Key := #0;
if BtnMulaiKonsultasi.Enabled = true then
BtnMulaiKonsultasi.SetFocus
else BtnLanjutKonsultasi.SetFocus;
end else if not ((key in ['0' .. '9'])
or (key = #8) or (key = #46)
or (key = #44)) then key := #0;
end;
procedure
TFrmMain.BtnMulaiKonsultasiClick(Sender:
TObject);
var i : integer;
begin
BtnMulaiKonsultasi.Enabled := false;
BtnTerapi.Enabled := false;
BtnPenjelasanKonsultasi.Caption :=
'Men&gapa';
BtnPenjelasanKonsultasi.Enabled := true;
BtnUlangKonsultasi.Enabled := true;
145
//kosongkan variabel sawan, gejala, syarat
NS := 0;
NOS := 0;
NG := 0;
NOG := 0; //nomor gejala
tor := 0; //top of rule
for i := 1 to 100 do
begin
CFS[i] := 0;
CFG[i] := 0;
end;
CFG1 := 0;
CFG2 := 0;
CFS1 := 0;
CFS2 := 0;
CekFinal := true;
BalikSawan := true;
146
NE :=
Query.FieldByName('NoEpilepsi').AsInteger;
if Query1.IsEmpty then
begin
BalikSawan := false;
//--> cari syaratnya
cariQ3(' select F.*, L.Namalain from
Final F, Lain L'+
' where F.noepilepsi = '+
IntToStr(NE) +
' and L.Nolain = F.Nolain '+
' order by F.CFepilepsi desc,
F.Rule');
if Query3.IsEmpty then Query.Next
//-->ke penyakit selanjutnya
else begin
CekFinal := false;
RE :=
Query3.FieldByName('rule').AsInteger;
CFNE :=
Query3.FieldByName('CFEpilepsi').AsFloat;
Syarat(NE);
exit;
end;
end else
begin
BalikSawan := true;
CekFinal := false;
RE :=
Query1.FieldByName('rule').AsInteger;
147
CFNE :=
Query1.FieldByName('CFEpilepsi').AsFloat;
Sawan(NE);
exit;
end;
end;
Penyakit;
end;
end;
end;
procedure
TFrmMain.BtnLanjutKonsultasiClick(Sender:
TObject);
var i : integer;
Temp, Temp1, kal : string;
Daftar : TListItem;
begin
Temp := EdtCFKonsultasi.Text;
if Temp <> '' then
begin
temp :=
FormatFloat('0.00',StrToFloat(Temp));
for i := 1 to length(temp) do
if Temp[i] = ',' then Temp[i] := '.' else
Temp[i] := Temp[i];
end else Temp := '1';
148
Tambah(' insert into cekgejala
(NoGejala, CFGejala) ' +
' values('+ IntToStr(NG) +', '+
Temp +')');
inc(NOG);
if EdtCFKonsultasi.Text <> '' then
CFG[NOG] :=
StrToFloat(EdtCFKonsultasi.Text)
else CFG[NOG] := 1;
end else if RBTidak.Checked = true then
begin
Tambah(' insert into cekgejala
(NoGejala, CFGejala) ' +
' values('+ IntToStr(NG) +', -'+
Temp +')');
inc(NOG);
if EdtCFKonsultasi.Text <> '' then
CFG[NOG] := StrToFloat('-'
+EdtCFKonsultasi.Text)
else CFG[NOG] := -1;
end else
begin
Tambah(' insert into cekgejala
(NoGejala, CFGejala) ' +
' values('+ IntToStr(NG) +',
0)');
inc(NOG);
CFG[NOG] := 0;
end;
Bersih;
149
begin
BalikSawan := true;
CFS2 := CFS[1];
for i := 2 to NOS do
if CFS2 > CFS[i] then CFS2 := CFS[i];
Query2.Next;
while not Query2.eof do
begin
//cek RS = Rule
if not (RS =
Query2.FieldByName('Rule').AsInteger) then
begin
150
CFG2 := CFG[1];
for i := 2 to NOG do
if CFG2 > CFG[i] then CFG2 :=
CFG[i];
NG :=
Query2.FieldByName('NoGejala').AsInteger;
151
Daftar := LVKonsultasi.Items.Add;
Caption := '';
Daftar := LVKonsultasi.Items.Add;
Caption := '';
i := 0;
kal := 'Apakah pasien mengalami
gejala ' +
Query3.FieldByName('NamaGejala').AsString + '
'+
Query3.FieldByName('Keterangan').AsString +'?';
while i < Length(kal) do
begin
Daftar := LVKonsultasi.Items.Add;
Caption := copy(kal, i+1, 50);
i := i +50;
end;
Gejala := true;
RBTTahu.SetFocus;
exit;
end;
Query2.Next;
end;
CFG2 := CFG[1];
for i := 2 to NOG do
if CFG2 > CFG[i] then CFG2 := CFG[i];
152
if Temp1[i] = ',' then Temp1[i] :=
'.'
else Temp1[i] := Temp1[i];
//variabel sawan
NG := 0;
NOG := 0;
for i := 1 to 100 do CFG[i] := 0;
CFG1 := 0;
CFG2 := 0;
Query1.Next;
if not (RE =
Query1.FieldByName('Rule').AsInteger) then
begin
cariQ3(' select F.*, L.Namalain from
Final F, Lain L '+
' where F.noepilepsi = '+
IntToStr(NE) +
' and F.Rule = '+ IntToStr(RE) +
' and L.Nolain = F.Nolain '+
' order by F.CFepilepsi desc,
F.Rule');
153
end;
Syarat(NE);
Exit;
end else
begin
Sawan(NE);
exit;
end;
end;
CFS2 := CFS[1];
for i := 2 to NOS do
if CFS2 > CFS[i] then CFS2 := CFS[i];
BalikSawan := false;
if Tor <> 0 then
cariQ3(' select F.*, L.Namalain from
Final F, Lain L '+
' where F.noepilepsi = '+
IntToStr(NE) +
' and L.Nolain = F.Nolain '+
' and F.Rule in (' + pencarian + ')'+
' order by F.CFepilepsi desc,
F.Rule')
else
cariQ3(' select F.*, L.Namalain from
Final F, Lain L '+
' where F.noepilepsi = '+
IntToStr(NE) +
' and L.Nolain = F.Nolain '+
' order by F.CFepilepsi desc,
F.Rule');
154
if not Query3.IsEmpty then
begin
CekFinal := false;
Syarat(NE);
exit;
end;
Syarat(NE);
Exit;
end else //Syarat
begin
if RBYa.Checked = true then
begin
Tambah(' insert into ceklain (Nolain,
CFlain, Nilai) ' +
' values('+ IntToStr(NS) +', '+
Temp + ', "' +
Nilai + '")');
inc(NOS);
if EdtCFKonsultasi.Text <> '' then
CFS[NOS] :=
StrToFloat(EdtCFKonsultasi.Text)
else CFS[NOS] := 1;
end else if RBTidak.Checked = true then
begin
Tambah(' insert into ceklain (Nolain,
CFlain, Nilai) ' +
' values('+ IntToStr(NS) +', -'+
Temp + ', "' + Nilai + '")');
inc(NOS);
155
Lewat;
exit;
end;
end else
begin
Tambah(' insert into ceklain (Nolain,
CFlain, Nilai) ' +
' values('+ IntToStr(NS) +', 0, "'
+ Nilai + '")');
inc(NOS);
CFS[NOS] := 0;
end;
Bersih;
Query3.Next;
while not Query3.Eof do
begin
//cek apakah RE masih sama
if not (RE =
Query3.FieldByName('Rule').AsInteger) then
begin
CFS2 := CFS[1];
for i := 2 to NOS do
if CFS2 > CFS[i] then CFS2 := CFS[i];
156
end;
end;
NS :=
Query3.FieldByName('NoLain').AsInteger;
Nilai :=
Query3.FieldByName('Nilai').AsString;
157
Caption := '';
i := 0;
kal := 'Apakah ' +
Query3.FieldByName('NamaLain').AsString +
' = ' +
Query3.FieldByName('Nilai').AsString +'?';
while i < Length(kal) do
begin
Daftar := LVKonsultasi.Items.Add;
Caption := copy(kal, i+1, 50);
i := i +50;
end;
RBTTahu.SetFocus;
exit;
end;
Query3.Next;
end;
CFS2 := CFS[1];
for i := 2 to NOS do
if CFS2 > CFS[i] then CFS2 := CFS[i];
158
cariQ3(' select F.*, L.Namalain from
Final F, Lain L '+
' where F.noepilepsi = '+
IntToStr(NE) +
' and F.Rule = '+ IntToStr(RE) +
' and L.Nolain = F.Nolain '+
' order by F.CFepilepsi desc,
F.Rule');
Query.FieldByName('Namaepilepsi').AsString;
ExecSQL;
end;
159
Lewat;
end;
end;
end else //epilepsi = false
begin
if Gejala = true then
begin
if RBYa.Checked = true then
begin
Tambah(' insert into cekgejala
(NoGejala, CFGejala) ' +
' values('+ IntToStr(NS) +', '+
Temp +')');
inc(NOS);
inc(NOS);
160
' values('+ IntToStr(NS) +', 0)');
inc(NOS);
CFS[NOS] := 0;
end;
Bersih;
Query1.Next;
while not Query1.Eof do
begin
//cek RE = Rule
if not (RE =
Query1.FieldByName('Rule').AsInteger) then
begin
BalikSawan := true;
CFS2 := CFS[1];
for i := 2 to NOS do
if CFS2 > CFS[i] then CFS2 := CFS[i];
161
if not Query3.IsEmpty then
begin
CekFinal := false;
Inc(Tor);
cari[Tor] := RE;
end;
end;
SyaratP(NE);
Exit;
end;
NS :=
Query1.FieldByName('NoGejala').AsInteger;
//tanyakan ke pengguna
LVKonsultasi.Items.Clear;
RBYa.Enabled := true;
RBTidak.Enabled := true;
RBTTahu.Enabled := true;
Daftar := LVKonsultasi.Items.Add;
Caption := '';
162
Daftar := LVKonsultasi.Items.Add;
Caption := '';
i := 0;
kal := 'Apakah pasien mengalami
gejala ' +
Query2.FieldByName('NamaGejala').AsString +
' ' +
Query2.FieldByName('Keterangan').AsString +'?';
while i < Length(kal) do
begin
Daftar := LVKonsultasi.Items.Add;
Caption := copy(kal, i +1, 50);
i := i +50;
end;
Gejala := true;
RBTTahu.SetFocus;
exit;
end;
Query1.Next;
end;
BalikSawan := false;
163
' where F.noNonepilepsi = '+
IntToStr(NE) +
' and L.Nolain = F.Nolain '+
' order by F.CFNonepilepsi desc,
F.Rule');
164
else CFS[NOS] := -1;
if CFNE > standar then
begin
LewatP;
exit;
end;
end else
begin
Tambah(' insert into ceklain (Nolain,
CFlain, Nilai) ' +
' values('+ IntToStr(NOS) +', 0,
"' + Nilai + '")');
inc(NOS);
CFS[NOS] := 0;
end;
Bersih;
Query3.Next;
while not Query3.Eof do
begin
//cek apakah RE masih sama
if not (RE =
Query3.FieldByName('Rule').AsInteger) then
begin
CFS2 := CFS[1];
for i := 2 to NOS do
if CFS2 > CFS[i] then CFS2 := CFS[i];
165
begin
GejalaP(NE);
Exit;
end else
begin
cariQ3(' select F.*, L.Namalain '+
' from FinalNonEpilepsi F, Lain
L '+
' where F.noNonepilepsi = '+
IntToStr(NE) +
' and L.Nolain = F.Nolain '+
' and F.Rule = ' + IntToStr(RE)
+
' order by F.CFNonepilepsi
desc, F.Rule');
if not Query3.IsEmpty then
begin
CekFinal := false;
Inc(Tor);
cari[Tor] := RE;
end;
end;
end;
NS :=
Query3.FieldByName('NoLain').AsInteger;
Nilai :=
Query3.FieldByName('Nilai').AsString;
166
if
Query4.FieldByName('CFLain').AsFloat < 0 then
if CFNE > standar then
begin
LewatP;
Exit;
end;
inc(NOS);
CFS[NOS] :=
Query4.FieldByName('CFLain').AsFloat;
end else
begin
//tanyakan ke pengguna
gejala := False;
LVKonsultasi.Items.Clear;
RBYa.Enabled := true;
RBTidak.Enabled := true;
RBTTahu.Enabled := true;
Daftar := LVKonsultasi.Items.Add;
Caption := '';
Daftar := LVKonsultasi.Items.Add;
Caption := '';
i := 0;
kal := 'Apakah ' +
Query3.FieldByName('NamaLain').AsString +
' = ' +
Query3.FieldByName('Nilai').AsString +'?';
while i < Length(kal) do
begin
Daftar := LVKonsultasi.Items.Add;
Caption := copy(kal, i+1, 50);
i := i +50;
end;
RBTTahu.SetFocus;
167
exit;
end;
Query3.Next;
end;
CFS2 := CFS[1];
for i := 2 to NOS do
if CFS2 > CFS[i] then CFS2 := CFS[i];
Query.FieldByName('NamaNonepilepsi').AsString;
ExecSQL;
end;
LewatP;
168
end;
end;
end;
end; //with DM
end;
procedure
TFrmMain.BtnPenjelasanKonsultasiClick(Sender:
TObject);
var Daftar : TlistItem;
begin
//penjelasan why
with DM.Query5, Daftar do
begin
if BtnLanjutKonsultasi.Enabled then
begin
LVPenjelasan.Items.Clear;
if Epilepsi = true then
begin
Close;
SQL.Clear;
SQL.Add('select G.namagejala '+
' from Gejala G, GejalaSawan S,
Penyakit P '+
' where P.NoEpilepsi = '+
IntToStr(NE) +
' and P.Nosawan = S.NoSawan ' +
' and S.NoGejala = G.NoGejala '+
' and S.NoSawan not in (select
nosawan from ceksawan) '+
' and G.NoGEjala not in '+
' (select nogejala from
cekgejala)'+
' group by G.NamaGejala' );
Open;
Daftar := LVPenjelasan.Items.Add;
169
Caption := '';
Daftar := LVPenjelasan.Items.Add;
Caption := 'Kalau mengalami gejala : ';
Daftar := LVPenjelasan.Items.Add;
Caption := '';
while Not Eof do
begin
Daftar := LVPenjelasan.Items.Add;
Caption := ' ' +
Fields[0].AsString;
Next;
end;
Close;
SQL.Clear;
SQL.Add('Select L.NamaLain, F.Nilai '+
' From Lain L, Final F '+
' where L.NoLain = F.Nolain '+
' and F.Noepilepsi = '+ IntToStr(NE)
+
' and L.noLain not in (select nolain
from ceklain)'+
' group by L.NamaLain, F.Nilai');
Open;
Daftar := LVPenjelasan.Items.Add;
Caption := '';
Daftar := LVPenjelasan.Items.Add;
Caption := 'dan memenuhi syarat : ';
Daftar := LVPenjelasan.Items.Add;
Caption := '';
170
Fields[0].AsString + ' : ' +
Fields[1].AsString;
Next;
end;
Close;
SQL.Clear;
SQL.Add('select namaepilepsi '+
' from epilepsi where noepilepsi = '+
IntToStr(NE));
Open;
Daftar := LVPenjelasan.Items.Add;
Caption := '';
Daftar := LVPenjelasan.Items.Add;
Caption := 'ada kemungkinan pasien
terkena '+
' penyakit epilepsi ' +
Fields[0].AsString;
end else
begin
Close;
SQL.Clear;
SQL.Add('select G.namagejala '+
' from Gejala G, PenyakitNonEpilepsi
P '+
' where P.NoNonEpilepsi = '+
IntToStr(NE) +
' and P.NoGejala = G.NoGejala '+
' and G.NoGEjala not in '+
' (select nogejala from cekgejala)'
+
' group by G.NamaGejala');
Open;
Daftar := LVPenjelasan.Items.Add;
171
Caption := '';
Daftar := LVPenjelasan.Items.Add;
Caption := 'Kalau mengalami gejala : ';
while Not Eof do
begin
Daftar := LVPenjelasan.Items.Add;
Caption := ' ' +
Fields[0].AsString;
Next;
end;
Close;
SQL.Clear;
SQL.Add('Select L.NamaLain, F.Nilai '+
' From Lain L, FinalNonEpilepsi F '+
' where L.NoLain = F.Nolain '+
' and F.NoNonepilepsi = '+
IntToStr(NE) +
' and L.noLain not in (select nolain
from ceklain)'+
' group by L.NamaLain, F.Nilai');
Open;
Daftar := LVPenjelasan.Items.Add;
Caption := '';
Daftar := LVPenjelasan.Items.Add;
Caption := 'dan memenuhi syarat : ';
Daftar := LVPenjelasan.Items.Add;
Caption := '';
172
end;
Close;
SQL.Clear;
SQL.Add('select namaNonepilepsi from
Nonepilepsi '+
' where noNonepilepsi =
'+IntToStr(NE));
Open;
Daftar := LVPenjelasan.Items.Add;
Caption := '';
Daftar := LVPenjelasan.Items.Add;
Caption := 'ada kemungkinan pasien
terkena '+
' penyakit non epilepsi ' +
Fields[0].AsString;
end;
end;
end;
Frame.ActivePage := PPenjelasan;
BtnTutupPenjelasan.SetFocus;
end;
procedure
TFrmMain.BtnUlangKonsultasiClick(Sender:
TObject);
begin
LVKonsultasi.Items.Clear;
RBTTahu.Enabled := false;
RBYa.Enabled := false;
RBTidak.Enabled := false;
LblCFKonsultasi.Visible := false;
EdtCFKonsultasi.Text := '';
EdtCFKonsultasi.Visible := false;
173
BtnMulaiKonsultasi.Enabled := true;
BtnLanjutKonsultasi.Enabled := false;
BtnPenjelasanKonsultasi.Caption :=
'&Penjelasan';
BtnPenjelasanKonsultasi.Enabled := false;
BtnMulaiKonsultasi.SetFocus;
end;
procedure TFrmMain.BtnTerapiClick(Sender:
TObject);
begin
Frame.ActivePage := PTerapi;
BtnTutupTerapi.SetFocus;
end;
procedure
TFrmMain.BtnTutupKonsultasiClick(Sender:
TObject);
begin
BtnUtama.ActivePage := BPTentang;
Frame.ActivePage := PTentang;
BtnTentang.Show;
end;
Procedure TFrmMain.Bersih;
begin
RBYa.Checked := false;
RBTidak.Checked := false;
RBTTahu.Checked := false;
EdtCFKonsultasi.Text := '';
RBYa.Enabled := false;
RBTidak.Enabled := false;
RBTTahu.Enabled := false;
LblCFKonsultasi.Visible := false;
EdtCFKonsultasi.Visible := false;
BtnLanjutKonsultasi.Enabled := false;
LVKonsultasi.Items.Clear;
174
end;
Procedure TFrmMain.TampilHasil;
var Daftar : TlistItem;
temp, rule : string;
i : integer;
begin
BtnTerapi.Enabled := true;
RBYa.Checked := true;
RBYa.Enabled := false;
RBTidak.Enabled := false;
RBTTahu.Enabled := false;
BtnPenjelasanKonsultasi.Caption :=
'Ba&gaimana';
BtnLanjutKonsultasi.Enabled := false;
EdtCFKonsultasi.Text := '';
EdtCFKonsultasi.Visible := false;
LblCFKonsultasi.Visible := false;
LVTerapi.Items.Clear;
175
LVPenjelasan.Items.Clear;
if DM.Query.IsEmpty then
begin
Daftar := LVKonsultasi.Items.Add;
Daftar.Caption := '';
Daftar := LVKonsultasi.Items.Add;
Daftar.Caption := ' Tidak ditemukan
penyakit epilepsi';
end else
begin
//daftar penyakit epilepsi
Daftar := LVKonsultasi.Items.Add;
Daftar.Caption := '';
Daftar := LVKonsultasi.Items.Add;
Daftar.Caption := ' Kemungkinan Penyakit
Epilepsi : ';
end;
176
if DM.Query.IsEmpty then
begin
Daftar := LVKonsultasi.Items.Add;
Daftar.Caption := '';
Daftar := LVKonsultasi.Items.Add;
Daftar.Caption := ' Tidak ditemukan
penyakit non epilepsi';
end else
begin
//daftar penyakit nonepilepsi
Daftar := LVKonsultasi.Items.Add;
Daftar.Caption := '';
Daftar := LVKonsultasi.Items.Add;
Daftar.Caption := ' Kemungkinan Penyakit
Non Epilepsi : ';
end;
Daftar := LVKonsultasi.Items.Add;
Daftar.Caption := '';
if DM.Query.IsEmpty then
begin
Daftar := LVKonsultasi.Items.Add;
177
Daftar.Caption := ' Jenis penyakit tidak
dapat ditemukan';
BtnUlangKonsultasi.SetFocus;
Exit;
end;
Daftar := LVKonsultasi.Items.Add;
Daftar.Caption :=
' Diagnosis dapat menentukan penyakit :
';
LVTerapi.Items.Clear;
while not DM.Query.eof do
begin
Daftar := LVKonsultasi.Items.Add;
Daftar.Caption := ' ' +
DM.Query.FieldByName('Nama').AsString +
' dengan CF : ' + FormatFloat('0.00',
DM.Query.FieldByName('cf').AsFloat);
//cari obat
temp := FormatFloat('0.00',
DM.Query.FieldByName('CF').AsFloat);
for i := 1 to length(temp) do
if temp[i] = ',' then
temp[i] := '.'
else temp[i] := temp[i];
178
SQL.Add(' where T.NoNonepilepsi = ' +
DM.Query.FieldByName('Nomor').AsString)
else SQL.Add(' where T.Noepilepsi = ' +
DM.Query.FieldByName('Nomor').AsString);
SQL.Add(' and T.NoObat = O.NoObat '+
' and T.CFTotal1 <= :cf '+
' and T.CFTotal2 >= :cf '+
' order by namaobat ');
ParamByName('cf').AsString := temp;
Open;
Daftar := LVTerapi.Items.Add;
Caption := '';
Daftar := LVTerapi.Items.Add;
Caption := ' Penyakit ';
SubItems.add(': ' +
DM.Query.FieldByName('Nama').AsString);
if Eof then
begin
Daftar := LVTerapi.Items.Add;
Caption := '';
Daftar := LVTerapi.Items.Add;
Caption := ' Belum ada referensi
obat';
end else
begin
179
if FieldByName('Dosis').AsString <>
'' then
begin
Daftar := LVTerapi.Items.Add;
Caption := ' Dosis ';
SubItems.Add(': ' +
FieldByName('Dosis').AsString);
end;
if FieldByName('Larangan').AsString
<> '' then
begin
Daftar := LVTerapi.Items.Add;
Caption := ' Larangan';
SubItems.Add(': ' +
FieldByName('Larangan').AsString);
180
end;
if FieldByName('Harga').AsString <>
'' then
begin
Daftar := LVTerapi.Items.Add;
Caption := ' Harga';
SubItems.Add(': ' +
FieldByName('Harga').AsString);
end;
Next;
end;
end;
end;
//aturannya
if
DM.Query.FieldByName('epilepsi').AsString = 'Y'
then
begin
//aturan penyakit
with DM, FrmCampuran, Daftar,
LVPenjelasan do
begin
cariQ1(' select P.Rule, S.Namasawan,
E.NamaEpilepsi, '+
181
' P.CFEpilepsi '+
' from Penyakit P, Sawan S, Epilepsi
E'+
' where P.NoEpilepsi = E.NoEpilepsi '+
' and P.Nosawan = S.Nosawan '+
' and P.NoEpilepsi = ' +
Query.FieldByName('nomor').AsString +
' order by rule, noepilepsi ');
Query1.FieldByName('Rule').AsString;
Daftar := Items.Add;
Daftar.Caption := ' Menderita
Epilepsi "' +
Query1.FieldByName('NamaEpilepsi').AsString +
'" dengan CF '+
FormatFloat('0.00',
Query1.FieldByName('CFEpilepsi').AsFloat);
Daftar := Items.Add;
Daftar.Caption := ' JIKA
mengalami sawan '+
Query1.FieldByName('namasawan').AsString;
DM.Query1.next;
182
(Query1.FieldByName('Rule').AsString = rule) do
begin
Daftar := Items.Add;
Daftar.Caption := ' DAN
mengalami sawan '+
Query1.FieldByName('namasawan').AsString;
Query1.Next;
end;
Query2.FieldByName('nilai').AsString;
Query2.next;
Application.ProcessMessages;
183
end;
end;
end;
Query1.FieldByName('Rule').AsString;
Daftar := Items.Add;
184
Caption := ' Menderita Epilepsi
"' +
Query1.FieldByName('NamaEpilepsi').AsString +
'" dengan CF '+ FormatFloat('0.00',
Query1.FieldByName('CFEpilepsi').AsFloat);
Daftar := Items.Add;
Caption := ' JIKA ' +
Query1.FieldByName('nilai').AsString;
DM.Query1.next;
(Query1.FieldByName('Rule').AsString = rule) do
begin
Daftar := Items.Add;
Caption := ' DAN ' +
Query1.FieldByName('nilai').AsString;
DM.Query1.next;
end;
Application.ProcessMessages;
end;
end;
//aturan sawan
with DM, FrmCampuran, LVPenjelasan,
Daftar do
begin
// cari dari gejala sawan
185
cariQ1(' select B.Rule, S.Namasawan,
G.NamaGejala, '+
' G.Keterangan, B.CFSawan '+
' from gejalasawan B, Sawan S, Gejala
G, Penyakit P '+
' where B.Nogejala = G.NoGejala '+
' and B.Nosawan = S.Nosawan '+
' and P.NoSawan = B.NoSawan '+
' and P.NoEpilepsi = '+
Query.FieldByName('nomor').AsString +
' group by B.Rule, S.Namasawan,
G.NamaGejala, '+
' G.Keterangan, B.CFSawan '+
' order by B.rule, S.nosawan');
Query1.FieldByName('Rule').AsString;
Daftar := Items.Add;
Caption := ' Mengalami Sawan "'
+
Query1.FieldByName('NamaSawan').AsString +
'" dengan CF '+
FormatFloat('0.00',
Query1.FieldByName('CFsawan').AsFloat);
Daftar := Items.Add;
186
Caption := ' JIKA mengalami
gejala '+
Query1.FieldByName('namagejala').AsString ;
Query1.next;
(Query1.FieldByName('Rule').AsString = rule) do
begin
Daftar := Items.Add;
Caption := ' DAN mengalami
gejala '+
Query1.FieldByName('namagejala').AsString;
Query1.next;
end;
Application.ProcessMessages;
end;
end;
end else
begin
//aturan non penyakit
with DM, FrmCampuran, Daftar,
LVPenjelasan do
begin
cariQ1('select P.Rule, G.NamaGejala, '+
' E.NamaNonEpilepsi, P.CFNonEpilepsi
'+
' from PenyakitNonEpilepsi P, Gejala
G, NonEpilepsi E'+
' where P.NoNonEpilepsi =
E.NoNonEpilepsi '+
' and P.NoGejala = G.NoGejala '+
' and P.NoNonEpilepsi = ' +
Query.FieldByName('nomor').AsString +
187
' order by P.Rule, P.nononepilepsi
');
Query1.FieldByName('Rule').AsString;
Daftar := Items.Add;
Daftar.Caption :=
' Menderita Penyakit Non
Epilepsi "' +
Query1.FieldByName('NamaNonEpilepsi').AsString
+
'" dengan CF '+
FormatFloat('0.00',
Query1.FieldByName('CFNonEpilepsi').AsFloat);
Daftar := Items.Add;
Daftar.Caption := ' JIKA
mengalami gejala '+
Query1.FieldByName('namagejala').AsString;
DM.Query1.next;
(Query1.FieldByName('Rule').AsString = rule) do
begin
Daftar := Items.Add;
188
Daftar.Caption := ' DAN
mengalami gejala '+
Query1.FieldByName('namagejala').AsString;
Query1.Next;
end;
Query2.FieldByName('nilai').AsString;
Query2.next;
Application.ProcessMessages;
end;
end;
end;
189
with DM, FrmCampuran, LVPenjelasan,
Daftar do
begin
// cari dari final yang tidak ada di
penyakit non epilepsi
cariQ1(' select F.Rule,
E.NamaNonEpilepsi, L.NamaLain, '+
' F.CFNonEpilepsi, F.Nilai '+
' from FinalNonEpilepsi F,
NonEpilepsi E, Lain L'+
' where F.NoNonEpilepsi =
E.NoNonEpilepsi '+
' and F.NoLain = L.NoLain '+
' and F.NoNonepilepsi = ' +
Query.FieldByName('nomor').AsString
+
' and not F.rule in '+
' (select rule from
penyakitnonepilepsi) '+
' group by F.Rule,
E.NamaNonEpilepsi, L.NamaLain, '+
' F.CFNonEpilepsi, F.Nilai '+
' order by F.Rule,
E.nononepilepsi');
Query1.FieldByName('Rule').AsString;
Daftar := Items.Add;
190
Caption := ' Menderita Penyakit
Non Epilepsi "' +
Query1.FieldByName('NamaNonEpilepsi').AsString
+
'" dengan CF '+
FormatFloat('0.00',
Query1.FieldByName('CFNonEpilepsi').AsFloat);
Daftar := Items.Add;
Caption := ' JIKA ' +
Query1.FieldByName('nilai').AsString;
DM.Query1.next;
(Query1.FieldByName('Rule').AsString = rule) do
begin
Daftar := Items.Add;
Caption := ' DAN ' +
Query1.FieldByName('nilai').AsString;
DM.Query1.next;
end;
Application.ProcessMessages;
end;
end;
end;
DM.Query.next;
end;
191
//tampilkan data
Daftar := LVPenjelasan.Items.Add;
Daftar.Caption := '';
Daftar := LVPenjelasan.Items.Add;
Daftar.Caption := '';
Daftar := LVPenjelasan.Items.Add;
Daftar.Caption := ' Data yang ada : ';
with DM.Query, LVPenjelasan, Daftar,
FrmCampuran do
begin
cariQ(' select G.NamaGejala, C.CFGejala,
C.Jawab '+
' from Gejala G, Cekgejala C'+
' where G.NoGejala = C.NoGejala '+
' order by C.Jawab Desc, C.cfgejala');
Daftar := LVPenjelasan.Items.Add;
Daftar.Caption := '';
Daftar := LVPenjelasan.Items.Add;
Daftar.Caption := ' Data Gejala :';
while not Eof do
begin
Daftar := LVPenjelasan.Items.Add;
if FieldByName('jawab').AsString = '1'
then
Daftar.Caption := ' ada gejala
'+
FieldByName('NamaGejala').AsString +
' dengan CF ' + FormatFloat('0.00',
FieldByName('CFGejala').AsFloat)
else
Daftar.Caption := ' tidak ada
gejala '+
FieldByName('NamaGejala').AsString +
' dengan CF ' + FormatFloat('0.00',
FieldByName('CFGejala').AsFloat);
192
DM.Query.next;
end;
Daftar := LVPenjelasan.Items.Add;
Daftar.Caption := '';
Daftar := LVPenjelasan.Items.Add;
Daftar.Caption := ' Data Sawan :';
while not Eof do
begin
Daftar := LVPenjelasan.Items.Add;
if FieldByName('jawab').AsString = '1'
then
Daftar.Caption := ' ada sawan '+
FieldByName('Namasawan').AsString +
' dengan CF ' + FormatFloat('0.00',
FieldByName('CFSawan').AsFloat)
else
Daftar.Caption := ' tidak ada
sawan '+
FieldByName('Namasawan').AsString +
' dengan CF ' + FormatFloat('0.00',
FieldByName('CFSawan').AsFloat);
DM.Query.next;
end;
193
' order by C.Jawab, C.cflain, C.nilai');
Daftar := LVPenjelasan.Items.Add;
Daftar.Caption := '';
Daftar := LVPenjelasan.Items.Add;
Daftar.Caption := ' Data Syarat Lain :';
while not Eof do
begin
Daftar := LVPenjelasan.Items.Add;
if FieldByName('jawab').AsString = '1'
then
Daftar.Caption := ' ada syarat
'+
FieldByName('Namalain').AsString +
' : ' + FieldByName('Nilai').AsString
+
' dengan CF ' + FormatFloat('0.00',
FieldByName('CFLain').AsFloat)
else
Daftar.Caption := ' tidak ada
syarat '+
FieldByName('NamaLain').AsString +
' : ' + FieldByName('Nilai').AsString
+
' dengan CF ' + FormatFloat('0.00',
FieldByName('CFLain').AsFloat);
DM.Query.next;
end;
end;
BtnTerapi.SetFocus;
end;
Procedure TFrmMain.lewat;
var i : integer;
begin
with DM, FrmCampuran do
194
begin
//kosongkan variabel sawan, gejala,
syarat
NS := 0;
NOS := 0;
NG := 0;
NOG := 0;
for i := 1 to 100 do
begin
CFS[i] := 0;
CFG[i] := 0;
end;
CFG1 := 0;
CFG2 := 0;
CFS1 := 0;
CFS2 := 0;
Tor := 0;
CekFinal := true;
Query.Next;
if Query1.IsEmpty then
begin
BalikSawan := false;
cariQ3(' select F.*, L.Namalain
from Final F, Lain L '+
195
' where F.noepilepsi = '+
IntToStr(NE) +
' and L.Nolain = F.Nolain '+
' order by F.CFepilepsi desc,
F.Rule');
if Query3.IsEmpty then
Query.Next
else begin
CekFinal := false;
Syarat(NE);
exit;
end;
end else
begin
BalikSawan := true;
CekFinal := false;
Sawan(NE);
exit;
end;
end;
Penyakit;
end;
end;
Procedure TFrmMain.lewatP;
var i : integer;
begin
with DM, FrmCampuran do
begin
NS := 0;
NOS := 0;
for i := 1 to 100 do CFS[i] := 0;
CFS1 := 0;
CFS2 := 0;
tor := 0;
CekFinal := true;
196
BalikSawan := true;
Query.Next;
if Query1.IsEmpty then
begin
if CekFinal = true then
begin
cariQ3(
' select F.*, L.Namalain '+
' from FinalNonEpilepsi F,
Lain L '+
' where F.nononepilepsi = '+
IntToStr(NE) +
' and L.Nolain = F.Nolain '+
' order by F.CFnonepilepsi
desc, F.Rule');
if Query3.IsEmpty then
Query.Next
else begin
CekFinal := false;
SyaratP(NE);
exit;
end;
197
end else
begin
SyaratP(NE);
exit;
end;
end else
begin
GejalaP(NE);
exit;
end;
end;
TampilHasil;
end;
end;
198
exit;
end;
inc(NOS);
CFS[NOS] :=
Query2.FieldByName('CFSawan').AsFloat;
end else
begin
// Cari dari tabel gejala-sawan
cariQ2(' select * from gejalasawan
where nosawan = ' +
IntToStr(NS));
if not Query2.IsEmpty then
begin
RS :=
Query2.FieldByName('rule').AsInteger;
CFNS :=
Query2.FieldByName('CFSawan').AsFloat;
while not Query2.Eof do
begin
//cek apakah RS masih sama
if not(RS =
Query2.FieldByName('rule').AsInteger) then
begin
//hitung CFS sementara
CFG2 := CFG[1];
for i := 2 to NOG do
if CFG2 > CFG[i] then CFG2 :=
CFG[i];
199
NG :=
Query2.FieldByName('NoGejala').AsInteger;
//tanyakan ke pengguna
LVKonsultasi.Items.Clear;
RBYa.Enabled := true;
RBTidak.Enabled := true;
RBTTahu.Enabled := true;
Daftar := LVKonsultasi.Items.Add;
Caption := '';
Daftar := LVKonsultasi.Items.Add;
Caption := '';
i := 0;
kal := 'Apakah pasien mengalami
gejala ' +
Query3.FieldByName('NamaGejala').AsString + '
' +
200
Query3.FieldByName('Keterangan').AsString +'?';
while i < Length(kal) do
begin
Daftar :=
LVKonsultasi.Items.Add;
Caption := copy(kal, i+1, 50);
i := i +50;
end;
RBTTahu.SetFocus;
Gejala := true;
exit;
end;
Query2.Next;
end;
CFG2 := CFG[1];
for i := 2 to NOG do
if CFG2 > CFG[i] then CFG2 := CFG[i];
201
NG := 0;
NOG := 0;
for i := 1 to 100 do CFG[i] := 0;
CFG1 := 0;
CFG2 := 0;
Query1.Next;
if not(RE =
Query1.FieldByName('Rule').AsInteger) then
begin
cariQ3(' select F.*, L.Namalain
from Final F, Lain L '+
' where F.noepilepsi = '+
IntToStr(NE) +
' and L.Nolain = F.Nolain '+
' and F.Rule = ' + IntToStr(RE) +
' order by F.CFepilepsi desc');
202
BalikSawan := false;
203
while not Query3.Eof do
begin
Gejala := false;
NS :=
Query3.FieldByName('NoLain').Asinteger;
Nilai :=
Query3.FieldByName('Nilai').AsString;
cariQ4(' select * from ceklain where
nolain = ' +
IntToStr(NS) + ' and nilai =
"' + Nilai + '"');
i := 0;
kal := 'Apakah ' +
Query3.FieldByName('NamaLain').AsString +
' = ' +
Query3.FieldByName('Nilai').AsString +'?';
while i < Length(kal) do
begin
204
Daftar := LVKonsultasi.Items.Add;
Caption := copy(kal, i+1, 50);
i := i +50;
end;
RBTTahu.SetFocus;
exit;
end;
Query3.Next;
end;
Query.FieldByName('Namaepilepsi').AsString;
ParamByName('cf').AsString :=
FloatToStr(CFS1);
ExecSQL;
end;
Lewat;
end;
end;
end;
Procedure TFrmMain.Penyakit;
205
var i : integer;
begin
Epilepsi := false;
with DM, FrmCampuran do
begin
NS := 0;
NOS := 0;
for i := 1 to 100 do CFS[i] := 0;
CFS1 := 0;
CFS2 := 0;
CekFinal := true;
BalikSawan := true;
Tor := 0;
206
if Query1.IsEmpty then
begin
BalikSawan := false;
cariQ3('select F.*, L.NamaLain '+
' from finalnonepilepsi F, Lain
L '+
' where F.noNonepilepsi = ' +
IntToStr(NE) +
' and L.NoLain = F.NoLain '+
' order by F.cfNonepilepsi
desc, F.rule');
207
procedure TFrmMain.GejalaP(NE : integer);
var i : integer;
Daftar : TlistItem;
kal : string;
begin
with DM, FrmCampuran, Daftar do
begin
while not Query1.Eof do
begin
//cek RE = Rule
if not (RE =
Query1.FieldByName('Rule').AsInteger) then
begin
cariQ3(' select F.*, L.Namalain '+
' from FinalNonEpilepsi F, Lain
L '+
' where F.noNonepilepsi = '+
IntToStr(NE) +
' and L.Nolain = F.Nolain '+
' and F.Rule = ' +
IntToStr(RE) +
' order by F.CFNonepilepsi
desc, F.Rule');
if not Query3.IsEmpty then
begin
CekFinal := false;
Inc(Tor);
Cari[Tor] := RE;
SyaratP(NE);
exit;
end;
end;
NS :=
Query1.FieldByName('NoGejala').AsInteger;
cariQ2(' select * from CekGejala where
Nogejala = '+
208
IntToStr(NS));
if not Query2.IsEmpty then
begin
//jawab tidak
if
Query2.FieldByName('cfgejala').AsFloat < 0 then
if CFNE > standar then
begin
lewatP;
exit;
end;
inc(NOS);
CFS[NOS] :=
Query2.FieldByName('CFGejala').AsFloat;
Query1.Next;
end else
begin
//tanyakan ke pengguna
LVKonsultasi.Items.Clear;
RBYa.Enabled := true;
RBTidak.Enabled := true;
RBTTahu.Enabled := true;
Daftar := LVKonsultasi.Items.Add;
Caption := '';
Daftar := LVKonsultasi.Items.Add;
Caption := '';
i := 0;
kal := 'Apakah pasien mengalami gejala
' +
209
Query2.FieldByName('NamaGejala').AsString +
' ' +
Query2.FieldByName('Keterangan').AsString +'?';
while i < Length(kal) do
begin
Daftar := LVKonsultasi.Items.Add;
Caption := copy(kal, i+1, 50);
i := i +50;
end;
RBTTahu.SetFocus;
Gejala := true;
exit;
end;
end;
BalikSawan := false;
210
' order by F.CFNonepilepsi desc,
F.Rule');
CekFinal := true;
while not Query3.Eof do
begin
//cek RE = Rule
211
if not (RE =
Query3.FieldByName('Rule').AsInteger) then
begin
CFS2 := CFS[1];
for i := 2 to NOS do
if CFS2 > CFS[i] then CFS2 :=
CFS[i];
212
CFS[NOS] :=
Query4.FieldByName('CFLain').AsFloat;
end else
begin
//tanyakan ke pengguna
LVKonsultasi.Items.Clear;
RBYa.Enabled := true;
RBTidak.Enabled := true;
RBTTahu.Enabled := true;
Daftar :=
LVKonsultasi.Items.Add;
Caption := '';
Daftar :=
LVKonsultasi.Items.Add;
Caption := '';
i := 0;
kal := 'Apakah ' +
Query3.FieldByName('NamaLain').AsString +
' = ' +
Query3.FieldByName('Nilai').AsString +'?';
while i < Length(kal) do
begin
Daftar :=
LVKonsultasi.Items.Add;
Caption := copy(kal, i+1,
50);
i := i +50;
end;
RBTTahu.SetFocus;
exit;
end;
end;
Query3.Next;
213
end;
CFS2 := CFS[1];
for i := 2 to NOS do
if CFS2 > CFS[i] then CFS2 :=
CFS[i];
Query1.Next;
if not Query1.eof then
begin
GejalaP(NE);
Exit;
end else
begin
with DM.Query4 do
begin
Close;
SQL.Clear;
SQL.Add('Insert into hasil values('+
IntToStr(NE) +
', :nama, :cf, "T")');
ParamByName('nama').AsString :=
Query.FieldByName('NamaNonepilepsi').AsString;
ParamByName('cf').AsString :=
FloatToStr(CFS1);
ExecSQL;
end;
LewatP;
end;
end;
end;
214
procedure TFrmMain.BtnTutupTerapiClick(Sender:
TObject);
begin
Frame.ActivePage := PKonsultasi;
BtnTerapi.SetFocus;
end;
procedure
TFrmMain.BtnTutupPenjelasanClick(Sender:
TObject);
begin
Frame.ActivePage := PKonsultasi;
BtnPenjelasanKonsultasi.SetFocus;
end;
end.
215