Universitas Kristen Maranatha i
ABSTRAK
Pada saat ini, penerapan teknologi informasi telah diaplikasikan pada berbagai bidang kehidupan manusia dengan komputer sebagai media sarananya. Demikian pula dengan penggunaan teknologi informasi dalam bidang kesehatan, khususnya dalam tes buta warna.
Metode untuk tes buta warna yang dipakai adalah metode yang ditemukan oleh Dr. Shinobu Ishihara yaitu metode Ishihara. Perancangan aplikasi tes buta warna dengan metode Ishihara berbasis komputer bertujuan untuk kegiatan tes buta warna yang menghasilkan kesimpulan : mata normal, buta warna parsial dan buta warna total.
Universitas Kristen Maranatha ii
ABSTRACT
Today, the application of information technology has been applied to various fields of human life by the computer as a media facility. Similarly, the use of information technology in healthcare, especially in the color-blind test. Method that was used for color blind test is Ishihara method that was found by Dr. Shinobu Ishihara. Designing Ishihara color-blind test application is aimed for color blindness tests activities that lead to the conclusion : the normal eye, partial color blindness and total color blindness.
iii
Universitas Kristen Maranatha
DAFTAR ISI
Halaman
ABSTRAK ……… i
ABSTRACT ………. ii
DAFTAR ISI ……….... iii
DAFTAR GAMBAR ………... viii
DAFTAR TABEL ....………... ix
BAB I PENDAHULUAN ……… 1
1.1Latar Belakang Masalah ……….. 1
1.2 Identifikasi Masalah ……… 1
1.3 Tujuan ………. 2
1.4 Batasan Masalah ………. 2
1.5 Sistematika Penulisan ………. 2
BAB II LANDASAN TEORI ……….. 4
2.1 Database ………..………...………...….…. 4
2.2 Tes Buta Warna Ishihara ………..………..……….…. 6
2.3 Borland Delphi 7 ………..……… 6
2.4 Komponen Borland Delphi ………... 8
iv
Universitas Kristen Maranatha
2.4.2 Form ……….….. 9
2.4.3 Object Inspector………..…………...…... 10
2.4.4 Program Code ………..………….. 10
BAB III ANALISA DAN PEMBAHASAN ………. 11
3.1 Membuat Database dengan Interbase ... 11
3.2 Diagram Alir Utama ... 14
3.3 Diagram Alir Data Petugas ... 14
3.4 Diagram Alir Data Pasien ... 15
3.5 Diagram Alir Laporan Petugas ... 15
3.6 Diagram Alir Laporan Pasien ... 15
3.7 Diagram Alir Laporan Tes Buta Warna ... 16
3.8 Diagram Alir Tes Buta Warna ... 17
3.9 Merancang Form Menggunakan Borland Delphi 7... 19
3.9.1 Form Menu Utama ... 20
3.9.2 Form Data Petugas ... 21
3.9.3 Form Data Pasien ... 21
3.9.4 Form Tes Buta Warna ... 22
3.9.5 Form Laporan ... 24
3.10 Membuat Koneksi Interbase dengan Borland Delphi ... 24
v
Universitas Kristen Maranatha
BAB IV DATA PENGAMATAN ... 28
4.1 Percobaan Pengetesan Buta Warna ... 28
4.2 Rekap Laporan Petugas ... 37
4.3 Rekap Laporan Pasien ... 38
4.4 Perbandingan Hasil Tes Komputer dengan Hasil Tes Dokter ... 40
BAB V KESIMPULAN DAN SARAN ... 41
5.1 Kesimpulan ... 41
5.2 Saran ... 41
DAFTAR PUSTAKA ... 42
Universitas Kristen Maranatha vi
DAFTAR GAMBAR
Halaman
Gambar 2.1 Borland Delphi ... 8
Gambar 2.2 Menu ... 9
Gambar 2.3 Form ... 9
Gambar 2.4 Object Inspector ... 10
Gambar 2.5 Program Code ... 10
Gambar 3.1 Tampilan IBConsole ... 13
Gambar 3.2 Diagram Alir Utama ... 14
Gambar 3.3 Diagram Alir Data Petugas ... 14
Gambar 3.4 Diagram Alir Data Pasien ... 15
Gambar 3.5 Diagram Alir Laporan Petugas ... 15
Gambar 3.6 Diagram Alir Laporan Pasien ... 15
Gambar 3.7 Diagram Alir Laporan Tes Buta Warna ... 16
Gambar 3.8a Diagram Alir Tes Buta Warna ... 17
Gambar 3.8b Lanjutan Diagram Alir Tes Buta Warna ... 18
Gambar 3.9 Form Menu Utama ... 20
Gambar 3.10 Form Data Petugas ... 21
Universitas Kristen Maranatha vii
Gambar 3.12 Form Tes Buta Warna 1 ... 22
Gambar 3.13 Form Tes Buta Warna 2 ... 23
Gambar 3.14 Form Tes Buta Warna 3 ... 23
Gambar 3.15 Form Laporan ... 24
Gambar 3.16 Datamodule ... 25
Gambar 3.17 Obyek Laporan ... 25
Gambar 3.18 Form Laporan Petugas ... 26
Gambar 3.19 Form Laporan Pasien ... 27
Gambar 3.20 Form Laporan Tes Buta Warna ... 27
Gambar 4.1 Tampilan Form Menu ... 28
Gambar 4.2 Tampilan Form Data Petugas ... 29
Gambar 4.3 Tampilan Form Data Pasien ... 30
Gambar 4.4 Tampilan Form Tes Buta Warna 1 ... 31
Gambar 4.5 Tampilan Form Tes Buta Warna 2 ... 31
Gambar 4.6 Tampilan Form Tes Buta Warna 3 ... 31
Gambar 4.7 Tampilan Form Tes Buta Warna 4 ... 31
Gambar 4.8 Tampilan Form Tes Buta Warna 5 ... 32
Gambar 4.9 Tampilan Form Tes Buta Warna 6 ... 32
Gambar 4.10 Tampilan Form Tes Buta Warna 7 ... 32
Gambar 4.11 Tampilan Form Tes Buta Warna 8 ... 32
Gambar 4.12 Tampilan Form Tes Buta Warna 9 ... 32
Universitas Kristen Maranatha viii
Gambar 4.14 Tampilan Form Tes Buta Warna 11 ... 33
Gambar 4.15 Tampilan Form Tes Buta Warna 12 ... 33
Gambar 4.16 Tampilan Form Tes Buta Warna 13 ... 33
Gambar 4.17 Tampilan Form Tes Buta Warna 14 ... 33
Gambar 4.18 Tampilan Form Tes Buta Warna 15 ... 33
Gambar 4.19 Tampilan Form Tes Buta Warna 16 ... 33
Gambar 4.20 Tampilan Form Tes Buta Warna 17 ... 34
Gambar 4.21 Tampilan Form Tes Buta Warna 18 ... 34
Gambar 4.22 Tampilan Form Tes Buta Warna 19 ... 34
Gambar 4.23 Tampilan Form Tes Buta Warna 20 ... 34
Gambar 4.24 Tampilan Form Tes Buta Warna 21 ... 34
Gambar 4.25 Tampilan Form Tes Buta Warna 22 ... 34
Gambar 4.26 Tampilan Form Tes Buta Warna 23 ... 35
Gambar 4.27 Tampilan Form Tes Buta Warna 24 ... 35
Gambar 4.28 Tampilan Form Laporan ... 35
Gambar 4.29 Tampilan Form Laporan Tes Buta Warna ... 36
Gambar 4.30 Tampilan Laporan Tes Buta Warna ... 37
Gambar 4.31 Tampilan Form Laporan Petugas ... 37
Gambar 4.32 Tampilan Laporan Petugas ... 38
Gambar 4.33 Tampilan Form Laporan Pasien ... 38
Universitas Kristen Maranatha ix
DAFTAR TABEL
Halaman
Tabel 3.1 Struktur Tabel Data Petugas ... 11
Tabel 3.2 Struktur Tabel Data Pasien ... 12
Tabel 3.3 Struktur Tabel Tes ... 12
Tabel 3.4 Struktur Tabel Tes Buta Warna ... 13
Tabel 3.5 Penjelasan langkah-langkah tes buta warna ... 19
LAMPIRAN A
A-1
Universitas Kristen Maranatha
LISTING PROGRAM PADA FORM PETUGAS
procedure TfrmDataPetugas.FormActivate(Sender: TObject); begin
procedure TfrmDataPetugas.Button1Click(Sender: TObject); begin
ParamByName('nip').AsString := edNIP.Text; ParamByname('nm').AsString := edNama.Text; ExecSql;
End;
dm.trButaWarna.Commit; edNIP.Clear;
edNama.Clear; edNIP.SetFocus; With dm.qProses Do Begin
Close; Sql.Clear;
A-2
Universitas Kristen Maranatha
End; end;
procedure TfrmDataPetugas.Button2Click(Sender: TObject); begin
With dm.qProses Do Begin
Close; Sql.Clear;
Sql.Add('Delete From Data'); Sql.Add('Where NIP =:nip'); Prepare;
ParamByName('nip').AsString := edNIP.Text; ExecSql;
End;
dm.trButaWarna.Commit;
With dm.qProses Do Begin
Close; Sql.Clear;
Sql.Add('Select NIP,Nama From Data'); Open;
End; end;
procedure TfrmDataPetugas.Button3Click(Sender: TObject); begin
A-3
Universitas Kristen Maranatha
LISTING PROGRAM PADA FORM PASIEN
procedure TfrmDataPasien.FormCreate(Sender: TObject); begin
list := TStringList.Create; end;
function TfrmDataPasien.UnikNomor(max:Integer):Integer; begin
repeat
result := Random(max); Application.ProcessMessages;
until (list.IndexOf(IntToStr(result))=-1) or (list.Count>=max) ; end;
procedure TfrmDataPasien.Button1Click(Sender: TObject); var
i,maxRandom:Integer; begin
Randomize;
maxRandom := 26; repeat
i := UnikNomor(maxRandom); list.Add(IntToStr(i));
if i>1 then
(Application.Components[i] as TForm).ShowModal until (list.Count>=maxRandom);
Form25.show; end;
A-4
Universitas Kristen Maranatha
list.Free end;
procedure TfrmDataPasien.Button2Click(Sender: TObject); begin
close; end;
procedure TfrmDataPasien.FormShow(Sender: TObject); begin
With dm.qData Do Begin
Close; Sql.Clear;
Sql.Add('Select Max(NoPasien) From DataPasien'); Open;
edNoPasien.Text := FormatFloat('000000',StrToFloat(Fields[0].Value)); End;
With dm.qData Do Begin
Close; Sql.Clear;
Sql.Add('Select NoPasien From DataPasien'); Open;
A-5
Universitas Kristen Maranatha
End; End;
edTgl.Text := DateToStr(Date); end;
procedure TfrmDataPasien.Button3Click(Sender: TObject); begin
With dm.qData Do Begin
Close; Sql.Clear;
Sql.Add('Insert Into DataPasien(NoPasien, Nama, Umur, JenisKelamin, Alamat, Pekerjaan, Tgl ) '+
'Values(:np, :nm, :umr, :jk, :almt, :pkj, :tgl)'); Prepare;
ParamByName('np').AsString := edNoPasien.Text; ParamByname('nm').AsString := edNama.Text; ParamByName('umr').AsString := edUmur.Text;
ParamByname('jk').AsString := cmbJenisKelamin.Text; ParamByName('almt').AsString := edAlamat.Text; ParamByname('pkj').AsString := edPekerjaan.Text; ParamByname('tgl').AsString := edTgl.Text; ExecSql;
End;
dm.trButaWarna.Commit; edNoPasien.Clear;
edNama.Clear; edUmur.Clear;
cmbJenisKelamin.Clear; edAlamat.Clear;
edPekerjaan.Clear; edTgl.Clear;
edNoPasien.SetFocus; With dm.qProses Do Begin
Close; Sql.Clear;
A-6
Universitas Kristen Maranatha
Open; End;
button3.enabled := false; button1.enabled := true; end;
procedure TfrmDataPasien.FormActivate(Sender: TObject); begin
With dm.qProses Do Begin
Close; Sql.Clear;
Sql.Add('Select NoPasien,Nama,Umur,JenisKelamin, Alamat,Pekerjaan, Tgl From DataPasien');
Open; End; end;
LISTING PROGRAM PADA FORM TES BUTA WARNA 1
implementation uses U_Array;
procedure TForm1.Button1Click(Sender: TObject); begin
jawaban[1] := StrToInt(edit1.text); if jawaban[1] <> 12 then
LISTING PROGRAM PADA FORM TES BUTA WARNA 2
implementation uses U_Array;
A-7
Universitas Kristen Maranatha
begin
jawaban[2] := StrToInt(edit1.text); if jawaban[2] <> 8 then
begin z := z+1; end; close; end;
LISTING PROGRAM PADA FORM TES BUTA WARNA 3
implementation uses U_Array;
procedure TForm18.Button1Click(Sender: TObject); begin
if RadioButton2.checked = true then begin
hasil := 'Buta Warna Parsial'; end;
if RadioButton4.checked = true then begin
hasil := 'Buta Warna Parsial'; end;
if RadioButton5.checked = true then begin
hasil := 'Buta Warna Parsial'; end;
if RadioButton6.checked = true then begin
hasil := 'Buta Warna Parsial'; end;
A-8
Universitas Kristen Maranatha
end;
LISTING PROGRAM PADA FORM TES BUTA WARNA 4
A-9
Universitas Kristen Maranatha
if hasil <> 'Buta Warna Total' then
Sql.Add('Insert Into Tes(NoPasien, Hasil) '+ 'Values(:np, :hsl)');
Prepare;
ParamByName('np').AsString := Edit1.Text; ParamByname('hsl').AsString := Edit2.text; ExecSql;
End;
dm.trButaWarna.Commit; Edit1.Clear;
Sql.Add('Select NoPasien,Hasil From Tes'); Open;
End; close; end;
procedure TForm25.FormShow(Sender: TObject); begin
A-10
Universitas Kristen Maranatha
Begin Close; Sql.Clear;
Sql.Add('Select Max(NoPasien) From DataPasien'); Open;
Edit1.Text := FormatFloat('000000',StrToFloat(Fields[0].Value)); End;
end;
LISTING PROGRAM PADA FORM LAPORAN procedure TfrmLaporan.FormShow(Sender: TObject); begin
edTgl.Text := DateToStr(Date); cmbNoPasien.Clear;
With dm.QProses Do Begin
Close; Sql.Clear;
Sql.Add('Select Distinct NoPasien From DataPasien'); Sql.Add('Order by NoPasien');
Open;
while not Eof do begin
cmbNoPasien.Items.Add(Trim(Fields[0].AsString)); Next;
end; end;
cmbNIP.Clear;
With dm.QProses Do Begin
Close; Sql.Clear;
Sql.Add('Select Distinct NIP From Data'); Sql.Add('Order by NIP');
Open;
while not Eof do begin
A-11
Universitas Kristen Maranatha
end; end; end;
procedure TfrmLaporan.cmbNoPasienChange(Sender: TObject); begin
With dm.qData Do Begin
Close; Sql.Clear;
Sql.Add('Select Nama,Umur,JenisKelamin,Alamat,Pekerjaan From DataPasien'); Sql.Add('Where NoPasien =:np');
Prepare;
ParamByName('np').AsString :=cmbNoPasien.Text; Open;
edNama.Text := Trim(Fields[0].AsString); edUmur.Text := Trim(Fields[1].AsString);
edJenisKelamin.Text := Trim(Fields[2].AsString); edAlamat.Text := Trim(Fields[3].AsString); edPekerjaan.Text := Trim(Fields[4].AsString); End;
ParamByName('np').AsString :=cmbNoPasien.Text; Open;
edHasil.Text := Trim(Fields[0].AsString); End;
end;
A-12
Universitas Kristen Maranatha
Prepare;
ParamByName('nip').AsString :=cmbNIP.Text; Open;
edNamaPegawai.Text := Trim(Fields[0].AsString); End;
end;
procedure TfrmLaporan.Button1Click(Sender: TObject); begin
With dm.qData Do Begin
Close; Sql.Clear;
Sql.Add('Select NoTes From TesButaWarna'); Open;
procedure TfrmLaporan.Button2Click(Sender: TObject); begin
With dm.qData Do Begin
A-13
Universitas Kristen Maranatha
Sql.Add('Insert Into
TesButaWarna(NoTes,NoPasien,Tgl,Nama,Umur,JenisKelamin,Alamat,Pekerjaan,Ha sil,NamaPetugas) '+
'Values (:nt, :np,:tg, :nm,:um, :jk, :alm,:pkj, :hsl,:nmp)'); Prepare;
ParamByName('nt').AsString := Trim(edNoTes.Text); ParamByName('np').AsString := Trim(cmbNoPasien.Text); ParamByName('tg').AsString := Trim(edTgl.text);
ParamByName('nm').AsString := Trim(edNama.Text); ParamByName('um').AsString := Trim(edUmur.text);
ParamByName('jk').AsString := Trim(edJenisKelamin.Text); ParamByName('alm').AsString := Trim(edAlamat.text); ParamByName('pkj').AsString := Trim(edPekerjaan.Text); ParamByName('hsl').AsString := Trim(edHasil.text);
ParamByName('nmp').AsString := Trim(edNamaPegawai.text); ExecSql; s From TesButaWarna');
Open; End; end;
procedure TfrmLaporan.FormActivate(Sender: TObject); begin s From TesButaWarna');
A-14
Universitas Kristen Maranatha
end;
procedure TfrmLaporan.Button4Click(Sender: TObject); begin
close; end;
LISTING PROGRAM PADA FORM LAPORAN PETUGAS procedure TfrmLaporanPetugas.Button1Click(Sender: TObject); begin
RvLapPetugas.execute; end;
procedure TfrmLaporanPetugas.Button2Click(Sender: TObject); begin
close; end;
LISTING PROGRAM PADA FORM LAPORAN PASIEN procedure TfrmLaporanPasien.Button1Click(Sender: TObject); begin
RvLapPasien.execute; end;
procedure TfrmLaporanPasien.Button2Click(Sender: TObject); begin
A-15
Universitas Kristen Maranatha
LISTING PROGRAM PADA FORM LAPORAN TES BUTA WARNA procedure TfrmLaporanTesButaWarna.FormShow(Sender: TObject); begin
cmbNamaPasien.Clear; With dm.QProses Do Begin
Close; Sql.Clear;
Sql.Add('Select Distinct Nama From TesButaWarna'); Sql.Add('Order by Nama');
Open;
while not Eof do begin
cmbNamaPasien.Items.Add(Trim(Fields[0].AsString)); Next;
end; end; end;
procedure TfrmLaporanTesButaWarna.Button1Click(Sender: TObject); begin
with QLTesButaWarna do begin
close; prepare;
ParamByName('nm').AsString := Trim('%'+cmbNamaPasien.Text+'%'); open;
end;
RvLapTesButaWarna.execute; end;
procedure TfrmLaporanTesButaWarna.Button2Click(Sender: TObject); begin
! " #
!
$
%
&
!
" # $
#
%
'()$ * + )
& #
,
+ )$ ) "(-.
#
$ /
) + $ ) '(& * )
'
$ /
0 $ " '()1 & " )
'
0 2( &' + ) $ ) . )
!
! " # $ % & $ '()
* ( ! " + , $ $ '()
- . $ '()
/ 0 " "() ) ! " )&(" 1 2 ) .-) .3 .%%