70
PERANCANGAN SISTEM DAN IMPLEMENTASI
4.1 Perancangan Basis Data
Pada bagian ini akan dilakukan perancangan basis data yang dilakukan melalui tiga tahap perancangan yaitu:
a. Perancangan basis data Konseptual (Conceptual database design) b. Perancangan basis data Logikal (Logical database design)
c. Perancangan basis data Fisikal (Physical database design)
4.1.1 Perancangan Basis Data Konseptual
Perancangan basis data secara konseptual merupakan suatu proses untuk merancang model dengan menggunakan informasi yang diperoleh dari RSIAA. Beberapa langkah penting dalam conceptual database design adalah : 1. Identifikasi tipe entitas.
2. Identifikasi tipe relasional.
3. Identifikasi dan asosiasi atribut suatu entitas. 4. Identifikasi kandidat dan primary key setiap entitas.
A. Identifikasi Tipe Entitas
Tujuan dari tahap ini adalah untuk menentukan entitas utama yang diperlukan dalam perancangan basis data konseptual.
Tabel 4.1 Identifikasi Tipe Entitas
Nama Entity Alias Deskripsi
Pasien Pasien Anak,
Pasien Kandungan, Pasien Umum
Istilah untuk semua pasien yang terdaftar di RSIAA
Rawat Jalan Diagnosa Rawat Jalan
Istilah yang menggambarkan kegiatan pasien saat menjalani konsultasi rawat jalan pada instalasi rawat jalan RSIAA Karyawan Staff, perawat,
dokter
Istilah untuk semua pekerja yang bekerja di RSIAA Fasilitas Penunjang Medis Fasilitas Penunjang Medis
Istilah untuk menggambarkan fasilitas penunjang medis yang tersedia untuk mendukung perawatan pasien rawat inap maupun rawat jalan di RSIAA
Rawat Inap Opnam Istilah untuk kegiatan rawat inap yang akan dimiliki oleh setiap pasien ketika menjalankan rawat inap di RSIAA
Peralatan Alat kesehatan, peralatan medis
Istilah yang berhubungan dengan semua peralatan medis yang tersedia di RSIAA
Kamar Ruangan Istilah yang digunakan untuk
menggambarkan kamar tempat pasien di rawat inap di RSIAA
Pembayaran Transaksi pembayaran pasien
Istilah yang berhubungan dengan semua transaksi pembayaran pasien kepada RSIAA
Obat Obat Istilah yang digunakan untuk semua yang berhubungan dengan obat-obatan yang
digunakan atau tersedia pada RSIAA Konsultasi Anak Diagnosa
Anak
Istilah yang menggambarkan kegiatan pasien saat menjalani konsultasi anak pada RSIAA
Konsultasi Kandungan
Diagnosa Kandungan
Istilah yang menggambarkan kegiatan pasien saat menjalani konsultasi kandungan pada RSIAA
Konsultasi Umum Diagnosa Umum
Istilah yang menggambarkan kegiatan pasien saat menjalani konsultasi umum pada RSIAA
Transaksi Obat Pemakaian obat
Istilah yang berhubungan dengan transaksi obat yang dilakukan oleh pasien dengan karyawan yang bekerja di RSIAA
Transaksi Peralatan
Pemakaian peralatan
Istilah yang berhubungan dengan transaksi peralatan yang dilakukan oleh pasien dengan karyawan yang bekerja di RSIAA Transaksi
Fasilitas
Penunjang Medis
Pemakaian fm Istilah yang berhubungan dengan transaksi fasilitas penunjang medis yang digunakan oleh pasien dengan karyawan yang bekerja di RSIAA
B. Mengidentifikasi Tipe Relasional
Tujuan dari tahap ini adalah untuk menentukan hubungan-hubungan penting yang ada antara jenis-jenis entitas yang telah diidentifikasikan.
Langkah-langkah penting dalam identifikasi tipe relasional adalah: 1. Membuat E-R diagram.
Membuat E-R Diagram:
Di bawah ini adalah diagram ER awal yang diperoleh dari hasil identifikasi entity dan relasinya serta multiplicity, namum masih dapat berubah pada tahap perancangan basis data selanjutnya.
Menentukan pembatas multiplicity dari tipe relasional: Tabel 4.2 Multiplicity Tipe Relasional
Nama Entitas Multi plicity
Relationship Nama Entitas Multi Plicity Karyawan 1..1 1..1 0..* 0..* 0..* 1..* Menangani Menangani Menangani Menangani Menangani Menangani Pembayaran Rawat Jalan Obat Peralatan Fasilitas PM Rawat Inap 0..* 0..* 0..* 0..* 0..* 0..* Rawat Jalan 0..* 0..* 0..* 0..* Mencantumkan Mencantumkan Mencantumkan Menggunakan Konsultasi Kandungan Konsultasi Anak Konsultasi Umum Obat 0..* 0..* 0..* 0..* Rawat Inap 0..* 0..* 0..* 0..* 0..* 0..* 1..* Mencantumkan Mencantumkan Menggunakan Menggunakan Menggunakan Mencantumkan Memiliki Konsultasi Kandungan Konsultasi Anak Konsultasi Umum Obat Peralatan Fasilitas PM Kamar 0..* 0..* 0..* 0..* 0..* 0..* 1..* Pembayaran 1..1 1..1 1..* 1..* 1..* 1..* Mencantumkan Mencantumkan Mencantumkan Mencantumkan Mencantumkan Mencantumkan Rawat Inap Rawat Jalan Transaksi Obat Transaksi Peralatan Fasilitas PM Pasien 0..1 1..* 0..* 0..* 0..* 1..1 Transaksi Obat 0..* 1..* Mencantumkan Mencantumkan Obat Pasien 1..* 1..1 Transaksi Peralatan 0..* 1..* Mencantumkan Mencantumkan Peralatan Pasien 1..* 1..1 Transaksi Fm 0..* 1..* Mencantumkan Mencantumkan Layanan Pasien 1..* 1..1 Konsultasi Umum 1..* Mencantumkan Pasien 1..1
Konsultasi Kandungan
1..* Mencantumkan Pasien 1..1
C. Identifikasi dan Asosiasi Atribut Suatu Entiti
Pada tahap ini kita harus melakukan atribut dari tiap entitas yang telah ditentukan sebelumnya. Kita harus menuliskan nama atribut untuk tiap entitas dan memberi keterangan arti maksud dari atribut tersebut. Kemudian kita juga harus menuliskan tipe data dan panjang dari atribut tersebut. Setelah itu, kita juga menentukan apakah atribut tersebut boleh null atau tidak dan mempunyai multivalue atau tidak.
No. Entiti Lampiran
1 Pasien Tabel L.1
2 Karyawan Tabel L.2
3 Obat Tabel L.3
4 Peralatan Tabel L.4
5 Fasilitas Penunjang Medis Tabel L.5
6 Kamar Tabel L.6
7 Rawat Jalan Tabel L.7
8 Rawat Inap Tabel L.8
9 Konsultasi Umum Tabel L.9 10 Konsultasi Anak Tabel L.10 11 Konsultasi Kandungan Tabel L.11 12 Transaksi Obat Tabel L.12 13 Transaksi Peralatan Tabel L.13 14 Transaksi Fm Tabel L.14
15 Pembayaran Tabel L.15
D. Identifikasi Kandidat dan Primary Key Setiap Entiti
Pada langkah ini kita harus menentukan candidate key dan primary key dari entiti yang telah kita tentukan sebelumnya. Candidate key adalah key unik calon dari primary key. Primary key adalah key unik yang mewakili entiti tersebut. Sangatlah penting untuk dapat mengidentifikasikan primary key karena nantinya akan dipakai dalam proses query di dalam basis data.
Tabel 4.3 Identifikasi Kandidat dan Primary Key Setiap Entiti
Nama Entitas Kandidat Key Primary Key
Pasien NoRM NoRM
Karyawan KdKaryawan KdKaryawan
Obat KdObat KdObat
Peralatan KdPeralatan KdPeralatan
Fasilitas Penunjang Medis
KdFasilitas KdFasilitas
Kamar KdKamar KdKamar
Rawat Jalan KdRawatJalan KdPasien KdObat
KdRawatJalan
Rawat Inap KdRawatInap KdPasien KdObat KdPeralatan KdLayanan KdKamar KdRawatInap
Konsultasi Umum KdKonsultasi NoRM KdPasien
KdKonsultasi
Konsultasi Anak KdKonsultasi NoRM KdPasien
KdKonsultasi
Konsultasi Kandungan KdKonsultasi NoRM KdPasien
KdKonsultasi
Transaksi Obat KdTransObat KdPasien KdObat
KdTransObat
Transaksi Peralatan KdTransPeralatan KdPasien KdPeralatan KdTransPeralatan Transaksi Fm KdTransFm KdPasien KdLayanan KdTransFm Pembayaran KdPembayaran KdPasien KdRawatJalan KdRawatInap KdObat KdPeralatan KdLayanan KdPembayaran
Setelah kita menentukan primary key dan candidate key, maka kita menggabungkannya dengan model entity relationship. Sehingga didapat diagram hubungan entitas dengan primary key yang digambarkan dengan model ER.
Gambar 4.2 E-R Diagram Yang Menggambarkan Relasi Antar Entitas Dengan Ditambahkannya Primary Key
E. Validasi Model Konseptual Lokal Terhadap Transaksi Pengguna
Tahapan validasi transaksi bertujuan untuk memastikan apakah model data konseptual lokal mendukung transaksi yang dibutuhkan oleh transaksi pemakai. Dua pendekatan untuk melakukan tahapan validasi transaksi antara lain dengan mendefinisikan transaksi-transaksi yang dilakukan dan dengan menggunakan pathways.
Dalam hal ini digunakan jalur arah transaksi (pathways) yang digambarkan dalam diagram E-R untuk memeriksa model konseptual lokal agar mendukung transaksi. Adapun transaksi-transaksi yang ada adalah sebagai berikut:
a. Pencatatan data pasien baru RSIAA
b. Pencatatan, penghapusan, dan pengubahan data karyawan
c. Daftar kamar dan tempat di instalasi rawat inap yang tidak dihuni d. Pencatatan konsultasi anak pada pasien rawat inap
e. Pencatatan konsultasi anak pada pasien rawat jalan f. Pencatatan konsultasi kandungan pada pasien rawat inap g. Pencatatan konsultasi kandungan pada pasien rawat jalan h. Pencatatan konsultasi umum pada pasien rawat inap i. Pencatatan konsultasi umum pada pasien rawat jalan j. Pencatatan pembayaran biaya rawat inap pasien k. Pencatatan pembayaran biaya rawat jalan pasien
l. Pencatatan penggunaan peralatan ke dalam pembayaran
m. Pencatatan penggunaan dan pembelian obat ke dalam pembayaran n. Pencatatan penggunaan fasilitas penunjang medis ke dalam pembayaran
o. Pemakaian peralatan medis kepada pasien rawat inap p. Pemakaian peralatan medis kepada pasien rawat jalan q. Pencatatan pemakaian obat kepada pasien rawat inap
r. Pencatatan Penggunaan fasilitas penunjang medis oleh dokter yang menangani pasien di instalasi rawat inap
s. Pencatatan Penggunaan fasilitas penunjang medis oleh dokter yang menangani pasien di instalasi rawat jalan
t. Pencatatan pemakaian obat kepada pasien rawat jalan
Dari transaksi-transaksi berikut, maka dengan menggunakan Gambar 4.2 (Diagram E-R yang menggambarkan relasi antar entitas dengan ditambahkannya primary key) dapat ditentukan jalur arah transaksi (pathways) dari transaksi-transaksi yang ada. Sehingga model konseptual yang mendukung transaksi pemakai dengan menggunakan pathways dapat dilihat pada gambar berikut:
4.1.2 Perancangan Basis Data Logikal
Merupakan tahapan kedua dari perancangan basis data. Perancangan logikal adalah proses pembuatan model informasi yang digunakan perusahaan berdasarkan spesifikasi model data, tetapi terbebas dari DBMS dan semua pertimbangan fisik.
A. Menghilangkan Fitur Yang Tidak Kompatibel
Tujuan dari langkah ini adalah untuk menghilangkan fitur-fitur yang tidak kompatibel dengan model relasi dari data lokal konseptual.
Ada dua fitur yang tidak kompatibel yang harus dihilangkan
1. Menghilangkan Hubungan Many to Many
Penghilangan hubungan many to many antar entity yang ada sebagai berikut:
a. Relasi many to many antara Staf dengan RawatInap akan menghasilkan entity baru yaitu TransDeposit.
b. Relasi many to many antara Perawat dengan Obat akan menghasilkan entity baru yaitu TransObat.
c. Relasi many to many antara TransObatHeader dengan Obat akan menghasilkan entity baru yaitu TransObatDetail.
d. Relasi many to many antara Perawat dengan Peralatan akan menghasilkan entity baru yaitu TransAlat.
e. Relasi many to many antara TransAlatHeader dengan Peralatan akan menghasilkan entity baru yaitu TransAlatDetail.
f. Relasi many to many antara Perawat dengan Fasilitas Medis akan menghasilkan entity baru yaitu TransFm.
g. Relasi many to many antara PembayaranHeader dengan RawatInap akan menghasilkan entity baru yaitu PembayaranDetail
h. Relasi many to many antara PembayaranHeader dengan RawatJalan akan menghasilkan entity baru yaitu PembayaranDetail
2. Menghilangkan Atribut Multivalue
Setelah menghilangkan hubungan many to many dan tidak ditemukan hubungan kompleks, maka langkah selanjutnya adalah menghilangkan atribut mulltivalue.
B. Menentukan Relasi Model Data Logikal Lokal
Tahap ini bertujuan untuk menciptakan hubungan bagi model data logikal lokal untuk merepresentasikan entitas, relasi dan atribut yang telah diidentifikasikan. Setelah menghilangkan fitur yang tidak kompatibel, maka selanjutnya dapat ditentukan tipe entiti kuat dan tipe entiti lemahnya.
1. Tipe Entiti Kuat
Tipe – tipe entiti kuat dari model data yang didapat adalah:
Pasien (NoRM, NamaPasien, Pekerjaan, Agama, JenisKelamin, GolonganPasien, Umur, Alamat, GolonganDarah, TglDaftar)
PembayaranHeader (KdPembayaran, TglTransaksi, NoRM, NamaPasien, BiayaRawatJalan, BiayaRawatInap, BiayaDiagnosa, BiayaTindakanMedis, BiayaObat, BiayaFasilitasMedis, BiayaPerawat, BiayaAdministrasi, BiayaLaundry, BiayaLain, Total, GrandTotal)
Primary Key KdPembayaran
RawatJalan (KdRawatJalan, TglCatat, WaktuCatat, Anamnesa, Diagnosa, Terapi, Resep, Tindakan, NamaKaryawan)
Primary Key KdRawatJalan
Karyawan (KdKaryawan, NamaKaryawan, TglLahir, Umur, JenisKelamin, Agama, Alamat, NoTelpon, Jabatan, tglMasuk, Username, Password)
Primary Key KdKaryawan
Obat (KdObat, NamaObat, HargaObat, JenisObat)
Primary Key KdObat
Peralatan (KdPeralatan, NamaPeralatan, Harga)
Primary Key KdPeralatan
FasilitasPenunjangMedis (KdLayanan, NamaLayanan, Harga, Kategori)
RawatInap (KdRawatInap, NoRM, TglMasuk, TglKeluar, DurasiRawat, StatusDatang, TglCatat, WaktuCatat, Anamnese, Diagnosa, Terapi, Resep, Tindakan, Deposit, TglDeposit, KdDokter, DokterPenanggungJawab)
Primary Key KdRawatInap
Kamar (KdKamar, Kelas, Tarif)
Primary Key KdKamar
Konsultasi (KdKonsultasi, NoRM, NamaSendiri, NamaSuami, NamaAnak, NamaIbu, NamaAyah PekerjaanOrtu, PekerjaanSuami, Agama, Alamat, Umur, TglLahir, AB, H.T, Tgl, BB, Tensi, Keluhan, Diagnosis, Therapi, Pengobatan)
Primary Key KdKonsultasi
2. Tipe Entiti Lemah
Tipe – tipe entiti lemah dari model data yang didapat adalah:
TransObatHeader
Primary Key belum ada saat ini
TransObatDetail
Primary Key belum ada saat ini
TransAlatHeader
TransAlatDetail
Primary Key belum ada saat ini
TransFm
Primary Key beluma ada saat ini
TransDeposit
Primary Key belum ada saat ini
3. Tipe Relasi Binary One to Many (1:*)
Berikut ini adalah relasi – relasi one to many (1:*) serta hasil posting dari entiti – entiti yang berhubungan satu dengan yang lainnya:
a. Relasi antara Dokter dengan KonsultasiRawatJalan menghasilkan posting KdDokter ke entiti KonsultasiRawatJalan
b. Relasi antara Staf dengan PembayaranHeader menghasilkan posting KdStaf ke entiti PembayaranHeader
c. Relasi antara RawatJalan dengan PembayaranHeader menghasilkan posting KdRawatJalan ke entiti PembayaranHeader
d. Relasi antara RawatInap dengan PembayaranHeader menghasilkan posting KdRawatInap ke entiti PembayaranHeader
e. Relasi antara Pasien dengan Konsultasi menghasilkan posting NoRM ke entiti Konsultasi
f. Relasi antara Dokter dengan RawatInap menghasilkan posting KdDokter ke entiti RawatInap
4. Tipe Relasi Binary One to One (1:1)
Berikut ini adalah relasi – relasi one to one (1:1) dan hasil posting entiti – entiti yang saling berhubungan satu sama lain:
• Relasi antara RawatInap dengan PembayaranHeader menghasilkan posting KdKonsultasi ke entiti PembayaranHeader.
5. Tipe Relasi Binary Many to Many (*:*)
Berikut ini adalah relasi – relasi many to many (*:*) serta hasil posting dari entiti yang terhubung satu dengan yang lain:
a. Relasi antara Perawat dengan Obat menghasilkan entiti baru yaitu TransObatHeader, yang menerima posting KdKaryawan dan KdObat
b. Relasi antara TransObatHeader dengan Obat menghasilkan entiti baru yaitu TransObatDetail, yang menerima posting KdTransObat dan KdObat
c. Relasi antara Perawat dengan Peralatan menghasilkan entiti baru yaitu TransAlatHeader, yang menerima posting KdKaryawan dan KdPeralatan d. Relasi antara TransAlatHeader dengan Peralatan menghasilkan entiti baru
yaitu TransAlatDetail, yang menerima posting KdTransAlat dan KdPeralatan e. Relasi antara RawatInap dengan Staf menghasilkan entiti baru yaitu
6. Atribut Multivalue
Setelah menghilangkan hubungan many to many dan tidak ditemukan hubungan kompleks, maka langkah selanjutnya adalah menentukan entity yang mempunyai atribut mulltivalue serta hasil postingnya.
C. Validasi menggunakan normalisasi
a. First Normal Form (1NF)
Semua relasi yang terbentuk sudah memenuhi bentuk 1NF karena sudah memiliki Primary Key dan tidak ada repeating groups.
b. Second Normal Form (2NF)
Semua relasi yang terbentuk sudah memenuhi bentuk 2NF karena tidak mengandung partial dependency.
c. Third Normal Form (3NF)
Semua relasi yang terbentuk sudah memenuhi bentuk 3NF karena tidak mengandung transitive dependency.
RawatInap
1NF
RawatInap = @KdRawatInap, TglMasuk, TglKeluar, KdKamar, Kelas, TglCatat, Anamnese, Diagnosa, Terapi, Resep, Tindakan, KdDokter, NamaDokter, HargaKamar
2NF
RawatInap = @KdRawatInap, #KdKamar, #KdDokter, TglMasuk, TglKeluar, TglCatat, Anamnese, Diagnosa, Terapi, Resep, Tindakan, HargaKamar
Dokter = @KdDokter, NamaDokter Kamar = @KdKamar, Kelas
3NF
RawatInap = @KdRawatInap, #KdKonsultasi, #KdKamar, #KdDokter, TglMasuk, TglKeluar, HargaKamar
Dokter = @KdDokter, NamaDokter, TglLahir, JenisKelamin, Agama, Alamat, TempatLahir, Telp
Kamar = @KdKamar, Kelas, Tarif
Konsultasi = @KdKonsultasi, NoRM, TglCatat, Anamnese, Diagnosa, Terapi, Resep, Tindakan
RawatJalan
1NF
RawatJalan = @KdRawatJalan, TglCatat, Anamnesa, Diagnosa, Terapi, Resep, Tindakan, KdDokter, NamaDokter
2NF
RawatJalan = @KdRawatJalan, #KdDokter, TglCatat, Anamnesa, Diagnosa, Terapi, Resep, Tindakan
Dokter = @KdDokter, NamaDokter
3NF
RawatJalan = @KdRawatJalan, #KdKonsultasi, #KdDokter
Dokter = @KdDokter, NamaDokter, TglLahir, JenisKelamin, Agama, Alamat, TempatLahir, Telp
Konsultasi = @KdKonsultasi, NoRM, TglCatat, Anamnese, Diagnosa, Terapi, Resep, Tindakan
PembayaranHeader
1NF
PembayaranHeader = @KdPembayaran, KdStaf, TglTransaksi, NoRM, NamaPasien, JenisBiaya, Harga
2NF
PembayaranHeader = @KdPembayaran, #NoRM, KdStaf, TglTransaksi, NamaStaf, JenisBiaya, Harga
Pasien = @NoRM, NamaPasien
3NF
PembayaranHeader = @KdPembayaran, #NoRM, KdStaf, TglTransaksi Pasien = @NoRM, NamaPasien
KonsultasiAnak
1NF
KonsultasiAnak = @KdKonsultasi, NoRM, NamaAnak, NamaIbu, NamaAyah, PekerjaanOrtu, Alamat, TglLahir, TempatLahir, BBL, Tgl, Diagnosis, Tindakan, Dokter
2NF
KonsultasiAnak = @KdKonsultasi, #NoRM, Tgl, Diagnosis, Tindakan, Dokter
PasienAnak = @NoRM, NamaAnak, NamaIbu, NamaAyah, PekerjaanOrtu, Alamat, TglLahir, TempatLahir, BBL
3NF
KonsultasiAnak = @KdKonsultasi, #NoRM, Tgl, Diagnosis, Tindakan, Dokter
PasienAnak = @NoRM, NamaAnak, NamaIbu, NamaAyah, PekerjaanOrtu, Alamat, TglLahir, TempatLahir, BBL
KonsultasiUmum
1NF
KonsultasiUmum = @KdKonsultasi, NoRM, NamaSendiri, NamaSuami, PekerjaanSuami, Agama, Alamat, TglLahir, Tgl, BB, Tensi, Keluhan, Therapi
2NF
KonsultasiUmum = @KdKonsultasi, #NoRM, Tgl, BB, Tensi, Keluhan, Therapi
PasienUmum = @NoRM, NamaSendiri, NamaSuami, PekerjaanSuami, Agama, Alamat, TglLahir
3NF
KonsultasiUmum = @KdKonsultasi, #NoRM, Tgl, BB, Tensi, Keluhan, Therapi
PasienUmum = @NoRM, NamaSendiri, NamaSuami, PekerjaanSuami, Agama, Alamat, TglLahir
KonsultasiKandungan
1NF
KonsultasiKandungan = @KdKonsultasi, NoRM, NamaSendiri, NamaSuami, PekerjaanSuami, Agama, Alamat, Umur, AB, H.T, Tgl, BB, Tensi, Diagnosis, Pengobatan
2NF
KonsultasiKandungan = @KdKonsultasi, #NoRM, AB, H.T, Tgl, BB, Tensi, Diagnosis, Pengobatan
PasienKandungan = @NoRM, NamaSendiri, NamaSuami, PekerjaanSuami, Agama, Alamat, Umur
3NF
KonsultasiKandungan = @KdKonsultasi, #NoRM, AB, H.T, Tgl, BB, Tensi, Diagnosis, Pengobatan
PasienKandungan = @NoRM, NamaSendiri, NamaSuami, PekerjaanSuami, Agama, Alamat, Umur
TransObatHeader
1NF
TransObatHeader = @kdTransObat, KdRawat, KdPerawat, TglTrans
2NF
TransObatHeader = @kdTransObat, KdRawat, KdPerawat, TglTrans
3NF
TransObatHeader = @kdTransObat, KdPerawat, KdRawat, TglTrans
TransObatDetail
1NF
TransObatDetail = @kdTransObat, kdObat, Qty, Harga
2NF
3NF
TransObatDetail = @kdTransObat, kdObat, Qty, Harga
Obat
1NF
Obat = @KdObat, NamaObat, HargaObat, JenisObat
2NF
Obat = @KdObat, NamaObat, HargaObat, JenisObat
3NF
Obat = @KdObat, NamaObat, HargaObat, JenisObat
TransAlatHeader
1NF
TransAlatHeader = @kdTransAlat, KdRawat, KdPerawat, TglTrans
2NF
TransAlatHeader = @kdTransAlat, KdRawat, KdPerawat, TglTrans
3NF
TransAlatDetail
1NF
TransAlatDetail = @kdTransAlat, kdPeralatan, Qty, Harga
2NF
TransAlatDetail = @kdTransAlat, kdPeralatan, Qty, Harga
3NF
TransAlatDetail = @kdTransAlat, kdPeralatan, Qty, Harga
Peralatan
1NF
Peralatan = @KdPeralatan, NamaPeralatan, Harga
2NF
Peralatan = @KdPeralatan, NamaPeralatan, Harga
3NF
Peralatan = @KdPeralatan, NamaPeralatan, Harga
TransFM
1NF
TransFm = @KdTransFm, KdRawat, KdPerawat, KdLayanan, TglTrans, Hasil, Harga
2NF
TransFm = @KdTransFm, KdRawat, KdPerawat, KdLayanan, TglTrans, Hasil, Harga
3NF
TransFm = @KdTransFm, KdRawat, KdPerawat, KdLayanan, TglTrans, Hasil, Harga
FasilitasPenunjangMedis
1NF
FasilitasPenunjangMedis = @KdLayanan, NamaLayanan, Harga
2NF
FasilitasPenunjangMedis = @KdLayanan, NamaLayanan, Harga
3NF
FasilitasPenunjangMedis = @KdLayanan, NamaLayanan, Harga
TransDeposit
1NF
2NF
TransDeposit = @KdDeposit, KdRawat, KdStaf
3NF
TransDeposit = @KdDeposit, KdRawat, KdStaf
Perawat
1NF
Perawat = @KdPerawat, NamaPerawat, TglLahir, JenisKelamin, Agama, Alamat, TglMasuk, Telp, TempatLahir
2NF
Perawat = @KdPerawat, NamaPerawat, TglLahir, JenisKelamin, Agama, Alamat, TglMasuk, Telp, TempatLahir
3NF
Perawat = @KdPerawat, NamaPerawat, TglLahir, JenisKelamin, Agama, Alamat, TglMasuk, Telp, TempatLahir
Dokter
1NF
Dokter = @KdDokter, NamaDokter, TglLahir, JenisKelamin, Agama, Alamat, TglMasuk, Telp, TempatLahir
2NF
Dokter = @KdDokter, NamaDokter, TglLahir, JenisKelamin, Agama, Alamat, TglMasuk, Telp, TempatLahir
3NF
Dokter = @KdDokter, NamaDokter, TglLahir, JenisKelamin, Agama, Alamat, TglMasuk, Telp, TempatLahir
Staf
1NF
Staf = @KdStaf, NamaStaf, TglLahir, JenisKelamin, Agama, Alamat, TglMasuk, Telp, TempatLahir, Password, TempatLahir, TglKeluar, Username
2NF
Staf = @KdStaf, NamaStaf, TglLahir, JenisKelamin, Agama, Alamat, TglMasuk, Telp, TempatLahir, Password, TempatLahir, TglKeluar, Username
3NF
Staf = @KdStaf, NamaStaf, TglLahir, JenisKelamin, Agama, Alamat, TglMasuk, Telp, TempatLahir, Password, TempatLahir, TglKeluar, Username
a. Mendefinisikan Kendala Integrity
Kendala Integrity adalah batasan – batasan yang harus ditentukan untuk melindungi basis data agar tetap konsisten. Jika suatu foreign key memiliki nilai, maka nilai tersebut harus menunjuk ke sebuah baris yang ada pada relasi “parent”. Untuk rincian foreign key yang ada pada tiap – tiap tabel bisa dilihat pada Lampiran L.2
b. Pembuatan Model Basis Data Logikal Global
Model Basis Data Logikal Global adalah salah satu langkah pada perancangan database logikal yang bertujuan untuk menggabungkan individual data model logikal lokal menjadi basis data logikal global yang menggambarkan perusahaan. Untuk rincian model basis data logikal dapat dilihat pada Lampiran Tabel L.18
c. Diagram ER untuk Menggambarkan Model Global
4.1.3 Perancangan Basis Data Fisikal
Perancangan basis data fisik merupakan proses pembuatan deskripsi dari suatu implementasi basis data pada secondary storage. Beberapa langkah dalam merancang basis data secara fisik adalah:
A. Perancangan Relasional Basis Data
Tujuan dari tahap ini adalah untuk mengidentifikasikan relasional basis data dalam model data logical global yang digunakan dalam DBMS dengan menguraikan DBDL atau Database Design Language. Daftar lampiran di bawah menunjukkan rincian dari perancangan relasional basis data.
No. Entiti Lampiran
1 KonsultasiAnak L.4.1 2 KonsultasiUmum L.4.2 3 KonsultasiKandungan L.4.3 4 PasienAnak L.4.4 5 PasienKandungan L.4.5 6 PasienUmum L.4.6 7 Dokter L.4.7 8 Kamar L.4.8 9 Obat L.4.9 10 Peralatan L.4.10 11 FasilitasPenunjangMedis L.4.11 12 RawatJalan L.4.12 13 PembayaranDetail L.4.13 14 PembayaranHeader L.4.14 15 Perawat L.4.15 16 RawatInap L.4.16 17 Staf L.4.17 18 TransAlatDetail L.4.18 19 TransAlatHeader L.4.19 20 TransDeposit L.4.20 21 TransObatDetail L.4.21 22 TransObatHeader L.4.22 23 TransFm L.4.23
B. Analisa Transaksi
Analisa Transaksi ini bertujuan untuk memahami fungsionalitas dari transaksi yang akan berjalan pada database dan untuk menganalisa transaksi yang penting. Adapun transaksi-transaksi yang ada adalah sebagai berikut:
a. Pencatatan data pasien anak baru b. Pencatatan data pasien kandungan baru c. Pencatatan data pasien umum baru
d. Pencatatan data pasien untuk instalasi rawat inap baru
e. Pencatatan data pendaftaran pasien untuk instalasi rawat jalan f. Pencatatan data Staf baru
g. Pencatatan data perawat baru h. Pencatatan data dokter baru i. Pencatatan data konsultasi anak j. Pencatatan data konsultasi kandungan k. Pencatatan data konsultasi umum l. Pencatatan data obat baru
m. Pencatatan data peralatan baru
n. Pencatatan data pelayanan fasilitas medis baru o. Pencatatan transaksi obat oleh perawat
p. Pencatatan transaksi peralatan oleh perawat q. Pencatatan transaksi fm oleh perawat r. Pencatatan biaya pembayaran pasien
s. Pencatatan penyetoran deposit pasien rawat inap t. Update data pasien
u. Update data rawat inap v. Update data perawat w. Update data staf x. Update data dokter y. Hapus data peralatan z. Hapus data obat aa. Hapus data fm
Tabel 4.4 Analisis Transaksi
Transaksi a b c d Relation I R U D I R U D I R U D I R U D KonsultasiAnak KonsultasiKandungan KonsultasiUmum PasienAnak X X PasienKandungan X X PasienUmum X X Dokter X Kamar X Obat Peralatan FasilitasPenunjangMedis RawatJalan PembayaranDetail PembayaranHeader Perawat RawatInap X Staf TransAlatDetail TransAlatHeader TransDeposit TransObatDetail TransObatHeader TransFm
Tabel 4.5 Analisis Transaksi (Lanjutan 1) Transaksi e f g h Relation I R U D I R U D I R U D I R U D KonsultasiAnak KonsultasiKandungan KonsultasiUmum PasienAnak X PasienKandungan X PasienUmum X Dokter X X X X Kamar Obat Peralatan FasilitasPenunjangMedis RawatJalan X PembayaranDetail PembayaranHeader Perawat X RawatInap Staf X TransAlatDetail TransAlatHeader TransDeposit TransObatDetail TransObatHeader TransFm
I = Insert R = Read U = Update D = Delete
Tabel 4.6 Analisis Transaksi (Lanjutan 2)
Transaksi i j k l Relation I R U D I R U D I R U D I R U D KonsultasiAnak X KonsultasiKandungan X KonsultasiUmum X PasienAnak X X X PasienKandungan X X X PasienUmum X X X Dokter X X X Kamar Obat X Peralatan FasilitasPenunjangMedis RawatJalan X X PembayaranDetail PembayaranHeader Perawat RawatInap X X Staf X
TransAlatDetail TransAlatHeader TransDeposit TransObatDetail TransObatHeader TransFm
I = Insert R = Read U = Update D = Delete
Tabel 4.7 Analisis Transaksi (Lanjutan 3)
Transaksi m n o p Relation I R U D I R U D I R U D I R U D KonsultasiAnak KonsultasiKandungan KonsultasiUmum PasienAnak X X PasienKandungan X X PasienUmum X X Dokter X X Kamar Obat X Peralatan X X FasilitasPenunjangMedis X RawatJalan PembayaranDetail PembayaranHeader Perawat X X RawatInap Staf X X TransAlatDetail X TransAlatHeader X TransDeposit TransObatDetail X TransObatHeader X TransFm
I = Insert R = Read U = Update D = Delete
Tabel 4.8 Analisis Transaksi (Lanjutan 4)
Transaksi q r s t Relation I R U D I R U D I R U D I R U D KonsultasiAnak KonsultasiKandungan KonsultasiUmum PasienAnak X X X X X PasienKandungan X X X X X PasienUmum X X X X X Dokter X X
Kamar X Obat X Peralatan X FasilitasPenunjangMedis X X RawatJalan PembayaranDetail X PembayaranHeader X Perawat X RawatInap X Staf X X TransAlatDetail TransAlatHeader TransDeposit X TransObatDetail TransObatHeader TransFm X
I = Insert R = Read U = Update D = Delete
Tabel 4.9 Analisis Transaksi (Lanjutan 5)
Transaksi u v w x Relation I R U D I R U D I R U D I R U D KonsultasiAnak KonsultasiKandungan KonsultasiUmum PasienAnak PasienKandungan PasienUmum Dokter X X Kamar X X Obat Peralatan FasilitasPenunjangMedis RawatJalan PembayaranDetail PembayaranHeader Perawat X X RawatInap X X Staf X X X X X X TransAlatDetail TransAlatHeader TransDeposit TransObatDetail TransObatHeader TransFm
Tabel 4.10 Analisis Transaksi (Lanjutan 6) Transaksi y z aa Relation I R U D I R U D I R U D KonsultasiAnak KonsultasiKandungan KonsultasiUmum PasienAnak PasienKandungan PasienUmum Dokter Kamar Obat X X Peralatan X X FasilitasPenunjangMedis RawatJalan PembayaranDetail PembayaranHeader Perawat RawatInap Staf X X X TransAlatDetail TransAlatHeader TransDeposit TransObatDetail TransObatHeader TransFm X X
I = Insert R = Read U = Update D = Delete
C. Memilih Index
Tujuan dari langkah ini adalah untuk meningkatkan performa dari sistem. Sistem index yang digunakan adalah sebagai berikut:
Tabel 4.11 Memilih Indeks
No Entity Index 1 KonsultasiAnak KdKonsultasi Tgl 2 KonsultasiKandungan KdKonsultasi Tgl 3 KonsultasiUmum KdKonsultasi Tgl 4 PasienAnak NoRM NamaPasien
5 PasienKandungan NoRM NamaPasien 6 PasienUmum NoRM NamaPasien 7 Dokter KdKaryawan NamaKaryawan 8 Kamar KdKamar NamaRuangan 9 Obat KdObat NamaObat Harga 10 Peralatan KdPeralatan NamaPeralatan Harga 11 FasilitasPenunjangMedis KdLayanan NamaLayanan 12 RawatJalan KdRawatJalan NamaKaryawan 13 PembayaranDetail KdPembayaran KdRawat 14 PembayaranHeader KdPembayaran 15 Perawat KdPerawat NamaKaryawan 16 RawatInap KdRawatInap KdKonsultasi 17 Staf KdKaryawan NamaKaryawan 18 TransAlatDetail KdTransAlat KdAlat 19 TransAlatHeader KdTransAlat 20 TransDeposit KdRawatInap KdKaryawan Deposit 21 TransObatDetail KdTransObat KdObat 22 TransObatHeader KdTransObat 23 TransFm KdTransFm KdLayanan
D. Mengestimasi Kapasitas Penyimpanan Yang Dibutuhkan
Tujuan dari tahap ini digunakan untuk menghitung kapasitas penyimpanan yang akan dibutuhkan pada basis data. Perkiraan dari kapasitas atau size dari setiap tabel adalah sebagai berikut:
Tabel 4.12 Estimasi Kapasitas KonsultasiAnak
Field Tipe data Ukuran
KdKonsultasi Char 15 NoRM Char 15 Tgl Date 10 Anamnesis Varchar 100 Tindakan Varchar 100 Keterangan Varchar 100
Kapasitas 1 record dari tabel KonsultasiAnak adalah 340 byte. Diperkirakan jumlah record awal adalah 0 record, dan dalam 1 tahun terjadi penambahan 3600 record.
Dalam satu tahun kebutuhan tabel ini adalah 340*3600 = 1224000 byte.
Tabel 4.13 Estimasi Kapasitas KonsultasiKandungan
Field Tipe data Ukuran
KdKonsultasi Char 5 NoRM Char 50 Tgl Date 10 BB. Kg Float 5 Tensi Varchar 100 Anamnesis Varchar 100 Pengobatan Varchar 100
Kapasitas 1 record dari tabel KonsultasiKandungan adalah 370 byte. Diperkirakan jumlah record awal adalah 0, dan dalam 1 tahun terjadi
penambahan 3600 record.
Dalam satu tahun kebutuhan tabel ini adalah 370*3600 = 1332000 byte.
Tabel 4.14 Estimasi Kapasitas KonsultasiUmum
Field Tipe data Ukuran
KdKonsultasi Char 30 NoRM Char 5 Tgl Date 10 BB. Kg Float 5 Tensi Varchar 100 Keluhan Varchar 100 Therapi Varchar 100 Kapasitas 1 record dari tabel KonsultasiUmum adalah 350 byte.
Diperkirakan jumlah record awal adalah 0, dan dalam 1 tahun terjadi penambahan 3600 record.
Dalam satu tahun kebutuhan tabel ini adalah 350*3600 = 1260000 byte.
Tabel 4.15 Estimasi Kapasitas PasienAnak
Field Tipe data Ukuran
NoRM Char 15 NamaAnak Varchar 50 NamaIbu Varchar 50 NamaAyah Varchar 50 PekerjaanOrtu Varchar 50 Alamat Varchar 50 TglLahir Date 10 TempatLahir Varchar 50 BBL Float 5 Kapasitas 1 record dari tabel PasienAnak adalah 330 byte.
penambahan 2000 record.
Dalam satu tahun kebutuhan tabel ini adalah 330*2000 = 660000 byte.
Tabel 4.16 Estimasi Kapasitas PasienKandungan
Field Tipe data Ukuran
NoRM Char 15 NamaSendiri Varchar 50 NamaSuami Varchar 50 PekerjaanSuami Varchar 50 Alamat Varchar 50 Agama Varchar 50 Umur Integer 3 AB Varchar 50 H.T Varchar 50 Kapasitas 1 record dari tabel PasienKandungan adalah 368 byte.
Diperkirakan jumlah record awal adalah 0, dan dalam 1 tahun terjadi penambahan 2000 record.
Dalam satu tahun kebutuhan tabel ini adalah 368*2000 = 736000 byte.
Tabel 4.17 Estimasi Kapasitas PasienUmum
Field Tipe data Ukuran
NoRM Char 15 NamaSendiri Varchar 50 NamaSuami Varchar 50 PekerjaanSuami Varchar 50 Agama Varchar 50 Alamat Varchar 50 TglLahir Date 10
Kapasitas 1 record dari tabel PasienUmum adalah 275 byte.
penambahan 2000 record.
Dalam satu tahun kebutuhan tabel ini adalah 275*2000 = 550000 byte.
Tabel 4.18 Estimasi Kapasitas Dokter
Field Tipe data Ukuran
KdDokter Char 15 NamaDokter Varchar 50 TglLahir Date 10 JenisKelamin Char 5 Agama Varchar 50 Alamat Varchar 50 TglMasuk Date 10 TempatLahir Varchar 50 Telp Varchar 20 TglKeluar Date 10
Kapasitas 1 record dari tabel Dokter adalah 270 byte.
Diperkirakan jumlah record awal adalah 20, dan dalam 1 tahun terjadi penambahan 5 record.
Dalam satu tahun kebutuhan tabel ini adalah 270*25 = 6750 byte.
Tabel 4.19 Estimasi Kapasitas Kamar
Field Tipe data Ukuran
KdKamar Char 15
Kelas Char 10 Tarif Integer 11 Kapasitas 1 record dari tabel Kamar adalah 36 byte.
Diperkirakan jumlah record awal adalah 20, dan dalam 1 tahun terjadi penambahan 0 record.
Tabel 4.20 Estimasi Kapasitas Obat
Field Tipe data Ukuran
KdObat Char 15
NamaObat Varchar 30
HargaObat Integer 20
JenisObat Varchar 10
Kapasitas 1 record dari tabel Obat adalah 75 byte.
Diperkirakan jumlah record awal adalah 300, dan dalam 1 tahun terjadi penambahan 1000 record.
Dalam satu tahun kebutuhan tabel ini adalah 75*1300 = 97500 byte.
Tabel 4.21 Estimasi Kapasitas Peralatan
Field Tipe data Ukuran
KdPeralatan Char 15
NamaPeralatan Varchar 30
Harga Integer 11 Kapasitas 1 record dari tabel Peralatan adalah 56 byte.
Diperkirakan jumlah record awal adalah 100, dan dalam 1 tahun terjadi penambahan 500 record.
Dalam satu tahun kebutuhan tabel ini adalah 56*600 = 33600 byte.
Tabel 4.22 Estimasi Kapasitas FasilitasPenunjangMedis
Field Tipe data Ukuran
KdLayanan Char 15
NamaLayanan Varchar 50
Harga Integer 11 Kapasitas 1 record dari tabel FasilitasPenunjangMedis adalah 76 byte.
penambahan 5 record.
Dalam satu tahun kebutuhan tabel ini adalah 76*55 = 4180 byte.
Tabel 4.23 Estimasi Kapasitas RawatJalan
Field Tipe data Ukuran
KdRawatJalan Char 15
KdKonsultasi Char 15
KdDokter Char 15
Tanggal Date 10
Kapasitas 1 record dari tabel RawatJalan adalah 55 byte.
Diperkirakan jumlah record awal adalah 0, dan dalam 1 tahun terjadi penambahan 5400 record.
Dalam satu tahun kebutuhan tabel ini adalah 55*5400 = 297000 byte.
Tabel 4.24 Estimasi Kapasitas PembayaranDetail
Field Tipe data Ukuran
KdPembayaran Char 15
JenisBiaya Varchar 30
Harga Integer 11 Kapasitas 1 record dari tabel PembayaranDetailRawatJalan adalah 56
byte.
Diperkirakan jumlah record awal adalah 0, dan dalam 1 tahun terjadi penambahan 5400 record.
Dalam satu tahun kebutuhan tabel ini adalah 56*5400 = 302400 byte.
Tabel 4.25 Estimasi Kapasitas PembayaranHeader
Field Tipe data Ukuran
KdPembayaran Char 15
KdRawat Char 10
TglTransaksi Date 10 Kapasitas 1 record dari tabel PembayaranHeader adalah 50 byte.
Diperkirakan jumlah record awal adalah 0, dan dalam 1 tahun terjadi penambahan 10000 record.
Dalam satu tahun kebutuhan tabel ini adalah 50*10000 = 500000 byte.
Tabel 4.26 Estimasi Kapasitas Perawat
Field Tipe data Ukuran
KdPerawat Char 15 NamaPerawat Varchar 30 TglLahir Date 10 JenisKelamin Char 1 Agama Varchar 30 Alamat Varchar 30 TglMasuk Date 10 TempatLahir Varchar 100 Telp Varchar 20 TglKeluar Date 10
Kapasitas 1 record dari tabel Perawat adalah 256 byte.
Diperkirakan jumlah record awal adalah 30, dan dalam 1 tahun terjadi penambahan 10 record.
Dalam satu tahun kebutuhan tabel ini adalah 256*40 = 9840 byte.
Tabel 4.27 Estimasi Kapasitas RawatInap
Field Tipe data Ukuran
KdRawatInap Char 15
KdKonsultasi Char 15
KdKamar Char 15
TglMasuk Date 10
KdDokter Char 15
HargaKamar Int 11
Kapasitas 1 record dari tabel RawatInap adalah 91 byte.
Diperkirakan jumlah record awal adalah 0, dan dalam 1 tahun terjadi penambahan 5400 record.
Dalam satu tahun kebutuhan tabel ini adalah 91*5400 = 491400 byte.
Tabel 4.28 Estimasi Kapasitas Staf
Field Tipe data Ukuran
KdPerawat Char 15 NamaPerawat Varchar 50 TglLahir Date 10 JenisKelamin Char 1 Agama Varchar 20 Alamat Varchar 50 TglMasuk Date 10 Password Varchar 30 Telp Varchar 20 TempatLahir Varchar 30 TglKeluar Date 10 Username Varchar 50
Kapasitas 1 record dari tabel Staf adalah 296 byte.
Diperkirakan jumlah record awal adalah 20, dan dalam 1 tahun terjadi penambahan 10 record.
Dalam satu tahun kebutuhan tabel ini adalah 296*30 = 8880 byte.
Tabel 4.29 Estimasi Kapasitas TransAlatDetail
Field Tipe data Ukuran
KdTransAlat Char 15
Qty Integer 5 Harga Integer 11 Kapasitas 1 record dari tabel TransAlatDetail adalah 46 byte.
Diperkirakan jumlah record awal adalah 0, dan dalam 1 tahun terjadi penambahan 2000 record.
Dalam satu tahun kebutuhan tabel ini adalah 46*2000 = 92000 byte.
Tabel 4.30 Estimasi Kapasitas TransAlatHeader
Field Tipe data Ukuran
KdTransAlat Char 15
KdPerawat Char 15
TglTrans Date 10
KdRawat Char 15
Kapasitas 1 record dari tabel TransAlatHeader adalah 55 byte. Diperkirakan jumlah record awal adalah 0, dan dalam 1 tahun terjadi penambahan 1000 record.
Dalam satu tahun kebutuhan tabel ini adalah 55*1000 = 55000 byte.
Tabel 4.31 Estimasi Kapasitas TransDeposit
Field Tipe data Ukuran
KdDeposit Char 15
KdRawatInap Char 15
KdStaf Char 15
TglDeposit Date 10
Deposit Integer 11
Kapasitas 1 record dari tabel TransDeposit adalah 66 byte.
Diperkirakan jumlah record awal adalah 0, dan dalam 1 tahun terjadi penambahan 1500 record.
Tabel 4.32 Estimasi Kapasitas TransObatDetail
Field Tipe data Ukuran
KdTransObat Char 15
KdObat Char 15
Qty Integer 5 Harga Integer 11 Kapasitas 1 record dari tabel TransObatDetail adalah 46 byte.
Diperkirakan jumlah record awal adalah 0, dan dalam 1 tahun terjadi penambahan 4000 record.
Dalam satu tahun kebutuhan tabel ini adalah 46*4000 = 184000 byte.
Tabel 4.33 Estimasi Kapasitas TransObatHeader
Field Tipe data Ukuran
KdTransObat Char 15
KdPerawat Char 15
TglTrans Date 10
KdRawat Char 15
Kapasitas 1 record dari tabel TransObatHeader adalah 55 byte. Diperkirakan jumlah record awal adalah 0, dan dalam 1 tahun terjadi penambahan 2000 record.
Dalam satu tahun kebutuhan tabel ini adalah 55*2000 = 110000 byte.
Tabel 4.34 Estimasi Kapasitas TransFm
Field Tipe data Ukuran
KdTransFm Char 15 KdLayanan Char 15 KdPerawat Char 15 Hasil Varchar 100 TglTrans Date 10 KdRawat Char 15
Harga Integer 11 Kapasitas 1 record dari tabel TransFm adalah 181 byte.
Diperkirakan jumlah record awal adalah 0, dan dalam 1 tahun terjadi penambahan 500 record.
Dalam satu tahun kebutuhan tabel ini adalah 181*500 = 90500 byte.
Jadi total kapasitas dari tiap tabel yang dibutuhkan dalam membangun sistem database pada RSIAA adalah :
Tabel 4.35 Size pada tiap – tiap tabel
Tabel Total Tabel Size / Bytes
KonsultasiAnak 1,224,000 KonsultasiKandungan 1,332,000 KonsultasiUmum 1,260,000 PasienAnak 660,000 PasienKandungan 736,000 PasienUmum 550,000 Dokter 6,750 Kamar 720 Obat 97,500 Peralatan 33,600 FasilitasPenunjangMedis 4,180 RawatJalan 297,000 PembayaranDetail 302,400 PembayaranHeader 500,000 Perawat 10,240 RawatInap 491,400 Staf 8,880 TransAlatDetail 92,000 TransAlatHeader 55,000 TransDeposit 52,500 TransObatDetail 184,000 TransObatHeader 110,000 TransFm 90,500 Jumlah 7,217,530
E. Security
Mekanisme Keamanan digunakan untuk memberikan batasan – batasan hak akses kepada pemakai yang bertujuan untuk menjaga keamanan data atau informasi yang ada pada rumah sakit.
 Untuk Admin diberikan hak akses dengan GRANT ALL PRIVILEGES atas semua tabel
