53 PENGEMBANGAN SISTEM INFORMASI PELAYANAN KESEHATAN PADA KLINIK DOKTER KELUARGA SURADITA STUDY KASUS DESA SURADITA KEC. CISAUK TANGERANG Muhammad Irfan 102093026436 JURUSAN SISTEM INFORMASI FAKULTAS SAINS DAN TEKNOLOGI 54 UIN SYARIF HIDAYATULLAH JAKARTA 1428 H / 2007 M 55 PENGEMBANGAN SISTEM INFORMASI PELAYANAN KESEHATAN PADA KLINIK DOKTER KELUARGA SURADITA STUDI KASUS DESA SURADITA KEC. CISAUK TANGERANG Oleh Muhammad Irfan 102093026436 Skripsi Sebagai salah satu syarat untuk memperoleh gelar Sarjana Komputer Fakultas Sains Dan Teknologi Universitas Islam Negeri Syarif Hidayatullah Jakarta PROGRAM STUDI SISTEM INFORMASI FAKULTAS SAINS DAN TEKNOLOGI UIN SYARIF HIDAYATULLAH JAKARTA 56 2007 M / 1428 H PENGEMBANGAN SISTEM INFORMASI PELAYANAN KESEHATAN PADA KLINIK DOKTER KELUARGA SURADITA STUDI KASUS DESA SURADITA KEC. CISAUK TANGERANG Skripsi Sebagai Salah Satu Syarat untuk Memperoleh Gelar Sarjana Komputer Pada Fakultas Sains Dan Teknologi UIN Jakarta Oleh Muhammad Irfan 102093026436 Menyetujui Pembimbing 1 Pembimbing 11 Ir. Bakri La Katjong, MT, MKom Khodijah Hulliyah, MSi Mengetahui, Ketua Program Studi Sistem Informasi M. Qomarul Huda, M.Kom NIP. 150326908 57 Dengan ini menyatakan bahwa skripsi yang ditulis oleh : Nama : Muhammad Irfan NIM : 102093026436 Program Studi : Sistem Informasi Judul Skripsi : PENGEMBANGAN SISTEM INFORMASI PELAYANAN KESEHATAN PADA KLNIK DOKTER KELUARGA SURADITA STUDY KASUS DESA SURADITA KEC. CISAUK TANGERANG Dapat diterima sebagai syarat kelulusan untuk memperoleh gelar sarjana komputer pada jurusan Sistem Informasi, Fakultas Sains dan Teknologi UIN Syarif Hidayatullah Jakarta. Jakarta, Agustus 2007 Menyetujui Dosen Pembimbing Penguji I Penguji II ( Nurhayati, M. Kom ) (Nur Aeni Hidayah, MMSI) Mengetahui, Dekan Fakultas Sains dan Teknologi Informasi UIN Syarif Hidayatullah Jakarta Dr. Syopiansyah Jaya Putra, M.Sis NIP. 150 317 956 Ketua Program Studi Sistem M. Qomarul Huda, M.Kom NIP. 150326908 58 PERNYATAAN DENGAN INI SAYA MENYATAKAN BAHWA SKRIPSI INI BENARBENAR HASIL KARYA SENDIRI YANG BELUM PERNAH DIAJUKAN SEBAGAI SKRIPSI ATAU KARYA ILMIAH PADA PERGURUAN TINGGI ATAU LEMBAGA MANAPUN Jakarta, Agustus 2007 Muhammad Irfan 102093026436 59 ABSTRAK MUHAMMAD IRFAN, Pengembangan Sistem Informasi Pelayanan Kesehatan Pada Klinik Dokter Keluarga Suradita (Dibawah bimbingan Ir. Bakri La Katjong, MT, Mkom, dan Khodijah Hulliyah, MSi). Klinik Dokter Keluarga Suradita merupakan sebuah klinik yang memberikan pelayanan kesehatan pada masyarakat Desa Suradita khususnya. Untuk meningkatkan pelayanan yang lebih baik terhadap pasien yang berobat diperlukan suatu penanganan dan pengolahan data yang baik dalam usaha yang sedang berkembang. Dari hasil analisis yang dilakukan, pada sistem berjalan yang selama ini digunakan oleh bagian pendaftaran dan bagian kasir kurang memadai dan kurang menunjang akan kebutuhan sistem yang diinginkan. Didalam memberikan pelayanannya kepada pasien, Klinik Dokter Keluarga Suradita masih menggunakan sistem manual dalam pengadministrasiannya, yang meliputi penulisan, penginputan, penyimpanan data pasien, Biaya pembayaran pasien, serta laporan-laporan yang diinginkan seperti laporan data pasien yang berobat, laporan data diagnosa pasien. Untuk mengatasi persoalan tersebut diatas, maka diperlukan suatu sistem informasi berbasis komputer. Dimana dalam penelitian ini perancangan sistem yang digunakan menggunakan metodologi SDLC serta dibuat pemrograman dengan Visual Basic 6.0 dan Microsoft Access 2003 sebagai basis datanya. Kata Kunci : Sistem Informasi, Pelayanan Kesehatan, SDLC, Normalisasi xviii + 119 Halaman + 10 Tabel + 40 Gambar + 11 Daftar Pustaka (1990-2005) 60 KATA PENGANTAR Assalamu’alaikum Wr.Wb Dengan mengucapkan syukur alhamdulillah, penulis panjatkan ke hadirat ALLAH SWT atas rahmat dan hidayah-nya sehingga skripsi ini dapat selesai sebagaimana mestinya. Penulis menyadari bahwa tanpa bantuan dan bimbingan dari berbagai pihak, skripsi ini tidak akan selesai dengan baik. Pada kesempatan ini, penulis ingin mengucapkan terima kasih yang sebesar-besarnya atas bimbingan dan pengarahan yagn diberikan pada penulis selama menyusun skripsi ini. Oleh karena itu, izinkanlah penulis menyampaikan ucapan terima kasih kepada : 1. Bapak DR. Syopiansyah Jaya Putra, M.Sis selaku Dekan Fakultas Sains Dan Teknologi UIN Syarif Hidayatullah Jakarta. 2. Bapak M. Qomarul Huda M.Kom selaku Ketua Program Studi Sistem Informasi. 3. Bapak Ir. Bakri La Katjong, MT. Mkom Selaku Dosen Pembimbing I dan Ibu Khodijah Hulliyah, MSi Selaku Dosen Pembimbing II. 4. Bapak dr. Dean Handi Mulya Selaku Pimpinan Klinik Dokter Keluarga serta seluruh Dokter dan staf yang ada pada Klinik Dokter Keluarga Suradita yang tidak dapat penulis sebutkan satu persatu. Terima kasih atas kerjasama dan bantuannya. 61 5. Ayahanda H. Mahpud dan Ibunda Hj. Fatriyah selaku orang tua serta saudara penulis, yang telah memberikan doa dan semangat sehingga skripsi ini dapat terselesaikan. penulis menyadari bahwa penyususnan skripsi ini masih jauh dari sempurna sehingga segala saran dan kritik yang membangun sangat penulis harapkan demi kesempurnaan skripsi ini. Penulis berharap, skripsi ini dapat berguna dan bermanfaat bagi yang membutuhkanya khususnya penulis sendiri, rekan-rekan mahasiswa dan masyarakat pada umumnya. Semoga segala bantuan yang diberikan kepada penulis akan mendapatkan balasan yang setimpal dari Allah SWT, Amin. Wassalamu’alaikum Wr.Wb Jakarta, Agustus 2007 Muhammad Irfan Penulis 62 DAFTAR ISI Halaman Lembar Judul................................................................................................. i Lembar Persetujuan....................................................................................... ii Lembar Pengesahan....................................................................................... iii Lembar Pernyataan........................................................................................ iv Abstrak........................................................................................................... v Kata Pengantar............................................................................................... vi Daftar Isi........................................................................................................ viii Daftar Simbol................................................................................................. xii Daftar Tabel................................................................................................... xv Daftar Gambar............................................................................................ BAB I xvi PENDAHULUAN................................................................ 1 1.1 Latar Belakang.............................................................. 1 1.2 Rumusan Masalah...................................................... 3 1.3 Batasan Masalah........................................................... 4 1.4 Tujuan dan Manfaat Penelitian..................................... 4 1.5 Metode Penelitian......................................................... 6 1.5.1 Metode Pengumpulan Data................................. 6 1.5.2 Metode Perancangan........................................... 7 1.6 BAB II Sistematika Penulisan................................................... 8 LANDASAN TEORI........................................................... 10 2.1 Konsep Dasar Sistem.................................................... 10 2.1.1 Karakteristik Sistem............................................ 11 2.1.2 Klasifikasi Sistem............................................... 13 2.1.3 Pengertian Informasi........................................... 14 2.2 Pengembangan Sistem ................................................. 18 2.3 Pengertian Pelayanan Kesehatan.................................. 18 63 2.3.1 Pelayanan Kesehatan di Indonesia...................... 19 2.4 Pengertian Klinik.......................................................... 20 2.4.1 Tujuan Klinik...................................................... 20 2.4.2 Manfaat Klinik.................................................... 20 2.5 Database........................................................................ 21 2.5.1 Operasi-operasi Database....................................22 2.5.2 Tujuan Database..................................................22 2.5.3 Sistem Database.................................................. 22 2.6 Peralatan Pendukung................................................... 23 2.6.1 Bagan Alir Dokumen........................................ 23 2.6.2 Data Flow Diagram............................................ 25 2.6.3 ERD (Entity Relationship Diagram).................. 28 2.6.4 Normalisasi........................................................ 31 2.6.5 Kamus Data....................................................... 34 2.6.6 Sistem Pengkodean............................................ 39 2.6.7 Perancangan Input / output................................ 41 2.6.7.1 Perancangan Input................................. 41 2.6.7.2 Perancangan Output............................... 42 2.6.8 Microsoft Visual Basic 6.0................................ 42 2.6.9 Microsoft Access 2003...................................... 43 BAB III METODOLOGI PENELITIAN....................................... 45 3.1 Metode Pengumpulan Data......................................... 45 3.1.1 Metode Observasi............................................. 45 3.1.2 Metode Wawancara........................................... 45 3.1.3 Metode Studi Pustaka....................................... 47 3.2 Waktu dan Tempat Penelitian..................................... 47 3.3 MetodePengembangan Sistem.................................... 47 3.3.1 Perencanaan Sistem......................................... 49 3.3.2 Analisis Sistem................................................ 49 3.3.2 Perancangan Sistem......................................... 51 64 3.3.3 Implementasi Sistem........................................ 52 3.3.4 Pemeliharaan Sistem........................................ 52 BAB IV PENGEMBANGAN SISTEM INFORMASI PELAYANAN KESEHATAN ......................................... 53 4.1 Umum......................................................................... 53 4.2 Tinjauan Masalah....................................................... 54 4.3 4.2.1 Sejarah Klinik................................................. 54 4.2.2 Visi , Misi dan Tujuan Klinik......................... 55 4.2.3 Struktur Organisasi dan Fungsi...................... 56 Analisis Sistem Berjalan............................................ 59 4.3.1 Prosedur Sistem Berjalan............................... 59 4.3.2 Analisis Kebutuhan Sistem yang Berjalan..... 62 4.3.3 Kelemahan Sistem yang Berjalan................... 64 4.3.4 Kelebihan Sistem yang Berjalan..................... 68 4.3.5 Analisis Masalah............................................ 68 4.3.6 Solusi Pemecahan Masalah............................ 69 4.4 Usulan Rancangan Sistem Pelayanan Kesehatan........ 71 4.4.1 Diagram Arus Dokumen Usulan..................... 73 4.5 Perancangan Sistem.................................................... 74 4.5.1 Perancangan Proses........................................ 74 4.5.2 Perancangan Basis Data................................. 82 4.5.2.1 ERD yang belum dinormalisasikan.... 82 4.5.2.2 Normalisasi........................................ 83 4.5.2.3 ERD yang sudah dinormalisasikan.... 88 4.5.3.4 Struktur Data..................................... 89 4.5.3.5 Rancangan Kode................................ 93 4.5.3.6 Kamus Data....................................... 95 4.5.3 Perancangan Input / Output............................ 96 4.5.3.1 Perancangan Struktur Menu Tampilan.................................. 96 65 4.5.3.2 Perancangan Layar Tampilan............ 98 4.6 4.7 BAB V Implementasi............................................................... 111 4.6.1 Spesifikasi Komputer...................................... 111 4.6.2 Konversi Sistem.............................................. 112 Pemeliharaan Sistem................................................... 113 PENUTUP........................................................................... 114 5.1 Kesimpulan.................................................................. 114 5.2 Saran............................................................................ 115 DAFTAR PUSTAKA................................................................................. 116 LAMPIRAN I WAWANCARA................................................................ 117 LAMPIRAN II TAMPILAN APLIKASI ................................................ 120 LAMPIRAN III LISTING PROGRAM .................................................. 133 LAMPIRAN IV DOKUMEN .................................................................... 164 66 DAFTAR SIMBOL Simbol-simbol DFD (Data Flow Diagram) DeMarco dan Gane Sarson Simbol Arti Proses Keterangan Menunjukan kegiatan proses operasi dari sistem. Entitas yang memberi dan menerima data. Entitas luar Data Storage Tempat penyimpanan dan pengambilan file data. Menunjukan arah/arus dari data yang diproses. Arus Data 67 Simbol-simbol Bagan Alir (Flow Map) Jogiyanto, HM Simbol Arti Keterangan Awal/akhir dari sebuah proses. Start Off Operasi sistem secara manual. Manual Operation Proses secara komputerisasi. Proses Komputerisasi Keputusan. Decision Dokumen dalam bentuk file-file. Arsip Dokumen dalam komputer. Dokumen Aliran data. Arus Data Simpanan dalan database. Data Storage 68 Simbol-simbol ERD (Entity Relationship Diagram) Fathansyah, Ir Simbol Arti Entitas Keterangan Komponen yang berupa file-file data untuk diproses oleh sistem. Penghubung antar entitas satu dengan entitas lain. Relasi Penjelasan secara detail tentang entitas. Atribut Penjelasan tentang hubungan. Link Relasi satu ke satu 1 1 One-to-one 1 Relasi satu ke banyak m One-to-many m Relasi banyak ke banyak m Many-to-many 69 DAFTAR TABEL Tabel 4.1 Halaman Basis Data Pasien……………………………………..….. 89 Tabel 4.2 Basis Data Transaksi…………………………………....... 89 Tabel 4.3 Basis Data Dokter……………………………………….... 90 Tabel 4.4 Basis Data Resep………………………………………….. 90 Tabel 4.5 Basis Data Faktur………….…………………………........ 91 Tabel 4.6 Basis Data Detil Dagnosa………………………………..... 91 Tabel 4.7 Basis Data Diagnosa……………………………………..... 92 Tabel 4.8 Basis Data Detil Resep…………………………………..... 92 Tabel 4.9 Basis Data Obat………………………………………….... 93 Tabel 4.10 Kamus Data……………………………………………....... 95 70 DAFTAR GAMBAR Halaman Gambar 4.1 Struktur Organisasi Klinik Dokter Keluarga Suradita…......... 57 Gambar 4.2 Diagram Arus Dokumen Sistem Berjalan................................ 67 Gambar 4.3 Diagram Arus Dokumen Sistem Usulan................................ .. 73 Gambar 4.4 Diagram Konteks Sistem Informasi Pelayanan Kesehatan...... 74 Gambar 4.5 Diagram Level 1 Sistem Informasi Pelayanan Kesehatan........ 76 Gambar 4.6 Diagram Detail Proses 1.0 Level 2 Proses Pendaftaran ........... 78 Gambar 4.7 Diagram Detail Proses 4.0 Level 2 Proses Input Data Diagnosa………………………………………........................ 79 Gambar 4.8 Diagram Detail Proses 5.0 Level 2 Proses Pembayaran Biaya Pengobatan dan Obat..……….………………………... 80 Gambar 4.9 Diagram Detail Proses 6.0 Level 2 Proses Pembuatan Laporan................................................................... 81 Gambar 4.10 Entity Relationship Diagram (ERD) yang belum dinormalisasikan ....................................................................... 82 Gambar 4.11 Normalisasi Tidak Normal (Unnormalized)...................……... 83 Gambar 4.12 Bentuk Normal Pertama (1NF)...........……………………….. 84 Gambar 4.13 Bentuk Normal Kedua (2NF)..……………………………….. 86 Gambar 4.14 Bentuk Normal Ketiga (3NF)....................………………….... 87 Gambar 4.15 Entity Relationship Diagram (ERD) yang sudah dinormalisasikan ....................................................................... 88 Gambar 4.16 Perancangan Struktur Menu Tampilan……………………….. 97 71 Gambar 4.17 Rancangan Layar Password……………..…………..………... 98 Gambar 4.18 Rancangan Layar Menu Utama Pelayanan Kesehatan………... 98 Gambar 4.19 Rancangan File Master Data Pasien……………………......... 99 Gambar 4.20 Rancangan File Master Data Obat………………………........ 99 Gambar 4.21 Rancangan File Master Data Diagnosa……………………..... 100 Gambar 4.22 Rancangan File Master Data Dokter………………………..... 100 Gambar 4.23 Rancangan Menu Resep………………………………............ 101 Gambar 4.24 Rancangan Menu Faktur……………………………............... 101 Gambar 4.25 Rancangan Menu Transaksi Diagnosa……………………...... 102 Gambar 4.26 Rancangan Layar Laporan Resep ………………………........ 102 Gambar 4.27 Rancangan Layar Laporan Faktur…………………………..... 103 Gambar 4.28 Rancangan Layar Laporan Transaksi……………………........ 103 Gambar 4.29 Rancangan Layar Ganti Password………………………….... 104 Gambar 4.30 Rancangan Layar tambah User……………………………..... 104 Gambar 4.31 Rancangan Layar Daftar Pasien…………………………….... 105 Gambar 4.32 Rancangan Layar Daftar Dokter…………………………....... 105 Gambar 4.33 Rancangan Layar Daftar Obat…………………………........... 106 Gambar 4.34 Rancangan Layar Daftar Diagnosa……….........…………....... 106 Gambar 4.35 Rancangan Layar Laporan Resep…………………………...... 107 Gambar 4.36 Rancangan Layar Laporan Faktur…………………………..... 107 Gambar 4.37 Rancangan Layar Laporan Diagnosa………………………..... 108 Gambar 4.38 Rancangan Layar Cetak Resep……………………………..... 108 Gambar 4.39 Rancangan layer Cetak Faktur……………………………...... 109 72 Gambar 4.40 Rancangan Layar Cetak Biaya Pengobatan………………....... 109 Gambar 4.41 Rancangan Layar Kartu Pasien……………………………..... 110 73 BAB I PENDAHULUAN 1.1 Latar Belakang Dalam teknologi yang maju, makin terasa diperlukan suatu alat yang mempunyai kemampuan untuk melaksanakan pekerjaan rutin, menghitung, menyimpan informasi dalam jumlah besar, mengambil data dengan random (acak) maupun squensial (urut) dalam waktu yang cepat. Dalam hal ini, komputer merupakan alat yang memainkan peranan yang sangat penting. Pada dasarnya komputer adalah suatu peralatan mekanik yang digunakan untuk pengolahan data berdasarkan program yang dibuat oleh manusia sehingga menghasilkan informasi yang diinginkan dengan cepat dan mudah. Komputer juga mempunyai aspek-aspek tertentu diantaranya adalah hardware, software, brainware. Pada saat ini komputer sudah banyak digunakan sebagai alat pengolah data pada berbagai kegiatan, namun pada awalnya kegiatan pengolahan data mungkin hanya sekedar untuk pencatatan, tetapi dengan adanya perkembangan dapat dijadikan sebagai kegiatan pembuatan penyajian laporan. Komputer merupakan salah satu penerapan nyata dari kemajuan ilmu pengetahuan dan teknologi. Kalangan bisnis dan perkantoran semakin menyadari pentingnya kehadiran komputer ditengah-tengah 74 aktifitas mereka. Demikian pula halnya dengan badan usaha Klinik Kesehatan, walaupun termasuk badan usaha yang kecil kehadiran komputer sangat membantu dalam setiap kegiatannya. Sejalan dengan perkembangan ilmu dan teknologi, segala sesuatu yang berhubungan dengan informasi berjalan dengan cepat. Begitu juga di Klinik-klinik kesehatan yang merupakan suatu tempat pelayanan kesehatan masyarakat. Adapun Klinik Dokter Keluarga Suradita, merupakan salah satu klinik yang memberikan pelayanan kesehatan kepada masyarakat, tidak terlepas dari kebutuhan akan teknologi ini. Selanjutnya Klinik Dokter Keluarga Suradita tersebut mengalami kendala dalam memberikan pelayanan kesehatan kepada masyarakat, karena sistem yang ada, tidak dapat mendata pasien secara sistematis, terkadang membuat kesulitan kepada petugas klinik dalam melacak data pasien dan mencari data pasien yang sudah terdaftar. Dalam hal sistem yang terdapat pada Klinik Dokter Keluarga Suradita, walaupun sudah menggunakan komputer akan tetapi masih berjalan secara manual dan standalone. Sistem yang ada tidak dapat mendata pasien secara sistematis dan didalam proses keuangan pembayaran-pembayaran berjalan masih secara global sehingga tidak diketahui rincian dari pembayaran yang berlaku. Sistem yang ada tidak dapat mencetak laporan-laporan baik pembayaran yang ada, diagnosa pasien maupun pasien yang datang ke klinik. 75 NO SISTEM YANG LAMA 1 - Tidak dapat mendata pasien secara sistematis, tidak laporan-laporan yang ada, data dapat baik SISTEM YANG BARU - Menghasilkan mencetak yang diinginkan dengan pembayaran diagnosa informasi cepat dan mudah. pasien maupun pasien yang datang ke klinik. 2 - Proses pelayanan terhadap 1 pasien - Hanya membutuhkan memakan waktu 10 s.d 15 menit 3 waktu kurang dari 5 menit Hanya bisa melayani 25 s.d 50 - pasien / hari Dari Bisa melayani pasien sebanyak 50 s.d 150 / hari permasalahan-permasalahan yang ada, penulis ingin memberikan suatu solusi untuk mengatasi kekurangan yang ada dengan membuat sistem yang dapat mengatasi kendala-kendala diatas , dalam skripsi yang berjudul :“ PENGEMBANGAN SISTEM INFORMASI PELAYANAN KESEHATAN PADA KLINIK DOKTER KELUARGA SURADITA STUDI KASUS DESA SURADITA KEC. CISAUK TANGERANG" 1.2 Rumusan Masalah Klinik Dokter Keluarga Suradita merupakan salah satu tempat pelayan kesehatan kepada masyarakat di Desa Suradita dan sekitarnya dalam memeriksa berbagai macam penyakitnya. 76 Berdasarkan latar belakang masalah yang telah dikemukakan diatas, maka pokok-pokok masalah yang akan diteliti dalam penulisan skripsi ini dapat dirumuskan sebagai berikut : 1. Apakah pengembangan Sistem informasi dapat membantu klinik dalam melayani pasien di Klinik Dokter Keluarga Suradita ? 2. Bagaimana mengembangkan suatu sistem informasi yang dapat digunakan untuk melayani pasien di klinik Dokter Keluarga Suradita ? 3. Bagaimana mengimplementasikan sistem ini didalam Klinik Dokter Keluarga Suradita? 1.3 Batasan Masalah Sesuai dengan rumusan permasalahan diatas, uraian yang akan penulis sampaikan dibatasi hanya pada pengembangan sistem informasi pelayanan kesehatan pada klinik dokter keluarga Suradita, yang mencakup: 1. Proses pendaftaran pasien agar data pasien dapat di simpan. 2. Proses pendataan data diagnosa pasien agar dapat disimpan dengan baik dan mudah untuk dicari. 3. Proses Pembayaran obat dan biaya pengobatan secara rinci agar diketahui rincian dari pembayaran obat tersebut. 4. Laporan pasien yang berobat perhari dan perbulan, Data Diagnosa Pasien serta laporan pembayaran resep obat dan biaya pengobatan yang ada pada klinik dokter keluarga Suradita. 77 1.4 Tujuan dan Manfaat Penelitian Tujuan dari penelitian ini adalah membantu memecahkan masalah yang dihadapi oleh Klinik Dokter Keluarga Suradita dengan cara mewujudkan sebuah software dan merancang sistem informasi untuk pendataan pasien secara sistematis agar data pasien dapat disimpan secara sistematis, pembayaran obat dan biaya pengobatan secara jelas sehingga dapat diketahui rincian dari pembayaran obat dan biaya pengobatan tersebut, mencetak laporan yang diperlukan seperti laporan pasien yang berobat, laporan data diagnosa pasien serta laporan pembayaran resep obat dan biaya pengobatan yang ada pada klinik dokter keluarga Suradita. Sedangkan manfaat penelitian, yaitu : Sesuai dengan permasalahan dan tujuan penelitian yang telah disebutkan diatas, maka manfaat peneltian dapat dirumuskan sebagai berikut : A ) Manfaat bagi Klinik. Membantu memudahkan petugas klinik pasien, pengambilan dan dalam proses Pendataan pembayaran obat pasien serta meminimalisir penggunaan kertas. B) Manfaat bagi Pasien. Memberikan kemudahan dan kenyamanan kepada pasien dalam melakukan proses pengobatan karena mendapatkan pelayanan cepat, tepat dan memuaskan. 78 C) Manfaat bagi Penulis Dapat mengaplikasikan disiplin ilmu yang telah diperoleh selama kuliah dan sebagai syarat kelulusan sarjana komputer pada jurusan Sistem Informsi Fakultas sains dan teknologi UIN Syarif Hidayatullah Jakarta. 1.5 Metodologi Penelitian Dalam rangka penulisan skripsi ini tahapan metodologi penelitian yang dilakukan oleh penulis adalah : 1.5.1 Metode Pengumpulan Data. Didalam metode pengumpulan data yang penulis gunakan dalam pembahasan masalah skripsi ini adalah : A. Observasi Metode ini dilakukan dengan menggunakan pengamatan secara langsung terhadap proses kerja yang ada dalam kasus yang sedang diamati. B. Wawancara Metode ini dilakukan dengan mengajukan tanya jawab secara langsung dengan pihak yang bersangkutan didalam penulisan skripsi ini. C. Studi Pustaka Metode ini dilakukan melalui pendekatan-pendekatan yang mempelajari buku yang berisi teori-teori sebagai bahan 79 pertimbangan atau referensi yang berhubungan dengan permasalahan yang akan dibahas dalam skripsi. 1.5.2 Metode Perancangan Metode perancangan yang dilakukan dalam penelitian ini, penulis melakuakan pengembangan sistem menggunakan metode daur hidup pengembangan sistem. Tahapan yang dilakukan adalah: a) Perencanaan Sistem Tahap perencanaan merupakan kegiatan merencanakan sebuah sistem baru/perbaharuan yang lebih baik dari sistem yang ada saat ini. b) Analisis Sistem Menghubungkan laporan hasil metode studi lapangan dan kebijakan pemakai menjadi spesifiksi yang terstruktur dengan menggunakan pemodelan. Alat yang digunakan System Procedure Diagram dan Data Flow Diagram. c) Perancangan Sistem Mengimplementasikan model yang diinginkan pemakai. Alat yang digunakan adalah : 1. Data Flow Diagram dan Kamus Data sebagai alat perancangan sistem. 2. ERD, Normalisasi dan Spesifikasi Database sebagai alat perancangan database. 3. Perancangan layar tampilan input output. 80 4. STD sebagai alat perancangan struktur tampilan. d) Implementasi Sistem. Dalam implementasi terdiri dari 4 tahap yaitu : 1. Membangun sistem yang sesuai dengan perencanaan. 2. Melakuakn testing pada sistem yang telah dibangun sesuai dengan perencanaan. 3. Penginstalan sistem aplikasi yang dibangun. 4. Mengoperasikan sistem yang dibangun dan memberikan training kepada operator/ petugas klinik. e) Operasi dan Pendukung Sistem Tahap ini bertujuan untuk memelihara dan meningkatkan kerja sistem. 1.6. Sistematika Penulisan Sistematika penulisan tugas akhir ini disusun dengan tujuan agar semua kegiatan dalam pengembangan sistem informasi pelayanan kesehatan pada Klinik Dokter Keluarga di Desa Suradita dapat disusun dengan jelas dan sistematis. Dalam rangka penyusunan tugas akhir ini, penulis membagi sistematika penulisan kedalam lima bab, yaitu : BAB I PENDAHULUAN Dalam bab ini diuraikan tentang latar belakang dan permasalahan, rumusan masalah, batasan masalah, tujuan 81 dan manfaat penelitian, metodologi penelitian, serta sistematika penulisan. BAB II LANDASAN TEORI Penguraian kerangka teoritis yang digunakan dalam penyusunan dan penulisan skripsi ini. BAB III METODOLOGI PENELITIAN Bab yang membahas metode yang digunakan penulis dalam melakukan penelitian. Membahas tahapan pengembangan sistem dengan metode pendekatan terstruktur. BAB IV ANALISIS DAN PERANCANGAN SISTEM INFORMASI PELAYANAN KESEHATAN Bab ini berisi tentang sejarah, visi dan misi, serta tujuan klinik Dokter Keluarga, perancangan dan konstruksi, Implementasi serta pengujian sistem yang dibangun dengan menggunakan Microsoft Visual Basic 6.0 dengan mengacu pada siklus daur hidup pengembangan sistem (SDLC). BAB V PENUTUP Pada bab ini penulis membahas tentang kesimpulan dari bab-bab sebelumnya dan saran-saran dari penulis 82 BAB II LANDASAN TEORI 2.1. Konsep Dasar Sistem Menurut Jogiyanto (1999: 1), terdapat dua kelompok pendekatan di dalam mendefinisikan sistem, yaitu yang menekankan pada prosedurnya dan yang menekankan pada komponen atau elemennya. 1. Pendekatan sistem yang lebih menekankan pada prosedur mendefinisikan sistem sebagai berikut: “Sistem adalah suatu jaringan kerja dari prosedur-prosedur yang saling berhubungan, berkumpul bersama-sama untuk melakukan suatu kegiatan atau untuk menyelesaikan suatu sasaran tertentu”. 2. Pendekatan sistem yang lebih menekankan pada elemen atau komponennya mendefinisikan sistem sebagai berikut : “Sistem adalah kumpulan dari elemen-elemen yang berinteraksi untuk mencapai suatu tujuan tertentu”. Secara sederhana suatu sistem dapat diartikan sebagai suatu kumpulan atau himpunan dari unsur-unsur komponen atau variabel-variabel yang terorganisir, saling berinteraksi, saling ketergantungan satu sama lainnya dan terpadu. Istilah-istilah “SISTEM” banyak dipakai baik diperusahaanperusahaan atau organisasi, diantaranya adalah : sistem perbankan, sistem 83 akuntansi, sistem perangkat lunak, sistem tata surya, sistem teologi dan masih banyak lagi bentuk sistem yang ada sekarang ini. Dari semua uraian-urain diatas dapat diambil suatu kesimpulan bahwa sistem adalah sekelompok unsur-unsur atau komponen-komponen yang saling berhubungan erat satu dengan yang lainnya yang berfungsi bersama-sama untuk mencapai tujuan. 2.1.1. Karakteristik Sistem Menurut Jogiyanto (1999 : 3), pada dasarnya sistem mempunyai karakteristik atau sifat-sifat tertentu, yaitu: a. Komponen Sistem (Components) Suatu sistem terdiri dari sejumlah komponen yang saling berinteraksi, yang artinya saling bekerja sama membentuk suatu kesatuan. b. Batas Sistem (Boundary) Batas sistem (boundary) merupakan daerah yang membatasi antara suatu sistem dengan sistem yang lainnya atau dengan lingkungan luarnya. c. Lingkungan Luar Sistem (Environments) Lingkungan luar sistem (environment) dari suatu sistem adalah apapun diluar batas dari sistem yang mempengaruhi operasi sistem. d. Penghubung Sistem (Interface) 84 Penghubung (interface) merupakan media penghubung antara satu subsistem dengan subsistem yang lainnya. e. Masukan Sistem (Input) Masukan (input) adalah energi yang dimasukan ke dalam sistem. f. Keluaran Sistem (Output) Keluaran (output) adalah hasil dari energi yang diolah dan diklasifikasikan menjadi keluaran yang berguna dan sisa pembuangan. g. Pengolah Sistem (Process) Suatu sistem dapat mempunyai suatu bagian pengolah yang akan merubah masukan menjadi keluaran. h. Sasaran Sistem (Objectives) Suatu sistem pasti mempunyai tujuan (Goal) atau sasaran (Objective). Kalau 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 dihasilkan sistem. Suatu sistem dikatakan berhasil bila mengenai sasaran dan tujuannya. 2.1.2. Klasifikasi Sistem 85 Sistem dapat diklasifikasikan dari beberapa sudut pandangan, diantaranya adalah sebagai berikut ini : 1. Sistem Abstrak (Abstract System) dan Sistem fisik (physical System). Sistem Abstrak (Abstract System) adalah sistem yang berupa pemikiran atau ide-ide yang tidak tampak secara fisik. Misalnya sistem teologi, yaitu sistem yang berupa pemikiranpemikiran hubungan antar manusia dengan tuhan. Sistem fisik (physical System) adalah sistem yang ada secara fisik. Misalnya sistem komputer, sistem akuntansi, sistem produksi, dan lain sebagainya. 2. Sistem Alamiah (Natural System) dan Sistem buatan Manusia (Human made System). Sistem Alamiah (Natural System) adalah Sistem yang terjadi melalui proses alam, tidak dibuat manusia. Misalnya Sistem perputaran bumi. Sistem Buatan Manusia (Human Made System) adalah Sistem yang dirancang oleh manusia. 3. Sistem Tertentu (Deterministic System) Dan Sistem Tak Tertentu (Probabilistic System). Sistem Tertentu (Deterministic System) adalah Sistem Tertentu beroperasi dengan tingkah laku yang sudah dapat diprediksi. Misalnya sistem komputer. 86 Sistem Tak Tertentu adalah sistem yang kondisi masa depannya tidak dapat diprediksi karena mengandung unsur probabilitas. 4. Sistem Tertutup (Closed System) dan Sistem Terbuka (Open System). Sistem Tertutup (Closed System) adalah sistem yang tidak berhubungan dan tidak berpengaruh dengan lingkungan luarnya. Sistem Terbuka (Open System) adalah sistem yang berhubungan dan terpengaruh dengan lingkungan luarnya. 2.1.3. Pengertian Informasi Menurut Jogiyanto (1999:8), “Informasi adalah data yang diolah menjadi bentuk yang lebih berguna dan lebih berarti bagi yang menerimanya”. A. Kualitas Informasi Kualitas dari suatu informasi tergantung dari tiga hal, yaitu informasi harus akurat, tepat pada waktunya dan relevan. 1. Akurat, berarti informasi harus bebas dari kesalahankesalahan dan tidak bias atau menyesatkan. Akurat juga berarti informasi harus jelas mencerminkan maksudnya, karena memungkinkan terjadinya gangguan yang dapat merubah atau merusak informasi tersebut. 87 2. Tepat pada waktunya, berarti informasi yang datang pada penerima tidak boleh terlambat. Informasi yang sudah usang tidak akan mempunyai nilai lagi. Karena informasi merupakan landasan di dalam pengambilan keputusan. 3. Relevan, berarti informasi tersebut mempunyai manfaat untuk pemakainya. Relevansi informasi untuk tiap satu orang dengan yang lainnya berbeda. B. Pengertian Sistem Informasi Sistem informasi dapat merupakan kombinasi teratur apapun dan orang-orang, hardware, software, jaringan komunikasi, dan sumber daya data yang mengumpulkan, mengubah, dan menyebarkan informasi dalam sebuah organisasi. Orang bergantung pada sistem informasi untuk berkomunikasi antara satu sama lain dengan menggunakan berbagai jenis alat fisik (hardware), perintah dan prosedur pemrosesan informasi (software), saluran komunikasi (jaringan), dan data yang disimpan (sumber daya data) sejak permulaan peradaban. James A.O’brein (2005:211). C. Komponen Sistem Informasi 88 Menurut Jogiyanto (1999:12), komponen sistem informasi yang terdiri dari beberapa blok diuraikan sebagai berikut: 1. Blok Masukan Input mewakili data yang masuk ke dalam sistem informasi. Input disini termasuk metode-metode dan media untuk menangkap data yang akan dimasukkan, yang dapat berupa dokumen-dokumen dasar. 2. Blok Model Blok ini terdiri dari kombinasi prosedur, logika dan model matematik yang akan memanipulasi data input dan data yang tersimpan di database dengan cara yang sudah tertentu untuk menghasilkan keluaran yang diinginkan. 3. Blok Keluaran Produk dari sistem informasi adalah keluaran yang merupakan informasi yang berkualitas dan dokumentasi yang berguna untuk semua tingkatan manajemen serta semua pemakai sistem. 4. Blok Teknologi Teknologi merupakan kotak alat (tool box) dalam sistem informasi. Teknologi digunakan untuk menerima input, menjalankan model, menyimpan dan mengakses data, 89 menghasilkan dan mengirimkan keluaran dan membantu pengendalian dari sistem secara keseluruhan. 5. Blok Database Database (database) merupakan kumpulan dari data yang saling berhubungan satu dengan yang lainnya, tersimpan di perangkat keras komputer dan digunakan perangkat lunak untuk memanipulasinya. Data perlu disimpan di dalam database untuk keperluan penyediaan informasi lebih lanjut. Database diakses atau dimanipulasi dengan menggunakan perangkat lunak paket yang disebut dengan DBMS (Database Management System). 6. Blok Kendali Banyak hal yang dapat merusak sistem informasi, seperti halnya bencana alam, kecurangan-kecurangan, kegagalan sistem dan lain sebagainya. Beberapa pengendalian perlu dirancang dan diterapkan untuk meyakinkan bahwa halhal yang dapat merusak sistem dapat dicegah ataupun bila terlanjur terjadi kesalahan-kesalahan dapat langsung cepat diatasi. 2.2. Pengembangan Sistem Pengembangan sistem dapat berarti menyusun atau membuat suatu sistem baru untuk menggantikan atau memperbaiki sistem lama ,baik secara keseluruhan atau sebagian dari sistem yang telah ada dengan 90 mengintegrasikan dan memadukan prosedur, sarana dan sumber daya manusia yang dimiliki. Sistem yang lama perlu diperbaiki atau diganti disebabkan karena beberapa hal sebagai berikut : 1. Adanya permasalahan-permasalahan (problems) yang timbul di sistem yang lama seperti : adanya ketidakberesan atau adanya pertumbuhan organisasi. 2. Adanya intruksi-intruksi (directives) dari atasan atau pimpinan atau dari luar organisasi, seperti peratuaran pemerintah. 3. Untuk meraih kesempatan-kasempatan (opportunities). Kesempatankesempatan ini dapat berupa peluang-peluang pasar, pelayanan yang meningkat pada pelayan. Menurut Sutabri Tata, (2004:63) Pendekatan daur hidup sistem adalah sebuah alat manajemen yang digunakan untuk merencanakan dan mengontrol kegiatan pengembangan sistem. 2.3. Pengertian Pelayanan Kesehatan Pelayanan Kesehatan menurut DR. Dr. Azrul Azwar M.P.H (1990:71) adalah bagian dari pelayanan kedokteran (medical services) yang tujuan utamanya adalah untuk menyembuhkan penyakit dan memulihkan kesehatan, serta sasaran utamanya adalah perseorangan dan ataupun keluarga. 2.3.1. Pelayanan Kesehatan di Indonesia Sesuai dengan ketentuan sebagaimana yang tercantum dalam UU Kesehatan No 23 tahun 1992 serta yang tercantum dalam Sistem Kesehatan Nasional terutama dalam uraian tentang bentuk-bentuk Pokok SKN bab IV, maka pelayanan kesehatan di Indonesia dapat dibedakan atas dua macam. Pertama, yang di selenggarakan oleh pemerintah. Kedua, yang di selenggarakan oleh swasta 91 Sarana pelayanan kesehatan yang di selenggarakan oleh pemerintah di Indonesia adalah PUSKESMAS, sebagai sarana pelayanan kesehatan tingkat pertama serta Rumah Sakit dengan berbagai jenjangnya, sebagai sarana pelayanan kesehatan tingkat kedua dan ketiga. Sedangkan pelayanan kesehatan yang di selenggarakan oleh swasta di Indonesia banyak macamnya. Antara lain praktek bidan, praktek dokter gigi dan praktek dokter umum (perseorangan atau berkelompok), poliklinik, Balai pengobatan dan lain sebagainya yang seperti ini, sebagai sarana pelayanan kesehatan tingkat pertama. Serta, praktek dokter spesialis dan rumah sakit dengan berbagai jenjangnya, sebagai sarana pelayanan kesehatan tingkat kedua dan ketiga. 2.4. Pengertian Klinik Pengertian Klinik menurut Dr. Med. Ahmad Ramali (1993:51) dalam kamus Kedokteran adalah Rumah Sakit atau tempat untuk merawat oang sakit, guna diperiksa, diamati dan diobati oleh sekelompok dokter. 2.4.1 Tujuan Klinik menurut DR. Dr. Azrul Azwar M.P.H (1990:108) dalam kamus kedokteran adalah : Terwujudnya keadaan sehat bagi setiap anggota keluarga. Terpenuhinya kebutuhan keluarga akan pelayanan kesehatan yang lebih efektif dan efisien. 2.4.2 Manfaat Klinik menurut DR. Dr. Azrul Azwar M.P.H (1990:114) adalah : 1. Apabila dibutuhkan pelayanan spesialis, maka pengaturannya akan lebih baik dan terarah, terutama ditengah-tengah komplesksitas pelayanan kesehatan yang ada saat ini. 2. Akan dapat diselenggarakan penanganan khusus penyakit dengan tata cara yang lebih sederhana dan tidak begitu mahal dan karena itu akan meringankan biaya kesehatan. 3. Akan dapat dicegah pemakaian sebagai peralatan kedokteran canggih yang memeberatkan biaya kesehatan. 4. Akan dapat diselenggarakan pelayananan kesehatan yang terpadu sehingga penanganan satu masalah kesehatan tidak menimbulkan berbagai masalah lainnya. 5. Akan dapat diselenggarakan pelayanan pencegahan penyakit dan di jamin kesinambungan pelayanan kesehatan. 92 2.5. Database Database terdiri atas dua kata yaitu basis dan data. Basis dapat diartikan sebagai tempat atau gudang. Sedangkan data adalah fakta dunia nyata yang mewakili suatu objek seperti manusia, barang, hewan, peristiwa, konsep, keadaan dan sebagainya, yang direkam dalam bentuk angka, huruf, simbol, teks, gambar, bunyi atau kombinasinya. Menurut Fathansyah, Ir. (1999: 2), database dapat diartikan sebagai berikut: 1. Himpunan kelompok data (arsip) yang saling berhubungan yang diorganisasi sedemikian rupa agar kelak dapat dimanfaatkan kembali dengan cepat dan mudah. 2. Kumpulan data yang saling berhubungan yang disimpan secara bersama sedemikian rupa dan tanpa pengulangan atau redudansi yang tidak perlu, untuk memenuhi berbagai kebutuhan. 3. Kumpulan file/tabel/arsip yang saling berhubungan yang disimpan dalam media penyimpanan elektronik. Yang sangat penting dalam database adalah pengaturan dan pengelompokan data berdasarkan fungsi atau jenisnya. 2.5.1. Operasi-operasi Database 93 Setiap database pada umumnya dibuat untuk mewakili sebuah data yang spesifik. Oleh karena itu, operasi-operasi dasar yang dapat kita lakukan berkenaan dengan database, meliputi: 1. Menambah file baru ke sistem database. 2. Mengosongkan berkas. 3. Menyisipkan data ke suatu berkas. 4. Mengambil data yang ada pada suatu berkas. 5. Mengubah data pada suatu berkas. 6. Menyajikan suatu informasi yang diambil dari sejumlah berkas. 2.5.2. Tujuan Database Pemanfaatan database dapat dilakukan untuk memenuhi sejumlah tujuan (objektif) seperti berikut: kecepatan dan kemudahan, efisiensi ruang penyimpanan (space), keakuratan, ketersediaan, kelengkapan, keamanan dan kebersamaan. 2.5.3. Sistem Database Menurut Fathansyah, Ir. (1999: 9), Sistem database merupakan sistem yang terdiri atas kumpulan file (tabel) yang saling berhubungan (dalam sebuah database di sebuah sistem komputer) dan sekumpulan program (DBMS) yang memungkinkan beberapa pemakai dan/atau program lain untuk mengakses dan memanipulasi file-file tabel tersebut. 94 2.6. Peralatan Pendukung (Tools System) Tools Sistem adalah alat yang digunakan untuk menggambarkan bentuk logika model dari suatu sistem yang menggunakan simbol-simbol, lambang-lambang, diagram-diagram yang menunjukan secara tepat arti dan fungsinya. Dalam penulisan Tugas Akhir ini peralatan pendukung yang digunakan oleh penulis, adalah : 2.6.1. Bagan Alir Dokumen (Flow of Document) Bagan Alir Dokumen (Flow of Document) merupakan bagan alir yang menunjukkan arus dari laporan dan formulir termasuk tembusan-tembusannya (Jogiyanto: 1990). Bagan alir dokumen menggunakan simbol-simbol antara lain: 1. Simbol dokumen yang menunjukkan dokumen input dan output baik untuk proses manual, mekanik atau komputer. Seperti pada (Gambar 2.1.) berikut ini: Gambar 2.1 : Simbol Dokumen 2. Simbol kegiatan manual yang menunjukkan pekerjaan manual. Seperti pada (Gambar 2.2.) berikut ini: 95 Gambar 2.2 : Simbol Kegiatan Manual 3. Simbol Simpanan Offline yang menunjukkan pengarsipan file. Seperti pada (Gambar 2.3.) berikut ini: Gambar 2.3 : Simbol Simpanan Offline 4. Simbol Proses yang menunjukkan kegiatan proses dari operasi program komputer. Seperti pada (Gambar 2.4.) berikut ini : Gambar 2.4 : Simbol Proses 5. Simbol Hardisk menunjukan input / output menggunakan hardisk. Seperti pada (Gambar 2.5.) berikut ini : Gambar 2.5 : Simbol Hardisk 6. Simbol Garis Alir yang menunjukkan arus dari proses. Seperti pada (Gambar 2.6.) berikut ini : Gambar 2.6 : Simbol Garis Alir Lebih lanjut FOD (Flow Of Document) digunakan terutama untuk alat bantu komunikasi dan dokumentasi. Untuk menggambarkan suatu FOD yang baik, pedoman yang dapat diikuti adalah: 1. Digambar dari atas ke bawah dan mulai dari bagian kiri dari suatu halaman. 96 2. Kegiatan dalam FOD harus ditunjukkan dengan jelas. 3. Harus ditunjukkan dari mana kegiatan akan dimulai dan dimana akan berakhirnya. 4. Masing-masing kegiatan dalam FOD sebaiknya digunakan suatu kata yang mewakili suatu pekerjaan. 5. Masing-masing kegiatan dalam FOD harus dalam urutan yang semestinya. 6. Kegiatan yang terpotong akan disambung ke tempat lain harus ditunjukkan dengan jelas menggunakan simbol penghubung. 7. Gunakan simbol-simbol FOD yang standar. 2.6.2. DFD (Data Flow Diagram) Menurut Sutabri Tata (2004 : 163) Data Flow Diagram (DFD) adalah suatu network yang menggambarkan suatu sistem komputerisasi, manualisasi atau gabungan dari keduanya yang penggambarannya disusun dalam bentuk kumpulan komponen sistem yang saling berhubungan sesuai dengan aturan mainnya. Pendekatan analisis terstruktur diperkenalkan oleh DeMarco (1978) dan Gane Sarson (1979) melalui buku metodologi struktur analisis dan desain sistem informasi. Mereka menyarankan untuk menggunakan data flow diagram menggambarkan atau membuat model sistem DFD mempunyai empat komponen yaitu: (DFD) dalam 97 1. Terminator Terminator digunakan untuk menggambarkan elemen-elemen lingkungan yang menandai titik-titik berakhirnya sistem. Suatu terminator dapat berupa orang, organisasi atau sistem lainnya yang berada di lingkungan luarnya yang akan memberikan input atau menerima output dari sistem. (Gambar 2.7) :. Gambar 2.7 : Simbol Terminator 2. Proses Proses adalah sesuatu yang mengubah input menjadi output. Proses dapat digambarkan dengan lingkaran, segi empat horizontal, atau segi empat tegak dengan sudut-sudut yang membulat. Tiap simbol proses diidentifikasikan dengan label. Simbol proses terdapat pada (Gambar 2.8). Atau Gambar 2.8 : Simbol Proses 3. Arus Data Arus data mengalir diantara proses, penyimpanan data dan elemen-elemen lingkungan. Tanda panah digunakan untuk menggambarkan arus itu. Arus data dapat menyebar (bercabang), memusat, ataupun dua arah. Seperti pada (Gambar 2.9.) berikut ini : 98 Gambar 2.9 : Simbol Arus Data 4. Penyimpanan Data Dalam istilah DAD, penyimpanan data (data store) adalah suatu penampungan data. Penyimpanan data disimbolkan dengan sepasang garis horizontal paralel yang tertutup disalah satu ujungnya. Seperti pada (Gambar 2.10.) berikut ini : Gambar 2.10 : Simbol Penyimpanan Data A. Tingkatan Diagram pada DFD Untuk memudahkan membaca DFD, maka diperlukan proses penggambaran yang disusun secara bertingkat dari atas ke bawah. Tingkatan tersebut adalah: 1. Diagram Konteks Diagram konteks merupakan level tertinggi dari DFD yang mewakili proses dari seluruh sistem hanya mengandung suatu proses kerja. Diagram konteks menggambarkan hubungan input/output antara sistem dengan lingkungan luarnya. 2. Diagram Zero Diagram Zero Menggambarkan tahapan proses yang ada didalam diagram konteks, yang penjabarannya secara lebih 99 terperinci. Kemudian diagram Zero juga menggambarkan kegiatan pokok atau proses utama dari sistem yang dihubungkan dengan entity, proses, arus data dan penyimpanan data. 3. Diagram Rinci Diagram rinci menggambarkan keseluruhan dari sistem yaitu sistem dan tujuan dari setiap proses data menjadi dokumen yang ada. Proses dalam diagram rinci sudah tidak dapat dipecah kembali. 2.6.3 ERD (Entity Relationship Diagram) Pada Model Entity-Relationship, semesta data yang ada di ‘dunia nyata’ diterjemahkan dengan memanfaatkan sejumlah perangkat konseptual menjadi sebuah diagram data, yang umum disebut sebagai Diagram Entity-Relationship (Diagram E-R). Model Entity-Relationship dibentuk dari dua komponen yaitu entitas (entity) dan relasi (relation). Kedua komponen ini dideskripsikan lebih jauh melalui sejumlah atribut Fathansyah, Ir. (2002 : 72). Langkah-langkah pembuatan ERD: 1. Menentukan entitas yang diperlukan. 2. Menentukan hubungan antar entitas. 100 3. Menentukan Cardinality Ratio. 4. Menentukan atribut yang diperlukan dari tiap entitas. 5. Menentukan kunci diantara atribut. ERD adalah suatu diagram yang menggambarkan relasi antar entitas yang dihubungkan oleh suatu field atau lebih, yang disebut key. Tujuan utama penggunaan ERD adalah untuk menunjukkan objek data (entity) dan relationship yang ada pada objek tersebut. ERD mempunyai tiga komponen yaitu entitas, relationship dan atribut. 1. Entitas atau objek data Entitas menyatakan objek atau kejadian yang dapat disebabkan atau diidentifikasi secara unik. Simbol entitas yang berbentuk kotak terdapat pada (Gambar 2.11). Gambar 2.11 : Simbol Entitas 2. Relationship atau hubungan Relationship adalah asosiasi atau ikatan antara entitas satu dengan entitas yang lainnya. Simbol Relationship yang berbentuk terdapat pada (Gambar 2.12). Gambar 2.12 : Simbol Ralationship 101 3. Atribut atau property Atribut adalah elemen data yang menunjukkan ciri atau karakter dari entitas atau item data yang menjadi bagian dari suatu entitas. Atribut menggambarkan informasi apa saja yang terdapat di dalam suatu entitas. Simbol Atribut yang berbentuk elips terdapat pada (Gambar 2.13.).: Gambar 2.13 : Simbol Atribut Hubungan antar entitas menyangkut dua komponen yang menyatakan jalinan ikatan yang terjadi, yaitu derajat dan pertisipasi hubungan. Derajat hubungan menyatakan jumlah anggota entitas yang terlibat di dalam ikatan yang terjadi. Sedangkan partisipasi hubungan menyatakan sifat keterlibatan tiap anggota entitas dalam ikatan terjadinya hubungan. Derajat hubungan antar entitas dapat dikategorikan dalam tiga jenis, yaitu: 1. Derajat hubungan 1 : 1 (One to one) Derajat hubungan antar entitas 1: 1 terjadi bila entitas A hanya boleh berpasangan dengan satu anggota dari entitas B. Demikian pula sebaliknya. 2. Derajat hubungan 1 : m (One to many) atau m :1 (Many to one) Derajat hubungan ini terjadi bila tiap anggota entitas A boleh berpasangan dengan lebih dari satu anggota entitas B. 102 Sebaliknya setiap anggota entitas B hanya boleh berpasangan dengan satu anggota entitas A. 3. Derajat hubungan m : n (Many to many) Terjadi bila tiap anggota entitas A boleh berpasangan dengan lebih dari satu anggota entitas B. Demikian pula sebaliknya. 2.6.4 Normalisasi Menurut Kroenke dalam Abdul Kadir (1999: 65), Normalisasi adalah proses untuk mengubah suatu relasi yang memiliki masalah tertentu kedalam dua buah relasi atau lebih yang tidak memiliki masalah tersebut. Masalah yang dimaksud biasa disebut dengan istilah anomali. Anomali adalah proses database yang memberikan efek samping yang tidak diharapkan (misalnya menyebabkan ketidakkonsistenan data atau membuat data hilang ketika data lain di hapus). Dalam normalisasi harus ada field-field yang harus digunakan antara lain: a. Candidat Key (Kunci Calon) : yaitu suatu atribut atau satu set minimal atribut yang mengindentifikasikaan secara unik suatu kejadian yang spesifik dari suatu entity. b. Primary Key (Kunci Utama) : yaitu suatu atribut atau satu set minimal atribut yang tidak hanya mengindentifikasikan secara 103 unik suatu kejadian yang spesifik, tetapi juga dapat mewakili setiap kejadiaan dari suatu entity. c. Alternate Key (Kunci Alternatif) : candidate key yang tidak terpilih sebagai Primary key. d. Foreign Key (Kunci Tamu) : satu atribut atau satu set atribut yang melengkapi satu relationship atau hubungan yang menunjukan ke induknya Menurut Abdul Kadir (1996: 73), beberapa level yang biasa digunakan pada normalisasi adalah sebagai berikut: 1. Bentuk Normal Pertama “First Normal Form” (1NF) Bentuk normal pertama biasa dikenakan pada tabel yang belum ternormalisasi. Tabel yang belum ternormalisasi adalah tabel yang memiliki atribut yag berulang, atau definisi bentuk normal pertama adalah sebagai berikut: “Suatu relasi dikatakan dalam bentuk normal pertama jika dan hanya jika setiap atribut bernilai tunggal untuk setiap baris”. 2. Bentuk Normal Kedua “Second Normal Form” (2NF) Bentuk nomal kedua didefinisikan berdasarkan dependensi fungsional. Suatu relasi berada dalam bentuk normal kedua jika dan hanya jika: 1. Berada pada bentuk normal pertama. 2. Semua atribut bukan kunci memiliki dependensi sepenuhnya terhadap kunci primer. 3. Bentuk Normal Ketiga “Third Normal Form” (3NF) Suatu relasi dikatakan dalam bentuk normal ketiga jika: 104 1. Berada dalam bentuk normal kedua. 2. Setiap atribut bukan kunci tidak memiliki dependensi transitif terhadap kunci primer. 4. Bentuk Normal Boyce-Codd (BCNF) Suatu relasi disebut memenuhi bentuk normal Boyce-Codd jika dan hanya jika semua penentu (determinan) adalah kunci kandidat (atribut yang bersifat unik). BCNF merupakan bentuk normal sebagai perbaikan terhadap 3NF. 5. Dependensi Nilai Banyak dan Bentuk Normal Keempat (4NF) Dependensi nilai banyak merupakan terjemahan dari multivalued dependency (MVD). Dependensi ini dipakai pada bentuk normal keempat (4NF) untuk menyatakan hubungan satu ke banyak (One to many). 6. Dependensi Gabungan dan Bentuk Normal Kelima (5NF) Bentuk normal kelima (5NF), yang terkadang disebut PJ/NF (Projection Join/Normal Form), menggunakan acuan dependensi gabungan. Suatu relasi berada dalam 5NF jika dan hanya jika setiap dependensi gabungan dalam R tersirat oleh kunci kandidat relasi R. Secara praktis dapat dikatakan bahwa suatu relasi R barada dalam 5NF jika data yang ada padanya tak dapat lagi didekomposisi manjadi relasi-relasi yang lebih kecil dengan kunci kandidat relasi-relasi yang lebih kecil ini tidak sama dengan kunci kandidat relasi. 2.6.5 Kamus Data 105 Kamus Data (Data Dictionary) adalah suatu aplikasi khusus dari jenis kamus-kamus yang digunakan sebagai referensi kehidupan setiap hari. Kendall & Kendall (2003 : 333). Kamus data merupakan hasil referensi data mengenai data (maksudnya metadata), suatu data yang disusun oleh penganalisis sistem untuk membimbing mereka selama melakukan analisis dan desain. Sebagai suatu dokumen, kamus data mengumpulkan dan mengkoordinasikan istilah-istilah data tertentu dan menjelaskan apa arti setiap istilah yang ada. Menurut Jogiyanto (1999: 725), kamus data adalah katalog fakta tentang data dan kebutuhan-kebutuhan dari suatu sistem informasi. Dengan menggunakan kamus data analis sistem dapat mendefinisikan data yang mengalir di sistem dengan lengkap dan terstruktur. Kamus data dibuat pada tahap analisis sistem dan perancangan suatu sistem. Kamus data harus dapat menjelaskan lebih detail lagi tentang DFD yang mencakup proses, data flow dan data store. Kamus data dibuat dan digunakan baik pada analisis maupun pada tahap perancangan sistem. Pada tahap analisis kamus data digunakan sebagai alat komunikasi antara sistem analis dengan user tentang data yang mengalir pada sistem tersebut serta informasi yang dibutuhkan oleh pemakai sistem. Sedangkan pada 106 tahap perancangan sistem kamus data digunakan untuk merancang input, output, atau laporan dan database. Kamus data harus dapat mencerminkan keterangan yang jelas tentang data yang dicatatnya, maka kamus data harus memuat hal-hal sebagai berikut : b. Nama Arus Data Nama arus data dibuat berdasarkan arus data yang mengalir. c. Alias Alias atau nama lain dari data yang dituliskan. Karena terkadang data sama tetapi nama berbeda untuk orang atau departement satu dengan lainnya. d. Tipe Data Tipe data menunjukan bagaimana arus data mengalir dari hasil suatu proses ke proses yang lain. Data yang mengalir ini dapat berupa suatu dokumen dasar atau formulir, serta dokumen hasil cetakan komputer. e. Arus Data Arus data ini menunjukan dari mana data mengalir dan dari mana data akan menuju. f. Penjelasan 107 Penjelasan digunakan untuk memperjelas lagi tentang makna dari arus data yang dicatat di kamus data. Bagian penjelasan dapat diisi dengan keterangan arus data tersebut. g. Periode Periode ini menunjukan kapan terjadinya arus data dan untuk mengidentifikasi kapan input data dapat dimasukan kedalam sistem, kapan proses program dapat dilakukan dan kapan laporan-laporan dapat dihasilkan. h. Struktur Data Struktur data menunjukan arus data yang dicatat pada kamus data yang terdiri dari elemen-elemen atau item-item data. Narasi dari simbol yang digunakan dibagi menjadi 2 (dua) macam yaitu sebagai berikut : a) Notasi Tipe Data yang digunakan dalam kamus data adalah sebagai bentuk pada Tabel 2.1. berikut : Notasi Keterangan 108 X Setiap karakter 9 Angka numerik A Karakter alphabet Z . , - Angka nol yang di tampilkan dalam spasi kosong Titik, sebagai pemisah ribuan Koma, sebagai pemisah pecahan Hypen, sebagai tanda penghubung / Slash, sebagai tanda pembagi Tabel 2.1. Notasi Tipe Data b) Notasi Tipe Struktur Data yang digunakan dalam kamus data adalah sebagai bentuk pada Tabel 2.2. berikut : NOTASI ARTI 109 Terbentuk dari (IS COMPOSED) atau terdiri dari = (CONSIST OF) atau sama dengan (IS EQUIVALENT OF). + AND Salah satu dari (memilih salah satu dari elemen- [] elemen data dalam bracket ini). | Sama dengan simbol [ ] Iterasi (elemen data di dalam kurung) beriterasi N{}M mulai minimum N kali dan maksimum M kali. Optimal () (elemen data didalam kurung parenthesis sifatnya optimal, dapat ada dan dapat tidak ada). * atau ** @ Keterangan atau catatan Petunjuk (key field) Tabel 2.2. Notasi Struktur Data 2.6.6 Sistem Pengkodean Kode digunakan untuk tujuan mengklasifikasikan data, memasukan data kedalam komputer dan untuk mengambil bermacam-macam informasi yang berhubungan dengannya. 110 Didalam merancang suatu kode harus diperhatikan beberapa hal antara lain: a. Harus mudah diingat Supaya kode mudah diingat, maka dapat dilakukan dengan cara menghubungkan kode tersebut dengan obyek yang diwakili dengan kodenya. b. Harus Unik Kode harus unik untuk masing-masing item yang diwakilinya. Unik berarti tidak ada kode yang kembar. c. Harus Fleksibel Kode harus fleksibel sehingga memungkinkan perubahanperubahan atau penembahan item baru dapat tetap diwakili oleh kode. d. Harus Efisien Kode harus sependek mungkin, selain mudah diingat juga akan efisien bila direkam di simpan luar komputer. e. Harus Konsisten Bilamana mungkin, kode harus konsisten dengan kode yang telah dipergunakan. f. Harus Distandarisasi Kode harus distandarisasi untuk seluruh tingkatan dan departemen dalam organisasi. g. Spasi Dihindari 111 Spasi didalam kode sebaiknya dihindari, karena dapat menyebabkan kesalahan didalam menggunakannya. h. Hindari Karakter Yang Mirip Karakter-karakter yang hampir serupa bentuk dan bunyi pengucapannya sebaiknya tidak digunakan didalam kode. i. Panjang Kode Harus Sama Masing-masing kode yang sejenis harus mempunyai panjang yang sama. Ada beberapa macam tipe dari kode yang dapat digunakan antara lain : 1. Kode Mnemonik (Mnemonic code) Kode mnemonik digunakan digunakan untuk tujuan supaya mudah diingat. 2. Kode Urut (sequential code) Kode Urut disebut juga dengan kode seri (serial code) merupakan kode yang nilainya urut antara satu kode dengan kode yang berikutnya. 3. Kode Blok (block code) Kode Blok mengklasifikasikan item kedalam kelompok blok tertentu yang mencerminkan satu klasifikasi tertentu atas dasar pemakain maksimum yang diharapkan. 112 4. Kode Group (group code) Kode Group merupakan kode yang berdasarkan field-field dan tiap-tiap field kode mempunyai arti. 5. Kode Desimal (desimal code) Kode desimal mengklasifikasikan kode atas dasar 10 unit angka desimal dimulai dari angka 0 sampai dengan angka 9 ataudari 9 atau dari 00 sampai dengan 99 tergantung dari banyaknya kelompok. 2.6.7 Perancangan Input / Output 2.6.7.1 Perancangan Input Input adalah informasi dalam bentuk formulir input, tampilan layar, dokumen-dokumen jaringan interaktif. Yang mana bentuk-bentuk tersebut didasarkan pada hal-hal yang menurut pikiran kita merupakan suatu hal yang penting untuk bentuk. Adapun bentuk dari suatu input yang baik dapat dilihat dari keefektifan, ketepatan, serta kemudahan dalam penggunaan dan tampilan layar yang sederhana dan menarik. 2.6.7.2 Perancangan Output Output adalah informasi yang telah dikirim kepada pengguna melalui sistem informasi lewat intranet, extranet, atau World Wide Web. Output dapat diwujudkan dalam 113 beberapa bentuk, misalnya hard copy tradisional dari laporan cetakan atau soft copy seperti layar komputer. Output tersebut dapat berupa Output catakan dan Output layar. 2.6.8 Microsoft Visual Basic 6.0 Microsoft Access 2003 merupakan salah satu software yang tercakup dalam satu paket Microsoft Office 2003, yang digunakan untuk mengolah basis data. Microsoft Access 2003 merupakan pengolah basis data yang berjalan dibawah sistem operasi Windows. Microsoft Access 2003 merupakan program aplikasi basis data (database) paling mudah, lengkap, dan canggih saat ini. Dengan menggunakan Microsoft access 2003 kita dapat merancang, mengelola, dan mengolah basis data dengan mudah. Andi (2005 : 1). 2.6.9 Microsft Access 2003 A. Mengenal Database Access 2003 Microsoft Access 2003 yang disingkat menjadi Access 2003 merupakan salah satu program database (Database) yang 114 memberikan fasilitas lengkap. Dengan menggunakan Microsoft Access 2003 kita dapat merancang , membuat dan mengolah Database dengan mudah. Pada Microsoft Access 2003 kita dapat mengelola seluruh data yang kita miliki kedalam sebuah file database . Database pada Access 2003 dapat terdiri atas beberapa tables, query, form, report, page, macro, module, field, dan record yang semuanya saling berhubungan atau terkait. a. Tables Merupakan kumpulan data yang merupakan komponen utama dari sebuah Database yang terdiri dari baris dan kolom. b. Queries Queries digunakan untuk mencari dan menampilkan data yang memenuhi syarat tertentu dari suatu tabel atau lebih. c. Form Form digunakan untuk menampilkan data, mengisi / menginput data dan mengubah data yang ada dalam tabel. d. Report Report digunakan untuk menampilkan laporan hasil analisis data. e. Pages 115 Pages digunakan untuk membuat halaman web berupa data Access. f. Macros Macros digunakan untuk mengotomisasi perintah-perintah yang sering kita gunakan dalam mengolah data modules. Modules digunakan untuk perancangan berbagai modul aplikasi pengolahan Database untuk tingkat lanjut sesuai dengan kebutuhan kita. g. Field Merupakan tempat dimana data atau informasi dalam kelompok yang sama atau sejenis dimasukan. Field pada umumnya tersimpan dalam bentuk kolom secara vertical pada tabel.. h. Records Merupakan kumpulan isi data dari beberapa field yang dikelompokan menjadi satu dalam tabel yang dinyatakan dalam baris. 116 BAB III METODOLOGI PENELITIAN 3.1. Metode Pengumpulan Data Untuk mendapatkan data yang dibutuhkan dalam penelitian ini penulis menggunakan teknik metode pengumpulan data yang terdiri dari : 3.1.1. Metode Observasi Untuk mendapatkan data sebagai bahan penulisan skripsi, penulis melakukan observasi langsung ke Klinik Dokter Keluarga Suradita, karena penulis menganggap dengan melakukan observasi langsung akan memudahkan penulis dalam mengumpulkan data yang di butuhkan dengan akurat dan mudah di pahami. Dalam observasi hal-hal yang dilakukan adalah : a. Mengikuti pelayanan kesehatan kepada masyarakat bersama petugas klinik. b. Memantau sistem yang berjalan pada klinik dokter keluarga. 3.1.2. Metode Wawancara Wawancara merupakan sebuah tindakan pengumpulan informasi dengan cara mengajukan pertanyaan secara lisan dan dijawab secara lisan pula. Dalam hal ini penulis mengadakan tanya jawab dengan nara sumber yang mengerti tentang sistem informasi. Untuk mendapatkan data yang lebih jelas dan akurat, yang dijadikan sebagai bahan penulisan skripsi, penulis melakukan teknik wawancara terstruktur yaitu langsung dengan pihak klinik, karena penulis menganggap dengan melakukan wawancara secara langsung akan lebih memudahkan penulis dalam megumpulkan data-data sehingga penulis akan lebih mudah memahami mengenai sistem yang ada. 117 Instrumen yang digunakan penulis dalam mengumpulkan data-data yaitu dengan menggunakan media alat tulis diantaranya buku dan pulpen untuk mencatat hasil dari wawancara dengan pihak yang terkait. Adapun pertanyaan dan hasil dari wawancara dengan pihak klinik dapat dilihat pada lampiran. Personil yang diwawancara oleh penulis ketika melakukan proses wawancara adalah : a. Kepala Klinik yaitu Dr. Dean Handimulya. b.Dokter Klinik yaitu Dr. Ade. c. Petugas Klinik bagian Pendaftaran yaitu Aditya. d.Petugas Klinik bagian Kasir yaitu siti. 3.1.3. Metode Studi Pustaka Merupakan pengumpulan data yang diperoleh dari perpustakaan baik berupa artikel, buku-buku, surat kabar, majalah, jurnal, bulletin, maupun sumber informasi lain yang ada kaitannya dengan permasalahan yang akan dibahas. 118 3.2. Waktu dan Tempat Penelitian Penelitian ini dilaksanakan pada klinik yang menjadi sumber data yang di butuhkan. Pelaksanaan penelitian sebagai berikut : Waktu Waktu pelaksanaan adalah hari kerja, yaitu : senin s.d Jumat, Pukul 08.00-16.00 Tempat Tempat yang menjadi obyek penelitian adalah : Nama Klinik : Klinik Dokter Keluarga Suradita Alamat Klinik : Jl. Raya Lapan Desa Suradita Kecamatan Ciasuk Tangerang Banten 15343. 3.3. Metode Pengembangan Sistem Metode perancangan yang digunakan penulis adalah metode SDLC (System Development Life Cycle). Karena dengan menggunakan metode SDLC bisa membuat proses yang direkayasa secara logik untuk mengembangkan sistem dari tahap perencanaan sampai penerapan. Disebut SDLC karena sistem dapat diperbaharui sesuai dengan kebutuhan. Siklus hidup pengembangan sistem atau yang sering disebut System Depelovment Life Sycle (SDLC) Merupakan suatu metode pengembangan sistem yang terdiri dari tahapan-tahapan yang membentuk siklus. Aktifitas dari siklus hidup ini disebut tahapan (fase). Adapun tahapan-tahapan dari SDLC (Shelly Cashman, 2001) adalah sebagai berikut (Gambar 2.2) : 119 Gambar 2.2 Tahapan System Development Life Cycle (Waterfall) Seperti yang telah diuraikan pada bab satu, dalam merancang sistem informasi pelayanan kesehatan penulis menerapkan lima tahap yang ada pada siklus hidup pengembangan sistem (System Development Life Cycle), yaitu tahap perencanaan, analisis, perancangan, implementasi program dan Operasi dan pendukung sistem. 3.3.1. Perencanaan Sistem Tujuan dari tahap ini adalah membuat sistem permintaan (request), menjelaskan masalah-masalah atau keinginan perubahan dalam sebuah sistem informasi atau proses bisnis. Membuat persiapan penelitian (preliminary investigation) atau yang disebut studi kelayakan (Feasibility Study). 3.3.2. Analisis Sistem 120 Tahap analisis merupakan tahap penelitian sistem yang sedang berjalan. Dari hasil studi lapangan yang telah dilakukan pada sistem yang berjalan di Klinik Dokter Keluarga Suradita terdapat masalah dalam mendata pasien secara sistematis, terkadang membuat kesulitan kepada petugas klinik dalam melacak data pasien dan mencari data pasien yang sudah terdaftar, dalam proses keuangan pembayaran-pembayaran berjalan masih secara global sehingga tidak diketahui rincian dari pembayaran yang berlaku, dan dalam melakukan penendataan Diagnosa pasien, masih dilakukan secara manual sehingga setiap pasien selesai melakukan pemeriksaan, dalam setiap penginputan data diagnosa pasien memerlukan banyak kertas dalam menyimpan data diagnosa pasien tersebut. Serta sistem yang ada tidak bisa mencetak laporan-laporan baik , data Pasien yang datang ke klinik, data diagnosa pasien, maupun data biaya pembayaran yang ada pada klinik dokter keluarga suradita. Selain kegiatan penelitian sistem yang sedang berjalan, tujuan lain dari analisis ini adalah untuk memahami kebutuhan dari sistem. Membuat dokumen kebutuhan sistem (System Requirements Documents), model fisik (Physical Model) dan 121 model logika (Logical Models) dari sistem yang baru. Pada tahap ini akan diuraikan mengenai : A. Profil Klinik Profil klinik ini akan menguraikan tentang latar belakang, Visi, Misi, tujuan, Struktur organisasi tugas dan tanggung jawab masing-masing pegawai. B. Analisis Sistem Berjalan Analisis sitem berjalan akan menguraikan tentang analisis penyimpanan, dokumen, prosedur dan keamanan data. C. Analisis Pemecahan Masalah Analisis pemecahan masalah akan menguraikan tentang beberapa usulan alternatif yang dapat membantu menyelesaikan permasalahan yang ada dalam sistem pelayanan kesehatan. 3.3.3. Perancangan Sistem (Desain) Tahap perancangan merupakan tahapan yang bertujuan untuk mengatasi permasalahan yang ada. Tujuan tahap perancangan (design) adalah Mendesain sistem baru yang dapat menyelesaikan masalah-masalah yang dihadapi klinik.. Dalam tahap ini penulis menggunakan beberapa tools (alat) untuk membuat rancangan sistem, diantaranya adalah sebagai berikut: 122 a. Perancangan Proses Sistem Pada tahapan ini perancangan dari proses sistem yang baru dengan menggunakan tools berupa Context Diagram dan DFD yang akan menggambarkan aliran proses sistem yang baru. b. Perancangan Input Pada tahapan ini peneliti akan merancang form yang diperlukan dengan menentukan kebutuhan input dari sistem baru dan menentukann parameter dari input seperti bentuk input, sumber input periode input, dan lain-lain. c. Perancangan Output Pada tahapan ini akan dilakukan perancangan output yang berupa laporan-laporan terinci. Dengan menentukan kebutuhan output dari sistem yang baru dan menentukan paramater dari output. d. Perancangan Database Perancangan basisdata dengan menggunakaan tools Entity Relationship Diagram (ERD), menggambarkan hubungan antar entity yang ada pada DFD. Kemudian dilakukan normalisasi dengan tujuan membentuk tabel normal untuk menghindari redundansi data yang dilakukan sampai bentuk normal ketiga. 3.3.4. Implementasi Sistem 123 Pada tahap implementasi ini, penulis melakukan kegiatan secara rinci mengenai rancangan logical ke dalam kegiatan yang sebenarnya dari sistem informasi yang akan dibangunnya atau dikembangkannya, Mengimplementasikan sistem yang baru, dan Bahasa pemrograman yang penulis gunakan adalah Microsoft Visual basic 6.0 dan Microsoft Access 2003 sebagai databasenya. 3.3.5. Tahap Operasi dan Pemeliharaan Sistem Tahap ini bertujuan untuk memelihara dan meningkatkan kerja sistem, dengan memperbaiki kesalahan dan mengadaptasikan sistem dengan lingkungan. 124 BAB IV PENGEMBANGAN SISTEM INFORMASI PELAYANAN KESEHATAN 4.1 Umum Pembangunan dibidang kesehatan bertujuan untuk mewujudkan derajat kesehatan setingi-tinginya bagi seluruh warga Indonesia. Didalam mencapai pembangunan manusia seutuhnya untuk mencapai tujuan tersebut pemeintah mengembangkan sesuatu yaitu sistem kesehatan nasional. Klinik adalah suatu kesatuan organisasi kesehatan yang langsung memberikan pelayanan kesehatan secara menyeluruh dan terintegrasi kepada masyarakat diwilayah tertentu. Dalam rangka meningkatkan mutu pelayanan dan sistem Informasi perlu diperhatikan peningkatan upaya pencatatan diklinik , agar data yang dicatat dapat memenuhi berbagai kebutuhan. Karena segala bentuk pencatatan merupakan sumber dari data. Pengolahan data pada Klinik Dokter Keluarga Suradita sudah menggunakan komputer akan tetapi menggunakan cara manual. Oleh sebab itu, sangat diperlukannya sistem komputerisai untuk membantu pekerjaan disegala bagian terutama dibagian pendaftaran dan kasir. 125 4.2 Tinjauan Perusahaan Tinjauan terhadap organisasi menjelaskan tentang tujuan dibentuknya organisasi, sejarah organisasi, pemimpin, lokasi dan ruang lingkup kegiatan organisasi serta pola pembagian kerja dan hubungan kerja antar personil. 4.2.1 Sejarah Berdirinya Klinik Dokter Keluarga Suradita Pada awalnya Klinik Dokter Keluarga Suradita merupakan praktek dokter umum perseorangan yang dilakukan oleh dr. Dean Handimulya. Praktek ini mulai dirintis pada tanggal 17 September 2001. Salah satu tujuan dari praktek dokter umum di daerah Suradita adalah ikut memberikan pelayan kesehatan yang dilakukan oleh dokter untuk masyarakat di desa Suradita dan sekitarnya. Dimana pada saat itu hingga sekarang pelayanan kesehatan yang diberikan oleh dokter masih sangat jarang. Tujuan lainnya adalah untuk memberikan pelayanan kesehatan yang berkualitas yang sesuai dengan kaidah – kaidah pengobatan menurut ilmu kedokteran. Oleh karena semakin berkembang, dimana jumlah kunjungan pasien dari bulan ke bulan semakin banyak, sementara jam pelayanan yang diberikan sangat pendek, yaitu mulai pukul 16.00 sampai dengan pukul 20.00, maka untuk memberikan pelayanan yang lebih optimal dengan waktu pelayanan yang lebih panjang, dibuat klinik dokter keluarga yang 126 dapat memberikan pelayanan tersebut, dimana jam pelayanannya menjadi pukul 08.00 sampai dengan pukul 20.00. Dinamakan klinik dokter keluraga, karena tujuan utama dari didirikannya klinik ini adalah pelayanan kedokteran yang menyeluruh yang memusatkan pelayanannya kepada keluarga sebagai suatu unit, dimana tanggung jawab dokter terhadap pelayanan kesehatan tidak dibatasi oleh golongan umur atau jenis kelamin pasien, juga tidak oleh organ tubuh atau jenis penyakit tertentu saja. 4.2.2 Visi, Misi dan Tujuan Klinik A. Visi Klinik Menjadi pusat pelayanan kesehatan primer yang profesional yang selalu berpedoman pada ilmu kedokteran B. Misi Klinik 1. Memberikan pelayanan kesehatan professional. 2. Selalu berpedoman pada kode etik kedokteran. 3. Selalu memberikan yang terbaik untuk pasien. 4. Menyediakan pengobatan bermutu yang terjangkau. C. Tujuan Klinik Tujuan utama dari didirikannya klinik ini adalah pelayanan kedokteran yang menyeluruh yang memusatkan pelayanannya kepada keluarga sebagai suatu unit, dimana tanggung jawab dokter terhadap pelayanan kesehatan tidak dibatasi oleh golongan umur atau jenis kelamin pasien, juga tidak oleh organ tubuh atau jenis penyakit tertentu saja. 4.2.3 Struktur Organisasi dan Fungsi 127 Struktur organisasi dari suatu perusahaan sangat penting sekali karena organisasi ini merupakan struktur yang bekerja secara vertical maupun horizontal. Sehinga tercipta iklim kerja yang dinamis dan menunjang kegiatan perusahaan dapat terwujud dengan baik. Karena struktur organisasi merupakan suatu hal yang sangat menentukan dari suatu perusahaan. Struktur organisasi merupakan suatu pengaturan tugas yang dalam mengkoordinir dan mengopersasikan para karyawan dalam suatu perusahaan yang dibagi-bagi menjadi beberapa bagian sesuai dengan fungsi-fungsi yang telah diberikan sebelumnya. Struktur dari suatu organisasi sangat diperlukan sekali dalam pembagian tugas dan wewenang yang diterima dan dipertanggungjawabkan sesuai dengan ketentuan perusahaan. Adapun bentuk struktur organisasi yang ada pada Klinik Dokter Keluarga Suradita, sebagaimana dapat dilihat pada (Gambar 4.1) berikut : 128 Gambar 4.1 : Struktur Organisasi Klinik Dokter Keluarga Suradita Adapun fungsi / tugas dari bagian yang ada pada Klinik Dokter Keluarga Suradita adalah sebagai berikut : 1. Kepala Klinik a. Bertanggungjawab terhadap kegiatan yang ada di klinik dokter keluarga Suradita. b. Menetapkan kebijakan dalam bidang medis, yang berguna bagi peningkatan pelayanan medik pada Klinik Dokter Keluarga Suradita. c. Melakukan pemeriksaan laporan pembukuan. d. Menandatangani dokumen penting dan menyusun program kerja klinik. e. Mengatur dan mengontrol terhadap semua kegiatan yang dipimpinnya melalui staf-stafnya. 2. Kepala Bagian Medis a. Membantu kepala klinik dalam koordinasi pemberian pelayanan medis. 129 b. Bertanggung jawab atas pelayanan pengobatan umum, pencegahan penyakit menular dan kesehatan ibu dan anak. 3. Seksi Pengobatan umum Bertanggungjawab dalam melayani pasien yang berobat. 4. Seksi Pencegahan Penyakit Menular Bertanggung jawab dalam melayani pasien secara teliti dan hati-hati. 5. Seksi Kesehatan Ibu dan Anak Melayani dan memperhatikan tingkat kesehatan ibu dan anak. 6. Bagian Kasir a. Memberikan pelayanan kepada pasien yang melakukan pembayaran-pembayaran. b. Sebagai tempat pembayaran atas pemeriksaan yang diberikan Dokter yaitu pembayaran biaya pengobatan dan biaya pembayaran resep obat atau. 7. Bagian Administrasi a. Membuat laporan dan bertanggung jawab masalah pembukuan. b. Menginput data diagnosa pasien setelah berobat untuk mengetahui biaya pengobatan pasien. 8. Bagian Pendaftaran a. Sebagai tempat mendaftar bagi pasien yang berobat b. Memberikan pelayanan terhadap pasien yang berobat. 130 c. Menginput dan mendata data disgnosa pasien yang selesai berobat. 9. Bendahara a. Menagtur pengeluaran dan pemasukan pada klinik Dokter Keluarga. b. Mengatur dan merencanakan inventarisasi penyediaan barang. 10. Bagian Farmasi a. Sebagai tempat pelayanan yang memberikan obat kepada pasien yang sudah mendapatkan resep obat dari dokter. b. Sebagai tempat pengadaan obat untuk keperluan klinik. c. Mengatur Persediaan Obat 4.3 Analisis Sistem Berjalan Analisa sistem adalah penelitian atas sistem yang telah ada dengan tujuan untuk merancang sistem baru atau diperbaharui. Pada tahap ini dilakukan investigasi awal terhadap sistem yang sudah berjalan. Maka penulis melakukan analisa pada klinik dokter keluarga suradita sebagai berikut : 4.3.1 Prosedur Sistem Berjalan Prosedur yang ada pada Klinik Dokter Keluarga Suradita adalah sebagai berikut : 131 1. Prosedur Pendaftaran Saat pertama datang, pasien langsung menuju bagian pendaftaran, untuk mendaftarkan diri. Selanjutnya pasien yang berobat ditanyakan identitasnya, agar oleh petugas bagian bagian pendaftaran pendaftaran tentang dapat mengetahui apakah pasien tersebut sudah pernah berobat atau belum. Jika pasien belum pernah berobat, maka petugas akan membuatkan status berobat pasien baru dengan nomor urut khusus. Setelah itu pasien akan terdaftar dan mempunyai nomor status baru, Kemuadian pasien akan diberikan kartu berobat dan siap untuk diperiksa oleh dokter yang akan memeriksanya. 2. Prosedur Pencatatan data diagnosa Pada proses ini pasien memberikan kartu berobat kepada dokter sebagai kartu pencatatan diagnosa penyakit. Setelah diperiksa oleh dokter, kemudian dokter menulis nama penyakit yang sedang diderita oleh pasien dan memberikan resep obat kepada pasien selain memberikan resep kepada pasien, dokter memberikan data diagnosa pasien kepada bagian administrasi untuk mengetahui harga biaya pengobatan pasien, dan data diagnosa pasien yang telah diberikan oleh dokter kemudian disimpan sebagai data diagnosa pasien. 132 3. Prosedur Pengambilan obat Setelah pasien mendapatkan resep dari dokter kemudian pasien membawa resep obat tersebut kepada bagian farmasi untuk mendapatkan obat, kemudian setelah resep diterima oleh bagian farmasi, maka pihak farmasi akan memberikan biaya obat yang harus dibayar oleh pasien pada bagian kasir. 4. Prosedur Pembayaran Biaya Obat dan Biaya Pengobatan Setelah pasien mendapatkan biaya obat dari bagian farmasi kemudian pasien memberikan biaya obat tersebut kepada bagian kasir untuk melakukan pembayaran obat tersebut. Selain itu juga pasien harus membayar biaya pengobatan sesuai dengan pengobatan yang telah dilakukannya pada klinik dokter keluarga suradita. Setelah melakukan pembayaran maka bagian kasir akan memberikan kwitansi kepada pasien sebagai bukti dari biaya pembayaran yang telah di bayar oleh pasien. 5. Prosedur Pembuatan Laporan Proses Pembuatan laporan dilakukan oleh bagian administrasi dengan cara mengambil data dari arsip data pasien sebagai data untuk membuat laporan mengenai pasien yang telah berobat pada klinik, kemudian mengambil data dari arsip data diagnosa pasien sebagai data untuk membuat laporan mengenai membuat laporan data diagnosa pasien, serta 133 mengambil data dari arsip data pembayaran sebagai data untuk membuat laporan mengenai laporan pembayaran yang ada pada klinik dokter keluarga suradita. Didalam proses pengambilan seluruh data untuk proses pembuatan laporan, cara yang dilakukan masih secara manual karena harus mengumpulkan dan menghitung data arsip yang ada dan membutuhkan waktu yang cukup lama. 4.3.2 Analisis Kebutuhan Sistem yang berjalan Analisis sistem Informasi Pelayanan Kesehatan yang sedang berjalan pada Klinik Dokter Keluarga Suradita ini dilakukan untuk memperoleh suatu gambaran yang jelas mengenai kelemahan dan kelebihan sistem yang sedang berjalan. Pada tahap ini dilakukan penelitian terhadap permasalahan yang ada yaitu dengan cara mengamati dan melihat langsung sistem yang berjalan pada Klinik Dokter Keluarga Suradita. Sistem Informasi Pelayanan Kesehatan pada Klinik Dokter Keluarga Suradita ini masih mengalami permasalahan diantaranya pada bagian pendaftaran dan kasir yaitu pada proses penginputan data pasien, pendataan diagnosa pasien, pembayaran obat dan biaya pengobatan, serta pembuatan laporan-laporan. Hal tersebut memperlambat proses kerja petugas klinik dalam menginput data pasien secara sistematis, walaupun sudah 134 menggunakan komputer tetapi masih menggunakan banyak kertas untuk menginput data pasien tersebut karena komputer yang ada pada klinik di bagian pendaftaran hanya sekedar memasukan nama pasien secara global tanpa ada database yang membuat sistem menjadi teratur. Selain itu, walaupun pasien sudah terdaftar, mempersulit petugas klinik dalam mencari data pasien yang akan berobat, dikarenakan harus mencari data-data pasien yang dibutuhkan, diantaranya harus mencari kartu berobat pasien / nomor status pasien yang bertumpuk dalam kumpulan arsip-arsip yang tersimpan didalam lemari. Dalam proses pendataan diagnosa pasien masih dilakukan secara manual sehingga membutuhkan banyak kertas untuk menginput data diagnosa, dan apabila akan mencari data diagnosa yang dibutuhkan harus mencari terlebih dahulu di dalam tumpukan dan kumpulan kertas yang cukup banyak. Dalam proses pembayaran sistem tidak dapat memberikan kemudahan petugas klinik sehingga menimbulkan kelambatan dalam proses pembayaran dikarenakan sistem tidak bisa memberikan pelayanan pembayaran secara sistematis, sehingga petugas harus menulis biaya pembayaran yang harus dibayar oleh pasien kemudian menjumlahkannya secara manual. Dan didalam proses pembuatan laporan, sistem tidak dapat memberikan laporan yang diinginkan dengan cepat dikarenakan masih menggunakan cara yang manual, harus menghitung dan menjumlahkan sendiri 135 proses pembuatan laporan tersebut. Dan didalam pembuatan laporan ini membutuhkan waktu yang cukup lama. Sehingga pada saat kepala klinik membutuhkan laporan yang diinginkan, petugas tidak dapat memberikan laporan dengan cepat dikarenakan harus mencari data dalam lembaran kertas yang bertumpuk, Disamping itu penyajian laporan harus terpisah dan tersusun rapih agar mudah dalam memberikan laporan pasien yang datang perhari dan perbulan serta dapat memberikan laporan data diagnosa pasien dengan mudah, serta dapat memberikan laporan pembayaran yang ada pada klinik dokter keluarga suradita dengan detail dan teratur. Dengan adanya permasalahan tersebut diatas, diharapkan adanya jalan keluar untuk memecahkan masalah yang ada pada Klinik Dokter Keluarga Suradita dalam menginput data, mencari data pasien yang berobat dan data diagnosa pasien, pembayaran yang ada pada klinik serta mengupdate data. 4.3.3 Kelemahan Sitem Berjalan Dari hasil analisis sistem yang sedang berjalan pada Klinik Dokter Keluarga Suradita, Penulis menguraikan beberapa kelemahan pada proses sistem, diantaranya : 1. Sering menimbulkan kesalahan dan keterlambatan Informasi yang diinginkan dengan tepat waktu dikarenakan banyaknya 136 data-data yang tertumpuk serta hilang atau tidak terkntrol data yang ada. 2. Pada bagian pendaftaran sudah terdapat komputer akan tetapi hanya sekedar untuk penginputan nama pasien secara global saja, tidak ada database yang bisa mengatur input data dengan baik dan terperinci. Sehingga dalam menginput data pasien yang baru dan mencari data pasien yang sudah terdaftar, masih dilakukan secara manual, dimana petugas harus memberikan formulir kepada pasien untuk diisi dan kemudian disimpan oleh petugas data pasien tersebut didalam lemari arsip yang ada pada bagian pendaftaran, sehingga ketika petugas melakukan pencarian data pasien, petugas harus mencari data dari sekian banyak data yang ada, yang telah disimpan didalam lemari arsip 3. Pada bagian Kasir, ketika pasien hendak melakukan pembayaran petugas harus menghitung dan menjumlahkan secara manual, dimana petugas klinik harus menulis anggaran yang harus dibayar oleh pasien ketika pasien akan melakukan pembayaran. 4. Terjadinya penumpukan dokumen data pasien. 5. Pada bagian kepala klinik harus menunggu terlebih dahulu untuk meminta laporan mengenai data pasien yang berobat pada klinik dan data pembayaran yang ada pada klinik, Karena 137 untuk mendapatkan Informasi pelayanan kesehatan yang ada dan yang dibutuhkan harus dicari pada tumpukan dokumen yang jumlahnya cukup banyak. Dari uraian kelemahan-kelemahan yang ada pada klinik dokter keluarga suradita tersebut, dapat penulis simpulkan bahwa untuk memperoleh Informasi yang diinginkan baik ketika memasukan data, pencarian data, update data, menghitung data maupun membuat laporan, memungkinkan terjadinya kesalahan dan keterlambatan Informasi yang diinginkan pada waktunya, sehingga nantinya akan menghambat proses kerja petugas klinik pada Klinik Dokter Keluarga Suradita tersebut. Berikut ini adalah hasil analisa sistem yang berjalan dengan menggunakan diagram arus dokumen,sebagaimana dapat dilihat pada (Gambar 4.2) : 138 Gambar 4.2 : Diagram Arus Dokumen Sistem Berjalan 139 4.3.4 Kelebihan Sistem berjalan Disamping kelemahan sistem yang ada, sistem yang sedang berjalan terdapat beberapa kelebihan diantaranya adalah : 1. Tidak memerlukan biaya yang mahal untuk pembelian program aplikasi yang semestinya dipesan atau didesain. 2. Tidak memeerlukan biaya tambahan untuk pemrograman, karena membutuhkan programmer yang terlatih. 4.3.5 Analisis Masalah Berdasarkan hasil ananlisis terhadap sistem Informasi pelayanan kesehatan yang sedang berjalan pada Klinik Dokter Keluarga Suradita, ada beberapa masalah yang dihadapi diantaranya : Ketika bagian pendaftaran mencari data pasien, maka bagian pendaftaran harus mencari data pasien didokumen berupa arsip yang berbentuk kertas yang jumlahnya cukup banyak didalam lemari arsip data pasien, dan pada bagian kasir didalam menginput dan menyimpan data diagnosa pasien yang sudah berobat, petugas harus menulis didalam kertas dan menyimpannya didalam lemari arsip data diagnosa, sehingga memungkinkan mempersulit sendiri bagian kasir ketika melakukan pencarian data diagnosa pasien tersebut karena berada didalam tumpukan kertas yang sangat banyak, dan didalam menentukan biaya pengobatan petugas harus menulis terlebih dahulu dan menjumlahkan semua anggaran yang 140 harus dibayar oleh pasien karena tidak ada sistem yang langsung memberikan bukti pembayaran obat, dan pada proses pembuatan laporan bagian kepala klinik harus menunggu terlebih dahulu untuk mendapatkan laporan-laporan tentang pasien yang berobat pada klinik, data diagnosa pasien setelah berobat, dan data pembayaran yang ada pada klinik dokter keluarga suradita. pada bagian kasir didalam proses pembayaran baik pembayaran biaya pengobatan maupun biaya obat harus menjumlahkan secara manual dari semua biaya yang harus dibayar oleh pasien sehingga membutuhkan waktu yang cukup lama pada proses pembayaran tersebut. 4.3.6 Solusi Pemecahan Masalah Dengan melihat segala permasalahan dan berdasarkan hasil analisa di atas, maka diperlukan solusi pemecahan masalah terhadap kelemahan dan kendala yang dihadapi tersebut. Solusi pemecahannya yaitu dengan memfasilitasi klinik dengan komputerisasi. Dalam hal ini diperlukan suatu program aplikasi pelayanan kesehatan berbasis komputer yang diharapkan dapat membatu mengatasi masalah yang dihadapi klinik. Pengembangan sistem aplikasi pelayanan kesehatan yang terintegrasi antara bagian pendaftaran, bagian kasir dan bagian administrasi dimulai dari proses pendaftaran pasien, penyimpanan data pasien, pencarian data pasien, update data, penghitungan data sampai pada proses 141 pembayaran dan pembuatan laporan yang dibutuhkan. Sistem aplikasi ini diharapkan dapat membantu memperlancar kinerja klinik secara keseluruhan tanpa menyulitkan bagi user untuk menggunakannya. Karena pada aplikasi ini menggunakan proses sederhana dimana disesuaikan dengan pengoperasian secara manual sehingga tidak terlalu sulit untuk menyesuaikannya dengan program aplikasi ini. Adapun sistem aplikasi yang ingin penulis ajukan yaitu dengan menggunakan program Visual Basic 6.0 disertai penggunaan database Microsoft Access 2003. Alasan penulis menggunakan Visual Basic 6.0 ini karena dapat memanfaatkan kemampuan Microsoft Windows secara optimal, kemampuannya dapat dipakai untuk merancang program aplikasi yang berpenampilan seperti program aplikasi lainnya berbasis Microsoft Windows, Visual Basic 6.0 dapat memanfaatkan hampir semua kemudahan dan kecanggihan yang disediakan sistem operasi Microsoft Windows, dan dapat menghasilkan program akhir berekstensi EXE, yang sifatnya program dapat langsung dijalankan. Penulis menggunakan Ms Access 2003 sebagai basis datanya, karena Ms Access dapat berjalan pada kebutuhan hardware yang kecil. 142 4.4 Usulan Rancangan Sistem Pelayanan Kesehatan Dalam membahas sistem yang berjalan, yang terdiri dari prosedur dalam melakukan berbagai kegiatan dan dalam penyusunan laporan pada sistem pendaftaran pasien, pendataaan data diagnosa pasien dan data pembayaran pasien pada klinik dokter keluarga suradita dalam lima proses yang akan dijelaskan sebagai berikut : a. Pendaftaran Pasien Bagian pendaftaran merupakan tempat yang memberikan pelayanan kepada pasien ketika pasien hendak melakukan pengobatan, pertama pasien harus mendaftarkan telebih dahulu pada bagian pendaftaran apabila pasien belum pernah berobat pada klinik maka bagian pendaftaran menginput data pasien yang baru untuk disimpan didalam database bagian pendaftran, setelah terdaftar kemudian pasien diberikan kartu pasien untuk memudahkan pasien apabila melakukan pengobatan dan sebagai tanda bukti pasien sudah terdaftar pada klinik. Setelah proses pendaftaran selesai kemudian petugas bagian pendaftaran memberikan kartu berobat untuk diberikan kepada dokter ketika pasien diperiksa oleh dokter. b. Penerimaan resep obat Setelah melakukan pemeriksaan oleh dokter, kemudian pasien mendapatkan resep obat dari dokter yang sesuai dengan penyakit yang diderita oleh pasien, kemudian pasien memberikan resep obat kepada bagian farmasi untuk mengetahui biaya obat. 143 c. Penerimaan biaya pengobatan dan biaya obat Setelah melakukan pemeriksaan kemudian bagian kasir mendapatkan biaya pengobatan dari bagian administrasi, sesuai dengan data yang diterima dari dokter yaitu dari data diagnosa pasien setelah berobat, kemudian setelah pasien mendapatkan biaya obat dari bagian farmasi kemudian pasien harus dibayar pada bagian kasir. d. Pembayaran Biaya pengobatan dan biaya obat Setelah pasien mengetahui dan mendapatkan biaya obat dari bagian farmasi dan diketahui biaya pengobatan dari bagian administrasi kemudian pasien harus membayar semua biaya tersebut. e. Laporan Semua Laporan baik laporan transaksi maupun laporan pasien yang berobat dan data diagnosa pasien, dibuat setiap bulan untuk diserahkan kepada kepala klinik. 144 4.4.1 Diagram Arus Dokumen Usulan Berikut ini adalah hasil analisa sistem usulan dengan menggunakan diagram arus dokumen yang terdapat pada (Gambar 4.3) : Gambar 4.3 : Diagram arus dokumen sistem usulan 145 4.5 Perancangan Sistem 4.5.1 Perancangan Proses Beberapa tahapan yang dilakukan penulis dalam merancang proses adalah : a. Diagram Konteks Sistem Informasi Pelayanan Kesehatan b. Diagram Level 1 Sistem Informasi Pelayanan Kesehatan c. Diagram Detail Proses 1.0 Level 2 Proses Pendaftaran d. Diagram Detail Proses 4.0 Level 2 Proses Input Data Diagnosa e. Diagram Detail Proses 5.0 Level 2 Proses Pembayaran Biaya Pengobatan dan Obat f. Diagram Detail Proses 6.0 Level 2 Proses Pembuatan Laporan a. Diagram Konteks Sistem Informasi Pelayanan Kesehatan, terdapat pada (Gambar 4.4) berikut : Gambar 4.4 : Diagram Konteks Sistem Informasi Pelayanan Kesehatan 146 Keterangan : Pasien akan mendaftar kepada proses sistem informasi pelayanan kesehatan jika belum terdaftar sistem akan menginput data pasien yang baru dan memberikan kartu pasien, jika sudah sistem memberikan kartu berobat pasien kemudian diberikan kepada entitas dokter untuk diperiksa, setelah itu entitas dokter memberikan resep obat dan data diagnosa pasien kepada sistem informasi pelayanan kesehatan, kemudian proses sistem informasi pelayanan kesehatan memberikan resep obat kepada entitas farmasi untuk mengetahui biaya obat, setelah diketahui biaya obat kemudian entitas farmasi memberikan biaya obat kepada proses sistem informasi pelayanan kesehatan. Proses sistem informasi pelayanan kesehatan memberikan data diagnosa pasien untuk mengetahui biaya pengobatann dan memberikan data-data kepada entitas administrasi, kemudian entitas administrasi memberikan biaya pengobatan dan laporan kepada proses sistem informasi pelayanan kesehatan. Entitas pasien mendapatkan biaya pengobatan dari proses sistem informasi pelayanan kesehatan kemudian entitas pasien membayar biaya obat dan biaya pengobatan kepada proses sistem informasi pelayanan kesehatan kemudian entitas pasien mendapatkan faktur pembayaran dari peoses sistem informasi pelayanan kesehatan. Proses sistem informasi pelayanan kesehatan memberikan laporan kepada entitas kepala klinik yaitu laporan data pasien yang berobat, laporan data diagnosa pasien dan laporan transaksi. 147 b. Diagram Level 1 Sistem Informasi Pelayanan Kesehatan, terdapat pada (Gambar 4.5) berikut : Gambar 4.5 : Diagram Level 1 Sistem Informasi Pelayanan Kesehatan Keterangan : Pasien melakukan pendaftaran kepada proses pendaftaran, data pasien dibaca pada database pasien apabila pasien belum terdaftar maka akan mengeluarkan kartu pasien, apabila sudah terdaftar akan mengeluarkan kartu berobat pasien. Pada proses pendaftaran database dokter dibaca untuk mengetahui data dokter. Entitas dokter melakukan proses penanganan kemudian mengeluarkan resep obat untuk diberikan kepada pasien dan data diagnosa pasien yang diberikan kepada entitas 148 administrasi. Pasien memberikan resep obat kepada entitas farmasi, kemudian entitas farmasi melakukan proses hitung biaya obat, pada proses hitung biaya obat database obat dibaca untuk mengetahui harga obat dan biaya obat, kemudian proses hitung biaya obat memberikan biaya obat kepada pasien. Pada proses input data diagnosa, data diagnosa disimpan kedalam database detil diagnosa kemudian database diagnosa dibaca untuk mengetahui harga biaya pengobatan pasien. Proses input data diagnosa memberikan biaya pengobatan kepada proses pebayaran biaya pengobatan dan obat, kemudian entitas pasien mendapatkan biaya pengobatan dari proses pembayaran biaya pengobatan dan obat, memberikan biaya obat kepada proses pembayaran biaya pengobatan dan obat setelah itu entitas pasien melakukan pembayaran biaya pengobatan dan biaya obat kepada proses pembayaran biaya pengobatan dan obat yang disimpan kedalam database transaksi. Proses pembayaran biaya obat dan biaya pengobatan memberikan faktur pembayaran kepada pasien. pada proses pembuatan laporan, yang diambil dari data pasien, data transaksi dan data detil diagnosa dibaca dari database masing-masing untuk diberikan kepada entiatas administrasi kemudian dijadikan laporan untuk diberikan kepada kepala klinik, laporan yang diberikan adalah laporan data pasien yang berobat, laporan data diagnosa pasien dan laporan transaksi. Entitas administrasi melakukan Proses update data pada database master yang ada pada sistem informasi pelayanan kesehatan yaitu data dokter, data transaksi dan data diagnosa. 149 c. Diagram Detail Proses 1.0 Level 2 Proses Pendaftaran, terdapat pada (Gambar 4.6) berikut : Gambar 4.6 : Diagram Detail Proses 1.0 Level 2 Proses Pendaftaran Keterangan : Pasien daftar dan melakukan proses cek data pasien, apabila pasien belum terdaftar maka dilakukan proses catat data pasien dan disimpan kedalam database pasien, proses cetak kartu pasien mengambil data dari database pasien kemudian kartu pasien diberikan kepada pasien, Pada proses catat data pasien database dokter dibaca untuk mengetahui data dokter, jika pasien sudah terdaftar maka dilakukan proses cetak kartu berobat pasien untuk diberikan kepada dokter. Database dokter di update oleh proses update data 150 d. Diagram Detail Proses 4.0 Level 2 Proses Input Data Diagnosa, terdapat pada (Gambar 4.7) berikut : Gambar 4.7 : Diagram Detail Proses 4.0 Level 2 Proses Input Data Diagnosa Keterangan : Entitas administrasi memberikan data diagnosa pasien pada proses pencatatan data diagnosa untuk mengetahui biaya pengobatan pasien yang diambil dari database diagnosa, kemudian proses pencatatan data diagnosa memberikan data diagnosa kepada proses biaya pengobatan pasien untuk disimpan kedalam database detil diagnosa dan proses biaya pengobatan pasien memberikan biaya pengobatan kepada proses pembayaran biaya pengobatan dan obat, kemudian database detil diagnosa memberikan data diagnosa kepada proses pembuatan laporan untuk dibuat laporan. Database diagnosa diupdate oleh proses update data proses. 151 e. Diagram Detail Proses 5.0 Level 2 Proses pembayaran biaya pengobatan dan obat, terdapat pada (Gambar 4.8) berikut : Gambar 4.8 : Diagram Detail Proses 5.0 Level 2 Proses Pembayaran Biaya Pengobatan dan Obat. Keterangan : Entitas pasien memberikan biaya obat kepada proses pembayaran biaya pengobatan dan biaya obat kemudian proses pembayaran biaya pengobatan dan biaya obat memberikan informasi biaya pengobatan yang harus dibayar oleh pasien. Entitas pasien melakukan pembayaran biaya pengobatan dan obat kepada prsoes pembayaran biaya pengobatan dan obat, yang disimpan kedalam database transaksi, kemudian database transaksi membrikan data transaksi kepada proses pembuatan laporan untuk dibuat laporan. Pada proses pembayaran biaya pengobatan dan obat memberikan data pembayaran kepada proses cetak faktur pembayaran untuk memberikan faktur pembayaran kepada pasien. 152 f. Diagram Detail Proses 6.0 Level 2 Proses pembuatan laporan, terdapat pada (Gambar 4.9) berikut : Gambar 4.9 : Diagram Detail Proses 6.0 Level 2 Proses Pembuatan Laporan Keterangan : Data pasien yang berobat, data diagnosa pasien dan data transaksi diambil dari database masing-masing, kemudian entitas administrasi memberikan data laporan kepada proses pemberian laporan yaitu laporan data pasien yang berobat, laporan transaksi dan laporan data diagnosa pasien. Kemudian laporan tersebut diberikan kepada kepala klinik. 153 4.5.2 Perancangan Basis Data Rancangan sistem dilakukan untuk menghasilkan suatu desain sistem informasi yang sistematis sehingga mampu mengantisipasi masalah-masalah yang ada. Penulis melakukan beberapa tahapan dalam merancang sistem informasi Pelayanan kesehatan pada klinik dokter keluarga suradita. Tahapan-tahapan tersebut adalah sebagai berikut : 4.5.2.1 ERD yang belum dinormalisasikan Gambar 4.10 : ERD (Entity Relationship Diagram) yang yang belum dinormalisasikan 154 4.5.2.2 Normalisasi A. Normalisai Tidak Normal (Unnormalized) Bentuk tidak normal terdiri dari: (Gambar 4.10) id _ p a s ie n n a m a _ p a s ie n a la m a t ta n g g a l_ la h ir je n k e l te le p o n id _ d o k te r n a m a _ d o k te r a la m a t te le p o n s p e s ia lis n o _ re s e p ta n g g a l _ re s e p ju m la _ b a y a r id _ p a s ie n id _ d ia g n o s a n o _ d ia g n o s a ju m la h _ h a rg a kd_obat nam a_obat h a rg a je n is _ o b a t n o _ re s e p kd_obat ju m la h _ o b a t ju m la h _ h a rg a Id _ d ia g n o s a n a m a _ d ia g n o s a h a rg a k e te ra n g a n n o _ d ia g n o s a ta n g g a l _ d ia g n o s a ju m la h _ b a y a r id _ p a s ie n id _ d o k te r n o _ fa k tu r ta n g g a l _ fa k tu r n o _ re s e p Gambar 4.11 : Normalisasi Tidak Normal (Unnormalized) Bentuk ini merupakan bentuk awal yang dipakai dalam proses perancangan database. B. Bentuk Normal Pertama (1NF) Dari bentuk unnormalized akan menjadi bentuk 1NF yaitu dengan memisahkan data pada field-field yang tepat. (Gambar 4.11): 155 * id_pasien nama_pasien alamat tanggal_lahir jenkel Telepon * id_dokter nama_dokter alamat telepon spesialis * no_resep tanggal_resep jumla_bayar id_pasien id_diagnosa no_diagnosa jumlah_harga * kd_obat nama_obat harga jenis_obat no_resep kd_obat jumlah_obat jumlah_harga * id_diagnosa nama_diagnosa harga keterangan * no_diagnosa tanggal_diagnosa jumlah_bayar id_pasien id_dokter * no_faktur tanggal_faktur no_resep Gambar 4.12 : Bentuk Normal Pertama (1NF) Namun dalam bentuk normal kesatu masih banyak kekurangannya yaitu : 1. Tabel Resep, detil resep, diagnosa, detil diagnosa, belum terpisah. 2. Masih saling ketergantungan fungsi. 156 C. Bentuk Normal Kedua (2NF) Pembentukan normal kedua dengan mencari kunci-kunci field yang dapat dipakai sebagai patokan dalam pencarian dan sifatnya unik. Melihat kondisi dari permasalahan diatas dapat diambil kunci kandidat sebagai berikut: (Gambar 4.12) 1. id_pasien 2. no_diagnosa 3. id_dokter 4. id_diagnosa 5. no_resep 6. kd_obat 7. no_faktur Pasien : id_pasien, nama_pasien, alamat, tanggal_lahir, jenkel, telepon Transaksi : no_diagnosa, tanggal_diagnosa, jumlah_bayar, id_pasien, id_dokter Dokter : id_dokter, nama_dokter, alamat, telepon, spesialis Diagnosa : id_diagnosa, nama_diagnosa, harga, keterangan, no_diagnosa, jumlah_harga 157 Resep : no_resep, tanggal_resep, jumlah_bayar, id_pasien, kd_obat, jumlah_obat, jumlah_harga Obat : kd_obat, nama_obat, harga, jenis_obat Faktur : no_faktur, tanggal_faktur, no_resep Gambar 4.13. bentuk normal kedua (2NF) Dalam bentuk normal kedua (2NF) masih ada permasalahan yaitu : terdapatnya hubungan many to many dari tabel resep dengan tabel obat sehingga terbentuklah tabel baru untuk menghubungkan kedua tabel tersebut. Pada tabel diagnosa field id_diagnosa masih bergantung pada field no_diagnosa pada tabel diagnosa. Hal ini disebut ketergantungan yang transitif dan harus dipisah untuk membentuk tabel baru. 158 D. Bentuk Normal ketiga (3NF) Bentuk normal ketiga (3NF) mempunyai syarat setiap tabel tidak mempunyai field yang bergantungan transitif, harus bergantung penuh pada kunci utama. Terdapat pada (Gambar 4.13) : Gambar 4.14. bentuk normal ketiga (3NF) 88 4.5.2.2 ERD (Entity Relationship Diagram) yang sudah dinormalisasikan * id _ p a s ie n nam a n o _ d ia g n o s a a la m a t id _ d o k te r id _ p a s ie n ta n g g a l_ la h ir tg l_ d ia g n o s a * id _ d o k te r te le p o n je n k e l k e te ra n g a n n a m a _ d o k te r s p e s ia lis a la m a t te le p o n p a s ie n I M M e n e rim a M tra n s a k s i I D ib e rik a n d o k te r I I M e la k u k a n M e n d a p a tk a n M d e til_ d ia g n o s a M Is i I d ia g n o s a id _ d ia g n o s a *id _ d ia g n o s a n o _ d ia g n o s a n a m a _ d ia g n o s a M fa k tu r M I M e n d a p a tk a n re s e p I ju m la h _ h a rg a h a rg a M e n g is i n o _ fa k tu r *n o _ re s e p ta n g g a l_ fa k tu r ju m la h _ b a y a r N o _ re s e p id _ p a s ie n tg l_ re s e p k e te ra n g a n M d e ta il_ re s e p M n o _ re s e p kd_obat M e n g is i I obat * kd_obat nam a_obat ju m la h _ o b a t h a rg a ju m la h _ h a rg a je n is _ o b a t Gambar 4.15 : ERD (Entity Relationship Diagram) yang sudah dinormalisasikan 89 4.5.2.3 Struktur Data Berdasarkan normalisasi yang dilakukan, maka dihasilkan basis data yang terstruktur. Adapun basis data yang dihasilkan adalah: a. Nama File Isi : Pasien : Data Pasien Primary Key : id_pasien Foreign Key : No 1 2 3 4 5 6 Field Name id_pasien* nama_pasien alamat tanggal_lahir Jenkel Telepon Type Text Text Text Date/time Text Text Field Size 5 50 50 Short Date 50 50 Keterangan Identitas Pasien Nama Pasien Alamat Pasien Tanggal Lahir Jenis Kelamin Telepon Tabel 4.1 : Basis Data Pasien b. Nama File Isi : Transaksi : Data Transaksi Primary Key : no_diagnosa Foreign Key : id_pasien, id_dokter No Field Name 1 no_diagnosa* 2 tanggal_diagnosa 3 4 5 jumlah_bayar id_pasien** id_dokter** Type Text Text Field Size 5 6 Number Text Text Double 5 5 Tabel 4.2 Basis Data transaksi Keterangan Nomor Diagnosa Tanggal Diagnosa Jumlah Bayar Identitas pasien Identitas Dokter 90 c. Nama File Isi : dokter : Data Dokter Primary Key : id_dokter Foreign Key : No 1 2 3 4 5 Field Name Id_dokter* nama_dokter alamat telepon sepesialis Type Text Text Text Text Text Field Size 5 50 50 50 50 Keterangan Identitas Dokter Nama Dokter Alamat Dokter Telepon Dokter Spesalis Tabel 4.3 : Basis Data Dokter d. Nama File Isi : Resep : Data Resep Primary Key : no_resep Foreign Key : id_pasien No 1 2 3 4 Field Name no_resep* tanggal_resep jumlah_bayar id_pasien** Type Text Date/time Number Text Field Size 5 Short Date Double 5 Tabel 4.4 : Basis Data Resep Keterangan Nomor Resep Tanggal Resep Jumlah Bayar Identitas Pasien 91 e. Nama File Isi : Faktur : Data Faktur Primary Key : no_faktur Foreign Key : no_resep No 1 2 3 Field Name Type No_faktur* Text tanggal_faktur Date / Time No_resep** Text Field Size 5 Short Date 5 Keterangan Nomor Faktur Tanggal Faktur Nomor Resep Tabel 4.5 : Basis Data Faktur f. Nama File Isi : detil_diagnosa : Data dari Diagnosa Primary Key : Foreign Key : id_diagnosa, no_diagnosa Field Name No 1 id_diagnosa** 2 no_diagnosa** 3 jumlah_harga Type Field Size Keterangan Text Text Number 5 5 Double Identitas Diagnosa Nomor Diagnosa Jumlah Diagnosa Tabel 4.6 : Basis detil_diagnosa 92 g. Nama File Isi : Diagnosa : Data Diagnosa Primary Key : id_diagnosa Foreign Key : No 1 2 3 4 Field Name Id_diagnosa* nama_diagnosa harga keterangan Type Text Text Number Text Field Size 5 50 Double 50 Keterangan Identitas Diagnosa Nama Diagnosa Harga Pengobatan Keterangan Tabel 4.7 : Basis Data Diagnosa h. Nama File Isi : detil_resep : Data Obat Yang Dipesan Primary Key : Foreign Key : no_resep, kd_obat No 1 2 3 4 Field Name no_resep** kd_obat** jumlah_obat jumlah_harga Type Text Text Number Number Field Size 5 5 Double Double Tabel 4.8 : Basis Data detil_resep Keterangan Nomor Resep Kode Obat Jumlah Obat Jumlah Harga 93 i Nama File Isi : Obat : Data Obat Primary Key : Kd_Obat Foreign Key : No 1 2 3 4 Field Name kd_obat* nama_obat harga_obat jenis_Obat Type Text Text Number Text Field Size 5 50 Double 50 Tabel 4.9 : Basis Data Obat 4.5.2.4 Rancangan Kode 1) Rancangan kode untuk pasien PS001 PS 001 = kode_pasien = No urut kode pasien 2) Rancangan kode untuk Dokter DK001 DK 001 = Identitas Dokter = No urut Identitas Dokoter 3) Rancangan kode untuk Resep 00001 001 00 = Resep = No urut Resep Keterangan Kode Obat Nama Obat Harga Obat Jenis Obat 94 4) Rancangan kode untuk Faktur FK001 F 001 = Kode Faktur = No urut kode Faktur 5) Rancangan kode untuk Detil_Diagnosa DG001 DG 001 = Kode tanda Hasil Diagnosa = No urut kode tanda Hasil Diagnosa 6) Rancangan kode untuk Diagnosa DG001 DG 001 = Kode Diagnosa = No urut diagnosa 7) Rancangan kode untuk Obat OB001 OB 001 =Kode Obat = No urut kode obat 8) Rancangan kode untuk Detil_Resep 00001 00001 00 = Kode Detil_resep = No urut Detil_Resep 95 4.5.2.5 Kamus Data Pasien = *File pasien* {@id_pasien + nama_pasien + alamat + tanggal_lahir + jenkel + telepon} Transaksi = *File transaksi* {@no_diagnosa + tanggal_diagnosa + jumlah_bayar + id_pasien + id_dokter } Dokter =*File dokter* {@id_dokter+ nama_dokter + alamat + telepon + spesialis} Resep =*File resep* {@no_resep+ tanggal_resep + jumlah_bayar + Faktur id_pasien} =*File faktur* Diagnosa {@no_faktur + tanggal_faktur + no_resep} =*File diagnosa* Detil_Diagnosa {@id_diagnosa + nama_diagnosa =*File detil_diagnosa* Detil_Resep {@id_diagnosa + no_diagnosa + jumlah_harga ) =*File detil_resep* Obat {@no_resep =*File obat* + kode_obat + + harga jumlah_obat {@kd_obat + nama_obat + harga + jenis_obat } Tabel 4.10 : Kamus Data + + 96 4.5.3 Perancangan Input/Output Perancangan input/output merupakan rancang bangun dari percakapan antar pemakai sistem dengan komputer. Percakapan ini dapat terdiri dari proses pemasukan data ke sistem dan menampilkan hasil informasi kepada pemakai (user). Perancangan input/output ini antara lain terdiri dari: 1. Perancangan menu, dalam hal ini perancangan menu menggunakan metode STD (State Transition Diagram). 2. Perancangan layar tampilan, layar tampilan terdiri dari: a. Desain Dialog yang terdiri dari layar password, layar menu utama. b. Desain Input yang terdiri dari input data pasien, input data dokter, input data diagnosa, input resep, input faktur, input data obat, input detil resep,input detil diagnosa. c. Desain Output yang terdiri dari daftar pasien, dokter, obat, diagnosa, laporan resep, faktur, transaksi. 4.5.3.1 Perancangan Struktur Menu Tampilan Perancangan menu sistem informasi pelayanan kesehatan pada klinik dokter keluarga suradita dengan manggunakan STD (State Transition Diagram) adalah sebagai berikut (Gambar 4.15): 97 Gambar 4.16 : Perancangan Struktur Menu Tampilan 98 4.5.3.2 Perancangan Layar Tampilan A. Desain dialog yang terdiri dari layar password dan layar menu utama. Gambar 4.17 : Layar Password Gambar 4.18 : Rancangan Mneu Utama Pelayanan Kesehatan 99 B. Desain input yang terdiri dari, input data pasien, input data obat, input data diagnosa, input data dokter, input data resep, input faktur,input data hasil diagnosa. Gambar 4.19 : Rancangan file master data pasien Gambar 4.20 : Rancangan file master data obat 100 Gambar 4.21 : Rancangan file master data diagnosa Gambar 4.22 : Rancangan file master data dokter 101 Gambar 4.23 : Rancangan menu resep Gambar 4.24 : Rancangan menu faktur 102 Gambar 4.25 : Rancangan menu transaksi diagnosa Gambar 4.26 : Rancangan Layar laporan resep 103 Gambar 4.27 : Rancangan Layar laporan faktur Gambar 4.28 : Rancangan Layar laporan transaksi 104 Gambar 4.29 : Rancangan Layar ganti password Gambar 4.30 : Rancangan Layar tambah user C. Desain Output yang terdiri dari daftar pasien, daftar dokter, daftar obat, laporan resep, laporan faktur, laporan laporan diagnosa, cetak resep, cetak faktur, cetak biaya pengobatan, cetak kartu pasien. 105 KLINIK DOKTER KELUARGA SUARDITA Jl. Raya Lapan Kp . Suradita Desa Suradita Kecamatan Cisauk Kabupaten Tangerang Banten 15343 021 - 75791443 LOGO KLINIK Id_pasien Nama_pasien Alamat Tanggal_lahir Jenis Kelamin DAFTAR PASIEN Telepon Gambar 4.31 : Rancangan Layar daftar pasien LOGO KLINIK id_dokter KLINIK DOKTER KELUARGA SUARD ITA Jl. Raya Lapan Kp . Suradita D esa Suradita Kecamatan Cisauk Kabupaten Tangerang Banten 15343 021 - 75791443 nama_dokter alamat telepon DAFTAR DOKTER spesialis Gambar 2.32 : Rancangan Layar daftar dokter 106 LOGO KLINIK id_dokter KLINIK DOKTER KELUARGA SUARDITA Jl. Raya Lapan Kp . Suradita Desa Suradita Kecamatan Cisauk Kabupaten Tangerang Banten 15343 021 - 75791443 nama_dokter alamat DAFTAR DOKTER telepon spesialis Gambar 4.33 : Rancangan Layar daftar obat LOGO KLINIK Id Diagnosa KLINIK DOKTER KELUARGA SUARDITA Jl. Raya Lapan Kp . Suradita Desa Suradita Kecamatan Cisauk Kabupaten Tangerang Banten 15343 021 - 75791443 Nama Diagnosa Harga DAFTAR DIAGNOSA Keterangan Gambar 4.34 : Rancangan Layar daftar diagnosa 107 KLINIK DOKTER KELUARGA SUARDITA Jl. Raya Lapan Kp . Suradita Desa Suradita Kecamatan Cisauk Kabupaten Tangerang Banten 15343 021 - 75791443 LOGO KLINIK Dari Tanggal : No resep Tanggal Nama Pasien LAPORAN RESEP Sampai Dengan : dd:mm:yy Kode Obat Nama Obat dd:mm:yy Jumlah Obat Jenis Gambar 4.35 : Rancangan Layar laporan resep KLINIK DOKTER KELUARGA SUARDITA Jl. Raya Lapan Kp . Suradita Desa Suradita Kecamatan Cisauk Kabupaten Tangerang Banten 15343 021 - 75791443 LOGO KLINIK Dari Tanggal : Id Faktur Tanggal faktur Nama Pasien LAPORAN FAKTUR Sampai Dengan : dd:mm:yy Nama Obat Jml Harga Satuan dd:mm:yy Jumlah harga Gambar 4.36 : Rancangan Layar laporan faktur 108 KLINIK DOKTER KELUARGA SUARDITA Jl. Raya Lapan Kp . Suradita Desa Suradita Kecamatan Cisauk Kabupaten Tangerang Banten 15343 021- 75791443 LOGO KLINIK Dari Tanggal : No Diagnosa Tanggal Diagnosa Nama Pasien LAPORAN DIAGNOSA Sampai Dengan : dd:mm:yy Nama Dokter Nama Diagnosa dd:mm:yy Keterangan Jumlah Harga Gambar 4.37 : Rancangan Layar laporan diagnosa KLINIK DOKTER KELUARGA SUARDITA Jl. Raya Lapan Kp . Suradita Desa Suradita Kecamatan Cisauk Kabupaten Tangerang Banten 15343 021 - 75791443 LOGO KLINIK Nomor Resep X-5-X Tanggal Resep dd:mm:yy CETAK RESEP Id Pasien X -5-X Nama Pasien X-50-X X-50-X Alamat Kode obat Nama Obat Jenis Obat Jumlah Obat Gambar 4.38 : Rancangan Layar cetak resep 109 KLIN IK DOKTER KELU ARGA SUARDITA Jl. Raya Lapan Kp . Suradita Desa Suradita Kecamatan C isauk Kabupaten Tangerang Banten 15343 021 - 75791443 LOGO KLINIK Nomor Resep X-5-X Nomor faktur X-5-X Tanggal Faktur DD:MM:YY Kode obat Nama Obat CETAK FAKTUR Id Pasien X -5-X Nama Pasien X-50-X Alamat Jenis Obat Harga X-50-X Jumlah Obat Jumlah harga JUMLAH Gambar 4.39 : Rancangan Layar cetak faktur KLINIK DOKTER KELUARGA SUARDITA Jl. Raya Lapan Kp . Suradita Desa Suradita Kecamatan Cisauk Kabupaten Tangerang Banten 15343 021- 75791443 LOGO KLINIK Id Transaksi X-5-X Id Pasien X-5-X Nama Pasien DD:MM:YY Alamat DD:MM:YY Id Diagnosa Nama Diagnosa CETAK BIAYA PENGOBATAN Tanggal X-50-X Nama Dokter X-50-X Spesialis Keterangan X-5-X Id Dokter Harga X-50-X Jumlah harga JUMLAH TOTAL Gambar 4.40 : Rancangan Layar cetak biaya pengobatan 110 Gambar 4. 41 : Rancangan Layar kartu pasien 4.6 Implementasi Setelah tahap analisa dan perancangan selesai, maka tahap ini dilakukan implementasi hasil rancangan kedalam baris-baris kode program (lihat lampiran) yang dapat dimengerti oleh komputer. Bahasa pemrograman 111 yang penulis gunakan adalah Microsoft Visual basic 6.0 dan Microsoft Access 2003 sebagai databasenya. Selain itu juga membahas sarana-sarana pendukung yang diperlukan agar sistem dapat berjalan sesuai yang diharapkan. Pada tahap ini penulis menentukan spesifikasi komputer yang dibutuhkan oleh sistem dan juga proses pengujian program sistem informasi pelayanan kesehatan pada klinik dokter keluarga suradita yang dirancang penulis agar dapat dilihat seluruh kemampuan dari sistem tersebut. 4.6.1 Spesifikasi Komputer Perangkat komputer digunakan sebagai alat pengolahan data yang meliputi perangkat keras dan pendukungnya yaitu perangkat yang menjalankan aplikasinya. Spesifikasi minimal dari perangkat keras dan perangkat lunak yang diusulkan adalah : a. Perangkat Keras (Hardware) 1) Prosessor yang berkapasitas 1.50 GB 2) Memory RAM yang berkapasitas sebesar 128 MB 3) Hard Disk yang berkapasitas sebesar 40 GB 4) Monitor SVGA 15” 5) 1.44 MB Disk Drive 6) Mouse, Keyboard 7) CD ROM 52 x 8) Printer 9) Topologi Star b. Perangkat Lunak (Software) 1) MS Office 2003 112 2) MS Windows XP Profesional 3) MS Visual Studio c. Brainware 1) Petugas Pendaftaran pada Bagian Pendaftran pada Klinik Dokter Keluarga Suradita. 2) Petugas Kasir di Bagian Kasir pada Klinik Dokter Keluarga Suradita. 4.6.2 Konversi Sistem Tahap konversi sistem yang penulis gunakan adalah tahap konversi pararel, yaitu dengan mengoperasikan sistem baru bersamasama dengan sistem yang lama selama satu periode waktu tertentu. Kedua sistem ini dioperasikan untuk meyakinkan bahwa sistem yang baru telah benar-benar beroperasi dengan baik sebelum sistem yang lama dihentikan dan untuk menghindari kepada organisasi terhadap kegagalan sistem yang baru dan memproteksi sistem lama. 4.7 Pemeliharaan Sistem Menurut Lientz dan Swason (1993) pemeliharaan bukanlah perbaikan sistem, namun aktivitas pemeliharaan adalah menambah daya fungsi (peningkatan) ke program. Pemeliharaan sistem ini sendiri biasanya dilakukan oleh seorang admin yang memahami sistem pelayanan kesehatan ini. 113 BAB V PENUTUP 5.1 Kesimpulan Dari pembahasan yang sudah diuraikan maka penulis mencoba membuat kesimpulan dan saran berikut ini : a. Dengan adanya sistem komputerisasi Sistem pelayanan kesehatan pada klinik dokter keluarga suradita dapat membantu peningkatan kinerja dalam memberikan pelayanan kesehatan kepada masyarakat atau pasien yang akan berobat. b. Dengan menggunakan prinsip SDLC, Sistem informasi pelayanan kesehatan dapat dikembangkan dengan lebih baik dalam proses memberikan pelayanannya kepada pasien. c. Dengan sistem terkomputerisasi akan mendukung dihasilkannya informasi yang akurat serta cepat kepada semua pihak yang membutuhkannya terutama pimpinan dalam mengambil keputusan. Dengan adanya sistem pelayanan kesehatan pada bagian pendaftaran dan bagian kasir, mempermudah petugas klinik dalam memberikan palayanannya kepada pasien yang berobat karena data dan informasi dapat disimpan secara teratur. Beban tenaga yang ada menjadi lebih ringan karena pengarsipan dan pengolahan data yang masuk telah terkomputerisasi. 5.2 Saran Saran-saran yang diberikan pada penelitian ini adalah sebagai berikut : 114 a. Dalam memasukkan data perlu diperhatikan ketelitian guna mengurangi kesalahan-kesalahan yang mungkin terjadi dalam melakukan pekerjaan. b. Sumber daya manusia atau tenaga kerja pelaksana dalam mengoperasikan sistem komputer ini lebih ditingkatkan dan dikembangkan kemampuan dalam merawat sistem dan pemeliharaan perangkat kerasnya secara berkala. c. Diperlukan back-up data, di dalam sistem untuk mencegah hal-hal yang tidak diinginkan. d. Koordinasi dan kerja sama turut menentukan agar sistem ini bisa berjalan dengan baik. 115 DAFTAR PUSTAKA Andi, 2003. Microsoft Access 2003, Wahana Komputer, Semarang, 2003 Fathansyah, Ir., 2002. Basis Data, Informatika, Bandung. Jogiyanto H.M, 2005. Sistem Teknologi Informasi Edisi Ke II, Andi Yogyakarta. Jogiyanto H.M, 2001. Analisa dan Desain Sistem Informasi, Andi, Yogyakarta. Kadir, A, 1999. Konsep Dan Tuntunan Praktis Basis Data, Andi, Yogyakarta. Kendal & Kendal, 2003. Analisa Dan Perancangan Sistem, Intan Sejati, Klaten, Yogyakarta. Kurniadi Adi, 1999. Pemprograman Microsoft Visual Basic 6.0, PT Elex Media Komputindo, Jakarta. M.P.H. Azwar Azrul Dr. DR., 1990, Pengantar Administrasi Kesehatan, Jakarta. O’brein James, 2005. Pengantar Sistem Informasi Perspektif Bisnis Dan Manajerial, Salemba Empat, Jakarta Ramali Ahmad Dr. Med., 1993. Kamus Kedokteran, Jakarta Sutabri Tata, 2004. Analisa Sistem Informasi, Andi, Yogyakarta. 116 LAMPIRAN I WAWANCARA I Responden : dr. Dean Hadi Mulya. Jabatan : Kepala Klinik Tanggal Wawancara : 07 November 2006 Hal : Profil Klinik. Tujuan dari wawancara ini peneliti ingin mengetahui latar belakang berdirinya Klinik Dokter Keluarga Suradita, visi dan misi Klinik dan struktur organisasi. Pertanyaan Wawancara I 1. Bagaimanakah dan kapankah berdirinya Klinik Dokter Keluarga Suradita ? 2. Apa yang melatar belakangi berdirinya Klinik Dokter Keluarga Suradita ? 3. Bagaimanakah profile Klinik Dokter Keluarga Suradita ? Hasil Wawancara I Dari hasil wawancara yang diajukan, peneliti dapat mengetahui tentang sejarah berdirinya, latar belakang, dan profil Klinik. Selain itu peneliti dapat mengetahui visi dan misi, struktur organisasi pada Klinik Dokter Keluarga Suradita. Sebagaimana diuraikan pada Bab IV Analisa dan Perancangan Sistem. 117 WAWANCARA II Responden : dr. Ade, Dita, Siti. Jabatan : Kepala Bagian Medis, Bagian Pendaftaran, Bagian Kasir. Tanggal Wawancara : 04 Januari 2007. Hal : Sistem pelayanan kesehatan yang berjalan pada Klinik. Tujuan dari wawancara ini peneliti ingin mengetahui alur proses pelayanan kesehatan yang berjalan pada klinik, masalah-masalah yang dihadapi pada sistem pelayanan kesehatan. Pertanyaan Wawancara II 1. Bagaimanakah alur proses sistem pelayanan kesehatan pada klinik dokter keluarga suradita ? 2. Adakah masalah-masalah yang dihadapi pada sistem pelayanan kesehatan yang berjalan ? 3. Bagaimanakah ruang lingkup sistem pelayanan kesehatan yang berjalan ? 4. Bagaimana teknis pendaftaran pasien lama dan baru ? Hasil Wawancara II Dari hasil wawancara ini, peneliti dapat mengetahui alur proses sistem pelayanan kesehatan yang berjalan pada Klinik Dokter Keluarga Suradita. Peneliti mengetahui masalah-masalah yang dihadapi sistem pelayanan kesehatan yang berjalan dan ruang lingkup sistem pelayanan kesehatan yang berjalan pada klinik. Dengan hasil wawancara tersebut peneliti mendapatkan data yang dibutuhkan untuk pengembangan sistem pelayanan kesehatan. Adapun data-data yang diperoleh untuk pengembangan sistem secara tersirat dapat diketahui dari pembahasan Bab IV Analisa dan Perancangan Sistem. 118 LAMPIRAN III LISTING PROGRAM Nama Aplikasi Programmer 1 Programmer 2 : Sistem Informasi Pelayanan Kesehatan : Prabowo : Muhammad Irfan 1. Coding Login Dim conn As New ADODB.Connection Dim rs As New ADODB.Recordset Dim i As Single Private Sub cmdcancel_Click() End End Sub Private Sub cmdOK_Click() If Len(txtuser.Text) = 0 Then MsgBox "User ID Masih Kosong", vbCritical, "User ID" txtuser.SetFocus Exit Sub End If If Len(txtpas.Text) = 0 Then MsgBox "Password Masih Kosong", vbCritical, "Password" txtpas.SetFocus Exit Sub End If cekpassword End Sub Private Sub Form_Activate() txtuser.Text = "" txtpas.Text = "" txtuser.SetFocus End Sub Private Sub Form_Load() Set conn = New ADODB.Connection conn.Open "tugasakhir" End Sub Private Sub Form_Unload(Cancel As Integer) conn.Close Set conn = Nothing End Sub Private Sub Timer1_Timer() lblJudul.Left = lblJudul.Left - 30 If lblJudul.Left = -9000 Then lblJudul.Left = 9000 lblJudul.Left = lblJudul.Left - 30 End If End Sub Private Sub txtpas_KeyPress(KeyAscii As Integer) KeyAscii = Asc(UCase(Chr(KeyAscii))) If KeyAscii = 13 Then cmdok.SetFocus End If End Sub Sub cekpassword() Dim sql As String sql = " SELECT * FROM user " & _ " WHERE userid='" & txtuser.Text & "'" Set rs = conn.Execute(sql) If rs.EOF Then MsgBox "User Id Tidak Terdaftar", vbOKOnly + vbExclamation, "User ID" txtuser.Text = "" txtuser.SetFocus Else If rs.Fields("password") <> txtpas.Text Then MsgBox "Password Anda Salah", vbOKOnly + vbExclamation, "Password" i=i+1 If i = 3 Then MsgBox "Password Salah, Please Contact Your Administrator", vbCritical, "ERROR ON PASSWORD" End End If txtpas.Text = "" txtpas.SetFocus Else frmutama.mnuganti.Enabled = True frmutama.mnulogoff.Enabled = True If rs.Fields("mndokter") = 1 Then frmutama.mnudatadokter.Enabled = True Else frmutama.mnudatadokter.Enabled = False End If If rs.Fields("mnpasien") = 1 Then frmutama.mnudatapasien.Enabled = True 119 Else frmutama.mnudatapasien.Enabled = False End If If rs.Fields("mnobat") = 1 Then frmutama.mnudataobat.Enabled = True Else frmutama.mnudataobat.Enabled = False End If If rs.Fields("mndiagnosa") = 1 Then frmutama.mnudatadiagnosa.Enabled = True Else frmutama.mnudatadiagnosa.Enabled = False End If If rs.Fields("mnresep") = 1 Then frmutama.mnudataresep.Enabled = True Else frmutama.mnudataresep.Enabled = False End If If rs.Fields("mnfaktur") = 1 Then frmutama.mnudatafaktur.Enabled = True Else frmutama.mnudatafaktur.Enabled = False End If If rs.Fields("mntransaksi") = 1 Then frmutama.mnudatatransaksidiagnosa.Enabled = True Else frmutama.mnudatatransaksidiagnosa.Enabled = False End If If rs.Fields("mndafpasien") = 1 Then frmutama.mnudafpasien.Enabled = True Else frmutama.mnudafpasien.Enabled = False End If If rs.Fields("mndafdokter") = 1 Then frmutama.mnudafdokter.Enabled = True Else frmutama.mnudafdokter.Enabled = False End If If rs.Fields("mndafobat") = 1 Then frmutama.mnudafobat.Enabled = True Else frmutama.mnudafobat.Enabled = False End If If rs.Fields("mndafdiagnosa") = 1 Then frmutama.mnudafdiagnosa.Enabled = True Else frmutama.mnudafdiagnosa.Enabled = False End If If rs.Fields("mnlapfaktur") = 1 Then frmutama.mnudatalapfaktur.Enabled = True Else frmutama.mnudatalapfaktur.Enabled = False End If If rs.Fields("mnlapresep") = 1 Then frmutama.mnudatalapresep.Enabled = True Else frmutama.mnudatalapresep.Enabled = False End If If rs.Fields("mnlaptransaksi") = 1 Then frmutama.mnudatalaptransaksi.Enabled = True Else frmutama.mnudatalaptransaksi.Enabled = False End If If rs.Fields("mntambah") = 1 Then frmutama.mnutambah.Enabled = True Else frmutama.mnutambah.Enabled = False End If pasword.Visible = False frmutama.Visible = True frmutama.Enabled = True frmutama.SetFocus End If End If rs.Close End Sub Private Sub txtuser_KeyPress(KeyAscii As Integer) KeyAscii = Asc(UCase(Chr(KeyAscii))) If KeyAscii = 13 Then txtpas.SetFocus End If End Sub 2. Coding Menu Utama Private Sub mnudafdiagnosa_Click() rptdiagnosa.Refresh rptdiagnosa.Show End Sub Private Sub mnudafdokter_Click() rptdokter.Refresh rptdokter.Show End Sub Private Sub mnudafobat_Click() rptobat.Refresh rptobat.Show End Sub Private Sub mnudafpasien_Click() rptpasien.Refresh rptpasien.Show End Sub Private Sub mnudatadiagnosa_Click() frmdiagnosa.Show frmutama.Visible = False End Sub Private Sub mnudatadokter_Click() frmdokter.Show frmutama.Visible = False End Sub Private Sub mnudatafaktur_Click() frmfaktur.Show frmutama.Visible = False End Sub 120 Private Sub mnudatalapfaktur_Click() frmlapfaktur.Show frmutama.Visible = False End Sub Private Sub mnudatalapresep_Click() frmlapresep.Show frmutama.Visible = False End Sub Private Sub mnudatalaptransaksi_Click() frmlaptransaksi.Show frmutama.Visible = False End Sub Private Sub mnudataobat_Click() frmobat.Show frmutama.Visible = False End Sub Private Sub mnudatapasien_Click() frmpasien.Show frmutama.Visible = False End Sub Private Sub mnudataresep_Click() frmresep.Show frmutama.Visible = False End Sub Private Sub mnudatatransaksidiagnosa_Click() frmtransaksi.Show frmutama.Visible = False End Sub Private Sub mnuganti_Click() frmganti.Show frmutama.Visible = False End Sub Private Sub mnukeluar_Click() X = MsgBox("Yakin Ingin Keluar?", vbQuestion + vbYesNo, "Keluar?") If X = vbYes Then End Unload Me Else frmutama.Show End If End Sub Private Sub mnulogoff_Click() X = MsgBox("Anda Yakin Ingin LogOff...???", vbOKCancel + vbQuestion, "LogOff") If X = vbOK Then frmutama.mnudatadokter.Enabled = False frmutama.mnudataobat.Enabled = False frmutama.mnudatadiagnosa.Enabled = False frmutama.mnudatapasien.Enabled = False frmutama.mnudataresep.Enabled = False frmutama.mnudatafaktur.Enabled = False frmutama.mnudatatransaksidiagnosa.Enabled = False frmutama.mnudafpasien.Enabled = False frmutama.mnudafdokter.Enabled = False frmutama.mnudafobat.Enabled = False frmutama.mnudafdiagnosa.Enabled = False frmutama.mnudatalapresep.Enabled = False frmutama.mnudatalapfaktur.Enabled = False frmutama.mnudatalaptransaksi.Enabled = False frmutama.mnutambah.Enabled = False 'frmutama.Visible = False pasword.Visible = True pasword.Enabled = True pasword.SetFocus Else frmutama.SetFocus End If End Sub Private Sub mnutambah_Click() frmuser.Show frmutama.Visible = False End Sub Private Sub Timer1_Timer() hari = Format(Date, "w") Select Case hari Case 1: hr = "Minggu, " Case 2: hr = "Senin, " Case 3: hr = "Selasa, " Case 4: hr = "Rabu, " Case 5: hr = "Kamis, " Case 6: hr = "Jumat, " Case 7: hr = "Sabtu, " End Select bulan = Format(Date, "mm") Select Case bulan Case 1: bln = "Januari" Case 2: bln = "Februari" Case 3: bln = "Maret" Case 4: bln = "April" Case 5: bln = "Mei" Case 6: bln = "Juni" Case 7: bln = "Juli" Case 8: bln = "Agustus" Case 9: bln = "September" Case 10: bln = "Oktober" Case 11: bln = "November" Case 12: bln = "Desember" End Select SB.Panels(2) = hr + Format(Date, "dd") + " " + bln + " " + Format(Date, "yyyy") SB.Panels(3) = Format(Time(), "hh:mm:ss") End Sub Private Sub Timer2_Timer() lblJudul.Left = lblJudul.Left - 30 If lblJudul.Left = -9000 Then lblJudul.Left = 9000 lblJudul.Left = lblJudul.Left - 30 End If 121 End Sub Private Sub Timer3_Timer() n = n + 100 AA = "Aplikasi Pelayanan Kesehatan" frmutama.Caption = Left(AA, n) If n = 123 Then n=1 End If End Sub Private Sub Timer4_Timer() DTPicker1 = Time End Sub 3. Coding Pasien Dim conn As New ADODB.Connection Dim rs As New ADODB.Recordset Private Sub cmdcetak_Click() idpasien = InputBox("Masukkan ID pasien!", "ID pasien") dtenv.cetak_kartu idpasien rptkartupasien.Refresh rptkartupasien.Show dtenv.rscetak_kartu.Close End Sub Private Sub cmdbatal_Click() bersih tidaksiap End Sub Private Sub cmdhapus_Click() Dim sql As String X = MsgBox("Apakah Data Ingin Dihapus?", vbYesNo + vbExclamation, "Hapus Data") If X = vbYes Then sql = " SELECT * FROM resep " & _ " WHERE id_pasien='" & txtidpasien & "'" Set rs = conn.Execute(sql) If Not rs.EOF Then MsgBox "Data Pasien Ini Telah Masuk Resep" + Chr(13), vbCritical + vbOKOnly, "FATAL ERROR" Else sql = " DELETE * FROM pasien " & _ " WHERE id_pasien='" & txtidpasien & "'" conn.Execute (sql) MsgBox "Data Sudah Dihapus", vbInformation, "Hapus Data" bersih tidaksiap Adodc1.Refresh End If Else txtnmpasien.SetFocus End If End Sub Private Sub cmdkeluar_Click() X = MsgBox("Yakin Ingin Keluar?", vbQuestion + vbYesNo, "Keluar?") If X = vbYes Then End Unload Me Else frmpasien.Show End If End Sub Private Sub cmdkembali_Click() frmutama.Show Unload Me End Sub Private Sub cmdrefresh_Click() Adodc1.Refresh End Sub Private Sub cmdsimpan_Click() If Len(txtidpasien.Text) = 0 Then MsgBox "ID Pasien Belum Diisi", vbInformation, "ID Pasien" txtidpasien.SetFocus Exit Sub ElseIf Len(txtnmpasien.Text) = 0 Then MsgBox "Nama Pasien Belum Diisi", vbInformation, "Nama Pasien" txtnmpasien.SetFocus Exit Sub ElseIf Len(txtalamat.Text) = 0 Then MsgBox "Alamat Belum Diisi", vbInformation, "Alamat" txtalamat.SetFocus Exit Sub ElseIf Len(txttelepon.Text) = 0 Then MsgBox "Telepon Belum Diisi", vbInformation, "Telepon" txttelepon.SetFocus Exit Sub ElseIf Len(txtjenkel.Text) = 0 Then MsgBox "Jenis Kelamin Belum Diisi", vbInformation, "Jenis Kelamin" txtjenkel.SetFocus Exit Sub End If Dim sql As String sql = "SELECT * FROM pasien " & _ "WHERE id_pasien='" & txtidpasien & "'" Set rs = conn.Execute(sql) If Not rs.EOF Then MsgBox "ID Pasien Sudah Ada", vbCritical + vbOKOnly, "Duplikat" Else txttgllahir.Text = DTPicker1.Value X = MsgBox("Data yang akan masuk sebagai berikut:" + Chr(13) + _ "ID Pasien : " + txtidpasien.Text + Chr(13) + _ "Nama Pasien : " + txtnmpasien.Text + Chr(13) + _ "Alamat: " + txtalamat.Text + Chr(13) + _ "Jenis Kelamin: " + txtjenkel.Text + Chr(13) + _ "Tanggal Lahir : " + txttgllahir.Text + Chr(13) + _ "Telepon : " + txttelepon.Text + Chr(13), vbYesNo, "Konfirmasi") If X = vbYes Then sql = "INSERT INTO pasien (id_pasien,nama_pasien,alamat,tanggal_lahir,telepon,jenkel)" & _ "VALUES('" & txtidpasien & "','" & txtnmpasien & "','" & txtalamat & "'," & _ "'" & DTPicker1.Value & "','" & txttelepon & "','" & txtjenkel & "')" 122 conn.Execute (sql) MsgBox "Data Sudah Masuk", vbInformation, "Data Masuk" bersih tidaksiap Else txtidpasien.SetFocus End If End If Adodc1.Refresh rs.Close End Sub Private Sub cmdubah_Click() If Len(txtidpasien.Text) = 0 Then MsgBox "ID Pasien Belum Diisi", vbInformation, "ID Pasien" txtidpasien.SetFocus Exit Sub ElseIf Len(txtnmpasien.Text) = 0 Then MsgBox "Nama Pasien Belum Diisi", vbInformation, "Nama Pasien" txtnmpasien.SetFocus Exit Sub ElseIf Len(txtalamat.Text) = 0 Then MsgBox "Alamat Belum Diisi", vbInformation, "Alamat" txtalamat.SetFocus Exit Sub ElseIf Len(txttelepon.Text) = 0 Then MsgBox "Telepon Belum Diisi", vbInformation, "Telepon" txttelepon.SetFocus Exit Sub ElseIf Len(txtjenkel.Text) = 0 Then MsgBox "Jenis Kelamin Belum Diisi", vbInformation, "Jenis Kelamin" txtjenkel.SetFocus Exit Sub End If X = MsgBox("Ubah Data?", vbYesNo + vbExclamation, "Ubah Data") If X = vbYes Then Dim sql As String sql = " UPDATE pasien SET " & _ " nama_pasien='" & txtnmpasien.Text & "'," & _ " alamat='" & txtalamat.Text & "'," & _ " jenkel='" & txtjenkel.Text & "'," & _ " tanggal_lahir='" & DTPicker1.Value & "'," & _ " telepon='" & txttelepon.Text & "'" & _ " WHERE id_pasien='" & txtidpasien.Text & "'" conn.Execute (sql) MsgBox "Data Sudah Diubah", vbInformation, "Ubah Data" bersih tidaksiap Adodc1.Refresh Else txtnmpasien.SetFocus End If End Sub Private Sub Form_Activate() bersih tidaksiap End Sub Private Sub Form_Load() Set conn = New ADODB.Connection conn.Open "tugasakhir" DTPicker1 = Date End Sub Private Sub Form_Unload(Cancel As Integer) conn.Close Set conn = Nothing End Sub Private Sub optid_Click() Dim sql As String If optid.Value = True Then X = InputBox("Masukkan ID Pasien Yang Dicari") sql = " SELECT * FROM pasien " & _ " WHERE id_pasien like '%" & X & "%'" Set rs = conn.Execute(sql) If Not rs.EOF Then Adodc2.RecordSource = sql Adodc2.Refresh DataGrid2.Visible = True Else MsgBox "pasien Belum terdaftar", vbInformation, "ID Pasien" End If End If optid.Value = False End Sub Private Sub optnama_Click() Dim sql As String If optnama.Value = True Then X = InputBox("Masukkan Nama Pasien Yang Dicari") sql = " SELECT * FROM pasien " & _ " WHERE nama_pasien like '%" & X & "%'" Set rs = conn.Execute(sql) If Not rs.EOF Then Adodc2.RecordSource = sql Adodc2.Refresh DataGrid2.Visible = True Else MsgBox "Pasien belum terdaftar", vbInformation, "Nama Pasien" End If End If optnama.Value = False End Sub Private Sub Timer1_Timer() txttgl.Text = Date txtjam.Text = Time End Sub Sub bersih() txtidpasien.Text = "" 123 txtnmpasien.Text = "" txtalamat.Text = "" txttelepon.Text = "" txtidpasien.Enabled = True txtidpasien.SetFocus End Sub Sub tidaksiap() cmdsimpan.Enabled = False cmdubah.Enabled = False cmdhapus.Enabled = False txtnmpasien.Enabled = False txtalamat.Enabled = False txttelepon.Enabled = False End Sub Sub siap() txtnmpasien.Text = "" txtalamat.Text = "" txttelepon.Text = "" txtnmpasien.SetFocus End Sub Private Sub txtalamat_KeyPress(KeyAscii As Integer) KeyAscii = Asc(UCase(Chr(KeyAscii))) If KeyAscii = 13 Then If Len(txtalamat.Text) = 0 Then MsgBox "Alamat Pasien Harus Diisi", vbCritical, "Alamat Pasien" Else txttelepon.Enabled = True txttelepon.SetFocus End If End If End Sub Private Sub txtidpasien_KeyPress(KeyAscii As Integer) KeyAscii = Asc(UCase(Chr(KeyAscii))) If KeyAscii = 13 Then If Len(txtidpasien.Text) = 0 Then MsgBox "ID Pasien Belum Diisi", vbInformation, "ID Pasien" Else Dim sql As String sql = "SELECT * FROM pasien " & _ "WHERE id_pasien='" & txtidpasien & "'" Set rs = conn.Execute(sql) If Not rs.EOF Then txtnmpasien = rs.Fields("nama_pasien") txtalamat = rs.Fields("alamat") txttelepon = rs.Fields("telepon") DTPicker1.Value = rs.Fields("tanggal_lahir") txtjenkel = rs.Fields("jenkel") cmdsimpan.Enabled = False cmdubah.Enabled = True cmdhapus.Enabled = True txtnmpasien.Enabled = True txtalamat.Enabled = True txttelepon.Enabled = True DTPicker1.Enabled = True txtidpasien.Enabled = False txtnmpasien.SetFocus Else cmdsimpan.Enabled = True cmdubah.Enabled = False cmdhapus.Enabled = False txtnmpasien.Enabled = True txtalamat.Enabled = True txttelepon.Enabled = True DTPicker1.Enabled = True Call siap End If End If End If End Sub Private Sub txtnmpasien_KeyPress(KeyAscii As Integer) KeyAscii = Asc(UCase(Chr(KeyAscii))) If KeyAscii = 13 Then If Len(txtnmpasien.Text) = 0 Then MsgBox "Nama Pasien Harus Diisi", vbCritical, "Nama Pasien" Else txtalamat.SetFocus End If End If End Sub Private Sub txttelepon_KeyPress(KeyAscii As Integer) KeyAscii = Asc(UCase(Chr(KeyAscii))) If KeyAscii = 13 Then If Len(txttelepon.Text) = 0 Then MsgBox "Telepon Pasien Harus Diisi", vbCritical, "Telepon Pasien" Else DTPicker1.Enabled = True DTPicker1.SetFocus End If End If End Sub 4. Coding Obat Dim conn As New ADODB.Connection Dim rs As New ADODB.Recordset Private Sub cmdkeluar_Click() X = MsgBox("Yakin Ingin Keluar?", vbQuestion + vbYesNo, "Keluar?") If X = vbYes Then End Unload Me Else frmobat.Show End If End Sub Private Sub cmdkembali_Click() 124 frmutama.Show Unload Me End Sub Private Sub cmdbatal_Click() bersih tidaksiap End Sub Private Sub cmdhapus_Click() Dim sql As String X = MsgBox("Apakah Data Ingin Dihapus?", vbYesNo + vbExclamation, "Hapus Data") If X = vbYes Then sql = " SELECT * FROM detil_resep " & _ " WHERE kd_obat='" & txtkdobat & "'" Set rs = conn.Execute(sql) If Not rs.EOF Then MsgBox "Data Obat Ini Telah Masuk Resep" + Chr(13), vbCritical + vbOKOnly, "FATAL ERROR" Else sql = " DELETE * FROM obat " & _ " WHERE kd_obat='" & txtkdobat & "'" conn.Execute (sql) MsgBox "Data Sudah Dihapus", vbInformation, "Hapus Data" bersih tidaksiap Adodc1.Refresh End If Else txtnmobat.SetFocus End If End Sub Private Sub cmdrefresh_Click() Adodc1.Refresh End Sub Private Sub cmdsimpan_Click() If Len(txtkdobat.Text) = 0 Then MsgBox "ID Obat Belum Diisi", vbInformation, "ID Obat" txtkdobat.SetFocus Exit Sub ElseIf Len(txtnmobat.Text) = 0 Then MsgBox "Nama Obat Belum Diisi", vbInformation, "Nama Obat" txtnmobat.SetFocus Exit Sub ElseIf Len(txtjenis.Text) = 0 Then MsgBox "Jenis Obat Belum Diisi", vbInformation, "Jenis Obat" txtjenis.SetFocus Exit Sub ElseIf Len(txtharga.Text) = 0 Then MsgBox "Harga Obat Belum Diisi", vbInformation, "Harga Obat" txtharga.SetFocus Exit Sub End If Dim sql As String sql = "SELECT * FROM obat " & _ "WHERE kd_obat='" & txtkdobat & "'" Set rs = conn.Execute(sql) If Not rs.EOF Then MsgBox "ID Obat Sudah Ada", vbCritical + vbOKOnly, "Duplikat" Else X = MsgBox("Data yang akan masuk sebagai berikut:" + Chr(13) + _ "ID Obat : " + txtkdobat.Text + Chr(13) + _ "Nama Obat : " + txtnmobat.Text + Chr(13) + _ "Jenis Obat : " + txtjenis.Text + Chr(13) + _ "Harga Obat : " + txtharga.Text + Chr(13), vbYesNo, "Konfirmasi") If X = vbYes Then sql = "INSERT INTO obat (kd_obat,nama_obat,jenis_obat,harga)" & _ "VALUES('" & txtkdobat & "','" & txtnmobat & "','" & txtjenis & "'," & _ "'" & txtharga & "')" conn.Execute (sql) MsgBox "Data Sudah Masuk", vbInformation, "Data Masuk" bersih tidaksiap Else txtkdobat.SetFocus End If End If Adodc1.Refresh rs.Close End Sub Private Sub cmdubah_Click() If Len(txtkdobat.Text) = 0 Then MsgBox "ID Obat Belum Diisi", vbInformation, "ID Obat" txtkdobat.SetFocus Exit Sub ElseIf Len(txtnmobat.Text) = 0 Then MsgBox "Nama Obat Belum Diisi", vbInformation, "Nama Obat" txtnmobat.SetFocus Exit Sub ElseIf Len(txtjenis.Text) = 0 Then MsgBox "Jenis Obat Belum Diisi", vbInformation, "Jenis Obat" txtjenis.SetFocus Exit Sub ElseIf Len(txtharga.Text) = 0 Then MsgBox "Harga Obat Belum Diisi", vbInformation, "Harga Obat" txtharga.SetFocus Exit Sub End If X = MsgBox("Ubah Data?", vbYesNo + vbExclamation, "Ubah Data") If X = vbYes Then Dim sql As String sql = " UPDATE obat SET " & _ " nama_obat='" & txtnmobat.Text & "'," & _ " jenis_obat='" & txtjenis.Text & "'," & _ " harga='" & txtharga.Text & "'" & _ " WHERE kd_obat='" & txtkdobat.Text & "'" conn.Execute (sql) MsgBox "Data Sudah Diubah", vbInformation, "Ubah Data" bersih tidaksiap Adodc1.Refresh Else txtnmobat.SetFocus End If 125 End Sub Private Sub Form_Activate() bersih tidaksiap End Sub Private Sub Form_Load() Set conn = New ADODB.Connection conn.Open "tugasakhir" End Sub Private Sub Form_Unload(Cancel As Integer) conn.Close Set conn = Nothing End Sub Private Sub Timer1_Timer() txttgl.Text = Date txtjam.Text = Time End Sub Sub bersih() txtkdobat.Text = "" txtnmobat.Text = "" txtjenis.Text = "" txtharga.Text = "" txtkdobat.Enabled = True txtkdobat.SetFocus End Sub Sub tidaksiap() cmdsimpan.Enabled = False cmdubah.Enabled = False cmdhapus.Enabled = False txtnmobat.Enabled = False txtjenis.Enabled = False txtharga.Enabled = False End Sub Sub siap() txtnmobat.Text = "" txtjenis.Text = "" txtharga.Text = "" txtnmobat.SetFocus End Sub Private Sub txtjenis_KeyPress(KeyAscii As Integer) KeyAscii = Asc(UCase(Chr(KeyAscii))) If KeyAscii = 13 Then If Len(txtjenis.Text) = 0 Then MsgBox "Jenis Obat Harus Diisi", vbCritical, "Jenis Obat" Else txtharga.SetFocus End If End If End Sub Private Sub txtkdobat_KeyPress(KeyAscii As Integer) KeyAscii = Asc(UCase(Chr(KeyAscii))) If KeyAscii = 13 Then If Len(txtkdobat.Text) = 0 Then MsgBox "ID Obat Belum Diisi", vbInformation, "ID Obat" Else Dim sql As String sql = "SELECT * FROM obat " & _ "WHERE kd_obat='" & txtkdobat & "'" Set rs = conn.Execute(sql) If Not rs.EOF Then txtnmobat = rs.Fields("nama_obat") txtjenis = rs.Fields("jenis_obat") txtharga = rs.Fields("harga") cmdsimpan.Enabled = False cmdubah.Enabled = True cmdhapus.Enabled = True txtnmobat.Enabled = True txtjenis.Enabled = True txtharga.Enabled = True txtkdobat.Enabled = False txtnmobat.SetFocus Else cmdsimpan.Enabled = True cmdubah.Enabled = False cmdhapus.Enabled = False txtnmobat.Enabled = True txtjenis.Enabled = True txtharga.Enabled = True siap End If End If End If End Sub Private Sub txtnmobat_KeyPress(KeyAscii As Integer) KeyAscii = Asc(UCase(Chr(KeyAscii))) If KeyAscii = 13 Then If Len(txtnmobat.Text) = 0 Then MsgBox "Nama Obat Harus Diisi", vbCritical, "Nama Obat" Else txtjenis.SetFocus End If End If End Sub Private Sub txtharga_KeyPress(KeyAscii As Integer) KeyAscii = Asc(UCase(Chr(KeyAscii))) If KeyAscii = 13 Then If Len(txtharga.Text) = 0 Then MsgBox "Harga Obat Harus Diisi", vbCritical, "Harga Obat" Else If cmdsimpan.Enabled = True Then cmdsimpan.SetFocus Else 126 cmdubah.SetFocus End If End If End If If Not (KeyAscii >= Asc("0") And KeyAscii <= Asc("9") Or KeyAscii = vbKeyBack) Then Beep KeyAscii = 0 End If End Sub 5. Coding Diagnosa Dim conn As New ADODB.Connection Dim rs As New ADODB.Recordset Private Sub cmdkeluar_Click() X = MsgBox("Yakin Ingin Keluar?", vbQuestion + vbYesNo, "Keluar?") If X = vbYes Then End Unload Me Else frmdiagnosa.Show End If End Sub Private Sub cmdkembali_Click() frmutama.Show Unload Me End Sub Private Sub cmdbatal_Click() bersih tidaksiap End Sub Private Sub cmdhapus_Click() Dim sql As String X = MsgBox("Apakah Data Ingin Dihapus?", vbYesNo + vbExclamation, "Hapus Data") If X = vbYes Then sql = " SELECT * FROM detil_diagnosa " & _ " WHERE id_diagnosa='" & txtiddiagnosa & "'" Set rs = conn.Execute(sql) If Not rs.EOF Then MsgBox "Data Diagnosa Ini Telah Masuk Transaksi" + Chr(13), vbCritical + vbOKOnly, "FATAL ERROR" Else sql = " DELETE * FROM diagnosa " & _ " WHERE id_diagnosa='" & txtiddiagnosa & "'" conn.Execute (sql) MsgBox "Data Sudah Dihapus", vbInformation, "Hapus Data" bersih tidaksiap Adodc1.Refresh End If Else txtnmdiagnosa.SetFocus End If End Sub Private Sub cmdrefresh_Click() Adodc1.Refresh End Sub Private Sub cmdsimpan_Click() If Len(txtiddiagnosa.Text) = 0 Then MsgBox "ID Obat Belum Diisi", vbInformation, "ID Obat" txtiddiagnosa.SetFocus Exit Sub ElseIf Len(txtnmdiagnosa.Text) = 0 Then MsgBox "Nama Obat Belum Diisi", vbInformation, "Nama Obat" txtnmdiagnosa.SetFocus Exit Sub ElseIf Len(txtketerangan.Text) = 0 Then MsgBox "keterangan Obat Belum Diisi", vbInformation, "keterangan Obat" txtketerangan.SetFocus Exit Sub ElseIf Len(txtharga.Text) = 0 Then MsgBox "Harga Obat Belum Diisi", vbInformation, "Harga Obat" txtharga.SetFocus Exit Sub End If Dim sql As String sql = "SELECT * FROM diagnosa " & _ "WHERE id_diagnosa='" & txtiddiagnosa & "'" Set rs = conn.Execute(sql) If Not rs.EOF Then MsgBox "ID diagnosa Sudah Ada", vbCritical + vbOKOnly, "Duplikat" Else X = MsgBox("Data yang akan masuk sebagai berikut:" + Chr(13) + _ "ID Obat : " + txtiddiagnosa.Text + Chr(13) + _ "Nama Obat : " + txtnmdiagnosa.Text + Chr(13) + _ "keterangan Obat : " + txtketerangan.Text + Chr(13) + _ "Harga : " + txtharga.Text + Chr(13), vbYesNo, "Konfirmasi") If X = vbYes Then sql = "INSERT INTO diagnosa (id_diagnosa,nama_diagnosa,keterangan,harga)" & _ "VALUES('" & txtiddiagnosa & "','" & txtnmdiagnosa & "','" & txtketerangan & "'," & _ "'" & txtharga & "')" conn.Execute (sql) MsgBox "Data Sudah Masuk", vbInformation, "Data Masuk" bersih tidaksiap Else txtiddiagnosa.SetFocus End If End If Adodc1.Refresh rs.Close End Sub Private Sub cmdubah_Click() If Len(txtiddiagnosa.Text) = 0 Then MsgBox "ID Obat Belum Diisi", vbInformation, "ID Obat" txtiddiagnosa.SetFocus Exit Sub ElseIf Len(txtnmdiagnosa.Text) = 0 Then MsgBox "Nama Obat Belum Diisi", vbInformation, "Nama Obat" txtnmdiagnosa.SetFocus Exit Sub 127 ElseIf Len(txtketerangan.Text) = 0 Then MsgBox "keterangan Obat Belum Diisi", vbInformation, "keterangan Obat" txtketerangan.SetFocus Exit Sub ElseIf Len(txtharga.Text) = 0 Then MsgBox "Harga Obat Belum Diisi", vbInformation, "Harga Obat" txtharga.SetFocus Exit Sub End If X = MsgBox("Ubah Data?", vbYesNo + vbExclamation, "Ubah Data") If X = vbYes Then Dim sql As String sql = " UPDATE diagnosa SET " & _ " nama_diagnosa='" & txtnmdiagnosa.Text & "'," & _ " keterangan='" & txtketerangan.Text & "'," & _ " harga='" & txtharga.Text & "'" & _ " WHERE id_diagnosa='" & txtiddiagnosa.Text & "'" conn.Execute (sql) MsgBox "Data Sudah Diubah", vbInformation, "Ubah Data" bersih tidaksiap Adodc1.Refresh Else txtnmdiagnosa.SetFocus End If End Sub Private Sub Form_Activate() bersih tidaksiap End Sub Private Sub Form_Load() Set conn = New ADODB.Connection conn.Open "tugasakhir" End Sub Private Sub Form_Unload(Cancel As Integer) conn.Close Set conn = Nothing End Sub Private Sub Timer1_Timer() txttgl.Text = Date txtjam.Text = Time End Sub Sub bersih() txtiddiagnosa.Text = "" txtnmdiagnosa.Text = "" txtharga.Text = "" txtketerangan.Text = "" txtiddiagnosa.Enabled = True txtiddiagnosa.SetFocus End Sub Sub tidaksiap() cmdsimpan.Enabled = False cmdubah.Enabled = False cmdhapus.Enabled = False txtketerangan.Enabled = False txtnmdiagnosa.Enabled = False txtharga.Enabled = False End Sub Sub siap() txtnmdiagnosa.Text = "" txtketerangan.Text = "" txtharga.Text = "" txtnmdiagnosa.SetFocus End Sub Private Sub txtketerangan_KeyPress(KeyAscii As Integer) KeyAscii = Asc(UCase(Chr(KeyAscii))) If KeyAscii = 13 Then If Len(txtketerangan.Text) = 0 Then MsgBox "keterangan diagnosa Harus Diisi", vbCritical, "keterangan diagnosa" Else If cmdsimpan.Enabled = True Then cmdsimpan.SetFocus Else cmdubah.Enabled = True cmdubah.SetFocus End If End If End If End Sub Private Sub txtiddiagnosa_KeyPress(KeyAscii As Integer) KeyAscii = Asc(UCase(Chr(KeyAscii))) If KeyAscii = 13 Then If Len(txtiddiagnosa.Text) = 0 Then MsgBox "ID diagnosa Belum Diisi", vbInformation, "ID diagnosa" Else Dim sql As String sql = "SELECT * FROM diagnosa " & _ "WHERE id_diagnosa='" & txtiddiagnosa & "'" Set rs = conn.Execute(sql) If Not rs.EOF Then txtnmdiagnosa = rs.Fields("nama_diagnosa") txtketerangan = rs.Fields("keterangan") txtharga = rs.Fields("harga") cmdsimpan.Enabled = False cmdubah.Enabled = True cmdhapus.Enabled = True txtnmdiagnosa.Enabled = True txtketerangan.Enabled = True txtharga.Enabled = True txtiddiagnosa.Enabled = False txtnmdiagnosa.SetFocus Else cmdsimpan.Enabled = True cmdubah.Enabled = False cmdhapus.Enabled = False txtnmdiagnosa.Enabled = True 128 txtketerangan.Enabled = True txtharga.Enabled = True siap End If End If End If End Sub Private Sub txtnmdiagnosa_KeyPress(KeyAscii As Integer) KeyAscii = Asc(UCase(Chr(KeyAscii))) If KeyAscii = 13 Then If Len(txtnmdiagnosa.Text) = 0 Then MsgBox "Nama diagnosa Harus Diisi", vbCritical, "Nama diagnosa" Else txtharga.Enabled = True txtharga.SetFocus End If End If End Sub Private Sub txtharga_KeyPress(KeyAscii As Integer) KeyAscii = Asc(UCase(Chr(KeyAscii))) If KeyAscii = 13 Then If Len(txtharga.Text) = 0 Then MsgBox "Harga Obat Harus Diisi", vbCritical, "Harga Obat" Else txtketerangan.Enabled = True txtketerangan.SetFocus End If End If If Not (KeyAscii >= Asc("0") And KeyAscii <= Asc("9") Or KeyAscii = vbKeyBack) Then Beep KeyAscii = 0 End If End Sub 6. Coding Dokter Dim conn As New ADODB.Connection Dim rs As New ADODB.Recordset Private Sub cmdkeluar_Click() X = MsgBox("Yakin Ingin Keluar?", vbQuestion + vbYesNo, "Keluar?") If X = vbYes Then End Unload Me Else frmdokter.Show End If End Sub Private Sub cmdkembali_Click() frmutama.Show Unload Me End Sub Private Sub cmdbatal_Click() bersih tidaksiap End Sub Private Sub cmdhapus_Click() Dim sql As String X = MsgBox("Apakah Data Ingin Dihapus?", vbYesNo + vbExclamation, "Hapus Data") If X = vbYes Then sql = " SELECT * FROM transaksi " & _ " WHERE id_dokter='" & txtiddokter & "'" Set rs = conn.Execute(sql) If Not rs.EOF Then MsgBox "Data Dokter Ini Telah Masuk Diagnosa" + Chr(13), vbCritical + vbOKOnly, "FATAL ERROR" Else sql = " DELETE * FROM dokter " & _ " WHERE id_dokter='" & txtiddokter & "'" conn.Execute (sql) MsgBox "Data Sudah Dihapus", vbInformation, "Hapus Data" bersih tidaksiap Adodc1.Refresh End If Else txtnmdokter.SetFocus End If End Sub Private Sub cmdrefresh_Click() Adodc1.Refresh End Sub Private Sub cmdsimpan_Click() If Len(txtiddokter.Text) = 0 Then MsgBox "ID Dokter Belum Diisi", vbInformation, "ID Dokter" txtiddokter.SetFocus Exit Sub ElseIf Len(txtnmdokter.Text) = 0 Then MsgBox "Nama Dokter Belum Diisi", vbInformation, "Nama Dokter" txtnmdokter.SetFocus Exit Sub ElseIf Len(txtalamat.Text) = 0 Then MsgBox "Alamat Belum Diisi", vbInformation, "Alamat" txtalamat.SetFocus Exit Sub ElseIf Len(txttelepon.Text) = 0 Then MsgBox "Telepon Belum Diisi", vbInformation, "Telepon" txttelepon.SetFocus Exit Sub ElseIf Len(txtspesialis.Text) = 0 Then MsgBox "Spesialis Belum Diisi", vbInformation, "Spesialis" txtspesialis.SetFocus Exit Sub End If Dim sql As String sql = "SELECT * FROM dokter " & _ "WHERE id_dokter='" & txtiddokter & "'" Set rs = conn.Execute(sql) If Not rs.EOF Then MsgBox "ID Dokter Sudah Ada", vbCritical + vbOKOnly, "Duplikat" 129 Else X = MsgBox("Data yang akan masuk sebagai berikut:" + Chr(13) + _ "ID Dokter : " + txtiddokter.Text + Chr(13) + _ "Nama Dokter : " + txtnmdokter.Text + Chr(13) + _ "Alamat : " + txtalamat.Text + Chr(13) + _ "Telepon : " + txttelepon.Text + Chr(13) + _ "Spesialis : " + txtspesialis.Text + Chr(13), vbYesNo, "Konfirmasi") If X = vbYes Then sql = "INSERT INTO dokter(id_dokter,nama_dokter,alamat,telepon,spesialis)" & _ "VALUES('" & txtiddokter & "','" & txtnmdokter & "','" & txtalamat & "'," & _ "'" & txttelepon & "','" & txtspesialis & "')" conn.Execute (sql) MsgBox "Data Sudah Masuk", vbInformation, "Data Masuk" bersih tidaksiap Else txtiddokter.SetFocus End If End If Adodc1.Refresh rs.Close End Sub Private Sub cmdubah_Click() If Len(txtiddokter.Text) = 0 Then MsgBox "ID Dokter Belum Diisi", vbInformation, "ID Dokter" txtiddokter.SetFocus Exit Sub ElseIf Len(txtnmdokter.Text) = 0 Then MsgBox "Nama Dokter Belum Diisi", vbInformation, "Nama Dokter" txtnmdokter.SetFocus Exit Sub ElseIf Len(txtalamat.Text) = 0 Then MsgBox "Alamat Belum Diisi", vbInformation, "Alamat" txtalamat.SetFocus Exit Sub ElseIf Len(txttelepon.Text) = 0 Then MsgBox "Telepon Belum Diisi", vbInformation, "Telepon" txttelepon.SetFocus Exit Sub ElseIf Len(txtspesialis.Text) = 0 Then MsgBox "Spesialis Belum Diisi", vbInformation, "Spesialis" txtspesialis.SetFocus Exit Sub End If X = MsgBox("Ubah Data?", vbYesNo + vbExclamation, "Ubah Data") If X = vbYes Then Dim sql As String sql = " UPDATE dokter SET " & _ " nama_dokter='" & txtnmdokter.Text & "'," & _ " alamat='" & txtalamat.Text & "'," & _ " telepon='" & txttelepon.Text & "'," & _ " spesialis='" & txtspesialis.Text & "'" & _ " WHERE id_dokter='" & txtiddokter.Text & "'" conn.Execute (sql) MsgBox "Data Sudah Diubah", vbInformation, "Ubah Data" bersih tidaksiap Adodc1.Refresh Else txtnmdokter.SetFocus End If End Sub Private Sub Form_Activate() bersih tidaksiap End Sub Private Sub Form_Load() Set conn = New ADODB.Connection conn.Open "tugasakhir" End Sub Private Sub Form_Unload(Cancel As Integer) conn.Close Set conn = Nothing End Sub Sub bersih() txtiddokter.Text = "" txtnmdokter.Text = "" txtalamat.Text = "" txttelepon.Text = "" txtspesialis.Text = "" txtiddokter.Enabled = True txtiddokter.SetFocus End Sub Sub tidaksiap() cmdsimpan.Enabled = False cmdubah.Enabled = False cmdhapus.Enabled = False txtnmdokter.Enabled = False txtalamat.Enabled = False txttelepon.Enabled = False txtspesialis.Enabled = False End Sub Sub siap() txtnmdokter.Text = "" txtalamat.Text = "" txttelepon.Text = "" txtspesialis.Text = "" txtnmdokter.SetFocus End Sub Private Sub optid_Click() Dim sql As String If optid.Value = True Then X = InputBox("Masukkan ID Dokter Yang Dicari") sql = " SELECT * FROM dokter " & _ " WHERE id_dokter like '%" & X & "%'" Set rs = conn.Execute(sql) If Not rs.EOF Then Adodc2.RecordSource = sql Adodc2.Refresh 130 DataGrid2.Visible = True Else MsgBox "Data Dokter tidak ada", vbInformation, "ID Dokter" End If End If optid.Value = False End Sub Private Sub optnama_Click() Dim sql As String If optnama.Value = True Then X = InputBox("Masukkan Nama Dokter Yang Dicari") sql = " SELECT * FROM dokter " & _ " WHERE nama_dokter like '%" & X & "%'" Set rs = conn.Execute(sql) If Not rs.EOF Then Adodc2.RecordSource = sql Adodc2.Refresh DataGrid2.Visible = True Else MsgBox "Data Dokter tidak ada", vbInformation, "Nama Dokter" End If End If optnama.Value = False End Sub Private Sub Timer1_Timer() txttgl.Text = Date txtjam.Text = Time End Sub Private Sub txtalamat_KeyPress(KeyAscii As Integer) KeyAscii = Asc(UCase(Chr(KeyAscii))) If KeyAscii = 13 Then If Len(txtalamat.Text) = 0 Then MsgBox "Alamat Harus Diisi", vbCritical, "Alamat" Else txttelepon.SetFocus End If End If End Sub Private Sub txtiddokter_KeyPress(KeyAscii As Integer) KeyAscii = Asc(UCase(Chr(KeyAscii))) If KeyAscii = 13 Then If Len(txtiddokter.Text) = 0 Then MsgBox "ID Dokter Belum Diisi", vbInformation, "ID Dokter" Else Dim sql As String sql = "SELECT * FROM dokter " & _ "WHERE id_dokter='" & txtiddokter & "'" Set rs = conn.Execute(sql) If Not rs.EOF Then txtnmdokter = rs.Fields("nama_dokter") txtalamat = rs.Fields("alamat") txttelepon = rs.Fields("telepon") txtspesialis = rs.Fields("spesialis") cmdsimpan.Enabled = False cmdubah.Enabled = True cmdhapus.Enabled = True txtnmdokter.Enabled = True txtalamat.Enabled = True txttelepon.Enabled = True txtspesialis.Enabled = True txtiddokter.Enabled = False txtnmdokter.SetFocus Else cmdsimpan.Enabled = True cmdubah.Enabled = False cmdhapus.Enabled = False txtnmdokter.Enabled = True txtalamat.Enabled = True txttelepon.Enabled = True txtspesialis.Enabled = True siap End If End If End If End Sub Private Sub txtnmdokter_KeyPress(KeyAscii As Integer) KeyAscii = Asc(UCase(Chr(KeyAscii))) If KeyAscii = 13 Then If Len(txtnmdokter.Text) = 0 Then MsgBox "Nama Dokter Harus Diisi", vbCritical, "Nama Dokter" Else txtalamat.SetFocus End If End If End Sub Private Sub txtspesialis_KeyPress(KeyAscii As Integer) KeyAscii = Asc(UCase(Chr(KeyAscii))) If KeyAscii = 13 Then If Len(txtspesialis.Text) = 0 Then MsgBox "Spesialis Harus Diisi", vbCritical, "Spesialis" Else If cmdsimpan.Enabled = True Then cmdsimpan.SetFocus Else cmdubah.SetFocus End If End If End If End Sub 131 Private Sub txttelepon_KeyPress(KeyAscii As Integer) KeyAscii = Asc(UCase(Chr(KeyAscii))) If KeyAscii = 13 Then If Len(txttelepon.Text) = 0 Then MsgBox "Telepon Harus Diisi", vbCritical, "Telepon" Else txtspesialis.SetFocus End If End If End Sub Sub verifikasi() If Len(txtiddokter.Text) = 0 Then MsgBox "ID Dokter Belum Diisi", vbInformation, "ID Dokter" txtiddokter.SetFocus Exit Sub ElseIf Len(txtnmdokter.Text) = 0 Then MsgBox "Nama Dokter Belum Diisi", vbInformation, "Nama Dokter" txtnmdokter.SetFocus Exit Sub ElseIf Len(txtalamat.Text) = 0 Then MsgBox "Alamat Belum Diisi", vbInformation, "Alamat" txtalamat.SetFocus Exit Sub ElseIf Len(txttelepon.Text) = 0 Then MsgBox "Telepon Belum Diisi", vbInformation, "Telepon" txttelepon.SetFocus Exit Sub ElseIf Len(txtspesialis.Text) = 0 Then MsgBox "Spesialis Belum Diisi", vbInformation, "Spesialis" txtspesialis.SetFocus Exit Sub End If End Sub 7. Coding Resep Dim conn As New ADODB.Connection Dim rs As New ADODB.Recordset Private Sub cmdbatal_Click() If cmdtambah.Enabled = True Then txtnmobat.Text = "" txtjenis.Text = "" txtwarna.Text = "" txthrg.Text = "" txtjml.Text = "" txtsub.Text = "" txtkdobat.Enabled = True txtkdobat.SetFocus Else bersih tidaksiap End If End Sub Private Sub cmdcetak_Click() If Len(txtnoresep.Text) = 0 Then MsgBox "Nomor Resep Masih Kosong", vbInformation, "Nomor Resep" txtnoresep.Enabled = True txtnoresep.SetFocus Exit Sub End If sql = " SELECT * FROM resep " & _ " WHERE no_resep='" & txtnoresep & "'" Set rs = conn.Execute(sql) If Not rs.EOF Then rptcetakresep.Sections("section4").Controls.Item("idresep").Caption = txtnoresep.Text rptcetakresep.Sections("section4").Controls.Item("tglresep").Caption = txttglresep rptcetakresep.Sections("section4").Controls.Item("nmpasien").Caption = txtnmpasien.Text rptcetakresep.Sections("section4").Controls.Item("alamat").Caption = txtalamat.Text rptcetakresep.Sections("section4").Controls.Item("idpasien").Caption = txtidpasien.Text dtenv.cetak_resep txtnoresep rptcetakresep.Refresh rptcetakresep.Show dtenv.rscetak_resep.Close txtnoresep.Text = "" txtidpasien.Text = "" txtnmpasien.Text = "" txtalamat.Text = "" DataGrid1.Visible = False Else MsgBox "Nomor Resep Tidak Ada", vbInformation, "Nomor Resep" txtnoresep.Enabled = True txtnoresep.SetFocus End If End Sub Private Sub cmdkeluar_Click() X = MsgBox("Yakin Ingin Keluar?", vbYesNo + vbQuestion, "Keluar") If X = vbYes Then End Unload Me Else frmresep.Show End If End Sub Private Sub cmdkembali_Click() frmutama.Show Unload Me End Sub Private Sub cmdrefresh_Click() Adodc1.Refresh Adodc2.Refresh End Sub Private Sub cmdselesai_Click() bersih DataGrid1.Visible = False cmdbatal.Enabled = True cmdkembali.Enabled = True cmdkeluar.Enabled = True cmdselesai.Enabled = False cmdtambah.Enabled = False End Sub 132 Private Sub cmdsimpan_Click() Dim sql As String If Len(txtnoresep.Text) = 0 Then MsgBox "Nomor Resep Masih Kosong", vbInformation, "Nomor Resep" txtnoresep.SetFocus Exit Sub ElseIf Len(txtnmpasien.Text) = 0 Then MsgBox "Identitas Pasien Belum Lengkap", vbInformation, "Identitas Pasien" txtidpasien.Enabled = True txtidpasien.SetFocus Exit Sub ElseIf Len(txtnmobat.Text) = 0 Then MsgBox "Data Obat Belum Lengkap", vbInformation, "Data Obat" txtkdobat.Enabled = True txtkdobat.SetFocus Exit Sub ElseIf Len(txtjml.Text) = 0 Then MsgBox "Jumlah Obat Belum Diisi", vbInformation, "Jumlah Obat" txtjml.SetFocus Exit Sub ElseIf txtsub.Text = "0" Then MsgBox "Sub Total Harga Masih Kosong", vbInformation, "Sub Total" txtjml.SetFocus Exit Sub End If sql = " SELECT * FROM resep " & _ " WHERE no_resep='" & txtnoresep & "'" Set rs = conn.Execute(sql) If Not rs.EOF Then MsgBox "Nomor Resep Sudah Terdaftar", vbCritical + vbOKOnly, "Nomor Resep" txtnoresep.Enabled = True txtnoresep.SetFocus Else txthartot.Text = txtsub.Text sql = " INSERT INTO resep (no_resep,tanggal_resep,id_pasien,jumlah_bayar) " & _ " VALUES('" & txtnoresep & "','" & DTPicker1 & "'," & _ " '" & txtidpasien & "','" & Val(txthartot.Text) & "')" conn.Execute (sql) sql = " INSERT INTO detil_resep(no_resep,kd_obat,jumlah_obat,jumlah_harga) " & _ " VALUES('" & txtnoresep & "','" & txtkdobat & "'," & _ " " & Val(txtjml) & "," & Val(txtsub) & ")" conn.Execute (sql) txtnoresep.Enabled = False txtidpasien.Enabled = False txtkdobat.Enabled = True cmdsimpan.Enabled = False cmdtambah.Enabled = True cmdkembali.Enabled = False cmdkeluar.Enabled = False cmdselesai.Enabled = True isilagi sql = " SELECT * FROM vwresep " & _ " WHERE no_resep='" & txtnoresep & "'" Adodc1.RecordSource = sql Adodc1.Refresh DataGrid1.Visible = True End If End Sub Private Sub cmdtambah_Click() Dim sql As String If Len(txtnmobat.Text) = 0 Then MsgBox "Data Obat Belum Lengkap", vbInformation, "Data Obat" txtkdobat.Enabled = True txtkdobat.SetFocus Exit Sub ElseIf Len(txtjml.Text) = 0 Then MsgBox "Jumlah Obat Belum Diisi", vbInformation, "Jumlah Obat" txtjml.SetFocus Exit Sub ElseIf txtsub.Text = "0" Then MsgBox "Sub Total Harga Masih Kosong", vbInformation, "Sub Total" txtjml.SetFocus Exit Sub End If sql = " SELECT * FROM detil_resep " & _ " WHERE no_resep='" & txtnoresep & "'" & _ " AND kd_obat='" & txtkdobat & "'" Set rs = conn.Execute(sql) If Not rs.EOF Then MsgBox "Obat Sudah Ada Di Resep Ini", vbInformation, "Duplikat" isilagi Else a = Val(txtsub) b = Val(txthartot) c=a+b txthartot = a + b sql = " UPDATE resep SET " & _ " jumlah_bayar='" & Val(txthartot.Text) & "'" & _ " WHERE no_resep='" & txtnoresep.Text & "'" conn.Execute (sql) sql = " INSERT INTO detil_resep(no_resep,kd_obat,jumlah_obat,jumlah_harga) " & _ " VALUES('" & txtnoresep & "','" & txtkdobat & "'," & _ " " & Val(txtjml) & "," & Val(txtsub) & ")" conn.Execute (sql) isilagi Adodc1.Refresh Adodc2.Refresh End If End Sub Private Sub Form_Activate() bersih tidaksiap End Sub Private Sub Form_Load() 133 Set conn = New ADODB.Connection conn.Open "tugasakhir" DTPicker1 = Date loadidobat End Sub Private Sub Form_Unload(Cancel As Integer) conn.Close Set conn = Nothing End Sub Private Sub Timer1_Timer() txttgl.Text = Date txtjam.Text = Time DTPicker1 = Date End Sub Private Sub txtkdobat_Click() Dim sql As String sql = " SELECT * FROM obat " & _ " WHERE kd_obat='" & txtkdobat & "'" Set rs = conn.Execute(sql) If Not rs.EOF Then txtnmobat = rs.Fields("nama_obat") txtjenis = rs.Fields("jenis_obat") txthrg = rs.Fields("harga") txtjml.Enabled = True txtjml.SetFocus Else MsgBox "ID Obat Tidak Terdaftar!" + Chr(13) + "Silahkan Daftarkan Terlebih Dahulu", vbOKOnly + vbCritical, "ID Obat" txtkdobat.SetFocus End If End Sub Private Sub txtkdobat_Scroll() Dim sql As String KeyAscii = Asc(UCase(Chr(KeyAscii))) If KeyAscii = 13 Then If Len(txtkdobat.Text) = 0 Then MsgBox "ID Obat Masih Kosong", vbInformation, "ID Obat" Else sql = " SELECT * FROM obat " & _ " WHERE kd_obat='" & txtkdobat & "'" Set rs = conn.Execute(sql) If Not rs.EOF Then txtnmobat = rs.Fields("nama_obat") txtjenis = rs.Fields("jenis_obat") txthrg = rs.Fields("harga") txtkdobat.Enabled = False txtjml.Enabled = True txtjml.SetFocus Else MsgBox "ID Obat Tidak Terdaftar!" + Chr(13) + "Silahkan Daftarkan Terlebih Dahulu", vbOKOnly + vbCritical, "ID Obat" txtkdobat.SetFocus End If End If End If End Sub Private Sub txtjml_Change() If Len(txtjml.Text) = 0 Then txtsub.Text = "" Else txtsub.Text = Val(txthrg.Text) * Val(txtjml.Text) End If End Sub Private Sub txtjml_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then If cmdtambah.Enabled = True Then cmdtambah.SetFocus Else cmdsimpan.SetFocus End If End If If Not (KeyAscii >= Asc("0") And KeyAscii <= Asc("9") Or KeyAscii = vbKeyBack) Then Beep KeyAscii = 0 End If End Sub Private Sub txtkdobat_KeyPress(KeyAscii As Integer) Dim sql As String KeyAscii = Asc(UCase(Chr(KeyAscii))) If KeyAscii = 13 Then If Len(txtkdobat.Text) = 0 Then MsgBox "ID Obat Masih Kosong", vbInformation, "ID Obat" Else sql = " SELECT * FROM obat " & _ " WHERE kd_obat='" & txtkdobat & "'" Set rs = conn.Execute(sql) If Not rs.EOF Then txtnmobat = rs.Fields("nama_obat") txtjenis = rs.Fields("jenis_obat") txthrg = rs.Fields("harga") txtjml.Enabled = True txtjml.SetFocus Else MsgBox "ID Obat Tidak Terdaftar!" + Chr(13) + "Silahkan Daftarkan Terlebih Dahulu", vbOKOnly + vbCritical, "ID Obat" txtkdobat.SetFocus End If End If End If End Sub Private Sub txtidpasien_KeyPress(KeyAscii As Integer) Dim sql As String KeyAscii = Asc(UCase(Chr(KeyAscii))) 134 If KeyAscii = 13 Then If Len(txtidpasien.Text) = 0 Then MsgBox "ID Pasien Masih Kosong", vbInformation, "ID Pasien" txtidpasien.SetFocus Else sql = " SELECT * FROM pasien " & _ " WHERE id_pasien = '" & txtidpasien & "'" Set rs = conn.Execute(sql) If Not rs.EOF Then txtnmpasien = rs.Fields("nama_pasien") txtalamat = rs.Fields("alamat") txtidpasien.Enabled = False txtkdobat.Enabled = True txtkdobat.SetFocus Else MsgBox "ID Pasien Tidak Terdaftar!" + Chr(13) + "Silahkan Daftarkan Pasien Terlebih Dahulu", vbOKOnly + vbCritical, "ID Pasien" txtidpasien.Text = "" txtidpasien.SetFocus End If End If End If End Sub Sub bersih() txtnoresep.Text = "" txtidpasien.Text = "" txtnmpasien.Text = "" txtalamat.Text = "" txtnmobat.Text = "" txtjenis.Text = "" txthrg.Text = "" txtjml.Text = "" txtsub.Text = "" txthartot.Text = "" DataGrid1.Visible = False txtnoresep.Enabled = True txtnoresep.SetFocus End Sub Private Sub txtnoresep_KeyPress(KeyAscii As Integer) Dim sql As String If KeyAscii = 13 Then If Len(txtnoresep.Text) = 0 Then MsgBox "Nomor Resep Masih Kosong", vbInformation, "Nomor Resep" txtnoresep.SetFocus Else sql = " SELECT * FROM resep " & _ " WHERE no_resep='" & txtnoresep.Text & "'" Set rs = conn.Execute(sql) If Not rs.EOF Then txtidpasien = rs.Fields("id_pasien") txttglresep = rs.Fields("tanggal_resep") txtnoresep.Enabled = False sql = " SELECT * FROM pasien " & _ " WHERE id_pasien='" & txtidpasien & "'" Set rs = conn.Execute(sql) cmdhapus.Enabled = True If Not rs.EOF Then txtnmpasien = rs.Fields("nama_pasien") txtalamat = rs.Fields("alamat") End If sql = " SELECT * FROM vwresep " & _ " WHERE no_resep='" & txtnoresep & "'" Adodc1.RecordSource = sql Adodc1.Refresh DataGrid1.Visible = True Else cmdsimpan.Enabled = True txtidpasien.Enabled = True txtidpasien.Text = "" txtnmpasien.Text = "" txtalamat.Text = "" txtidpasien.SetFocus End If End If End If If Not (KeyAscii >= Asc("0") And KeyAscii <= Asc("9") Or KeyAscii = vbKeyBack) Then Beep KeyAscii = 0 End If End Sub Sub tidaksiap() cmdsimpan.Enabled = False cmdtambah.Enabled = False cmdhapus.Enabled = False cmdselesai.Enabled = False txtidpasien.Enabled = False txtkdobat.Enabled = False txtjml.Enabled = False txtkdobat.Enabled = False End Sub Sub isilagi() txtnmobat.Text = "" txtjenis.Text = "" txthrg.Text = "" txtsub.Text = "" txtjml.Text = "" txtkdobat.Enabled = True txtkdobat.SetFocus End Sub Sub loadidobat() Dim sql As String sql = " SELECT * FROM obat ORDER by kd_obat " Adodc3.RecordSource = sql Adodc3.Refresh If Adodc3.Recordset.RecordCount > 0 Then Adodc3.Recordset.MoveFirst While Not Adodc3.Recordset.EOF txtkdobat.AddItem (Adodc3.Recordset.Fields("kd_obat").Value) Adodc3.Recordset.MoveNext Wend End If End Sub 8. Coding Faktur Dim conn As New ADODB.Connection 135 Dim rs As New ADODB.Recordset Private Sub cmdbatal_Click() bersih tidaksiap End Sub Private Sub cmdcetak_Click() Dim sql As String nomorfaktur = InputBox("Masukkan Nomor faktur!", "Nomor faktur") sql = " SELECT * FROM faktur " & _ " WHERE no_faktur='" & nomorfaktur & "'" Set rs = conn.Execute(sql) If Not rs.EOF Then txtnofaktur = rs.Fields("no_faktur") txttglfaktur = rs.Fields("tanggal_faktur") txtnoresep = rs.Fields("no_resep") sql = " SELECT * FROM resep " & _ " WHERE no_resep='" & txtnoresep & "'" Set rs = conn.Execute(sql) If Not rs.EOF Then txtidpasien = rs.Fields("id_pasien") End If sql = " SELECT * FROM pasien " & _ " WHERE id_pasien='" & txtidpasien & "'" Set rs = conn.Execute(sql) If Not rs.EOF Then txtnmpasien = rs.Fields("nama_pasien") txtalamat = rs.Fields("alamat") End If rptcetakfaktur.Sections("section4").Controls.Item("idresep").Caption = txtnoresep.Text rptcetakfaktur.Sections("section4").Controls.Item("idfaktur").Caption = txtnofaktur.Text rptcetakfaktur.Sections("section4").Controls.Item("tglfaktur").Caption = txttglfaktur rptcetakfaktur.Sections("section4").Controls.Item("idresep").Caption = txtnoresep.Text rptcetakfaktur.Sections("section4").Controls.Item("nmpasien").Caption = txtnmpasien.Text rptcetakfaktur.Sections("section4").Controls.Item("alamat").Caption = txtalamat.Text rptcetakfaktur.Sections("section4").Controls.Item("idpasien").Caption = txtidpasien.Text dtenv.cetak_faktur txtnofaktur.Text rptcetakfaktur.Refresh rptcetakfaktur.Show dtenv.rscetak_faktur.Close txtnoresep.Text = "" txtidpasien.Text = "" txtnmpasien.Text = "" txtalamat.Text = "" DataGrid1.Visible = False Else MsgBox "Nomor faktur Tidak Ada", vbInformation, "Nomor Resep" txtnoresep.Enabled = True txtnoresep.SetFocus End If End Sub Private Sub cmdkeluar_Click() X = MsgBox("Yakin Ingin Keluar?", vbQuestion + vbYesNo, "Keluar") If X = vbYes Then End Unload Me Else frmfaktur.Show End If End Sub Private Sub cmdkembali_Click() frmutama.Show Unload Me End Sub Private Sub cmdrefresh_Click() Adodc1.Refresh Adodc2.Refresh End Sub Private Sub cmdsimpan_Click() Dim sql As String sql = " INSERT INTO faktur(no_faktur,tanggal_faktur,no_resep) " & _ " VALUES('" & txtnofaktur & "','" & DTPicker1 & "'," & _ " '" & txtnoresep & "')" conn.Execute (sql) MsgBox "Data faktur Sudah Masuk", vbInformation, "faktur" Adodc2.Refresh bersih tidaksiap autonumber End Sub Private Sub Form_Activate() bersih tidaksiap autonumber End Sub Private Sub Form_Load() Set conn = New ADODB.Connection conn.Open "tugasakhir" DTPicker1 = Date autonumber End Sub Private Sub Form_Unload(Cancel As Integer) conn.Close Set conn = Nothing End Sub Sub bersih() txtnoresep.Enabled = True txtnoresep.SetFocus txttglresep.Text = "" txtnoresep.Text = "" txtidpasien.Text = "" txtnmpasien.Text = "" txtalamat.Text = "" DataGrid1.Visible = False End Sub Sub tidaksiap() cmdsimpan.Enabled = False txtnofaktur.Enabled = False End Sub 136 Private Sub Timer1_Timer() txttgl.Text = Date txtjam.Text = Time DTFicker1 = Date End Sub Private Sub txtnoresep_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then If Len(txtnoresep.Text) = 0 Then MsgBox "Nomor Resep Masih Kosong", vbInformation, "Nomor Resep" txtnoresep.SetFocus Exit Sub End If Dim sql As String sql = " SELECT * FROM faktur " & _ " WHERE no_resep='" & txtnoresep & "'" Set rs = conn.Execute(sql) If Not rs.EOF Then MsgBox "Nomor Resep Sudah Ada Dalam faktur", vbInformation, "Nomor Resep" txtnoresep.Text = "" txtnoresep.SetFocus Exit Sub End If sql = " SELECT * FROM resep " & _ " WHERE no_resep='" & txtnoresep & "'" Set rs = conn.Execute(sql) If Not rs.EOF Then txttglresep = rs.Fields("tanggal_resep") txtidpasien = rs.Fields("id_pasien") Else MsgBox "Nomor Resep Tidak Ada", vbInformation, "Nomor Resep" txtnoresep.Text = "" txtnoresep.SetFocus Exit Sub End If sql = " SELECT * FROM pasien " & _ " WHERE id_pasien='" & txtidpasien & "'" Set rs = conn.Execute(sql) If Not rs.EOF Then txtnmpasien = rs.Fields("nama_pasien") txtalamat = rs.Fields("alamat") End If sql = " SELECT * FROM vwresep " & _ " WHERE no_resep='" & txtnoresep & "'" Adodc1.RecordSource = sql Adodc1.Refresh DataGrid1.Visible = True cmdsimpan.Enabled = True cmdsimpan.SetFocus End If If Not (KeyAscii >= Asc("0") And KeyAscii <= Asc("9") Or KeyAscii = vbKeyBack) Then Beep KeyAscii = 0 End If End Sub Private Sub txtnofaktur_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then If Len(txtnofaktur.Text) = 0 Then MsgBox "Nomor faktur Masih Kosong", vbInformation, "Nomor faktur" txtnofaktur.SetFocus Exit Sub End If sql = " SELECT * FROM faktur " & _ " WHERE no_faktur='" & txtnofaktur & "'" Set rs = conn.Execute(sql) If Not rs.EOF Then MsgBox "Nomor faktur Sudah Ada", vbInformation, "Nomor faktur" txtnofaktur.SetFocus Exit Sub Else End If cmdsimpan.Enabled = True txtnofaktur.Enabled = False cmdsimpan.SetFocus End If If Not (KeyAscii >= Asc("0") And KeyAscii <= Asc("9") Or KeyAscii = vbKeyBack) Then Beep KeyAscii = 0 End If End Sub Sub autonumber() Dim sql As String Dim nilaifaktur As Double sql = " SELECT * FROM faktur ORDER BY no_faktur" Set rs = conn.Execute(sql) Adodc3.RecordSource = sql Label2.Caption = Adodc3.Recordset.RecordCount If Adodc3.Recordset.RecordCount > 0 Then Adodc3.Refresh sql = "SELECT * FROM faktur ORDER BY no_faktur" Adodc3.RecordSource = sql Adodc3.Recordset.MoveLast txtnofaktur.Text = DataGrid3.Columns(0).Text txtnomorfaktur.Text = Right(txtnofaktur, 3) nilaifaktur = Val(txtnomorfaktur.Text) + 1 txtnilaifaktur.Text = nilaifaktur If Len(txtnilaifaktur.Text) < 2 Then txtnofaktur.Text = "FK" & "00" & nilaifaktur Exit Sub End If If Len(txtnilaifaktur.Text) < 3 Then txtnofaktur.Text = "FK" & "0" & nilaifaktur Exit Sub End If Else txtnofaktur = "FK001" Exit Sub End If 137 End Sub 9. Coding Transaksi Dim conn As New ADODB.Connection Dim rs As New ADODB.Recordset Private Sub cmdbatal_Click() bersih tidaksiap End Sub Private Sub cmdcetak_Click() Dim sql As String nomordiag = InputBox("Masukkan Nomor Penanganan!", "Nomor Penanganan") sql = " SELECT * FROM transaksi " & _ " WHERE no_diagnosa='" & nomordiag & "'" Set rs = conn.Execute(sql) If Not rs.EOF Then txtnodiagnosa = rs.Fields("no_diagnosa") txtiddokter = rs.Fields("id_dokter") txttgldiag = rs.Fields("tanggal_diagnosa") txtidpasien = rs.Fields("id_pasien") sql = " SELECT * FROM dokter " & _ " WHERE id_dokter='" & txtiddokter & "'" Set rs = conn.Execute(sql) If Not rs.EOF Then txtnmdokter = rs.Fields("nama_dokter") txtspesialis = rs.Fields("spesialis") End If sql = " SELECT * FROM pasien " & _ " WHERE id_pasien='" & txtidpasien & "'" Set rs = conn.Execute(sql) If Not rs.EOF Then txtnmpasien = rs.Fields("nama_pasien") txtalamat = rs.Fields("alamat") End If rptcetaktransaksi.Sections("section4").Controls.Item("idtransaksi").Caption = txtnodiagnosa.Text rptcetaktransaksi.Sections("section4").Controls.Item("tanggal").Caption = txttgldiag.Text rptcetaktransaksi.Sections("section4").Controls.Item("iddokter").Caption = txtiddokter.Text rptcetaktransaksi.Sections("section4").Controls.Item("nmpasien").Caption = txtnmpasien.Text rptcetaktransaksi.Sections("section4").Controls.Item("alamat").Caption = txtalamat.Text rptcetaktransaksi.Sections("section4").Controls.Item("idpasien").Caption = txtidpasien.Text rptcetaktransaksi.Sections("section4").Controls.Item("nmdokter").Caption = txtnmdokter.Text rptcetaktransaksi.Sections("section4").Controls.Item("spesialis").Caption = txtspesialis.Text dtenv.cetak_transaksi txtnodiagnosa.Text rptcetaktransaksi.Refresh rptcetaktransaksi.Show dtenv.rscetak_transaksi.Close txtnodiagnosa.Text = "" txtiddokter.Text = "" txtidpasien.Text = "" txtnmpasien.Text = "" txtalamat.Text = "" txtnmdokter.Text = "" txtspesialis.Text = "" DataGrid1.Visible = False Else MsgBox "Nomor Penanganan Tidak Ada", vbInformation, "Nomor Penanganan" txtnodiagnosa.Enabled = True txtnodiagnosa.SetFocus End If End Sub Private Sub cmdkeluar_Click() X = MsgBox("Yakin Ingin Keluar?", vbQuestion + vbYesNo, "Keluar") If X = vbYes Then End Unload Me Else frmtransaksi.Show End If End Sub Private Sub cmdkembali_Click() frmutama.Show Unload Me End Sub Private Sub cmdrefresh_Click() Adodc1.Refresh Adodc2.Refresh End Sub Private Sub cmdselesai_Click() bersih DataGrid1.Visible = False cmdbatal.Enabled = True cmdkembali.Enabled = True cmdkeluar.Enabled = True cmdselesai.Enabled = False cmdtambah.Enabled = False End Sub Private Sub cmdsimpan_Click() If Len(txtnodiagnosa.Text) = 0 Then MsgBox "ID Diagnosa Masih Kosong", vbInformation, "ID Diagnosa" txtnodiagnosa.SetFocus Exit Sub ElseIf Len(txtnmpasien.Text) = 0 Then MsgBox "Identitas Pasien Belum Lengkap", vbInformation, "Identitas Pasien" txtidpasien.Enabled = True txtidpasien.SetFocus Exit Sub ElseIf Len(txtnmdokter.Text) = 0 Then MsgBox "Data Dokter Belum Lengkap", vbInformation, "Data Dokter" txtiddokter.Enabled = True txtiddokter.SetFocus Exit Sub ElseIf Len(txtnmdiagnosa.Text) = 0 Then MsgBox "Data Diagnosa Belum Diisi", vbInformation, "Data Diagnosa" txtiddiagnosa.Enabled = True txtiddiagnosa.SetFocus Exit Sub End If txttotal.Text = txtharga.Text Dim sql As String sql = " INSERT INTO transaksi(no_diagnosa,tanggal_diagnosa,id_dokter,id_pasien,jumlah_bayar) " & _ " VALUES('" & txtnodiagnosa & "','" & DTPicker1 & "','" & txtiddokter & "','" & txtidpasien & "','" & Val(txttotal.Text) & "')" 138 conn.Execute (sql) sql = " INSERT INTO detil_diagnosa(no_diagnosa,id_diagnosa,jumlah_harga)" & _ " VALUES('" & txtnodiagnosa & "','" & txtiddiagnosa & "'," & Val(txtharga.Text) & ")" conn.Execute (sql) cmdsimpan.Enabled = False cmdtambah.Enabled = True cmdselesai.Enabled = True cmdkembali.Enabled = False cmdkeluar.Enabled = False MsgBox "Data Diagnosa Sudah Masuk", vbInformation, "Diagnosa" Adodc1.Refresh sql = " SELECT * FROM vwdiagnosa " & _ " WHERE id_diagnosa ='" & txtiddiagnosa & "'" Adodc2.RecordSource = sql Adodc2.Refresh DataGrid1.Visible = True isilagi End Sub Private Sub cmdtambah_Click() Dim sql As String If Len(txtnodiagnosa.Text) = 0 Then MsgBox "ID Diagnosa Masih Kosong", vbInformation, "ID Diagnosa" txtnodiagnosa.SetFocus Exit Sub ElseIf Len(txtnmpasien.Text) = 0 Then MsgBox "Identitas Pasien Belum Lengkap", vbInformation, "Identitas Pasien" txtidpasien.Enabled = True txtidpasien.SetFocus Exit Sub ElseIf Len(txtnmdokter.Text) = 0 Then MsgBox "Data Dokter Belum Lengkap", vbInformation, "Data Dokter" txtiddokter.Enabled = True txtiddokter.SetFocus Exit Sub ElseIf Len(txtnmdiagnosa.Text) = 0 Then MsgBox "Data Diagnosa Belum Diisi", vbInformation, "Data Diagnosa" txtiddiagnosa.Enabled = True txtiddiagnosa.SetFocus Exit Sub End If sql = " SELECT * FROM detil_diagnosa" & _ " WHERE no_diagnosa='" & txtnodiagnosa & "'" & _ " AND id_diagnosa='" & txtiddiagnosa & "'" Set rs = conn.Execute(sql) If Not rs.EOF Then MsgBox "Diagnosa Sudah Ada Di Transaksi Ini", vbInformation, "Duplikat" isilagi Exit Sub Else a = Val(txtharga) b = Val(txttotal) c=a+b txttotal = a + b sql = " INSERT INTO detil_diagnosa(no_diagnosa,id_diagnosa,jumlah_harga)" & _ " VALUES('" & txtnodiagnosa & "','" & txtiddiagnosa & "'," & Val(txtharga.Text) & ")" conn.Execute (sql) sql = " UPDATE transaksi SET " & _ " jumlah_bayar='" & Val(txttotal.Text) & "'" & _ " WHERE no_diagnosa='" & txtnodiagnosa.Text & "'" conn.Execute (sql) sql = " SELECT * FROM vwdiagnosa " & _ " WHERE no_diagnosa ='" & txtnodiagnosa & "'" Adodc2.RecordSource = sql Adodc2.Refresh isilagi Adodc1.Refresh End If End Sub Private Sub Form_Activate() bersih tidaksiap loadiddiagnosa loadiddokter loadidpasien End Sub Private Sub Form_Load() Set conn = New ADODB.Connection conn.Open "tugasakhir" DTPicker1 = Date End Sub Private Sub Form_Unload(Cancel As Integer) conn.Close Set conn = Nothing End Sub Sub bersih() txtnodiagnosa.Enabled = True txtiddokter.Text = "" txtnmdokter.Text = "" txtspesialis.Text = "" txtnodiagnosa.SetFocus txtnodiagnosa.Text = "" txtidpasien.Text = "" txtnmpasien.Text = "" txtalamat.Text = "" txtiddiagnosa.Text = "" txtnmdiagnosa.Text = "" txtharga.Text = "" txtketerangan.Text = "" txttotal.Text = "" DataGrid1.Visible = False End Sub Sub tidaksiap() cmdsimpan.Enabled = False cmdtambah.Enabled = False cmdselesai.Enabled = False End Sub Private Sub Timer1_Timer() txttgl.Text = Date 139 txtjam.Text = Time DTPicker1 = Date End Sub Private Sub txtiddokter_Click() sql = " SELECT * FROM dokter " & _ " WHERE id_dokter='" & txtiddokter & "'" Set rs = conn.Execute(sql) If Not rs.EOF Then txtnmdokter = rs.Fields("nama_dokter") txtspesialis = rs.Fields("spesialis") End If End Sub Private Sub txtidpasien_Click() sql = " SELECT * FROM pasien " & _ " WHERE id_pasien='" & txtidpasien & "'" Set rs = conn.Execute(sql) If Not rs.EOF Then txtnmpasien = rs.Fields("nama_pasien") txtalamat = rs.Fields("alamat") End If End Sub Private Sub txtidpasien_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then If Len(txtidpasien.Text) = 0 Then MsgBox "Id Pasien Masih Kosong", vbInformation, "ID Pasien" txtidpasien.SetFocus Exit Sub End If sql = " SELECT * FROM pasien " & _ " WHERE id_pasien='" & txtidpasien & "'" Set rs = conn.Execute(sql) If Not rs.EOF Then txtnmpasien = rs.Fields("nama_pasien") txtalamat = rs.Fields("alamat") txtiddokter.Enabled = True txtiddokter.SetFocus Else MsgBox "ID Pasien Tidak Ada", vbInformation, "ID Pasien" txtidpasien.Text = "" txtidpasien.SetFocus Exit Sub End If End If If Not (KeyAscii >= Asc("0") And KeyAscii <= Asc("9") Or KeyAscii = vbKeyBack) Then Beep KeyAscii = 0 End If End Sub Private Sub txtnodiagnosa_KeyPress(KeyAscii As Integer) Dim sql As String KeyAscii = Asc(UCase(Chr(KeyAscii))) If KeyAscii = 13 Then If Len(txtnodiagnosa.Text) = 0 Then MsgBox "Nomor Diagnosa Masih Kosong", vbInformation, "Nomor Diagnosa" txtnodiagnosa.SetFocus Exit Sub End If sql = " SELECT * FROM transaksi " & _ " WHERE no_diagnosa='" & txtnodiagnosa & "'" Set rs = conn.Execute(sql) If Not rs.EOF Then MsgBox "Nomor Diagnosa Sudah Ada", vbInformation, "Nomor Diagnosa" txtnodiagnosa.Text = "" txtnodiagnosa.SetFocus Exit Sub End If sql = " SELECT * FROM transaksi " & _ " WHERE no_diagnosa='" & txtnodiagnosa & "'" Set rs = conn.Execute(sql) If Not rs.EOF Then txttglpeng = rs.Fields("tanggal_diagnosa") txtidpasien = rs.Fields("id_pasien") txtiddokter = rs.Fields("id_dokter") sql = " SELECT * FROM pasien " & _ " WHERE id_pasien='" & txtidpasien & "'" Set rs = conn.Execute(sql) If Not rs.EOF Then txtnmpasien = rs.Fields("nama_pasien") txtalamat = rs.Fields("alamat") End If sql = " SELECT * FROM dokter " & _ " WHERE id_dokter='" & txtiddokter & "'" Set rs = conn.Execute(sql) If Not rs.EOF Then txtnmdokter = rs.Fields("nama_dokter") txtspesialis = rs.Fields("spesialis") End If sql = " SELECT * FROM vwdiagnosa " & _ " WHERE no_diagnosa='" & txtnodiagnosa & "'" Adodc2.RecordSource = sql Adodc2.Refresh DataGrid1.Visible = True Else txtidpasien.Enabled = True txtidpasien.SetFocus End If End If End Sub Private Sub txtiddokter_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then If Len(txtiddokter.Text) = 0 Then MsgBox "Id Dokter Masih Kosong", vbInformation, "ID Dokter" txtiddokter.SetFocus Exit Sub End If 140 sql = " SELECT * FROM dokter " & _ " WHERE id_dokter='" & txtiddokter & "'" Set rs = conn.Execute(sql) If Not rs.EOF Then txtnmdokter = rs.Fields("nama_dokter") txtspesialis = rs.Fields("spesialis") txtiddiagnosa.Enabled = True txtiddiagnosa.SetFocus Else MsgBox "ID Dokter Tidak Ada", vbInformation, "ID Dokter" txtiddokter.Text = "" txtiddokter.SetFocus Exit Sub End If End If If Not (KeyAscii >= Asc("0") And KeyAscii <= Asc("9") Or KeyAscii = vbKeyBack) Then Beep KeyAscii = 0 End If End Sub Private Sub txtiddiagnosa_Click() sql = " SELECT * FROM diagnosa " & _ " WHERE id_diagnosa='" & txtiddiagnosa & "'" Set rs = conn.Execute(sql) If Not rs.EOF Then txtnmdiagnosa = rs.Fields("nama_diagnosa") txtketerangan = rs.Fields("keterangan") txtharga = rs.Fields("harga") End If End Sub Private Sub txtketerangan_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then If Len(txtketerangan.Text) = 0 Then MsgBox "Keterangan Masih Kosong", vbInformation, "Keterangan" txtketerangan.SetFocus Exit Sub Else txtketerangan.Enabled = True txtketerangan.SetFocus End If End If End Sub Private Sub txtiddiagnosa_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then If Len(txtiddiagnosa.Text) = 0 Then MsgBox "Id Diagnosa Masih Kosong", vbInformation, "ID Diagnosa" txtiddiagnosa.SetFocus Exit Sub End If sql = " SELECT * FROM diagnosa " & _ " WHERE id_diagnosa='" & txtiddiagnosa & "'" Set rs = conn.Execute(sql) If Not rs.EOF Then txtnmdiagnosa = rs.Fields("nama_diagnosa") txtketerangan = rs.Fields("keterangan") txtharga = rs.Fields("harga") If cmdtambah.Enabled = True Then cmdtambah.SetFocus Else cmdsimpan.Enabled = True cmdsimpan.SetFocus End If Else MsgBox "ID Diagnosa Tidak Ada", vbInformation, "ID Diagnosa" txtiddiagnosa.Text = "" txtiddiagnosa.SetFocus Exit Sub End If End If If Not (KeyAscii >= Asc("0") And KeyAscii <= Asc("9") Or KeyAscii = vbKeyBack) Then Beep KeyAscii = 0 End If End Sub Sub isilagi() txtiddiagnosa.Text = "" txtnmdiagnosa.Text = "" txtharga.Text = "" txtketerangan.Text = "" txtiddiagnosa.Enabled = True txtiddiagnosa.SetFocus End Sub Sub loadiddiagnosa() Dim sql As String sql = " SELECT * FROM diagnosa ORDER by id_diagnosa" Adodc3.RecordSource = sql Adodc3.Refresh If Adodc3.Recordset.RecordCount > 0 Then Adodc3.Recordset.MoveFirst While Not Adodc3.Recordset.EOF txtiddiagnosa.AddItem (Adodc3.Recordset.Fields("id_diagnosa").Value) Adodc3.Recordset.MoveNext Wend End If End Sub Sub loadiddokter() Dim sql As String sql = " SELECT * FROM dokter ORDER by id_dokter " Adodc4.RecordSource = sql Adodc4.Refresh If Adodc4.Recordset.RecordCount > 0 Then Adodc4.Recordset.MoveFirst While Not Adodc4.Recordset.EOF txtiddokter.AddItem (Adodc4.Recordset.Fields("id_dokter").Value) Adodc4.Recordset.MoveNext Wend End If End Sub 141 Sub loadidpasien() Dim sql As String sql = " SELECT * FROM pasien ORDER by id_pasien " Adodc5.RecordSource = sql Adodc5.Refresh If Adodc5.Recordset.RecordCount > 0 Then Adodc5.Recordset.MoveFirst While Not Adodc5.Recordset.EOF txtidpasien.AddItem (Adodc5.Recordset.Fields("id_pasien").Value) Adodc5.Recordset.MoveNext Wend End If End Sub 10. Coding Laporan Resep Private Sub cmdcetak_Click() rptcetaklapresep.Sections("section4").Controls.Item("lblawal").Caption = dtawal.Value rptcetaklapresep.Sections("section4").Controls.Item("lblakhir").Caption = dtakhir.Value dtenv.cetak_lap_resep dtawal.Value, dtakhir.Value rptcetaklapresep.Refresh rptcetaklapresep.Show dtenv.rscetak_lap_resep.Close End Sub Private Sub cmdkeluar_Click() X = MsgBox("Yakin Ingin Keluar?", vbQuestion + vbYesNo, "Keluar?") If X = vbYes Then End Unload Me Else frmlapresep.Visible = True End If End Sub Private Sub cmdkembali_Click() frmutama.Visible = True Unload Me End Sub Private Sub Form_Load() Me.Top = 2000 Me.Left = 2000 Me.Width = 11000 Me.Height = 7500 dtawal.Value = Date dtakhir.Value = Date End Sub 11. Coding Laporan Faktur Private Sub cmdcetak_Click() rptcetaklapfaktur.Sections("section4").Controls.Item("lblawal").Caption = dtawal.Value rptcetaklapfaktur.Sections("section4").Controls.Item("lblakhir").Caption = dtakhir.Value dtenv.cetak_lap_faktur dtawal.Value, dtakhir.Value rptcetaklapfaktur.Refresh rptcetaklapfaktur.Show dtenv.rscetak_lap_faktur.Close End Sub Private Sub cmdkeluar_Click() X = MsgBox("Yakin Ingin Keluar?", vbQuestion + vbYesNo, "Keluar?") If X = vbYes Then End Unload Me Else frmlapfaktur.Visible = True End If End Sub Private Sub cmdkembali_Click() frmutama.Visible = True Unload Me End Sub Private Sub Form_Load() Me.Top = 2000 Me.Left = 2000 Me.Width = 11000 Me.Height = 7500 dtawal.Value = Date dtakhir.Value = Date End Sub 12. Coding Laporan Transaksi Private Sub cmdcetak_Click() rptcetaklaptransaksi.Sections("section4").Controls.Item("lblawal").Caption = dtawal.Value rptcetaklaptransaksi.Sections("section4").Controls.Item("lblakhir").Caption = dtakhir.Value dtenv.cetak_lap_transaksi dtawal.Value, dtakhir.Value rptcetaklaptransaksi.Refresh rptcetaklaptransaksi.Show dtenv.rscetak_lap_transaksi.Close End Sub Private Sub cmdkeluar_Click() X = MsgBox("Yakin Ingin Keluar?", vbQuestion + vbYesNo, "Keluar?") If X = vbYes Then End Unload Me Else frmlaptransaksi.Visible = True End If End Sub Private Sub cmdkembali_Click() frmutama.Visible = True Unload Me End Sub Private Sub Form_Load() Me.Top = 2000 Me.Left = 2000 Me.Width = 11000 Me.Height = 7500 dtawal.Value = Date dtakhir.Value = Date End Sub 13. Coding Ganti Password Dim conn As New ADODB.Connection 142 Dim rs As New ADODB.Recordset Private Sub cmdkeluar_Click() X = MsgBox("Yakin Ingin Keluar?", vbYesNo + vbExclamation, "Keluar") If X = vbYes Then End Unload Me Else txtid.SetFocus End If End Sub Private Sub cmdkembali_Click() frmutama.Show Unload Me End Sub Private Sub cmdubah_Click() Dim sql As String sql = " SELECT * FROM user " & _ " WHERE userid='" & Trim(txtid.Text) & "'" Set rs = conn.Execute(sql) If rs.EOF Then MsgBox "User ID Tidak Terdaftar", vbInformation, "User ID" txtid.SetFocus Else If rs.Fields("password") <> Trim(txtpasswordlama.Text) Then MsgBox "Password anda salah", vbOKOnly + vbExclamation, "Salah password" txtpasswordlama.SetFocus txtpasswordlama.Text = "" Else If txtpassword.Text <> txtkonfirmasi.Text Then MsgBox "Password Baru Anda Tidak Sesuai", vbInformation, "Password" txtpassword.SetFocus Else sql = " UPDATE user SET " & _ " password='" & txtpassword.Text & "'" & _ " WHERE userid='" & txtid.Text & "'" conn.Execute (sql) MsgBox "Password Anda Sukses Diubah", vbInformation + vbOKOnly, "Password" txtid.Text = "" txtpasswordlama.Text = "" txtpassword.Text = "" txtkonfirmasi.Text = "" txtid.SetFocus End If End If End If End Sub Private Sub Form_Activate() txtid.Text = "" txtpasswordlama.Text = "" txtpassword.Text = "" txtkonfirmasi = "" txtid.SetFocus End Sub Private Sub Form_Load() Set conn = New ADODB.Connection conn.Open "tugasakhir" End Sub Private Sub Form_Unload(Cancel As Integer) conn.Close Set conn = Nothing End Sub Private Sub txtid_KeyPress(KeyAscii As Integer) KeyAscii = Asc(UCase(Chr(KeyAscii))) If KeyAscii = 13 Then If Len(txtid.Text) = 0 Then MsgBox "User ID Masih Kosong", vbInformation, "User ID" Else txtpasswordlama.SetFocus End If End If End Sub Private Sub txtkonfirmasi_KeyPress(KeyAscii As Integer) KeyAscii = Asc(UCase(Chr(KeyAscii))) If KeyAscii = 13 Then If Len(txtkonfirmasi.Text) = 0 Then MsgBox "Password Tidak Boleh Kosong", vbInformation, "Password" Else cmdubah.SetFocus End If End If End Sub Private Sub txtpassword_KeyPress(KeyAscii As Integer) KeyAscii = Asc(UCase(Chr(KeyAscii))) If KeyAscii = 13 Then If Len(txtpassword.Text) = 0 Then MsgBox "Password Tidak Boleh Kosong", vbInformation, "Password" Else txtkonfirmasi.SetFocus End If End If End Sub Private Sub txtpasswordlama_KeyPress(KeyAscii As Integer) KeyAscii = Asc(UCase(Chr(KeyAscii))) If KeyAscii = 13 Then If Len(txtpasswordlama.Text) = 0 Then MsgBox "Password Masih Kosong", vbInformation, "Password" Else txtpassword.SetFocus End If End If End Sub 14. Coding Tambah User Dim conn As New ADODB.Connection Dim rs As New ADODB.Recordset Private Sub cmdbatal_Click() bersih End Sub Private Sub cmdhapus_Click() Dim sql As String 143 If Len(txtid.Text) = 0 Then MsgBox "User ID Masih Kosong", vbCritical, "User ID" txtid.SetFocus Exit Sub End If sql = " SELECT * FROM user " & _ " WHERE userid='" & txtid & "'" Set rs = conn.Execute(sql) If rs.EOF Then MsgBox "User ID " + txtid.Text + " Tidak Terdaftar", vbInformation, "User ID" txtid.Text = "" txtid.SetFocus Exit Sub End If X = MsgBox("Yakin Hapus User ID?", vbQuestion + vbYesNo, "Hapus User ID") If X = vbYes Then sql = " DELETE * FROM user " & _ " WHERE userid='" & txtid & "'" conn.Execute (sql) MsgBox "User ID Sudah Dihapus", vbInformation, "User ID" bersih Else bersih End If End Sub Private Sub cmdkeluar_Click() X = MsgBox("Yakin Ingin Keluar?", vbQuestion + vbYesNo, "Keluar") If X = vbYes Then End Unload Me Else txtid.SetFocus End If End Sub Private Sub cmdkembali_Click() frmutama.Show Unload Me End Sub Sub bersih() txtid.Text = "" txtpassword.Text = "" txtkonfirmasi.Text = "" chkdokter.Value = 0 chkobat.Value = 0 chkpasien.Value = 0 chkdiagnosa.Value = 0 chkresep.Value = 0 chkfaktur.Value = 0 chktransaksi.Value = 0 chkdafpasien.Value = 0 chkdafdokter.Value = 0 chkdafobat.Value = 0 chkdafdiagnosa.Value = 0 chklapresep.Value = 0 chklapfaktur.Value = 0 chklaptransaksi.Value = 0 chktambah.Value = 0 txtid.SetFocus End Sub Private Sub cmdsimpan_Click() Dim sql As String If Len(txtid.Text) = 0 Then MsgBox "User ID Masih Kosong", vbCritical, "User ID" txtid.SetFocus Exit Sub ElseIf Len(txtpassword.Text) = 0 Then MsgBox "Password Masih Kosong", vbCritical, "Password" txtpassword.SetFocus Exit Sub ElseIf Len(txtkonfirmasi.Text) = 0 Then MsgBox "Konfirmasi Password Masih Kosong", vbCritical, "Konfirmasi Password" txtkonfirmasi.SetFocus Exit Sub End If sql = " SELECT * FROM user " & _ " WHERE userid='" & txtid & "'" Set rs = conn.Execute(sql) If Not rs.EOF Then MsgBox "User ID " + txtid.Text + " Sudah Terdaftar", vbInformation, "User ID" txtid.Text = "" txtid.SetFocus Exit Sub End If If txtpassword.Text <> txtkonfirmasi.Text Then MsgBox "Password Anda Tidak Sesuai", vbInformation, "Password" txtpassword.SetFocus txtkonfirmasi.Text = "" txtpassword.Text = "" Exit Sub End If sql = " INSERT INTO user (userid,password,mnpasien,mndokter,mnobat,mndiagnosa,mnresep,mnfaktur,mntransaksi," & _ " mndafpasien,mndafdokter,mndafobat,mndafdiagnosa,mnlapresep,mnlapfaktur,mnlaptransaksi,mntambah)" & _ " VALUES('" & txtid & "','" & txtpassword & "','" & chkpasien.Value & "','" & chkdokter.Value & "'," & _ " '" & chkobat.Value & "','" & chkdiagnosa.Value & "','" & chkresep.Value & "'," & _ " '" & chkfaktur.Value & "','" & chktransaksi.Value & "','" & chkdafpasien.Value & "'," & _ " '" & chkdafdokter.Value & "','" & chkdafobat.Value & "','" & chkdafdiagnosa.Value & "'," & _ " '" & chklapresep.Value & "','" & chklapfaktur.Value & "','" & chklaptransaksi.Value & "','" & chktambah.Value & "')" conn.Execute (sql) MsgBox "User ID Baru Sukses Dibuat", vbInformation, "User ID" bersih End Sub Private Sub Form_Activate() bersih End Sub Private Sub Form_Load() Set conn = New ADODB.Connection 144 conn.Open "tugasakhir" End Sub Private Sub Form_Unload(Cancel As Integer) conn.Close Set conn = Nothing End Sub Private Sub txtid_KeyPress(KeyAscii As Integer) KeyAscii = Asc(UCase(Chr(KeyAscii))) If KeyAscii = 13 Then If Len(txtid.Text) = 0 Then MsgBox "User ID Masih Kosong", vbCritical, "User ID" txtid.SetFocus Else txtpassword.SetFocus End If End If End Sub Private Sub txtkonfirmasi_KeyPress(KeyAscii As Integer) KeyAscii = Asc(UCase(Chr(KeyAscii))) If KeyAscii = 13 Then If Len(txtkonfirmasi.Text) = 0 Then MsgBox "Konfirmasi Password Masih Kosong", vbCritical, "Konfirmasi Password" txtkonfirmasi.SetFocus Else cmdsimpan.SetFocus End If End If End Sub Private Sub txtpassword_KeyPress(KeyAscii As Integer) KeyAscii = Asc(UCase(Chr(KeyAscii))) If KeyAscii = 13 Then If Len(txtpassword.Text) = 0 Then MsgBox "Password Masih Kosong", vbCritical, "Password" txtpassword.SetFocus Else txtkonfirmasi.SetFocus End If End If End Sub 145 LAMPIRAN I WAWANCARA I Responden : dr. Dean Hadi Mulya. Jabatan : Kepala Klinik Tanggal Wawancara : 07 November 2006 Hal : Profil Klinik. Tujuan dari wawancara ini peneliti ingin mengetahui latar belakang berdirinya Klinik Dokter Keluarga Suradita, visi dan misi Klinik dan struktur organisasi. Pertanyaan Wawancara I 1. Bagaimanakah dan kapankah berdirinya Klinik Dokter Keluarga Suradita ? 2. Apa yang melatar belakangi berdirinya Klinik Dokter Keluarga Suradita ? 3. Bagaimanakah profile Klinik Dokter Keluarga Suradita ? Hasil Wawancara I 146 Dari hasil wawancara yang diajukan, peneliti dapat mengetahui tentang sejarah berdirinya, latar belakang, dan profil Klinik. Selain itu peneliti dapat mengetahui visi dan misi, struktur organisasi pada Klinik Dokter Keluarga Suradita. Sebagaimana diuraikan pada Bab IV Analisa dan Perancangan Sistem. WAWANCARA II Responden : dr. Ade, Dita, Siti. Jabatan : Kepala Bagian Medis, Bagian Pendaftaran, Bagian Kasir. Tanggal Wawancara : 04 Januari 2007. Hal : Sistem pelayanan kesehatan yang berjalan pada Klinik. Tujuan dari wawancara ini peneliti ingin mengetahui alur proses pelayanan kesehatan yang berjalan pada klinik, masalah-masalah yang dihadapi pada sistem pelayanan kesehatan. Pertanyaan Wawancara II 1. Bagaimanakah alur proses sistem pelayanan kesehatan pada klinik dokter keluarga suradita ? 2. Adakah masalah-masalah yang dihadapi pada sistem pelayanan kesehatan yang berjalan ? 3. Bagaimanakah ruang lingkup sistem pelayanan kesehatan yang berjalan ? 4. Bagaimana teknis pendaftaran pasien lama dan baru ? Hasil Wawancara II Dari hasil wawancara ini, peneliti dapat mengetahui alur proses sistem pelayanan kesehatan yang berjalan pada Klinik Dokter Keluarga Suradita. Peneliti mengetahui masalah-masalah yang dihadapi sistem pelayanan kesehatan yang 147 berjalan dan ruang lingkup sistem pelayanan kesehatan yang berjalan pada klinik. Dengan hasil wawancara tersebut peneliti mendapatkan data yang dibutuhkan untuk pengembangan sistem pelayanan kesehatan. Adapun data-data yang diperoleh untuk pengembangan sistem secara tersirat dapat diketahui dari pembahasan Bab IV Analisa dan Perancangan Sistem. 148