BAB 3 ANALIS IS DAN PERANCANGAN 3.1 Analisis Berikut ini merupakan analisis pada Klinik M edikarya yang meliputi: 3.1.1 Riwayat Klinik Klinik M edikarya terletak di Jalan Summagung III Blok PB Unit 1 Kelapa Gading, Jakarta Utara 14240. Pada awal keberadaannya, Klinik M edikarya didirikan atas keinginan seorang kerabat dekat dari Dr. Lucy Irliani selaku Direktur Utama yang menginginkan adanya kesejahteraan kesehatan untuk dirinya serta masyarakat di lingkungan sekitar. Berdasarkan keinginan Beliau, Dr. Lucy beserta tujuh rekan sesama profesinya sepakat untuk mendirikan sebuah yayasan independent sebagai pusat kesehatan masyarakat yang diberi nama Klinik M edikarya. Klinik M edikarya resmi disahkan oleh Gubernur Kepala Daerah Khusus Ibu Kota Jakarta, Bapak R. Soeprapto pada tanggal 22 Desember 1984 dengan hak izin No. PBDS.038/2.41.12.09 dan pada waktu itu hanya memiliki pelayanan medis dokter umum dan dokter jaga. Seiring dengan berjalannya waktu, kebutuhan masyarakat akan pelayanan medis pun semakin meningkat sehingga menyebabkan Klinik M edikarya pada akhirnya menambah bagian pelayanannya, tidak hanya dalam hal Bagian M edis melainkan dalam Bagian Keperawatan serta subbagian lainnya yang saling terkait dalam melakukan kegiatan operasional. Penambahan pelayanan medis yang dilakukan adalah seperti penambahan dokter spesialis dan rumah apotek yang bekerja sama dengan Pedagang Besar Farmasi (PBF) sebagai pemasok obat. 49 50 Dalam menjalankan fungsinya sebagai pusat kesehatan masyarakat, diharapkan agar semua bagian dan sub bagian yang ada di Klinik M edikarya mampu bekerja dengan maksimal dan dituntut untuk menjadi profesional. Sesuai dengan fungsinya, maka Klinik M edikarya berada di bawah Departemen Kesehatan Republik Indonesia yang fungsinya diatur dalam peraturan perundang-undangan yang berlaku. 3.1.1.a Visi M emiliki penanganan medis yang berkualitas dan profesional, serta mampu bersaing secara global. 3.1.1.b Misi 1. M emberikan pelayanan kesehatan kepada masyarakat sekitar dengan pelayanan yang profesional. 2. M eningkatkan kualitas pelayanan kesehatan yang bermutu dengan ditunjang sarana dan prasarana yang memadai dan sumber daya manusia yang berkualitas. 3. Turut serta dalam meningkatkan taraf kesehatan masyarakat sekitar dengan melayani sepenuh hati. 3.1.1.c Tujuan 1. M engembangkan dan memberikan pelayanan dalam bidang kesehatan masyarakat sekitar. 2. M endorong masyarakat sekitar untuk meningkatkan derajat kesehatan mereka. 51 3.1.2 S truktur Organisasi Stuktur organisasi Klinik M edikarya disusun berdasarkan tugas dan tanggung jawab tiap bagian dan sub bagian yang ada agar dapat memudahkan pencarian data yang diperlukan dan transparansi laporan maupun informasi sehingga dapat dipertanggungjawabkan dan akurat. Semuanya difokuskan untuk produktivitas dan kesejahteraan Klinik M edikarya, serta kepuasaan pengguna jasa. Gambar 3.1 Struktur Organisasi 52 3.1.3 Pembagian Tugas dan Tanggung Jawab Berdasarkan struktur organisasi di atas, setiap bagian dan subbagian telah memiliki tugas dan tanggung jawabnya masing-masing dengan rincian sebagai berikut: 1. Direktur Utama M emimpin, menyusun kebijaksanaan, membina, mengoordinasi, dan mengawasi pelaksanaan keseluruhan tugas-tugas pada tiap bagian dan sub bagian yang berada di Klinik M edikarya. 2. Rumah Apotek Sarana farmasi yang melaksanakan peracikan, pengubahan bentuk, dan pencampuran dan penyerahan obat atau bahan obat dengan dibantu tenaga Bagian Apotek/Apoteker. 3. Wakil Direktur Umum M embantu tugas direktur utama dalam hal mengoordinasi kegiatan urusan umum dan perlengkapan kebutuhan klinik yang terbagi menjadi beberapa bagian-bagian sebagai berikut: a. Bagian Administrasi / Tata Usaha M emberikan pelayanan admistrasi kepada seluruh unit di lingkungan klinik, menghimpun data karyawan, dokter dan pasien, melakukan audit dan ketatausahaan. b. Bagian Perencanaan dan Evaluasi M enyusun rencana anggaran pendapatan yang diperoleh pasien, menyusun rencana anggaran belanja sesuai kebutuhan klinik, menyusun program kegiatan 53 klinik, dan mengevaluasi keseluruhan anggaran yang sudah berjalan dari perencanaan. c. Bagian Kepegawaian M empunyai tugas melaksanakan urusan kepegawaian, seperti mengoordinasi dan melakukan pencatatan jadwal praktek dokter, jadwal kerja karyawan, absensi dokter dan karyawan. 4. Wakil Direktur Keuangan M embantu tugas direktur utama dalam hal mengoordinasi kegiatan urusan anggaran serta laporan keuangan klinik yang terbagi menjadi beberapa bagian-bagian sebagai berikut: a. Bagian Anggaran dan Belanja M elaksanakan penyusunan rencana pelaksanaan anggaran pendapatan dan belanja, revisi rencana anggaran dan belanja, pemantauan rencana anggaran dan belanja, penilaian dan penyusunan laporan pelaksaan anggaran dan belanja. b. Bagian Akutansi M elakukan audit meliputi pembukuan keuangan dan menilai pendapatan dan belanja dari klinik. c. Bagian Kasir M enangani pendapatan dari hasil pembayaran pasien dan bertanggung jawab atas pencatatan pendapatan ke wakil direktur keuangan. 5. Wakil Direktur Pelayanan M embantu tugas direktur utama dalam hal pelaksanaan, mengoordinasikan dan mengawasi pelaksanaan tugas pada bidang-bidang berikut: 54 a. Bidang Medis Pelayanan medis yang diberikan dalam bentuk jasa, berikut adalah rincian Bidang M edis pada Klinik M edikarya: 1. Dokter Umum M emberikan pelayanan jasa medis kepada pasien tidak dibatasi golongan usia, jenis kelamin, sistem organ, jenis penyakit, dan status sosial. 2. Dokter Jaga M emberikan pelayanan jasa sebagai pertolongan pertama apabila ada tandatanda kegawatan medis pada pasien, serta melakukan tindakan pencatatan sebelum ada penanganan lebih lanjut oleh dokter ahli. 3. Dokter Gigi M empunyai tugas untuk mengidentifikasi, merencanakan, dan memecahkan masalah serta mengevaluasi program kesehatan gigi dan mulut, serta bertanggung jawab dalam pencatatan dan pelaporan pelaksanaan program dan pelayanan kesehatan gigi. 4. Dokter Ahli M empunyai tugas untuk mengobati masyarakat sesuai dengan keahlian yang dimiliki oleh dokter seperti dokter spesialis THT, dokter spesialis gizi, dokter spesialis mata, fisioterapi, dan konsultasi psikologi. b. Bidang Keperawatan Perawat mempunyai tugas pelayanan tindakan medis yang hanya dapat dilakukan berdasarkan permintaan tertulis dari dokter. 55 3.1.4 Gambaran Umum Sistem yang Sedang Berjalan Prosedur sistem yang sedang berjalan pada Klinik M edikarya masih diakses secara manual dan sistem basis datanya belum terintegrasi satu sama lain karena Klinik M edikarya masih menggunakan M icrosoft Office Excel 2003 untuk memasukkan data dan juga dalam penyimpanan data administrasinya masih disimpan di rak pembukuan. Kegiatan operasional terbentuk karena adanya proses bisnis dalam suatu organisasi itu sendiri seperti yang terjadi pada Klinik M edikarya, dimana proses bisnis tersebut menjelaskan prosedur sistem yang sedang berjalan. 3.1.4.a Proses Bisnis dan Diagram Aliran Dokumen Kegiatan operasional terbentuk karena adanya proses bisnis dalam suatu organisasi itu sendiri seperti yang terjadi pada Klinik M edikarya, dimana proses bisnis tersebut menjelaskan sistem operasional yang sedang berjalan dan digambarkan melalui sebuah Diagram Aliran Dokumen sebagai berikut: 1. Prosedur Pendaftaran Pasien Pasien yang akan berobat pada Klinik M edikarya harus mendaftar terlebih dahulu ke Bagian Adminisrasi/Tata Usaha. Bagian Administrasi/Tata Usaha menanyakan kepada pasien, Bagian M edis apa yang dibutuhkan pasien. Jika pasien belum terdaftar, Bagian Administrasi/Tata Usaha akan memberikan form pendaftaran yang harus diisi pasien. Jika pasien tidak bisa mengisi form pendaftaran tersebut, maka form pendaftaran dapat diisi oleh pihak keluarga atau siapa saja yang mengantar pasien ke klinik. Setelah diisi, form selanjutnya diberikan pada Bagian Administrasi/Tata Usaha. Bagian Administrasi/Tata Usaha memeriksa kelengkapan isi 56 form pendaftaran. Setelah semua telah diisi dengan lengkap, Bagian Administrasi/Tata Usaha membuat kartu berobat dan memberikan kartu berobat kepada pasien. Lalu pasien menunggu giliran untuk berobat setelah mendapat kartu berobat pasien, kemudian Bagian Adminstrasi/Tata Usaha membuat rekam medis. Jika pasien sudah terdaftar, Bagian Administrasi/Tata Usaha akan menanyakan kepada pasien membawa kartu berobat atau tidak. Apabila pasien membawa kartu berobat, maka pasien memberikan kartu berobat pada Bagian Administrasi/Tata Usaha untuk dicarikan rekam medis pasien berdasarkan abjad nama pasien. Jika rekam medis sudah ditemukan, maka Bagian Administrasi/Tata Usaha akan mencocokkan nomor induk pasien (NIP) yang ada di rekam medis dengan kartu berobat pasien. Namun apabila pasien tidak membawa kartu berobat, maka Bagian Administrasi/Tata Usaha akan menanyakan nama dan alamat pasien lalu mencari rekam medis berdasarkan identitas pasien pada rak buku penyimpanan rekam medis. Bagian Administrasi/Tata Usaha mencatat data pasien dan data dokter yang dituju pada buku daftar hadir pasien. Kemudian rekam medis dibawa oleh Bagian Administrasi/Tata Usaha untuk diletakkan di meja dokter yang dituju sementara pasien menunggu giliran untuk berobat. 2. Prosedur Pengobatan Pasien Pasien yang sudah mendapatkan giliran untuk berobat memasuki ruang pemeriksaan. Dokter akan menanyakan keluhan yang dirasakan oleh pasien sebelum dilakukan pemeriksaan fisik terhadap pasien. Setelah melakukan pemeriksaan fisik, dokter 57 menuliskan hasil pemeriksaan fisik pasien pada rekam medis pasien dan menuliskan resep obat sesuai dengan keluhan pasien dan hasil analisa dokter. Setelah itu, dokter memberikan resep obat tersebut kepada pasien dan mencatat keluhan, hasil pemeriksaan, tindakan, dan resep obat pasien di rekam medis pasien dan memberikan rekam medis pasien tersebut kepada Bagian Keperawatan untuk diserahkan kepada Bagian Kasir agar pasien dapat mengetahui jumlah yang harus dibayar. 3. Prosedur Penjualan Obat Pasien yang hendak menebus obat membawa resep obat dari dokter ke Bagian Apotek/Apoteker. Kemudian Bagian Apotek/Apoteker yang bertugas akan memeriksa resep tersebut dengan kelengkapan obat yang tersedia di Rumah Apotek Klinik M edikarya. Bila obat tidak tersedia di Rumah Apotek maka Bagian Apotek/Apoteker akan mengembalikan resep dengan menganjurkan pasien untuk menebus obat di apotek lain. Ketidaktersediaan obat akan dicatat Bagian Apotek/Apoteker pada buku catatan persediaan obat, dimana buku tersebut akan diberikan kepada Bagian Anggaran dan Belanja yang akan menentukan berapa besar anggaran yang diperlukan untuk membeli obat yang habis. Bila obat tersedia seluruhnya, maka Bagian Apotek/Apoteker akan memberikan obat yang sesuai dengan resep obat lalu mencatat obat-obat yang ditebus pasien dalam buku catatan persediaan Rumah Apotek. Kemudian Bagian Apotek/Apoteker memberikan resep obat beserta obat ke Bagian Kasir. Lalu Bagian Kasir memanggil pasien untuk membayar obat yang ditebus dan memberikan struk pembayaran kepada pasien dan 58 menyerahkan copy struk pembayaran tersebut kepada Bagian Akutansi untuk dilakukan pencatatan dalam bentuk laporan yang diserahkan kepada Wakil Direktur Keuangan. 4. Prosedur Pembayaran Pasien Bagian Kasir menerima rekam medis pasien dari Bagian Keperawatan untuk dihitung total yang harus dibayar pasien. Setelah dihitung total biaya tersebut, rekam medis pasien dikembalikan ke Bagian Administrasi/Tata Usaha. Kemudian pasien dipanggil oleh Bagian Kasir untuk melunasi pembayaran. Setelah pasien melunasi pembayaran ke Bagian Kasir, pasien diberikan obat beserta struk pembayaran sebagai tanda terima pelunasan. Kemudian Bagian Kasir menyerahkan copy struk pembayaran tersebut ke Bagian Akutansi untuk dicatat sebagai pemasukan dalam buku catatan pemasukan keuangan untuk dijadikan laporan yang harus diserahkan nantinya kepada Wakil Direktur Keuangan. 5. Prosedur Pembelian Obat Bagian Apotek/Apoteker membuat daftar persediaan obat yang telah habis dan akan dibeli. Kemudian daftar tersebut diberikan ke Bagian Anggaran dan Belanja untuk diolah agar dapat diketahui jumlah anggaran yang perlu dikeluarkan untuk membeli obat. Setelah mengetahui anggaran yang perlu dikeluarkan, maka Bagian Anggaran dan Belanja akan membelikan semua kebutuhan obat yang dibutuhkan klinik ke Pedagang Besar Farmasi (PBF) sebagai pemasok obat. Kemudian PBF membuatkan sebuah Faktur Pembelian dalam bentuk dua slip, satu slip asli pembayaran untuk PBF dan satu slip copy Faktur Pembelian yang diberikan pada Bagian Anggaran dan Belanja. Kemudian, Pemasok menerima pembayaran atas Faktur Pembelian tersebut dari Bagian Anggaran dan Belanja, dan pemasok memberikan tanda lunas kepada Bagian Anggaran dan 59 Belanja. Kemudian Bagian Anggaran dan Belanja menyerahkan slip copy faktur pembelian dan tanda lunas tersebut kepada Bagian Akutansi untuk dicatat dan disimpan sebagai pengeluaran anggaran dalam bentuk pembukuan keuangan untuk dijadikan laporan keuangan Klinik M edikarya yang akan diberikan kepada Wakil Direktur Keuangan. Lalu, Bagian Apotek/Apoteker menerima obat dari pemasok yang telah dibayar oleh Bagian Anggaran dan Belanja. 6. Retur Pembelian Obat Bagian Apotek/Apoteker mengecek dan mencatat seluruh obat yang rusak untuk dikembalikan kepada pemasok. Kemudian Bagian Apotek/Apoteker membuat daftar obat yang akan dikembalikan dan meminta faktur pembelian dari Bagian Akutansi sebagai bukti pembelian. Setelah itu, Bagian Akutansi memberikan berkas yang diperlukan kepada Bagian Apotek/Apoteker. Bagian Apotek/Apoteker mengembalikan obat kepada pemasok beserta faktur pembelian sebagai tanda pelunasan. Lalu pemasok mencatat dan mengganti obat kepada Bagian Apotek/Apoteker. Kemudian Bagian Apotek/Apoteker mencatat obat yang telah ditukar ke buku catatan persediaan obat. 7. Penjadwalan Praktek Dokter Bagian Kepegawaian klinik membuat jadwal untuk para dokter berdasarkan shift kerja dalam satu minggu. Kemudian Bagian Kepegawaian menyerahkan rancangan jadwal praktek kepada dokter. Bila jadwal tersebut disetujui oleh para dokter, maka jadwal itu yang akan dipergunakan klinik. Tetapi bila jadwal tersebut tidak disetujui oleh dokter, maka Bagian Kepegawaian dengan para dokter membuat kesepakatan jadwal. J ika ada dokter berhalangan hadir, maka dokter harus menghubungi Bagian Administrasi/Tata Usaha untuk dibuatkan laporan di buku catatan ketidakhadiran bahwa dokter yang 60 bersangkutan berhalangan hadir dan mempertanyakan ketidakhadiran dokter tersebut. Kemudian Bagian Kepegawaian bertugas mencari pengganti dokter dengan dokter pengganti dalam shift dan jam kerja yang sama. 8. Penjadwalan Karyawan Bagian Kepegawaian klinik membuat jadwal karyawan berdasarkan shift kerja dalam satu minggu. Kemudian Bagian Kepegawaian menyerahkan perancangan jadwal kerja kepada karyawan. Jika ada karyawan yang berhalangan hadir, maka karyawan tersebut harus menghubungi Bagian Administrasi/Tata Usaha untuk dibuatkan laporan di buku catatan ketidakhadiran bahwa karyawan yang bersangkutan berhalangan hadir dan mempertanyakan ketidakhadiran karyawan tersebut. 9. Pembuatan Laporan Setiap bagian dan subbagian diwajibkan untuk membuat laporan kepada Direktur Utama secara berkala, baik per bulan maupun per tahun melalui wakil direktur bagian masingmasing. Laporan yang dibuat berupa laporan obat, laporan keuangan, laporan pasien, laporan jadwal praktek dokter, laporan absensi dokter, laporan jadwal kerja karyawan, dan laporan absensi karyawan. 61 10. Diagram Konteks Berikut ini merupakan diagram konteks dari prosedur sistem yang sedang berjalan pada Klinik M edikarya: Gambar 3.2 Diagram Konteks 62 11. Diagram Nol Berikut merupakan diagram nol dari prosedur sistem yang sedang berjalan pada Klinik M edikarya: Gambar 3.3 Diagram Nol 63 12. Diagram Aliran Dokumen Prosedur Pendaftaran Pasien M eliputi Proses Pendaftaran Pasien Pelayanan Bagian M edis Gambar 3.4 Diagram Aliran Dokumen Pendaftaran Pasien 64 13. Diagram Aliran Dokumen Pengobatan Pasien M eliputi Proses Pencatatan Rekam M edis dan Tindakan Dokter Gambar 3.5 Diagram Aliran Dokumen Proses Pengobatan Pasien 65 14. Diagram Aliran Dokumen Penjualan Obat M eliputi Proses Pencatatan dan Penjualan Obat Gambar 3.6 Diagram Aliran Dokumen Penjualan Obat 66 15. Diagram Aliran Dokumen Prosedur Pembayaran Pasien M eliputi Proses Pembayaran Pasien Gambar 3.7 Diagram Aliran Dokumen Pembayaran Pasien 67 16. Diagram Aliran Dokumen Prosedur Pembelian Obat M eliputi Proses Pembelian Obat ke Pemasok Gambar 3.8 Diagram Aliran Dokumen Pembelian Obat 68 17. Diagram Aliran Dokumen Retur Pembelian Obat M eliputi Proses Retur Pembelian Obat Gambar 3.9 Diagram Aliran Dokumen Retur Pembelian Obat 69 18. Diagram Aliran Dokumen Penjadwalan Dokter M eliputi Proses Penjadwalan Dokter Gambar 3.10 Diagram Aliran Dokumen Penjadwalan Dokter 70 19. Diagram Aliran Dokumen Penjadwalan Karyawan M eliputi Proses Penjadwalan Karyawan Gambar 3.11 Diagram Aliran Dokumen Penjadwalan Karyawan 71 20. Diagram Aliran Dokumen Pembuatan Laporan M eliputi Proses Pembuatan Laporan Gambar 3.12 Diagram Aliran Dokumen Pembuatan Laporan 72 3.1.4.b Kebutuhan Pengguna Berikut ini merupakan kebutuhan pengguna pada Klinik M edikarya, sebagai berikut: 1. Kebutuhan Informasi Data dan informasi yang dibutuhkan oleh Klinik M edikarya, yaitu: a. Pasien Pasien yang terdaftar pada Klinik M edikarya harus memiliki kelengkapan identitas seperti kode yang unik, nama, alamat, dan lain-lain. Setelah identitas yang dimiliki lengkap, pasien dapat mendaftar pada beberapa pelayanan medis yang terdapat pada Klinik M edikarya seperti dokter umum, dokter ahli, dan dokter gizi. Jika pasien belum terdaftar, maka Bagian Administrasi/Tata Usaha akan mendata identitas dari pasien tersebut. b. Dokter Dokter pada Klinik M edikarya memiliki kode yang unik, nama, alamat, dan lainlain. Dokter yang terdapat pada Klinik M edikarya dispesialisasikan berdasarkan Bagian M edis. Urutan pemeriksaan sudah disesuaikan dengan jadwal dan jam praktek setiap dokter oleh Bagian Kepegawaian berdasarkan kesepakatan yang telah dibuat sebelumnya. c. Karyawan Karyawan yang terdapat pada Klinik M edikarya harus memiliki kode yang unik, nama, alamat, dan lain-lain. Karyawan terdiri beberapa bagian dan sub bagian yang memiliki tugas dan wewenangnya masing-masing. 73 d. Obat Obat yang terdapat di rumah apotek Klinik M edikarya memiliki kode yang unik pada setiap item, nama, dan lain-lain. Obat yang terdapat di klinik didapatkan dengan cara pembelian pada Pedagang Besar Farmasi (PBF) selaku pemasok obat yang pertama disetujui oleh Bagian Anggaran dan Belanja serta dilakukan pencatatan oleh Bagian Akutansi. Apabila ada kerusakan pada obat tersebut akan diretur pada pemasok. e. Resep Setiap resep di klinik memiliki kode yang unik, tanggal, dan lain-lain. Resep hanya dikeluarkan dokter untuk pasien yang dapat ditebus di rumah apotek dan melunasi pembayaran pada Bagian Administrasi/Tata Usaha. Apabila tidak ada ketersediaan obat yang terdapat pada daftar resep, maka pasien dapat menebusnya di apotek lain. f. Pasien Berobat Setiap pasien yang akan berobat didata oleh Bagian Administrasi/Tata Usaha baik itu data identitas pasien sewaktu melakukan pendaftaran dan tindakan medis yang pernah dilakukan pasien di klinik ke dalam data pasien berobat, data pasien berobat masing-masing memiliki kode yang unik. g. Rekam M edis Setiap pasien memilik satu rekam medis dan setiap rekam medis tersebut memiliki kode unik, tanggal rekam, hasil periksa, penyakit, dan lain-lain. Data pada rekam medis pasien digunakan sebagai catatan kesehatan pasien setelah malakukan pelayanan medis pada klinik. 74 h. Pemasok Pemasok adalah selaku pihak yang mensuplai obat ke klinik yang memiliki kode unik, nama, alamat, dan lain-lain. i. Pembelian Obat Setiap pembelian obat yang terjadi di klinik memiliki kode unik, nama obat, tanggal pembelian, harga beli obat, jumlah pembelian, dan lain-lain. Pembelian tersebut berfungsi untuk mengetahui dan merekam transaksi pembelian obat yang terjadi di klinik. j. Penjualan Obat Setiap penjualan obat yang terjadi di klinik memiliki kode yang unik, nama obat, tanggal penjualan, harga jual obat, jumlah penjualan, dan lain-lain. Penjualan obat berfungsi untuk mengetahui dan merekam transaksi penjualan obat yang terjadi di klinik. k. Retur Pembelian Obat Retur pembelian obat yang terjadi di klinik dikarenakan ada keterangan obat dalam keadaan rusak pada saat transaksi pembelian obat. M asing-masing memiliki kode unik, nama obat, tanggal retur, jumlah retur, dan lain-lain. Retur berfungsi untuk mengetahui dan merekam transaksi retur pembelian obat yang terjadi di klinik. l. Pembayaran Pasien Pembayaran pasien terjadi di klinik sebagai memiliki kode unik, tanggal pembayaran, total biaya dari baik dari segi pelayanan medis yang dilakukan ataupun 75 transaksi biaya lainnya. Pembayaran pasien berfungsi untuk mengetahui dan merekam transaksi pembayaran yang dilakukan oleh pasien. m. Jadwal Praktek Dokter Setiap dokter di klinik memiliki jadwal prakteknya masing-masing, berdasarkan kode unik. Fungsi jadwal praktek dokter tersebut untuk mengetahui hari dan jam praktek dokter. n. Jadwal Kerja Karyawan Setiap karyawan di klinik memiliki jadwal kerja masing-masing, berdasarkan kode unik. Fungsi jadwal kerja karyawan tersebut untuk mengetahui hari dan jam kerja karyawan. o. Absensi Dokter Setiap dokter klinik memiliki absensi untuk melihat daftar kehadiran dokter, absensi dokter dihitung berdasarkan jadwal praktek dokter dan memiliki kode unik. p. Absensi Karyawan Setiap karyawan klinik memiliki absensi untuk melihat daftar kehadiran karyawan, absensi karyawan dihitung berdasarkan jadwal kerja karyawan dan memiliki kode unik. q. Laporan Laporan adalah daftar kumpulan dari data-data transaksi maupun data master yang berfungsi untuk menganalisis kebutuhan informasi untuk mendukung kegiatan operasional klinik. 76 2. Kebutuhan Keamanan Data Kemanan data merupakan hal yang sangat penting keberadaannya, terlebih diharapkan agar nantinya dapat terbentuk sebuah sistem keamanan data yang memadai baik dari dari segi pencegahan kehilangan data dan hak kewenangan akses yang bersifat autentifikasi dimana hanya pihak-pihak tertentu yang dapat mengakses data tersebut. Hal tersebut dikarenakan data pada Klinik M edikarya masih tersimpan dalam rak-rak pembukuan dimana siapa saja dapat mengaksesnya. Dengan terbentuknya suatu sistem keamanan data tersebut menjadikan data yang terdapat pada Klinik M edikarya terjaga kerahasiaannya. 3. Kebutuhan Integrasi Data Klinik M edikarya membutuhkan sebuah sistem basis data manajemen rumah sakit berbasiskan aplikasi agar data yang ada dapat terintegrasi dengan baik, sehingga mempermudah dalam mendapatkan data dan informasi yang dibutuhkan. Integrasi data juga merupakan hal yang penting untuk menghasilkan dokumen-dokumen yang dibutuhkan klinik menjadi lebih efektif dan akurat, seperti laporan obat, laporan keuangan, laporan pasien, laporan jadwal praktek dokter, laporan absensi dokter, laporan jadwal kerja karyawan dan laporan absensi karyawan. 4. Kebutuhan Kecepatan Akses Data Semua bagian pada Klinik M edikarya memerlukan informasi dan data yang dapat diakses secara cepat, efektif, dan efisien. Bagian-bagian tersebut juga diharapkan untuk membuat suatu arsip data dalam bentuk yang ringkas dan mudah dicari sehingga tidak perlu bergelut dengan lemari-lemari penyimpanan berisi tumpukan kertas dan memudahkan pencarian data-data yang diperlukan. 77 5. Kebutuhan Transaksi Klinik membutuhkan suatu sistem basis data manajemen berbentuk aplikasi yang dapat mendukung proses transaksi untuk memasukkan, mengubah, memperoleh, menghapus data dan informasi dengan cepat dan mudah, dan menganalisis kebutuhan informasi untuk mendukung kegiatan operasional klinik. 3.1.5 Permasalahan yang Dihadapi Adapun permasalahan yang dihadapi oleh Klinik M edikarya saat ini, antara lain sebagai berikut: 1. Penyimpanan data pasien, dokter, karyawan, obat pada rumah apotek, transaksi serta kartu berobat pasien yang berisi rekam medis dari dokter ataupun Bagian Administrasi/Tata Usaha masih menggunakan rak-rak pembukuan sehingga dalam pencarian kartu berobat pasien membutuhkan waktu yang cukup lama. 2. Pengolahan data tiap bagian belum terintegrasi sehingga memperlambat proses penyusunan laporan. 3. Belum terdapatnya sistem keamanan data yang memadai dikarenakan penyimpanan data masih tersimpan dalam rak-rak pembukuan sehingga menyebabkan hilangnya data, kerusakan data, dan tidak terjaminnya kerahasiaan hak akses. 3.1.6 Usulan Pemecahan Masalah Berdasarkan permasalahan yang ada, pemecahan masalah yang dapat dilakukan saat ini adalah dengan membangun rancangan sistem basis data di Klinik M edikarya. Rancangan sistem basis data yang diajukan harus memenuhi kebutuhan manajemen Klinik M edikarya sebagai berikut: 78 1. Proses pencarian data pasien, dokter, karyawan, obat pada rumah apotek, transaksi serta kartu berobat pasien tidak akan membutuhkan waktu yang lama dengan dibuatnya sebuah sistem basis data manajemen rumah sakit yang berbasiskan aplikasi. 2. Dibuat sistem komputerisasi yang dapat mengelola data transaksi, membuat laporan keuangan secara terperinci seperti laporan penjualan obat, laporan pembelian obat, laporan penggajian dokter dan karyawan, laporan pembayaran pasien, dan kegiatan operasional di klinik sehingga waktu pemrosesan akan berjalan cepat. 3. Dibuat sistem basis data dan aplikasi dengan tingkat keamanan yang lebih baik sehingga mengurangi kerusakan serta kehilangan data dan menjamin kerahasiaan data dengan adanya hak akses bagi pengguna. 3.2 Perancangan Dalam perancangan basis data terdapat tiga fase utama, yaitu: Perancangan Basis Data Konseptual, Perancangan Basis Data Logikal, dan Perancangan Basis Data Fisikal. 3.2.1 Perancangan Basis Data Konseptual Berikut ini merupakan langkah-langkah dalam perancangan basis data konseptual, yaitu sebagai berikut: 3.2.1.a Membangun Model Data Konseptual Berikut ini merupakan langkah-langkah membangun model data konseptual, yaitu sebagai berikut: 79 1. Mengidentifikasi Tipe-Tipe Entitas Tabel 3.1 Entitas Kebutuhan Informasi Nama Entitas MsLogin Deskripsi Alias Berisi informasi mengenai - IdLogin dan Password Kejadian Setiap pengguna memiliki IdLogin dan Password MsPasien Berisi informasi mengenai - pasien yang berobat MsDokter Berisi informasi mengenai Pasien yang berobat pada dokter - Dokter yang praktek - Spesialisasi dokter - Karyawan yang bekerja - Jabatan dokter yang praktek MsSpesialis Berisi informasi mengenai spesialisasi dokter MsKaryawan Berisi informasi mengenai karyawan yang bekerja MsJabatan Berisi informasi mengenai jabatan MsObat Berisi informasi mengenai dokter dan karyawan - Obat di rumah apotek - Jenis obat di rumah obat di rumah apotek MsJenisObat Berisi informasi mengenai jenis obat di rumah apotek MsPemasok Berisi informasi mengenai apotek - Pemasok obat - Resep obat pasien yang pemasok obat Resep Berisi informasi mengenai 80 resep obat pasien yang diberikan dokter diberikan dokter RekamM edis Berisi informasi mengenai - Rekam medis pasien - Daftar rekam medis pasien PasienBerobat Berisi informasi mengenai daftar pasien yang berobat Pembelian Berisi informasi mengenai Berisi informasi mengenai - Berisi informasi mengenai Setiap transaksi pembelian obat - transaksi penjualan obat PembayaranPasien yang berobat transaksi pembelian obat Penjualan pasien Setiap transaksi penjualan obat - transaksi pembayaran pasien Setiap pasien, melakukan pembayaran setelah selesai berobat FakturBeli Berisi mengenai faktur - pembelian obat Setiap transaksi pembelian obat, klinik mendapat faktur pembelian obat ReturPembelian Berisi informasi mengenai - Transaksi ketika retur pembelian obat kepada melakukan retur pemasok pembelian obat 81 MsJdwlDokter Berisi informasi mengenai - jadwal praktek dokter Setiap dokter memiliki jadwal praktek yang berbeda MsJdwlKaryawan Berisi informasi mengenai - jadwal kerja karyawan Setiap karyawan memiliki jadwal kerja yang berbeda AbsensiDokter Berisi informasi mengenai - Absensi dokter - Absensi karyawan absensi dokter AbsensiKaryawan Berisi informasi mengenai absensi karyawan 2. Mengidentifikasi Tipe-Tipe Relasi Tabel 3.2 Kamus Data Relasi Nama Entitas MsPasien MsDokter Multiplicity Hubungan Multiplicity Nama Entitas 1..* M emiliki 0..* Resep 1..1 M empunyai 1..* RekamM edis 1..1 M elakukan 1..* PasienBerobat 1..1 M elunasi 1..* PembayaranPasien 1..1 M emasukkan 1..1 MsLogin 1..* M empunyai 1..1 MsSpesialis 1..* M enerima 1..1 MsJabatan 1..1 M enulis 0..* Resep 1..1 Dimiliki 1..* RekamM edis 82 MsKaryawan MsObat MsPemasok 1..1 M enangani 1..* PasienBerobat 1..1 M endapatkan 1..* PembayaranPasien 1..* Diberikan 1..1 MsJdwlDokter 1..1 M emiliki 1..* AbsensiDokter 1..1 M elakukan 1..1 MsLogin 1..* M enerima 1..1 MsJabatan 1..1 M encatat 1..* RekamM edis 1..1 M engelola 1..* Pembelian 1..1 M enangani 1..* Penjualan 1..1 M endapat 1..* FakturBeli 1..1 M embuat 1..* PembayaranPasien 1..1 M emiliki 1..* AbsensiKaryawan 1..* M emberikan 1..1 MsJdwlKaryawan 1..* M emiliki 1..1 MsJenisObat 1..* Dicatat 1..* RekamM edis 1..* Ditebus 0..* Resep 1..* Dibeli 0..* Pembelian 1..* Dijual 0..* Penjualan 1..1 Diberikan 1..* PembayaranPasien 1..* M endapat 1..* FakturBeli 1..* Diretur 0..* ReturPembelian 1..1 M emberikan 1..* FakturBeli 1..1 M enangani 1..* ReturPembelian 83 Resep 1..1 Dicatat 0..1 RekamM edis 1..* M elakukan 1..* Penjualan 1..1 M emiliki 1..1 FakturBeli 1..1 M elakukan 0..* ReturPembelian Penjualan 1..1 M enjual 1..* MsObat PembayaranPasien 1..1 M enebus 1..1 Resep 1..1 Dilakukan 1..1 PasienBerobat Pembelian Gambar 3.13 ER Diagram 84 85 3. Mengidentifikasi dan Menghubungkan Atribut dengan Tipe-Tipe Entitas, Domain Atribut, Primary Key, dan Candidate Key Berikut ini merupakan nama-nama entitas yang ada pada Klinik M edikarya, yaitu sebagai berikut: Tabel 3.3 Kamus Data Atribut 1. Nama Entitas : MsLogin Atribut IdLogin Data Types Deskripsi Berisi Nulls Multivalue Char (8) No No Varchar (10) No No Varchar (15) No No Nulls Multivalue Char (10) No No & Length IdLogin yang digunakan pengguna Password Berisi mengenai password yang digunakan pengguna Status Status pengguna 2. Nama Entitas: MsPasien Data Types Atribut NIP Deskripsi Secara unik mengidentifikasi & Length pasien Nama Nama pasien Varchar (30) No No NoIdentitas Nomor identitas pasien Varchar (20) Yes No TmptLhr Tempat lahir pasien Varchar (20) No No TglLhr Tanggal lahir pasien Datetime No No JnsKlmn Jenis kelamin pasien Char (1) No No Agama Agama pasien Varchar (10) No No GolDarah Golongan darah pasien Varchar (2) No No StatKawin Status perkawinan pasien Varchar (15) No No Alamat Alamat pasien Varchar (50) No No 86 KodePos Kode pos pasien Char (5) No No Kota Kota pasien Varchar (20) No No TelpPasien Telepon pasien Varchar (15) No Yes Pekerjaan Pekerjaan pasien Varchar (15) No No Data Types Nulls Multivalue Char (5) No No 3. Nama Entitas: MsDokter Atribut Deskripsi & Length KdDokter Secara unik mengidentifikasi dokter NamaDok Nama dokter Varchar (30) No No TmptLhrDok Tempat lahir dokter Varchar (20) No No TglLhrDok Tanggal lahir dokter Datetime No No JnsKlmnDok Jenis kelamin dokter Char (1) No No AgamaDok Agama dokter Varchar (10) No No StatKawinDok Status perkawinan dokter Varchar (15) No No AlamatDok Alamat dokter Varchar (50) No No KodePos Kode pos dokter Char (5) No No Kota Kota dokter Varchar (20) No No TelpDok Telepon dokter Varchar (15) No Yes BiayaDok Biaya dokter Numeric No No GajiDok Gaji dokter Numeric No No Nulls Multivalue Char (5) No No Varchar (20) No No 4. Nama Entitas: MsS pesialis Data Types Atribut KdSpesialis Deskripsi Secara unik mengidentifikasi & Length spesialis Spesialis Spesialisasi dokter 87 5. Nama Entitas: MsKaryawan Atribut KdKary Deskripsi Secara unik mengidentifikasi Data Types Nulls Multivalue Char (5) No No & Length karyawan NamaKary Nama karyawan Varchar (30) No No TmptLhrKary Tempat lahir karyawan Varchar (20) No No TglLhrKary Tanggal lahir karyawan Datetime No No JnsKlmnKary Jenis kelamin karyawan Char (1) No No AgamaKary Agama karyawan Varchar (10) No No StatKawinKary Status perkawinan karyawan Varchar (15) No No StatPendiKary Status pendidikan karyawan Varchar (10) No No AlamatKary Alamat karyawan Varchar (50) No No KodePos Kode pos karyawan Char (5) No No Kota Kota karyawan Varchar (20) No No TelpKary Telepon karyawan Varchar (15) No Yes GajiKary Gaji karyawan Numeric No No Nulls Multivalue Char (5) No No Varchar (30) No No 6. Nama Entitas: MsJabatan Atribut KdJabatan Deskripsi Secara unik mengidentifikasi Data Types & Length jabatan Jabatan Jabatan dokter dan karyawan 88 7. Nama Entitas: MsObat Atribut KdObat Deskripsi Secara unik mengidentifikasi Data Types Nulls Multivalue Char (8) No No & Length obat NamaObat Nama obat Varchar (30) No No Kemasan Kemasan obat Varchar (10) No No Isi Banyak obat dalam kemasan Int No No QtyObatS Total obat yang tersedia Int Yes No HargaObat Harga satuan obat Numeric No No Nulls Multivalue Char (8) No No Varchar (30) No No Nulls Multivalue Char (8) No No 8. Nama Entitas: MsJenisObat Atribut Deskripsi Data Types & Length KdJenisObat Secara unik mengidentifikasi jenis obat JenisObat Jenis obat 9. Nama Entitas: MsPemasok Atribut Deskripsi Data Types & Length KdPemasok Secara unik mengidentifikasi pemasok NamaPemasok Nama pemasok Varchar (30) No No Alamat Alamat pemasok Varchar (50) No No KodePos Kode pos pemasok Char (5) No No Kota Kota pemasok Varchar (20) No No TelpPemasok Telepon Pemasok Varchar (15) No Yes 89 10. Nama Entitas: Resep Atribut Deskripsi Data Types & Nulls Multivalue Length KdResep Secara unik mengidentifikasi Char (8) No No Datetime No No Int No No Varchar (15) No No Numeric No No resep TglResep Tanggal resep QtyObatResep Total obat yang ditebus DosisObat Dosis pemakaian obat BiayaResep Biaya resep 11. Nama Entitas : RekamMedis Atribut Deskripsi Data Types & Nulls Multivalue Length NoRekam Secara unik mengidentifikasi Char (8) No No Datetime No No Datetime No No Int No No rekam medis pasien TglRekam Tanggal pencatatan rekam medis berdasarkan kunjungan JamRekam Jam rekam medis pasien UmurPasien Umur pasien Keluhan Keluhan pasien Varchar (100) No No Penyakit Penyakit pasien Varchar(30) No No Tindakan Tindakan yang diberikan Varchar(50) No No 12. Nama Entitas: PasienBerobat Atribut Deskripsi Data Types & Nulls Multivalue Length NoBerobat Secara unik mengidentifikasi nomor pasien berobat Char (8) No No 90 TglBerobat Tanggal melakukan Datetime No No Datetime No No Int No No Varchar (15) No No pengobatan JamBerobat Jam melakukan pengobatan UmurPasien Umur pasien Pelayanan Pelayanan M edis yang dilakukan pada pasien 13. Nama Entitas: Pembelian Atribut Deskripsi Data Types & Nulls Multivalue Length NoPembelian Secara unik mengidentifikasi Char (8) No No nomor pembelian TglPembelian Tanggal pembelian Datetime No No Status Status pembayaran Varchar (15) No No 14. Nama Entitas: Penjualan Atribut Deskripsi Data Types & Nulls Multivalue Length NoPenjualan Secara unik mengidentifikasi Char (8) No No Datetime No No Int Yes No nomor penjualan TglPenjualan Tanggal penjualan QtyObatK Total obat yang keluar 15. Nama Entitas : PembayaranPasien Atribut Deskripsi Data Types Nulls Multivalue No No & Length NoPembayaran Berisi mengenai pembayaran nomor Char (8) 91 Tanggal Berisi mengenai tanggal Datetime No No Berisi mengenai jam pada saat Datetime No No Numeric No No Numeric No No pembayaran Jam melakukan pembayaran BiayaAdmin Berisi mengenai biaya pembayaran administrasi yang dilakukan TotalBiaya Berisi mengenai total biaya pengobatan yang dilakukan 16. Nama Entitas: FakturBeli Atribut Deskripsi Data Types & Nulls Multivalue Length NoFaktur Nomor faktur pembelian Char(8) No No Tanggal faktur pembelian Datetime No No Int Yes No obat TglFaktur obat QtyObatB Total obat yang dibeli HargaObatB Harga beli obat Numeric No No TtlHargaObat Total harga obat Numeric No No PPN Pajak Varchar(5) No No JthTempo Tanggal Datetime No No jatuh tempo pembayaran 17. Nama Entitas: ReturPembelian Atribut Deskripsi Data Types & Nulls Multivalue Length NoRetur Secara unik mengidentifikasi nomor retur pembelian Char (8) No No 92 TglRetur Tanggal pembelian QtyObatR Total obat yang diretur KetR Keterangan retur Datetime No No Int Yes No Varchar (20) No No 18. Nama Entitas : MsJdwlDokter Atribut Deskripsi Data Types Nulls Multivalue & Length KdJdwlDokter Berisi mengenai kode jadwal Char (5) No No Varchar (20) No No Varchar (11) No No Data Types & Nulls Multivalue Char (5) No No Varchar (20) No No Datetime No No praktek dokter HariPraktek Berisi mengenai hari praktek dokter JamPraktek Berisi mengenai jam praktek dokter 19. Nama Entitas : MsJdwlKaryawan Atribut Deskripsi Length KdJdwlKary Berisi mengenai kode jadwal kerja karyawan HariKerja Berisi mengenai hari kerja karyawan JamKerja Berisi mengenai jam kerja karyawan 20. Nama Entitas: AbsensiDokter Atribut Deskripsi Data Types & Nulls Multivalue Length KdAbsenDok Secara unik mengidentifikasi absensi dokter Char (8) No No 93 TglAbsenDok Tanggal absensi dokter Datetime No No JamPraktek Jam praktek dokter Datetime No No KehadiranDok Kehadiran dokter Varchar (10) No No KetAbsenDok Keterangan absen dokter Varchar (20) No No 21. Nama Entitas: AbsensiKaryawan Atribut KdAbsenKary Deskripsi Secara unik mengidentifikasi Data Types & Length Nulls Multivalue Char (8) No No absensi karyawan TglAbsenKary Tanggal absensi karyawan Datetime No No JamKerja Jam kerja karyawan Datetime No No KehadiranKary Kehadiran karyawan Varchar (10) No No KetAbsenKary Keterangan absen karyawan Varchar (20) No No Dari hasil penentuan atribut maka ditentukan domain atribut sebagai berikut: Tabel 3.4 Domain Atribut Atribut NIP Domain Atribut Digit 1 sampai 3 diisi dengan NIP dan digit lainnya diisi dengan angka. NoIdentitas Digit 1 sampai 20 diisi dengan digit angka. KdDokter Digit 1 sampai 2 diisi dengan KD dan digit lainnya diisi dengan angka. KdSpesialis Digit 1 sampai 3 diisi dengan KDS dan digit lainnya diisi dengan angka. KdKary Digit 1 sampai 2 diisi dengan KK dan digit lainnya diisi dengan angka. 94 KdJabatan Digit 1 sampai 3 diisi dengan KKJ dan digit lainnya diisi dengan angka. KdObat Digit 1 sampai 3 diisi dengan KOB dan digit lainnya diisi dengan angka. KdJenisObat Digit 1 sampai 3 diisi dengan KJB dan digit lainnya diisi dengan angka. KdPemasok Digit 1 sampai 3 diisi dengan KPM dan digit lainnya diisi dengan angka. KdResep Digit 1 sampai 2 diisi dengan KP dan digit lainnya diisi dengan angka. NoRekam Digit 1 sampai 3 diisi dengan NRM dan digit lainnya diisi dengan angka. NoBerobat Digit 1 sampai 2 diisi dengan NB dan digit lainnya diisi dengan angka. NoPembelian Digit 1 sampai 3 diisi dengan NPB dan digit lainnya diisi dengan angka. NoPenjualan Digit 1 sampai 3 diisi dengan NPJ dan digit lainnya diisi dengan angka. NoPembayaran Digit 1 sampai 2 diisi dengan NP dan digit lainnya diisi dengan angka. NoFaktur Digit 1 sampai 2 diisi dengan NF dan digit lainnya diisi dengan angka. NoRetur Digit 1 sampai 2 diisi dengan NR dan digit lainnya diisi dengan angka. KdJdwlDokter Digit 1 sampai 3 diisi dengan KJD dan digit lainnya diisi dengan angka. KdJdwlKary Digit 1 sampai 3 diisi dengan KJK dan digit lainnya diisi dengan angka. 95 KdAbsensiKary Digit 1 sampai 3 diisi dengan KAK dan digit lainnya diisi dengan angka. KdAbsensiDok Digit 1 sampai 3 diisi dengan KAD dan digit lainnya diisi dengan angka. M engidentifikasi candidate key dan primary key dapat dilihat pada tabel sebagai berikut: Tabel 3.5 Penentuan Atribut Candidate Key, Primary Key dan Alternate Key Nama Entitas Candidate Key Primary Key MsLogin IdLogin IdLogin MsPasien NIP, NoIdentitas, TelpPasien NIP MsDokter KdDokter, TelpDok KdDokter MsSpesialis KdSpesialis KdSpesialis MsKaryawan KdKary, TelpKary KdKary MsJabatan KdJabatan KdJabatan MsObat KdObat KdObat MsJenisObat KdJenisObat KdJenisObat MsPemasok KdPemasok, TelpPemasok KdPemasok MsResep KdResep KdResep RekamM edis NoRekam NoRekam PasienBerobat NoBerobat NoBerobat Pembelian NoPembelian NoPembelian Penjualan NoPenjualan NoPenjualan PembayaranPasien NoPembayaran NoPembayaran 96 FakturBeli NoFaktur NoFaktur ReturPembelian NoRetur NoRetur MsJdwlDokter KdJdwlDokter KdJdwlDokter MsJdwlKaryawan KdJdwlKary KdJdwlKary AbsensiDokter KdAbsenDok KdAbsenDok AbsensiKaryawan KdAbsenKary KdAbsenKary 4. Mengecek Redudansi pada Model Bertujuan untuk memeriksa adanya redudansi pada model. Ada beberapa langkah yang perlu dipertimbangkan yaitu: a. Re-examine one-to-one (1:1) relations Setelah diperiksa, kami menemukan entitas dengan relasi one-to-one, yaitu: Gambar 3.14 Relasi 1:1 antara M sDokter dengan M sLogin Gambar 3.15 Relasi 1:1 antara M sKaryawan dengan M sLogin 97 Gambar 3.16 Relasi 1:1 antara Resep dengan RekamM edis Gambar 3.17 Relasi 1:1 antara Pembelian dengan FakturBeli Gambar 3.18 Relasi 1:1 antara PembayaranPasien dengan Resep Gambar 3.19 Relasi 1:1 antara PembayaranPasien dengan PasienBerobat 98 b. Hilangkan relasi redudansi Setelah diperiksa, kami menemukan relasi redundansi yang bermasalah sehingga harus dihilangkan, yaitu: Gambar 3.20 Relasi 1:1 antara Pembelian dengan FakturBeli 5. Menvalidasi Model Konseptual Lokal dengan Transaksi Pengguna M odel konseptual lokal harus diuji apakah dapat menjalankan transaksi yang diinginkan oleh pengguna. Berikut adalah contoh-contoh transaksi yang dapat divalidasikan terhadap model konseptual lokal: a. M emasukkan/ubah data M sLogin b. M emasukkan/ubah data M sPasien c. M emasukkan/ubah data M sDokter d. M emasukkan/ubah data M sSpesialis e. M emasukkan/ubah data M sKaryawan f. M emasukkan/ubah data M sJabatan g. M emasukkan/ubah data M sObat 99 h. M emasukkan/ubah data M sJenisObat i. M emasukkan/ubah data M sPemasok j. M emasukkan/ubah data Resep k. Tampilkan rincian data Resep l. M emasukkan/ubah data RekamM edis m. Tampilkan rincian data RekamM edis n. M emasukkan/ubah data PasienBerobat o. M emasukkan/ubah data Pembelian p. Tampilkan rincian data Pembelian q. M emasukkan/ubah data Penjualan r. Tampilkan rincian data Penjualan s. M emasukkan/ubah data PembayaranPasien t. M emasukkan/ubah data FakturBeli u. Tampilkan rincian data FakturBeli v. M emasukkan/ubah data ReturPembelian w. Tampilkan rincian data ReturPembelian x. M emasukkan/ubah data AbsensiDokter y. M emasukkan/ubah data AbsensiKaryawan z. M emasukkan/ubah data M sJdwlDokter aa. M emasukkan/ubah data M sJdwlKaryawan Query yang dibutuhkan: • Pembuatan Laporan Obat • Pembuatan Laporan Pasien 100 • Pembuatan Laporan Keuangan • Pembuatan Laporan Absensi Dokter • Pembuatan Laporan Absensi Karyawan • Pembuatan Laporan Jadwal Praktek Dokter • Pembuatan Laporan Jadwal Kerja Karyawan • Tampilkan data pasien • Tampilkan data dokter • Tampilkan data karyawan • Tampilkan data obat • Tampilkan data pemasok • Tampilkan data resep • Tampilkan data rekam medis • Tampilkan data pembelian • Tampilkan data penjualan • Tampilkan data faktur beli • Tampilkan data retur pembelian • Tampilakan data jadwal praktek dokter • Tampilkan data jadwal kerja karyawan • Tampilkan data absensi dokter • Tampilkan data absensi karyawan Gambar 3.21 M odel Konseptual yang M endukung Transaksi Pengguna dengan M enggunakan Pathways 101 102 3.2.2 Perancangan Basis Data Logikal Berikut ini merupakan langkah-langkah dalam perancangan basis data logikal, yaitu sebagai berikut: 3.2.2.a Membangun dan Memvalidasi Model Data Logikal Berikut ini merupakan langkah-langkah membangun dan memvalidasi model data logikal, yaitu sebagai berikut: 1. Menghilangkan Fitur-Fitur yang Tidak Sesuai dengan Model Relational Berikut ini merupakan tahap penyesuaian dari model data konseptual lokal agar bisa digunakan dengan lebih mudah oleh sistem, dengan melakukan aktivitas: a. Menghilangkan many to many (*:*) binary relationship types 1. Relasi antara M sPasien dan M sResep membentuk entitas baru, yaitu DetailResep. i ii Keterangan: (i) Kondisi awal, (ii) Kondisi akhir Gambar 3.22 Relasi many to many M sPasien dan Resep 103 2. Relasi antara M sObat dan RekamM edis membentuk entitas baru, yaitu DetailRekamM edis. i ii Keterangan: (i) Kondisi awal, (ii) Kondisi akhir Gambar 3.23 Relasi many to many M sObat dan RekamM edis 3. Relasi antara M sObat dan Resep membentuk entitas baru, yaitu DetailResep. i 104 ii Keterangan: (i) Kondisi awal, (ii) Kondisi akhir Gambar 3.24 Relasi many to many M sObat dan Resep 4. Relasi antara M sObat dan Pembelian membentuk entitas baru, yaitu DetailPembelian. i ii Keterangan: (i) Kondisi awal, (ii) Kondisi akhir Gambar 3.25 Relasi many to many M sObat dan Pembelian 105 5. Relasi antara M sObat dan Penjualan membentuk entitas baru, yaitu DetailPenjualan. i ii Keterangan: (i) Kondisi awal, (ii) Kondisi akhir Gambar 3.26 Relasi many to many M sObat dan Penjualan 6. Relasi antara M sObat dan FakturBeli membentuk entitas baru, yaitu DetailFakturBeli. i 106 ii Keterangan: (i) Kondisi awal, (ii) Kondisi akhir Gambar 3.27 Relasi many to many M sObat dan FakturBeli 7. Relasi antara M sObat dan ReturPembelian membentuk entitas baru, yaitu DetailReturPembelian. i ii Keterangan: (i) Kondisi awal, (ii) Kondisi akhir Gambar 3.28 Relasi many to many M sObat dan ReturPembelian 107 8. Relasi antara Resep dan Penjualan membentuk entitas baru, yaitu DetailPenjualan. i ii Keterangan: (i) Kondisi awal, (ii) Kondisi akhir Gambar 3.29 Relasi many to many Resep dan Penjualan b. Menghilangkan atribut multi-valued MsPasien (NIP, Nama, NoIdentitas, TmptLhr, TglLhr, JnsKlmn, Agama, GolDarah, StatKawin, Alamat, KodePos, Kota, TelpPasien, Pekerjaan) Primary Key (NIP) 108 i ii Keterangan: (i) Kondisi awal, (ii) Kondisi akhir Gambar 3.30 Atribut Multi-valued pada M sPasien MsDokter (KdDokter, NamaDok, TmptLhrDok, TglLhrDok, JnsKlmnDok, AgamaDok, StatKwinDok, AlamatDok, KodePos, Kota, TelpDok, BiayaDok, GajiDok) Primary Key (KdDokter) i 109 ii Keterangan: (i) Kondisi awal, (ii) Kondisi akhir Gambar 3.31 Atribut Multi-valued pada M sDokter MsKaryawan (KdKary, NamaKary, TmptLhrKary, TglLhrKary, JnsKlmnKary, AgamaKary, StatKawinKary, StatPendiKary, AlamatKary, KodePos, Kota, TelpKary, GajiKary) Primary Key (KdKary) i ii Keterangan: (i) Kondisi awal, (ii) Kondisi akhir Gambar 3.32 Atribut Multi-Valued pada M sKaryawan 110 MsPemasok (KdPemasok, NamaPemasok, Alamat, KodePos, Kota, TelpPemasok) Primary Key (KdPemasok) i ii Keterangan: (i) Kondisi awal, (ii) Kondisi akhir Gambar 3.33 Atribut Multi-Valued pada M sPemasok 2. Menurunkan Relasi untuk Model Data Logikal a. Identifikasi Strong Entity MsLogin (IdLogin, Password, Status) Primary Key (IdLogin) MsPasien (NIP, Nama, NoIdentitas, TmptLhr, TglLhr, JnsKlmn, Agama, GolDarah, StatKawin, Alamat, KodePos, Kota, Pekerjaan) Primary Key (NIP) 111 MsDokter (KdDokter, NamaDok, TmptLhrDok, TglLhrDok, JnsKlmnDok, AgamaDok, StatKawinDok, AlamatDok, KodePos, Kota, BiayaDok, GajiDok) Primary Key (KdDokter) MsS pesialis (KdSpesialis, Spesialis) Primary Key (KdSpesialis) MsKaryawan (KdKary, NamaKary, TmptLhrKary, TglLhrKary, JnsKlmnKary, AgamaKary, StatKawinKary, StatPendiKary, AlamatKary, KodePos, Kota, GajiKary) Primary Key (KdKary) MsJabatan (KdJabatan, Jabatan) Primary Key (KdJabatan) MsObat (KdObat, NamaObat, Kemasan, Isi, QtyObatS, HargaObat) Primary Key (KdObat) MsJenisObat (KdJenisObat, JenisObat) Primary Key (KdJenisObat) MsPemasok (KdPemasok, NamaPemasok, Alamat, KodePos, Kota) Primary Key (KdPemasok) 112 Resep (KdResep, TglResep, BiayaResep) Primary Key (KdResep) RekamMedis (NoRekam, TglRekam, JamRekam, UmurPasien) Primary Key (NoRekam) PasienBerobat (NoBerobat, TglBerobat, JamBerobat, UmurPasien, Pelayanan) Primary Key (NoBerobat) Pembelian (NoPembelian, T glPembelian) Primary Key (NoPembelian) Penjualan (NoPenjualan, TglPenjualan) Primary Key (NoPenjualan) PembayaranPasien (NoPembayaran, Tanggal, Jam, BiayaAdmin, TotalBiaya) Primary Key (NoPembayaran) FakturBeli (NoFaktur, TglFaktur, HargaObatB, TtlHargaObat, PPN, JthTempo) Primary Key (NoFObat) ReturPembelian (NoRetur, TglRetur, KetR) Primary Key (NoRetur) 113 MsJdwlDokter (KdJdwlDokter, HariPraktek, JamPraktek) Primary Key (KdJdwlDokter) MsJdwlKaryawan (KdJdwlKary, HariKerja, JamKerja) Primary Key (KdJdwlKary) AbsensiDokter (KdAbsenDok, TglAbsenDok, JamPraktek, KehadiranDok, KetAbsenDok) Primary Key (KdAbsenDok) AbsensiKaryawan (KdAbsenKary, TglAbsenKary, JamKerja, KehadiranKary, KetAbsenKary) Primary Key (KdAbsenKary) b. Identifikasi Weak Entity DetailResep (DosisObat, QtyObatResep) Primary Key belum ada (untuk saat ini) DetailPembelian (Status) Primary Key belum ada (untuk saat ini) DetailPenjualan (QtyObatK) Primary Key belum ada (untuk saat ini) 114 DetailFakturBeli (QtyObatB) Primary Key belum ada (untuk saat ini) DetailReturPembelian (QtyObatR) Primary Key belum ada (untuk saat ini) DetailRekamMedis (Keluhan, Penyakit, Tindakan) Primary Key belum ada (untuk saat ini) TelpPasien (TelpPasien) Primary Key (TelpPasien) TelpDok (TelpDok) Primary Key (TelpDok) TelpKary (TelpKary) Primary Key (TelpKary) TelpPemasok (TelpPemasok) Primary Key (TelpPemasok) 115 c. One-to-Many (1:*) binary relationship types 1. Hubungan M sPasien dengan RekamM edis 2. Hubungan M sPasien dengan PasienBerobat 3. Hubungan M sPasien dengan PembayaranPasien 116 4. Hubungan M sPasien dengan TelpPasien 5. Hubungan M sDokter dengan M sSpesialis 6. Hubungan M sDokter dengan M sJabatan 117 7. Hubungan M sDokter dengan Resep 8. Hubungan M sDokter dengan RekamM edis 9. Hubungan M sDokter dengan PasienBerobat 118 10. Hubungan M sDokter dengan PembayaranPasien 11. Hubungan M sDokter dengan M sJdwlDokter 12. Hubungan M sDokter dengan AbsensiDokter 119 13. Hubungan M sDokter dengan TelpDok 14. Hubungan M sKaryawan dengan M sJabatan 15. Hubungan M sKaryawan dengan RekamM edis 120 16. Hubungan M sKaryawan dengan Pembelian 17. Hubungan M sKaryawan dengan Penjualan 18. Hubungan M sKaryawan dengan FakturBeli 121 19. Hubungan M sKaryawan dengan PembayaranPasien 20. Hubungan M sKaryawan dengan AbsensiKaryawan 21. Hubungan M sKaryawan dengan M sJdwlKaryawan 122 22. Hubungan M sKaryawan dengan TelpKary 23. Hubungan M sObat dengan M sJenisObat 24. Hubungan M sObat dengan PembayaranPasien 123 25. Hubungan M sPemasok dengan FakturBeli 26. Hubungan M sPemasok dengan ReturPembelian 27. Hubungan M sPemasok dengan TelpPemasok 124 28. Hubungan Pembelian dengan ReturPembelian 29. Hubungan Penjualan dengan M sObat d. One-to-One (1:1) binary relationship types 1. Hubungan M sDokter dengan M sLogin 125 2. Hubungan M sKaryawan dengan M sLogin 3. Hubungan Resep dengan RekamM edis 4. Hubungan PembayaranPasien dengan Resep 126 5. Hubungan PembayaranPasien dengan PasienBerobat 6. Hubungan Pembelian dengan FakturBeli e. Many-to-Many (*:*) binary relationship types 1. Relasi antara M sPasien dengan Resep menghasilkan entitas baru, yaitu DetailResep yang menerima posting NIP dan KdResep. 127 MsPasien (NIP, Nama, Resep (KdResep, TglResep, BiayaResep, NoIdentitas, TmptLhr, TglLhr, KdDokter) JnsKlmn, Agama, GolDarah, Primary Key (KdResep) StatKawin, Alamat, KodePos, Foreign Key (KdDokter) references M sDokter Kota, Pekerjaan) Primary Key (NIP) DetailResep (NIP, KdResep, DosisObat) Primary Key (NIP, KdResep) Foreign Key (NIP) references MsPasien Foreign Key (KdResep) references Resep 2. Relasi antara M sObat dengan RekamM edis menghasilkan entitas baru, yaitu DetailRekamM edis yang menerima posting KdObat dan NoRekam. MsObat (KdObat, NamaObat, RekamMedis Kemasan, Isi, QtyObatS, JamRekam, (NoRekam, UmurPasien, HargaObat, KdJenisObat) KdKary, KdResep) Primary Key (KdObat) Primary Key (NoRekam) Foreign Key NIP, TglRekam, KdDokter, (KdJenisObat) Foreign Key (NIP) references MsPasien references MsJenisObat Foreign Key (KdDokter) references M sDokter Foreign Key (KdKary) references MsKaryawan Foreign Key (KdResep) references Resep DetailRekamMedis (KdObat, NoRekam, Keluhan, Penyakit, Tindakan) Primary Key (KdObat, NoRekam) Foreign Key (KdObat) references M sObat Foreign Key (NoRekam) references RekamM edis 128 3. Relasi antara M sObat dengan Resep menghasilkan entitas baru, yaitu DetailResep yang menerima posting KdObat dan KdResep. MsObat (KdObat, NamaObat, Resep (KdResep, TglResep, BiayaResep, Kemasan, Isi, QtyObatS, HargaObat, KdDokter) KdJenisObat) Primary Key (KdResep) Primary Key (KdObat) Foreign Key (KdDokter) references Foreign Key (KdJenisObat) references MsDokter MsJenisObat DetailResep (NIP, KdResep, KdObat, DosisObat, QtyObatResep) Primary Key (NIP, KdResep, KdObat) Foreign Key (NIP) references MsPasien Foreign Key (KdResep) references Resep Foreign Key (KdObat) references M sObat 4. Relasi antara M sObat dengan Pembelian menghasilkan entitas baru, yaitu DetailPembelian yang menerima posting posting KdObat dan NoPembelian. MsObat (KdObat, NamaObat, Pembelian (NoPembelian, Kemasan, Isi, QtyObatS, HargaObat, TglPembelian, KdKary, NoFaktur) KdJenisObat) Primary Key (NoPembelian) Primary Key (KdObat) Foreign Key (KdKary) references Foreign Key (KdJenisObat) references MsKaryawan MsJenisObat Foreign Key (NoFaktur) references FakturBeli DetailPembelian (KdObat, NoPembelian, Status) Primary Key (KdObat, NoPembelian) Foreign Key (KdObat) references M sObat Foreign Key (NoPembelian) references Pembelian 129 5. Relasi antara M sObat dengan Penjualan menghasilkan entitas baru, yaitu DetailPenjualan yang menerima posting KdObat dan NoPenjualan. MsObat (KdObat, NamaObat, Penjualan (NoPenjualan, TglPenjualan, Kemasan, Isi, QtyObatS, HargaObat, KdKary) KdJenisObat) Primary Key (NoFaktur) Primary Key (KdObat) Foreign Key (KdKary) references Foreign Key (KdJenisObat) references MsKaryawan MsJenisObat DetailPenjualan (KdObat, NoPenjualan, QtyObatK) Primary Key (KdObat, NoPenjualan) Foreign Key (KdObat) references M sObat Foreign Key (NoPenjualan) references Penjualan 6. Relasi antara M sObat dengan FakturBeli menghasilkan entitas baru, yaitu DetailFakturBeli yang menerima posting KdObat dan NoFaktur. MsObat (KdObat, NamaObat, FakturBeli Kemasan, Isi, QtyObatS, HargaObat, HargaObatB, (NoFaktur, TglFaktur, TtlHargaObat, KdJenisObat) JthTempo, KdKary, KdPemasok) Primary Key (KdObat) Primary Key (NoFaktur) Foreign Key (KdJenisObat) references Foreign MsJenisObat Key (KdKary) PPN, references MsKaryawan Foreign Key (KdPemasok) references MsPemasok DetailFakturBeli (KdObat, NoFaktur, QtyObatB) Primary Key (KdObat, NoFaktur) Foreign Key (KdObat) references M sObat Foreign Key (NoFaktur) references FakturBeli 130 7. Relasi antara M sObat dengan ReturPembelian menghasilkan entitas baru, yaitu DetailReturPembelian yang menerima posting KdObat dan NoRetur. MsObat (KdObat, NamaObat, ReturPembelian (NoRetur, TglRetur, Kemasan, Isi, QtyObatS, HargaObat, KetR, KdPemasok, NoPembelian) KdJenisObat) Primary Key (NoRetur) Primary Key (KdObat) Foreign Key (KdPemasok) references Foreign Key (KdJenisObat) references MsPemasok MsJenisObat Foreign Key (NoPembelian) references Pembelian DetailReturPembelian (KdObat, NoRetur, QtyObatR) Primary Key (KdObat, NoRetur) Foreign Key (KdObat) references M sObat Foreign Key (NoRetur) references ReturPembelian 8. Relasi antara Resep dengan Penjualan menghasilkan entitas baru, yaitu DetailPenjualan yang menerima posting KdResep dan NoPenjualan. Resep (KdResep, TglResep, Penjualan (NoPenjualan, TglPenjualan, BiayaResep, KdDokter) KdKary) Primary Key (KdResep) Primary Key (NoFaktur) Foreign Key (KdDokter) references Foreign MsDokter Key (KdKary) references MsKaryawan Foreign Key (KdPemasok) references MsPemasok DetailPenjualan (KdObat, KdResep, NoPenjualan, QtyObatK) Primary Key (KdObat, KdResep, NoPenjualan) Foreign Key (KdObat) references M sObat Foreign Key (KdResep) references Resep Foreign Key (NoPenjualan) references Penjualan 3. Validasi Relasi dengan Normalisai MsLogin Semua sudah memenuhi 1NF, 2NF dan 3NF. Karena sudah mempunyai primary key, tidak ditemukan repeating groups, tidak ada hubungan partial dependency dan tidak ada hubungan transitive dependency. • MsLogin (IdLogin, Password, Status) MsPasien Validasi 1NF dan 2NF: sudah memenuhi 1NF dan 2NF karena sudah mempunyai primary key, tidak ditemukan repeating groups dan tidak ada hubungan partial dependency. 131 132 Validasi 3NF: tidak memenuhi 3NF karena ada hubungan transitive dependency pada KodePos yang ditunjukan oleh fd2. • MsPasien (NIP, Nama, NoIdentitas, TmptLhr, TglLhr, JnsKlmn, Agama, GolDarah, StatKawin, Alamat, KodePos, Pekerjaan) • KodePos (KodePos, Kota) TelpPasien Semua sudah memenuhi 1NF, 2NF dan 3NF. Karena sudah mempunyai primary key, tidak ditemukan repeating groups, tidak ada hubungan partial dependency dan tidak ada hubungan transitive dependency. • TelpPasien (TelpPasien, NIP) 133 MsDokter Validasi 1NF dan 2NF: sudah memenuhi 1NF dan 2NF karena sudah mempunyai primary key, tidak ditemukan repeating groups dan tidak ada hubungannya dengan partial dependency. Validasi 3NF: tidak memenuhi 3NF karena ada hubungan transitive dependency pada KodePos yang ditunjukan oleh fd2. • MsDokter (KdDokter, NamaDok, TmptLhrDok, TglLhrDok, JnsKlmnDok, AgamaDok, StatKawinDok, AlamatDok, KodePos, BiayaDok, GajiDok, KdSpesialis, KdJabatan, KdJdwlDokter, IdLogin) • KodePos (KodePos, Kota) 134 TelpDok Semua sudah memenuhi 1NF, 2NF dan 3NF. Karena sudah mempunyai primary key, tidak ditemukan repeating groups, tidak ada hubungan partial dependency dan tidak ada hubungan transitive dependency. • TelpDok (TelpDok, KdDokter) MsS pesialis Semua sudah memenuhi 1NF, 2NF dan 3NF. Karena sudah mempunyai primary key, tidak ditemukan repeating groups, tidak ada hubungan partial dependency dan tidak ada hubungan transitive dependency. • MsSpesialis (KdSpesialis, Spesialis) 135 MsKaryawan Validasi 1NF dan 2NF : sudah memenuhi 1NF dan 2NF karena sudah mempunyai primary key, tidak ditemukan repeating groups dan tidak ada hubungannya dengan partial dependency. Validasi 3NF: tidak memenuhi 3NF karena ada hubungan transitive dependency pada KodePos yang ditunjukan oleh fd2. • MsKaryawan (KdKary, NamaKary, TmptLhrKary, TglLhrKary JnsKlmnKary, StatPendiKary, AlamatKary, KodePos, GajiKary, KdJabatan, KdJdwlKary, IdLogin) • KodePos (KodePos, Kota) TelpKary AgamaKary, StatKawinKary, 136 Semua sudah memenuhi 1NF, 2NF dan 3NF. Karena sudah mempunyai primary key, tidak ditemukan repeating groups, tidak ada hubungan partial dependency dan tidak ada hubungan transitive dependency. • TelpKary (TelpKary, KdKary) MsJabatan Semua sudah memenuhi 1NF, 2NF dan 3NF. Karena sudah mempunyai primary key, tidak ditemukan repeating groups, tidak ada hubungan partial dependency dan tidak ada hubungan transitive dependency. • MsJabatan (KdJabatan, Jabatan) MsObat 137 Semua sudah memenuhi 1NF, 2NF dan 3NF. Karena sudah mempunyai primary key, tidak ditemukan repeating groups, tidak ada hubungan partial dependency dan tidak ada hubungan transitive dependency. • MsObat (KdObat, NamaObat, Kemasan, Isi, QtyObatS, HargaObat KdJenisObat) MsJenisObat Semua sudah memenuhi 1NF, 2NF dan 3NF. Karena sudah mempunyai primary key, tidak ditemukan repeating groups, tidak ada hubungan partial dependency dan tidak ada hubungan transitive dependency. • MsJenisObat (KdJenisObat, JenisObat) MsPemasok 138 Validasi 1NF dan 2NF: sudah memenuhi 1NF dan 2NF karena sudah mempunyai primary key, tidak ditemukan repeating groups dan tidak ada hubungan partial dependency. Validasi 3NF: tidak memenuhi 3NF karena ada hubungan transitive dependency pada KodePos yang ditunjukan oleh fd2. • MsPemasok (KdPemasok, NamaPemasok, Alamat, KodePos) • KodePos (KodePos, Kota) TelpPemasok Semua sudah memenuhi 1NF, 2NF dan 3NF. Karena sudah mempunyai primary key, tidak ditemukan repeating groups, tidak ada hubungan partial dependency dan tidak ada hubungan transitive dependency. • TelpPemasok (TelpPemasok, KdPemasok) 139 Resep Validasi 1NF: tidak memenuhi 1NF karena masih ada atribut yang didapat dari hasil perhitungan, yaitu BiayaResep. • Resep (KdResep, TglResep, KdDokter) Validasi 2NF dan 3NF: sudah memenuhi persyaratan validasi 2NF dan 3NF, karena tidak ada hubungan partial dependency dan tidak ada hubungan transitive dependency. • Resep (KdResep, TglResep, KdDokter) DetailResep 140 Semua sudah memenuhi 1NF, 2NF dan 3NF. Karena sudah mempunyai primary key, tidak ditemukan repeating groups, tidak ada hubungan partial dependency dan tidak ada hubungan transitive dependency. • DetailResep (NIP, KdResep, KdObat, DosisObat, QtyObatResep) RekamMedis Semua sudah memenuhi 1NF, 2NF dan 3NF. Karena sudah mempunyai primary key, tidak ditemukan repeating groups, tidak ada hubungan partial dependency dan tidak ada hubungan transitive dependency. • RekamM edis (NoRekam, TglRekam, JamRekam, UmurPasien, NIP, KdDokter, KdKary, KdResep) 141 DetailRekamMedis Semua sudah memenuhi 1NF, 2NF dan 3NF. Karena sudah mempunyai primary key, tidak ditemukan repeating groups, tidak ada hubungan partial dependency dan tidak ada hubungan transitive dependency. • DetailRekamM edis (KdObat, NoRekam, Keluhan, Penyakit, Tindakan) PasienBerobat Semua sudah memenuhi 1NF, 2NF dan 3NF. Karena sudah mempunyai primary key, tidak ditemukan repeating groups, tidak ada hubungan partial dependency dan tidak ada hubungan transitive dependency. • PasienBerobat (NoBerobat, TglBerobat, JamBerobat, UmurPasien, Pelayanan, NIP, KdDokter) 142 Pembelian Semua sudah memenuhi 1NF, 2NF dan 3NF. Karena sudah mempunyai primary key, tidak ditemukan repeating groups, tidak ada hubungan partial dependency dan tidak ada hubungan transitive dependency. • Pembelian (NoPembelian, TglPembelian, KdKary, NoFaktur) DetailPembelian Semua sudah memenuhi 1NF, 2NF dan 3NF. Karena sudah mempunyai primary key, tidak ditemukan repeating groups, tidak ada hubungan partial dependency dan tidak ada hubungan transitive dependency. • DetailPembelian (KdObat, NoPembelian, Status) 143 Penjualan Semua sudah memenuhi 1NF, 2NF dan 3NF. Karena sudah mempunyai primary key, tidak ditemukan repeating groups, tidak ada hubungan partial dependency dan tidak ada hubungan transitive dependency. • Penjualan (NoPenjualan, T glPenjualan, KdKary) DetailPenjualan Semua sudah memenuhi 1NF, 2NF dan 3NF. Karena sudah mempunyai primary key, tidak ditemukan repeating groups, tidak ada hubungan partial dependency dan tidak ada hubungan transitive dependency. • DetailPenjualan (KdObat, KdResep, NoPenjualan, QtyObatK) 144 PembayaranPasien Validasi 1NF: tidak memenuhi 1NF karena masih ada atribut yang didapat dari hasil perhitungan, yaitu TotalBiaya. • PembayaranPasien (NoPembayaran, Tanggal, Jam, BiayaAdmin, NIP, KdDokter, KdKary, KdObat, KdResep, NoBerobat) Validasi 2NF dan 3NF: sudah memenuhi persyaratan validasi 2NF dan 3NF, karena tidak ada hubungan partial dependency dan tidak ada hubungan transitive dependency. • PembayaranPasien (NoPembayaran, Tanggal, Jam, BiayaAdmin, NIP, KdDokter, KdKary, KdObat, KdResep, NoBerobat) FakturBeli Validasi 1NF: tidak memenuhi 1NF karena masih ada atribut yang didapat dari hasil perhitungan, yaitu TtlHargaObat, PPN. • FakturBeli (NoFaktur, TglFaktur, HargaObatB, JthTempo, KdKary, KdPemasok) 145 Validasi 2NF dan 3NF: sudah memenuhi persyaratan validasi 2NF dan 3NF, karena tidak ada hubungan partial dependency dan tidak ada hubungan transitive dependency. • FakturBeli (NoFaktur, TglFaktur, HargaObatB, JthTempo, KdKary, KdPemasok) DetailFakturBeli Semua sudah memenuhi 1NF, 2NF dan 3NF. Karena sudah mempunyai primary key, tidak ditemukan repeating groups, tidak ada hubungan partial dependency dan tidak ada hubungan transitive dependency. • DetailFakturBeli (KdObat, NoFaktur, QtyObatB) ReturPembelian 146 Semua sudah memenuhi 1NF, 2NF dan 3NF. Karena sudah mempunyai primary key, tidak ditemukan repeating groups, tidak ada hubungan partial dependency dan tidak ada hubungan transitive dependency. • ReturPembelian (NoRetur, TglRetur, KetR, KdPemasok, NoPembelian) DetailReturPembelian Semua sudah memenuhi 1NF, 2NF dan 3NF. Karena sudah mempunyai primary key, tidak ditemukan repeating groups, tidak ada hubungan partial dependency dan tidak ada hubungan transitive dependency. • DetailReturPembelian (KdObat, NoRetur, QtyObatR) 147 MsJdwlDokter Semua sudah memenuhi 1NF, 2NF dan 3NF. Karena sudah mempunyai primary key, tidak ditemukan repeating groups, tidak ada hubungan partial dependency dan tidak ada hubungan transitive dependency. • MsJdwlDokter (KdJdwlDokter, HariPraktek, JamPraktek) MsJdwlKaryawan Semua sudah memenuhi 1NF, 2NF dan 3NF. Karena sudah mempunyai primary key, tidak ditemukan repeating groups, tidak ada hubungan partial dependency dan tidak ada hubungan transitive dependency. • MsJdwlKaryawan (KdJdwlKary, HariKerja, JamKerja) 148 AbsensiDokter Semua sudah memenuhi 1NF, 2NF dan 3NF. Karena sudah mempunyai primary key, tidak ditemukan repeating groups, tidak ada hubungan partial dependency dan tidak ada hubungan transitive dependency. • AbsensiDokter (KdAbsenDok, TglAbsenDok, JamPraktek, KehadiranDok, KetAbsenDok, KdDokter) AbsensiKaryawan Semua sudah memenuhi 1NF, 2NF dan 3NF. Karena sudah mempunyai primary key, tidak ditemukan repeating groups, tidak ada hubungan partial dependency dan tidak ada hubungan transitive dependency. • AbsensiKaryawan (KdAbsenKary, TglAbsenKary, JamKerja, KehadiranKary, KetAbsenKary, KdKary) 149 Gambar 3.34 ERD Normalisasi 150 4. Definisi Integrity Constraint MsLogin (IdLogin, Password, Status) Primary Key IdLogin KodePos (KodePos, Kota) Primary Key KodePos MsPasien (NIP, Nama, NoIdentitas, TmptLhr, TglLhr, JnsKlmn, Agama, GolDarah, StatKawin, Alamat, KodePos, Pekerjaan) Primary Key NIP Foreign Key KodePos references KodePos (KodePos) ON UPDATE CASCADE ON DELETE NO ACTION TelpPasien (TelpPasien, NIP) Primary Key TelpPasien Foreign Key NIP references MsPasien (NIP) ON UPDATE CASCADE ON DELETE NO ACTION MsDokter (KdDokter, NamaDok, TmptLhrDok, TglLhrDok, JnsKlmnDok, AgamaDok, StatKawinDok, AlamatDok, KodePos, BiayaDok, GajiDok, KdSpesialis, KdJabatan, KdJdwlDokter, IdLogin) Primary Key KdDokter Foreign Key KodePos references KodePos (KodePos) ON UPDATE CASCADE ON DELETE NO ACTION 151 Foreign Key KdSpesialis references MsSpesialis (KdSpesialis) ON UPDATE CASCADE ON DELETE NO ACTION Foreign Key KdJabatan references M sJabatan (KdJabatan) ON UPDATE CASCADE ON DELETE NO ACTION Foreign Key KdJdwlDokter references M sJdwlDokter (KdJdwlDokter) ON UPDATE CASCADE ON DELETE NO ACTION Foreign Key IdLogin references MsLogin (IdLogin) ON UPDATE CASCADE ON DELETE NO ACTION TelpDok (TelpDok, KdDokter) Primary Key TelpDok Foreign Key KdDokter references MsDokter (KdDokter) ON UPDATE CASCADE ON DELETE NO ACTION MsS pesialis (KdSpesialis, Spesialis) Primary Key KdSpesialis MsKaryawan AgamaKary, (KdKary, NamaKary, TmptLhrKary, TglLhrKary StatKawinKary, StatPendiKary, AlamatKary, JnsKlmnKary, KodePos, GajiKary, KdJabatan, KdJdwlKary, IdLogin) Primary Key KdKary Foreign Key KodePos references KodePos (KodePos) ON UPDATE CASCADE ON DELETE NO ACTION 152 Foreign Key KdJabatan references M sJabatan (KdJabatan) ON UPDATE CASCADE ON DELETE NO ACTION Foreign Key KdJdwlKary references MsJdwlKaryawan (KdJdwlKary) ON UPDATE CASCADE ON DELETE NO ACTION Foreign Key IdLogin references MsLogin (IdLogin) ON UPDATE CASCADE ON DELETE NO ACTION TelpKary (TelpKary, KdKary) Primary Key TelpKary Foreign Key KdKary references MsKaryawan (KdKary) ON UPDATE CASCADE ON DELETE NO ACTION MsJabatan (KdJabatan, Jabatan) Primary Key KdJabatan MsObat (KdObat, NamaObat, Kemasan, Isi, QtyObatS, HargaObat KdJenisObat) Primary Key KdObat Foreign Key KdJenisObat references MsJenisObat (KdJenisObat) ON UPDATE CASCADE ON DELETE NO ACTION MsJenisObat (KdJenisObat, JenisObat) Primary Key KdJenisObat 153 MsPemasok (KdPemasok, NamaPemasok, Alamat, KodePos) Primary Key KdPemasok Foreign Key KodePos references KodePos (KodePos) ON UPDATE CASCADE ON DELETE NO ACTION TelpPemasok (TelpPemasok, KdPemasok) Primary Key TelpPemasok Foreign Key KdPemasok references MsPemasok (KdPemasok) ON UPDATE CASCADE ON DELETE NO ACTION Resep (KdResep, TglResep, KdDokter) Primary Key KdResep Foreign Key KdDokter references MsDokter (KdDokter) ON UPDATE CASCADE ON DELETE NO ACTION DetailResep (NIP, KdResep, KdObat, DosisObat, QtyObatResep) Primary Key NIP, KdResep, KdObat Foreign Key NIP references MsPasien (NIP) ON UPDATE CASCADE ON DELETE NO ACTION Foreign Key KdResep references M sResep (KdResep) ON UPDATE CASCADE ON DELETE NO ACTION Foreign Key KdObat references M sObat (KdObat) ON UPDATE CASCADE ON DELETE NO ACTION 154 RekamMedis (NoRekam, TglRekam, JamRekam, UmurPasien, NIP, KdDokter, KdKary, KdResep) Primary Key NoRekam Foreign Key NIP references MsPasien (NIP) ON UPDATE CASCADE ON DELETE NO ACTION Foreign Key KdDokter references MsDokter (KdDokter) ON UPDATE CASCADE ON DELETE NO ACTION Foreign Key KdKary references MsKaryawan (KdKary) ON UPDATE CASCADE ON DELETE NO ACTION Foreign Key KdResep references M sResep (KdResep) ON UPDATE CASCADE ON DELETE NO ACTION DetailRekamMedis (KdObat, NoRekam, Keluhan, Penyakit, Tindakan) Primary Key KdObat, NoRekam Foreign Key KdObat references M sObat (KdObat) ON UPDATE CASCADE ON DELETE NO ACTION Foreign Key NoRekam references RekamM edis (NoRekam) ON UPDATE CASCADE ON DELETE NO ACTION PasienBerobat (NoBerobat, TglBerobat, JamBerobat, UmurPasien, Pelayanan, NIP, KdDokter) Primary Key NoBerobat Foreign Key NIP references MsPasien (NIP) ON UPDATE CASCADE ON DELETE NO ACTION 155 Foreign Key KdDokter references MsDokter (KdDokter) ON UPDATE CASCADE ON DELETE NO ACTION Pembelian (NoPembelian, T glPembelian, KdKary, NoFaktur) Primary Key NoPembelian Foreign Key KdKary references MsKaryawan (KdKary) ON UPDATE CASCADE ON DELETE NO ACTION Foreign Key NoFaktur references FakturBeli (NoFaktur) ON UPDATE CASCADE ON DELETE NO ACTION DetailPembelian (KdObat, NoPembelian, Status) Primary Key KdObat, NoPembelian Foreign Key KdObat references M sObat (KdObat) ON UPDATE CASCADE ON DELETE NO ACTION Foreign Key NoPembelian references Pembelian (NoPembelian) ON UPDATE CASCADE ON DELETE NO ACTION Penjualan (NoPenjualan, TglPenjualan, KdKary) Primary Key NoPenjualan Foreign Key KdKary references MsKaryawan (KdKary) ON UPDATE CASCADE ON DELETE NO ACTION DetailPenjualan (KdObat, KdResep, NoPenjualan, QtyObatK) Primary Key KdObat, KdResep, NoPenjualan 156 Foreign Key KdObat references M sObat (KdObat) ON UPDATE CASCADE ON DELETE NO ACTION Foreign Key KdResep references Resep (KdResep) ON UPDATE CASCADE ON DELETE NO ACTION Foreign Key NoPenjualan references Penjualan (NoPenjualan) ON UPDATE CASCADE ON DELETE NO ACTION PembayaranPasien (NoPembayaran, Tanggal, Jam, BiayaAdmin, NIP, KdDokter, KdKary, KdObat, KdResep, Noberobat) Primary Key NoPembayaran Foreign Key NIP references MsPasien (NIP) ON UPDATE CASCADE ON DELETE NO ACTION Foreign Key KdDokter references MsDokter (KdDokter) ON UPDATE CASCADE ON DELETE NO ACTION Foreign Key KdKary references MsKaryawan (KdKary) ON UPDATE CASCADE ON DELETE NO ACTION Foreign Key KdObat references M sObat (KdObat) ON UPDATE CASCADE ON DELETE NO ACTION Foreign Key KdResep references Resep (KdResep) ON UPDATE CASCADE ON DELETE NO ACTION Foreign Key NoBerobat references PasienBerobat (NoBerobat) ON UPDATE CASCADE ON DELETE NO ACTION 157 FakturBeli (NoFaktur, TglFaktur, HargaObatB, JthTempo, KdKary, KdPemasok) Primary Key NoFaktur Foreign Key KdKary references MsKaryawan (KdKary) ON UPDATE CASCADE ON DELETE NO ACTION Foreign Key KdPemasok references M sPemasok (KdKary) ON UPDATE CASCADE ON DELETE NO ACTION DetailFakturBeli (KdObat, NoFaktur, QtyObatB) Primary Key KdObat, NoFaktur Foreign Key KdObat references M sObat (KdObat) ON UPDATE CASCADE ON DELETE NO ACTION Foreign Key NoFaktur references FakturBeli (NoFaktur) ON UPDATE CASCADE ON DELETE NO ACTION ReturPembelian (NoRetur, TglRetur, KetR, KdPemasok, NoPembelian) Primary Key NoRetur Foreign Key KdPemasok references MsPemasok (KdPemasok) ON UPDATE CASCADE ON DELETE NO ACTION Foreign Key NoPembelian references Pembelian (NoPembelian) ON UPDATE CASCADE ON DELETE NO ACTION DetailReturPembelian (KdObat, NoRetur, QtyObatR) Primary Key KdObat, NoRetur 158 Foreign Key KdObat references M sObat (KdObat) ON UPDATE CASCADE ON DELETE NO ACTION Foreign Key NoRetur references ReturPembelian (NoRetur) ON UPDATE CASCADE ON DELETE NO ACTION MsJdwlDokter (KdJdwlDokter, HariPraktek, JamPraktek) Primary Key KdJdwlDokter MsJdwlKaryawan (KdJdwlKary, HariKerjak, JamKerja) Primary Key KdJdwlDokter AbsensiDokter (KdAbsenDok, TglAbsenDok, JamPraktek, KehadiranDok, KetAbsenDok, KdDokter) Primary Key KdAbsenDok Foreign Key KdDokter references MsDokter (KdDokter) ON UPDATE CASCADE ON DELETE NO ACTION AbsensiKaryawan (KdAbsenKary, TglAbsenKary, JamKerja, KehadiranKary, KetAbsenKary, KdKary) Primary Key KdAbsenKary Foreign Key KdKary references MsKaryawan (KdKary) ON UPDATE CASCADE ON DELETE NO ACTION 159 3.2.2.b Membangun dan Memvalidasi Model Data Logikal Global Disini tidak dibahas mengenai model data logikal karena klinik hanya memiliki satu view data logikal sehingga model data logikal global itu sama dengan view data logikal itu sendiri. 3.2.3 Pemilihan DBMS Pemilihan DBMS yang akan digunakan oleh Klinik M edikarya untuk membantu pengelolaan dalam menjalankan proses bisnisnya agar mendapatkan data dan informasinya menjadi lebih cepat serta mudah yaitu dengan menggunakan M icrosoft SQL Server 2005 Express Edition sebagai alat penyimpanan basis data manajemen rumah sakit pada Klinik M edikarya dan Visual Basic.Net 2005 sebagai aplikasi desktop bagi pengguna. Berikut adalah spesifikasi perangkat lunak DMBS dengan menggunakan M icrosoft SQL Server 2005 Express Edition: Tabel 3.6 Spesifikasi M icrosoft SQL Server 2005 Express Edition M icrosoft SQL Server 2005 Express Edition Tipe DBMS Sistem manajemen basis data relasional (RDBMS) dengan bahasa kueri utamanya adalah Transact-SQL yang merupakan implementasi dari SQL standar ANSI/ISO yang digunakan oleh M icrosoft. Transact-SQL adalah alat utama pemrograman dan mengelola SQL Server. Kelebihan • Download dan instal cepat. M erupakan perangkat lunak download yang cepat dan dapat memulai dan menjalankannya setidaknya 20 menit. • Pelaksanaannya sederhana. Otomatis menjalankan basis data dengan tampilan yang optimal. Agar lebih menyenangkan, gunakan M icrosoft Update untuk menerima update terbaru 160 secara otomatis, keamanan level tinggi dan fitur terbaru. • Alat pengelolaan gratis. Studio pengelolaan SQL Server: dapat melakukan download SQL Server M anagement Studio Express, sebuah alat pengelolaan yang mudah dan efisien untuk SQL Server Express. Dengan SQL Server M anagement Studio dapat menikmati sebuah pengalaman pengelolaan yang konsisten melampaui semua SQL Server 2005 Express Edition. • Integrasi langsung dengan Visual S tudio Express edition • Mudah disebarkan. Dapat dengan mudah memindahkan atau menyalin basis data SQL Server Express pada komputer atau host server lain menggunakan xCopy dan ClickOnce Deployment. Kehandalan • M enyediakan pengelolaan views secara dinamis, yaitu dengan adanya catalog views, karena digantikannya sistem tabel menjadi sistem katalog. Pengelolaan secara dinamis ini memudahkan DBA untuk melakukan pengelolaan dalam DBMS dan memecahkan permasalahan dengan adanya Dedicated Administrative Console dan melakukan tuning. • M ampu menyimpan dan memelihara mirror salinan basis data dari server lain. • M engurangi beban kerja DBA. • Upgrading dari versi sebelumnya tidak memerlukan migrasi basis data. • Keamanan Availability dan recovery. Otentifikasi account system admin secara default dilakukan dengan menggunakan metode Windows Authentication. Kekurangan • Sangat mudah untuk melihat hubungan tabel, kendala, indeks, prosedur yang tersimpan dalam basis data namun memicu sulit untuk melihat. • Pemicu mengeksekusi terlihat untuk aplikasi klien. M ereka tidak terlihat atau dapat ditelusuri dalam kode debug. 161 • Sulit untuk mengikuti logika mereka karena mereka dapat dipecat sebelum atau setelah memasukkan basis data/update terjadi. • Sangat mudah untuk melupakan tentang memicu dan jika tidak ada dokumentasi akan sulit untuk mengetahui untuk pengembang baru untuk eksistensi mereka. • Pemicu dijalankan setiap kali ketika bidang basis data diperbarui dan itu adalah overhead pada sistem. Itu membuat sistem berjalan lebih lambat. Keterbatasan Karena berlisensi gratis maka terdapat keterbatasan, seperti: • Fasilitas: tidak disertakan server agent dan data transformation tools. Namun hal tersebut bisa teratasi dengan menambah database tools dengan mengunduhnya di: http://go.microsoft.com/fwlink/?LinkId=65111 • Pengunaan: hanya mendukung satu prosesor, memori untuk buffer pool dibatasi hingga 1GB dan ukuran maksimal basis data dibatasi sampai 4GB saja berlaku untuk file penyimpanan data, dan tidak berlaku untuk ukuran file log basis data. Kemudian, jumlah basis data yang bisa dihubungkan ke satu server yang menjalankan SQL Server 2005 Express Edition juga tidak dibatasi. Yang dibatasi adalah pada jumlah instance SQL Server 2005 Express Edition yang bisa berjalan di atas satu server yaitu 16 instance. Biaya Bebas biaya/gratis. Berikut ini merupakan perbandingan antara M icrosoft SQL Server 2005 Express Edition dengan Oracle 10g dan M ySQL, yaitu sebagai berikut: 162 Tabel 3.7 Perbandingan antara M icrosoft SQL Server 2005 Express Edition dengan Oracle 10g dan M ySQL 1. Perbandingan: Fitur SQL Server 2005 Fitur Oracle 10g MySQL Express Edition M endukung T-SQL PL SQL Indexes B Tree Indexes B Tree Indexes, bitmap Tidak mendukung indexes, MySQL dialect patinioned indexes, function based indexes, domain indexes Tabel Tabel relasional, tabel relational, object Tidak mendukung temporary table Trigger Procedure table, temporary table After trigger instead of Before triggers, after triger triggers, INSTEAD OF T-SQL statement PL/SQL Java Statement, MySQL dialect methods, Generation third language (3GL routines) Array 2. Tidak mendukung M endukung Tidak mendukung Perbandingan: Platform SQL Sever 2005 Oracle 10g Express Edition Berbasis Windows, Berbasis Windows, seperti: MYS QL Berbasis Windows, seperti: seperti: • Sistem berbasis AIX • Sistem berbasis AIX • Windows 9x • Compaq Tru 64 UNIX • Sistem • Windows NT • HP LINUX Intel • Windows 2000 • Sun-Solaris HP-UX, Intel • Sun-Solaris Linux 163 3. Perbandingan: Perangkat Lunak SQL Sever 2005 Express Oracle 10g MYS QL Edition • OS minimal Windows Untuk platform berbasis Untuk platform berbasis 2000 SP4, • XP SP1, Windows, menggunakan: 2003 SP1 atau Windows • Windows 2000 • Windows 95 Vista • Windows NT 4.0 • Windows 98 service pack 5 • Windows NT Windows XP • Windows 2000 • Windows 2003 Windows Installer 3.1 • untuk 2000 dan XP • 4. Windows, menggunakan: M icrosoft .NET 2.0 Perbandingan: Perangkat Keras Aspek Prosesor SQL Sever 2005 Express Oracle 10g MySQL Edition Komputer dengan Intel atau Komputer dengan Komputer dengan kompatibel Pentium III Intel Pentium III Intel Pentium 600MHz atau prosesor yang 1,66MHz prosesor 1,66MHz M emori Hard disk 5. atau lebih cepat atau lebih tinggi lebih tinggi M inimal RAM 192MB M inimal RAM M inimal RAM 128M B 128M B Ruang hard disk yang 4,7GB untuk Ruang hard disk tersedia sebesar 525M B Oracle Home yang tersedia Drive, FAT sebesar 100M B Perbandingan: Harga SQL Sever 2005 Express Oracle 10g Edition Gratis untuk download, S15.000-$40.000 Open source/free software, di mendistribusikan, bawah persetujuan General menyimpan dan MySQL Public License 164 Kesimpulan dari perbandingan di atas adalah ketiga DBMS tersebut memiliki kelebihan dan kekurangan masing-masing dan dapat digunakan untuk membangun sistem yang efisien. Namun, alasan penulis menggunakan SQL Server 2005 Express Edition adalah: a. SQL Server 2005 Express Edition mendukung store procedured. b. SQL Server 2005 Express Edition merupakan tools pengelolaan gratis dan lebih mudah diinstal, digunakan, dan diatur penggunaannya. 3.2.4 Perancangan Basis Data Fisikal Berikut ini merupakan langkah-langkah dalam perancangan basis data fisikal, yaitu sebagai berikut: 3.2.4.a Penerjemah Model Data Logikal Global Untuk DBMS Target Berikut ini merupakan langkah-langkah penerjemah model data logikal untuk DBMS target, yaitu sebagai berikut: 1. Perancangan Relasi Dasar a. MsLogin Domain IdLogin: fixed length character string, length 8 Domain Password: variable length character string, length 10 Domain Status: variable length character string, length 15 MsLogin ( IdLogin IdLogin NOT NULL, Password Password NOT NULL, Status Status NOT NULL, PRIM ARY KEY (IdLogin)); 165 b. KodePos Domain KodePos: fixed length character string, length 5 Domain Kota: variable length character string, length 20 KodePos ( KodePos KodePos NOT NULL, Kota Kota NOT NULL, PRIM ARY KEY (KodePos)); c. MsPasien Domain NIP: fixed length character string, length 10 Domain Nama: variable length character string, length 30 Domain NoIdentitas: variable length character string, length 20 Domain TmptLhr: variable length character string, length 20 Domain TglLhr: datetime Domain JnsKlmn: single character, must be one of ‘L’, ‘P’ Domain Agama: variable length character string, length 10 Domain GolDarah: variable length character string, length 3 Domain StatKawin: variable length character string, length 15 Domain Alamat: variable length character string, length 50 Domain KodePos: fixed length character string, length 5 Domain Pekerjaan: variable length character string, length 10 MsPasien ( NIP NIP NOT NULL, Nama Nama NOT NULL, 166 NoIdentitas NoIdentitas TmptLhr TmptLhr NOT NULL, TglLhr TglLhr NOT NULL, JnsKlmn JnsKlmn NOT NULL DEFAULT ‘L’, Agama Agama NOT NULL, GolDarah GolDarah NOT NULL, StatKawin StatKawin NOT NULL, Alamat Alamat NOT NULL, KodePos KodePos NOT NULL, Pekerjaan Pekerjaan NOT NULL, PRIM ARY KEY (NIP), FOREIGN KEY (KodePos) REFERENCES KodePos (KodePos) ON UPDATE CASCADE ON DELETE NO ACTION); d. TelpPasien Domain TelpPasien: variable length character string, length 15 Domain NIP: fixed length character string, length 10 TelpPasien ( TelpPasien TelpPasien NOT NULL, NIP NIP NOT NULL, PRIM ARY KEY (TelpPasien), FOREIGN KEY (NIP) REFERENCES M sPasien (NIP) ON UPDATE CASCADE ON DELETE NO ACTION); 167 e. MsDokter Domain KdDokter: fixed length character string, length 5 Domain NamaDok: variable length character string, length 30 Domain TmptLhrDok: variable length character string, length 20 Domain TglLhrDok: datetime Domain JnsKlmnDok: single character, must be one of ‘L’, ‘P’ Domain AgamaDok: variable length character string, length 10 Domain StatKawinDok: variable length character string, length 15 Domain AlamatDok: variable length character string, length 50 Domain KodePos: fixed length character string, length 5 Domain BiayaDok: numeric Domain GajiDok: numeric Domain KdSpesialis: fixed length character string, length 5 Domain KdJabatan: fixed length character string, length 5 Domain KdJdwlDokter: fixed length character string, length 5 Domain IdLogin: fixed length character string, length 8 MsDokter ( KdDokter KdDokter NOT NULL, NamaDok NamaDok NOT NULL, TmptLhrDok TmptLhrDok NOT NULL, TglLhrDok TglLhrDok NOT NULL, JnsKlmnDok JnsKlmnDok NOT NULL DEFAULT ‘L’, AgamaDok AgamaDok NOT NULL, StatKawinDok StatKawinDok NOT NULL, 168 AlamatDok AlamatDok NOT NULL, KodePos KodePos NOT NULL, BiayaDok BiayaDok NOT NULL, GajiDok GajiDok NOT NULL, KdSpesialis KdSpesialis NOT NULL, KdJabatan KdJabatan NOT NULL, KdJdwlKary: KdJdwlKary NOT NULL, IdLogin IdLogin NOT NULL, PRIM ARY KEY (KdDokter), FOREIGN KEY (KodePos) REFERENCES KodePos (KodePos) ON UPDATE CASCADE ON DELETE NO ACTION, FOREIGN KEY (KdSpesialis) REFERENCES M sSpesialis (KdSpesialis) ON UPDATE CASCADE ON DELETE NO ACTION, FOREIGN KEY (KdJabatan) REFERENCES M sJabatan (KdJabatan) ON UPDATE CASCADE ON DELETE NO ACTION, FOREIGN KEY (KdJdwlDokter) REFERENCES M sJdwlDokter (KdJdwlDokter) ON UPDATE CASCADE ON DELETE NO ACTION, FOREIGN KEY (IdLogin) REFERENCES M sLogin (IdLogin) ON UPDATE CASCADE ON DELETE NO ACTION); f. TelpDok Domain TelpDok variable length character string, length 15 Domain KdDokter: fixed length character string, length 5 TelpDok ( 169 TelpDok TelpDok NOT NULL, KdDokter KdDokter NOT NULL, PRIM ARY KEY (TelpDok), FOREIGN KEY (KdDokter) REFERENCES M sDokter (KdDokter) ON UPDATE CASCADE ON DELETE NO ACTION); g. MsS pesialis Domain KdSpesialis: fixed length character string, length 5 Domain Spesialis: variable length character string, length 20 KdSpesialis ( KdSpesialis KdSpesialis NOT NULL, Spesialis Spesialis NOT NULL, PRIM ARY KEY (KdSpesialis)); h. MsKaryawan Domain KdKary: fixed length character string, length 5 Domain NamaKary: variable length character string, length 30 Domain TmptLhrKary: variable length character string, length 20 Domain TglLhrKary: datetime Domain JnsKlmnKary: single character, must be one of ‘L’, ‘P’ Domain AgamaKary: variable length character string, length 10 Domain StatKawinKary: variable length character string, length 15 Domain StatPendiKary: variable length character string, length 10 Domain AlamatKary: variable length character string, length 50 170 Domain KodePos: fixed length character string, length 5 Domain GajiKary: numeric Domain KdJabatan: fixed length character string, length 5 Domain KdJdwlKary: fixed length character string, length 5 Domain IdLogin: fixed length character string, length 8 MsKaryawan ( KdKary KdKary NOT NULL, NamaKary NamaKary NOT NULL, TmptLhrKary TmptLhrKary NOT NULL, JnsKlmnKary JnsKlmnKary NOT NULL DEFAULT ‘L’, AgamaKary AgamaKary NOT NULL, StatKawinKary StatKawinKary NOT NULL, StatPendiKary StatPendiKary NOT NULL, AlamatKary AlamatKary NOT NULL, KodePos KodePos NOT NULL, GajiKary GajiKary NOT NULL, KdJabatan KdJabatan NOT NULL, KdJdwlKary KdJdwlKary NOT NULL, IdLogin IdLogin NOT NULL, PRIM ARY KEY (KdKary), FOREIGN KEY (KodePos) REFERENCES KodePos (KodePos) ON UPDATE CASCADE ON DELETE NO ACTION, FOREIGN KEY (KdJabatan) REFERENCES M sJabatan (KdJabatan) ON UPDATE CASCADE ON DELETE NO ACTION, 171 FOREIGN KEY (KdJdwlKary) REFERENCES M sJdwlKary (KdJdwlKary) ON UPDATE CASCADE ON DELETE NO ACTION, FOREIGN KEY (IdLogin) REFERENCES M sLogin (IdLogin) ON UPDATE CASCADE ON DELETE NO ACTION); i. TelpKary Domain TelpKary variable length character string, length 15 Domain KdKary: fixed length character string, length 5 TelpKary ( TelpKary TelpKary NOT NULL, KdKary KdKary NOT NULL, PRIM ARY KEY (TelpKary), FOREIGN KEY (KdKary) REFERENCES M sKaryawan (KdKary) ON UPDATE CASCADE ON DELETE NO ACTION); j. MsJabatan Domain KdJabatan: fixed length character string, length 5 Domain NamaJabatan: variable length character string, length 30 KdJabatan ( KdJabatan KdJabatan NOT NULL, NamaJabatan NamaJabatan NOT NULL, PRIM ARY KEY (KdJabatan)); 172 k. MsObat Domain KdObat: fixed length character string, length 8 Domain NamaObat: variable length character string, length 30 Domain Kemasan: variable length character string, length 10 Domain Isi: integer Domain QtyObatS: integer Domain HargaObat: numeric Domain KdJenisObat: fixed length character string, length 8 MsObat ( KdObat KdObat NOT NULL, NamaObat NamaObat NOT NULL, Kemasan Kemasan NOT NULL, Isi Isi NOT NULL, QtyObatS QtyObatS HargaObat HargaObat NOT NULL, KdJenisObat KdJenisObat NOT NULL, PRIM ARY KEY (KdObat), FOREIGN KEY (KdJenisObat) REFERENCES MsJenisObat (KdJenisObat) ON UPDATE CASCADE ON DELETE NO ACTION); l. MsJenisObat Domain KdJenisObat: fixed length character string, length 8 Domain JenisObat: variable length character string, length 30 KdJenisObat ( 173 KdJenisObat KdJenisObat NOT NULL, JenisObat JenisObat NOT NULL, PRIM ARY KEY (KdJenisObat)); m. MsPemasok Domain KdPemasok: fixed length character string, length 8 Domain NamaPemasok: variable length character string, length 30 Domain Alamat: variable length character string, length 50 Domain KodePos: fixed length character string, length 5 MsPemasok ( KdPemasok KdPemasok NOT NULL, NamaPemasok NamaPemasok NOT NULL, Alamat Alamat NOT NULL, KodePos KodePos NOT NULL, PRIM ARY KEY (KdPemasok), FOREIGN KEY (KodePos) REFERENCES KodePos (KodePos) ON UPDATE CASCADE ON DELETE NO ACTION); n. TelpPemasok Domain TelpPemasok variable length character string, length 15 Domain KdPemasok: fixed length character string, length 5 TelpPemasok ( TelpPemasok TelpPemasok NOT NULL, KdPemasok KdPemasok NOT NULL, 174 PRIM ARY KEY (TelpPemasok), FOREIGN KEY (KdPemasok) REFERENCES M sPemasok (KdPemasok) ON UPDATE CASCADE ON DELETE NO ACTION); o. Resep Domain KdResep: fixed length character string, length 8 Domain TglResep: datetime Domain KdDokter: fixed length character string, length 5 MsResep ( KdResep KdResep NOT NULL, TglResep TglResep NOT NULL, KdDokter KdDokter NOT NULL, PRIM ARY KEY (KdResep), FOREIGN KEY (KdDokter) REFERENCES M sDokter (KdDokter) ON UPDATE CASCADE ON DELETE NO ACTION); p. DetailResep Domain NIP: fixed length character string, length 10 Domain KdResep: fixed length character string, length 8 Domain KdObat: fixed length character string, length 8 Domain DosisObat: variable length character string, length 15 Domain QtyObatResep: integer DetailResep ( NIP NIP NOT NULL, 175 KdResep KdResep NOT NULL, KdObat KdObat NOT NULL, DosisObat DosisObat NOT NULL, QtyObatResep QtyObatResep NOT NULL, PRIM ARY KEY (NIP, KdResep, KdObat), FOREIGN KEY (NIP) REFERENCES M sPasien (NIP) ON UPDATE CASCADE ON DELETE NO ACTION, FOREIGN KEY (KdResep) REFERENCES M sResep (KdResep) ON UPDATE CASCADE ON DELETE NO ACTION, FOREIGN KEY (KdObat) REFERENCES M sObat (KdObat) ON UPDATE CASCADE ON DELETE NO ACTION); q. RekamMedis Domain NoRekam: fixed length character string, length 8 Domain TglRekam: datetime Domain JamRekam: datetime Domain UmurPasien: integer Domain NIP: fixed length character string, length 10 Domain KdDokter: fixed length character string, length 5 Domain KdKary: fixed length character string, length 5 Domain KdResep: fixed length character string, length 8 RekamM edis ( NoRekam NoRekam NOT NULL, TglRekam TglRekam NOT NULL, 176 JamRekam JamRekam NOT NULL, UmurPasien UmurPasien NOT NULL, NIP NIP NOT NULL, KdDokter KdDokter NOT NULL, KdKary KdKary NOT NULL, KdResep KdResep NOT NULL, PRIM ARY KEY (NoRekam) FOREIGN KEY (NIP) REFERENCES M sPasien (NIP) ON UPDATE CASCADE ON DELETE NO ACTION, FOREIGN KEY (KdDokter) REFERENCES M sDokter (KdDokter) ON UPDATE CASCADE ON DELETE NO ACTION, FOREIGN KEY (KdKary) REFERENCES M sKaryawan (KdKary) ON UPDATE CASCADE ON DELETE NO ACTION, FOREIGN KEY (KdResep) REFERENCES M sResep (KdResep) ON UPDATE CASCADE ON DELETE NO ACTION); r. DetailRekamMedis Domain KdObat: fixed length character string, length 8 Domain NoRekam: fixed length character string, length 8 Domain Keluhan: variable length character string, length 100 Domain Penyakit: variable length character string, length 30 Domain Tindakan: variable length character string, length 50 DetailRekamM edis ( KdObat KdObat NOT NULL, 177 NoRekam NoRekam NOT NULL, Keluhan Keluhan NOT NULL, Penyakit Penyakit NOT NULL, Tindakan Tindakan NOT NULL, PRIM ARY KEY (KdObat, NoRekam), FOREIGN KEY (KdObat) REFERENCES M sObat (KdObat) ON UPDATE CASCADE ON DELETE NO ACTION, FOREIGN KEY (NoRekam) REFERENCES RekamM edis (NoRekam) ON UPDATE CASCADE ON DELETE NO ACTION); s. PasienBerobat Domain NoBerobat: fixed length character string, length 8 Domain TglBerobat: datetime Domain JamBerobat: datetime Domain UmurPasien: integer Domain Pelayanan: variable length character string, length 15 Domain NIP: fixed length character string, length 10 Domain KdDokter: fixed length character string, length 5 PasienBerobat ( NoBerobat NoBerobat NOT NULL, TglBerobat TglBerobat NOT NULL, JamBerobat JamBerobat NOT NULL, UmurPasien UmurPasien NOT NULL, Pelayanan Pelayanan NOT NULL, 178 NIP NIP NOT NULL, KdDokter KdDokter NOT NULL, PRIM ARY KEY (NoBerobat), FOREIGN KEY (NIP) REFERENCES M sPasien (NIP) ON UPDATE CASCADE ON DELETE NO ACTION, FOREIGN KEY (KdDokter) REFERENCES M sDokter (KdDokter) ON UPDATE CASCADE ON DELETE NO ACTION); t. Pembelian Domain NoPembelian: fixed length character string, length 8 Domain TglPembelian: datetime Domain KdKary: fixed length character string, length 5 Domain NoFaktur: fixed length character string, length 8 Pembelian ( NoPembelian NoPembelian NOT NULL, TglPembelian TglPembelian NOT NULL, KdKary KdKary NOT NULL, NoFaktur NoFObat NOT NULL, PRIM ARY KEY (NoPembelian), FOREIGN KEY (KdKary) REFERENCES M sKaryawan (KdKary) ON UPDATE CASCADE ON DELETE NO ACTION, FOREIGN KEY (NoFaktur) REFERENCES FakturBeli (NoFaktur) ON UPDATE CASCADE ON DELETE NO ACTION); 179 u. DetailPembelian Domain KdObat: fixed length character string, length 8 Domain NoPembelian: fixed length character string, length 8 Domain Status: variable length character string, length 15 DetailPembelian ( KdObat KdObat NOT NULL, NoPembelian NoPembelian NOT NULL, Status Status NOT NULL, PRIM ARY KEY (KdObat, NoPembelian), FOREIGN KEY (KdObat) REFERENCES M sObat (KdObat) ON UPDATE CASCADE ON DELETE NO ACTION, FOREIGN KEY (NoPembelian) REFERENCES Pembelian (NoPembelian) ON UPDATE CASCADE ON DELETE NO ACTION); v. Penjualan Domain NoPenjualan: fixed length character string, length 8 Domain TglPenjualan: datetime Domain KdKary: fixed length character string, length 5 Penjualan ( NoPenjualan NoPenjualan NOT NULL, TglPenjualan TglPenjualan NOT NULL, KdKary KdKary NOT NULL, PRIM ARY KEY (NoPenjualan), 180 FOREIGN KEY (KdKary) REFERENCES M sKaryawan (KdKary) ON UPDATE CASCADE ON DELETE NO ACTION); w. DetailPenjualan Domain KdObat: fixed length character string, length 8 Domain KdResep: fixed length character string, length 8 Domain NoPenjualan: fixed length character string, length 8 Domain QtyObatK: integer DetailPenjualan ( KdObat KdObat NOT NULL, KdResep KdResep NOT NULL, NoPenjualan NoPenjualan NOT NULL, QtyObatk QtyObatK PRIM ARY KEY (KdObat, KdResep, NoPenjualan), FOREIGN KEY (KdObat) REFERENCES M sObat (KdObat) ON UPDATE CASCADE ON DELETE NO ACTION, FOREIGN KEY (KdResep) REFERENCES Resep (KdResep) ON UPDATE CASCADE ON DELETE NO ACTION FOREIGN KEY (NoPenjualan) REFERENCES Penjualan (NoPenjualan) ON UPDATE CASCADE ON DELETE NO ACTION); x. PembayaranPasien Domain NoPembayaran: fixed length character string, length 8 Domain Tanggal: datetime 181 Domain Jam: datetime Domain BiayaAdmin: numeric Domain NIP: fixed length character string, length 10 Domain KdDokter: fixed length character string, length 5 Domain KdKary: fixed length character string, length 5 Domain KdObat: fixed length character string, length 8 Domain KdResep: fixed length character string, length 8 Domain NoBerobat: fixed length character string, length 8 PembayaranPasien ( NoPembayaran NoPembayaran NOT NULL, Tanggal Tanggal NOT NULL, Jam Jam NOT NULL, BiayaAdmin BiayaAdmin NOT NULL, NIP NIP NOT NULL, KdDokter KdKary NOT NULL, KdKary KdKary NOT NULL, KdObat KdObat NOT NULL, KdResep KdResep NOT NULL, NoBerobat NoBerobat NOT NULL, PRIM ARY KEY (NoPembayaran), FOREIGN KEY (NIP) REFERENCES M sPasien (NIP) ON UPDATE CASCADE ON DELETE NO ACTION, FOREIGN KEY (KdDokter) REFERENCES M sDokter (KdDokter) ON UPDATE CASCADE ON DELETE NO ACTION, 182 FOREIGN KEY (KdKary) REFERENCES M sKaryawan (KdKary) ON UPDATE CASCADE ON DELETE NO ACTION, FOREIGN KEY (KdObat) REFERENCES M sObat (KdObat) ON UPDATE CASCADE ON DELETE NO ACTION, FOREIGN KEY (KdResep) REFERENCES Resep (KdResep) ON UPDATE CASCADE ON DELETE NO ACTION, FOREIGN KEY (NoBerobat) REFERENCES PasienBerobat (NoBerobat) ON UPDATE CASCADE ON DELETE NO ACTION); y. FakturBeli Domain NoFaktur: fixed length character string, length 8 Domain TglFaktur: datetime Domain HargaObatB: numeric Domain JthTempo: datetime Domain KdKary: fixed length character string, length 5 Domain KdPemasok: fixed length character string, length 8 FakturBeli ( NoFaktur NoFaktur NOT NULL, TglFaktur TglFaktur NOT NULL, HargaObatB HargaObatB NOT NULL, JthTempo JthTempo NOT NULL, KdKary KdKary NOT NULL, KdPemasok KdPemasok NOT NULL, PRIM ARY KEY (NoFObat), 183 FOREIGN KEY (KdKary) REFERENCES M sKaryawan (KdKary) ON UPDATE CASCADE ON DELETE NO ACTION, FOREIGN KEY (KdPemasok) REFERENCES M sPemasok (KdPemasok) ON UPDATE CASCADE ON DELETE NO ACTION); z. DetailFakturBeli Domain KdObat: fixed length character string, length 8 Domain NoFaktur: fixed length character string, length 8 Domain QtyObatB: integer DetailFakturBeli ( KdObat KdObat NOT NULL, NoFObat NoFObat NOT NULL, QtyObatB QtyObatB PRIM ARY KEY (KdObat), FOREIGN KEY (KdObat) REFERENCES M sObat (KdObat) ON UPDATE CASCADE ON DELETE NO ACTION); FOREIGN KEY (NoFaktur) REFERENCES FakturBeli (NoFaktur) ON UPDATE CASCADE ON DELETE NO ACTION); aa. ReturPembelian Domain NoRetur: fixed length character string, length 8 Domain TglRetur: datetime Domain KetR: variable length character string, length 15 Domain KdPemasok: fixed length character string, length 8 184 Domain NoPembelian: fixed length character string, length 8 ReturPembelian ( NoRetur NoRetur NOT NULL, TglRetur TglRetur NOT NULL, KetR KetR NOT NULL, KdPemasok KdPemasok NOT NULL, NoPembelian NoPembelian NOT NULL, PRIM ARY KEY (NoRetur), FOREIGN KEY (KdPemasok) REFERENCES M sPemasok (KdPemasok) ON UPDATE CASCADE ON DELETE NO ACTION, FOREIGN KEY (NoPembelian) REFERENCES Pembelian (NoPembelian) ON UPDATE CASCADE ON DELETE NO ACTION); bb. DetailReturPembelian Domain KdObat: fixed length character string, length 8 Domain NoRetur: fixed length character string, length 8 Domain QtyObatR: integer DetailReturPembelian ( KdObat KdObat NOT NULL, NoRetur NoRetur NOT NULL, QtyObatR QtyObatR PRIM ARY KEY (KdObat, NoRetur), FOREIGN KEY (KdObat) REFERENCES M sObat (KdObat) ON UPDATE CASCADE ON DELETE NO ACTION, 185 FOREIGN KEY (NoRetur) REFERENCES ReturPembelian (NoRetur) ON UPDATE CASCADE ON DELETE NO ACTION); cc. MsJdwlDokter Domain KdJdwlDokter: fixed length character string, length 5 Domain HariPraktek: fixed length character string, length 6 Domain JamPraktek: datetime MsJdwlDokter ( KdJdwlDokter KdJdwlDokter NOT NULL, HariPraktek HariPraktek NOT NULL, JamPraktek JamPraktek NOT NULL, PRIM ARY KEY (KdJdwlDokter)); dd. MsJdwlKaryawan Domain KdJdwlKary: fixed length character string, length 5 Domain HariKerja: fixed length character string, length 6 Domain JamKerja: datetime MsJdwlKaryawan ( KdJdwlKary KdJdwlKary NOT NULL, HariKerja HariKerja NOT NULL, JamKerja JamKerja NOT NULL, PRIM ARY KEY (KdJdwlKary)); 186 ee. AbsensiDokter Domain KdAbsenDok: fixed length character string, length 8 Domain TglAbsenDok: datetime Domain JamPraktek: datetime Domain KehadiranDok: variable length character string, length 10 Domain KetAbsenDok: variable length character string, length 20 Domain KdDokter: fixed length character string, length 5 AbsensiDokter ( KdAbsenDok KdAbsenDok NOT NULL, TglAbsenDok TglAbsenDok NOT NULL, JamPraktek JamPraktek NOT NULL, KehadiranDok KehadiranDok NOT NULL, KetAbsenDok KetAbsenDok NOT NULL, KdDokter KdDokter NOT NULL, PRIM ARY KEY (KdAbsenDok), FOREIGN KEY (KdDokter) REFERENCES M sDokter (KdDokter) ON UPDATE CASCADE ON DELETE NO ACTION); ff. AbsensiKaryawan Domain KdAbsenKary: fixed length character string, length 8 Domain TglAbsenKary: datetime Domain JamKerja: datetime Domain KehadiranKary: variable length character string, length 10 187 Domain KetAbsenKary: variable length character string, Domain KdKary: fixed length character string, length 5 length 20 AbsensiKaryawan ( KdAbsenKary KdAbsenKary NOT NULL, TglAbsenKary TglAbsenKary NOT NULL, JamKerja JamKerja NOT NULL, KehadiranKary KehadiranKary NOT NULL, KetAbsenKary KetAbsenKary NOT NULL, KdKary KdKary NOTNULL, PRIM ARY KEY (KdAbsenKary), FOREIGN KEY (KdKary) REFERENCES M sKaryawan (KdKary) ON UPDATE CASCADE ON DELETE NO ACTION); 2. Merancangan Representasi dari Data yang Diturunkan Data Turunan adalah atribut yang nilai datanya diketahui dengan mengetahui nilai dari atribut lain. Data turunan antara lain sebagai berikut: a. BiayaResep didapat dari hasil perkalian antara QtyObatResep dengan HargaObat pada tabel MsObat dan DetailResep. b. TotalBiaya didapat dari hasil penjumlahan BiayaDok, BiayaResep, BiayaAdmin pada tabel PembayaranPasien. c. TtlHargaObat didapat dari hasil perkalian QtyObatB dengan HargaObatB pada tabel FakturBeli. d. PPN, merupakan hasil perkalian 10% dengan hasil penjumlahan TtlHargaObat pada tabel FakturBeli. 188 3. Merancang Enterprise Constraint Setelah melakukan analisis, tidak ditemukan derived data pada model data logikal yang ada. 3.2.4.b Perancangan Representasi Fisikal Berikut ini merupakan langkah-langkah dalam perancangan representasi fisikal, yaitu sebagai berikut: 1. Menganalisis Transaksi Berikut analisa transaksi-transaksi yang penting, yaitu: a. M emasukkan/Ubah data Login yang ada di klinik b. M emasukkan/Ubah data Pasien yang ada di klinik c. M emasukkan/Ubah data Kode Pos yang ada di klinik d. M emasukkan/Ubah data Dokter yang praktek di klinik e. M emasukkan/Ubah data Spesialis dari dokter di klinik f. M emasukkan/Ubah data Karyawan yang bekerja di klinik g. M emasukkan/Ubah data Jabatan yang ada di klinik h. M emasukkan/Ubah data Obat yang ada di klinik i. M emasukkan/Ubah data Jenis Obat yang ada di klinik j. M emasukkan/Ubah data Pemasok yang mensuplai obat dan alat medis k. M emasukkan/Ubah data Resep yang ada di klinik l. Tampilkan rincian Resep m. M emasukkan/Ubah data Rekam M edis yang ada di klinik n. Tampilkan rincian Rekam M edis 189 o. M emasukkan/Ubah data Pasien Berobat yang ada di klinik p. M emasukkan/Ubah data Pembelian yang berlangsung di klinik q. Tampilkan rincian Pembelian r. M emasukkan/Ubah data Penjualan yang berlangsung di klinik s. Tampilkan rincian Penjualan t. M emasukkan/Ubah data Pembayaran Pasien yang berlangsung di klinik u. M emasukkan/Ubah data Faktur Beli yang diterima klinik v. Tampilkan rincian Faktur Beli w. M emasukkan/Ubah data Retur Pembelian yang berlangsung di klinik x. Tampilkan rincian Retur Pembelian y. M emasukkan/Ubah data Jadwal Praktek Dokter di klinik z. M emasukkan/Ubah data Jadwal Kerja Karyawan yang bekerja di klinik aa. M emasukkan/Ubah data Absensi Dokter yang praktek di klinik bb. M emasukkan/Ubah data Absensi Karyawan yang bekerja di klinik Tabel 3.8 Referensi Silang Analisa Transaksi A B C D Transaksi/Relasi I MsLogin R U D I R U D I R U D X X X X X X KodePos X X MsKaryawan X R U D X MsPasien MsDokter I X X X X X X X 190 RekamM edis X MsSpesialis X MsJabatan X a. M emasukkan/Ubah data Login yang ada di klinik b. M emasukkan/Ubah data Pasien yang ada di klinik c. M emasukkan/Ubah data Kode Pos yang ada di klinik d. M emasukkan/Ubah data Dokter yang praktek di klinik E F G H Transaksi/Relasi I R U D I R U D MsLogin X KodePos X MsKaryawan I R U D X X X MsJenisObat MsJabatan R U D X X X MsObat MsSpesialis I X X X X X X X X e. M emasukkan/Ubah data Spesialis dari dokter di klinik f. M emasukkan/Ubah data Karyawan yang bekerja di klinik g. M emasukkan/Ubah data Jabatan yang ada di klinik h. M emasukkan/Ubah data Obat yang ada di klinik 191 I J K L Transaksi/Relasi I R U D I R U D I R U D I MsPasien X KodePos X MsDokter X Resep X X X X X X X X DetailResep MsObat X MsPemasok MsJenisObat R U D X X X X X X i. M emasukkan/Ubah data Jenis Obat yang ada di klinik j. M emasukkan/Ubah data Pemasok yang mensuplai obat dan alat medis k. M emasukkan/Ubah data Resep yang ada di klinik l. Tampilkan rincian Resep M N O P Transaksi/Relasi I R U D I R U D I R U MsKaryawan X X MsPasien X X MsDokter X X PasienBerobat Resep RekamM edis X X X X X X X X D I R U X D 192 DetailRekamM edis X MsObat X X X Pembelian X X X m. M emasukkan/Ubah data Rekam M edis yang ada di klinik n. Tampilkan rincian Rekam M edis o. M emasukkan/Ubah data Pasien Berobat yang ada di klinik p. M emasukkan/Ubah data Pembelian yang berlangsung di klinik Q R S T Transaksi/Relasi I R U D I MsKaryawan R U D I R U D I X X MsPasien X Penjualan X DetailPenjualan MsObat X X X X X X X X MsJenisObat X Resep X DetailResep X Pembelian DetailPembelian X X X FakturBeli X DetailFakturBeli X PembayaranPasien R U X X X X D 193 q. Tampilkan rincian Pembelian r. M emasukkan/Ubah data Penjualan yang berlangsung di klinik s. Tampilkan rincian Penjualan t. M emasukkan/Ubah data Pembayaran Pasien yang berlangsung di klinik U V W X Transaksi/Relasi I R U D I R U D I R U D I R MsObat X X MsJenisObat X X DetailFakturBeli X X X MsKaryawan X X MsPemasok X X FakturBeli X X X U X Pembelian X ReturPembelian X X X DetailReturPembelian X X X X u. M emasukkan/Ubah data Faktur Beli yang diterima klinik v. Tampilkan rincian Faktur Beli w. M emasukkan/Ubah data Retur Pembelian yang berlangsung di klinik x. Tampilkan rincian Retur Pembelian Y Z AA BB Transaksi/Relasi I MsKaryawan R U D I R U D X I R U D I R X U D D 194 MsJdwlKaryawan MsDokter MsJdwlDokter X X X X X X AbsensiDokter X X X X X AbsensiKaryawan X X y. M emasukkan/Ubah data Jadwal Praktek Dokter di klinik z. M emasukkan/Ubah data Jadwal Kerja Karyawan yang bekerja di klinik aa. M emasukkan/Ubah data Absensi Dokter yang praktek di klinik bb. M emasukkan/Ubah data Absensi Karyawan yang bekerja di klinik X 2. Memilih Organisasi File Saat ini M icrosoft SQL SERVER 2005 Express Edition sudah memiliki fasilitas organisasi file secara otomatis menggunakan organisasi file dengan (Balanced Tree) BTree. 3. Pemilihan Index Berikut adalah index yang digunakan: Tabel 3.9 Index Entity Key Index Nama Index Jenis Index MsLogin IdLogin IdLoginIdx C KodePos KodePos KodePosIdx C MsPasien NIP NIPIdx KodePos KodePosM sPasienIdx TelpPasien TelpPasienIdx NIP NIPTelpPasienIdx KdDokter KdDokterIdx KodePos KodePosM sDokterIdx KdSpesialis KdSpesialisM sDokterIdx KdJabatan KdJabatanM sDokterIdx KdJdwlDokter KdJdwlDokterM sDokterIdx IdLogin IdLoginM sDokterIdx TelpDok TelpDokIdx KdDokter KdDokterTelpDokIdx TelpPasien MsDokter TelpDok 195 NC NC NC NC 196 MsSpesialis KdSpesialis KdSpesialisIdx MsKaryawan KdKary KdKaryIdx KodePos KodePosM sKaryIdx KdJabatan KdJabatanM sKaryIdx KdJdwlKary KdJdwlKaryM sDokterIdx IdLogin IdLoginM sKaryIdx TelpKary TelpKaryIdx KdKary KdKaryTelpKaryIdx MsJabatan KdJabatan KdJabatanIdx MsObat KdObat KdObatIdx KdJenisObat KdJenisObatMsObatIdx MsJenisObat KdJenisObat KdJenisObatIdx C MsPemasok KdPemasok KdPemasokIdx NC KodePos KodePosM sPemasokIdx TelpPemasok TelpPemasokIdx KdPemasok KdPemasokTelpPemasokIdx KdResep KdResepIdx KdDokter KdDokterResepIdx NIP NIPDetailResepIdx TelpKary TelpPemasok Resep DetailResep C NC NC C NC NC NC NC 197 RekamM edis DetailRekamM edis PasienBerobat Pembelian DetailPembelian Penjualan KdResep KdResepDetailResepIdx KdObat KdObatDetailResepIdx NoRekam NoRekamIdx NIP NIPRekamM edisIdx KdDokter KdDokterRekamM edisIdx KdKary KdKaryRekamM edisIdx KdResep KdResepRekamM edisIdx KdObat KdObatDetailRekamM edisIdx NoRekam NoRekamDetailRekamM edisIdx NoBerobat NoBerobatIdx NIP NIPPasienBerobatIdx KdDokter KdDokterPasienBerobatIdx NoPembelian NoPembelianIdx KdKary KdKaryPembelianIdx NoFaktur NoFakturPembelianIdx KdObat KdObatDetailPembelianIdx NoPembelian NoPembelianDetailPembelianIdx NoPenjualan NoPenjualanIdx NC NC NC NC NC NC 198 DetailPenjualan PembayaranPasien FakturBeli DetailFakturBeli ReturPembelian KdKary KdKaryPenjualanIdx KdObat KdObatDetailPenjualanIdx KdResep KdResepDetailPenjualanIdx NoPenjualan NoPenjualanDetailPenjualanIdx NoPembayaran NoPembayaranIdx NIP NIPPembayaranPasienIdx KdDokter KdDokterPembayaranPasienIdx KdKary KdKaryPembayaranPasienIdx KdObat KdObatPembayaranPasienIdx KdResep KdResepPembayaranPasienIdx NoBerobat NoBerobatPembayaranPasienIdx NoFaktur NoFakturIdx KdKary KdKaryFakturBeliIdx KdPemasok KdPemasokFakturBeliIdx KdObat KdObat DetailFakturBeliIdx NoFaktur NoFakturDetailFakturBeliIdx NoRetur NoReturIdx KdPemasok KdPemasokReturPembelianIdx NoPembelian NoPembelianReturPembelianIdx NC NC NC NC NC 199 DetailReturPembelian KdObat KdObat DetailReturPembelianIdx NoRetur NoRetur DetailReturPembelianIdx MsJdwlDokter KdJdwlDokter KdJdwlDokterIdx C MsJdwlKaryawan KdJdwlKary KdJdwlKaryIdx C AbsensiDokter KdAbsenDok KdAbsenDokIdx NC KdDokter KdDokterAbsensiDokterIdx KdAbsenKary KdAbsenKaryIdx KdKary KdKaryAbsensiDokterIdx AbsensiKaryawan Keterangan: a. C = Clustered b. NC = Non Clustered NC NC 200 1. MsLogin CREATE UNIQUE INDEX IdLoginIdx ON MsLogin (IdLogin) 2. KodePos CREATE UNIQUE INDEX KodePosIdx ON KodePos (KodePos) 3. MsPasien CREATE UNIQUE INDEX NIPIdx ON M sPasien (NIP) CREATE UNIQUE INDEX KodePosM sPasienIdx ON M sPasien (KodePos) 4. TelpPasien CREATE UNIQUE INDEX TelpPasienIdx ON TelpPasien (TelpPasien) CREATE UNIQUE INDEX NIPTelpPasienIdx ON TelpPasien (NIP) 5. MsDokter CREATE UNIQUE INDEX KdDokterIdx ON M sDokter (KdDokter) CREATE UNIQUE INDEX KodePosM sDokterIdx ON M sDokter (KodePos) CREATE UNIQUE INDEX KdSpesialisMsDokterIdx ON MsDokter (KdSpesialis) CREATE UNIQUE INDEX KdJabatanM sDokterIdx ON M sDokter (KdJabatan) CREATE UNIQUE INDEX KdJdwlDokterM sDokterIdx ON MsDokter (KdJdwlDokter) CREATE UNIQUE INDEX IdLoginM sDokterIdx ON M sDokter (IdLogin) 201 6. TelpDok CREATE UNIQUE INDEX TelpDokIdx ON TelpDok (TelpDok) CREATE UNIQUE INDEX KdDokterTelpDokIdx ON TelpDok (KdDokter) 7. MsS pesialis CREATE UNIQUE INDEX KdSpesialisIdx ON M sSpesialis (KdSpesialis) 8. MsKaryawan CREATE UNIQUE INDEX KdKaryIdx ON MsKaryawan (KdKary) CREATE UNIQUE INDEX KodePosM sKaryawanIdx ON MsKaryawan (KodePos) CREATE UNIQUE INDEX KdJabatanMsKaryawanIdx ON M sKaryawan (KdJabatan) CREATE UNIQUE INDEX KdJdwlKaryM sKaryawanIdx ON MsKaryawan (KdJdwlKary) CREATE UNIQUE INDEX IdLoginM sKaryawanIdx ON M sKaryawan (IdLogin) 9. TelpKary CREATE UNIQUE INDEX TelpKaryIdx ON TelpKary (NIP) CREATE UNIQUE INDEX KdKaryTelpKaryIdx ON TelpKary (KdKary) 10. MsJabatan CREATE UNIQUE INDEX KdKaryawanIdx ON M sKaryawan (KdKaryawan) 202 11. MsObat CREATE UNIQUE INDEX KdObatIdx ON M sObat (KdObat) CREATE UNIQUE INDEX KdJenisObatMsObatIdx ON MsObat (KdJenisObat) 12. MsJenisObat CREATE UNIQUE INDEX KdJenisObatIdx ON M sJenisObat (KdJenisObat) 13. MsPemasok CREATE UNIQUE INDEX KdPemasokIdx ON M sPemasok (KdPemasok) CREATE UNIQUE INDEX KodePosM sPemasokIdx ON M sPemasok (KodePos) 14. TelpPemasok CREATE UNIQUE INDEX TelpPemasokIdx ON TelpPemasok (TelpPemasok) CREATE UNIQUE INDEX KdPemasokTelpPemasokIdx ON TelpPemasok (KdPemasok) 15. Resep CREATE UNIQUE INDEX KdResepIdx ON Resep (KdResep) CREATE UNIQUE INDEX KdDokterResepIdx ON Resep (KdDokter) 16. DetailResep CREATE UNIQUE INDEX NIPDetailResepIdx ON DetailResep (NIP) CREATE UNIQUE INDEX KdResepDetailResepIdx ON DetailResep (KdResep) CREATE UNIQUE INDEX KdObatDetailResepIdx ON DetailResep (KdObat) 203 17. RekamMedis CREATE UNIQUE INDEX NoRekamIdx ON RekamM edis (NoRekam) CREATE UNIQUE INDEX NIPRekamM edisIdx ON RekamM edis (NIP) CREATE UNIQUE INDEX KdDokterRekamM edis Idx ON RekamM edis (KdDokter) CREATE UNIQUE INDEX KdKaryRekamM edisIdx ON RekamM edis (KdKary) CREATE UNIQUE INDEX KdResepRekamM edisIdx ON RekamM edis (KdResep) 18. DetailRekamMedis CREATE UNIQUE INDEX KdObatDetailRekamM edisIdx ON NoRekamDetailRekamM edisIdx ON DetailRekamM edis (KdObat) CREATE UNIQUE INDEX DetailRekamM edis (NoRekam) 19. PasienBerobat CREATE UNIQUE INDEX NoBerobatIdx ON PasienBerobat (NoBerobat) CREATE UNIQUE INDEX NIPPasienBerobatIdx ON PasienBerobat (NIP) CREATE UNIQUE INDEX KdDokterPasienBerobatIdx ON PasienBerobat (KdDokter) 20. Pembelian CREATE UNIQUE INDEX NoPembelianIdx ON Pembelian (NoPembelian) CREATE UNIQUE INDEX KdKaryPembelianIdx ON Pembelian (KdKary) 204 CREATE UNIQUE INDEX NoFakturPembelianIdx ON Pembelian (NoFaktur) 21. DetailPembelian CREATE UNIQUE INDEX KdObatDetailPembelianIdx ON DetailPembelian (KdObat) CREATE UNIQUE INDEX NoPembelianDetailPembelianIdx ON DetailPembelian (NoPembelian) 22. Penjualan CREATE UNIQUE INDEX NoPenjualanIdx ON Penjualan (NoPenjualan) CREATE UNIQUE INDEX KdKaryPenjualanIdx ON Penjualan (KdKary) 23. DetailPenjualan CREATE UNIQUE INDEX KdObatDetailPenjualanIdx ON DetailPenjualan (KdObat) CREATE UNIQUE INDEX KdResepDetailPenjualanIdx ON DetailPenjualan (KdResep) CREATE UNIQUE INDEX NoPenjualanDetailPenjualanIdx ON DetailPenjualan (NoPenjualan) 24. PembayaranPasien CREATE UNIQUE (NoPembayaran) INDEX NoPembayaranIdx ON PembayaranPasien 205 CREATE UNIQUE INDEX NIPPembayaranPasienIdx ON PembayaranPasien (NIP) CREATE UNIQUE INDEX KdDokterPembayaranPasienIdx ON INDEX KdKaryPembayaranPasienIdx ON INDEX KdObatPembayaranPasienIdx ON INDEX KdResepPembayaranPasienIdx ON NoBerobatPembayaranPasienIdx ON PembayaranPasien (KdDokter) CREATE$ UNIQUE PembayaranPasien (KdKary) CREATE$ UNIQUE PembayaranPasien (KdObat) CREATE$ UNIQUE PembayaranPasien (KdResep) CREATE UNIQUE INDEX PembayaranPasien (NoBerobat) 25. FakturBeli CREATE UNIQUE INDEX NoFakturIdx ON FakturBeli (NoFaktur) CREATE UNIQUE INDEX KdKaryFakturBeliIdx ON FakturBeli (KdKary) CREATE UNIQUE INDEX KdPemasokFakturBeliIdx ON FakturBeli (KdPemasok) 26. DetailFakturBeli CREATE UNIQUE INDEX KdObatDetailFakturBeliIdx ON DetailFakturBeli (KdObat) CREATE UNIQUE INDEX NoFakturtDetailFakturBeliIdx ON DetailFakturBeli (NoFaktur) 206 27. ReturPembelian CREATE UNIQUE INDEX NoReturIdx ON ReturPembelian (NoRetur) CREATE UNIQUE INDEX KdPemasokReturPembelianIdx ON ReturPembelian (KdPemasok) CREATE UNIQUE INDEX NoPembelianReturPembelianIdx ON ReturPembelian (NoPembelian) 28. DetailReturPembelian CREATE UNIQUE INDEX KdObatDetailReturPembelianIdx ON NoReturDetailReturPembelianIdx ON DetailReturPembelian (KdObat) CREATE UNIQUE INDEX DetailReturPembelian (NoRetur) 29. MsJdwlDokter CREATE UNIQUE INDEX KdJdwlDokterIdx ON M sJdwlDokter (KdJdwlDokter) 30. MsJdwlKaryawan CREATE UNIQUE INDEX KdJdwlKaryawanIdx ON M sJdwlKaryawan (KdJdwlKaryawan) 31. AbsensiDokter CREATE UNIQUE INDEX KdAbsenDokIdx ON AbsensiDokter (KdAbsenDok) 207 CREATE UNIQUE INDEX KdDokterAbsensiDokterIdx ON AbsensiDokter (KdDokter) 32. AbsensiKaryawan CREATE UNIQUE INDEX KdAbsenKaryIdx ON AbsensiKaryawan (KdAbsenKary) CREATE UNIQUE INDEX KdKaryAbsensiKaryawanIdx ON AbsensiKaryawan (KdKary) 4. Estimasi Kebutuhan Penyimpanan Berikut ini adalah perkiraan kebutuhan ruang penyimpanan yang dibutuhkan di Klinik M edikarya: Tabel 3.10 Estimasi M edia Penyimpanan M sLogin Field Tipe Ukuran IdLogin Char 8 Password Varchar 10 Status Varchar 15 Kapasitas dari tabel M sLogin adalah 23 bytes Diperkirakan dalam satu tahun terjadi 3 penambahan M sLogin Dalam satu tahun pertumbuhan dari tabel ini adalah 3*12*23 = 828 bytes Tabel 3.11 Estimasi M edia Penyimpanan KodePos Field Tipe Ukuran KodePos Char 5 Kota Varchar 20 208 Kapasitas dari tabel KodePos adalah 25 bytes Diperkirakan dalam satu bulan terjadi 3 penambahan KodePos Dalam satu tahun pertumbuhan dari tabel ini adalah 3*12*25 = 900 bytes Tabel 3.12 Estimasi M edia Penyimpanan M sPasien Field Tipe Ukuran NIP Char 10 Nama Varchar 30 NoIdentitas Varchar 20 TmptLhr Varchar 20 TglLhr Datetime 10 JnsKlmn Char 1 Agama Varchar 10 GolDarah Varchar 3 StatKawin Varchar 15 Alamat Varchar 50 KodePos Char 5 Pekerjaan Varchar 10 Kapasitas dari tabel M sPasien adalah 184 bytes Diperkirakan dalam satu bulan terjadi 30 penambahan M sPasien Dalam satu tahun pertumbuhan dari tabel ini adalah 30*12*184 = 66240 bytes Tabel 3.13 Estimasi M edia Penyimpanan TelpPasien Field Tipe Ukuran TelpPasien Varchar 15 NIP Char 10 Kapasitas dari tabel TelpPasien adalah 25 bytes Diperkirakan dalam satu bulan terjadi 6 penambahan TelpPasien Dalam satu tahun pertumbuhan dari tabel ini adalah 6*12*25 = 1800 bytes 209 Tabel 3.14 Estimasi M edia Penyimpanan M sDokter Field Tipe Ukuran KdDokter Char 5 NamaDok Varchar 30 TmptLhrDok Varchar 20 TglLhrDok Datetime 10 JnsKlmnDok Char 1 AgamaDok Varchar 10 StatKawinDok Varchar 15 AlamatDok Varchar 50 KodePos Int 5 BiayaDok Numeric 8 GajiDok Bigint 8 KdSpesialis Char 5 KdJabatan Char 5 KdJdwlDokter Char 5 IdLogin Char 8 Kapasitas dari tabel M sDokter adalah 185 bytes Diperkirakan dalam satu tahun terjadi 3 penambahan M sDokter Dalam satu tahun pertumbuhan dari tabel ini adalah 3*12*185 = 6660 bytes Tabel 3.15 Estimasi M edia Penyimpanan TelpDok Field Tipe Ukuran TelpDok Varchar 15 KdDokter Char 5 Kapasitas dari tabel TelpDok adalah 20 bytes Diperkirakan dalam satu bulan terjadi 5 penambahan TelpDok Dalam satu tahun pertumbuhan dari tabel ini adalah 5*12*20 = 1200 bytes 210 Tabel 3.16 Estimasi M edia Penyimpanan M sSpesialis Field Tipe Ukuran KdSpesialis Char 5 Spesialis Varchar 20 Kapasitas dari tabel M sSpesialis adalah 25 bytes Diperkirakan dalam satu tahun terjadi 1 penambahan M sSpesialis Dalam satu tahun pertumbuhan dari tabel ini adalah 1*12*25 = 300 bytes Tabel 3.17 Estimasi M edia Penyimpanan M sKaryawan Field Tipe Ukuran KdKary Char 5 NamaKary Varchar 30 TmptLhrKary Varchar 20 TglLhrKary Datetime 10 JnsKlmnKary Char 1 AgamaKary Varchar 10 StatKawinKary Varchar 15 StatPendiKary Varchar 10 AlamatKary Varchar 50 KodePos Char 5 GajiKary Numeric 8 KdJabatan Char 5 KdJdwlKary Char 5 IdLogin Char 8 Kapasitas dari tabel M sKaryawan adalah 182 bytes Diperkirakan dalam satu tahun terjadi 3 penambahan M sKaryawan Dalam satu tahun pertumbuhan dari tabel ini adalah 3*12*182 = 6552 bytes 211 Tabel 3.18 Estimasi M edia Penyimpanan TelpKary Field Tipe Ukuran TelpKary Varchar 15 KdKary Char 5 Kapasitas dari tabel TelpKary adalah 20 bytes Diperkirakan dalam satu bulan terjadi 3 penambahan TelpKary Dalam satu tahun pertumbuhan dari tabel ini adalah 3*12*20 = 720 bytes Tabel 3.19 Estimasi M edia Penyimpanan M sJabatan Field Tipe Ukuran KdJabatan Char 5 Jabatan Varchar 30 Kapasitas dari tabel M sJabatan adalah 30 bytes Diperkirakan dalam satu tahun terjadi 0 penambahan M sJabatan Dalam satu tahun pertumbuhan dari tabel ini adalah 0*12*30 = 0 bytes Tabel 3.20 Estimasi M edia Penyimpanan M sObat Field Tipe Ukuran KdObat Char 8 NamaObat Varchar 30 Kemasan Varchar 10 Isi Int 4 QtyObatS Int 4 HargaObat Numeric 8 KdJenisObat Char 8 Kapasitas dari tabel M sObat adalah 72 bytes Diperkirakan dalam satu bulan terjadi 10 penambahan M sObat Dalam satu tahun pertumbuhan dari tabel ini adalah 10*12*98 = 8640 bytes 212 Tabel 3.21 Estimasi M edia Penyimpanan M sJenisObat Field Tipe Ukuran KdJenisObat Char 8 JenisObat Varchar 30 Kapasitas dari tabel M sJenisObat adalah 38 bytes Diperkirakan dalam satu bulan terjadi 3 penambahan M sJenisObat Dalam satu tahun pertumbuhan dari tabel ini adalah 3*12*38 = 1368 bytes Tabel 3.22 Estimasi M edia Penyimpanan M sPemasok Field Tipe Ukuran KdPemasok Char 8 NamaPemasok Varchar 30 AlamatPemasok Varchar 50 KodePos Char 5 Kapasitas dari tabel M sPemasok adalah 93 bytes Diperkirakan dalam satu bulan terjadi 1 penambahan M sPemasok Dalam satu tahun pertumbuhan dari tabel ini adalah 1*12*93 = 1116 bytes Tabel 3.23 Estimasi M edia Penyimpanan TelpPemasok Field Tipe Ukuran TelpPemasok Varchar 15 KdPemasok Char 8 Kapasitas dari tabel TelpPemasok adalah 23 bytes Diperkirakan dalam satu bulan terjadi 6 penambahan TelpPemasok Dalam satu tahun pertumbuhan dari tabel ini adalah 6*12*23 = 1656 bytes 213 Tabel 3.24 Estimasi M edia Penyimpanan M sResep Field Tipe Ukuran KdResep Char 8 TglResep Datetime 10 KdDokter Char 15 Kapasitas dari tabel M sResep adalah 33 bytes Diperkirakan dalam satu bulan terjadi 15 penambahan M sResep Dalam satu tahun pertumbuhan dari tabel ini adalah 15*12*33 = 5940 bytes Tabel 3.25 Estimasi M edia Penyimpanan DetailResep Field Tipe Ukuran NIP Char 10 KdResep Char 8 KdObat Char 8 DosisObat Varchar 15 QtyObatResep Int 4 Kapasitas dari tabel DetailResep adalah 45 bytes Diperkirakan dalam satu bulan terjadi 15 penambahan DetailResep Diperkirakan dalam satu hari terdapat 15 orang pasien Dalam satu tahun pertumbuhan dari tabel ini adalah 15*15*12*45 = 121500 bytes Tabel 3.26 Estimasi M edia Penyimpanan RekamM edis Field Tipe Ukuran NoRekam Char 8 TglRekam Datetime 10 JamRekam Datetime 5 UmurPasien Int 3 NIP Char 10 KdDokter Char 5 214 KdKary Char 5 KdResep Char 8 Kapasitas dari tabel RekamM edis adalah 54 bytes Diperkirakan dalam satu bulan terjadi 25 penambahan RekamM edis Diperkirakan dalam satu hari ada 7 orang pasien Dalam satu tahun pertumbuhan dari tabel ini adalah 7*25*12*54 = 113400 bytes Tabel 3.27 Estimasi M edia Penyimpanan DetailRekamM edis Field Tipe Ukuran KdObat Char 8 NoRekam Char 8 Keluhan Varchar 100 Penyakit Varchar 30 Tindakan Varchar 50 Kapasitas dari tabel DetailRekamM edis adalah 196 bytes Diperkirakan dalam satu bulan terjadi 25 penambahan DetailRekamM edis Diperkirakan dalam satu hari ada 7 orang pasien Diperkirakan dalam satu kali ada 3 jenis tindakan pasien Dalam satu tahun pertumbuhan dari tabel ini adalah 3*7*25*12*196 = 1234800 bytes Tabel 3.28 Estimasi M edia Penyimpanan PasienBerobat Field Tipe Ukuran NoBerobat Char 8 TglBerobat Datetime 10 JamBerobat Datetime 10 UmurPasien Int 3 Pelayanan Varchar 15 NIP Char 10 KdDokter Char 5 215 Kapasitas dari tabel PasienBerobat adalah 61 bytes Diperkirakan dalam satu bulan terjadi 25 penambahan PasienBerobat Diperkirakan dalam satu hari ada 15 orang pasien Dalam satu tahun pertumbuhan dari tabel ini adalah 15*25*12*61 = 274500 bytes Tabel 3.29 Estimasi M edia Penyimpanan Pembelian Field Tipe Ukuran NoPembelian Char 8 TglPembelian Datetime 10 KdKary Char 5 NoFaktur Char 8 Kapasitas dari tabel Pembelian adalah 31 bytes Diperkirakan dalam satu bulan terjadi 10 penambahan Pembelian Dalam satu tahun pertumbuhan dari tabel ini adalah 10*12*39 = 3720 bytes Tabel 3.30 Estimasi M edia Penyimpanan DetailPembelian Field Tipe Ukuran KdObat Char 8 NoPembelian Char 8 Status Varchar 15 Kapasitas dari tabel DetailPembelian adalah 31 bytes Diperkirakan dalam satu bulan terjadi 10 penambahan DetailPembelian Dalam satu tahun pertumbuhan dari tabel ini adalah 10*12*31 = 3720 bytes Tabel 3.31 Estimasi M edia Penyimpanan Penjualan Field Tipe Ukuran NoPenjualan Char 8 TglPenjualan Datetime 10 216 KdKary Char 5 Kapasitas dari tabel Penjualan adalah 23 bytes Diperkirakan dalam satu bulan terjadi 10 penambahan Penjualan Dalam satu tahun pertumbuhan dari tabel ini adalah 10*12*23 = 27600 bytes Tabel 3.32 Estimasi M edia Penyimpanan DetailPenjualan Field Tipe Ukuran KdObat Char 8 NoPenjualan Char 8 KdResep Char 8 QtyObatK Int 4 Kapasitas dari tabel DetailPenjualan adalah 28 bytes Diperkirakan dalam satu bulan terjadi 10 penambahan DetailPenjualan Dalam satu tahun pertumbuhan dari tabel ini adalah 10*12*28 = 3360 bytes Tabel 3.33 Estimasi M edia Penyimpanan PembayaranPasien Field Tipe Ukuran NoPembayaran Char 8 Tanggal Datetime 10 Jam Datetime 5 BiayaAdmin Numeric 8 KdDokter Char 5 NIP Char 10 KdKary Char 5 KdObat Char 8 KdResep Char 8 NoBerobat Char 8 Kapasitas dari tabel PembayaranPasien adalah 75 bytes Diperkirakan dalam satu bulan terjadi 25 penambahan PembayaranPasien 217 Diperkirakan dalam satu hari ada 15 orang pasien Dalam satu tahun pertumbuhan dari tabel ini adalah 15*25*12*75 = 337500 bytes Tabel 3.34 Estimasi M edia Penyimpanan FakturBeli Field Tipe Ukuran NoFaktur Char 8 TglFaktur Datetime 10 HargaObatB Numeric 8 JthTempo Datetime 10 KdKary Char 5 KdPemasok Char 8 Kapasitas dari tabel FakturBeli adalah 49 bytes Diperkirakan dalam satu bulan terjadi 7 penambahan FakturBeli Dalam satu tahun pertumbuhan dari tabel ini adalah 7*12*49 = 4116 bytes Tabel 3.35 Estimasi M edia Penyimpanan DetailFakturBeli Field Tipe Ukuran KdObat Char 8 NoFaktur Char 8 QtyObatB Int 4 Kapasitas dari tabel DetailFakturBeli adalah 20 bytes Diperkirakan dalam satu bulan terjadi 7 penambahan DetailFakturBeli Dalam satu tahun pertumbuhan dari tabel ini adalah 7*12*20 = 1680 bytes Tabel 3.36 Estimasi M edia Penyimpanan ReturPembelian Field Tipe Ukuran NoRetur Char 8 TglRetur Datetime 10 KetR Varchar 15 218 KdPemasok Char 8 NoPembelian Char 8 Kapasitas dari tabel ReturPembelian adalah 49 bytes Diperkirakan dalam satu bulan terjadi 1 penambahan ReturPembelian Dalam satu tahun pertumbuhan dari tabel ini adalah 1*12*49 = 588 bytes Tabel 3.37 Estimasi M edia Penyimpanan DetailReturPembelian Field Tipe Ukuran KdObat Char 8 NoRetur Char 8 QtyObatR Int 4 Kapasitas dari tabel DetailReturPembelian adalah 20 bytes Diperkirakan dalam satu bulan terjadi 1 penambahan DetailReturPembelian Dalam satu tahun pertumbuhan dari tabel ini adalah 1*12*32 = 240 bytes Tabel 3.38 Estimasi M edia Penyimpanan M sJdwlDokter Field Tipe Ukuran KdJdwlDokter Char 5 HariPraktek Char 6 JamPraktek Datetime 11 Kapasitas dari tabel M sJdwlDokter adalah 22 bytes Diperkirakan dalam satu bulan terjadi 1 penambahan M sJdwlDokter Dalam satu tahun pertumbuhan dari tabel ini adalah 1*12*22 = 264 bytes Tabel 3.39 Estimasi M edia Penyimpanan M sJdwlKaryawan Field Tipe Ukuran KdJdwlKary Char 5 HariKerja Char 6 219 JamKerja Datetime 11 Kapasitas dari tabel M sJdwlKaryawan adalah 22 bytes Diperkirakan dalam satu bulan terjadi 1 penambahan M sJdwlKaryawan Dalam satu tahun pertumbuhan dari tabel ini adalah 1*12*22 = 264 bytes Tabel 3.40 Estimasi M edia Penyimpanan AbsensiDokter Field Tipe Ukuran KdAbsenDok Char 8 TglAbsenDok Datetime 10 JamPraktek Datetime 11 KehadiranDok Varchar 10 KetAbsenDok Varchar 20 KdDokter Char 5 Kapasitas dari tabel AbsensiDokter adalah 64 bytes Diperkirakan dalam satu bulan terjadi 5 penambahan AbsensiDokter Dalam satu tahun pertumbuhan dari tabel ini adalah 5*12*64 = 3840 bytes Tabel 3.41 Estimasi M edia Penyimpanan AbsensiKaryawan Field Tipe Ukuran KdAbsenKary Char 8 TglAbsenKary Datetime 10 JamKerja Datetime 11 KehadiranKary Varchar 10 KetAbsenKary Varchar 20 KdKary Char 5 Kapasitas dari tabel AbsensiKaryawan adalah 64 bytes Diperkirakan dalam satu bulan terjadi 5 penambahan AbsensiKaryawan Dalam satu tahun pertumbuhan dari tabel ini adalah 5*12*64 = 3840 bytes 220 Tabel 3.42 Estimasi Ukuran Entitas yang tidak Berubah Entitas Kapasitas Awal (bytes) MsJabatan 30 JUMLAH 30 Sedangkan pada entitas lain, setiap bulan/tahun terjadi penambahan data. Tabel 3.43 Estimasi Ukuran Entitas yang Berubah setiap Bulan/Tahun Kapasitas Awal Kapasitas yang Diperlukan (bytes) S atu Tahun Pertama (bytes) MsLogin 23 828 KodePos 25 900 MsPasien 184 66240 TelpPasien 25 1800 MsDokter 185 6660 TelpDok 20 1200 MsSpesialis 25 300 MsKaryawan 182 6552 TelpKary 20 720 MsObat 72 8640 MsJenisObat 38 1368 MsPemasok 93 1116 TelpPemasok 23 1656 Entitas 221 MsResep 33 5940 DetailResep 45 121500 RekamM edis 54 113400 DetailRekamM edis 196 1238400 PasienBerobat 61 274500 Pembelian 31 3720 DetailPembelian 28 3720 Penjualan 23 27600 DetailPenjualan 28 3360 PembayaranPasien 75 337500 FakturBeli 49 4116 DetailFakturBeli 20 1680 ReturPembelian 49 588 DetailReturPembelian 20 240 MsJdwlDokter 22 264 MsJdwlKaryawan 22 264 AbsensiDokter 64 3840 AbsensiKaryawan 64 3840 JUMLAH 2242452 1. Jumlah space yang dibutuhkan untuk entitas yang tidak terjadi penambahan data adalah 30 bytes atau 0,03 KiloBytes. 222 2. Jumlah space yang dibutuhkan untuk entitas yang terjadi penambahan data dalam 1 tahun adalah 2.242.452 bytes atau 2.242,452 KiloBytes. 3. Perkiraan space dalam 1 tahun pertama adalah 30 bytes + 2.242.452 bytes = 2.242.482 bytes atau 2.242,452 KiloBytes. 4. Ditambah dengan faktor keamanan 50%, jadi 2.242,452 KiloBytes + 1.121,226 KiloBytes = 3.363,678 KiloBytes. Bila diperkirakan pertumbuhan data tiap tahunnya adalah 10%, maka kapasitas disk yang dibutuhkan dalam 5 tahun berdasarkan rumus di bawah ini adalah: Tahun ke-n = Jumlah disk tahun ke-n-1 + kapasitas tahun ke n-1 + (kapasitas disk transaksi ke n-1 * 10%) Tabel 3.44 Kebutuhan Kapasitas Disk dalam 5 tahun Tahun Jumlah Kapasitas Kapasitas Subtotal Kebutuha Kebutuhan ke n-1 disk tahun disk disk kebutuhan n disk disk total ke n-1 transaksi transaksi disk tetap tahun ke tahun ke n-1 n-1 * 10% 3.363,678 2.242,452 224,245 5.830,375 0,03 5.830,405 KiloBytes KiloBytes KiloBytes KiloBytes KiloBytes KiloBytes 5.830,375 2.466,697 246,670 8.543,742 8.543,772 KiloBytes KiloBytes KiloBytes KiloBytes 0,03 KiloBytes 8.543,742 2.713,367 271,337 11.528,446 11.528,476 KiloBytes KiloBytes KiloBytes KiloBytes 0,03 KiloBytes 11.528,446 2.984,704 298,470 14.811,620 14.811,650 KiloBytes KiloBytes KiloBytes KiloBytes 0,03 KiloBytes II III IV V KiloBytes KiloBytes KiloBytes 3.2.4.c Perancangan Mekanisme Pengamanan Data Tabel 3.45 M ekanisme Keamanan Data Pengguna Entitas Admin Administrasi Dokter Kasir MsLogin I, U, R, D U, R U, R U, R KodePos I, U, R, D I, U, R R MsPasien I, U, R, D I, U, R TelpPasien I, U, R, D MsDokter Anggaran Direktur Kepegawaian Apoteker U, R U, R U, R U, R R R R R R R R - - - R I, U, R R R - - - R I, U, R, D I, U, R R R - R - R TelpDok I, U, R, D I, U, R R R - R - R MsSpesialis I, U, R, D I, U, R R R - R - R MsKaryawan I, U, R, D I, U, R - R R R R R TelpKary I, U, R, D I, U, R - R R R R R MsJabatan I, U, R, D I, U, R R R R R R R MsObat I, U, R, D R - R R - I, U, R R 223 Belanja Utama 224 Pengguna Entitas Admin Administrasi Dokter Kasir Anggaran Kepegawaian Apoteker Direktur Umum Belanja MsJenisObat I, U, R, D R - R R - R R MsPemasok I, U, R, D I, U, R - - R - - R TelpPemasok I, U, R, D I, U, R - - R - - R Resep I, R, D I, R R R - - R R DetailResep I, R, D I, R R R - - R R RekamM edis I, R, D I, R R R - - - R DetailRekamM edis I, R, D I, R R R - - - R PasienBerobat I, R, D I, R R R - - - R Pembelian I, R, D R - R I, R - R R DetailPembelian I, R, D R - R I, R - R R Penjualan I, R, D R - I, R I, R - R R DetailPenjualan I, R, D R - I, R I, R - R R PembayaranPasien I, R, D R - I, R - - - R FakturBeli I, R, D R - - I, R - R R 225 Pengguna Entitas Admin Administrasi Dokter Kasir Anggaran Kepegawaian Apoteker Direktur Umum Belanja DetailFakturBeli I, R, D R - - I, R - R R ReturPembelian I, R, D R - - I, R - R R DetailReturPembelian I, R, D R - - I, R - R R MsJdwlDokter I, U, R, D R R - - I, U, R - R MsJdwlKaryawan I, U, R, D R - R R I, U, R R R AbsensiDokter I, R, D R R - - I, R - R AbsensiKaryawan I, R, D R - R R I, R R R Keterangan: I = Insert; R = Read; U = Update; D = Delete 226 Hak akses yang diberikan antara lain: a. Bagian Admin/Administrator GRANT ALL PREVILEGES ON MsLogin TO Admin GRANT ALL PREVILEGES ON KodePos TO Admin GRANT ALL PREVILEGES ON MsPasien TO Admin GRANT ALL PREVILEGES ON TelpPasien TO Admin GRANT ALL PREVILEGES ON MsDokter TO Admin GRANT ALL PREVILEGES ON TelpDok TO Admin GRANT ALL PREVILEGES ON MsSpesialis TO Admin GRANT ALL PREVILEGES ON MsKaryawan TO Admin GRANT ALL PREVILEGES ON TelpKary TO Admin GRANT ALL PREVILEGES ON MsJabatan TO Admin GRANT ALL PREVILEGES ON MsObat TO Admin GRANT ALL PREVILEGES ON MsJenisObat TO Admin GRANT ALL PREVILEGES ON MsPemasok TO Admin GRANT ALL PREVILEGES ON TelpPemasok TO Admin GRANT SELECT, INSERT, DELETE PREVILEGES ON Resep TO Admin GRANT SELECT, INSERT, DELETE PREVILEGES ON DetailResep TO Admin GRANT SELECT, INSERT, DELETE PREVILEGES ON RekamM edis TO Admin GRANT SELECT, INSERT, DELETE PREVILEGES ON DetailRekamM edis TO Admin GRANT SELECT, INSERT, DELETE PREVILEGES ON PasienBerobat TO Admin 227 GRANT SELECT, INSERT, DELETE PREVILEGES ON Pembelian TO Admin GRANT SELECT, INSERT, DELETE PREVILEGES ON DetailPembelian TO Admin GRANT SELECT, INSERT, DELETE PREVILEGES ON Penjualan TO Admin GRANT SELECT, INSERT, DELETE PREVILEGES ON DetailPenjualan TO Admin GRANT SELECT, INSERT, DELETE PREVILEGES ON PembayaranPasien TO Admin GRANT SELECT, INSERT, DELETE PREVILEGES ON FakturBeli TO Admin GRANT SELECT, INSERT, DELETE PREVILEGES ON DetailFakturBeli TO Admin GRANT SELECT, INSERT, DELETE PREVILEGES ON ReturPembelian TO Admin GRANT SELECT, INSERT, DELETE PREVILEGES ON DetailReturPembelian TO Admin GRANT ALL PREVILEGES ON MsJdwlDokter TO Admin GRANT ALL PREVILEGES ON MsJdwlKaryawan TO Admin GRANT SELECT, INSERT, DELETE PREVILEGES ON AbsensiDokter TO Admin GRANT SELECT, INSERT, DELETE PREVILEGES ON AbsensiKaryawan TO Admin b. Bagian Administrasi GRANT SELECT, UPDATE PREVILEGES ON MsLogin TO Administrasi 228 GRANT SELECT, INSERT, UPDATE PREVILEGES ON KodePos TO Administrasi GRANT SELECT, INSERT, UPDATE PREVILEGES ON M sPasien TO Administrasi GRANT SELECT, INSERT, UPDATE PREVILEGES ON TelpPasien TO Administrasi GRANT SELECT, IN SERT, UPDATE PREVILEGES ON M sDokter TO Administrasi GRANT SELECT, INSERT, UPDATE PREVILEGES ON TelpDok TO Administrasi GRANT SELECT, INSERT, UPDATE PREVILEGES ON M sSpesialis TO Administrasi GRANT SELECT, INSERT, UPDATE PREVILEGES ON M sKaryawan TO Administrasi GRANT SELECT, INSERT, UPDATE PREVILEGES ON TelpKary TO Administrasi GRANT SELECT, INSERT, UPDATE PREVILEGES ON M sJabatan TO Administrasi GRANT SELECT PREVILEGES ON M sObat TO Administrasi GRANT SELECT PREVILEGES ON M sJenisObat TO Administrasi GRANT SELECT, INSERT, UPDATE PREVILEGES ON MsPemasok TO Administrasi GRANT SELECT, INSERT, UPDATE PREVILEGES ON TelpPemasok TO Administrasi 229 GRANT SELECT PREVILEGES ON Resep TO Administrasi GRANT SELECT PREVILEGES ON DetailResep TO Administrasi GRANT SELECT, INSERT PREVILEGES ON RekamM edis TO Administrasi GRANT SELECT, INSERT PREVILEGES ON DetailRekamM edis TO Administrasi GRANT SELECT, INSERT PREVILEGES ON PasienBerobat TO Administrasi GRANT SELECT PREVILEGES ON Pembelian TO Administrasi GRANT SELECT PREVILEGES ON DetailPembelian TO Administrasi GRANT SELECT PREVILEGES ON Penjualan TO Administrasi GRANT SELECT PREVILEGES ON DetailPenjualan TO Administrasi GRANT SELECT PREVILEGES ON PembayaranPasien TO Administrasi GRANT SELECT PREVILEGES ON FakturBeli TO Administrasi GRANT SELECT PREVILEGES ON Detail FakturBeli TO Administrasi GRANT SELECT PREVILEGES ON ReturPembelian TO Administrasi GRANT SELECT PREVILEGES ON DetailReturPembelian TO Administrasi GRANT SELECT PREVILEGES ON M sJdwlDokter TO Administrasi GRANT SELECT PREVILEGES ON M sJdwlKaryawan TO Administrasi GRANT SELECT PREVILEGES ON AbsensiDokter TO Administrasi GRANT SELECT PREVILEGES ON AbsensiKaryawan TO Administrasi c. Dokter GRANT SELECT, UPDATE PREVILEGES ON MsLogin TO Dokter GRANT SELECT PREVILEGES ON KodePos TO Dokter GRANT SELECT PREVILEGES ON M sPasien TO Dokter 230 GRANT SELECT PREVILEGES ON TelpPasien TO Dokter GRANT SELECT PREVILEGES ON M sDokter TO Dokter GRANT SELECT PREVILEGES ON TelpDok TO Dokter GRANT SELECT PREVILEGES ON M sSpesialis TO Dokter GRANT SELECT PREVILEGES ON M sJabatan TO Dokter GRANT SELECT PREVILEGES ON Resep TO Dokter GRANT SELECT PREVILEGES ON DetailResep TO Dokter GRANT SELECT PREVILEGES ON RekamM edis TO Dokter GRANT SELECT PREVILEGES ON DetailRekamM edis TO Dokter GRANT SELECT PREVILEGES ON PasienBerobat TO Dokter GRANT SELECT PREVILEGES ON M sJdwlDokter TO Dokter GRANT SELECT PREVILEGES ON AbsensiDokter TO Dokter d. Bagian Kasir GRANT SELECT, UPDATE PREVILEGES ON MsLogin TO Kasir GRANT SELECT PREVILEGES ON KodePos TO Kasir GRANT SELECT PREVILEGES ON M sPasien TO Kasir GRANT SELECT PREVILEGES ON TelpPasien TO Kasir GRANT SELECT PREVILEGES ON M sDokter TO Kasir GRANT SELECT PREVILEGES ON TelpDok TO Kasir GRANT SELECT PREVILEGES ON M sSpesialis TO Kasir GRANT SELECT PREVILEGES ON M sKaryawan TO Kasir GRANT SELECT PREVILEGES ON TelpKary TO Kasir GRANT SELECT PREVILEGES ON M sJabatan TO Kasir 231 GRANT SELECT PREVILEGES ON M sObat TO Kasir GRANT SELECT PREVILEGES ON M sJenisObat TO Kasir GRANT SELECT PREVILEGES ON Resep TO Kasir GRANT SELECT PREVILEGES ON DetailResep TO Kasir GRANT SELECT PREVILEGES ON Pembelian TO Kasir GRANT SELECT PREVILEGES ON DetailPembelian TO Kasir GRANT SELECT, INSERT PREVILEGES ON Penjualan TO Kasir GRANT SELECT, INSERT PREVILEGES ON DetailPenjualan TO Kasir GRANT SELECT, INSERT PREVILEGES ON PembayaranPasien TO Kasir GRANT SELECT PREVILEGES ON M sJdwlKaryawan TO Kasir GRANT SELECT PREVILEGES ON AbsensiKaryawan TO Kasir e. Bagian Anggaran dan Belanja GRANT SELECT, UPDATE PREVILEGES ON MsLogin TO AnggaranBelanja GRANT SELECT PREVILEGES ON KodePos TO AnggaranBelanja GRANT SELECT PREVILEGES ON M sKaryawan TO AnggaranBelanja GRANT SELECT PREVILEGES ON TelpKary TO AnggaranBelanja GRANT SELECT PREVILEGES ON M sJabatan TO AnggaranBelanja GRANT SELECT PREVILEGES ON M sObat TO AnggaranBelanja GRANT SELECT PREVILEGES ON M sJenisObat TO AnggaranBelanja GRANT SELECT, INSERT PREVILEGES ON Pembelian TO AnggaranBelanja GRANT SELECT, INSERT PREVILEGES ON DetailPembelian TO AnggaranBelanja GRANT SELECT, INSERT PREVILEGES ON Penjualan TO AnggaranBelanja 232 GRANT SELECT, INSERT PREVILEGES ON DetailPenjualan TO AnggaranBelanja GRANT SELECT, INSERT PREVILEGES ON FakturBeli TO AnggaranBelanja GRANT SELECT, INSERT PREVILEGES ON Detail FakturBeli TO AnggaranBelanja GRANT SELECT, INSERT PREVILEGES ON ReturPembelian TO AnggaranBelanja GRANT SELECT, INSERT PREVILEGES ON DetailReturPembelian TO AnggaranBelanja GRANT SELECT PREVILEGES ON M sJdwlKaryawan TO AnggaranBelanja GRANT SELECT PREVILEGES ON AbsensiKaryawan TO AnggaranBelanja f. Bagian Kepegawaian GRANT SELECT, UPDATE PREVILEGES ON MsLogin TO Kepegawaian GRANT SELECT PREVILEGES ON KodePos TO Kepegawaian GRANT SELECT PREVILEGES ON M sDokter TO Kepegawaian GRANT SELECT PREVILEGES ON TelpDokter TO Kepegawaian GRANT SELECT PREVILEGES ON M sSpesialis TO Kepegawaian GRANT SELECT PREVILEGES ON M sKaryawan TO Kepegawaian GRANT SELECT PREVILEGES ON TelpKary TO Kepegawaian GRANT SELECT PREVILEGES ON M sJabatan TO Kepegawaian GRANT SELECT, INSERT, UPDATE PREVILEGES ON M sJdwlDokter TO Kepegawaian 233 GRANT SELECT, INSERT, UPDATE PREVILEGES ON M sJdwlKaryawan TO Kepegawaian GRANT SELECT, INSERT PREVILEGES ON AbsensiDokter TO Kepegawaian GRANT SELECT, INSERT PREVILEGES ON AbsensiKaryawan TO Kepegawaian g. Bagian Apotek/Apoteker GRANT SELECT, UPDATE PREVILEGES ON MsLogin TO Apoteker GRANT SELECT PREVILEGES ON KodePos TO Apoteker GRANT SELECT PREVILEGES ON M sKaryawan TO Apoteker GRANT SELECT PREVILEGES ON TelpKary TO Kepegawaian GRANT SELECT PREVILEGES ON M sJabatan TO Apoteker GRANT SELECT, INSERT, UPDATE PREVILEGES ON MsObat TO Apoteker GRANT SELECT PREVILEGES ON M sJenisObat TO Apoteker GRANT SELECT PREVILEGES ON Resep TO Apoteker GRANT SELECT PREVILEGES ON DetailResep TO Apoteker GRANT SELECT PREVILEGES ON Pembelian TO Apoteker GRANT SELECT PREVILEGES ON DetailPembelian TO Apoteker GRANT SELECT PREVILEGES ON Penjualan TO Apoteker GRANT SELECT PREVILEGES ON DetailPenjualan TO Apoteker GRANT SELECT PREVILEGES ON FakturBeli TO Apoteker GRANT SELECT PREVILEGES ON DetailFakturBeli TO Apoteker GRANT SELECT PREVILEGES ON ReturPembelian TO Apoteker GRANT SELECT PREVILEGES ON DetailReturPembelian TO Apoteker 234 GRANT SELECT PREVILEGES ON M sJdwlKaryawan TO Apoteker GRANT SELECT PREVILEGES ON AbsensiKaryawan TO Apoteker h. Direktur Utama GRANT SELECT PREVILEGES ON M sLogin TO DirekturUtama GRANT SELECT PREVILEGES ON KodePos TO DirekturUtama GRANT SELECT PREVILEGES ON M sPasien TO DirekturUtama GRANT SELECT PREVILEGES ON TelpPasien TO Kepegawaian GRANT SELECT PREVILEGES ON M sDokter TO DirekturUtama GRANT SELECT PREVILEGES ON TelpDok TO Kepegawaian GRANT SELECTPREVILEGES ON M sSpesialis TO DirekturUtama GRANT SELECT PREVILEGES ON M sKaryawan TO DirekturUtama GRANT SELECT PREVILEGES ON TelpKary TO Kepegawaian GRANT SELECT PREVILEGES ON M sJabatan TO DirekturUtama GRANT SELECT PREVILEGES ON M sObat TO DirekturUtama GRANT SELECT PREVILEGES ON M sJenisObat TO DirekturUtama GRANT SELECT PREVILEGES ON M sPemasok TO DirekturUtama GRANT SELECT PREVILEGES ON TelpPemasok TO Kepegawaian GRANT SELECT PREVILEGES ON Resep TO DirekturUtama GRANT SELECT PREVILEGES ON DetailResep TO DirekturUtama GRANT SELECT PREVILEGES ON RekamM edis TO DirekturUtama GRANT SELECT PREVILEGES ON DetailRekamM edis TO DirekturUtama GRANT SELECT PREVILEGES ON PasienBerobat TO DirekturUtama GRANT SELECT PREVILEGES ON Pembelian TO DirekturUtama 235 GRANT SELECT PREVILEGES ON DetailPembelian TO DirekturUtama GRANT SELECT PREVILEGES ON Penjualan TO DirekturUtama GRANT SELECT PREVILEGES ON DetailPenjualan TO DirekturUtama GRANT SELECT PREVILEGES ON PembayaranPasien TO DirekturUtama GRANT SELECT PREVILEGES ON FakturBeli TO DirekturUtama GRANT SELECT PREVILEGES ON DetailFakturBeli TO DirekturUtama GRANT SELECT PREVILEGES ON ReturPembelian TO DirekturUtama GRANT SELECT PREVILEGES ON DetailReturPembelian TO DirekturUtama GRANT SELECT PREVILEGES ON M sJdwlDokter TO DirekturUtama GRANT SELECT PREVILEGES ON M sJdwlKaryawan TO DirekturUtama GRANT SELECT PREVILEGES ON AbsensiDokter TO DirekturUtama GRANT SELECT PREVILEGES ON AbsensiKaryawan TO DirekturUtama 3.2.5 Perancangan Program Aplikasi Berikut ini merupakan perancangan program aplikasi di Klinik M edikarya: 3.2.5.a Perancangan S truktur Menu Berikut ini merupakan gambar dari Perancangan Struktur M enu pada Klinik M edikarya: Gambar 3.35 Struktur M enu 236 237 3.2.5.b State Tran sition Diagram (STD) Berikut ini merupakan State Transition Diagram (STD): Gambar 3.36 STD Login Gambar 3.37 STD M ain M enu 238 Gambar 3.38 STD User Gambar 3.39 STD Jadwal 239 Gambar 3.40 STD M aster Gambar 3.41 STD Pendaftaran 240 Gambar 3.42 STD Dokumentasi Gambar 3.43 STD Transaksi 241 Gambar 3.44 STD Laporan Gambar 3.45 STD Change Password 242 Gambar 3.46 STD Logout Gambar 3.47 STD Input Data Jadwal Praktek Dokter 243 Gambar 3.48 STD View Data Jadwal Praktek Dokter Gambar 3.49 STD Input Data Jadwal Kerja Karyawan 244 Gambar 3.50 STD View Data Jadwal Kerja Karyawan Gambar 3.51 STD Absensi Dokter 245 Gambar 3.52 STD Absensi Karyawan Gambar 3.53 STD Data Pasien 246 Gambar 3.54 STD Data Dokter Gambar 3.55 STD Data Karyawan 247 Gambar 3.56 STD Data Obat Gambar 3.57 STD Data Pemasok 248 Gambar 3.58 STD Pasien Baru Gambar 3.59 STD Pasien Berobat Gambar 3.60 STD Antrian Pasien 249 Gambar 3.61 STD Input Data Resep Gambar 3.62 STD View Resep 250 Gambar 3.63 STD Input Data Rekam M edis Gambar 3.64 STD View Data Rekam M edis 251 Gambar 3.65 STD Administrasi Gambar 3.66 STD Input Data Penjualan Obat 252 Gambar 3.67 STD View Data Penjualan Obat Gambar 3.68 STD Input Data Pembelian Obat Gambar 3.69 STD View Pembelian Obat 253 Gambar 3.70 STD Input Data Faktur Beli Obat Gambar 3.71 STD View Data Faktur Beli Obat 254 Gambar 3.72 STD Input Data Retur Pembelian Obat Gambar 3.73 STD View Retur Pembelian Obat 255 Gambar 3.74 STD Pembayaran Pasien Gambar 3.75 STD Laporan Obat Gambar 3.76 STD Laporan Keuangan 256 Gambar 3.77 STD Laporan Pasien Gambar 3.78 STD Laporan Absensi Dokter Gambar 3.79 STD Laporan Jadwal Praktek Dokter 257 Gambar 3.80 STD Laporan Absensi Karyawan Gambar 3.81 STD Laporan Jadwal Kerja Karyawan 3.2.5.c Perancangan Layar Berikut ini merupakan perancangan layar: Gambar 3.82 Perancangan Layar Login Gambar 3.83 Perancangan Layar M ain M enu 258 259 Gambar 3.84 Perancangan Layar Change Password Gambar 3.85 Perancangan Layar Input Data Jadwal Praktek Dokter 260 Gambar 3.86 Perancangan Layar View Jadwal Praktek Dokter Gambar 3.87 Perancangan Layar Input Jadwal Kerja Karyawan 261 Gambar 3.88 Perancangan Layar View Jadwal Kerja Karyawan Gambar 3.89 Perancangan Layar Absensi Dokter 262 Gambar 3.90 Perancangan Layar Absensi Karyawan Gambar 3.91 Perancangan Layar Data Pasien 263 Gambar 3.92 Perancangan Layar Data Dokter Gambar 3.93 Perancangan Layar Data Karyawan 264 Gambar 3.94 Perancangan Layar Data Obat Gambar 3.95 Perancangan Layar Data Pemasok 265 Gambar 3.96 Perancangan Layar Pendaftaran Pasien Baru Gambar 3.97 Perancangan Layar Pendaftaran Pasien Berobat 266 Gambar 3.98 Perancangan Layar Antrian Pasien Gambar 3.99 Perancangan Layar Input Data Resep 267 Gambar 3.100 Perancangan Layar View Data Resep Gambar 3.101 Perancangan Layar Input Data Rekam M edis 268 Gambar 3.102 Perancangan Layar View Data Rekam M edis Gambar 3.103 Perancangan Layar Administrasi 269 Gambar 3.104 Perancangan Layar Input Data Penjualan Obat Gambar 3.105 Perancangan Layar View Data Penjualan Obat 270 Gambar 3.106 Perancangan Layar Input Data Pembelian Obat Gambar 3.107 Perancangan Layar View Data Pembelian Obat 271 Gambar 3.108 Perancangan Layar Input Data Faktur Pembelian Obat Gambar 3.109 Perancangan Layar View Data Faktur Pembelian Obat 272 Gambar 3.110 Perancangan Layar Input Data Retur Pembelian Obat Gambar 3.111 Perancangan Layar View Data Retur Pembelian Obat 273 Gambar 3.112 Perancangan Layar Pembayaran Pasien 274 Gambar 3.113 Perancangan Layar Laporan Obat Gambar 3.114 Perancangan Layar Laporan Keuangan Gambar 3.115 Perancangan Layar Laporan Pasien 275 Gambar 3.116 Perancangan Layar Laporan Absensi Dokter Gambar 3.117 Perancangan Layar Laporan Jadwal Praktek Dokter Gambar 3.118 Perancangan Layar Laporan Jadwal Absensi Karyawan 276 Gambar 3.119 Perancangan Layar Laporan Jadwal Kerja Karyawan 3.2.5.d Perancangan Laporan Berikut ini merupakan perancangan laporan: Gambar 3.120 Perancangan Layar Laporan Obat 277 Gambar 3.121 Perancangan Layar Laporan Keuangan Gambar 3.122 Perancangan Layar Laporan Pasien 278 Gambar 3.123 Perancangan Layar Laporan Absensi Dokter Gambar 3.124 Perancangan Laporan Jadwal Praktek Dokter 279 Gambar 3.125 Perancangan Laporan Absensi Karyawan Gambar 3.126 Perancangan Layar Laporan Jadwal Kerja Karyawan 280 3.2.5.e S pesifikasi Proses Berikut ini merupakan spesifikasi proses: Modul Login M ulai Tampilkan form Login Lakukan Jika tombol Login ditekan maka Jika input Username kosong maka Tampilkan pesan “Username harus diisi” Jika input Password kosong maka Tampilkan pesan “Password harus diisi” Selain itu Buka koneksi ke database dbM edikaryaKlinik.db Cek Username dan Password Jika Username dan Password dan Status cocok maka Buka form M ain M enu Selain itu Tampilkan pesan “Username dan Password anda salah!” Akhir jika Akhir jika Akhir jika Selain itu Keluar dari program aplikasi 281 Akhir Jika Akhir Lakukan Selesai Modul Change Password M ulai Tampilkan form Change Password Buka koneksi ke database dbM edikaryaKlinik.db Tampilkan data Change Password dengan menggunakan perintah SQL yaitu “SELECT” Lakukan Jika input New Password kosong maka Tampilkan pesan “Password harus diisi” Jika input Confirm New Password kosong maka Tampilkan pesan “Confirm New Password harus diisi” Jika input New Password atau Confirm New Password tidak sama maka Tampilkan pesan “Password tidak sama” Selain itu Gunakan perintah Stored Procedure yang ada di SQL yaitu prosedur “SubmitPassword” Akhir jika Jika ingin keluar maka Tutup koneksi Akhir jika 282 Akhir lakukan Selesai Modul Input Data Jadwal Praktek Dokter M ulai Tampilkan form Input Data Jadwal Praktek Dokter Buka koneksi ke database dbM edikaryaKlinik.db Tampilkan data Jadwal Praktek Dokter dengan menggunakan perintah SQL yaitu “SELECT” Lakukan Jika ingin mencari data maka Ambil data dari database dbM edikaryaKlinik.db Akhir jika Jika ingin membuat data baru maka Cek semua field Jika input Kd Jadwal Dokter kosong maka Tampilkan pesan “Kd Jadwal Dokter harus diisi” Jika input Hari Praktek kosong maka Tampilkan pesan “Hari Praktek harus diisi” Jika input Jam Praktek kosong maka Tampilkan pesan “Jam Praktek harus diisi” Selain itu Insert M sJdwlDokter Akhir jika 283 Akhir jika Jika pengisian data dibatalkan Reset M sJdwlDokter Akhir jika Jika ingin mengubah data maka Cek semua field Jika input Kd Jadwal Dokter kosong maka Tampilkan pesan “Kd Jadwal Dokter harus diisi” Jika input Hari Praktek kosong maka Tampilkan pesan “Hari Praktek harus diisi” Jika input Jam Praktek kosong maka Tampilkan pesan “Jam Praktek harus diisi” Selain itu Update M sJdwlDokter Akhir jika Akhir jika Jika ingin menyimpan perubahan data Save M sJdwlDokter Akhir jika Jika ingin menghapus data Delete M sJdwlDokter Akhir jika Jika ingin keluar maka Tutup koneksi 284 Akhir Jika Akhir lakukan Selesai Modul View Data Jadwal Praktek Dokter M ulai Tampilkan form View Data Jadwal Praktek Dokter Buka koneksi ke database dbM edikaryaKlinik.db Tampilkan data Jadwal Praktek Dokter dengan menggunakan perintah SQL yaitu “SELECT” Lakukan Jika ingin mencari data maka Ambil data dari database dbM edikaryaKlinik.db Akhir jika Jika ingin keluar maka Tutup Koneksi Akhir Jika Akhir lakukan Selesai Modul Input Data Jadwal Kerja Karyawan M ulai Tampilkan form Input Data Jadwal Praktek Karyawan Buka koneksi ke database dbM edikaryaKlinik.db 285 Tampilkan data Jadwal Praktek Karyawan dengan menggunakan perintah SQL yaitu “SELECT” Lakukan Jika ingin mencari data maka Ambil data dari database dbM edikaryaKlinik.db Akhir jika Jika ingin membuat data baru maka Cek semua field Jika input Kd Jadwal Karyawan kosong maka Tampilkan pesan “Kd Jadwal Karyawan harus diisi” Jika input Hari Kerja kosong maka Tampilkan pesan “Hari Kerja harus diisi” Jika input Jam Kerja kosong maka Tampilkan pesan “Jam Kerja harus diisi” Selain itu Insert M sJdwlKaryawan Akhir jika Akhir jika Jika pengisian data dibatalkan Reset M sJdwlKaryawan Akhir jika Jika ingin mengubah data maka Cek semua field Jika input Kd Jadwal Karyawan kosong maka 286 Tampilkan pesan “Kd Jadwal Karyawan harus diisi” Jika input Hari Kerja kosong maka Tampilkan pesan “Hari Kerja harus diisi” Jika input Jam Kerja kosong maka Tampilkan pesan “Jam Kerja harus diisi” Selain itu Update M sJdwlKaryawan Akhir jika Akhir jika Jika ingin menyimpan perubahan data Save M sJdwlKaryawan Akhir jika Jika ingin menghapus data Delete M sJdwlDokter” Akhir jika Jika ingin keluar maka Tutup Koneksi Akhir Jika Akhir lakukan Selesai Modul View Data Jadwal Kerja Karyawan M ulai Tampilkan form View Data Jadwal Kerja Karyawan 287 Buka koneksi ke database dbM edikaryaKlinik.db Tampilkan data Jadwal Kerja Karyawan dengan menggunakan perintah SQL yaitu “SELECT” Lakukan Jika ingin mencari data maka Ambil data dari database dbM edikaryaKlinik.db Akhir jika Jika ingin keluar maka Tutup Koneksi Akhir Jika Akhir lakukan Selesai Modul Absensi Dokter M ulai Tampilkan form Absensi Dokter Buka koneksi ke database dbM edikaryaKlinik.db Tampilkan data Absensi Dokter dengan menggunakan perintah SQL yaitu “SELECT” Lakukan Jika ingin mencari data maka Ambil data dari database KlinikM edikarya.db Akhir jika Jika ingin membuat data baru maka 288 Cek semua field Jika input Kd Absensi Dokter kosong maka Tampilkan pesan “Kd Absensi Dokter harus diisi” Jika input Kd Dokter kosong maka Tampilkan pesan “Kd Dokter harus diisi” Jika input Nama Dokter kosong maka Tampilkan pesan “Nama Dokter harus diisi” Jika input Tanggal Absensi Dokter kosong maka Tampilkan pesan “Tanggal Absensi harus diisi” Jika input Jam Praktek kosong maka Tampilkan pesan “Jam Praktek harus diisi” Jika input Kehadiran Dokter kosong maka Tampilkan pesan “Kehadiran Dokter harus diisi” Jika input Keterangan Absen Dokter kosong maka Tampilkan pesan “Keterangan Absen Dokter harus diisi” Selain itu Insert AbsensiDokter Akhir jika Akhir jika Jika pengisian data dibatalkan Reset AbsensiDokter Akhir jika Jika ingin menghapus data Delete AbsensiDokter 289 Akhir jika Jika ingin keluar maka Tutup Koneksi Akhir Jika Akhir lakukan Selesai Modul Absensi Karyawan M ulai Tampilkan form Absensi Karyawan Buka koneksi ke database dbM edikaryaKlinik.db Tampilkan data Absensi Karyawan dengan menggunakan perintah SQL yaitu “SELECT” Lakukan Jika ingin mencari data maka Ambil data dari database dbM edikaryaKlinik.db Akhir jika Jika ingin membuat data baru maka Cek semua field Jika input Kd Absensi Karyawan kosong maka Tampilkan pesan “Kd Absensi Karyawan harus diisi” Jika input Kd Karyawan osong maka Tampilkan pesan “Kd Karyawan harus diisi” Jika input Nama Karyawan kosong maka 290 Tampilkan pesan “Nama Karyawan harus diisi” Jika input Tanggal Absensi Karyawan kosong maka Tampilkan pesan “Tanggal Absensi harus diisi” Jika input Jam Kerja kosong maka Tampilkan pesan “Jam Kerja harus diisi” Jika input Kehadiran Karyawan kosong maka Tampilkan pesan “Kehadiran Karyawan harus diisi” Jika input Keterangan Absen Karyawan kosong maka Tampilkan pesan “Keterangan Absen Karyawan harus diisi” Selain itu Insert AbsensiKaryawan Akhir jika Akhir jika Jika pengisian data dibatalkan Reset AbsensiKaryawan Akhir jika Jika ingin menghapus data Delete AbsensiKaryawan Akhir jika Jika ingin keluar maka Tutup Koneksi Akhir Jika Akhir lakukan 291 Selesai Modul Data Pasien M ulai Tampilkan form Data Pasien Buka koneksi ke database dbM edikaryaKlinik.db Tampilkan data Pasien dengan menggunakan perintah SQL yaitu “SELECT” Lakukan Jika ingin mencari data maka Ambil data dari database dbM edikaryaKlinik.db Akhir jika Jika ingin membuat data baru maka Cek semua field Jika input NIP kosong maka Tampilkan pesan “NIP harus diisi” Jika input Nama Pasien kosong maka Tampilkan pesan “Nama Pasien harus diisi” Jika input Nomor Identitas kosong maka Tampilkan pesan “Nomor Identitas harus diisi” Jika input Tempat Lahir kosong maka Tampilkan pesan “Tempat Lahir harus diisi” Jika input Tanggal Lahir kosong maka Tampilkan pesan “Tanggal Lahir harus diisi” Jika input Jenis Kelamin kosong maka 292 Tampilkan pesan “Jenis Kelamin harus diisi” Jika input Agama kosong maka Tampilkan pesan “Agama harus diisi” Jika input Golongan Darah kosong maka Tampilkan pesan “Golongan Darah harus diisi” Jika input Status Perkawinan kosong maka Tampilkan pesan “Status Perkawinan harus diisi” Jika input Alamat kosong maka Tampilkan pesan “Alamat harus diisi” Jika input Kode Pos kosong maka Tampilkan pesan “Kode Pos harus diisi” Jika input No.Tel Pasien kosong maka Tampilkan pesan “No. Telp Pasien harus diisi” Jika input Pekerjaan kosong maka Tampilkan pesan “Pekerjaan harus diisi” Selain itu Insert M sPasien Akhir jika Akhir jika Jika pengisian data dibatalkan Reset M sPasien Akhir jika Jika ingin mengubah data maka Cek semua field 293 Jika input NIP kosong maka Tampilkan pesan “NIP harus diisi” Jika input Nama Pasien kosong maka Tampilkan pesan “Nama Pasien harus diisi” Jika input Nomor Identitas kosong maka Tampilkan pesan “Nomor Identitas harus diisi” Jika input Tempat Lahir kosong maka Tampilkan pesan “Tempat Lahir harus diisi” Jika input Tanggal Lahir kosong maka Tampilkan pesan “Tanggal Lahir harus diisi” Jika input Jenis Kelamin kosong maka Tampilkan pesan “Jenis Kelamin harus diisi” Jika input Agama kosong maka Tampilkan pesan “Agama harus diisi” Jika input Golongan Darah kosong maka Tampilkan pesan “Golongan Darah harus diisi” Jika input Status Perkawinan kosong maka Tampilkan pesan “Status Perkawinan harus diisi” Jika input Alamat kosong maka Tampilkan pesan “Alamat harus diisi” Jika input Kode Pos kosong maka Tampilkan pesan “Kode Pos harus diisi” Jika input No.Tel Pasien kosong maka Tampilkan pesan “No. Telp Pasien harus diisi” 294 Jika input Pekerjaan kosong maka Tampilkan pesan “Pekerjaan harus diisi” Selain itu Update M sPasien Akhir jika Akhir jika Jika ingin menyimpan perubahan data Save M sPasien Akhir jika Jika ingin menghapus data Delete M sPasien Akhir jika Jika ingin keluar maka Tutup Koneksi Akhir Jika Akhir lakukan Selesai Modul Data Dokter M ulai Tampilkan form Data Dokter Buka koneksi ke database dbM edikaryaKlinik.db Tampilkan data Dokter dengan menggunakan perintah SQL yaitu “SELECT” Lakukan 295 Jika ingin mencari data maka Ambil data dari database dbM edikaryaKlinik.db Akhir jika Jika ingin membuat data baru maka Cek semua field Jika input Kd Dokter kosong maka Tampilkan pesan “Kd Dokter harus diisi” Jika input Nama Dokter kosong maka Tampilkan pesan “Nama Dokter harus diisi” Jika input Tempat Lahir kosong maka Tampilkan pesan “Tempat Lahir harus diisi” Jika input Tanggal Lahir kosong maka Tampilkan pesan “Tanggal Lahir harus diisi” Jika input Jenis Kelamin kosong maka Tampilkan pesan “Jenis Kelamin harus diisi” Jika input Agama kosong maka Tampilkan pesan “Agama harus diisi” Jika input Status Perkawinan kosong maka Tampilkan pesan “Status Perkawinan harus diisi” Jika input Alamat kosong maka Tampilkan pesan “Alamat harus diisi” Jika input Kode Pos kosong maka Tampilkan pesan “Kode Pos harus diisi” Jika input Biaya Dokter kosong maka 296 Tampilkan pesan “Biaya Dokter harus diisi” Jika input Gaji Dokter kosong maka Tampilkan pesan “Gaji Dokter harus diisi” Jika input Kd Spesialis kosong maka Tampilkan pesan “Kd Spesialis harus diisi” Jika input Kd Jabatan kosong maka Tampilkan pesan “Kd Jabatan harus diisi” Jika input Kd Jadwal Dokter kosong maka Tampilkan pesan “Kd Jadwal Dokter harus diisi” Jika input Id Login kosong maka Tampilkan pesan “Id Login harus diisi” Jika input No. Telp Dokter kosong maka Tampilkan pesan “No. Telp Dokter harus diisi” Selain itu Insert M sDokter Akhir jika Akhir jika Jika pengisian data dibatalkan Reset M sDokter Akhir jika Jika ingin mengubah data maka Cek semua field Jika input Kd Dokter kosong maka Tampilkan pesan “Kd Dokter harus diisi” 297 Jika input Nama Dokter kosong maka Tampilkan pesan “Nama Dokter harus diisi” Jika input Tempat Lahir kosong maka Tampilkan pesan “Tempat Lahir harus diisi” Jika input Tanggal Lahir kosong maka Tampilkan pesan “Tanggal Lahir harus diisi” Jika input Jenis Kelamin kosong maka Tampilkan pesan “Jenis Kelamin harus diisi” Jika input Agama kosong maka Tampilkan pesan “Agama harus diisi” Jika input Status Perkawinan kosong maka Tampilkan pesan “Status Perkawinan harus diisi” Jika input Alamat kosong maka Tampilkan pesan “Alamat harus diisi” Jika input Kode Pos kosong maka Tampilkan pesan “Kode Pos harus diisi” Jika input Biaya Dokter kosong maka Tampilkan pesan “Biaya Dokter harus diisi” Jika input Gaji Dokter kosong maka Tampilkan pesan “Gaji Dokter harus diisi” Jika input Kd Spesialis kosong maka Tampilkan pesan “Kd Spesialis harus diisi” Jika input Kd Jabatan kosong maka Tampilkan pesan “Kd Jabatan harus diisi” 298 Jika input Kd Jadwal Dokter kosong maka Tampilkan pesan “Kd Jadwal Dokter harus diisi” Jika input Id Login kosong maka Tampilkan pesan “Id Login harus diisi” Jika input No. Telp Dokter kosong maka Tampilkan pesan “No. Telp Dokter harus diisi” Selain itu Update M sDokter Akhir jika Akhir jika Jika ingin menyimpan perubahan data Save M sDokter Akhir jika Jika ingin menghapus data Delete M sDokter Akhir jika Jika ingin keluar maka Tutup Koneksi Akhir Jika Akhir lakukan Selesai 299 Modul Data Karyawan M ulai Tampilkan form Data Karyawan Buka koneksi ke database dbM edikaryaKlinik.db Tampilkan data Karyawan dengan menggunakan perintah SQL yaitu “SELECT” Lakukan Jika ingin mencari data maka Ambil data dari database dbM edikaryaKlinik.db Akhir jika Jika ingin membuat data baru maka Cek semua field Jika input Kd Karyawan kosong maka Tampilkan pesan “Kd Karyawan harus diisi” Jika input Nama Dokter kosong maka Tampilkan pesan “Nama Karyawan harus diisi” Jika input Tempat Lahir kosong maka Tampilkan pesan “Tempat Lahir harus diisi” Jika input Tanggal Lahir kosong maka Tampilkan pesan “Tanggal Lahir harus diisi” Jika input Jenis Kelamin kosong maka Tampilkan pesan “Jenis Kelamin harus diisi” Jika input Agama kosong maka Tampilkan pesan “Agama harus diisi” Jika input Status Perkawinan kosong maka 300 Tampilkan pesan “Status Perkawinan harus diisi” Jika input Status Pendidikan kosong maka Tampilkan pesan “Status Pendidikan harus diisi” Jika input Alamat kosong maka Tampilkan pesan “Alamat harus diisi” Jika input Kode Pos kosong maka Tampilkan pesan “Kode Pos harus diisi” Jika input Gaji Karyawan kosong maka Tampilkan pesan “Gaji Karyawan harus diisi” Jika input Kd Jabatan kosong maka Tampilkan pesan “Kd Jabatan harus diisi” Jika input Kd Jadwal Karyawan kosong maka Tampilkan pesan “Kd Jadwal Karyawan harus diisi” Jika input Id Login kosong maka Tampilkan pesan “Id Login harus diisi” Jika input No. Telp Karyawan kosong maka Tampilkan pesan “No. Telp Karyawan harus diisi” Selain itu Insert M sKaryawan Akhir jika Akhir jika Jika pengisian data dibatalkan Reset M sKaryawan Akhir jika 301 Jika ingin mengubah data maka Cek semua field Jika input Kd Karyawan kosong maka Tampilkan pesan “Kd Karyawan harus diisi” Jika input Nama Dokter kosong maka Tampilkan pesan “Nama Karyawan harus diisi” Jika input Tempat Lahir kosong maka Tampilkan pesan “Tempat Lahir harus diisi” Jika input Tanggal Lahir kosong maka Tampilkan pesan “Tanggal Lahir harus diisi” Jika input Jenis Kelamin kosong maka Tampilkan pesan “Jenis Kelamin harus diisi” Jika input Agama kosong maka Tampilkan pesan “Agama harus diisi” Jika input Status Perkawinan kosong maka Tampilkan pesan “Status Perkawinan harus diisi” Jika input Status Pendidikan kosong maka Tampilkan pesan “Status Pendidikan harus diisi” Jika input Alamat kosong maka Tampilkan pesan “Alamat harus diisi” Jika input Kode Pos kosong maka Tampilkan pesan “Kode Pos harus diisi” Jika input Gaji Karyawan kosong maka Tampilkan pesan “Gaji Karyawan harus diisi” 302 Jika input Kd Jabatan kosong maka Tampilkan pesan “Kd Jabatan harus diisi” Jika input Kd Jadwal Karyawan kosong maka Tampilkan pesan “Kd Jadwal Karyawan harus diisi” Jika input Id Login kosong maka Tampilkan pesan “Id Login harus diisi” Jika input No. Telp Karyawan kosong maka Tampilkan pesan “No. Telp Karyawan harus diisi” Selain itu Update M sKaryawan Akhir jika Akhir jika Jika ingin menyimpan perubahan data Save M sKaryawan Akhir jika Jika ingin menghapus data Delete M sKaryawan Akhir jika Jika ingin keluar maka Tutup Koneksi Akhir Jika Akhir lakukan Selesai 303 Modul Data Obat M ulai Tampilkan form Data Obat Buka koneksi ke database dbM edikaryaKlinik.db Tampilkan data Obat dengan menggunakan perintah SQL yaitu “SELECT” Lakukan Jika ingin mencari data maka Ambil data dari database dbM edikaryaKlinik.db Akhir jika Jika ingin membuat data baru maka Cek semua field Jika input Kd Obat kosong maka Tampilkan pesan “Kd Karyawan harus diisi” Jika input Nama Obat kosong maka Tampilkan pesan “Nama Karyawan harus diisi” Jika input Kd Jenis Obat kosong maka Tampilkan pesan “Tempat Lahir harus diisi” Jika input Jenis Obat kosong maka Tampilkan pesan “Jenis Obat harus diisi” Jika input Kemasan kosong maka Tampilkan pesan “Kemasan harus diisi” Jika input Isi kosong maka Tampilkan pesan “Isi harus diisi” Jika input Qty Obat Tersedia kosong maka 304 Tampilkan pesan “Qty Obat Tersedia harus diisi” Jika input Harga Obat kosong maka Tampilkan pesan “Harga Obat harus diisi” Selain itu Insert M sObat Akhir jika Akhir jika Jika pengisian data dibatalkan Reset M sObat Akhir jika Jika ingin mengubah data maka Cek semua field Jika input Kd Obat kosong maka Tampilkan pesan “Kd Karyawan harus diisi” Jika input Nama Obat kosong maka Tampilkan pesan “Nama Karyawan harus diisi” Jika input Kd Jenis Obat kosong maka Tampilkan pesan “Tempat Lahir harus diisi” Jika input Jenis Obat kosong maka Tampilkan pesan “Jenis Obat harus diisi” Jika input Kemasan kosong maka Tampilkan pesan “Kemasan harus diisi” Jika input Isi kosong maka Tampilkan pesan “Isi harus diisi” 305 Jika input Qty Obat Tersedia kosong maka Tampilkan pesan “Qty Obat Tersedia harus diisi” Jika input Harga Obat kosong maka Tampilkan pesan “Harga Obat harus diisi” Selain itu Update M sObat Akhir jika Akhir jika Jika ingin menyimpan perubahan data Save M sObat Akhir jika Jika ingin menghapus data Delete M sObat Akhir jika Jika ingin keluar maka Tutup Koneksi Akhir Jika Akhir lakukan Selesai Modul Data Pemasok M ulai Tampilkan form Data Pemasok Buka koneksi ke database dbM edikaryaKlinik.db 306 Tampilkan data Pemasok dengan menggunakan perintah SQL yaitu “SELECT” Lakukan Jika ingin mencari data maka Ambil data dari database dbM edikaryaKlinik.db Akhir jika Jika ingin membuat data baru maka Cek semua field Jika input Kd Pemasok kosong maka Tampilkan pesan “Kd Pemasok harus diisi” Jika input Nama Pemasok kosong maka Tampilkan pesan “Nama Pemasok harus diisi” Jika input Alamat kosong maka Tampilkan pesan “Alamat harus diisi” Jika input KodePos kosong maka Tampilkan pesan “KodePos harus diisi” Jika input No. Telp Pemasok kosong maka Tampilkan pesan “No. Telp Pemasok harus diisi” Selain itu Insert M sPemasok Akhir jika Akhir jika Jika pengisian data dibatalkan Reset M sPemasok Akhir jika 307 Jika ingin mengubah data maka Cek semua field Jika input Kd Pemasok kosong maka Tampilkan pesan “Kd Pemasok harus diisi” Jika input Nama Pemasok kosong maka Tampilkan pesan “Nama Pemasok harus diisi” Jika input Alamat kosong maka Tampilkan pesan “Alamat harus diisi” Jika input KodePos kosong maka Tampilkan pesan “KodePos harus diisi” Jika input No. Telp Pemasok kosong maka Tampilkan pesan “No. Telp Pemasok harus diisi” Selain itu Update M sPemasok Akhir jika Akhir jika Jika ingin menyimpan perubahan data Save M sPemasok Akhir jika Jika ingin menghapus data Delete M sPemasok Akhir jika Jika ingin keluar maka Tutup Koneksi 308 Akhir Jika Akhir lakukan Selesai Modul Pendaftaran Pasien Baru M ulai Tampilkan form Pendaftaran Pasien Baru Buka koneksi ke database dbM edikaryaKlinik.db Tampilkan data Pendaftaran Pasien Baru dengan menggunakan perintah SQL yaitu “SELECT” Lakukan Jika ingin membuat data baru maka Cek semua field Jika input NIP kosong maka Tampilkan pesan “NIP harus diisi” Jika input Nama Pasien kosong maka Tampilkan pesan “Nama Pasien harus diisi” Jika input Nomor Identitas kosong maka Tampilkan pesan “Nomor Identitas harus diisi” Jika input Tempat Lahir kosong maka Tampilkan pesan “Tempat Lahir harus diisi” Jika input Tanggal Lahir kosong maka Tampilkan pesan “Tanggal Lahir harus diisi” Jika input Jenis Kelamin kosong maka 309 Tampilkan pesan “Jenis Kelamin harus diisi” Jika input Agama kosong maka Tampilkan pesan “Agama harus diisi” Jika input Golongan Darah kosong maka Tampilkan pesan “Golongan Darah harus diisi” Jika input Status Perkawinan kosong maka Tampilkan pesan “Status Perkawinan harus diisi” Jika input Alamat kosong maka Tampilkan pesan “Alamat harus diisi” Jika input Kode Pos kosong maka Tampilkan pesan “Kode Pos harus diisi” Jika input No.Tel Pasien kosong maka Tampilkan pesan “No. Telp Pasien harus diisi” Jika input Pekerjaan kosong maka Tampilkan pesan “Pekerjaan harus diisi” Selain itu Save M sPasien Akhir jika Akhir jika Jika pengisian data dibatalkan Reset M sPasien Akhir jika Jika tombol Exit ditekan maka Tutup Koneksi 310 Akhir Jika Akhir lakukan Selesai Modul Pendaftaran Pasien Berobat M ulai Tampilkan form Data Pasien Berobat Buka koneksi ke database dbM edikaryaKlinik.db Tampilkan data Pasien Berobat dengan menggunakan perintah SQL yaitu “SELECT” Lakukan Jika ingin mencari data maka Ambil data dari database dbM edikaryaKlinik.db Akhir jika Jika ingin membuat data baru maka Cek semua field Jika input No. Berobat kosong maka Tampilkan pesan “No. Berobat harus diisi” Jika input Tanggal Berobat kosong maka Tampilkan pesan “Tanggal Berobat harus diisi” Jika input Jam Berobat maka Tampilkan pesan “Jam Berobat harus diisi” Jika input NIP kosong maka Tampilkan pesan “NIP harus diisi” 311 Jika input Nama Pasien kosong maka Tampilkan pesan “Nama Pasien harus diisi” Jika input Umur Pasien kosong maka Tampilkan pesan “Umur Pasien harus diisi” Jika input Pelayanan kosong maka Tampilkan pesan “Pelayanan harus diisi” Jika input Kd Dokter kosong maka Tampilkan pesan “Kd Dokter harus diisi” Jika input Nama Dokter kosong maka Tampilkan pesan “Nama Dokter harus diisi” Selain itu Add PasienBerobat Akhir jika Akhir jika Jika pengisian data dibatalkan Reset PasienBerobat Akhir jika Jika ingin keluar maka Tutup Koneksi Akhir Jika Akhir lakukan Selesai 312 Modul Antrian Pasien M ulai Tampilkan form Antrian Pasien Buka koneksi ke database KlinikM edikarya.db Tampilkan data Antrian Pasien dengan menggunakan perintah SQL yaitu “SELECT” Lakukan Jika ingin mencari data maka Ambil data dari database KlinikM edikarya.db Akhir jika Jika ingin menghapus baris data Ok AntrianPasien Akhir jika Jika tombol Exit ditekan maka Tutup Koneksi Akhir Jika Akhir lakukan Selesai Modul Input Data Resep M ulai Tampilkan form Data Resep Buka koneksi ke database dbM edikaryaKlinik.db Tampilkan data Resep dengan menggunakan perintah SQL yaitu “SELECT” Lakukan 313 Jika ingin mencari data maka Ambil data dari database dbM edikaryaKlinik.db Akhir jika Jika ingin membuat data baru maka Cek semua field Jika input Kd Resep kosong maka Tampilkan pesan “Kd Resep harus diisi” Jika input Tanggal Resep kosong maka Tampilkan pesan “Tanggal Resep harus diisi” Jika input NIP kosong maka Tampilkan pesan “NIP harus diisi” Jika input Kd Dokter kosong maka Tampilkan pesan “Kd Dokter harus diisi” Jika input Kd Obat kosong maka Tampilkan pesan “Kd Obat harus diisi” Jika input Nama Obat kosong maka Tampilkan pesan “Nama Obat harus diisi” Jika input Harga Obat kosong maka Tampilkan pesan “Harga Obat harus diisi” Jika input Dosis Obat kosong maka Tampilkan pesan “Dosis Obat harus diisi” Jika input Qty Obat Resep kosong maka Tampilkan pesan “Qty Obat Resep harus diisi” Selain itu 314 Add Resep Akhir jika Akhir jika Jika pengisian data dibatalkan Reset Resep Akhir jika Jika ingin menyimpan perubahan data Save Resep Akhir jika Jika ingin menghapus data Delete Resep Akhir jika Jika ingin keluar maka Tutup Koneksi Akhir Jika Akhir lakukan Selesai Modul View Data Resep M ulai Tampilkan form View Data Resep Buka koneksi ke database dbM edikaryaKlinik.db Tampilkan data Resep dengan menggunakan perintah SQL yaitu “SELECT” Lakukan 315 Jika ingin mencari data maka Ambil data dari database dbM edikaryaKlinik.db Akhir jika Jika tombol Exit ditekan maka Tutup Koneksi Akhir Jika Akhir lakukan Selesai Modul Input Data Rekam Medis M ulai Tampilkan form Data Rekam M edis Buka koneksi ke database dbM edikaryaKlinik.db Tampilkan data Rekam M edis dengan menggunakan perintah SQL yaitu “SELECT” Lakukan Jika ingin mencari data maka Ambil data dari database dbM edikaryaKlinik.db Akhir jika Jika ingin membuat data baru maka Cek semua field Jika input No. Rekam kosong maka Tampilkan pesan “No. Rekam harus diisi” Jika input Tanggal Rekam kosong maka 316 Tampilkan pesan “Tanggal Rekam harus diisi” Jika input Jam Rekam kosong maka Tampilkan pesan “Jam Rekam harus diisi” Jika input NIP kosong maka Tampilkan pesan “NIP harus diisi” Jika input Nama Pasien kosong maka Tampilkan pesan “Nama Pasien harus diisi” Jika input Umur Pasien kosong maka Tampilkan pesan “Umur Pasien harus diisi” Jika input Keluhan kosong maka Tampilkan pesan “Keluhan harus diisi” Jika input Penyakit kosong maka Tampilkan pesan “Penyakit harus diisi” Jika input Tindakan Pasien kosong maka Tampilkan pesan “Tindakan Pasien harus diisi” Jika input Kd Resep kosong maka Tampilkan pesan “Kd Resep harus diisi” Jika input Kd Obat kosong maka Tampilkan pesan “Kd Obat harus diisi” Jika input Qty Obat kosong maka Tampilkan pesan “QtyObat harus diisi” Jika input Dosisi Obat kosong maka Tampilkan pesan “Dosisi Obat harus diisi” Jika input Kd Dokter kosong maka 317 Tampilkan pesan “Kd Dokter harus diisi” Jika input Nama Dokter kosong maka Tampilkan pesan “Nama Dokter harus diisi” Jika input Kd Karyawan kosong maka Tampilkan pesan “Kd Karyawan harus diisi” Jika input Nama Karyawan kosong maka Tampilkan pesan “Nama Karyawan harus diisi” Selain itu Add RekamM edis Akhir jika Akhir jika Jika pengisian data dibatalkan Reset RekamM edis Akhir jika Jika ingin menyimpan perubahan data Save RekamM edis Akhir jika Jika ingin menghapus data Delete RekamM edis Akhir jika Jika ingin keluar maka Tutup Koneksi Akhir Jika Akhir lakukan 318 Selesai Modul View Data Rekam Medis M ulai Tampilkan form View Data Rekam M edis Buka koneksi ke database dbM edikaryaKlinik.db Tampilkan data Rekam M edis dengan menggunakan perintah SQL yaitu “SELECT” Lakukan Jika ingin mencari data maka Ambil data dari database dbM edikaryaKlinik.db Akhir jika Jika tombol Exit ditekan maka Tutup Koneksi Akhir Jika Akhir lakukan Selesai Modul Administrasi M ulai Tampilkan form Administrasi Buka koneksi ke database KlinikM edikarya.db Tampilkan data MsPasien dengan menggunakan perintah SQL yaitu “SELECT” Lakukan 319 Jika ingin mencari data maka Ambil data dari database KlinikM edikarya.db Akhir jika Jika tombol Exit ditekan maka Tutup Koneksi Akhir Jika Akhir lakukan Selesai Modul Input Data Penjualan Obat M ulai Tampilkan form Data Penjualan Obat Buka koneksi ke database dbM edikaryaKlinik.db Tampilkan data Penjualan Obat dengan menggunakan perintah SQL yaitu “SELECT” Lakukan Jika ingin mencari data maka Ambil data dari database dbM edikaryaKlinik.db Akhir jika Jika ingin membuat data baru maka Cek semua field Jika input No. Penjualan kosong maka Tampilkan pesan “No. Penjualan harus diisi” Jika input Tanggal Penjualan kosong maka 320 Tampilkan pesan “Tanggal Penjualan harus diisi” Jika input Kd Resep kosong maka Tampilkan pesan “Kd Resep harus diisi” Jika input Kd Obat kosong maka Tampilkan pesan “Kd Obat harus diisi” Jika input Nama Obat kosong maka Tampilkan pesan “Nama Obat harus diisi” Jika input Jenis Obat kosong maka Tampilkan pesan “Jenis Obat harus diisi” Jika input Harga Obat kosong maka Tampilkan pesan “Harga Obat harus diisi” Jika input Qty Obat Keluar kosong maka Tampilkan pesan “Qty Obat Keluar harus diisi” Jika input Kd Karyawan kosong maka Tampilkan pesan “Kd Karyawan harus diisi” Jika input Nama Karyawan kosong maka Tampilkan pesan “Nama Karyawan harus diisi” Selain itu Add PenjualanObat Akhir jika Akhir jika Jika pengisian data dibatalkan Reset PenjualanObat Akhir jika 321 Jika ingin menyimpan perubahan data Save PenjualanObat Akhir jika Jika ingin menghapus data Delete PenjualanObat Akhir jika Jika ingin keluar maka Tutup Koneksi Akhir Jika Akhir lakukan Selesai Modul View Penjualan Obat M ulai Tampilkan form View Penjualan Obat Buka koneksi ke database dbM edikaryaKlinik.db Tampilkan data Penjualan Obat dengan menggunakan perintah SQL yaitu “SELECT” Lakukan Jika ingin mencari data maka Ambil data dari database dbM edikaryaKlinik.db Akhir jika Jika tombol Exit ditekan maka Tutup Koneksi 322 Akhir Jika Akhir lakukan Selesai Modul Input Data Pembelian Obat M ulai Tampilkan form Data Pembelian Obat Buka koneksi ke database dbM edikaryaKlinik.db Tampilkan data Pembelian Obat dengan menggunakan perintah SQL yaitu “SELECT” Lakukan Jika ingin mencari data maka Ambil data dari database dbM edikaryaKlinik.db Akhir jika Jika ingin membuat data baru maka Cek semua field Jika input No. Pembelian kosong maka Tampilkan pesan “No. Pembelian harus diisi” Jika input Tanggal Pembelian kosong maka Tampilkan pesan “Tanggal Pembelian harus diisi” Jika input Kd Resep kosong maka Tampilkan pesan “Kd Resep harus diisi” Jika input No. Faktur Pembelian kosong maka Tampilkan pesan “No. Faktur Pembelian harus diisi” 323 Jika input Kd Obat kosong maka Tampilkan pesan “Kd Obat harus diisi” Jika input Nama Obat kosong maka Tampilkan pesan “Nama Obat harus diisi” Jika input Jenis Obat kosong maka Tampilkan pesan “Jenis Obat harus diisi” Jika input Qty Obat Beli kosong maka Tampilkan pesan “Qty Obat Beli harus diisi” Jika input Status kosong maka Tampilkan pesan “Status harus diisi” Jika input Kd Karyawan kosong maka Tampilkan pesan “Kd Karyawan harus diisi” Jika input Nama Karyawan kosong maka Tampilkan pesan “Nama Karyawan harus diisi” Selain itu Add PembelianObat Akhir jika Akhir jika Jika pengisian data dibatalkan Reset PembelianObat Akhir jika Jika ingin menyimpan perubahan data Save PembelianObat Akhir jika 324 Jika ingin menghapus data Delete PembelianObat Akhir jika Jika ingin keluar maka Tutup Koneksi Akhir Jika Akhir lakukan Selesai Modul View Pembelian Obat M ulai Tampilkan form View Pembelian Obat Buka koneksi ke database dbM edikaryaKlinik.db Tampilkan data Pembelian Obat dengan menggunakan perintah SQL yaitu “SELECT” Lakukan Jika ingin mencari data maka Ambil data dari database dbM edikaryaKlinik.db Akhir jika Jika tombol Exit ditekan maka Tutup Koneksi Akhir Jika Akhir lakukan Selesai 325 Modul Input Data Faktur Pembelian Obat M ulai Tampilkan form Data Faktur Pembelian Obat Buka koneksi ke database dbM edikaryaKlinik.db Tampilkan data Faktur Pembelian Obat dengan menggunakan perintah SQL yaitu “SELECT” Lakukan Jika ingin mencari data maka Ambil data dari database dbM edikaryaKlinik.db Akhir jika Jika ingin membuat data baru maka Cek semua field Jika input No. Faktur Pembelian kosong maka Tampilkan pesan “No. Faktur Pembelian harus diisi” Jika input Tanggal Faktur kosong maka Tampilkan pesan “Tanggal Faktur harus diisi” Jika input Tanggal Jatuh Tempo kosong maka Tampilkan pesan “Tanggal Jatuh Tempo harus diisi” Jika input Kd Obat kosong maka Tampilkan pesan “Kd Obat harus diisi” Jika input Nama Obat kosong maka Tampilkan pesan “Nama Obat harus diisi” Jika input Harga Obat kosong maka Tampilkan pesan “Harga Obat harus diisi” 326 Jika input Qty Obat Beli kosong maka Tampilkan pesan “Qty Obat Beli harus diisi” Jika input Kd Pemasok kosong maka Tampilkan pesan “Kd Pemasok harus diisi” Jika input Nama Pemasok kosong maka Tampilkan pesan “Nama Pemasok harus diisi” Jika input Kd Karyawan maka Tampilkan pesan “Kd Karyawan harus diisi” Jika input Nama Karyawan kosong maka Tampilkan pesan “Nama Karyawan harus diisi” Selain itu Add FakturPembelianObat Akhir jika Akhir jika Jika pengisian data dibatalkan Reset FakturPembelianObat Akhir jika Jika ingin menyimpan perubahan data Save FakturPembelianObat Akhir jika Jika ingin menghapus data Delete FakturPembelianObat Akhir jika Jika ingin keluar maka 327 Tutup Koneksi Akhir Jika Akhir lakukan Selesai Modul View Data Faktur Pembelian Obat M ulai Tampilkan form View Data Faktur Pembelian Obat Buka koneksi ke database dbM edikaryaKlinik.db Tampilkan data Faktur Pembelian Obat dengan menggunakan perintah SQL yaitu “SELECT” Lakukan Jika ingin mencari data maka Ambil data dari database dbM edikaryaKlinik.db Akhir jika Jika tombol Exit ditekan maka Tutup Koneksi Akhir Jika Akhir lakukan Selesai Modul Input Data Retur Pembelian Obat M ulai Tampilkan form Data Retur Pembelian Obat 328 Buka koneksi ke database dbM edikaryaKlinik.db Tampilkan data Retur Pembelian Obat dengan menggunakan perintah SQL yaitu “SELECT” Lakukan Jika ingin mencari data maka Ambil data dari database dbM edikaryaKlinik.db Akhir jika Jika ingin membuat data baru maka Cek semua field Jika input No. Retur kosong maka Tampilkan pesan “No. Retur harus diisi” Jika input Tanggal Retur kosong maka Tampilkan pesan “Tanggal Retur harus diisi” Jika input Ket Retur kosong maka Tampilkan pesan “Ket Retur harus diisi” Jika input No. Pembelian kosong maka Tampilkan pesan “No. Pembelian harus diisi” Jika input Kd Obat kosong maka Tampilkan pesan “Kd Obat harus diisi” Jika input Nama Obat kosong maka Tampilkan pesan “Nama Obat harus diisi” Jika input Qty Obat Retur kosong maka Tampilkan pesan “Qty Obat Retur harus diisi” Jika input Kd Pemasok kosong maka 329 Tampilkan pesan “Kd Pemasok harus diisi” Jika input Nama Pemasok kosong maka Tampilkan pesan “Nama Pemasok harus diisi” Selain itu Add ReturPembelianObat Akhir jika Akhir jika Jika pengisian data dibatalkan Reset ReturPembelianObat Akhir jika Jika ingin menyimpan perubahan data Save ReturPembelianObat Akhir jika Jika ingin menghapus data Delete ReturPembelianObat Akhir jika Jika ingin keluar maka Tutup Koneksi Akhir Jika Akhir lakukan Selesai 330 Modul View Data Retur Pembelian Obat M ulai Tampilkan form View Data Retur Pembelian Obat Buka koneksi ke database dbM edikaryaKlinik.db Tampilkan data Retur Pembelian Obat dengan menggunakan perintah SQL yaitu “SELECT” Lakukan Jika ingin mencari data maka Ambil data dari database dbM edikaryaKlinik.db Akhir jika Jika tombol Exit ditekan maka Tutup Koneksi Akhir Jika Akhir lakukan Selesai Modul Pembayaran Pasien M ulai Tampilkan form Data Pembayaran Pasien Buka koneksi ke database dbM edikaryaKlinik.db Tampilkan data Pembayaran Pasien dengan menggunakan perintah SQL yaitu “SELECT” Lakukan Jika ingin mencari data maka 331 Ambil data dari database dbM edikaryaKlinik.db Akhir jika Jika ingin membuat data baru maka Cek semua field Jika input No. Pembayaran kosong maka Tampilkan pesan “No. Pembayaran harus diisi” Jika input Tanggal Pembayaran kosong maka Tampilkan pesan “Tanggal Pembayaran harus diisi” Jika input Jam kosong maka Tampilkan pesan “Jam harus diisi” Jika input NIP kosong maka Tampilkan pesan “NIP harus diisi” Jika input Nama Pasien kosong maka Tampilkan pesan “Nama Pasien harus diisi” Jika input No. Berobat kosong maka Tampilkan pesan “No. Berobat harus diisi” Jika input Pelayanan kosong maka Tampilkan pesan “Pelayanan harus diisi” Jika input Kd Dokter kosong maka Tampilkan pesan “Kd Dokter harus diisi” Jika input Nama Dokter kosong maka Tampilkan pesan “Nama Dokter harus diisi” Jika input Biaya Dokter kosong maka Tampilkan pesan “Biaya Dokter harus diisi” 332 Jika input Biaya Admin kosong maka Tampilkan pesan “Biaya Admin harus diisi” Jika input Kd Resep kosong maka Tampilkan pesan “Kd Resep harus diisi” Jika input Kd Obat kosong maka Tampilkan pesan “Kd Obat harus diisi” Jika input Nama Obat kosong maka Tampilkan pesan “Nama Obat harus diisi” Jika input Jenis Obat kosong maka Tampilkan pesan “Jenis Obat harus diisi” Jika input Harga Obat kosong maka Tampilkan pesan “Harga Obat harus diisi” Jika input Qty Obat Keluar kosong maka Tampilkan pesan “Qty Obat Keluar harus diisi” Jika input Kd Karyawan kosong maka Tampilkan pesan “Nama Karyawan harus diisi” Selain itu Add PembayaranPasien Akhir jika Akhir jika Jika pengisian data dibatalkan Reset PembayaranPasien Akhir jika Jika ingin menyimpan perubahan data 333 Save PembayaranPasien Akhir jika Jika ingin menghapus data Delete PembayaranPasien Akhir jika Jika ingin keluar maka Tutup Koneksi Akhir Jika Akhir lakukan Selesai Modul Laporan Obat M ulai Tampilkan form Laporan Obat Buka koneksi ke database dbM edikaryaKlinik.db Tampilkan data Laporan Obat dengan menggunakan perintah SQL yaitu “SELECT” Lakukan Jika ingin mencetak data maka View LaporanObat Selain itu Cancel LaporanObat Akhir jika Jika ingin keluar maka 334 Tutup Koneksi Akhir Jika Akhir Lakukan Selesai Modul Laporan Keuangan M ulai Tampilkan form Laporan Keuangan Buka koneksi ke database dbM edikaryaKlinik.db Tampilkan data Laporan Keuangan dengan menggunakan perintah SQL yaitu “SELECT” Lakukan Jika ingin mencetak data maka View LaporanKeuangan Selain itu Cancel LaporanKeuangan Akhir jika Jika ingin keluar maka Tutup Koneksi Akhir Jika Akhir Lakukan Selesai 335 Modul Laporan Pasien M ulai Tampilkan form Laporan Pasien Buka koneksi ke database dbM edikaryaKlinik.db Tampilkan data Laporan Pasien dengan menggunakan perintah SQL yaitu “SELECT” Lakukan Jika ingin mencetak data maka View LaporanPasien Selain itu Cancel LaporanPasien Akhir jika Jika ingin keluar maka Tutup Koneksi Akhir Jika Akhir Lakukan Selesai Modul Laporan Absensi Dokter M ulai Tampilkan form Laporan Absensi Dokter Buka koneksi ke database dbM edikaryaKlinik.db Tampilkan data Laporan Absensi Dokter dengan menggunakan perintah SQL yaitu “SELECT” 336 Lakukan Jika ingin mencetak data maka View LaporanAbsensiDokter Selain itu Cancel LaporanAbsensiDokter Akhir jika Jika ingin keluar maka Tutup Koneksi Akhir Jika Akhir Lakukan Selesai Modul Laporan Jadwal Praktek Dokter M ulai Tampilkan form Laporan Praktek Dokter Buka koneksi ke database dbM edikaryaKlinik.db Tampilkan data Laporan Praktek Dokter dengan menggunakan perintah SQL yaitu “SELECT” Lakukan Jika ingin mencetak data maka View LaporanPraktekDokter Selain itu Cancel LaporanPraktekDokter Akhir jika 337 Jika ingin keluar maka Tutup Koneksi Akhir Jika Akhir Lakukan Selesai Modul Laporan Absensi Karyawan M ulai Tampilkan form Laporan Absensi Karyawan Buka koneksi ke database dbM edikaryaKlinik.db Tampilkan data Laporan Obat dengan menggunakan perintah SQL yaitu “SELECT” Lakukan Jika ingin mencetak data maka View LaporanAbsensiKaryawan Selain itu Cancel LaporanAbsensiKaryawan Akhir jika Jika ingin keluar maka Tutup Koneksi Akhir Jika Akhir Lakukan Selesai 338 Modul Laporan Jadwal Kerja Karyawan M ulai Tampilkan form Laporan Jadwal Kerja Karyawan Buka koneksi ke database dbM edikaryaKlinik.db Tampilkan data Laporan Jadwal Kerja Karyawan dengan menggunakan perintah SQL yaitu “SELECT” Lakukan Jika ingin mencetak data maka View LaporanJadwalKerjaKaryawan Selain itu Cancel LaporanJadwalKerjaKaryawan Akhir jika Jika ingin keluar maka Tutup Koneksi Akhir Jika Akhir Lakukan Selesai