Tabel 4.36 TabelPengaturan Hak Akses
Transaksi Manajemen Staf
Relation I R U D I R U D KonsultasiAnak X X X X X KonsultasiKandungan X X X X X KonsultasiUmum X X X X X PasienAnak X X X X X PasienKandungan X X X X X PasienUmum X X X X X Dokter X X X X X X Kamar X X X X X X X X Obat X X X X X Peralatan X X X X X FasilitasPenunjangMedis X X X X X X X X RawatJalan X X X X X PembayaranDetail X X X X X PembayaranHeader X X X X X Perawat X X X X X X RawatInap X X X X Staf X X X X X X TransAlatDetail X X X X X TransAlatHeader X X X X X TransDeposit X X X X X TransObatDetail X X X X X TransObatHeader X X X X X TransFm X X X X X
4.2 Pengembangan Aplikasi 4.2.1 Perancangan Aplikasi
Pada tahap ini adalah mulai merancang aplikasi yang akan dibuat. Perancangan aplikasi akan menggunakan bagan terstruktur atau structure chart dan juga spesifikasi proses.
4.2.1.1Bagan Terstruktur (Structure Chart)
Pada bagan terstruktur terdiri dari pembuatan struktur menu dan State Transition Diagram (STD). A. Struktur Menu Layar WIndows Master Transaksi File Laporan Personal Keluar Kamar Obat Pasien Peralatan Medis Dokter Perawat Fasilitas Medis Pendaftaran Pembayaran Rawat jalan Rawat inap Transaksi obat Transaksi peralatan Laporan rawat inap Laporan rawat jalan Logout Staff Rekam Medik Transaksi Fasiltas Penunjang Medis
B. State Transition Diagram (STD)
Dalam State Transition Diagram (STD) ini memperlihatkan aksi reaksi yang dilakukan terhadap / oleh program aplikasi. Gambar – gambar STD bisa dilihat pada gambar di bawah ini.
Gambar 4.7 STD Menu File Form Utama Master Dokter Kamar Perawat Fasiltas Medis Obat Pasien Peralatan Medis Pilih Kamar
Tampilkan Menu Kamar
Pilih Obat Tampilkan Menu Obat
Pilih Pasien Tampilkan Menu Pasien
Pilih Peralatan Medis Tampilkan Menu Peralatan Medis
Pilih Dokter Tampilkan Menu Dokter
Tekan close Tampilkan Form Utama Pilih Master
Tampilkan Menu Master
Pilih Perawat Tampilkan Menu
Perawat Pilih Fasilitas Medis
Tampilkan Menu Fasiltas Medis
Tekan Close Tampilkan Form Utama
Tekan Close Tampilkan Form Utama Tekan Close
Tampilkan Form Utama Tekan Close
Tampilkan Form Utama Tekan Close
Tampilkan Form Utama
Tekan Close Tampilkan Form Utama
Gambar 4.9 STD Menu Transaksi
Gambar 4.11 STD Staf
Dokter
Tambah Dokter
Ubah data Dokter
Cari Dokter
Peringatan Tekan Tambah
Tambah Data Dokter
Tekan Cari Cari Data Dokter
Tekan Ganti Ubah Data Dokter
Data Tersedia Menampilkan Data yang dicari Input Gagal Input Gagal Simpan Data Simpan Data Gambar 4.13 STD Dokter Gambar 4.14 STD Perawat
Fasilitas Medis
Tambah Fasilitas Medis
Ubah data Fasilitas Medis
Cari Fasilitas Medis
Peringatan Tekan Tambah
Tambah Data Fasilitas Medis
Tekan Cari Cari Data Fasilitas Medis
Tekan Ganti Ubah Data Fasilitas Medis
Data Tersedia Menampilkan Data yang dicari Input Gagal
Input Gagal Simpan Data
Simpan Data
Gambar 4.15 STD Fasilitas Medis
Obat
Tambah Obat
Ubah data Obat
Cari Obat
Peringatan Tekan Tambah
Tambah Data Obat
Tekan Cari Cari Data Obat
Tekan Ganti Ubah Data Obat
Data Tersedia Menampilkan Data yang dicari Input Gagal Input Gagal Simpan Data Simpan Data Gambar 4.17 STD Obat Jenis Pasien Tambah Pasien
Ubah data Pasien
Cari Pasien
Peringatan Tekan Tambah
Tambah Data Pasien
Tekan Cari Cari Data Pasien
Tekan Ganti Ubah Data Pasien
Data Tersedia Menampilkan Data yang dicari Input Gagal
Input Gagal Simpan Data
Simpan Data Pasien
Plih Jenis Pasien
Tampilkan Menu Pasien
Gambar 4.19 STD Peralatan
Jenis Pendaftaran
Tambah Pendaftaran
Ubah data Pendaftaran
Cari Pendaftaran
Peringatan Tekan Tambah
Tambah Data Pendaftaran
Tekan Cari Cari Data Pendaftaran
Tekan Ganti Ubah Data Pendaftaran
Data Tersedia Menampilkan Data yang dicari Input Gagal
Input Gagal Simpan Data
Simpan Data Pendaftaran
Plih Jenis Pendaftaran Tampilkan Menu
Pendaftaran
Gambar 4.22 STD Rawat Inap
Gambar 4.24 STD Transaksi Obat
Gambar 4.26 STD Transaksi Fasiltas Medis
Rekam Medik
Cari Rekam Medik Pilih Cari
Cari Data Rekam Medik
Menampilkan Data yang dicari
4.2.1.2 Spesifikasi Proses
Pada tahap ini akan dijelaskan proses pada tiap – tiap halaman yang ada pada rancangan aplikasi.
1. Modul Login
Mulai Modul
Masukkan Username Karyawan Masukkan Password Karyawan
Periksa apakah Username dan Password Karyawan benar Jika Username tidak benar maka
Tampilkan pesan “Username salah”
Selain jika Password Karyawan tidak benar maka Tampilkan pesan “Password salah”
Selain itu
Masuk ke Halaman Home Akhir Jika
Akhir Modul
2. Modul Halaman Home
Mulai modul
Jika dipilih Staff maka Tampilkan halaman Staff Akhir jika
Jika dipilih Personal maka Tampilkan halaman Personal
Akhir jika
Jika dipilih Dokter maka Tampilkan halaman Dokter Akhir jika
Jika dipilih Perawat maka Tampilkan halaman Perawat Akhir jika
Jika dipilih Fasilitas Medis maka Tampilkan halaman Fasilitas Medis Akhir jika
Jika dipilih Kamar maka Tampilkan halaman Kamar Akhir jika
Jika dipilih Obat maka Tampilkan halaman Obat Akhir jika
Jika dipilih Pasien maka Tampilkan halaman Pasien Akhir jika
Jika dipilih Peralatan maka Tampilkan halaman Peralatan Akhir jika
Jika dipilih Pendaftaran maka Tampilkan halaman Pendaftaran
Akhir jika
Jika dipilih Pembayaran maka Tampilkan halaman Pembayaran Akhir jika
Jika dipilih Rawat Inap maka Tampilkan halaman Rawat Inap Akhir jika
Jika dipilih Rawat Jalan maka Tampilkan halaman Rawat Jalan Akhir jika
Jika dipilih Transaksi Obat maka Tampilkan halaman Transaksi Obat Akhir jika
Jika dipilih Transaksi Peralatan maka Tampilkan halaman Transaksi Peralatan Akhir jika
Jika dipilih Transaksi Fasilitas Medis maka Tampilkan halaman Transaksi Fasilitas Medis Akhir jika
Jika dipilih Laporan Rawat Inap maka Tampilkan halaman Laporan Rawat Inap Akhir jika
Jika dipilih Laporan Rawat Jalan maka Tampilkan halaman Laporan Rawat Jalan
Akhir jika
Jika dipilih Rekam Medik maka Tampilkan halaman Rekam Medik Akhir jika
Jika dipilih Logout maka Tampilkan halaman Login Akhir jika
Jika dipilih Keluar maka Tutup aplikasi
Akhir jika Akhir modul
3. Modul Menu Staff
Mulai Modul
Tampilkan Form Staff Jika dipilih Tambah maka Isi nama Staff
Isi Jenis Kelamin Isi Tempat Lahir Isi Tanggal Lahir Isi Alamat Staff Isi Telp
Isi Agama
Isi Tanggal Masuk Isi Password Staff
Pilih Jabatan Staff
Jika dipilih tombol Simpan maka Simpan data Staff pada tabel Staff Akhir jika
Jika dipilih tombol Batal maka
Hapus semua data Staff yang telah diisi Akhir jika
Akhir jika
Jika dipilih tombol Ganti maka Isi Alamat
Isi Telp Isi Agama
Jika mencentang Tanggal Keluar maka Pilih Tanggal Keluar
Akhir jika
Jika dipilih Tombol Simpan maka Simpan data Staff pada tabel Staff Akhir jika
Jika dipilih Tombol Batal maka Kembalikan data Staff ke data awal Akhir jika
Akhir jika Akhir modul
Mulai Modul
Masukkan nama staff Jika dipilih Cari maka
Tampilkan data staff sesuai dengan kata kunci Akhir jika
Akhir modul
5. Modul Personal
Mulai Modul Isi Nama Karyawan Isi Alamat Karyawan Isi Telp
Isi Agama
Jika dipilih Simpan maka
Simpan data Staff ke dalam tabel Staff Akhir jika
Jika dipilih Batal maka Tampilkan data awal Staff Akhir jika
Isi password Lama Isi Password Baru
Isi Konfirmasi Password Baru Jika dipilih Simpan maka
Ganti password Staff pada tabel Staff Akhir jika
Jika dipilih Batal maka
Kosongkan data yang telah diisi Akhir jika
Akhir modul
6. Modul Menu Dokter
Mulai Modul
Tampilkan Form Dokter Jika dipilih Tambah maka Isi nama Dokter
Isi Jenis Kelamin Isi Tempat Lahir Isi Tanggal Lahir Isi Alamat Dokter Isi Telp
Isi Agama
Isi Tanggal Masuk
Jika dipilih tombol Simpan maka Simpan data Dokter pada tabel Dokter Akhir jika
Jika dipilih tombol Batal maka
Hapus semua data Dokter yang telah diisi Akhir jika
Akhir jika
Isi Alamat Isi Telp Isi Agama
Jika mencentang Tanggal Keluar maka Pilih Tanggal Keluar
Akhir jika
Jika dipilih Tombol SImpan maka Simpan data Dokter pada tabel Dokter Akhir jika
Jika dipilih tombol Batal maka
Kembalikan data Dokter ke data awal Akhir jika
Akhir jika Akhir modul
7. Modul Pencarian Dokter
Mulai Modul
Masukkan nama Dokter Jika dipilih Cari maka
Tampilkan data Dokter sesuai dengan kata kunci Akhir jika
Akhir modul
8. Modul Menu Perawat
Mulai Modul
Jika dipilih Tambah maka Isi nama Perawat
Isi Jenis Kelamin Isi Tempat Lahir Isi Tanggal Lahir Isi Alamat Perawat Isi Telp
Isi Agama
Isi Tanggal Masuk
Jika dipilih tombol Simpan maka
Simpan data Perawat pada tabel Perawat Akhir jika
Jika dipilih tombol Batal maka
Hapus semua data Perawat yang telah diisi Akhir jika
Akhir jika
Jika dipilih tombol Ganti maka Isi Alamat
Isi Telp Isi Agama
Jika mencentang Tanggal Keluar maka Pilih Tanggal Keluar
Akhir jika
Simpan data Perawat pada tabel Perawat Akhir jika
Jika dipilih tombol Batal maka
Kembalikan data Perawat ke data awal Akhir jika
Akhir jika Akhir modul
9. Modul Pencarian Perawat
Mulai Modul
Masukkan nama Perawat Jika dipilih Cari maka
Tampilkan data Perawat sesuai dengan kata kunci Akhir jika
Akhir modul
10. Modul Menu Fasilitas Medis
Mulai Modul
Tampilkan form Fasilitas Medis Jika dipilih tombol Tambah maka Isi Kode Layanan
Isi Nama Layanan Isi Harga
Jika dipilih tombol Simpan maka
Simpan data Fasilitas Medis ke tabel Fasilitas Medis Akhir jika
Jika dipilih tombol Batal maka
Hapus semua data Fasilitas Medis yang telah diisi Akhir jika
Akhir Jika
Jika dipilih tombol Ganti maka Isi Harga
Jika dipilih tombol Simpan maka
Ganti data Fasilitas Medis pada tabel Fasilitas Medis Akhir jika
Jika dipilih tombol Batal maka
Kosongkan data Fasilitas Medis yang telah diisi Akhir jika
Akhir jika Akhir Modul
11. Modul Pencarian Fasilitas Medis
Mulai Modul
Masukkan nama Fasilitas Medis Jika dipilih Cari maka
Tampilkan data Fasilitas Medis sesuai dengan kata kunci Akhir jika
Akhir modul
12. Modul Menu Kamar
Mulai Modul
Jika dipilih tombol Tambah maka Isi Kode Kamar
Pilih Kelas Isi Tarif
Jika dipilih tombol Simpan maka Simpan data Kamar ke tabel Kamar Akhir jika
Jika dipilih tombol Batal maka
Hapus semua data Kamar yang telah diisi Akhir jika
Akhir Jika
Jika dipilih tombol Ganti maka Isi Tarif
Jika dipilih tombol Simpan maka Ganti data Kamar pada tabel Kamar Akhir jika
Jika dipilih tombol Batal maka
Kosongkan data Kamar yang telah diisi Akhir jika
Akhir Modul
13. Modul Pencarian Kamar
Mulai Modul
Masukkan nama Kamar Jika dipilih Cari maka
Tampilkan data Kamar sesuai dengan kata kunci Akhir jika
Akhir modul
14. Modul Menu Obat
Mulai Modul
Tampilkan form Obat
Jika dipilih tombol Tambah maka Isi Kode Obat
Isi Nama Obat Isi Harga Pilih Kemasan
Jika dipilih tombol Simpan maka Simpan data Obat ke tabel Obat Akhir jika
Jika dipilih tombol Batal maka
Hapus semua data Obat yang telah diisi Akhir jika
Akhir Jika
Jika dipilih tombol Ganti maka Isi Harga
Jika dipilih tombol Simpan maka Ganti data Obat pada tabel Obat Akhir jika
Jika dipilih tombol Batal maka
Kosongkan data Obat yang telah diisi Akhir jika
Akhir jika Akhir Modul
15. Modul Pencarian Obat
Mulai Modul
Masukkan nama Obat Jika dipilih Cari maka
Tampilkan data Obat sesuai dengan kata kunci Akhir jika
Akhir modul
16. Modul Menu Pasien
Mulai Modul
Tampilkan form Pasien
Jika dipilih Jenis Pasien Anak maka Jika dipilih tombol Tambah maka
Isi Nomor RM Isi Nama Anak Isi Nama Ibu
Isi Nama Ayah Isi Pekerjaan Ortu Isi Alamat
Pilih Tanggal Lahir Isi BBL
Jika dipilih tombol Simpan maka
Simpan data Pasien Anak ke tabel Pasien Anak Akhir jika
Jika dipilih tombol Batal maka
Hapus data Pasien Anak yang telah diisi Akhir jika
Akhir Jika
Jika dipilih tombol Ganti maka Isi Pekerjaan Ortu
Isi Alamat Isi BBL
Jika dipilih tombol Simpan maka
Ganti data Pasien Anak pada tabel Pasien Anak Akhir jika
Jika dipilih tombol Batal maka
Kosongkan data Pasien Anak yang telah diisi Akhir jika
Akhir jika
Selain jika dipilih Jenis Pasien Kandungan maka Jika dipilih tombol Tambah maka
Isi Nomor RM Isi Nama Sendiri
Isi Nama Suami Isi Pekerjaan Suami Pilih Agama
Isi Alamat Isi Umur Isi AB Isi H.T
Jika dipilih tombol Simpan maka
Simpan data Pasien Kandungan ke tabel Pasien Kandungan Akhir jika
Jika dipilih tombol Batal maka
Hapus data Pasien Kandungan yang telah diisi Akhir jika
Akhir Jika
Jika dipilih tombol Ganti maka Isi Pekerjaan Suami Pilih Agama
Isi Alamat Isi Umur Isi AB Isi H.T
Jika dipilih tombol Simpan maka
Ganti data Pasien Kandungan pada tabel Pasien Kandungan Akhir jika
Jika dipilih tombol Batal maka
Kosongkan data Pasien Kandungan yang telah diisi Akhir jika
Akhir jika
Selain jika dipilih Jenis Pasien Umum maka Jika dipilih tombol Tambah maka
Isi Nomor RM Isi Nama Sendiri Isi Nama Suami Isi Pekerjaan Suami Pilih Agama
Isi Alamat
Pilih Tanggal Lahir
Jika dipilih tombol Simpan maka
Simpan data Pasien Umum ke tabel Pasien Umum Akhir jika
Jika dipilih tombol Batal maka
Hapus data Pasien Umum yang telah diisi Akhir jika
Akhir Jika
Jika dipilih tombol Ganti maka Isi Pekerjaan Suami Pilih Agama
Jika dipilih tombol Simpan maka
Ganti data Pasien Umum pada tabel Pasien Umum Akhir jika
Jika dipilih tombol Batal maka
Kosongkan data Pasien Umum yang telah diisi Akhir jika
Akhir jika Akhir Jika Akhir Modul
17. Modul Pencarian Pasien
Mulai Modul
Masukkan Nomor Rekam Medik Jika dipilih Cari maka
Tampilkan data Pasien sesuai dengan kata kunci Akhir jika
Akhir Jika Akhir modul
18. Modul Menu Peralatan
Mulai Modul
Tampilkan form Peralatan
Jika dipilih tombol Tambah maka Isi Kode Perlatan
Isi Nama Peralatan Isi Harga
Jika dipilih tombol Simpan maka
Simpan data Peralatan ke tabel Peralatan Akhir jika
Jika dipilih tombol Batal maka
Hapus data Peralatan yang telah diisi Akhir jika
Akhir Jika
Jika dipilih tombol Ganti maka Isi Harga
Jika dipilih tombol Simpan maka
Ganti data Peralatan pada tabel Peralatan Akhir jika
Jika dipilih tombol Batal maka
Kosongkan data Peralatan yang telah diisi Akhir jika
Akhir jika Akhir Modul
19. Modul Pencarian Peralatan
Mulai Modul
Masukkan Nama Alat Jika dipilih Cari maka
Tampilkan data Peralatan sesuai dengan kata kunci Akhir jika
20. Modul Menu Pendaftaran
Mulai Modul
Tampilkan Form Pendaftaran Jika dipilih Jenis Pasien Anak maka Jika dipilih tombol Tambah maka Pilih Nomor Rekam Medik
Pilih Tanggal Isi Anamnesis
Isi Tindakan Isi Keterangan
Jika dipilih tombol Simpan maka
Simpan data Pendaftaran ke tabel Konsultasi Anak Akhir Jika
Jika dipilih tombol Batal maka
Kosongkan data Pendaftaran yang telah diisi Akhir jika
Akhir jika
Jika dipilih tombol Ganti maka Isi Anamnesis
Isi Tindakan Isi Keterangan
Jika dipilih tombol Simpan maka
Ganti data Pendaftaran pada tabel Konsultasi Anak Akhir jika
Jika dipilih tombol Batal maka
Kosongkan data Pendaftaran yang telah diisi Akhir jika
Akhir jika
Jika dipilih tombol Hapus maka
Hapus data Pendaftaran dari tabel Konsultasi Anak Akhir Jika
Selain jika dipilih Jenis Pasien Kandungan maka Jika dipilih tombol Tambah maka
Pilih Nomor Rekam Medik Pilih Tanggal
Isi BB Isi Tensi Isi Anamnesis
Isi Pengobatan
Jika dipilih tombol Simpan maka
Simpan data Pendaftaran ke tabel Konsultasi Kandungan Akhir Jika
Jika dipilih tombol Batal maka
Kosongkan data Pendaftaran yang telah diisi Akhir jika
Akhir jika
Jika dipilih tombol Ganti maka Isi BB
Isi Tensi
Isi Anamnesis Isi Pengobatan
Jika dipilih tombol Simpan maka
Ganti data Pendaftaran pada tabel Konsultasi Kandungan Akhir jika
Jika dipilih tombol Batal maka
Kosongkan data Pendaftaran yang telah diisi Akhir jika
Akhir jika
Jika dipilih tombol Hapus maka
Hapus data Pendaftaran dari tabel Konsultasi Kandungan Akhir Jika
Selain jika dipilih Jenis Pasien Umum maka Jika dipilih tombol Tambah maka
Pilih Nomor Rekam Medik Pilih Tanggal
Isi BB Isi Tensi
Isi Keluhan Isi Therapi
Jika dipilih tombol Simpan maka
Simpan data Pendaftaran ke tabel Konsultasi Umum Akhir Jika
Jika dipilih tombol Batal maka
Kosongkan data Pendaftaran yang telah diisi Akhir jika
Akhir jika
Jika dipilih tombol Ganti maka Isi BB
Isi Tensi Isi Keluhan Isi Therapi
Jika dipilih tombol Simpan maka
Ganti data Pendaftaran pada tabel Konsultasi Umum Akhir jika
Jika dipilih tombol Batal maka
Kosongkan data Pendaftaran yang telah diisi Akhir jika
Akhir jika
Jika dipilih tombol Hapus maka
Hapus data Pendaftaran dari tabel Konsultasi Umum Akhir Jika
Akhir jika Akhir Modul
21. Modul Pencarian Pendaftaran
Mulai Modul
Jika dipilih tombol Cari maka
Tampilkan data Pendaftaran sesuai dengan kata kunci Akhir jika
Akhir modul
22. Modul Menu Pembayaran
Mulai Modul
Tampilkan Form Pembayaran Jika dipilih Jenis Rawat Inap maka Jika dipilih tombol Tambah maka
Pilih Kode Rawat Inap Isi Biaya Dokter Isi Biaya Perawat Isi Biaya Administrasi Isi Biaya Laundry Isi Biaya Lain
Jika dipilih tombol Simpan maka
Simpan data Pembayaran ke tabel Pembayaran Header dan Detail Akhir jika
Jika dipilih tombol Batal maka
Kosongkan data Pembayaran yang telah diisi Akhir jika
Akhir jika
Jika dipilih tombol Ganti maka Isi Biaya Dokter