BAB 3 ANALISIS DAN PERANCANGAN 3.1 Analisis Berikut ini

advertisement
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
Download