PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
SISTEM INFORMASI PEMBAYARAN BIAYA PERAWATAN PASIEN YANG MENGGUNAKAN ASURANSI KESEHATAN PADA SEBUAH PERUSAHAAN (Studi Kasus : Rumah Sakit Santa Maria Pekanbaru) SKRIPSI
Ditujukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Jurusan Teknik Informatika
Disusun Oleh: Vinsensius Hartanto 015314077
JURUSAN TEKNIK INFORMATIKA FAKULTAS SAINS DAN TEKNOLOGI UNIVERSITAS SANATA DHARMA YOGYAKARTA 2008
i
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
INFORMATION SYSTEM OF THE PAYMENT OF PATIENT CARE COST THAT USES HEALTH INSURANCE FROM COMPANY (Case Study : Rumah Sakit Santa Maria Pekanbaru)
A Thesis Presented as Partial Fulfillment of the Requirements to Obtain the Sarjana Teknik Degree in Informatics Engineering
By : Vinsensius Hartanto 015314077
DEPARTMENT OF INFORMATICS ENGINEERING FACULTY OF TECHNOLOGY AND SAINS SANATA DHARMA UNIVERSITY YOGYAKARTA 2008
ii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
iii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
iv
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
HALAMAN MOTTO
Tak ada sesuatupun di dunia ini yang dapat menggantikan keuletan. Talenta tidak; tak ada yang lebih umum daripada orang-orang bertalenta yang tidak sukses. Kejeniusan tidak; kejeniusan yang sia-sia sudah hampir menjadi peribahasa. Pendidikan tidak; dunia ini penuh dengan pecundang yang berpendidikan. Keuletan dan tekat kuat saja yang selamanya ampuh.
Untuk bertahan hidup, bersabarlah –pasang mata, pasang telinga dan jangan banyak omomg. Untuk menang, bersabarlah –bertahan hidup, mengatur rencana, dan menyerang dengan cepat.
Kamu bisa mendapatkan hasil lebih banyak dengan kata-kata manis dan sepucuk senjata daripada hanya dengan kata-kata manis.
Jangan sekali-kali menggunakan logika dan nalar untuk mengatur masalah manusia.
v
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
HALAMAN PERSEMBAHAN
vi
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
vii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
viii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
ABSTRAKSI Sistem informasi pembayaran biaya perawatan pasien yang menggunakan asuransi kesehatan dari perusahaan merupakan salah satu bagian dari system informasi rumah sakit yang digunakan untuk membantu proses penyelesaian tagihan perawatan pasien yang menggunakan asuransi kesehatan perusahaan. Sistem informasi ini dibuat ditujukan khususnya bagi bagian penagihan di rumah sakit Santa Maria Pekanbaru. Seperti halnya system informasi rumah sakit lainnya, sistem informasi ini memberikan beberapa manfaat antara lain membantu proses penyelesaian tagihan perawatan pasien yang menggunakan asuransi kesehatan perusahaan, mempermudah perincian biaya asuransi kesehatan, dan menghasilkan laporan penagihan yang akan dikirimkan bagian penagihan kepada pihak perusahaan atau instansi. Sistem informasi ini
diharapkan dapat
meningkatkan efisiensi dalam pengelolaan tarif, pembayaran dan penagihan. Sistem ini dibuat dengan menggunakan teknologi perangkat lunak Visual Basic.Net dengan dukungan database SQL SERVER 2000 yang diharapkan mampu dan dapat memberikan kemudahan untuk pengembangan sistem informasi rumah sakit yang lebih kompleks lagi.
ix
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
ABSTRACT
Information system of the payment of patient care cost that uses health insurance from company is one of the parts of the hospital information system which is applied to help the finishing process of patient care claim that uses the company health insurance. This information system is created especially for the sector of claiming at Saint Mary Hospital, Pekanbaru. Like the other information systems in many hospitals, this information system gives some advantages such as to help the finishing process of patient care claim that uses the company health insurance, to facilitate the details of the health insurance cost, and to produce the report of claiming which will be sent by the sector of claiming to the company or institution. This information system is expected to be able to increase the efficiency in managing the cost, payment, and claim. This system is created by applying the technology of software Visual Basic.Net which is supported by the database SQL Server 2000 that is expected to be able to give facility for the development of more complex hospital information system.
x
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
KATA PENGANTAR
Puji dan syukur penulis panjatkan kepada Tuhan Yang Maha Kuasa yang telah melimpahkan berkat-Nya sehingga penulis dapat menyelesaikan Laporan Tugas Akhir ini. Penulisan tugas akhir ini ditujukan untuk memenuhi salah satu syarat memperoleh gelar Sarjana Teknik Jurusan Teknik Informatika. Terselesaikannya penulisan tugas akhir ini tidak lepas dari peran serta beberapa pihak, baik secara langsung maupun secara tidak langsung. Oleh karena itu, penulis ingin menyampaikan terima kasih kepada pihak-pihak yang telah ikut membantu dalam penulisan tugas akhir ini, baik dalam memberikan bimbingan, petunjuk, kerjasama, kritikan, maupun saran, antara lain kepada: 1. Bapak Albertus Agung Hadhiatma, S.T., M.T., selaku Dosen Pembimbing , yang telah banyak membantu dalam memberikan bimbingan, dukungan, terutama atas pengertian dan kebijaksanaannya kepada penulis sehingga penulis dapat menyelesaikan tugas akhir ini. 2.
Ibu Agnes Maria Polina, S.Kom., M.Sc., selaku Ketua Jurusan Teknik Informatika Universitas Sanata Dharma.
3. Seluruh Dosen Universitas Sanata Dharma, khususnya Dosen yang mengajar di Teknik Informatika, yang telah memberikan dan mengajarkan banyak ilmu kepada penulis.
xi
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
4. Kepada Bapak dan Ibu yang telah dengan sabar memberikan kesempatan yang tiada batasnya dan doa yang tiada hentinya. Terima kasih atas semua perhatian dan kasih sayang yang tidak ternilai. 5.
My
Little
Sister,
Vinsensia
Harsanty
yang
telah
dengan
ikhlas
menyumbangkan dana nya demi kelangsungan hidup penulis. 6. Teman-teman kost Amarta 21 B, Pringgolayan ( GTO Community ): Singgih, B-Ronc, Neo, Anton, Yeye, Heru, Ndok, Budi, Bayu yang telah memberikan warna-warna baru bagi penulis dengan anomali masing-masing yang terkadang sangat sulit dicerna dan diterima oleh akal sehat manusia normal. 7. Teman-teman seperjuangan Daus, Yoseph, Jabrix, Nares, Andri, Celenx, Petrus yang dengan semangat dan tiada hentinya mendukung kelangsungan produksi PT. Industri Semak dan Bapak Djenggot. 8. Terima kasih juga buat Ayu (Ndut), Hana, Monic yang terus memberikan support berupa snack dan makanan-makanan ringan yang bisa didapatkan segera di warung-warung terdekat di kota anda. 9. Terima kasih juga buat Diaz dan Ajuz sebagai senior-senior dari GTO Community.
Se pe r t ika t ape pa t a h,“ Tak adaga di ngya ngt a kr e t a k” , maka penulis menyadari segala keterbatasan dalam menyelesaikan laporan tugas akhir ini. Oleh karena itu, penulis ingin menyampaikan mohon maaf apabila terdapat kesalahan dan kekurangan. Untuk itu, penulis mengharapkan kritik dan saran yang membangun dari seluruh pihak yang membutuhkan laporan tugas akhir ini.
xii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Semoga laporan tugas akhir ini dapat memberikan manfaat bagi siapa saja yang membutuhkannya. Atas segala perhatiannya dan kerjasamanya, penulis ucapkan terima kasih.
Yogyakarta, Juli 2008
Vinsensius Hartanto
( Penulis )
xiii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
DAFTAR ISI HALAMAN JUDUL ..………………………………………………………. . i HALAMAN JUDUL ...............………………………………………………. ii HALAMAN PERSETUJUAN .........................................................................
iii
HALAMAN PENGESAHAN ..........................................................................
iv
HALAMAN MOTTO ......................................................................................
v
HALAMAN PERSEMBAHAN ………………………….…………………. . vi HALAMAN PERNYATAAN KEASLIAN KARYA .....................................
vii
HALAMAN PERNYATAAN PUBLIKASI .................................................... viii ABSTRAKSI ....................................................................................................
ix
ABSTRACT .....................................................................................................
x
KATA PENGANTAR ......................................................................................
xi
DAFTAR ISI .................................................................................................... xiv DAFTAR GAMBAR ........................................................................................ xix DAFTAR TABEL ............................................................................................ xxii
BAB I . PENDAHULUAN .............................................................................
1
1.1 Latar Belakang Masalah ....................................................................
1
1.2 Batasan Masalah ................................................................................
2
1.3 Tujuan Dan Manfaat Penelitian .........................................................
3
1.4 Rumusan Masalah ..............................................................................
3
1.5 Metodologi Penelitian ........................................................................
4
1.6 Sistematika Penulisan ........................................................................
5
xiv
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
BAB II. LANDASAN TEORI ........................................................................
7
2.1 Sistem ................................................................................................
7
2.1.1 Konsep Dasar Sistem ................................................................
7
2.2 Informasi ............................................................................................
9
2.2.1 Konsep Dasar Informasi ...........................................................
9
2.2.2 Siklus Informasi ........................................................................
9
2.2.3 Kualitas Informasi ....................................................................
10
2.2.4 Nilai Informasi .......................................................................... 10 2.3 Sistem Informasi ................................................................................ 10 2.4 Metodologi Pengembangan Sistem ................................................... 11 2.4.1 Use Case Diagram .................................................................... 11 2.4.2 ERD ( Entity Relationship Diagram ) ....................................... 12 2.4.3 DFD (Data Flow Diagram ) ..................................................... 16 2.5 .NET Framework Dan Visual Basic.Net ............................................ 17 2.5.1 .NET Framework ...................................................................... 17 2.5.2 Visual Basic.Net ........................................................................ 19 2.5.2.1 Objek-objek Kontrol Visual Basic.Net ......................... 20 2.5.2.2 ADO.NET ...................................................................... 22 2.5.2.2.1 Objek Connection .......................................... 23 2.5.2.2.2 Objek Command ............................................ 23 2.5.2.2.3 Objek DataAdapter ........................................ 23 2.5.2.2.4 Objek DataReader ......................................... 23 2.5.2.2.5 Objek DataSet ................................................ 24
xv
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
2.5.2.2.6 Collection DataTable Dan DataRelation....... 24 2.6 Database Dan Microsoft SQL Server 2000 ....................................... 24 2.6.1 Database ................................................................................... 24 2.6.2 Microsoft SQL Server 2000 ...................................................... 25 2.6.2.1 Transact –SQL ............................................................. 26 2.6.2.2 Stored Procedure Dan Trigger ..................................... 26 2.6.2.2.1 Stored Procedure ........................................... 26 2.6.2.2.2 Trigger ........................................................... 26 2.7 Asuransi Kesehatan ...........................................................................
27
2.7.1 Batasan ...................................................................................... 27 2.7.2 Bentuk Pokok ............................................................................ 27 2.7.3 Macam Asuransi Kesehatan .....................................................
28
2.7.4 Pendekatan Baru ....................................................................... 32 2.7.5 Manajemen Peserta Asuransi .................................................... 34 2.7.6 Isi Perjanjian Asuransi .............................................................. 35 2.7.7 Manajemen Keuangan .............................................................. 37
BAB III. ANALISIS DAN PERANCANGAN SISTEM .............................
43
3.1 Analisis Sistem .................................................................................. 43 3.1.1 Gambaran Umum Sistem Yang Lama ...................................... 43 3.1.2 Gambaran Umum Sistem Yang Dikembangkan ....................... 44 3.2 Requirement Analysist ....................................................................... 46 3.2.1 Use Case Diagram .................................................................... 46
xvi
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
3.3 Logical Design ................................................................................... 48 3.3.1 ER Diagram .............................................................................. 48 3.3.2 Proses Modelling ( DFD Diagram ) .......................................... 49 3.3.2.1 Context Diagram ..........................................................
49
3.3.2.2 Diagram Berjenjang ...................................................... 50 3.3.2.3 Overview Diagram ........................................................ 53 3.3.2.4 Data Flow Diagram ( DFD ) ........................................ 54 3.3.2.5 Tabel Entity, Input, Output ........................................... 62 3.4 Relasi Antar Tabel ............................................................................. 64 3.5 Desain Database ................................................................................ 65 3.6 Desain Input Dan Output Sistem ....................................................... 70
BAB IV. IMPLEMENTASI SISTEM ........................................................... 77 4.1 Karakteristik Sistem ........................................................................... 77 4.2 Kebutuhan Sistem .............................................................................. 78 4.3 User Interface .................................................................................... 78 4.3.1 User Interface Proses Transaksi Administrator ........................ 79 4.3.1.1 User Interface Splash Screen ........................................ 79 4.3.1.2 User Interface Welcome Screen ................................... 80 4.3.1.3 User Interface Proses Login ......................................... 82 4.3.1.4 User Interface Halaman Utama Administrator ............. 88 4.3.1.5 User Interface Detail Data User ................................... 93 4.3.1.6 User Interface Detail Data Perusahaan ......................... 103
xvii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
4.3.1.7 User Interface Halaman Pasien Rawat Jalan ................ 106 4.3.1.8 User Interface Halaman Biaya Pasien Rawat Jalan ...... 111 4.3.1.9 User Interface Halaman Detail Pembayaran Pasien Rawat Jalan ................................................................... 116 4.3.1.10 User Interface Halaman Detail Penagihan Biaya Pasien Rawat Jalan .................................................... 123 4.3.1.11 User Interface Halaman Detail Data Dokter .............. 126 4.3.1.12 User Interface Halaman Detail Poliklinik .................. 129 4.3.1.13 User Interface Laporan ............................................... 132 4.3.2 User Interface Proses Transaksi Kasir ..................................... 137 4.3.3 User Interface Proses Transaksi Penagihan ............................. 139
BAB V. ANALISIS HASIL ............................................................................ 141 5.1 Analisis Hasil Perangkat Lunak ......................................................... 141 5.2 Kelebihan Dan Kekurangan Sistem ................................................... 148 5.2.1 Kelebihan Sistem ...................................................................... 148 5.2.2 Kekurangan Sistem ................................................................... 148
BAB. VI PENUTUP ........................................................................................ 150 6.1 Kesimpulan ........................................................................................ 150 6.2 Saran .................................................................................................. 150
DAFTAR PUSTAKA ....................................................................................... 151
xviii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xix
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
DAFTAR GAMBAR Gambar
Keterangan
Halaman
2.1
Simbol Use Case
11
2.2
Simbol Aktor
11
2.3
Contoh dari E-R Diagram
12
2.4
Contoh dari Entity
12
2.5
Contoh dari Atribut
13
2.6
Contoh dari identifier atau key
14
2.7
Contoh dari Relasi
14
2.8
Notasi dari Cardinality
15
2.9
Simbol Proses menurut Gane dan Sarson
16
2.10
Simbol dari arus data
16
2.11
Simbol kesatuan luar menurut Gane dan Sarson
17
2.12
Simbol penyimpanan data menurut Gane dan Sarson
17
3.1
Use Case Admin
46
3.2
Use Case Kasir
47
3.3
Use Case Penagihan
47
3.4
Entity Relational Model
48
3.5
Context Diagram
49
3.6
Diagram Berjenjang bagian 1
50
3.7
Diagram Berjenjang bagian 2
51
3.8
Diagram Berjenjang bagian 3
52
3.9
Overview Diagram
53
3.10
DFD Level 1 Proses 1
54
3.11
DFD Level 1 Proses 2
55
3.12
DFD Level 1 Proses 2.2
56
xix
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
3.13
DFD Level 2 Proses 1.2
56
3.14
DFD Level 2 Proses 1.4
57
3.15
DFD Level 2 Proses 1.6
57
3.16
DFD Level 2 Proses 1.8
58
3.17
DFD Level 2 Proses 1.10
58
3.19
DFD Level 2 Proses 1.14
59
3.20
DFD Level 2 Proses 1.16
60
3.21
DFD Level 2 Proses 2.4
60
3.22
DFD Level 2 Proses 3.2
61
3.23
Relasi Antar Tabel
64
3.24
Desain Splash Screen
70
3.25
Desain Menu Form Utama
70
3.26
Desain Form Login
71
3.27
Desain Form Data User
71
3.28
Desain Form Data Perusahaan
72
3.29
Desain Form Pasien
72
3.30
Desain Form Biaya Pasien Pasien
73
3.31
Desain Form Data Pembayaran Pasien Rawat Jalan
74
3.32
Desain Form Data Penagihan Biaya Pasien
75
3.33
Desain Form Data Dokter
75
3.34
Desain Form Poliklinik
76
4.1
User Interface untuk Splash Screen
79
4.2
User Interface untuk Welcome Screen
81
4.3
User Interface Proses Login
82
4.4
Kotak Pesan Konfirmasi Data Tidak Lengkap
86
4.5
Kotak Pesan Konfirmasi Data Tidak Terdaftar
86
4.6
Kotak pesan Konfirmasi Akses Ditolak
87
xx
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
4.7
Halaman Utama Administrator
88
4.8
Halaman Detail Data User
93
4.9
Halaman Data User
99
4.10
Halaman Detail Data Perusahaan
104
4.11
Halaman Data Perusahaan
105
4.12
Halaman Detail Data Pasien
107
4.13
Halaman Data Pasien
109
4.14
Halaman Detail Biaya Pasien
112
4.15
Halaman Biaya Pasien Rawat Jalan
113
4.16
Halaman Detail Pembayaran Pasien Rawat Jalan
117
4.17
Halaman Data Pembayaran Pasien Rawat Jalan
118
4.18
Halaman Detail Penagihan Pasien Rawat Jalan
124
4.19
Halaman Data Penagihan Pasien Rawat Jalan
125
4.20
Halaman Detail Data Dokter
127
4.21
Halaman Pengelolaan Dokter
128
4.22
Halaman Detail Poliklinik
129
4.23
Halaman Pengelolaan Poliklinik
130
4.24
Laporan User
133
4.25
Laporan Perusahaan
133
4.26
Laporan Pasien Rawat Jalan
134
4.27
Laporan Biaya Pasien Rawat Jalan
134
4.28
Laporan Pembayaran Pasien Rawat Jalan
135
4.29
Laporan Penagihan Pasien Rawat Jalan
135
4.30
Laporan Dokter
136
4.31
Laporan Poliklinik
136
4.32
Halaman Utama Kasir
138
4.33
Halaman Utama Penagihan
140
xxi
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
DAFTAR TABEL
Tabel
Keterangan
Halaman
2.1
Namespace Database dalam .NET Framework
19
2.2
Objek –objek Kontrol dalam Visual Basic.Net
20
2.3
Fitur Akses Database ADO.NET
22
3.1
Tabel Entity, Input, Output
62
3.2
Tabel User1
65
3.3
Tabel Role
65
3.4
Tabel Poliklinik
65
3.5
Tabel Perusahaan
66
3.6
Tabel Pembayaran
67
3.7
Tabel Pasien
68
3.8
Tabel Dokter
69
3.9
Tabel Biaya
69
xxii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
BAB I PENDAHULUAN
1.1 Latar Belakang Masalah Pesatnya perkembangan teknologi informasi saat ini memberikan dampak positif bagi dunia usaha dan masyarakat luas. Salah satu implementasinya yaitu pada sistem informasi rumah sakit yang difokuskan sebagai sarana untuk meningkatkan dan merampingkan proses pelayanan di rumah sakit. Rumah Sakit Santa Maria Pekanbaru merupakan instansi yang bergerak di bidang pelayanan kesehatan bagi masyarakat luas. Kompleksitas operasional rumah sakit kerap kali menimbulkan masalah-masalah yang berakibat pada penurunan kualitas dan efisiensi pelayanan rumah sakit. Salah satu masalah yang dialami adalah kurangnya efisiensi pada sistem administrasi dan keuangan pada bagian proses penyelesaian tagihan perawatan khususnya tagihan perawatan yang menggunakan restitusi kesehatan. Hal ini disebabkan banyaknya perusahaan dan instansi yang bekerjasama dengan pihak rumah sakit dalam memberikan tunjangan kesehatan dalam bentuk asuransi kesehatan kepada karyawannya. Untuk mengatasi masalah ini, maka salah satu alternatif
yang dapat
dilakukan adalah menyediakan suatu sistem informasi pembayaran biaya perawatan pasien yang menggunakan asuransi kesehatan dari perusahaan atau instansi. Sistem informasi tersebut merupakan salah satu bagian dari sistem informasi rumah sakit yang digunakan untuk membantu proses penyelesaian tagihan perawatan pasien yang menggunakan asuransi kesehatan perusahaan,
1
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 2
mempermudah perincian biaya asuransi kesehatan, dan menghasilkan laporan penagihan yang akan dikirimkan bagian penagihan kepada pihak perusahaan atau instansi. Sistem informasi ini diharapkan dapat meningkatkan efisiensi dalam pengelolaan tarif, pembayaran dan penagihan.
1.2 Batasan Masalah Agar perancangan ini dapat dilakukan secara tepat maka dilakukan pembatasan cakupan sistem yang meliputi: 1. Studi kasus yang dipilih adalah Rumah Sakit Santa Maria Pekanbaru. 2. Sistem Informasi hanya dibuat bagi instansi, perusahaan atau lembaga yang sudah tercatat memiliki kontrak kerja dengan pihak Rumah Sakit Santa Maria Pekanbaru. 3. Sistem Informasi ini hanya menangani pembayaran biaya perawatan yang menggunakan jasa asuransi kesehatan perusahaan pada pasien rawat jalan saja. 4. Sistem Informasi ini tidak
membahas perhitungan akuntasi biaya
perawatan yang dibayarkan secara tunai. 5. Sistem Informasi ini tidak membahas proses dan cara pembayaran tagihan oleh instansi, perusahaan atau lembaga
yang sudah tercatat memiliki
kontrak kerja dengan pihak rumah sakit. 6. Sistem Informasi yang dibuat meliputi perincian dan total biaya asuransi kesehatan perusahaan, dan pembuatan laporan penagihan untuk bagian penagihan yang digunakan untuk
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 3
7.
proses penagihan biaya ke instansi, perusahaan atau lembaga yang sudah tercatat memiliki kontrak kerja dengan pihak rumah sakit.
8. Sistem Informasi ini tidak membahas rekam medis. 9. Sistem Informasi ini tidak membahas keamanan jaringan. 10. Sistem Informasi ini dibuat dengan menggunakan perangkat lunak Visual Basic.Net untuk user interface-nya dan SQL SERVER 2000 sebagai basis data sistemnya.
1.3 Tujuan Dan Manfaat Penelitian Tujuan penelitian yang dilakukan adalah untuk membangun suatu aplikasi Sistem Informasi Pembayaran Biaya Perawatan Rumah Sakit yang dapat membantu proses penyelesain tagihan, perincian biaya tagihan, dan pembuatan laporan tagihan biaya perawatan pasien yang melakukan pembayaran dengan menggunakan asuransi kesehatan perusahaan. Sistem Informasi ini diharapkan dapat memberikan informasi biaya perawatan pasien yang menggunakan asuransi kesehatan perusahaan untuk bagian penagihan. Sistem informasi yang akan dibuat ini meggunakan bahasa pemrograman Visual Basic.Net dan database SQL Server 2000.
1.4 Rumusan Masalah Sistem informasi ini diimplementasikan untuk membantu beberapa proses dalam penyelesaian tagihan pembayaran biaya pasien rawat jalan yang menggunakan asuransi kesehatan perusahaan antara lain:
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 4
1. Membantu proses perhitungan biaya tagihan biaya perawatan pasien rawat jalan khususnya yang menggunakan asuransi kesehatan perusahaan. 2. Sistem informasi ini mempermudah perincian biaya yang akan ditagihkan ke instansi, perusahaan, dan lembaga. 3.
Sistem informasi ini menghasilkan keluaran berupa detail laporan biaya keseluruhan perawatan pasien rawat jalan berupa biaya yang harus ditanggung pasien dan biaya yang akan ditanggung oleh instansi, perusahaan,lembaga.
1.5 Metodologi Penelitian Metodologi Penelitian yang digunakan untuk membuat aplikasi Sistem Informasi Pembayaran Biaya Rumah Sakit yang Menggunakan Asuransi Kesehatan dengan Suatu Perusahaan adalah metodologi terstruktur pada tahap analisis dan perancangan sistem. Sedangkan untuk tahap implementasinya menggunakan pemrograman berorientasi objek. Adapun alat-alat dan teknik yang digunakan dalam penelitian ini adalah: 1. Observasi Yaitu pengamatan pada objek dan kegiatan secara langsung dilapangan sehingga diperoleh kebenaran data. 2. Wawancara Melakukan wawancara dengan pihak yang bersangkutan dalam hal ini bagian administrasi dan keuangan rumah sakit Santa Maria, Pekanbaru.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 5
3. Studi Literatur Mengumpulkan data dan informasi dari buku-buku, laporan-laporan , dokumen, karya ilmiah dan makalah yang dapat dijadikan sebagai bahan masukkan atau informasi yang berkaitan dengan topik. 4. Analisis Menggunakan use case diagram, diagram arus data ( DFD ) dan diagram relasi entitas ( ERD ) dalam perancangan sistem. 5. Penulisan Program Translasi disain yang lebih detail yaitu dengan penulisan program sesuai dengan disain yang telah dibuat dengan menggunakan pemrograman berorientasi objek. 6. Implementasi Perancangan Melakukan pengimplementasian program untuk menguji program berjalan dengan baik atau terjadi kekurangan.
1.6 Sistematika Penulisan BAB I PENDAHULUAN Pada Bab ini berisi tentang latar belakang masalah, rumusan masalah, batasan masalah, tujuan dan manfaat penelitian, dan metodologi penelitian yang digunakan serta sistematika isi penulisan laporan. BAB II LANDASAN TEORI Pada bab ini berisi tentang dasar teori yang akan digunakan untuk pembahasan dalam penulisan skripsi ini.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 6
BAB III ANALISIS DAN PERANCANGAN SISTEM Pada bab ini berisi tentang cara penerapan konsep dasar yang telah diuraikan pada bab sebelumnya untuk menganalisa dan merancang sebuah aplikasi sistem informasi rumah sakit yang baik berupa perancangan database, perancangan input, perancangan output maupun perancangan user interface. BAB IV IMPLEMENTASI SISTEM Pada bab ini akan berisi tentang implementasi dari perancangan yang telah dibuat yang meliputi cara kerja program yaitu berupa hasil input program maupun hasil output program. BAB V ANALISA HASIL Pada bab ini berisi tentang kelebihan dan kekurangan pada sistem yang telah dibuat. BAB VI KESIMPULAN DAN SARAN Pada bab ini berisi tentang kesimpulan dan saran dari penulisan tugas akhir yang disusun
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
BAB II LANDASAN TEORI
2.1 Sistem 2.1.1 Konsep Dasar Sistem Sistem adalah kumpulan dari elemen-elemen yang berinteraksi untuk mencapai suatu tujuan tertentu (Jogiyanto, 1999). Sebuah perusahaan juga merupakan suatu sistem. Komponen atau unsur-unsur di dalamnya seperti pemasaran,penjualan, penelitian, pembukuan, dan personalia yang mana semuanya bekerja sama untuk mencapai keuntungan baik bagi para pekerjanya maupun bagi pemilik perusahaan. 2.1.2 Karakteristik Sistem Suatu sistem mempunyai karakteristik atau sifat-sifat tertentu, yaitu mempunyai
komponen-komponen(components),
batas
sistem
(boundary),
lingkungan luar sistem (environment), penghubung (interface), masukkan (input), keluaran (output), pengolah (proses) dan sasaran (objectives) atau tujuan (goal). 1. Komponen Sistem Suatu sistem terdiri dari sejumlah komponen yang saling berinteraksi, yang artinya saling bekerja sama membentuk satu kesatuan. Komponenkomponen sistem atau elemen-elemen sistem dapat berupa suatu subsistem atau bagian-bagian dari sistem.
7
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 8
2. Batas sistem Batas sistem (boundary) merupakan daerah yang membatasi antara suatu sistem dengan sistem yang lainnya atau dengan lingkungan luarnya. Batas sistem itu memungkinkan suatu sistem dipandang sebagai satu kesatuan. Batas suatu sistem menunjukkan ruang lingkup (scope) dari sistem tersebut. 3. Lingkungan Luar Sistem Lingkungan luar (environment) dari suatu sistem adalah apapun diluar batas dari sistem yang mempengaruhi operasi sistem. a. Penghubung Sistem. Penghubung (interface) merupakan media penghubung antara satu subsistem dengan subsistem lainnya. Melalui penghubung ini memungkinkan sumber-sumber daya mengalir dari satu subsistem ke subsistem lainnya. b. Masukkan Sistem Masukan (input) adalah energi yang dimasukkan ke dalam sistem. Masukan dapat berupa masukan perawatan (maintenance input) dan masukan sinyal (signal input) agar sistem tersebut dapat beroperasi. c. Keluaran Sistem Keluaran (output) adalah hasil dari energi yang diolah dan diklasifikasikan menjadi keluaran yang berguna. Keluaran dapat merupakan masukan untuk subsistem yang lain.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 9
d. Pengolah Sistem Bagian pengolah sistem ini merupakan bagian yang akan merubah masukkan menjadi keluaran. e. Sasaran Sistem Suatu sistem pasti mempunyai tujuan (goal) atau sasaran (objective). Jika suatu sistem tidak mempunyai sasaran, maka operasi sistem tidak akan ada gunanya. Sasaran dari sistem sangat menentukan sekali masukan yang dibutuhkan sistem dan keluaran yang akan dihasilkan sistem. Sistem dikatakan berhasil bila mengenai sasaran atau tujuannya.
2.2 Informasi 2.2.1 Konsep Dasar Informasi Informasi adalah data yang diolah menjadi bentuk yang lebih berguna dan lebih berarti bagi yang menerimanya (Jogiyanto, 1999). 2.2.2 Siklus Informasi Data yang diolah melalui suatu model menjadi informasi, penerima kemudian menerima informasi tersebut, membuat suatu keputusan dan melakukan tindakan, yang berarti menghasilkan suatu tindakan lain yang akan membuat sejumlah data kembali. Data tersebut akan ditangkap sebagai input, diproses kembali lewat suatu model dan seterusnya membentuk suatu siklus. Siklus ini disebut dengan siklus informasi (information cycle). Siklus ini juga disebut dengan siklus pengolahan data (data processing cycles).
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 10
2.2.3 Kualitas Informasi Kualitas dari suatu informasi (quality of information) tergantung dari tiga hal antara lain : Akurat yang berarti informasi harus bebas dari kesalahan-kesalahan dan tidak menyesatkan dan juga harus jelas mencerminkan maksudnya. Tepat pada waktunya, berarti informasi yang datang pada penerima tidak boleh terlambat. Karena informasi merupakan landasan di dalam pengambilan keputusan. Relevan, berarti informasi tersebut mempunyai manfaat untuk pemakainya. 2.2.4. Nilai Informasi Informasi dikatakan bernilai bila manfaatnya lebih efektif dibandingkan dengan biaya mendapatkannya.
2.3 Sistem Informasi Sistem informasi adalah suatu sistem di dalam suatu organisasi yang mempertemukan kebutuhan pengolahan transaksi harian, mendukung operasi, bersifat managerial dan kegiatan startegi dari suatu organisasi dan menyediakan pihak luar tertentu dengan laporan-laporan yang diperlukan (Robert A Leitch/K. Roscoe Davis, 1983).
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 11
2.4 Metodologi Pengembangan Sistem 2.4.1 Use Case Diagram Use case diagram adalah sebuah diagram yang menggambarkan interaksi antara sistem dan eksternal sistem dan pemakai. Use case merupakan bagian dari keseluruhan sistem. Digambarkan secara grafik dengan elips yang horizontal dengan nama dari use case tertera diatas, dibawah atau di dalam ellips. Gambar 2.1 merupakan simbol use case : Simbol Use case
Gambar 2.1. Simbol Use Case Actor merupakan segala sesuatu yang dibutuhkan untuk berinteraksi dengan sistem untuk mengubah informasi. Dapat berupa orang, organisasi atau sistem informasi yang lain atau juga suatu waktu kejadian. Gambar 2.2 merupakan simbol dari actor :
Simbol Actor
Gambar 2.2. Simbol Aktor Use case depends on relationship merupakan sebuah relasi use case yang menentukan bahwa use case yang lain harus dibuat sebelum use case yang sekarang. Digambarkan sebagai anak panah yang dimulai dari satu use case dan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 12
menunjuk ke use case yang depend on kepadanya. Setiap relasi depend on diberi l a be l“ <
>” 2.4.2 ERD (Entity Relationship Diagram) ERD merupakan sebuah data model yang memanfaatkan beberapa notasi untuk menggambarkan data dalam entity dan relasi yang dijelaskan oleh data. Data
model
adalah
sebuah
teknik
untuk
mengorganisasikan
dan
mendokumentasikan data dari sistem. Juga disebut dengan database modeling. Gambar 2.3 merupakan contoh E-R diagram
Gambar 2.3. Contoh dari E-R Diagram Entity adalah sebuah kumpulan dari orang, tempat, objek, kejadian atau konsep yang diperlukan untuk menyimpan data. Nama entity berupa kata benda tunggal (singular noun). Gambar 2.4 merupakan contoh dari entity student
Gambar 2.4 Contoh dari Entity
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 13
Atribut merupakan sebuah properti yang deskriptif atau karakteristik dari sebuah entity. Sinonimnya adalah element, property, dan field.
Gambar 2.5 merupakan contoh dari atribut student
Gambar 2.5 Contoh dari Atribut Key adalah sebuah atribut atau kelompok atribut yang diasumsikan memiliki nilai yang unik untuk setiap instance. Sering juga disebut dengan identifier. 1. Concatenated key merupakan sekelompok atribut yang memiliki identitas instance dari sebuah entity yang unik Sinonimnya composite key dan compound key. 2. Candidate key merupakan satu dari nilai key yang akan berfungsi sebagai primary key dari sebuah entity. Sinonimnya adalah candidate identifier
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 14
3. Primary key merupakan sebuah candidate key yang paling umum digunakan untuk mengidentifikasikan secara unik instance dari entity yang tunggal. 4. Alternate key merupakan sebuah candidate key yang tidak dapat dipilih untuk menjadi primary key. Sinonimnya adalah secondary key. Gambar 2.6 merupakan contoh dari identifier atau key
Gambar 2.6. Contoh dari identifier atau key Relationship adalah sebuah asosiasi bisnis normal yang ada antara satu atau lebih entity. Relasi mungkin juga mewakili suatu kejadian yang menghubungkan antara entity atau logika gabungan antara entity. Gambar 2.7 merupakan contoh dari relasi
Student
Is being studied by
is enrolled in
Gambar 2.7. Contoh dari Relasi
Curriculum
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 15
Cardinality merupakan minimum dan maksimum kejadian dari sebuah entity yang dihubungkan dengan kejadian tunggal dari entity yang lain. Karena seluruh relasi adalah bidirectional maka cardinality haru didefinisikan pada kedua direction untuk setiap relasi. Gambar 2.8 merupakan notasi dari cardinality.
Gambar 2.8. Notasi dari Cardinality Foreign key adalah sebuah primary key dari sebuah entity yang digunakan oleh entity yang lain untuk mengidentifikasikan instance dari sebuah relasi. Nonspecific relationship merupakan relasi dimana banyak instance dari sebuah entity berasosiasi dengan banyak instance dari entity yang lainnya. Disebut juga dengan relasi many-to-many relationship. Nonspecific relationship harus diselesaikan. Kebanyakan dari nonspecific relationship diselesaikan dengan sebuah associative entity.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 16
Key-base data model bertujuan untuk
mengeliminasikan nonspecific
relationship jika ada, menambah asosiatif entity termasuk primary dan alternate key, dan kardinalitas yang tepat. Fully attributed data model bertujuan untuk memasukkan seluruh atribut. 2.4.3 DFD (Data Flow Diagram) Data Flow Diagram merupakan sebuah model proses yang digunakan untuk mengambarkan aliran dari data yang melalui sebuah sistem dan proses yang dibentuk oleh sistem. DFD terdiri dari 4 buah simbol yaitu : 1. Proses (Process) Proses adalah kerja yang dilakukan oleh sistem dalam merespon arus data yang datang atau suatu kondisi. Gambar 2.9 merupakan simbol proses menurut Gane dan Sarson : Nama Proses
Gambar 2.9 Simbol Proses menurut Gane dan Sarson 2. Arus data (Data Flow) Arus data adalah data sebagai masukan ke proses atau keluaran dari sebuah proses.
Gambar 2.10 merupakan simbol dari arus data : Nama Arus Data Gambar 2.10 Simbol dari arus data
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 17
Arus data juga digunakan untuk mewakili creation, reading, deleting, atau updating dari data dalam file atau database (disebut datastore atau penyimpanan data). 3. Kesatuan Luar (External Agent). Kesatuan luar adalah orang, unit organisasi, sistem atau organisasi luar yang berinteraksi dengan sistem. Disebut juga dengan external entity. Gambar 2.11 merupakan simbol kesatuan luar menurut Gane dan Sarson : Nama kesatuan luar Gambar 2.11 Simbol kesatuan luar menurut Gane dan Sarson 4. Penyimpanan data (Data Store) Penyimpanan data digunakan untuk menyimpan data hasil proses maupun menyediakan data untuk diproses. Sinonim dengan file dan database. Gambar 2.12 merupakan simbol penyimpanan data menurut Gane dan Sarson Penyimpanan data
Gambar 2.12 Simbol penyimpanan data menurut Gane dan Sarson
2.5 .NET Framework Dan Visual Basic.Net 2.5.1 .NET Framework .NET
Framework
adalah
lingkungan
untuk
membangun,
deploying/menyebarkan dan menjalankan services Web dan aplikasi lainnya (Drs. Ario Suryo Kusumo, 2004).
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 18
.NET Framework disusun oleh dua komponen utama, yaitu Common Language Runtime (runtime bahasa umum) dan .NET Framework Class Library. Secara sederhana .NET Framework adalah platform tunggal di mana semua orang dapat mengembankan aplikasi menggunakan suatu system yang mirip dengan JVM (Java Virtual Machine). Hanya berbeda dengan Java, tidak ada penghalang
bahasa
dengan
Dot
NET
sehingga
aplikasi
dapat
dikembangkanmenggunakan bahasa : VB, C++, C#, J# dan 20 bahasa-bahasa pemrograman lainnya yang kompatibel dengan Dot NET Framework. Tujuan dari .NET Framework adalah : 1. Menyediakan lingkungan pemrograman berorientasi objek, apakah kode objek disimpan dan dijalankan secara local, dijalankan secara local tetapi disebarkan melalui internet atau dijalankan secara remote (dijalankan dari suatu tempat). 2. Menyediakan lingkungan untuk menjalan suatu kode yang meminimalkan konflik saat software deployment/disebarkan dan versioning/tentang versi. 3. Menyediakan lingkungan untuk menjalankan suatu kode yang menjamin keamanan saat kode dijalankan, termasuk kode yang dibuat oleh pihak yang tidak diketahui atau pihak ketiga yang setengah dipercaya. 4. Menyediakan lingkungan untuk menjalankan suatu kode yang dapat mengeliminasi masalah performa dari lingkungan scripted dan interpreted. 5. Membuat pengembang memiliki pengalaman yang konsisten dalam berbagai tipe aplikasi seperti aplikasi berbasi Windows dan aplikasi berbasis Web.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 19
Tabel 2.1 merupakan namespace database dalam .NET Framework Namespace
Keterangan Merupakan namespace dasar bagi namespace lainnya. Berisi class untuk System.Data menangani objek utama seperti DataTable, DataColumn, DataView, dan constraint. Berisi kumpulan class yang digunakan System.Data.Common untuk mengakses sumber data Class yang menangani .NET data provider untuk sumber data OLE DB atau yang kompatibel. Class dapat digunakan untuk melakukan koneksi ke System.Data.OleDb data sumber OLE DB, menjalankan command ke sumber data dan melihat hasilnya. Class yang menangani .NET data provider untuk sumber data SQL Server. Class dapat digunakan untuk System.Data.SqlClient melakukan koneksi ke data sumber SQL Server, menjalankan command ke sumber data dan melihat hasilnya. Menyediakan class untuk tipe data System.Data.SqlTypes native dalam SQL Server. Menyediakan class untuk bekerja sama System.Data.Odbc dengan berbagai macam driver ODBC (Open DabaBase Connectivity). Tabel 2.1 Namespace database dalam .NET Framework 2.5.2 Visual Basic.Net Pengembangan aplikasi Visual Basic.Net menggunakan software Visual Studio.Net. Visual Studio.Net menyediakan lingkungan yang disebut IDE (Integrated
Development
Environment)
untuk
menyederhanakan
proses
pengembangan aplikasi. IDE ini menyediakan tool untuk mendesain, mengekesekusi dan mendebug (mencari kesalahan program) aplikasi yang dibuat. Untuk mengakses database, Visual Basic.Net menggunakan ADO.Net.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 20
2.5.2.1 Objek-objek Kontrol Visual Basic.Net Tabel 2.2 merupakan tabel objek-objek control Visual Basic.Net
Fungsi
Nama Label
LinkLabel
StatusBar Menampilkan teks (read only)
TextBox
Edit teks
RichTextBox
ListBox CheckedListBox
ComboBox ListView Memilih dari suatu daftar
PictureBox ImageList Menangani gambar
Penjelasan Menampilkan teks tetapi pemakai tidak dapat mengubahnya secara langsung Menampilkan teks dengan model link web dan akan memicu suatu event/kejadian ketika pemakai mengkliknya. Teks di-link ke jendela lain atau situs web. Terletak di bagian bawah form induk dan berisi informasi tentang keadaan aplikasi sekarang. Informasi ditampilkan dalan jendela yang memiliki frame/panel Menampilkan teks yang dapat diedit oleh pemakai pada saat program dijalankan atau diubah oleh program Menampilkan teks dengan format plain text atau rich-text format (RTF) Menampilkan daftar teks dan item gambar (icon) Menampilkan daftar item yang dapat digulung, masing-masing item disertai dengan kotak cek Menampilkan dafta drop-down dari item Menampilkan item dengan satu di antara empat cara: Tampilan teks saja, teks dengan icon kecil, teks dengan icon besar dan tampilan report Menampilkan file gambar Berfungsi sebagai tempat penyimpanan gambar. Kontrol ImageList dan gambar yang ada di dalamnya dapat digunakan pada lebih dari satu objek
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 21
DateTimePicker
MonthCalender Mengatur tanggal dan waktu Timer
MainMenu
Menampilkan kalender secara grafikal dan pemakai dapat memilih tanggal atau jam Menampilkan kalender secara grafikal pemakai dapat memilih range tanggal Untuk mengeksekusi waktu kejadian pada rutin program termasuk interval (selang waktu)
Menyediakan antarmuka untuk mendesain menu secara langsung ContextMenu Menampilkan menu popup ketika Membuat menu pemakai mengklik mouse kanan pada suatu objek Button Digunakan untuk memulai, menghentikan atau menginterupsi Command suatu proses ToolBar Berisi kumpulan kontrol tombol GroupBox Mengelompokkan kumpulan control (seperti radio button), bisa diberi label judul dan frame yang tidak dapat digulung. HelpProvider Menggabungkan help HTML dengan aplikasi Windows Tooltip Menampilkan teks ketika pemakai Bantu menunjuk pada suatu control ErrorProvider Menampilkan informasi kesalahan pemakai PrintPreviewControl Menampilkan dokumen bagaimana akan terlihat ketika dicetak PrintDocument Mengatur property mencetak dan mencetak dokumen dalam aplikasi Windows Mengatur print dan report CrystalReportViewer Menampilkan jendela bagaimana tampilan objek Crystal Report terlihat ketika dicetak Menampilkan data DataGrid Menampilkan data secara tabular dari suatu dataset Tabel 2.2 Objek-objek Kontrol dalam Visual Basic.Net
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 22
2.5.2.2 ADO.NET ADO.NET (Active X Data Objects untuk .NET Framework) adalah kumpulan class yang berisi komponen untuk melakukan koneksi, akses dan manipulasi database. Tabel 2.3 berikut berisi fitur akses data ADO.NET : Fitur
Keterangan Menggunakan objek DataSet yang Representasi data dalam memori dapat berisi satu atau lebih table yang mewakili objek DataTable Adanya objek DataRelation untuk menghubungkan baris dalam sebuah Relasi di antara banyak tabel objek DataTable dengan baris dalam objek DataTable lainnya. DataSet menggunakan akses nonsequential ke baris dalam table. Akses data tersebut mirip akses data pada suatu collection atau array. Hal ini dimungkinkan karena adanya collection Navigasi data Rows dari DataTable yang digunakan untuk mengakses baris melalui index, mengikuti relasi untuk navigasi dari baris dalam suatu tabel yang berhubungan dengan baris pada tabel lainnya. Menggunakan class Data Adapter, kemudian Data Adapter akan Koneksi Database melakukan pemanggilan ke provider OLEDB atau SQL Server ADO.NET menggunakan model koneksi disconnected database, artinya hanya sekali mengirim data dari database, setelah itu koneksinya akan Skabilitas putus. Dengan demikian koneksi tidak akan memakan sumber system sehingga akan mengurangi jumlah koneksi yang aktif. Juga akan mempermudah transfer data dari satu komponen ke lainnya Tabel 2.3 Fitur Akses Database ADO.NET
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 23
Untuk memberikan dukungan terhadap model koneksi disconnected, pada komponen ADO.NET dipisahkan antara akses data dari manipulasi data. Pemisahan ini terlihat dari dua komponen utam ADO.NET yaitu NET Data Provider dan Data Storage. Ada empat objek utama yang dimiliki NET Data Provider, yaitu objek Connection, Command, DataReader dan DataAdapter. 2.5.2.2.1 Objek Connection Objek Connection digunakan untuk membuat koneksi ke database. 2.5.2.2.2 Objek Command Setelah melakukan koneksi, dapat digunakan objek Command untuk menjalankan perintah yang akan memanggil data dari sumber data. Perintah ditentukan oleh property CommandText. Properti CommandText berisi nama tabel, Pernyataan SQL atau nama dari stored procedure dari SQL Server. 2.5.2.2.3 Objek DataAdapter Objek DataAdapter akan melakukan koordinasi antara representasi data dalam memori dan sumber data permanent. Objek DataAdapter bekerja sebagai duta antara data dengan mekanisme akses data sehingga dapat memanggil dan menyimpan data dari sumber data dan objek DataSet. 2.5.2.2.4 Objek DataReader Objek DataReader merupakan mekanisme secara cepat untuk memanggil aliran data yang bersifat forward-only dan read-only. NET Provider SQL Server melakukan
optimasasi
dalam
mekanisme
DataReader
sehingga
dapat
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 24
menggunakannya sesering yang diinginkan untuk menampilkan secara cepat data yang bersifat read-only. 2.5.2.2.5 Objek DataSet DataSet merupakan representasi data dalam memori yang memberikan model pemrograman relational yang konsisten, tanpa memperhatikan asal dari sumber data. Suatu DataSet mewakili serangkaian data secara lengkap termasuk tabel yang 2.5.2.2.6 Collection DataTable Dan DataRelation Berbeda dengan Recordset dari ADO yang hanya berisi objek tabel tunggal, DataSet dari ADO.NET berisi satu atau lebih tabel (DataTabel) yang disimpan sebagai collection DataTable (DataTableCollection). Untuk membuat relasi antartabel dapat digunakan collection DataRelation. DataSet berisi suatu collection dari objek DataRelation dalam property Relation. Tiap-tiap objek DataRelation dikaitkan dengan DataTable yang berbeda dengan menggunakan referential integrity seperti primary key, foreign key dan constraints.
2.6 Database Dan Microsoft SQL Server 2000 2.6.1 Database SQL server memakai sebuah tipe database yang dinamakan database relational. Database relational adalah database yang mengorganisasikan data dalam bentuk tabel (Ir. Inge Martina, 2003). Tabel dibentuk dengan mengelompokkan data yang mempunyai subjek yang sama. Tabel berisi baris-
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 25
baris dan kolom-kolom informasi. Tabel-tabel dapat saling berhubungan jika diinginkan. Database adalah sekumpulan data yang saling berhubungan (Ir. Inge Martina, 2003). Dalam SQL server database bukanlah sebuah file tetapi merupakan sebuah konsep logis yang berisi sekumpulan objek-objek yang berhubungan. Objek-objek dalam sebuah database antara lain : tabel, kolom, tipe data, stored procedure, trigger, rule, kunci utama (primary key), kunci tamu (foreign key), konstrain, default, view dan index. 2.6.2 Microsoft SQL Server 2000 Sistem database client/server seperti SQL server 2000 memakai sejumlah proses server untuk memanipulasi data dan mengharuskan proses client berhubungan dengan proses server menggunakan mekanisme IPC (inter-process communication) local atau remote, misalnya socket TCP/IP. Proses server adalah aplikasi server yang memproses perintah-perintah SQL. Setelah proses server menjalankan perintah-perintah, hasilnya akan dikirim kembali ke proses client melalui mekanisme IPC. Dengan cara ini sistem client/server memberikan pengaksesan yang lebih baik pada data yang dipakai bersama-sama oleh banyak user. SQL server 2000 memberikan bahasa dan antarmuka yang baik untuk pemrograman dan komunikasi pada server. Transact-SQL adalah bahasa pemrograman server yang merupakan superset dari ANSI-SQL. ANSI-SQL mendefinisikan empat perintah dasar untuk memanipulasi data yaitu SELECT, INSERT, UPDATE, DELETE dan sejumlah perintah untuk mendefinisikan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 26
struktur database. Transact-SQL menambahkan beberapa hal pada ANSI-SQL. Penambahan tersebut adalah konstruksi pemrograman yang memungkinkan pemakaian stored procedure untuk mengubah data dan trigger yang akan dijalankan, karena terjadi event tertentu. 2.6.2.1 Transact - SQL Transact adalah pengembangan dari bahasa SQL yang dipublikasikan oleh International Organization for Standardization (ISO) dan American National Standards Institute (ANSI). Perintah Transact-SQL adalah sekumpulan program yang dijalankan pada objek-objek atau data dalam database (Ir. Inge Martina, 2003). 2.6.2.2 Stored Procedure Dan Trigger 2.6.2.2.1 Stored Procedure Stored procedure adalah SQL statement yang disimpan server dalam bentuk pre-compiled statement (Ir. Inge Martina, 2003). Dengan demikian eksekusi perintah dengan stored procedure akan lebih cepat performanya. Selain itu penggunaan stored procedure juga meningkatkan security sebuah aplikasi. 2.6.2.2.2 Trigger Trigger adalah stored procedure khusus yang dijalankan secara otomatis pada saat atau sesudah modifikasi data (Ir. Inge Martina, 2003). Perintah-perintah yang akan mengaktifkan trigger adalah UPDATE, INSERT, dan DELETE. Trigger dipakai untuk integritas data dan mengimplementasikan aturan bisnis yang kompleks. Trigger memakai dua tabel maya yaitu inserted dan deleted untuk mendeteksi modifikasi data.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 27
2.7 Asuransi Kesehatan 2.7.1 Batasan Pengertian asuransi (insurance) banyak macamnya. Beberapa diantaranya yang terpenting adalah: 1. Asuransi adalah suatu upaya untuk memberikan perlindungan terhadap kemungkinan-kemungkinan yang dapat mengakibatkan kerugian ekonomi ( Breider dan Breadles, 1972). 2. Asuaransi adalah suatu perjanjian dimana sipenanggung dengan menerima suatu premi mengikatkan dirinya untuk memberi ganti rugi kepada tertanggung yang mungkin diderita karena terjadinya suatu peristiwa yang mengandung ketidakpastian dan yang akan mengakibatkan kehilangan, kerugian atau kehilangan suatu keuntungan ( Kitab UU Hukum Dagang, 1987 ).
2.7.2 Bentuk Pokok Bentuk klasik asuransi kesehatan terdiri dari tiga pihak ( third party ) yang saling berhubungan dan mempengaruhi. Ketiga pihak yang dimaksud ialah: 1. Tertanggung/peserta Yang dimaksud dengan tertanggung ( client ) atau peserta ialah mereka yang terdaftar sebagai anggota, membayar iuran ( premi ) sejumlah dan dengan mekanisme tertentu dan karena itu ditanggung biaya kesehatannya.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 28
2. Penanggung/badan asuransi Yang dimaksud dengan penanggung atau badan asuransi ( health insurance nstitution ) ialah yang bertanggung jawab mengumpulkan dan mengelola iuran serta membayar biaya kesehatan yang dibutuhkan peserta. 3. Penyedia pelayanan Yang dimaksud dengan penyedia pelayanan ( health provider ) ialah yang bertanggung jawab menyediakan pelayanan kesehatan bagi peserta dan untuk itu mendapatkan imbal jasa dari badan asuransi. Antara peserta dan badan asuransi terjalin suatu ikatan perjanjian dimana peserta ( tertanggung ) diwajibkan membayar sejumlah dana ( biasanya secara berkala ) kepada badan asuransi ( penanggung ) yang disebut premi. Besarnya premi yang harus dibayarkan ini tergantung dari kesepakatan tentang jenis pelayanan kesehatan yang ditanggung. Secara umum disebutkan jika jenis pelayanan kesehatan yang ditanggung bervariasi dan lengkap, maka jumlah premi yang dibayarkan akan besar pula. Perjanjian secara hukum antara penanggung dan tertangung ini disebut polis. Dalam polis inilah tercantum tentang hak dan kewajiban yang harus dipatuhi oleh masing-masing pihak.
2.7.3 Macam Asuransi Kesehatan Tergantung dari ciri-ciri khusus yang dimiliki, maka asuransi kesehatan dapat dibedakan atas beberapa macam yakni:
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 29
1. Ditinjau dari pengelola dana Jika ditinjau dari badan pengelola dana, asuransi kesehatan dapat dibedakan atas beberapa macam yakni: a. Asuransi kesehatan pemerintah Disebut asuransi kesehatan pemerintah ( government health insurance ), jika pengelolaan dana dilakukan oleh pemerintah. b. Asuransi kesehatan swasta Disebut asuransi kesehatan swasta ( private health insurance), jika pengelolaan dana dilakukan oleh suatu badan swasta. 2. Ditinjau dari keikutsertaan anggota Jika ditinjau dari keikutsertaan anggota, asuransi kesehatan dapat dibedakan atas dua macam yakni: a. Asuransi kesehatan wajib Pada asuransi kesehatan wajib ( compulsary health insurance ) keikutsertaan peserta bersifat wajib. Dapat berlaku untuk setiap penduduk ( national health insurance ) dan ataupun untuk kelompok tertentu saja, misalnya dalam suatu perusahaan. b. Asuransi kesehatan sukarela Pada asuransi kesehatan sukarela ( compulsary health insurance ), keikutsertaan peserta tidaklah wajib, melainkan terserah pada kemauan masing-masing. Bentuk ini berlaku jika asuransi kesehatan tersebut dikelola oleh swasta.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 30
3. Ditinjau dari jenis pelayanan yang ditanggung a. Menanggung seluruh jenis pelayanan kesehatan Pada sistem asuransi kesehatan di mana pengelola dana juga bertindak sebagai penyedia layanan, jenis pelayanan kesehatan yang ditangung biasanya mencakup seluruh jenis palayanan kesehatan ( comprehensive plans ). b. Menanggung sebagian pelayanan kesehatan saja Disini yang ditanggung hanya sebagian dari pelayanan kesehatan ( partial plans ) saja. Misalnya untuk macam pelayanan kesehatan tertentu yang umumnya membutuhkan biaya besar. 4. Ditinjau dari jumlah dana yang ditanggung Jika ditinjau dari jumlah dana yang ditanggung, asuransi kesehatan dapat dibedakan atas dua macam yakni: a. Menanggung seluruh biaya kesehatan yang diperlukan Pada sistem ini seluruh biaya kesehatan ditanggung ( first dollar principle ) oleh asuransi kesehatan. b. Hanya menanggung pelayanan kesehatan dengan biaya yang tinggi saja Asuransi kesehatan hanya menanggung pelayanan kesehatan yang membutuhkan biaya besar saja ( large loss principle ). Apabila biaya tersebut masih di bawah standar yang ditetapkan, peserta harus membayar sendiri.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 31
5. Ditinjau dari jumlah peserta yang ditanggung Jika ditinjau dari jumlah peserta yang ditanggung, asuransi kesehatan apat dibedakan atas dibedakan atas tiga macam yakni: a. Peserta adalah perseorangan ( individual health insurance ) b. Peserta adalah satu keluarga ( family health insurance ) c. peserta adalah satu kelompok ( group health insurance ) 6. Ditinjau dari peranan badan asuransi Jika ditinjau dari peranan badan asuransi, asuransi kesehatan dapat dibedakan atas dua macam yakni: a. Hanya bertindak sebagai pengelola dana Bentuk ini adalah bentuk klasik dari asuransi kesehatan yang apabila dikombinasikan dengan sistem pembayaran ke sarana kesehatan secara reimbursmet, dapat mendorong tingginya biaya kesehatan.
Tetapi
apabila
dikombinasikan
dengan
sistem
prepayment, biaya kesehatan akan dapat dikendalikan. b. Juga bertindak sebagai penyelenggara pelayanan kesehatan Pada bentuk ini akan diperoleh beberapa keuntungan yakni dapat diawasinya biaya kesehatan, tetapi juga dapat mendatangkan kerugian yaitu kurang sesuainya pelayanan kesehatan dengan kebutuhan masyarakat. 7. Ditinjau dari cara pembayaran kepada penyelenggara kesehatan Jika ditinjau dari cara pembayaran kepada penyelenggara pelayanan kesehatan, asuransi kesehatan dapat dibedakan atas dua macam yakni:
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 32
a. Pembayaran berdasarkan jumlah kunjungan peserta Di sini pembayaran dilakukan berdasarkan jumlah kunjungan peserta ( reimburstment ) yang memanfaatkan pelayanan kesehatan. b. Pembayaran dilakukan di muka Pada sistem ini, pembayaran kepada penyedia layanan pembayaran dilakukan di muka ( pre-payment), dalam arti setelah pelayanan kesehatan selesai diselenggarakan.
2.7.4 Pendekatan Baru Karena adanya masalah pada bentuk klasik asuransi kesehatan, maka pada saat ini banyak dilakukan berbagai penyempurnaan. Penyempurnaan yang dimaksud antara lain: 1. Mengganti sistem reimbursment menjadi sistem prepayment Karena sistem reimbursment dapat mendorong pelayanan yang berlebihan yang dapat memberatkan biaya kesehatan, maka pada saat ini sistem reimbursment tersebut telah tidak banyak lagi dipergunakan. Untuk menyempurnakannya, sistem reimbursment tersebut diganti menjadi sistem prepayment. Di sini biaya tidak dihitung setelah pelayanan, melainkan sebelumnya. Pada saat ini ada tiga bentuk sistem prepayment yang dikenal yakni:
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 33
a. Sistem kapitasi Yang dimaksud dengan sistem kapitasi adalah sistem pembayaran dimuka yang dilakukan oleh Badan Asuransi kepada sarana pelayanan kesehatan berdasarkan kesepakatan harga untuk setiap peserta yang dipertanggungkan. b. Sistem paket Yang dimaksud dengan sistem paket adalah sistem pembayaran di muka yang dilakukan oleh Badan Asuransi kepada sarana pelayanan kesehatan berdasarkan kesepakatan harga untuk suatu paket pelayanan kesehatan tertentu. c. Sistem anggaran Yang dimaksud dengan sistem anggaran adalah sistem pembayaran di muka yang dilakukan oleh Badan Asuransi
kepada sarana
pelayanan kesehatan berdasarkan kesepakatan harga sesuai dengan anggaran yang diajukan oleh sarana pelayanan kesehatan. 2. Menerapkan beberapa ketentuan pembatas Cara lain yang ditempuh untuk menghindari makin tingginya biaya kesehatan ialah dengan diperkenalkannya beberapa pembatasan dalam memanfaatkan pelayanan kesehatan. Pembatasan yang dimaksud banyak macamnya misalnya: a. Hanya menanggung pelayanan kesehatan yang membutuhkan biaya tinggi.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 34
Beberapa asuransi kesehatan menetapkan kebijakan menanggung pelayanan kesehatan yang membutuhkan biaya tinggi saja ( large loss principle ). b. Hanya menanggung sebagian dari biaya pelayanan kesehatan Beberapa asuransi kesehatan lainnya menetapkan kebijakan yang menanggung sebagian dari biaya kesehatan dan sebagian lainnya menjadi tanggungan peserta ( cost sharing ) 3. Memadukan badan asuransi dengan penyedia layanan. Artinya di samping bertanggung jawab mengelola dana juga bertanggung jawab menyediakan pelayanan kesehatan.
2.7.5 Manajemen Peserta Asuransi Bentuk kepesertaan program asuransi banyak macamnya. Secara umum bentuk kepesertaan yang dimaksud dapat dibedakan atas tiga macam: 1. Sebagai perseorangan Pada bentuk ini orang per orang menyatakan diri bersedia mengikuti program asuransi, mendaftarkan diri serta membayar iuran kepada Badan Asuransi, untuk kemudian berhak memperoleh pelayanan kesehatan dari sarana kesehatan,
sesuai dengan
ketentuan-ketentuan
yang
telah
disepakati. 2. Sebagai satu keluarga Pada bentuk ini satu keluarga menyatakan diri bersedia mengikuti program asuransi, mendaftarkan diri serta membayar iuran kepada Badan Asuransi.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 35
Adapun yang dimaksud dengan satu keluarga di sini dapat dibedakan atas dua macam: a. Hanya keluarga inti ( nuclear family ) yang terdiri dari seorang ayah, seorang ibu dan anak. b. Termasuk mereka yang dianggap anggota keluarga ( extended family ) seperti mertua, kemenakan dan atau pembantu rumah tangga yang didaftarkan. 3. Sebagai satu kelompok Pada bentuk ini satu kelompok anggota masyarakat tertentu, misalnya karyawan suatu perusahaan swasta, penduduk yang bertempat tinggal pada satu domisili tertentu dan atau suatu organisasi masyarakat tertentu, menyatakan diri bersedia mengikuti program asuransi, mendaftarkan diri serta membayar iuran kepada Badan Asuransi. 2.7.6 Isi Perjanjian Asuransi Isi perjanjian ( elements of contract ) hendaknya mencantumkan hal-hal sebagai berikut: a. Kondisi perjanjian Kondisi perjanjian ( term of contract ) berisikan keterangan tentang waktu mulai berlakunya perjanjian, tanggal berakhirnya perjanjian serta hal-hal khusus yang mengakibatkan batalnya perjanjian. b. Mereka yang berhak mendapatkan pelayanan menyangkut keterenagan siapa saja yang berhak mendapatkan pelayanan ( eligiblity requirement ).
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 36
c. Jenis pelayanan kesehatan yang akan diperoleh Berisi penjelasan lengkap jenis pelayanan kesehatan yang akan diperoleh. Jika ada pembatasan, misal rawat inap hanya di Rumah Sakit kelas C, maka pembatas tersebut dijelaskan secara lengkap. d. Sarana pelayanan yang dapat dimanfaatkan Berisi penjelasan mengenai sarana pelayanan kesehatan yang ditunjuk sebagai tempat pelayanan, alamat, hari buka, jam buka dan tata cara mendapatkan pelayanan secara garis besar. e. Pelayanan darurat yang dapat dimanfaatkan Berisi penjelasan pelayanan darurat yang dapat dimanfaatkan, alamat, dan tata cara mendapatkan pelayanan secara garis besar. f. Bantuan pelayanan apabila sedang berada di luar kota. Berisi penjelasan mengenai pelayanan di luar kota. g. Pembayaran iuran Uraian tata cara pembayaran iuran, termasuk jumlah, tanggal jatuh tempo, bentuk pembayaran, cara pembayaran dan tempat pembayaran. h. Mengajukan keluhan Uraian tata cara mengajukan keluhan dan tata cara penyelesaian pengaduan / perselisihan. i. Pembatalan dan pengakhiran Uraian persyaratan dan tata cara pembatalan dan pengakhiran. j. Perpanjangan kepesertaan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 37
Uraian persyaratan dan tata cara perpanjangan kepesertaan. k. Masa tenggang Berisi penjelasan mengenai masa tenggang asuransi. l. Penambahan dan perubahan jenis pelayanan Berisi penjelasan mengenai persyaratan dan tata cara penambahan dan perubahan jenis pelayanan. m. Pembatasan dan pengecualian Berisi penjelasan mengenai batasan-batasan asuransi. n. Ketentuan hukum dan perundang-undangan Uraian mengenai ketentuan hukum dan perundang-undangan yang dimaksud.
2.7.7 Manajemen Keuangan Ruang lingkup manajemen Badan Asuransi mencakup beberpa bidang yaitu: 1. Analisis aktuarial Yang dimaksud dengan analisis akturial ( actuarial analysis ) adalah analisis yang dilakukan untuk menetapkan dan menghitung besarnya iuran ( premi ) yang ditarik dari peserta, serta besarnya biaya yang harus dibayarkan oleh Badan Asuransi kepada sarana kesehatan. Untuk mencegah timbulnya resiko finansial, maka besarnya iuran yang ditarik dari peserta harus telah memperhitungkan besarnya pembayaran terhadap sarana kesehatan. Perhitungan yang dilakukan adalah sebagai berikut:
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 38
a. Menguraikan pelayanan kesehatan. b. Menentukan jenis pelayanan kesehatan yang ditanggung. c. Menetapkan sarana kesehatan. d. Menghitung biaya untuk satu kali pemanfaatan. e. Menghitung angka pemanfaatan. f. Menghitung biaya untuk tiap peserta. g. Menghitung besarnya biaya iuran. 2. Underwriting Underwriting adalah melakukan penilaian terhadap kelompok calon peserta untuk menetapkan apakah kelompok calon peserta tersebut memenuhi syarat-syarat kepesertaan sehingga keikutsertaannya dalam program asuransi tidak sampai mendatangkan resiko finansial. Teknik melakukan underwriting untuk menentukan besarnya iuran tersebut banyak macamnya. Secara umum dapat dibedakan atas tiga macam: a. Community rating. Bentuk community rating secara umum dapat dibedakan atas dua macam: Pure community rating Pada bentuk asli ini besarnya iuran ( premi ) dihitung dengan membagi rata seluruh biaya pelayanan dengan jumlah anggota yang terdaftar. Community rating by class
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 39
Pada bentuk modifikasi ini, perhitungan besarnya iuran tiap peserta telah mempertimbangkan perbedaan golongan umur, jenis kelamin, status perkawinan dan pekerjaan peserta. b. Experience rating Bentuk experience rating dapat dibedakan atas dua macam: Retrospective experience rating Besarnya
iuran
ditentukan
dari
pengalaman
menyelenggarakan pelayanan kesehatan untuk kelompok tersebut pada tahun yang lalu. Pada akhir tahun dilakukan perhitungan, jika pengeluaran lebih besar, peserta harus menambah
kekurangannya.
Jika
berlebih
harus
dikembalikan kepada peserta. Prospective experience rating Pada bentuk ini sekalipun besarnya iuran ditentukan pula oleh pengalaman tahun lalu, tetapi pada akhir tahun tidak dilakukan
perhitungan.
Keuntungan
atau
kerugian
ditanggung sendiri oleh Badan Asuransi. c. Risk rating Prinsip pokok risk rating sama dengan community rating by class. Perbedaannya penetapan besarnya iuran tidak hanya atas dasar perbedaan ciri-ciri peserta, tetapi juga atas dasar perbedaan jenis pelayanan kesehatan yang akan dipergunakan.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 40
3. Pengumpulan iuran Apabila besarnya iuran telah ditetapkan, kegiatan selanjutnya yang dilakukan adalah mengumpulkan iuran dari peserta ( collecting ). Tergantung dari bentuk kepesertaan, pengumpulan dana dari peserta bermacam-macam.
Jika
pesertanya
perseorangan
atau
keluarga,
pengumpulan dana dilakukan secara langsung. Tetapi jika berkelompok, pengumpulan dana dilakukan melalui penanggung jawab kelompok. Jika dibandingkan ketiga bentuk pengumpulan dana ini, yang terbaik adalah pengumpulan dana secara berkelompok. Pada bentuk ini, sistem administrasi yang dipergunakan akan lebih sederhana. Dampaknya, tidak hanya akan menekan biaya penyelenggaran program asuransi, tetapi juga besarnya iuran yang ditarik dari peserta. 4. Pembayaran kepada sarana kesehatan. Yang dimaksud dengan pembayaran kepada sarana kesehatan adalah pembayaran yang dilakukan oleh Badan Asuransi kepada sarana kesehatan untuk pelayanan kesehatan yang diselenggarakan oleh sarana kesehatan sesuai dengan kesepakatan. Pada saat ini pembayaran yang dilakukan adalah pemabayaran di muka ( prepayment ) yang dibedakan atas tiga macam yakni: sistem kapitasi, sistem paket, atau sistem anggaran. Khusus untuk sistem prepayment dalam bentuk paket, pembayaran dilakukan sebagai berikut: Setelah menerima surat tagihan dari sarana kesehatan, memeriksa kebenaran tagihan yang diterima tersebut.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 41
Apabila tidak ada kesalahan, maka tagihan tersebut dibayar sesuai dengan ketentuan yang telah disepakati. Apabila ditemukan kesalahan atau keragu-raguan, komunikasikan dengan sarana kesehatan secepat mungkin sehingga tidak melampaui batas tenggang waktu yang telah disepakati. Membukukan pembayaran sesuai dengan waktu pembayaran. 5. Accountability Yang dimaksud dengan accountability adalah pertanggung jawaban Badan Asuransi terhadap pengelolaan dana yang diterima dari peserta. Accountability menitik beratkan pada masalah keuangan. 6. Reinsurance Yang dimaksud reinsurance ialah upaya mengasuransikan program asuransi yang diselenggarakannya kepada badan asuransi lain, sehingga apabila terjadi resiko yang tidak diinginkan akan tersedia sejumlah dana untuk mengatasinya. Pada dasarnya reinsurance ini bermaksud untuk mengalihkan sebagian dari resiko yang dihadapi oleh Badan Asuransi kepada badan asuransi lain. 7. Insolve coverage Yang dimaksud dengan insolve coverage adalah upaya mengasuransikan program asuransi yang diselenggararkannya kepada badan asuransi lain sehingga apabila bangkrut akan tetap dapat membiayai pelayanan kesehatan yang dibutuhkan oleh peserta yang masih menjadi jaminan.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 42
Tujuan insolve coverage pada dasarnya adalah untuk berjaga-jaga terhadap kemungkinan bangkrutnya Badan Asuransi. 8. Investasi Yang dimaksud dengan investasi ialah kegiatan yang dilakukan oleh Badan Asuransi berupa penempatan sejumlah uang atau modal yang dimiliki ke dalam salah satu bentuk pemilikan dengan tujuan untuk mendapatkan suatu hasil yang menguntungkan.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
BAB III ANALISIS DAN PERANCANGAN SISTEM
3.1 Analisis Sistem 3.1.1 Gambaran Umum Sistem Yang Lama Rumah Sakit Santa Maria, Pekanbaru belum memiliki sistem informasi pembayaran biaya perawatan pasien khususnya pembayaran biaya perawatan pasien yang menggunakan restitusi biaya kesehatan dari perusahaan. Penanganan dan proses pembayaran biaya perawatan pasien yang menggunakan asuransi kesehatan seperti perhitungan biaya yang ditanggung oleh asuransi, perincian biaya yang ditanggung oleh asuransi, jumlah tagihan asuransi masih dilakukan secara manual. Di Rumah Sakit Santa Maria sendiri, terdapat bagian yang mengurusi masalah penagihan yang secara umum menjadi satu bagian dengan bagian keuangan. Bagian keuangan ini sendiri menangani secara keseluruhan semua hal yang berkaitan dengan keuangan rumah sakit. Kompleksitas yang tinggi dalam hal keuangan rumah sakit menuntut tiap bagiannya untuk bekerja secara cepat dan efisien. Bagian penagihan sendiri secara tidak langsung berhubungan dengan bagian pendaftaran pasien, dan bagian pembayaran. Bagian penagihan bertanggung jawab terhadap semua pembayaran non tunai dari pasien dalam hal ini bagi pasien yang menggunakan jasa asuransi kesehatan yang disediakan oleh instansi atau perusahaan tempat dia bekerja. Banyaknya perusahaan,instansi,dan
43
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 44
badan asuransi yang memiliki kontrak kerja dengan rumah sakit dan perbedaan kontrak
pemberian
asuransi
bagi
kliennya
mengakibatkan
pemrosesan
keuangannya menjadi lama dan sering terjadi kesalahan dalam perhitungan biaya. Bagian penagihan sendiri menerima data dari bagian pendaftaran dan pembayaran. Bagian penagihan menerima data pasien yang menggunakan jasa asuransi sedangkan dari bagian pembayaran data yang diterima berupa total biaya keseluruhan pengobatan dan perawatan pasien yang menggunakan asuransi kesehatan Data dari bagian pembayaran inilah yang nantinya akan diolah dan diproses lebih lanjut sehingga menjadi laporan perincian dan total biaya yang akan ditagihkan ke instansi, perusahaan, dan badan. 3.1.2 Gambaran Umum Sistem Yang Dikembangkan Sistem yang akan dikembangkan ini nantinya akan menangani data-data transaksi antara lain: a. Mencatat data instansi, perusahaan, dan lembaga yang sudah memiliki kontark kerja dengan rumah sakit. b. Mencatat data pasien, khususnya untuk pasien rawat jalan yang menggunakan asuransi kesehatan. c. Mencatat data pembayaran, khususnya untuk pasien rawat jalan yang meggunakan asuransi kesehatan. d. Menghasilkan laporan penagihan dari bagian penagihan yang akan ditagihkan ke instansi, perusahaan, dan lembaga. e. Menghasilkan informasi laporan penagihan dan pembayaran biaya perawatan pasien rawat jalan.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 45
Admin seetelah login dapat melakukan penambahan data yaitu penambahan data user, penambahan data instansi, perusahaan, dan lembaga asuransi, jika ada data instansi, perusahaan, dan lembaga yang masuk. Admin juga dapat melakukan penambahan dan pengubahan data pembayaran yang di peroleh dari bagian pembayaran. Selain itu admin juga dapat manambah dan mengubah data pasien rawat jalan yang di dapat dari bagian pendaftaran. Bagian penagihan setelah login dapat melihat data penagihan dan data pembayaran pasien rawat jalan. Kasir setelah sukses melakukan login dapat melihat data pembayaran pasien rawat jalan. Selain itu, kasir juga memiliki hak untuk menambah data pembayaran pasien rawat jalan dan menambah serta mengubah data pasien rawat jalan.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 46
3.2 Requirement Analysist 3.2.1 Use Case Diagram a. Admin
Admin
Gambar 3.1 Use Case Admin
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 47
b. Kasir
Kasir
Gambar 3.2 Use Case Kasir
c. Penagihan
Penagihan
Gambar 3.3 Use Case Penagihan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 48
3.3 Logical Design 3.3.1 ER Diagram POLIKLINIK
PERUSAHAAN
ID_POLI [ PK1 ]
ID_PERUSAHAAN
NAMA_POLI
NAMA_PERUSAHAAN ALAMAT_PERUSAHAAN CONTACT_PERSON UMUM ANAK SPOG BKIA THT BEDAH DALAM GIGI FISIOTERAPI KULIT MATA ODS RONTGEN LAB USG OBAT
punya punya
USER USER_NAME [ PK1 ] PASSWORD ID_ROLE
PEMBAYARAN
NO_FOLIO [ FK1 ] NO_MR [ FK2 ] ID_PERUSAHAAN NAMA_PASIEN NAMA_PERUSAHAAN B_DOKTER_DIBAYAR B_OBAT_DIBAYAR B_TAMBAHAN_DIBAYAR TOTAL_DIBAYAR TEMPAT_PENANGANAN TAMBAHAN_PELAYANAN NAMA_DOKTER SPESIALIS B_DOKTER_PENAGIHAN B_OBAT_PENAGIHAN B_TAMBAHAN_PENAGIHAN TOTAL_PENAGIHAN TGL_BAYAR ID_DOKTER [FK 3] ID_POLI [FK4]
punya
punya
punya
PASIEN
transaksi
NO_MR [ PK1 ] NAMA_PASIEN ALAMAT_PASIEN TGL_LAHIR KOTA UMUR JNS_KELAMIN STATUS AGAMA NAMA_ORTU NAMA_PERUSAHAAN ID_PERUSAHAAN TGL_MASUK
punya
punya
DOKTER
BIAYA
ID_DOKTER [ PK1 ]
NO_FOLIO [ PK1 ]
NAMA_DOKTER ALAMAT_DOKTER KOTA TELP BIDANG
NO_MR [ FK1 ] T_BIAYA_DOKTER T_BIAYA_OBAT T_BIAYA_TAMBAHAN T_BIAYA_KESELURUHAN
Gambar 3.4 Entity Relational Model
ROLE ID_ROLE [ PK1 ] ROLE
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 49
3.3.2 Proses Modelling ( DFD Diagram ) 3.3.2.1 Context Diagram
Admin
Informasi Data User, Informasi Data Perusahaan, Informasi Data Biaya Pasien Rawat Jalan, Informasi Data Pasien Rawat Jalan, Informasi Data Pembayaran Pasien Rawat Jalan, Informasi Data Penagihan Pasien Rawat Jalan, Informasi Data Dokter, Informasi Data Poliklinik
Username dan Password bagian Admin, Data User, Data Perusahaan, Data Pasien Rawat Jalan, Data Biaya Pasien Rawat Jalan, Data Pembayaran Pasien Rawat Jalan,Data Penagihan Pasien Rawat Jalan, Data Dokter, Data Poliklinik
0
Informasi Data Pasien Rawat Jalan, Informasi Data Pembayaran Pasien Rawat Jalan, Informasi Data Penagihan Pasien Rawat Jalan.
Sistem Informasi Pembayaran Biaya Perawatan Pasien yang Menggunakan Asuransi Kesehatan dari Perusahaan
Username dan Password bagian Penagihan
Penagihan
Username dan Password bagian Kasir, Data Pasien Rawat Jalan, Data Biaya Pasien Rawat Jalan, Data Pembayaran Pasien Rawat Jalan
Gambar 3.5 Context Diagram
Informasi Data Pasien Rawat Jalan, Informasi Data Biaya Pasien Rawat Jalan, Informasi Data Pembayaran Pasien Rawat Jalan
Kasir
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 50
3.3.2.2 Diagram Berjenjang
Gambar 3.6 Diagram Berjenjang bagian 1
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 51
Gambar 3.7 Diagram Berjenjang bagian 2
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 52
Gambar 3.8 Diagram Berjenjang bagian 3
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 53
3.3.2.3 Overview Diagram
Gambar 3.9 Overview Diagram
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 54
3.3.2.4 Data Flow Diagram (DFD)
Gambar 3.10 DFD Level 1 Proses 1
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 55
Gambar 3.11 DFD Level 1 Proses 2
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 56
Gambar 3.12 DFD Level 1 Proses 2.2
Gambar 3.13 DFD Level 2 Proses 1.2
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 57
Gambar 3.14 DFD Level 2 Proses 1.4
Gambar 3.15 DFD Level 2 Proses 1.6
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 58
Gambar 3.16 DFD Level 2 Proses 1.8
Gambar 3.17 DFD Level 2 Proses 1.10
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 59
Gambar 3.18 DFD Level 2 Proses 1.12
Gambar 3.19 DFD Level 2 Proses 1.14
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 60
Gambar 3.20 DFD Level 2 Proses 1.16
Gambar 3.21 DFD Level 2 Proses 2.4
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 61
Gambar 3.22 DFD Level 2 Proses 3.2
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 62
3.3.2.5 Tabel Entity, Input, Output Entity Admin
Input
Output
Username dan Password Informasi bagian
Admin,
Data
Data Informasi
User, Data
User, Data Perusahaan, Perusahaan,
Informasi
Data Pasien Rawat Jalan, Data Biaya Pasien Rawat Data Biaya Pasien Rawat Jalan,
Informasi
Data
Jalan, Data Pembayaran Pasien
Rawat
Jalan,
Pasien Rawat Jalan,Data Informasi
Data
Penagihan Pasien Rawat Pembayaran
Pasien
Jalan, Data Dokter, Data Rawat Jalan, Informasi Poliklinik
Data Penagihan Pasien Rawat Jalan, Informasi Data Dokter, Informasi Data Poliklinik
Kasir
Username dan Password Informasi
Data
Pasien
bagian Kasir, Data Pasien Rawat Jalan, Informasi Rawat Jalan, Data Biaya Data Biaya Pasien Rawat Pasien Rawat Jalan, Data Jalan, Pembayaran
Informasi
Pasien Pembayaran
Data Pasien
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 63
Rawat Jalan
Penagihan
Rawat Jalan
Username dan Password Informasi bagian Penagihan
Data
Pasien
Rawat Jalan, Informasi Data Pembayaran Pasien Rawat Jalan, Informasi Data Penagihan Pasien Rawat Jalan.
Tabel 3.1 Tabel Entity, Input, Output
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 64
3.4 Relasi Antar Tabel USER1
ROLE
USER_NAME* PASSWORD ID_ROLE
ID_ROLE* ROLE
DOKTER ID_DOKTER* NAMA_DOKTER ALAMAT_DOKTER KOTA TELP BIDANG
PERUSAHAAN ID_PERUSAHAAN* NAMA_PERUSAHAAN ALAMAT_PERUSAHAAN CONTACT_PERSON UMUM ANAK SPOG BKIA THT BEDAH DALAM GIGI FISIOTERAPI KULIT MATA ODS RONTGEN LAB USG OBAT
PEMBAYARAN
POLIKLINIK
NO_FOLIO** NO_MR** ID_PERUSAHAAN** NAMA_PASIEN NAMA_PERUSAHAAN B_DOKTER_DIBAYAR B_OBAT_DIBAYAR B_TAMBAHAN_DIBAYAR TOTAL_DIBAYAR TEMPAT_PENANGANAN TAMBAHAN_PELAYANAN NAMA_DOKTER SPESIALIS B_DOKTER_PENAGIHAN B_OBAT_PENAGIHAN B_TAMBAHAN_PENAGIHAN TOTAL_PENAGIHAN TGL_BAYAR ID_DOKTER** ID_POLI*
ID_POLI* NAMA_POLI
PASIEN BIAYA NO_MR* NAMA_PASIEN ALAMAT_PASIEN TGL_LAHIR KOTA UMUR JNS_KELAMIN STATUS AGAMA NAMA_ORTU NAMA_PERUSAHAAN ID_PERUSAHAAN** TGL_MASUK
Gambar 3.23 Relasi Antar Tabel
NO_FOLIO* NO_MR** T_BIAYA_DOKTER T_BIAYA_OBAT T_BIAYA_TAMBAHAN T_BIAYA_KESELURUHAN
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 65
3.5 Desain Database Tabel USER1 Nama Field
Tipe
Panjang
USER_NAME*
varchar
10
PASSWORD
varchar
15
ID_ROLE
int
4
Tabel 3.2 Tabel User1
Tabel ROLE Nama Field
Tipe
Panjang
ID_ROLE*
int
4
ROLE
varchar
30
Tabel 3.3 Tabel Role
Tabel POLIKLINIK Nama Field
Tipe
Panjang
ID_POLI*
varchar
4
NAMA_POLI
varchar
30
Tabel 3.4 Tabel Poliklinik
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 66
Tabel PERUSAHAAN Nama Field
Tipe
Panjang
ID_PERUSAHAAN*
varchar
4
NAMA_PERUSAHAAN
varchar
40
ALAMAT_PERUSAHAAN
varchar
40
CONTACT_PERSON
varchar
40
UMUM
int
4
ANAK
int
4
SPOG
int
4
BKIA
int
4
THT
int
4
BEDAH
int
4
DALAM
int
4
GIGI
int
4
FISIOTERAPI
int
4
KULIT
int
4
MATA
int
4
ODS
int
4
RONTGEN
int
4
LAB
int
4
USG
int
4
OBAT
int
4
Tabel 3.5 Tabel Perusahaan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 67
Tabel PEMBAYARAN Nama Field
Tipe
Panjang
NO_FOLIO*
varchar
20
NO_MR
varchar
20
ID_PERUSAHAAN
varchar
4
NAMA_PASIEN
varchar
40
NAMA_PERUSAHAAN
varchar
40
B_DOKTER_DIBAYAR
decimal
5
B_OBAT_DIBAYAR
decimal
5
B_TAMBAHAN_DIBAYAR
decimal
5
TOTAL_DIBAYAR
decimal
5
TEMPAT_PENANGANAN
varchar
20
TAMBAHAN_PELAYANAN
varchar
20
NAMA_DOKTER
varchar
40
SPESIALIS
varchar
15
B_DOKTER_PENAGIHAN
decimal
5
B_OBAT_PENAGIHAN
decimal
5
B_TAMBAHAN_PENAGIHAN
decimal
5
TOTAL_PENAGIHAN
decimal
5
TGL_BAYAR
datetime
8
ID_DOKTER
varchar
4
ID_POLI
varchar
4
Tabel 3.6 Tabel Pembayaran
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 68
Tabel PASIEN Nama Field
Tipe
Panjang
NO_MR*
varchar
20
NAMA_PASIEN
varchar
40
ALAMAT_PASIEN
varchar
40
TGL_LAHIR
datetime
8
KOTA
varchar
20
UMUR
int
4
JNS_KELAMIN
varchar
10
STATUS
varchar
15
AGAMA
varchar
15
NAMA_ORTU
varchar
40
NAMA_PERUSAHAAN
varchar
40
ID_PERUSAHAAN
varchar
4
TGL_MASUK
datetime
8
Tabel 3.7 Tabel Pasien
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 69
Tabel DOKTER Nama Field
Tipe
Panjang
ID_DOKTER*
varchar
4
NAMA_DOKTER
varchar
40
ALAMAT_DOKTER
varchar
40
KOTA
varchar
20
TELP
varchar
14
BIDANG
varchar
30
Tabel 3.8 Tabel Dokter
Tabel BIAYA Nama Field
Tipe
Panjang
NO_FOLIO*
varchar
20
NO_MR
varchar
20
T_BIAYA_DOKTER
decimal
5
T_BIAYA_OBAT
decimal
5
T_BIAYA_TAMBAHAN
decimal
5
T_BIAYA_KESELURUHAN
decimal
5
Tabel 3.9 Tabel Biaya
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 70
3.6 Desain Input Dan Output Sistem 1.Desain Form Splash Screen dan Desain Menu Gambar 3.1 merupakan desain Splash Screen yang akan menjadi tampilan awal.
Sistem Informasi Rumah Sakit
Skip
Gambar 3.24 Desain Splash Screen Gambar 3.25 merupakan desain Menu pada Form Utama File
Data
Laporan
Gambar 3.25 Desain Menu Form Utama
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 71
2. Desain Input Gambar 3.26 merupakan halaman desain Form Login
LOGIN USER
Username
Password
Reset
Login
Cance l
Gambar 3.26 Desain Form Login. Gambar 3.27 merupakan desain Form Data User. Form ini nantinya akan digunakan untuk memasukkan data user system informasi ini.
Add Username : Edit Password
:
Bagian
:
Clear Delete
Gambar 3.27 Desain Form Data User.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 72
Gambar 3.28 merupakan desain Form Data Perusahaan. Form ini digunakan untuk memasukkan data perusahaan.
ID Perusahaan : Nama Perusahaan : Alamat Perusahaan: Contact Person :
Add
Umum
Dalam
ODS
Anak
Gigi
Rontgen
SPOG
Fisiote
Lab
BKIA
Kulit
USG
THT
Mata
Edit
Bedah
Obat Obat
Clear
Delete
Gambar 3.28 Desain Form Data Perusahaan.
Gambar 3.29 merupakan desain Form Pasien
NO MR
Jenis Kelamin
Nama Pasien
Status
Alamat Pasien
Agama
Tgl Lahir
Orang Tua
Kota
ID Perusahaan
Umur
Nama Perusahaan
Add
Edit Clear
Delete
Gambar 3.29 Desain Form Pasien.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 73
Gambar 3.30 merupakan desain Form Biaya Pasien.
No Folio
:
No MR
:
Nama Pasien
:
Alamat Pasien
:
Nama Parusahaan :
Total Biaya Obat
Add
Total Biaya Dokter
Edit
Total Biaya Tambahan
Clear Hitung Total Biaya Keseluruhan
Gambar 3.30 Desain Form Biaya Pasien.
Delete
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 74
Gambar 3.31 merupakan desain Form Data Pembayaran Pasien Rawat Jalan.
No Folio
:
Tempat Penanganan
No MR
:
Tambahan Pelayanan
Nama Pasien
:
Nama Dokter
ID Perusahaan
:
Spesialis
Nama Perusahaan :
B Dokter Penagihan
B Dokter Dibayar
Hitung
B Obat Penagihan
B Obat Dibayar
B Tambah Penagihan
B Tambah Dibayar
Total Penagihan
Add
Total Dibayar
Hitung
Edit
Clear
Delete
Gambar 3.31 Desain Form Data Pembayaran Pasien Rawat Jalan.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 75
Gambar 3.32 merupakan desain Form Data Penagihan Biaya Pasien.
No.Folio
:
No.MR
:
Nama Pasien
:
Nama Perusahaan
:
Total Biaya Dibayar
:
Total Biaya Penagihan
:
Tanggal Pembayaran
:
Add
Edit Clear
Delete
Gambar 3.32 Desain Form Data Penagihan Biaya Pasien.
Gambar 3.33 merupakan desain Form Data Dokter.
ID Dokter
:
Nama Dokter
:
Spesialis
:
Alamat
:
Kota
:
No Telp
:
Add
Edit Clear
Delete
Gambar 3.33 Desain Form Data Dokter.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 76
Gambar 3.34 merupakan desain untuk Form Poliklinik.
ID Poliklinik :
Add
Nama Poliklinik :
Edit Clear
Delete
Gambar 3.34 Desain Form Poliklinik.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
BAB IV IMPLEMENTASI SISTEM
4.1 Karakteristik Sistem Sistem ini dibangun sebagai Sistem Informasi Pembayaran Biaya Perawatan Pasien yang Menggunakan Asuransi Kesehatan dari Perusahaan. Sistem ini merupakan salah satu bagian dari Sistem Informasi Rumah Sakit yang digunakan untuk membantu proses penyelesaian tagihan perawatan pasien yang menggunakan asuransi kesehatan dari perusahaan, mempermudah biaya perincian asuransi kesehatan dan menghasilkan laporan penagihan biaya pasien kepada perusahaan. Sistem ini dibuat hanya untuk menangani pasien rawat jalan. Sistem ini masih bersifat standalone dan dapat mendukung penggunaan secara multi user. Pada sistem ini terdapat tiga buah user yang masing-masing memiliki hak akses yang berbeda. Administrator yang bertindak sebagai user pada sistem ini memiliki hak akses penuh atas pengelolaan sistem seperti pengelolaan user, pengelolaan biaya pasien rawat jalan, pengelolaan dokter, pengelolaan poliklinik, pengelolaan pasien rawat jalan, pengelolaan perusahaan, pengelolaan tagihan, pengelolaan pembayaran serta pengelolaan laporan. Administrator pada system ini juga memiliki hak penuh untuk memanipulasi data pada tiap-tiap bagian. Kasir yang bertindak pada sistem ini hanya memiliki hak akses pada bagian biaya pasien rawat jalan, data pasien rawat jalan, dan pembayaran pasien rawat jalan. Kasir juga memiliki hak untuk mengakses laporan pada bagian pasien rawat jalan, data pasien rawat jalan dan pembayaran pasien rawat jalan. Sedangkan untuk
77
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 78
bagian penagihan hanya memiliki hak akses pada data pasien, data pembayaran dan data penagihan serta laporan data pasien, pembayaran dan penagihan.
4.2 Kebutuhan Sistem Untuk dapat menjalankan sistem dibutuhkan beberapa sistem penunjang antara lain: Sistem operasi windows 2000 atau windows 2000 server atau windows XP. SQL Server 2000. Net. Framework Visual Basic.Net
4.3 User Interface User interface ini merupakan implementasi dari proses modeling yang ada. Proses transaksi yang terjadi pada sistem akan dibagi menjadi tiga yaitu proses transaksi bagian administrator, proses transaksi bagian kasir, dan proses transaksi bagian penagihan.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 79
4.3.1 User Interface Proses Transaksi Administrator 4.3.1.1 User Interface Splash Screen Gambar 4.1 merupakan user interface untuk splash screen.
Gambar 4.1 User Interface untuk Splash Screen
Berikut ini adalah perintah yang digunakan untuk Splash Screen. Private Sub SplashTimer_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles SplashTimer.Tick ProgressBar1.Value += 2 If ProgressBar1.Value <= 30 Then Label4.Text = "Initialising Application ....." ElseIf ProgressBar1.Value <= 50 Then Label4.Text = "Loading Data Component ....." ElseIf ProgressBar1.Value <= 70 Then Label4.Text = "Integration Database ...." ElseIf ProgressBar1.Value <= 100 Then Label4.Text = "Please Wait ...." End If If ProgressBar1.Value = 98 Then Dim form As New Welcome form.ShowDialog() End If
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 80
If ProgressBar1.Value = 100 Then SplashTimer.Dispose() Timer.Dispose() Me.Visible = False End If End Sub Private Sub Timer_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer.Tick If bool = True Then bool = Not bool ElseIf bool = False Then bool = Not bool End If If bool = True Then Me.Label3.Visible = Me.Label5.Visible = Me.Label7.ForeColor Else Me.Label3.Visible = Me.Label5.Visible = Me.Label7.ForeColor End If End Sub
False False = System.Drawing.Color.BlueViolet True True = System.Drawing.Color.Violet
Private Sub Label7_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label7.Click Dim form As New Welcome SplashTimer.Dispose() Timer.Dispose() Me.Visible = False form.ShowDialog() End Sub
4.3.1.2 User Interface Welcome Screen Setelah proses loading pada splash screen selesai maka akan muncul user interface welcome screen. Gambar 4.2 merupakan user interface untuk welcome screen.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 81
Gambar 4.2 User Interface untuk Welcome Screen
Welcome Screen ini berfungsi sebagai halaman muka dari sistem yang akan digunakan oleh user. Jika user ingin masuk ke dalam sistem maka user dapat menekan tombol Sign In yang tersedia dan jika user ingin keluar dari sistem maka user dapat menekan tombol Exit. Berikut ini adalah perintah yang digunakan pada welcome screen untuk proses Sign In. Private Sub btnSignIn_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSignIn.Click Dim form As New Login form.Show() Me.Hide() End Sub
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 82
4.3.1.3 User Interface Proses Login Setelah user menekan tombol Sign In pada welcome screen, maka akan muncul user interface proses login. Gambar 4.3 merupakan user interface untuk proses login.
Gambar 4.3 User Interface Proses Login
Berikut ini adalah perintah untuk user interface proses login. Dim i As Integer Private Sub btnLogin_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnLogin.Click If txtUser.Text = "" And txtPassword.Text = "" Then MsgBox("Data Login Tidak Lengkap", MsgBoxStyle.OKOnly, "Info") txtUser.Focus() ElseIf txtUser.Text = "" Then MsgBox("Data User Name Masih Kosong", MsgBoxStyle.OKOnly, "Info") txtUser.Focus() ElseIf txtPassword.Text = "" Then MsgBox("Silahkan masukkan Password anda", MsgBoxStyle.OKOnly, "Info") txtPassword.Focus() Else Try Dim Conn As SqlConnection Conn = Database() Conn.Open() Dim myReader As SqlDataReader Dim Id_Role As Integer
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 83
Dim command As SqlCommand Dim sql As String = "Select Id_Role from User1 Where User_Name= '" & txtUser.Text.Trim & "' And Password= '" & txtPassword.Text.Trim & "' " command = New SqlCommand(sql, Conn) myReader = command.ExecuteReader() If myReader.HasRows Then i = 0 While myReader.Read() Id_Role = myReader.Item("ID_ROLE") End While myReader.Close() End If If Id_Role = 1 Then Show_Admin() Me.Hide() ElseIf Id_Role = 2 Then Show_Kasir() Me.Hide() ElseIf Id_Role = 3 Then Show_Penagihan() Me.Hide() Else i = i + 1 MsgBox("Maaf, Login dan Password Anda Tidak Terdaftar!!!", MsgBoxStyle.OKOnly, "Info") Clear() If i = 3 Then MsgBox("Maaf, Anda Bukan User, Akses Masuk Anda Ditolak!!!", MsgBoxStyle.Exclamation, "Warning") Dim form As New Welcome form.Show() Me.Hide() End If End If Conn.Close() Catch ex As Exception MessageBox.Show("Maaf, Anda Bukan User, Akses Masuk Anda Ditolak!!!", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Information) Dim form As New Welcome Form.Show() Me.Hide() End Try End If End Sub
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 84
Berikut ini adalah perintah untuk koneksi ke database SQL Server 2000. Module Connection Public Function Database() Dim myConn As SqlConnection myConn = New SqlConnection("server=CHIMERA; database=RS; Trusted_Connection=yes") Return myConn End Function End Module
Berikut ini adalah perintah untuk fungsi membaca data numeric, membaca database, dan mengeksekusi query pada database. Module Fungsi Private myConn As SqlConnection Public Function getNumeric(ByVal sqlQuery As String) As Integer myConn = Database() myConn.Open() Dim myReader As SqlDataReader Dim cmd As SqlCommand Dim data As Integer cmd = New SqlCommand(sqlQuery, myConn) myReader = cmd.ExecuteReader Try If myReader.Read Then data = myReader.GetValue(0) End If Catch ex As Exception MessageBox.Show("Failed to reader cause " & ex.Message, "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error) End Try myReader.Close() myConn.Close() Return data End Function Public Function isEmpty(ByVal sqlQuery As String) As Integer myConn = Database() myConn.Open() Dim myReader As SqlDataReader Dim cmd As SqlCommand cmd = New SqlCommand(sqlQuery, myConn) myReader = cmd.ExecuteReader Try If myReader.HasRows Then isEmpty = 0 Else isEmpty = 1
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 85
End If Catch ex As Exception MessageBox.Show("Failed to reader cause " & ex.Message, "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error) End Try myReader.Close() myConn.Close() Return isEmpty End Function Public Function executeQuery(ByVal sqlQuery As String) myConn = Database() myConn.Open() Try Dim commandExe As New SqlCommand(sqlQuery, myConn) commandExe.ExecuteNonQuery() Catch ex As Exception MessageBox.Show("Failed to reader cause " & ex.Message, "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error) End Try myConn.Close() End Function End Module
Proses login ini harus dilakukan oleh semua user untuk bisa menggunakan aplikasi ini. Data yang diinputkan adalah nama user dan data password petugas. Jika data yang diinputkan tidak sesuai, maka aplikasi tidak bisa digunakan oleh user. Jika user lupa memasukkan salah satu dari nama user atau data passwordnya maka akan muncul kotak pesan yang mengatakan bahwa data yang dimasukkan tidak lengkap, dan diharapkan user melengkapi data inputannya. Gambar 4.4 merupakan user interface yang berupa kotak pesan pemberitahuan bahwa data yang dimasukkan belum lengkap.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 86
Gambar 4.4 Kotak Pesan Konfirmasi Data Tidak Lengkap
Jika data login yang diinputkan salah maka akan muncul kotak pesan pemberitahuan bahwa data yang diinputkan tidak terdaftar . Gambar 4.5 merupakan user interface yang berupa kotak pesan pemberitahuan bahwa data yang dimasukkan salah atau tidak terdaftar.
Gambar 4.5 Kotak Pesan Konfirmasi Data Tidak Terdaftar
Jika data login yang dimasukkan user salah selama tiga kali maka akan muncul kotak pesan pemberitahuan bahwa akses masuk ditolak dan user otomatis
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 87
akan keluar dari aplikasi. Gambar 4.6 merupakan user interface yang berupa kotak pesan pemberitahuan bahwa akses masuk ditolak.
Gambar 4.6 Kotak Pesan Konfirmasi Akses Ditolak
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 88
4.3.1.4 User Interface Halaman Utama Administrator Setelah proses login berhasil, selanjutnya user akan masuk ke halaman utama. Halaman utama yang ditampilkan sesuai dengan hak akses atau bagian masing-masing dari user. Gambar 4.7 merupakan user interface halaman utama untuk administrator.
Gambar 4.7 Halaman Utama Administrator Berikut ini adalah perintah untuk user interface halaman utama administrator. Public Class frmUtama Inherits System.Windows.Forms.Form Private Sub Form3_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load mnuLogin.Enabled = False End Sub Private Sub mnuLapPembayaran_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuLapPembayaran.Click Dim frmlappembayaran As New frmLapPembayaran frmlappembayaran.ShowDialog()
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 89
End Sub Private Sub mnuExit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuExit.Click End End Sub Private Sub mnuPerusahaan_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuPerusahaan.Click Dim frmdetailperusahaan As New frmDetailPerusahaan frmdetailperusahaan.ShowDialog() End Sub Private Sub mnuLapPerusahaan_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuLapPerusahaan.Click Dim frmlapperusahaan As New frmLapPerusahaan frmlapperusahaan.ShowDialog() End Sub Private Sub mnuPenagihan_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuPenagihan.Click Dim frmdetailpenagihan As New frmDetailPenagihan frmdetailpenagihan.ShowDialog() End Sub Private Sub mnuLogin_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuLogin.Click Dim form As New Login form.MdiParent = Me form.Show() End Sub Private Sub mnuLogout_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuLogout.Click Dim form As New Welcome form.Show() Me.Hide() End Sub Private Sub mnuUser_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuUser.Click Dim frmdetailuser As New frmDetailUser frmdetailuser.ShowDialog() End Sub Private Sub mnuPasien_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuPasien.Click Dim frmdetailpasien As New frmDetailPasien frmdetailpasien.ShowDialog() End Sub Private Sub mnuContact_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuContact.Click Dim HelpUser As New Help HelpUser.ShowDialog() End Sub
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 90
Private Sub mnuPembayaran_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuPembayaran.Click Dim frmdetailpembayaran As New frmDetailPembayaran frmdetailpembayaran.ShowDialog() End Sub Private Sub mnuData_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuData.Click End Sub Private Sub mnuBiaya_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuBiaya.Click Dim frmdetailbiaya As New frmDetailBiaya frmdetailbiaya.ShowDialog() End Sub Private Sub mnuLapUser_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuLapUser.Click Dim frmlapuser As New frmLapUser frmlapuser.ShowDialog() End Sub Private Sub mnuDokter_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuDokter.Click Dim frmdetaildokter As New frmDetailDokter frmdetaildokter.Show() End Sub Private Sub mnuPoliklinik_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuPoliklinik.Click Dim frmdetailpoli As New frmDetailPoli frmdetailpoli.ShowDialog() End Sub Private Sub mnuLapPasien_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuLapPasien.Click Dim frmlappasien As New frmLapPasien frmlappasien.ShowDialog() End Sub Private Sub mnuLapBiaya_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuLapBiaya.Click Dim frmlapbiaya As New frmLapBiaya frmlapbiaya.ShowDialog() End Sub Private Sub mnuLapPenagihan_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuLapPenagihan.Click Dim frmlappenagihan As New frmLapPenagihan frmlappenagihan.ShowDialog() End Sub Private Sub mnuLapDokter_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuLapDokter.Click
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 91
Dim frmlapdokter As New frmLapDokter frmlapdokter.ShowDialog() End Sub Private Sub mnuLapPoliklinik_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuLapPoliklinik.Click Dim frmlappoliklinik As New frmLapPoli frmlappoliklinik.ShowDialog() End Sub Private Sub mnuFile_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuFile.Click End Sub End Class
Pada halaman utama untuk administrator ini terdapat menu File, Data, Laporan, dan Help.
Menu File terdiri dari sub menu: Login Logout Exit Menu Data terdiri dari sub menu: User Perusahaan Pasien Rawat Jalan Biaya Pasien Rawat Jalan Pembayaran Pasien Rawat Jalan Penagihan Pasien Rawat Jalan Dokter
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 92
Poliklinik Menu Laporan terdiri dari sub menu: Laporan User Laporan Perusahaan Laporan Pasien Rawat Jalan Laporan Biaya Pasien Rawat Jalan Laporan Pembayaran Pasien Rawat Jalan Laporan Penagihan Pasien Rawat Jalan Laporan Dokter Laporan Poliklinik
Menu Help terdiri dari sub menu : About
Setiap menu dan sub menu pada halaman utama administrator mempunyai fungsi yang berbeda. Menu File, menu ini berisi sub menu yang mendukung proses login, logout, dan exit bagi administrator. Menu Data, menu ini berisi sub menu yang digunakan untuk mengakses dan memanipulasi semua data yang berada dalam sistem informasi ini. Administrator memiliki hak akses penuh pada bagian menu Data ini. Menu Laporan, menu ini berisi sub menu yang digunakan untuk proses pembuatan laporan. Sedangkan menu Help berisi keterangan singkat tentang program.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 93
4.3.1.5 User Interface Detail Data User Untuk mengakses dan memanipulasi data user, administrator harus masuk ke user interface detail data user dengan cara memilih sub menu User yang terdapat pada menu Data. Gambar 4.8 merupakan halaman detail data user untuk bagian admnistrator.
Gambar 4.8 Halaman Detail Data User
Halaman ini menampilkan user name, password, dan bagian dari user dalam bentuk form data grid. Pada halaman detail data user ini juga terdapat tombol Add yang berfungsi untuk menambah data user, tombol Edit yang berfungsi untuk mengupdate data user, tombol Delete yang berfungsi untuk menghapus data user, tombol Refresh yang berfungsi untuk menampilkan keseluruhan data user yang ada di database, dan tombol Exit yang berfungsi untuk keluar dari program. Halaman detail data user ini juga dilengkapi dengan dengan fasilitas pencarian
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 94
user dengan kategori pencarian berdasarkan user name dan bagian. Berikut ini adalah perintah untuk user interface halaman detail data user. Imports System.Data Imports System.Data.SqlClient Public Class frmDetailUser Inherits System.Windows.Forms.Form Public Sub Data_Grid() Dim myConn As SqlConnection Dim daUser As SqlDataAdapter Dim dsUser As DataSet myConn = Database() myConn.Open() Dim sqlselect As String = "Select User1.User_Name 'User Name',User1.Password 'Password',ROLE.Role 'Bagian' from User1,ROLE Where" & _ " ROLE.Id_Role=User1.Id_Role" daUser = New SqlDataAdapter(sqlselect, myConn) dsUser = New DataSet daUser.Fill(dsUser, "USER1") dgUser.DataSource = dsUser dgUser.DataMember = ("USER1") dgUser.ReadOnly = True myConn.Close() End Sub Private Sub dgUser_DoubleClick(ByVal sender As Object, ByVal e As System.EventArgs) Handles dgUser.DoubleClick If isEmpty("Select User1.User_Name 'User Name',User1.Password 'Password',ROLE.ROLE 'Bagian' from User1,ROLE Where" & _ " ROLE.Id_Role=User1.Id_Role order by User_Name") Then MsgBox("Data kosong", MsgBoxStyle.Exclamation, "Info") ElseIf (dgUser.IsSelected(dgUser.CurrentRowIndex)) Then Dim frmDataUser As New frmdatauser Dim myConn As SqlConnection Dim myReader As SqlDataReader myConn = Database() myConn.Open() Dim sql As String Try sql = "Select User1.User_Name,User1.Password,ROLE.ROLE from User1,ROLE Where" & _ " User1.User_Name='" & Trim(dgUser.Item(dgUser.CurrentRowIndex, 0)) & "' and ROLE.ID_ROLE=USER1.ID_ROLE" Dim command As SqlCommand = New SqlCommand(sql, myConn) myReader = command.ExecuteReader() If myReader.HasRows Then While myReader.Read() frmDataUser.txtUsername.Text =
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 95
myReader.Item("USER_NAME") frmDataUser.txtPassword.Text = myReader.Item("PASSWORD") frmDataUser.cmbBagian.Text = myReader.Item("ROLE") frmDataUser.flag = 1 frmDataUser.txtUsername.Enabled = False frmDataUser.btnAdd.Enabled = False frmDataUser.ShowDialog() End While myReader.Close() Else Clear() End If Catch ex As Exception MsgBox("Error: " & ex.Source & ": " & ex.Message, MsgBoxStyle.Critical, "Koneksi Error !!") Finally myConn.Close() End Try Else MsgBox("Pilih Data Terlebih Dahulu", MsgBoxStyle.Exclamation, "Info") End If End Sub Private Sub btnAdd_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAdd.Click Dim frmDataUser As New frmdatauser frmDataUser.btnEdit.Enabled = False frmDataUser.btnDelete.Enabled = False frmDataUser.txtUsername.Focus() frmDataUser.Show() End Sub Private Sub btnSearch_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSearch.Click Dim myConn As SqlConnection If cmbKategori.Text = "" Then MsgBox("Masukan Kategori Masih Kosong", MsgBoxStyle.Exclamation, "Info") cmbKategori.Focus() Else myConn = Database() myConn.Open() Dim sql As String Try If cmbKategori.Text = "User Name" Then Dim daUser As SqlDataAdapter Dim dsUser As DataSet myConn = Database() myConn.Open() Dim sqlselect As String = "Select USER1.USER_NAME as [User Name],USER1.PASSWORD as [Password],ROLE.ROLE as [Bagian] from USER1,ROLE Where" & _
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 96
" USER1.USER_NAME like '%" + txtSearch.Text + "%' and ROLE.ID_ROLE=USER1.ID_ROLE order by USER_NAME" daUser = New SqlDataAdapter(sqlselect, myConn) dsUser = New DataSet daUser.Fill(dsUser, "USER1") dgUser.DataSource = dsUser dgUser.DataMember = ("User1") dgUser.ReadOnly = True myConn.Close() Else Dim daUser As SqlDataAdapter Dim dsUser As DataSet myConn = Database() myConn.Open() Dim sqlselect As String = "Select USER1.USER_NAME as [User Name],USER1.PASSWORD as [Password],ROLE.ROLE as [Bagian] from USER1,ROLE Where" & _ " ROLE.ROLE like '%" + cmbCari.Text + "%' and ROLE.ID_ROLE=USER1.ID_ROLE order by USER_NAME" daUser = New SqlDataAdapter(sqlselect, myConn) dsUser = New DataSet daUser.Fill(dsUser, "USER1") dgUser.DataSource = dsUser dgUser.DataMember = ("USER1") dgUser.ReadOnly = True myConn.Close() End If Catch ex As Exception MsgBox("Error: " & ex.Source & ": " & ex.Message, MsgBoxStyle.Critical, "Koneksi Error !!") Finally myConn.Close() End Try End If End Sub
Private Sub btnDelete_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDelete.Click If isEmpty("Select USER1.USER_NAME as 'User Name',USER1.PASSWORD as 'Password',ROLE.ROLE as 'Bagian' from USER1,ROLE Where ROLE.ID_ROLE=USER1.ID_ROLE order by USER_NAME") Then MsgBox("Data kosong", MsgBoxStyle.Exclamation) ElseIf (dgUser.IsSelected(dgUser.CurrentRowIndex)) Then Dim myConn As SqlConnection Try myConn = Database() myConn.Open() Dim deleteUsername As String = Trim(dgUser.Item(dgUser.CurrentRowIndex, 0)) If (MessageBox.Show("Apakah anda yakin akan menghapus data " & Trim(dgUser.Item(dgUser.CurrentRowIndex, 0)) & " ?", "Info", MessageBoxButtons.YesNo, MessageBoxIcon.Question) = DialogResult.Yes) Then
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 97
Dim sql As String = "Delete From USER1" & _ " Where USER_NAME='" & Trim(deleteUsername) & "'" Dim command As SqlCommand = New SqlCommand(sql, myConn) Try Dim status As Integer = command.ExecuteNonQuery() If status = 1 Then MsgBox("Hapus Data Berhasil", MsgBoxStyle.Information, "Konfirmasi") Else MsgBox("Hapus Data Gagal", MsgBoxStyle.Critical, "Konfirmasi") End If Data_Grid() Clear() Catch ex As Exception MsgBox("Error: " & ex.Source & ": " & ex.Message, MsgBoxStyle.Critical, "Koneksi Error !") End Try Else Clear() End If Clear() Data_Grid() Catch ex As Exception MsgBox("Error: " & ex.Source & ": " & ex.Message, MsgBoxStyle.Critical, "Koneksi Error !") Clear() Finally myConn.Close() End Try Else MsgBox("Pilih Data Terlebih Dahulu", MsgBoxStyle.Exclamation, "Info") End If End Sub Private Sub btnRefresh_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnRefresh.Click Clear() Data_Grid() End Sub Private Sub btnEdit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnEdit.Click If isEmpty("Select USER1.USER_NAME as 'User Name',USER1.PASSWORD as 'Password',ROLE.ROLE as 'Bagian' from USER1,ROLE Where ROLE.ID_ROLE=USER1.ID_ROLE order by USER_NAME") Then MsgBox("Data kosong", MsgBoxStyle.Exclamation) ElseIf (dgUser.IsSelected(dgUser.CurrentRowIndex)) Then Dim frmDataUser As New frmdatauser Dim myConn As SqlConnection Dim myReader As SqlDataReader
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 98
myConn = Database() myConn.Open() Dim sql As String Try sql = "Select USER1.USER_NAME,USER1.PASSWORD,ROLE.ROLE from USER1,ROLE Where" & _ " USER1.USER_NAME='" & Trim(dgUser.Item(dgUser.CurrentRowIndex, 0)) & "' and ROLE.ID_ROLE=USER1.ID_ROLE" Dim command As SqlCommand = New SqlCommand(sql, myConn) myReader = command.ExecuteReader() If myReader.HasRows Then While myReader.Read() frmDataUser.txtUsername.Text = myReader.Item("USER_NAME") frmDataUser.txtPassword.Text = myReader.Item("PASSWORD") frmDataUser.cmbBagian.Text = myReader.Item("ROLE") frmDataUser.txtUsername.Enabled = False frmDataUser.flag = 1 frmDataUser.btnAdd.Enabled = False frmDataUser.ShowDialog() End While myReader.Close() Else Clear() End If Catch ex As Exception MsgBox("Error: " & ex.Source & ": " & ex.Message, MsgBoxStyle.Critical, "Koneksi Error !!") Finally myConn.Close() End Try Else MsgBox("Pilih Data Terlebih Dahulu", MsgBoxStyle.Exclamation, "Info") End If End Sub Private Sub btnMain_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Dim frmMenuUtama As New frmUtama frmMenuUtama.Show() Me.Hide() End Sub Private Sub btnExit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnExit.Click End End Sub
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 99
Jika tombol Add ditekan maka akan tampil halaman data user. Halaman ini digunakan untuk memasukkan data user baru. Gambar 4.9 merupakan user interface halaman input data user.
Gambar 4.9 Halaman Data User
Berikut ini adalah perintah untuk user interface halaman data user: Imports System.Data Imports System.Data.SqlClient Public Class frmdatauser Inherits System.Windows.Forms.Form Public flag As Integer Private Sub btnAdd_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAdd.Click Try Dim myConn As SqlConnection Dim myReader As SqlDataReader myConn = Database() myConn.Open() If txtUsername.Text = "" Then MsgBox("Silahkan masukkan User Name anda", MsgBoxStyle.Information, "Info") txtPassword.Clear() txtUsername.Focus() ElseIf txtPassword.Text = "" Then MsgBox("Silahkan masukkan Password anda",
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 100
MsgBoxStyle.Information, "Info") txtPassword.Focus() ElseIf cmbBagian.SelectedItem = "" Then MsgBox("Silahkan pilih Bagian anda", MsgBoxStyle.Information, "Info") cmbBagian.Focus() Else Dim ans = MsgBox("Anda yakin akan menambahkan data tersebut?", MsgBoxStyle.OKCancel, "Konfirmasi") If ans = 1 Then Dim User_Name As String Dim sqlSelect As String = "Select USER_NAME" & _ " From USER1 Where USER_NAME ='" & Trim(txtUsername.Text) & "'" Dim comm As SqlCommand = New SqlCommand(sqlSelect, myConn) myReader = comm.ExecuteReader() If myReader.HasRows Then While myReader.Read() User_Name = myReader.Item("USER_NAME") End While End If myReader.Close() If User_Name = txtUsername.Text Then MessageBox.Show("Data User " & Trim(txtUsername.Text) & " sudah ada ", "Konfirmasi", MessageBoxButtons.OK, MessageBoxIcon.Error) Clear() Else Dim sql As String = "Insert Into USER1(USER_NAME,PASSWORD,ID_ROLE)" & _ " Values('" & Trim(txtUsername.Text) & "','" & Trim(txtPassword.Text) & "','" & Trim(cmbBagian.SelectedIndex + 1) & "')" Dim command As SqlCommand = New SqlCommand(sql, myConn) Try Dim status As Integer = command.ExecuteNonQuery() If status = 1 Then MessageBox.Show("Data User " & Trim(txtUsername.Text) & " telah ditambahkan", "Konfirmasi", MessageBoxButtons.OK, MessageBoxIcon.Information) Clear() Else MessageBox.Show("Data User " & Trim(txtUsername.Text) & " gagal ditambahkan", "Konfirmasi", MessageBoxButtons.OK, MessageBoxIcon.Error) End If
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 101
Catch ex As Exception MsgBox("Error: " & ex.Source & ": " & ex.Message, MsgBoxStyle.OKOnly, "Koneksi Error !!") Clear() End Try End If End If myConn.Close() End If Catch ex As Exception MsgBox("Error: " & ex.Source & ": " & ex.Message, MsgBoxStyle.OKOnly, "Koneksi Error !") End Try End Sub Private Sub btnEdit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnEdit.Click Try Dim myConn As SqlConnection Dim myReader As SqlDataReader Dim role_id As String myConn = Database() myConn.Open() If txtUsername.Text = "" Then MsgBox("Silahkan masukkan User Name anda", MsgBoxStyle.Information, "Info") txtPassword.Clear() txtUsername.Focus() ElseIf txtPassword.Text = "" Then MsgBox("Silahkan masukkan Password anda", MsgBoxStyle.Information, "Info") txtPassword.Focus() ElseIf cmbBagian.SelectedItem = "" Then MessageBox.Show("Silahkan masukkan Bagian", MsgBoxStyle.Information, "Info") txtPassword.Focus() Else Dim sqlSelect As String = "Select ID_ROLE" & _ " From ROLE Where ROLE.ROLE='" & cmbBagian.Text & "'" Dim comm As SqlCommand = New SqlCommand(sqlSelect, myConn) myReader = comm.ExecuteReader() If myReader.HasRows Then While myReader.Read() role_id = myReader.Item("ID_ROLE") End While End If myReader.Close() If flag = 0 Then Dim sql As String = " Insert into USER1 Set" & _
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 102
" PASSWORD='" & txtPassword.Text & "',ID_ROLE='" & Trim(cmbBagian.SelectedIndex + 1) & "'" & _ " Where USER_NAME='" & txtUsername.Text & "'" Dim command As SqlCommand = New SqlCommand(sql, myConn) Dim status As Integer = command.ExecuteNonQuery() If status = 1 Then MsgBox("Tambah data berhasil", MsgBoxStyle.Information, "Info") Clear() Else MsgBox("Tambah data gagal", MsgBoxStyle.Critical, "Info") End If Else Dim sql As String sql = "Update USER1 Set" & _ " PASSWORD='" & txtPassword.Text & "',ID_ROLE='" & Trim(cmbBagian.SelectedIndex + 1) & "'" & _ " Where USER_NAME='" & txtUsername.Text & "'" Dim command As SqlCommand = New SqlCommand(sql, myConn) Dim status As Integer = command.ExecuteNonQuery() If status = 1 Then MsgBox("Update Data Berhasil", MsgBoxStyle.Information, "Info") Me.Close() Else MsgBox("Update Data Gagal", MsgBoxStyle.Critical, "Info") End If End If Clear() End If myConn.Close() Catch ex As Exception MsgBox("Error: " & ex.Source & ": " & ex.Message, MsgBoxStyle.OKOnly, "Koneksi Error !!") Clear() End Try End Sub Private Sub btnClear_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnClear.Click Clear() End Sub Private Sub btnExit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Dim form As New Welcome form.Show() Me.Close() End Sub
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 103
Private Sub btnDelete_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDelete.Click Try Dim myConn As SqlConnection myConn = Database() myConn.Open() Dim ans = MsgBox("Apakah anda yakin akan menghapus data " & txtUsername.Text & " ?", MessageBoxButtons.OKCancel, "Konfirmasi") If ans = 1 Then Dim sql As String = "Delete From USER1" & _ " Where USER_NAME='" & txtUsername.Text & "'" Dim command As SqlCommand = New SqlCommand(sql, myConn) Try Dim status As Integer = command.ExecuteNonQuery() If status = 1 Then MsgBox("Hapus data berhasil", MsgBoxStyle.OKOnly, "Info") Else MsgBox("Hapus data gagal", MsgBoxStyle.OKCancel, "Info") End If Clear() Catch ex As Exception MsgBox("Error: " & ex.Source & ": " & ex.Message, MsgBoxStyle.OKOnly, "Koneksi Error !") Clear() End Try Else Clear() End If myConn.Close() Catch ex As Exception MsgBox("Error: " & ex.Source & ": " & ex.Message, MsgBoxStyle.OKOnly, "Koneksi Error !") Clear() End Try End Sub End Class
4.3.1.6 User Interface Detail Data Perusahaan. User interface halaman detail data perusahaan digunakan untuk melihat data perusahaan yang sudah terikat kontrak dengan pihak rumah sakit. Data
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 104
perusahaan akan ditampilkan dalam bentuk form data grid.Gambar 4.10 merupakan user interface halaman detail perusahaan untuk administrator.
Gambar 4.10 Halaman Detail Data Perusahaan
Berikut perintah untuk user interface halaman detail data perusahaan: Imports System.Data Imports System.Data.SqlClient Public Class frmDetailPerusahaan Inherits System.Windows.Forms.Form Public flag As Integer Public Sub Data_Grid() Dim myConn As SqlConnection Dim daPerusahaan As SqlDataAdapter Dim dsPerusahaan As DataSet myConn = Database() myConn.Open() Dim sqlselect As String = "Select ID_PERUSAHAAN as [Id], NAMA_PERUSAHAAN as [Perusahaan],ALAMAT_PERUSAHAAN as [Alamat],CONTACT_PERSON as [Contact],UMUM as [Umum],ANAK as [Anak],SPOG as [SPOG],BKIA as [BKIA],THT as [THT], BEDAH as [Bedah],DALAM as [Dalam],GIGI as [Gigi],FISIOTERAPI as [Fisioterapi],KULIT as [Kulit],MATA as [Mata],ODS as [ODS],RONTGEN as [Rontgen],LAB as [Lab],USG as [USG],OBAT as [Obat] from PERUSAHAAN" daPerusahaan = New SqlDataAdapter(sqlselect, myConn) dsPerusahaan = New DataSet daPerusahaan.Fill(dsPerusahaan, "PERUSAHAAN") dgPerusahaan.DataSource = dsPerusahaan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 105
dgPerusahaan.DataMember = ("PERUSAHAAN") dgPerusahaan.ReadOnly = True myConn.Close() End Sub
Halaman detail data perusahaan ini juga dilengkapi dengan fasilitas pencarian data berdasarkan kategori id perusahaan, nama perusahaan, alamat perusahaan, dan contact person. Untuk mengupdate data perusahaan secara langsung dapat dilakukan dengan klik ganda secara langsung di data grid. Sedangkan untuk menambah data perusahaan baru dilakukan dengan menekan tombol add yang ada. Jika tombol add ditekan maka akan tampil user interface untuk input data perusahaan. Gambar 4.11 merupakan user interface halaman data perusahaan.
Gambar 4.11 Halaman Data Perusahaan Perusahaan baru yang ditambahkan akan memiliki id perusahaan yang akan digenerate secara otomatis oleh sistem. Berikut adalah perintah generate id perusahaan: Public Sub generate_id() Dim myConn As SqlConnection Dim myReader As SqlDataReader Dim i As Integer = 1 Dim perusahaan_id As String
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 106
Dim perusahaan_id2 As String myConn = Database() myConn.Open() Dim sql As String = "Select ID_PERUSAHAAN from PERUSAHAAN order by ID_PERUSAHAAN" Dim command As SqlCommand = New SqlCommand(sql, myConn) myReader = command.ExecuteReader() If myReader.HasRows Then Try While myReader.Read perusahaan_id = CInt(Mid(Trim(myReader.GetString(0)), 2, 5)) If perusahaan_id = i Then i = i + 1 End If End While Catch ex As Exception MsgBox("Tidak ada data", MsgBoxStyle.OKOnly, "Info") End Try perusahaan_id2 = CStr(i) If perusahaan_id2.Length = 1 Then perusahaan_id2 = "P00" + CStr(perusahaan_id2) txtId.Text = perusahaan_id2 ElseIf perusahaan_id2.Length = 2 Then perusahaan_id2 = "P0" + CStr(perusahaan_id2) txtId.Text = perusahaan_id2 ElseIf perusahaan_id2.Length = 3 Then perusahaan_id2 = "P" + CStr(perusahaan_id2) txtId.Text = perusahaan_id2 End If myReader.Close() myConn.Close() Else perusahaan_id2 = "P001" txtId.Text = perusahaan_id2 End If End Sub
4.3.1.7 User Interface Halaman Pasien Rawat Jalan. User interface halaman pasien rawat jalan digunakan untuk melihat data pasien secara lengkap. Halaman pasien rawat jalan ini juga dilengkapi dengan fasilitas pencarian data pasien berdasarkan kategori No MR, nama pasien, tanggal masuk dan perusahaan yang akan menanggung biaya pasien. Data pasien secara lengkap
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 107
akan ditampilkan melalui data grid pasien tersedia. Gambar 4.12 merupakan user interface halaman detail data pasien.
Gambar 4.12 Halaman Detail Data Pasien
Berikut perintah untuk user interface halaman detail data pasien: Imports System.Data Imports System.Data.SqlClient Public Class frmDetailPasien Inherits System.Windows.Forms.Form Public flag As Integer Public Sub Data_Grid() Dim myConn As SqlConnection Dim daPasien As SqlDataAdapter Dim dsPasien As DataSet myConn = Database() myConn.Open() Dim sqlselect As String = "Select NO_MR as [No MR], NAMA_PASIEN as [Nama],ALAMAT_PASIEN as [Alamat],TGL_LAHIR as [Tgl lahir],KOTA as [Kota],UMUR as [Umur],JNS_KELAMIN as [Kelamin],STATUS as [Status],AGAMA as [Agama], NAMA_ORTU as [Nama Orang Tua],NAMA_PERUSAHAAN as [Perusahaan],ID_PERUSAHAAN as [Id],TGL_MASUK as [Tgl masuk] from PASIEN" daPasien = New SqlDataAdapter(sqlselect, myConn) dsPasien = New DataSet daPasien.Fill(dsPasien, "PASIEN") dgPasien.DataSource = dsPasien dgPasien.DataMember = ("PASIEN") dgPasien.ReadOnly = True myConn.Close() End Sub Public Sub BlankForm() cmbKategori.SelectedIndex = -1
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 108
cmbKategori.Focus() txtSearch.Visible = True txtSearch.Text = "" cmbCari.Visible = False cmbCari.Text = "" End Sub Private Sub Detail_Data_Pasien_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Data_Grid() End Sub Private Sub nama_perusahaan() Dim myConn As SqlConnection Dim myReader As SqlDataReader myConn = Database() myConn.Open() Try Dim perusahaan As String Dim sql As String = "Select NAMA_PERUSAHAAN from PERUSAHAAN" Dim command As SqlCommand = New SqlCommand(sql, myConn) myReader = command.ExecuteReader() If myReader.HasRows Then While myReader.Read cmbCari.SelectedItem = cmbCari.Items.Add(myReader.Item("NAMA_PERUSAHAAN")) End While Else MsgBox("Referensi nama perusahaan tidak ada..", MsgBoxStyle.OKOnly, "Info") End If Catch ex As Exception MsgBox("Tidak ada data", MsgBoxStyle.OKOnly, "Info") End Try myReader.Close() myConn.Close() End Sub Private Sub cmbCari_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmbKategori.SelectedIndexChanged If (cmbKategori.SelectedIndex = -1) Then ElseIf (cmbKategori.SelectedItem.ToString().Equals("No MR")) Then txtSearch.Visible = True txtSearch.Text = "" cmbCari.Visible = False ElseIf (cmbKategori.SelectedItem.ToString().Equals("Nama Pasien")) Then txtSearch.Visible = True txtSearch.Text = "" cmbCari.Visible = False ElseIf (cmbKategori.SelectedItem.ToString().Equals("Perusahaan")) Then cmbCari.SelectedIndex = -1
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 109
cmbCari.Visible = True cmbCari.Items.Clear() nama_perusahaan() txtSearch.Visible = False txtSearch.Text = "" ElseIf (cmbKategori.SelectedItem.ToString().Equals("Tanggal Masuk")) Then txtSearch.Visible = True txtSearch.Text = "" cmbCari.Visible = False End If End Sub End Sub
Tombol add pada halaman detail data pasien digunakan untuk menambah data pasien baru. Sedangkan untuk tombol update dan delete digunakan untuk proses mengupdate dan menghapus data pasien. Halaman data pasien akan ditampilkan jika administrator menekan tombol add yang ada pada halaman detail data pasien. Gambar 4.13 merupakan user interface halaman data pasien.
Gambar 4.13 Halaman Data Pasien
Pada user interface halaman data pasien ini, untuk penambahan pasien baru digunakan generate No MR. No MR pasien secara langsung akan muncul jika ada data pasien baru yang ditambahkan. Selain itu id perusahaan secara
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 110
otomatis akan ditampilkan sesuai dengan nama perusahaan pasien. Berikut perintah generate No MR pasien: Public Sub generate_mr() Dim myConn As SqlConnection Dim myReader As SqlDataReader Dim angka, angka2 As Integer angka2 = 0 Dim no_mr As String Dim no_mr1 As String Dim n As Integer myConn = Database() myConn.Open() Dim sql As String = "Select NO_MR from PASIEN" Dim command As SqlCommand = New SqlCommand(sql, myConn) Try myReader = command.ExecuteReader() If myReader.HasRows Then While myReader.Read() no_mr = myReader.Item("NO_MR") n = Len(no_mr) angka = CInt(Mid$(no_mr, 4, n)) If angka2 < angka Then angka2 = angka End If End While no_mr = CStr(angka2 + 1) no_mr1 = "00-" + CStr(no_mr) txtMr.Text = no_mr1 Else : no_mr1 = "00-1" txtMr.Text = no_mr1 End If myReader.Close() Catch ex As Exception MsgBox("Tidak ada data", MsgBoxStyle.OKOnly, "Info") End Try myConn.Close() End Sub
Berikut perintah untuk menampilkan id perusahaan secara otomatis: Private Sub cmbPerusahaan_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmbPerusahaan.SelectedIndexChanged Dim myConn As SqlConnection Dim myReader As SqlDataReader myConn = Database() myConn.Open() Try Dim sql As String = "select ID_PERUSAHAAN from PERUSAHAAN " & _
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 111
" where NAMA_PERUSAHAAN = '" & cmbPerusahaan.SelectedItem & "'" Dim com As SqlCommand = New SqlCommand(sql, myConn) myReader = com.ExecuteReader If myReader.HasRows Then While myReader.Read txtID.Text = myReader.Item("ID_PERUSAHAAN") End While End If myReader.Close() Catch ex As Exception MsgBox(ex.Message) End Try myConn.Close() End Sub
4.3.1.8 User Interface Halaman Biaya Pasien Rawat Jalan. User interface halaman biaya pasien rawat jalan untuk admininistrator ini berisi data pasien yaitu no folio, no mr, biaya dokter, biaya obat, biaya tambahan dan biaya keseluruhan. Semua biaya pengobatan pasien yang ada pada interface merupakan biaya keselurahan yang harus ditanggung pasien sebelum melalui proses perhitungan biaya yang akan ditanggung perusahaan. Semua data biaya pasien ini merupakan catatan biaya total pasien yang dimasukkan oleh bagian kasir. Selanjutnya keseluruhan biaya ini sendiri masih akan diproses lebih lanjut sesuai dengan kontrak kerja antara perusahaan tertanggung dengan pihak rumah sakit. Hal ini dimaksudkan untuk menghitung biaya pasien yang akan dibebankan kepada perusahaan dan biaya pasien yang harus ditanggung sendiri oleh pasien. Gambar 4.14 merupakan user interface halaman detail biaya pasien.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 112
Gambar 4.14 Halaman Detail Biaya Pasien Berikut perintah untuk user interface halaman detail biaya pasien: mports System.Data Imports System.Data.SqlClient Public Class frmDetailBiaya Inherits System.Windows.Forms.Form Public flag As Integer Public Sub Data_Grid() Dim myConn As SqlConnection Dim daBiaya As SqlDataAdapter Dim dsBiaya As DataSet myConn = Database() myConn.Open() Dim sqlselect As String = "Select NO_FOLIO as [No Folio], NO_MR as [No MR],T_BIAYA_DOKTER as [Biaya Dokter],T_BIAYA_OBAT as [Biaya Obat],T_BIAYA_TAMBAHAN as [Biaya Tambahan],T_BIAYA_KESELURUHAN as [Biaya Keseluruhan] from BIAYA" daBiaya = New SqlDataAdapter(sqlselect, myConn) dsBiaya = New DataSet daBiaya.Fill(dsBiaya, "BIAYA") dgBiaya.DataSource = dsBiaya dgBiaya.DataMember = ("BIAYA") dgBiaya.ReadOnly = True myConn.Close() End Sub
Halaman detail data biaya pasien rawat jalan ini juga dilengkapi dengan fasilitas pencarian berdasarkan kategori no folio dan no mr pasien. Untuk proses penambahan, pengubahan, dan penghapusan data biaya pasien rawat jalan dapat
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 113
dilakukan dengan menggunakan tombol add, update, dan delete yang tersedia di halaman ini. Pengubahan dan penghapusan data dapat dilakukan secara langsung dengan cara memilih data yang akan diubah atau dihapus pada data grid. Untuk melakukan penambahan data biaya pasien rawat jalan dapat dilakukan dengan menekan tombol add yang ada. Jika administrator menekan tombol add kemudian akan ditampilkan user interface halaman data biaya pasien rawat jalan. Halaman biaya pasien rawat jalan ini juga menggunakan fungsi generate folio untuk menghasilkan no folio pasien secara otomatis. Gambar 4.15 merupakan user interface halaman data biaya pasien.
Gambar 4.15 Halaman Biaya Pasien Rawat Jalan
Berikut perintah untuk user interface halaman biaya pasien rawat jalan: Imports System.Data Imports System.Data.SqlClient Public Class frmBiaya Inherits System.Windows.Forms.Form Public Sub generate_folio() Dim myConn As SqlConnection Dim myReader As SqlDataReader Dim angka, angka2 As Integer angka2 = 0 Dim no_folio As String
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 114
Dim no_folio1 As String Dim n As Integer myConn = Database() myConn.Open() Dim sql As String = "Select NO_FOLIO from BIAYA" Dim command As SqlCommand = New SqlCommand(sql, myConn) Try myReader = command.ExecuteReader() If myReader.HasRows Then While myReader.Read() no_folio = myReader.Item("NO_FOLIO") n = Len(no_folio) angka = CInt(Mid$(no_folio, 4, n)) If angka2 < angka Then angka2 = angka End If End While no_folio = CStr(angka2 + 1) no_folio1 = "FO-" + CStr(no_folio) txtFolio.Text = no_folio1 Else : no_folio1 = "FO-1" txtFolio.Text = no_folio1 End If myReader.Close() Catch ex As Exception MsgBox("Tidak ada data", MsgBoxStyle.OKOnly, "Info") End Try myConn.Close() End Sub Public Sub IsiDataPasien() If txtMr.Text = lblMr.Text Then Else Dim myConn As SqlConnection Dim myReader As SqlDataReader myConn = Database() myConn.Open() Try Dim sql As String = "Select NAMA_PASIEN,ALAMAT_PASIEN,NAMA_PERUSAHAAN from PASIEN " & _ " where NO_MR = '" & txtMr.Text & "'" Dim com As SqlCommand = New SqlCommand(sql, myConn) myReader = com.ExecuteReader If myReader.HasRows Then While myReader.Read txtNama_Pasien.Text = myReader.Item("NAMA_PASIEN") txtAlamat_Pasien.Text = myReader.Item("ALAMAT_PASIEN") txtNama_Perusahaan.Text = myReader.Item("NAMA_PERUSAHAAN") End While End If myReader.Close() Catch ex As Exception
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 115
MsgBox(ex.Message) End Try myConn.Close() End If End Sub Private Sub btnHitung_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnHitung.Click Dim Total As Long Dim biaya_total As Long Total = Val(txtBiaya_Dokter.Text) + Val(txtBiaya_Obat.Text) + Val(txtBiaya_Tambahan.Text) txtTotal.Text = Total txtTotal.Enabled = False End Sub Private Sub btnEdit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnEdit.Click Try Dim myConn As SqlConnection Dim myReader As SqlDataReader myConn = Database() myConn.Open() If txtBiaya_Dokter.Text = "" Then MsgBox("Silahkan masukkan Total Biaya Dokter", MsgBoxStyle.OKOnly, "Info") txtBiaya_Dokter.Focus() ElseIf (IsNumeric(txtBiaya_Dokter.Text) = False) Then MsgBox("Data masukkan salah.", MsgBoxStyle.OKOnly, "Info") txtBiaya_Dokter.Focus() ElseIf txtBiaya_Obat.Text = "" Then MsgBox("Silahkan masukkan Total Biaya Obat", MsgBoxStyle.OKOnly, "Info") txtBiaya_Obat.Focus() ElseIf (IsNumeric(txtBiaya_Obat.Text) = False) Then MsgBox("Data masukkan salah.", MsgBoxStyle.OKOnly, "Info") txtBiaya_Obat.Focus() ElseIf txtBiaya_Tambahan.Text = "" Then MsgBox("Silahkan masukkan Total Biaya Tambahan", MsgBoxStyle.OKOnly, "Info") txtBiaya_Tambahan.Focus() ElseIf (IsNumeric(txtBiaya_Tambahan.Text) = False) Then MsgBox("Data masukkan salah.", MsgBoxStyle.OKOnly, "Info") txtBiaya_Tambahan.Focus() ElseIf txtTotal.Text = "" Then MsgBox("Total Biaya belum dihitung.", MsgBoxStyle.OKOnly, "Info") txtTotal.Focus() Else Dim sql As String = " Update BIAYA Set" & _
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 116
" NO_FOLIO='" & txtFolio.Text & "',NO_MR='" & txtMr.Text & "',T_BIAYA_DOKTER='" & txtBiaya_Dokter.Text & "',T_BIAYA_OBAT='" & txtBiaya_Obat.Text & "', T_BIAYA_TAMBAHAN='" & txtBiaya_Tambahan.Text & "', T_BIAYA_KESELURUHAN='" & txtTotal.Text & "' Where NO_FOLIO='" & txtFolio.Text & "'" Dim command As SqlCommand = New SqlCommand(sql, myConn) Dim status As Integer = command.ExecuteNonQuery() If status = 1 Then MsgBox("Update Data Berhasil", MsgBoxStyle.OKOnly, "Konfirmasi") Else MsgBox("Update Data Gagal", MsgBoxStyle.OKOnly, "Konfirmasi") End If End If myConn.Close() Catch ex As Exception MsgBox("Error: " & ex.Source & ": " & ex.Message, MsgBoxStyle.OKOnly, "Koneksi Error !!") End Try End Sub
4.3.1.9 User Interface Halaman Detail Pembayaran Pasien Rawat Jalan. User interface halaman detail pembayaran pasien ini menampilkan data pembayaran pasien rawat jalan. Data yang ditampilkan antara lain: no folio, no mr, nama pasien, id perusahaan, nama perusahaan, tempat penagihan, tambahan penagihan, nama dokter, spesialisasi dokter, biaya dokter, biaya obat dibayar, biaya tambahan dibayar, total biaya dibayar, tagihan dokter, tagihan obat, tagihan tambahan, total tagihan, dan tanggal pembayaran. Data pembayaran ini diambil dari data biaya pasien setelah diproses sesuai dengan kontrak kerja antara pihak rumah sakit dan perusahaan. Sistem akan memproses secara otomatis total biaya yang ditanggung perusahaan berdasarkan data perusahaan yang dimasukkan pada user interface halaman detail data perusahaan. Hasil akhir dari proses ini berupa
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 117
total biaya yang ditanggung pasien dan total biaya yang ditanggung perusahaan. User interface halaman pembayaran pasien rawat jalan ini juga dilengkapi dengan fasilitas pencarian berdasarkan kategori: no folio, no mr, nama pasien, nama perusahaan, tempat penanganan, tambahan pelayanan, nama dokter, spesialis, dan tanggal pembayaran. Gambar 4.16 merupakan user interface halaman detail pembayaran pasien rawat jalan.
Gambar 4.16 Halaman Detail Pembayaran Pasien Rawat Jalan
Berikut perintah untuk user interface halaman detail pembayaran pasien rawat jalan: Imports System.Data Imports System.Data.SqlClient Public Class frmDetailPembayaran Inherits System.Windows.Forms.Form
Public flag As Integer Public Sub Data_Grid() Dim myConn As SqlConnection Dim daPembayaran As SqlDataAdapter Dim dsPembayaran As DataSet myConn = Database() myConn.Open() Dim sqlselect As String = "Select NO_FOLIO as [No Folio], NO_MR as [No MR],NAMA_PASIEN as [Nama Pasien],ID_PERUSAHAAN as [ID Perusahaan],NAMA_PERUSAHAAN as [Perusahaan],TEMPAT_PENANGANAN as [Tempat Penanganan],TAMBAHAN_PELAYANAN as [Tambahan Pelayanan],NAMA_DOKTER as [Dokter],SPESIALIS as
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 118
[Spesialis],B_DOKTER_DIBAYAR as [Biaya Dokter Dibayar],B_OBAT_DIBAYAR as [Biaya Obat Dibayar],B_TAMBAHAN_DIBAYAR as [Biaya Tambahan Dibayar],TOTAL_DIBAYAR as [Total Dibayar], B_DOKTER_PENAGIHAN as [Tagihan Dokter],B_OBAT_PENAGIHAN as [Tagihan Obat], B_TAMBAHAN_PENAGIHAN as [Tagihan Tambahan],TOTAL_PENAGIHAN as [Total Tagihan],TGL_BAYAR as [Tanggal Pembayaran] from PEMBAYARAN" daPembayaran = New SqlDataAdapter(sqlselect, myConn) dsPembayaran = New DataSet daPembayaran.Fill(dsPembayaran, "PEMBAYARAN") dgPembayaran.DataSource = dsPembayaran dgPembayaran.DataMember = ("PEMBAYARAN") dgPembayaran.ReadOnly = True myConn.Close() End Sub Private Sub btnAdd_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAdd.Click Dim frmDataPembayaran As New frmdatapembayaran frmDataPembayaran.ShowDialog() End Sub
Untuk mengubah data pembayaran pasien rawat jalan,administrator dapat menggunakan fasilitas update. Jika tombol update ditekan, maka akan tampil user interface data pembayaran pasien rawat jalan. Gambar 4.17 merupakan user interface halaman data pembayaran pasien rawat jalan.
Gambar 4.17 Halaman Data Pembayaran Pasien Rawat Jalan.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 119
Berikut perintah untuk user interface halaman data pembayaran pasien rawat jalan: Imports System.Data Imports System.Data.SqlClient Public Class frmdatapembayaran Inherits System.Windows.Forms.Form Private Sub btnHitung3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnHitung3.Click If cmbPelayanan.SelectedItem = "" Then Kalkulasi_Penagihan1() txtBTP.Text = 0 Else Kalkulasi_Penagihan() End If End Sub Private Sub Kalkulasi_Penagihan() Dim hitung1, hitung2, hitung3 As Long If txtSpesialis.Text.ToString().Equals("Umum") Then hitung1 = Val((lblUmum.Text) / 100) * Val(lblDokter1.Text) hitung2 = Val((lblObat.Text) / 100) * Val(lblObat1.Text) txtBDP.Text = hitung1 txtBOP.Text = hitung2 ElseIf txtSpesialis.Text.ToString().Equals("Anak") Then hitung1 = Val((lblAnak.Text) / 100) * Val(lblDokter1.Text) hitung2 = Val((lblObat.Text) / 100) * Val(lblObat1.Text) txtBDP.Text = hitung1 txtBOP.Text = hitung2 ElseIf txtSpesialis.Text.ToString().Equals("SPOG") Then hitung1 = Val((lblSPOG.Text) / 100) * Val(lblDokter1.Text) hitung2 = Val((lblObat.Text) / 100) * Val(lblObat1.Text) txtBDP.Text = hitung1 txtBOP.Text = hitung2 ElseIf txtSpesialis.Text.ToString().Equals("BKIA") Then hitung1 = Val((lblBKIA.Text) / 100) * Val(lblDokter1.Text) hitung2 = Val((lblObat.Text) / 100) * Val(lblObat1.Text) txtBDP.Text = hitung1 txtBOP.Text = hitung2 ElseIf txtSpesialis.Text.ToString().Equals("THT") Then hitung1 = Val((lblTHT.Text) / 100) * Val(lblDokter1.Text) hitung2 = Val((lblObat.Text) / 100) * Val(lblObat1.Text) txtBDP.Text = hitung1
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 120
txtBOP.Text = hitung2 ElseIf txtSpesialis.Text.ToString().Equals("Bedah") Then hitung1 = Val((lblBedah.Text) / 100) * Val(lblDokter1.Text) hitung2 = Val((lblObat.Text) / 100) * Val(lblObat1.Text) txtBDP.Text = hitung1 txtBOP.Text = hitung2 ElseIf txtSpesialis.Text.ToString().Equals("Dalam") Then hitung1 = Val((lblDalam.Text) / 100) * Val(lblDokter1.Text) hitung2 = Val((lblObat.Text) / 100) * Val(lblObat1.Text) txtBDP.Text = hitung1 txtBOP.Text = hitung2 ElseIf txtSpesialis.Text.ToString().Equals("Gigi") Then hitung1 = Val((lblGigi.Text) / 100) * Val(lblDokter1.Text) hitung2 = Val((lblObat.Text) / 100) * Val(lblObat1.Text) txtBDP.Text = hitung1 txtBOP.Text = hitung2 ElseIf txtSpesialis.Text.ToString().Equals("Fisioterapi") Then hitung1 = Val((lblFisioterapi.Text) / 100) * Val(lblDokter1.Text) hitung2 = Val((lblObat.Text) / 100) * Val(lblObat1.Text) txtBDP.Text = hitung1 txtBOP.Text = hitung2 ElseIf txtSpesialis.Text.ToString().Equals("Kulit/Kelamin") Then hitung1 = Val((lblKulit.Text) / 100) * Val(lblDokter1.Text) hitung2 = Val((lblObat.Text) / 100) * Val(lblObat1.Text) txtBDP.Text = hitung1 txtBOP.Text = hitung2 ElseIf txtSpesialis.Text.ToString().Equals("Mata") Then hitung1 = Val((lblMata.Text) / 100) * Val(lblDokter1.Text) hitung2 = Val((lblObat.Text) / 100) * Val(lblObat1.Text) txtBDP.Text = hitung1 txtBOP.Text = hitung2 Else End If If cmbPelayanan.SelectedItem.ToString().Equals("ODS") Then hitung3 = Val((lblODS.Text) / 100) * Val(lblTambahan1.Text) txtBTP.Text = hitung3 ElseIf cmbPelayanan.SelectedItem.ToString().Equals("Rontgen") Then hitung3 = Val((lblRontgen.Text) / 100) * Val(lblTambahan1.Text) txtBTP.Text = hitung3
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 121
ElseIf cmbPelayanan.SelectedItem.ToString().Equals("Lab") Then hitung3 = Val((lblLab.Text) / 100) * Val(lblTambahan1.Text) txtBTP.Text = hitung3 ElseIf cmbPelayanan.SelectedItem.ToString().Equals("USG") Then hitung3 = Val((lblUSG.Text) / 100) * Val(lblTambahan1.Text) txtBTP.Text = hitung3 Else End If End Sub Private Sub Kalkulasi_Penagihan1() Dim hitung1, hitung2, hitung3 As Long If txtSpesialis.Text.ToString().Equals("Umum") Then hitung1 = Val((lblUmum.Text) / 100) * Val(lblDokter1.Text) hitung2 = Val((lblObat.Text) / 100) * Val(lblObat1.Text) txtBDP.Text = hitung1 txtBOP.Text = hitung2 ElseIf txtSpesialis.Text.ToString().Equals("Anak") Then hitung1 = Val((lblAnak.Text) / 100) * Val(lblDokter1.Text) hitung2 = Val((lblObat.Text) / 100) * Val(lblObat1.Text) txtBDP.Text = hitung1 txtBOP.Text = hitung2 ElseIf txtSpesialis.Text.ToString().Equals("SPOG") Then hitung1 = Val((lblSPOG.Text) / 100) * Val(lblDokter1.Text) hitung2 = Val((lblObat.Text) / 100) * Val(lblObat1.Text) txtBDP.Text = hitung1 txtBOP.Text = hitung2 ElseIf txtSpesialis.Text.ToString().Equals("BKIA") Then hitung1 = Val((lblBKIA.Text) / 100) * Val(lblDokter1.Text) hitung2 = Val((lblObat.Text) / 100) * Val(lblObat1.Text) txtBDP.Text = hitung1 txtBOP.Text = hitung2 ElseIf txtSpesialis.Text.ToString().Equals("THT") Then hitung1 = Val((lblTHT.Text) / 100) * Val(lblDokter1.Text) hitung2 = Val((lblObat.Text) / 100) * Val(lblObat1.Text) txtBDP.Text = hitung1 txtBOP.Text = hitung2 ElseIf txtSpesialis.Text.ToString().Equals("Bedah") Then hitung1 = Val((lblBedah.Text) / 100) * Val(lblDokter1.Text)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 122
hitung2 = Val((lblObat.Text) / 100) * Val(lblObat1.Text) txtBDP.Text = hitung1 txtBOP.Text = hitung2 ElseIf txtSpesialis.Text.ToString().Equals("Dalam") Then hitung1 = Val((lblDalam.Text) / 100) * Val(lblDokter1.Text) hitung2 = Val((lblObat.Text) / 100) * Val(lblObat1.Text) txtBDP.Text = hitung1 txtBOP.Text = hitung2 ElseIf txtSpesialis.Text.ToString().Equals("Gigi") Then hitung1 = Val((lblGigi.Text) / 100) * Val(lblDokter1.Text) hitung2 = Val((lblObat.Text) / 100) * Val(lblObat1.Text) txtBDP.Text = hitung1 txtBOP.Text = hitung2 ElseIf txtSpesialis.Text.ToString().Equals("Fisioterapi") Then hitung1 = Val((lblFisioterapi.Text) / 100) * Val(lblDokter1.Text) hitung2 = Val((lblObat.Text) / 100) * Val(lblObat1.Text) txtBDP.Text = hitung1 txtBOP.Text = hitung2 ElseIf txtSpesialis.Text.ToString().Equals("Kulit/Kelamin") Then hitung1 = Val((lblKulit.Text) / 100) * Val(lblDokter1.Text) hitung2 = Val((lblObat.Text) / 100) * Val(lblObat1.Text) txtBDP.Text = hitung1 txtBOP.Text = hitung2 ElseIf txtSpesialis.Text.ToString().Equals("Mata") Then hitung1 = Val((lblMata.Text) / 100) * Val(lblDokter1.Text) hitung2 = Val((lblObat.Text) / 100) * Val(lblObat1.Text) txtBDP.Text = hitung1 txtBOP.Text = hitung2 Else End If End Sub Private Sub btnHitung4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnHitung4.Click Dim total_tagihan As Long total_tagihan = Val(txtBDP.Text) + Val(txtBOP.Text) + Val(txtBTP.Text) txtTotal_Tagih.Text = total_tagihan End Sub Private Sub btnHitung1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnHitung1.Click Kalkulasi_Pembayaran()
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 123
End Sub Private Sub Kalkulasi_Pembayaran() Dim Dokter_Dibayar, Obat_Dibayar, Tambahan_Dibayar As Long Dokter_Dibayar = Val(lblDokter1.Text) - Val(txtBDP.Text) txtBDD.Text = Dokter_Dibayar Obat_Dibayar = Val(lblObat1.Text) - Val(txtBOP.Text) txtBOD.Text = Obat_Dibayar Tambahan_Dibayar = Val(lblTambahan1.Text) Val(txtBTP.Text) txtBTD.Text = Tambahan_Dibayar End Sub Private Sub btnHitung2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnHitung2.Click Dim total_bayar As Long total_bayar = Val(txtBDD.Text) + Val(txtBOD.Text) + Val(txtBTD.Text) txtTotal_bayar.Text = total_bayar End Sub End Class
4.3.1.10 User Interface Halaman Detail Penagihan Biaya Pasien Rawat Jalan. Pada halaman ini, administrator hanya dapat melihat dan menghapus data penagihan pasien rawat jalan. Halaman ini juga dilengkapi dengan fasilitas pencarian data. Gambar 4.18 merupakan user interface halaman detail penagihan biaya pasien rawat jalan.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 124
Gambar 4.18 Halaman Detail Penagihan Pasien Rawat Jalan.
Berikut perintah untuk user interface halaman penagihan pasien rawat jalan: Imports System.Data Imports System.Data.SqlClient Public Class frmDetailPenagihan Inherits System.Windows.Forms.Form Private Sub btnPreview_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnPreview.Click If isEmpty("Select PEMBAYARAN.NO_FOLIO as [No Folio], PEMBAYARAN.NO_MR as [No MR],PEMBAYARAN.NAMA_PASIEN as [Nama Pasien],PEMBAYARAN.NAMA_PERUSAHAAN as [Nama Perusahaan],PEMBAYARAN.TOTAL_PENAGIHAN as [Biaya Tagihan],PEMBAYARAN.TOTAL_DIBAYAR as [Biaya Dibayar],PEMBAYARAN.TGL_BAYAR as [Tanggal Pembayaran] from PEMBAYARAN") Then ElseIf (dgPenagihan.IsSelected(dgPenagihan.CurrentRowIndex)) Then Dim frmDataPenagihan As New frmdatapenagihan frmDataPenagihan.lblFolio.Text = Trim(dgPenagihan.Item(dgPenagihan.CurrentRowIndex, 0)) frmDataPenagihan.lblMr.Text = Trim(dgPenagihan.Item(dgPenagihan.CurrentRowIndex, 1)) frmDataPenagihan.lblNama.Text = Trim(dgPenagihan.Item(dgPenagihan.CurrentRowIndex, 2)) frmDataPenagihan.lblPerusahaan.Text = Trim(dgPenagihan.Item(dgPenagihan.CurrentRowIndex, 3)) frmDataPenagihan.lblDibayar.Text = Trim(dgPenagihan.Item(dgPenagihan.CurrentRowIndex, 4)) frmDataPenagihan.lblPenagihan.Text = Trim(dgPenagihan.Item(dgPenagihan.CurrentRowIndex, 5)) frmDataPenagihan.lblPembayaran.Text = Trim(dgPenagihan.Item(dgPenagihan.CurrentRowIndex, 6)) frmDataPenagihan.flag = 1 frmDataPenagihan.tutup()
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 125
frmDataPenagihan.ShowDialog() Else MsgBox("Pilih Data Terlebih Dahulu", MsgBoxStyle.Exclamation, "Info") End If End Sub
Untuk melihat data penagihan pasien satu persatu, administrator dapat meggunakan tombol preview dengan memilih data yang akan dipreview terlebih dulu. Gambar 4.19 merupakan user interface data halaman data penagihan pasien.
Gambar 4.19 Halaman Data Penagihan Pasien Rawat Jalan. Berikut perintah untuk user interface halaman data penagihan pasien rawat jalan: Public Class frmdatapenagihan Inherits System.Windows.Forms.Form Public flag As Integer Public Sub tutup() lblFolio.Enabled = False lblMr.Enabled = False lblNama.Enabled = False lblPerusahaan.Enabled = False lblDibayar.Enabled = False lblPenagihan.Enabled = False lblPembayaran.Enabled = False
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 126
End Sub Private Sub btnExit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnExit.Click Dim form As New Welcome form.Show() Me.Close() End Sub Private Sub btnBack_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnBack.Click Dim form As New frmUtama form.Show() Me.Close() End Sub Public Function Masuk(ByVal key As String) As Boolean If (key = 13) Then Masuk = True Else Masuk = False End If End Function Private Sub btnKembali_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles btnKembali.KeyPress Dim frmdetailpenagihan As New frmDetailPenagihan If e.Handled = Masuk(Asc(e.KeyChar)) Then Else frmdetailpenagihan.Show() Me.Close() End If End Sub End Class
4.3.1.11 User Interface Halaman Detail Data Dokter. User interface halaman detail data dokter ini hanya digunakan oleh administrator untuk menambah, mengubah dan menghapus data dokter. Gambar 4.20 merupakan halaman detail data dokter.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 127
Gambar 4.20 Halaman Detail Data Dokter Berikut perintah untuk user interface halaman detail data dokter: Imports System.Data Imports System.Data.SqlClient Public Class frmDetailDokter Inherits System.Windows.Forms.Form Public flag As Integer Public Sub Data_Grid() Dim myConn As SqlConnection Dim daDokter As SqlDataAdapter Dim dsDokter As DataSet myConn = Database() myConn.Open() Dim sqlselect As String = "Select ID_DOKTER as [ID Dokter],NAMA_DOKTER as [Nama Dokter],ALAMAT_DOKTER as [Alamat],KOTA as [Kota],TELP as [Telepon],BIDANG as [Spesialis] from DOKTER" daDokter = New SqlDataAdapter(sqlselect, myConn) dsDokter = New DataSet daDokter.Fill(dsDokter, "DOKTER") dgDokter.DataSource = dsDokter dgDokter.DataMember = ("DOKTER") dgDokter.ReadOnly = True myConn.Close() End Sub Private Sub spesialis() Dim myConn As SqlConnection Dim myReader As SqlDataReader myConn = Database() myConn.Open() Try Dim sql As String = "Select BIDANG from DOKTER" Dim command As SqlCommand = New SqlCommand(sql, myConn) myReader = command.ExecuteReader()
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 128
If myReader.HasRows Then While myReader.Read cmbCari.SelectedItem = cmbCari.Items.Add(myReader.Item("BIDANG")) End While Else MsgBox("Referensi spesialisasi tidak ada...", MsgBoxStyle.OKOnly, "Info") End If Catch ex As Exception MsgBox("Tidak ada data", MsgBoxStyle.OKOnly, "Info") End Try myReader.Close() myConn.Close() End Sub End Class
Administrator dapat menambahkan data dokter baru dengan menggunakan tombol add yang ada di user interface halaman detail data dokter. Jika tombol add ditekan maka akan muncul user interface halaman pengelolaan dokter, yang digunakan untuk memasukkan data dokter baru. Gambar 4.21 merupakan user interface halaman pengelolaan dokter.
Gambar 4.21 Halaman Pengelolaan Dokter
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 129
4.3.1.12 User Interface Halaman Detail Poliklinik. User interface ini digunakan oleh administrator untuk menambahkan dan mengubah data poliklinik. Gambar 4.22 merupakan user interface halaman detail poliklinik.
Gambar 4.22 Halaman Detail Poliklinik
Berikut perintah untuk user interface halaman detail poliklinik: Imports System.Data Imports System.Data.SqlClient Public Class frmDetailPoli Inherits System.Windows.Forms.Form Public flag As Integer Public Sub Data_Grid() Dim myConn As SqlConnection Dim daPoli As SqlDataAdapter Dim dsPoli As DataSet myConn = Database() myConn.Open() Dim sqlselect As String = "Select ID_POLI as [ID Poliklinik],NAMA_POLI as POLIKLINIK from POLIKLINIK order by ID_POLI" daPoli = New SqlDataAdapter(sqlselect, myConn) dsPoli = New DataSet daPoli.Fill(dsPoli, "POLIKLINIK") dgPoli.DataSource = dsPoli dgPoli.DataMember = ("POLIKLINIK") dgPoli.ReadOnly = True myConn.Close() End Sub
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 130
Untuk
menambahkan
data
poliklinik
baru,
administrator
dapat
menggunakan tombol add yang ada. Jika tombol add ini ditekan maka akan ditampilkan user interface halaman pengelolaan poliklinik. Gambar 4.23 merupakan user interface halaman pengelolaan poliklinik.
Gambar 4.23 Halaman Pengelolaan Poliklinik Berikut perintah untuk user interface halaman pengelolaan poliklinik: Imports System.Data Imports System.Data.SqlClient Public Class frmPoli Inherits System.Windows.Forms.Form Public flag As Integer Private Sub Clear() generate_idPoli() txtNama.Text = "" txtId.Enabled = False txtId.Focus() End Sub Public Sub generate_idPoli() Dim myConn As SqlConnection Dim myReader As SqlDataReader Dim i As Integer = 1 Dim poli_id As String Dim poli_id2 As String myConn = Database() myConn.Open() Dim sql As String = "Select ID_POLI from POLIKLINIK order by ID_POLI"
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 131
Dim command As SqlCommand = New SqlCommand(sql, myConn) myReader = command.ExecuteReader() If myReader.HasRows Then Try While myReader.Read poli_id = CInt(Mid(Trim(myReader.GetString(0)), 2, 5)) If poli_id = i Then i = i + 1 End If End While Catch ex As Exception MsgBox("Tidak ada data", MsgBoxStyle.OKOnly, "Info") End Try poli_id2 = CStr(i) If poli_id2.Length = 1 Then poli_id2 = "R00" + CStr(poli_id2) txtId.Text = poli_id2 ElseIf poli_id2.Length = 2 Then poli_id2 = "R0" + CStr(poli_id2) txtId.Text = poli_id2 ElseIf poli_id2.Length = 3 Then poli_id2 = "R" + CStr(poli_id2) txtId.Text = poli_id2 End If myReader.Close() myConn.Close() Else poli_id2 = "R001" txtId.Text = poli_id2 End If End Sub Public Sub generate_idPoli1() Dim myConn As SqlConnection Dim myReader As SqlDataReader Dim angka, angka2 As Integer angka2 = 0 Dim id As String Dim id1 As String Dim n As Integer myConn = Database() myConn.Open() Dim sql As String = "Select ID_POLI from POLIKLINIK" Dim command As SqlCommand = New SqlCommand(sql, myConn) Try myReader = command.ExecuteReader() If myReader.HasRows Then While myReader.Read() id = myReader.Item("ID_POLI") n = Len(id) angka = CInt(Mid$(id, 3, n)) If angka2 < angka Then angka2 = angka End If
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 132
End While id = CStr(angka2 + 1) id1 = "R-" + CStr(id) txtId.Text = id1 Else : id1 = "R-1" txtId.Text = id1 End If myReader.Close() Catch ex As Exception MsgBox("Tidak ada data", MsgBoxStyle.OKOnly, "Info") End Try myConn.Close() End Sub End Class
4.3.1.13 User Interface Laporan User interface laporan pada bagian administrator terdiri dari : Laporan User. Laporan Perusahaan. Laporan Pasien Rawat Jalan. Laporan Biaya Pasien Rawat Jalan. Laporan Pembayaran Pasien Rawat Jalan. Laporan Penagihan Pasien Rawat Jalan. Laporan Dokter. Laporan Poliklinik.
User interface laporan dibuat menggunakan software Crystal Report yang merupakan software pendukung dalam Visual Basic.Net.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 133
Gambar 4.24 merupakan user interface laporan user.
Gambar 4.24 Laporan User
Gambar 4.25 merupakan user interface laporan perusahaan.
Gambar 4.25 Laporan Perusahaan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 134
Gambar 4.26 merupakan user interface laporan pasien rawat jalan.
Gambar 4.26 Laporan Pasien Rawat Jalan Laporan pasien rawat jalan ini dilengkapi dengan fasilitas pencarian dan pengelompokkan data pasien berdasarkan tanggal masuk pasien.
Gambar 4.27 merupakan user interface laporan biaya pasien rawat jalan.
Gambar 4.27 Laporan Biaya Pasien Rawat Jalan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 135
Gambar 4.28 merupakan user interface laporan pembayaran pasien rawat jalan.
Gambar 4.28 Laporan Pembayaran Pasien Rawat Jalan User
interface
ini
dilengkapi
dengan
fasilitas
penacarian
pengelompokkan data pembayaran pasien berdasarkan tanggal pembayaran.
Gambar 4.29 merupakan user interface laporan penagihan pasien rawat jalan.
Gambar 4.29 Laporan Penagihan Pasien Rawat Jalan
dan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 136
Gambar 4.30 merupakan user interface laporan dokter.
Gambar 4.30 Laporan Dokter
Gambar 4.31 merupakan user interface laporan poliklinik.
Gambar 4.31 Laporan Poliklinik
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 137
4.3.2 User Interface Proses Transaksi Kasir User interface proses transaksi bagian kasir meliputi data pasien rawat jalan, data biaya pasien rawat jalan, dan data pembayaran pasien rawat jalan. Sedangkan untuk proses pembuatan laporannya, bagian kasir hanya memiliki hak akses untuk pembuatan laporan data pasien rawat jalan, laporan biaya pasien rawat jalan, dan laporan pembayaran pasien rawat jalan. Pada halaman utama bagian kasir terdiri dari beberapa menu dan sub menu. Menu pada user interface halaman utama bagian kasir meliputi: File, Data, Laporan, Help. Menu File terdiri dari sub menu: Login Logout Exit Menu Data terdiri dari sub menu: Pasien Rawat Jalan Biaya Pasien Rawat Jalan Pembayaran Pasien Rawat Menu Laporan terdiri dari sub menu: Laporan Pasien Rawat Jalan Laporan Biaya Pasien Rawat Jalan Laporan Pembayaran Pasien Rawat Jalan Menu Help terdiri dari sub menu: About
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 138
Menu dan sub menu yang ditampilkan di halaman utama bagian kasir disesuaikan dengan hak akses yang dimiliki kasir. User interface setiap halaman menu dan sub menu bagian kasir sama dengan user interface yang ditampilkan pada bagian administrator. Gambar 4.32 merupakan user interface halaman utama kasir.
Gambar 4.32 Halaman Utama Kasir
User harus melalui proses login terlebih dahulu sesuai dengan bagiannya agar dapat mengkases sistem. User interface proses login bagian kasir sama dengan user interface proses login bagian administrator. Jika proses login berhasil, maka user bagian kasir akan masuk ke halaman utama kasir. Proses selanjutnya kasir dapat memanipulasi data sesuai dengan hak aksesnya.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 139
4.3.3 User Interface Proses Transaksi Penagihan User interface proses transaksi bagian penagihan meliputi data pasien rawat jalan, data pembayaran pasien rawat jalan, dan data penagihan pasien rawat jalan. User interface halaman utama bagian memiliki beberapa menu yaitu : File, Data, Laporan, dan Help. Menu File terdiri dari sub menu: Login Logout Exit Menu Data terdiri dari sub menu: Data Pasien Rawat Jalan Data Pembayaran Pasien Rawat Jalan Data Penagihan Pasien Rawat Jalan Menu Help terdiri dari sub menu: About
Menu dan sub menu yang ditampilkan di halaman utama bagian penagihan disesuaikan dengan hak akses yang dimiliki penagihan. User interface setiap halaman menu dan sub menu bagian penagihan sama dengan user interface yang ditampilkan pada bagian administrator. Gambar 4.33 merupakan user interface halaman utama penagihan.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 140
Gambar 4.33 Halaman Utama Penagihan
User harus melalui proses login terlebih dahulu sesuai dengan bagiannya agar dapat mengkases sistem. User interface proses login bagian penagihan sama dengan user interface proses login bagian administrator. Jika proses login berhasil, maka user bagian penagihan akan masuk ke halaman utama penagihan. Proses selanjutnya penagihan dapat memanipulasi data sesuai dengan hak aksesnya.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
BAB V ANALISIS HASIL
5.1 Analisis Hasil Perangkat Lunak Untuk dapat terkoneksi dengan database, sistem ini dilengkapi dengan modul koneksi antara sistem dengan database. Modul koneksi tersebut akan dieksekusi pada saat proses login user. Berikut perintah pada modul koneksi database: Module Connection Public Function Database() Dim myConn As SqlConnection myConn = New SqlConnection("server=CHIMERA; database=RS; Trusted_Connection=yes") Return myConn End Function End Module
User bagian administrator, kasir, dan penagihan memiliki user interface halaman utama yang berbeda sesuai dengan hak akses yang dimiliki masingmasing bagian. Berikut perintah yang mengatur pembagian hak akses pada proses login user: Dim Conn As SqlConnection Conn = Database() Conn.Open() Dim myReader As SqlDataReader Dim Id_Role As Integer Dim command As SqlCommand Dim sql As String = "Select Id_Role from User1 Where User_Name= '" & txtUser.Text.Trim & "' And Password= '" & txtPassword.Text.Trim & "' " command = New SqlCommand(sql, Conn) myReader = command.ExecuteReader() If myReader.HasRows Then i = 0 While myReader.Read() Id_Role = myReader.Item("ID_ROLE")
141
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 142
End While myReader.Close() End If If Id_Role = 1 Then Show_Admin() Me.Hide() ElseIf Id_Role = 2 Then Show_Kasir() Me.Hide() ElseIf Id_Role = 3 Then Show_Penagihan() Me.Hide() Else i = i + 1
Untuk mengeksekusi data numeric, membaca database, dan mengeksekusi query pada database, sistem juga dilengkapi dengan modul fungsi. Berikut perintah untuk modul fungsi : Module Fungsi Private myConn As SqlConnection Public Function getNumeric(ByVal sqlQuery As String) As Integer myConn = Database() myConn.Open() Dim myReader As SqlDataReader Dim cmd As SqlCommand Dim data As Integer cmd = New SqlCommand(sqlQuery, myConn) myReader = cmd.ExecuteReader Try If myReader.Read Then data = myReader.GetValue(0) End If Catch ex As Exception MessageBox.Show("Failed to reader cause " & ex.Message, "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error) End Try myReader.Close() myConn.Close() Return data End Function Public Function isEmpty(ByVal sqlQuery As String) As Integer myConn = Database() myConn.Open() Dim myReader As SqlDataReader Dim cmd As SqlCommand cmd = New SqlCommand(sqlQuery, myConn)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 143
myReader = cmd.ExecuteReader Try If myReader.HasRows Then isEmpty = 0 Else isEmpty = 1 End If Catch ex As Exception MessageBox.Show("Failed to reader cause " & ex.Message, "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error) End Try myReader.Close() myConn.Close() Return isEmpty End Function Public Function executeQuery(ByVal sqlQuery As String) myConn = Database() myConn.Open() Try Dim commandExe As New SqlCommand(sqlQuery, myConn) commandExe.ExecuteNonQuery() Catch ex As Exception MessageBox.Show("Failed to reader cause " & ex.Message, "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error) End Try myConn.Close() End Function End Module
Pada beberapa user interface akan ditampilkan isi dari database dalam bentuk datagrid, hal ini dimaksudkan untuk mempermudah proses manipulasi data. Berikut salah satu contoh perintah untuk datagrid: Public Sub Data_Grid() Dim myConn As SqlConnection Dim daUser As SqlDataAdapter Dim dsUser As DataSet myConn = Database() myConn.Open() Dim sqlselect As String = "Select User1.User_Name 'User Name',User1.Password 'Password',ROLE.Role 'Bagian' from User1,ROLE Where" & _ " ROLE.Id_Role=User1.Id_Role" daUser = New SqlDataAdapter(sqlselect, myConn) dsUser = New DataSet daUser.Fill(dsUser, "USER1") dgUser.DataSource = dsUser dgUser.DataMember = ("USER1") dgUser.ReadOnly = True
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 144
myConn.Close() End Sub
Sistem informasi ini juga dilengkapi fasilitas pengendalian kesalahan misalnya untuk data yang tidak lengkap, dan kesalahan memasukkan format tipe data. Berikut contoh perintah untuk pengendalian kesalahan: Try Dim myConn As SqlConnection Dim myReader As SqlDataReader myConn = Database() myConn.Open() Dim no_mr As String Dim sqlSelect As String = "Select NO_MR from PASIEN order by NO_MR asc" Dim comm As SqlCommand = New SqlCommand(sqlSelect, myConn) myReader = comm.ExecuteReader() If myReader.HasRows Then While myReader.Read() no_mr = myReader.Item("NO_MR") End While End If myReader.Close() If txtNama.Text = "" Then MsgBox("Silahkan masukkan nama pasien", MsgBoxStyle.OKOnly, "Info") txtNama.Focus() ElseIf (IsNumeric(txtNama.Text) = True) Then MsgBox("Data masukkan salah. Data Nama yang anda masukkan tidak boleh berupa angka", MsgBoxStyle.OKOnly, "Info") txtNama.Text = "" txtNama.Focus() ElseIf txtAlamat.Text = "" Then MsgBox("Silahkan masukkan alamat pasien", MsgBoxStyle.OKOnly, "Info") txtAlamat.Focus() ElseIf DTP1.Checked = False Then MsgBox("Silahkan masukkan tanggal lahir pasien", MsgBoxStyle.OKOnly, "Info") DTP1.Focus() ElseIf txtKota.Text = "" Then MsgBox("Silahkan masukkan kota kelahiran pasien", MsgBoxStyle.OKOnly, "Info") txtKota.Focus() ElseIf (IsNumeric(txtKota.Text) = True) Then MsgBox("Data masukkan salah. Data Kota yang anda masukkan tidak boleh berupa angka", MsgBoxStyle.OKOnly, "Info") txtKota.Text = "" txtKota.Focus()
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 145
ElseIf txtUmur.Text = "" Then MsgBox("Silahkan masukkan umur pasien Inputan harus berupa angka (0-9)", MsgBoxStyle.OKOnly, "Info") txtUmur.Focus() ElseIf (IsNumeric(txtUmur.Text) = False) Then MsgBox("Nilai yang anda masukkan salah ! Inputan harus berupa angka (0-9)", MsgBoxStyle.OKOnly, "Info") txtUmur.Text = "" txtUmur.Focus() ElseIf cmbKelamin.Text = "--pilih kelamin--" Then MsgBox("Silahkan pilih jenis kelamin pasien", MsgBoxStyle.OKOnly, "Info") cmbKelamin.Focus() ElseIf cmbStatus.Text = "--pilih status--" Then MsgBox("Silahkan pilih status pasien", MsgBoxStyle.OKOnly, "Info") cmbStatus.Focus() ElseIf cmbAgama.Text = "--pilih agama--" Then MsgBox("Silahkan pilih agama pasien", MsgBoxStyle.OKOnly, "Info") cmbAgama.Focus() ElseIf txtOrtu.Text = "" Then MsgBox("Silahkan masukkan nama orang tua pasien", MsgBoxStyle.OKOnly, "Info") txtOrtu.Focus() ElseIf (IsNumeric(txtOrtu.Text) = True) Then MsgBox("Data masukkan salah. Data Nama yang anda masukkan tidak boleh berupa angka", MsgBoxStyle.OKOnly, "Info") txtOrtu.Focus()
ElseIf cmbPerusahaan.Text = "--pilih perusahaan--" Then MsgBox("Silahkan pilih perusahaan pasien", MsgBoxStyle.OKOnly, "Info") cmbPerusahaan.Focus() Else Dim ans = MsgBox("Anda yakin akan menambahkan data tersebut?", MsgBoxStyle.OKCancel, "Konfirmasi")
Pada user interface data pasien, data perusahaan, dan data pembayaran terdapat id pasien berupa no mr, id perusahaan dan no folio untuk untuk pasien. Semua id tersebut dibuat (generate) oleh sistem secara otomatis untuk mencegah terjadinya redudancy data.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 146
Berikut perintah untuk generate mr: Public Sub generate_mr() Dim myConn As SqlConnection Dim myReader As SqlDataReader Dim angka, angka2 As Integer angka2 = 0 Dim no_mr As String Dim no_mr1 As String Dim n As Integer myConn = Database() myConn.Open() Dim sql As String = "Select NO_MR from PASIEN" Dim command As SqlCommand = New SqlCommand(sql, myConn) Try myReader = command.ExecuteReader() If myReader.HasRows Then While myReader.Read() no_mr = myReader.Item("NO_MR") n = Len(no_mr) angka = CInt(Mid$(no_mr, 4, n)) If angka2 < angka Then angka2 = angka End If End While no_mr = CStr(angka2 + 1) no_mr1 = "00-" + CStr(no_mr) txtMr.Text = no_mr1 Else : no_mr1 = "00-1" txtMr.Text = no_mr1 End If myReader.Close() Catch ex As Exception MsgBox("Tidak ada data", MsgBoxStyle.OKOnly, "Info") End Try myConn.Close() End Sub
Berikut perintah untuk generate id perusahaan: Public Sub generate_id() Dim myConn As SqlConnection Dim myReader As SqlDataReader Dim i As Integer = 1 Dim perusahaan_id As String Dim perusahaan_id2 As String myConn = Database() myConn.Open() Dim sql As String = "Select ID_PERUSAHAAN from PERUSAHAAN
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 147
order by ID_PERUSAHAAN" Dim command As SqlCommand = New SqlCommand(sql, myConn) myReader = command.ExecuteReader() If myReader.HasRows Then Try While myReader.Read perusahaan_id = CInt(Mid(Trim(myReader.GetString(0)), 2, 5)) If perusahaan_id = i Then i = i + 1 End If End While Catch ex As Exception MsgBox("Tidak ada data", MsgBoxStyle.OKOnly, "Info") End Try perusahaan_id2 = CStr(i) If perusahaan_id2.Length = 1 Then perusahaan_id2 = "P00" + CStr(perusahaan_id2) txtId.Text = perusahaan_id2 ElseIf perusahaan_id2.Length = 2 Then perusahaan_id2 = "P0" + CStr(perusahaan_id2) txtId.Text = perusahaan_id2 ElseIf perusahaan_id2.Length = 3 Then perusahaan_id2 = "P" + CStr(perusahaan_id2) txtId.Text = perusahaan_id2 End If myReader.Close() myConn.Close() Else perusahaan_id2 = "P001" txtId.Text = perusahaan_id2 End If End Sub
Berikut perintah untuk generate nomor folio : Public Sub generate_folio() Dim myConn As SqlConnection Dim myReader As SqlDataReader Dim angka, angka2 As Integer angka2 = 0 Dim no_folio As String Dim no_folio1 As String Dim n As Integer myConn = Database() myConn.Open() Dim sql As String = "Select NO_FOLIO from BIAYA" Dim command As SqlCommand = New SqlCommand(sql, myConn) Try myReader = command.ExecuteReader() If myReader.HasRows Then While myReader.Read()
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 148
no_folio = myReader.Item("NO_FOLIO") n = Len(no_folio) angka = CInt(Mid$(no_folio, 4, n)) If angka2 < angka Then angka2 = angka End If End While no_folio = CStr(angka2 + 1) no_folio1 = "FO-" + CStr(no_folio) txtFolio.Text = no_folio1 Else : no_folio1 = "FO-1" txtFolio.Text = no_folio1 End If myReader.Close() Catch ex As Exception MsgBox("Tidak ada data", MsgBoxStyle.OKOnly, "Info") End Try myConn.Close() End Sub
5.2 Kelebihan Dan Kekurangan Sistem 5.2.1 Kelebihan Sistem Berikut ini beberapa kelebihan sistem: 1. Sistem ini menghasilkan informasi berupa laporan biaya tagihan pasien rawat jalan yang digunakan oleh bagian penagihan untuk proses pelunasan biaya tagihan yang ditanggung oleh perusahaan. 2. Sistem ini meningkatkan efisiensi dalam proses pembayaran biaya pasien rawat jalan.
5.2.2 Kekurangan Sistem Berikut ini kekurangan sistem: 1. Sistem ini tidak dilengkapi dengan fasilitas yang dapat menentukan tanggal jatuh tempo penagihan.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 149
2. Kesulitan dalam pengembangan untuk sistem informasi rumah sakit yang lebih besar dan kompleks lagi karena tidak menggunakan store procedure.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
BAB VI PENUTUP
6.1 Kesimpulan 1. Sistem informasi pembayaran biaya perawatan pasien dengan asuransi kesehatan pada perusahaan ini secara garis besar sudah berjalan dengan baik tetapi masih belum dapat digunakan secara penuh pada sistem informasi rumah sakit secara keseluruhan. 2. Masih membutuhkan banyak pengembangan dan perbaikan pada laporan yang dihasilkan. 3. Sistem ini sudah mampu melakukan perhitungan biaya tagihan perawatan pasien rawat jalan.
6.2 Saran 1. Sistem ini akan lebih baik jika terhubung langsung dengan bagian pendaftaran dan kasir. 2. Sistem ini juga akan lebih baik jika menangani pasien rawat inap juga.
150
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
DAFTAR PUSTAKA Kusumo, Drs. Ario Suryo, Visual Basic.NET versi 2002 dan 2003, Elex Media Komputindo, Jakarta, 2004. Budiharto, Widodo, Panduan Bagi Programmer .NET Menguasai Visual Basic.Net Tingkat Lanjut, Elex Media Komputindo, Jakarta, 2003. Akbar, Ali, VISUAL BASIC.net Belajar Praktis Melalui Berbagai Tutorial dan Tips, Informatika Bandung, Bandung, 2005. Martina, Ir. Inge, 36 Jam Belajar Komputer Microsoft SQL Server 2000, Elex Media Komputindo, Jakarta, 2003. Yung, Kok, Trik Menguasai Perintah SQL, Elex Media Komputindo, Jakarta, 2003. Whitten, J. L., Bentley, L. D., Barlow, V. M., System Analysis & Design Methods Sixth Edition, Irwin/McGraw-Hill, 2004. Jogiyanto, Analisis & Disain Sistem Informasi : Pendekatan Terstruktur Teori dan Praktek Aplikasi Bisnis, Andi Offset, Yogyakarta, 1990. Widjajanto, Nugroho, Sistem Informasi Akuntansi, Erlangga, Jakarta, 2001. Connolly, T., Begg, C., DATABASE SYSTEM A Pratical Approach To Design, Implementation And Management, Addison Wesley, 2002. MSDN Library-July 2004.
151