Bayangkan kamu baru masuk kerja di rumah sakit besar sebagai staf rekam medis. Di hari pertama, sistem komputernya down. Data pasien bertebaran di tiga aplikasi berbeda, nomor rekam medis duplikat, dan dokter teriak karena riwayat alergi pasien tidak muncul saat dibutuhkan. Kaos total. Nah, semua bencana itu bisa dicegah — asal perancangan struktur basis data-nya benar sejak awal.
Di artikel ini, kita bahas tuntas bagaimana perancangan struktur basis data — mulai dari desain dan arsitektur, tabel, kolom, Primary Key (PK), Foreign Key (FK), constraint, indeks, sampai skema fisik basis data SIMRS yang nyata. Ini bukan teori kosong; ini bekal langsung yang bisa kamu terapkan di tugas kuliah, praktikum, bahkan nanti di dunia kerja.
🏗️ Desain & Arsitektur Basis Data: Fondasi Sebelum Membangun
Sebelum kamu buru-buru bikin tabel di MySQL, ada tahapan penting yang sering dilewatkan: perancangan arsitektur. Analoginya seperti membangun rumah — kamu tidak langsung pasang batu bata tanpa gambar denah, kan?
Menurut Connolly & Begg (2015), desain basis data terdiri dari tiga level arsitektur yang saling berkaitan, yang dikenal sebagai ANSI/SPARC Architecture:
Saat mengerjakan tugas atau UAS, mulailah selalu dari ERD dulu. Dosen umumnya menilai ketepatan relasi antar entitas, bukan banyaknya tabel. Satu ERD yang logis lebih bernilai dari sepuluh tabel yang asal-asalan!
🔑 Tabel, Kolom, Primary Key & Foreign Key dalam SIMRS
Kalau basis data itu seperti sebuah perpustakaan, maka tabel adalah raknya, kolom adalah kategorisasi buku (judul, pengarang, ISBN), dan baris adalah satu buku konkret. Sederhana, tapi penting untuk dipahami sebelum masuk ke bagian yang lebih teknis.
Silberschatz, Korth, & Sudarshan (2020) dalam Database System Concepts mendefinisikan relasi (tabel) sebagai himpunan baris yang memiliki skema atribut (kolom) yang sama. Dalam konteks SIMRS, berikut contoh nyata struktur tabel dasarnya:
| Nama Kolom | Tipe Data | Constraint | Keterangan |
|---|---|---|---|
id_pasien |
VARCHAR(10) | PRIMARY KEY | Nomor Rekam Medis unik |
nama_pasien |
VARCHAR(100) | NOT NULL | Nama lengkap pasien |
tanggal_lahir |
DATE | NOT NULL | Format YYYY-MM-DD |
jenis_kelamin |
ENUM('L','P') | CHECK | Hanya 'L' atau 'P' |
id_poli |
INT | FOREIGN KEY | Referensi ke tabel Poli |
Primary Key (PK) adalah kolom (atau kombinasi kolom) yang secara unik mengidentifikasi setiap baris dalam tabel. Tidak boleh NULL, tidak boleh duplikat. Untuk SIMRS, Nomor Rekam Medis (NRM) adalah PK tabel Pasien — ini bukan sekadar aturan teknis, tapi juga standar rekam medis Indonesia berdasarkan Permenkes No. 269 Tahun 2008.
Foreign Key (FK) adalah kolom yang mereferensikan PK di tabel lain, menciptakan relasi antar tabel. Contoh: id_dokter di tabel Kunjungan merujuk ke id_dokter di tabel Dokter. Tanpa FK, datamu bisa "yatim" — ada kunjungan ke dokter yang tidak terdaftar, alias orphan record.
🛡️ Constraint & Indeks: Penjaga Integritas dan Kecepatan Data
Constraint ibarat "peraturan tata tertib" di asrama — dibuat agar tidak ada yang berbuat sembarangan. Sementara indeks ibarat "daftar isi" di buku tebal — tanpanya, kamu harus baca dari halaman pertama hanya untuk nemuin satu nama.
Ramez Elmasri & Shamkant Navathe (2016) dalam Fundamentals of Database Systems mengklasifikasikan constraint menjadi beberapa jenis utama:
nama_pasien NOT NULLno_nik UNIQUE — satu NIK, satu pasien.CHECK (umur >= 0) — umur tidak boleh negatif.Indeks: Turbo untuk Query
Indeks mempercepat pencarian data secara dramatis — terutama di tabel besar seperti data kunjungan pasien yang bisa mencapai jutaan baris. Tanpa indeks, DBMS harus scan seluruh tabel (full table scan). Dengan indeks, ia langsung melompat ke lokasi yang tepat.
Jangan asal tambah indeks! Indeks mempercepat SELECT, tapi memperlambat INSERT, UPDATE, DELETE karena indeks harus diperbarui setiap ada perubahan data. Prinsipnya: buat indeks hanya pada kolom yang sering dipakai di klausa WHERE, JOIN, atau ORDER BY.
🏥 Skema Fisik Basis Data SIMRS: Gambaran Nyata
Sekarang kita masuk ke bagian paling seru — bagaimana perancangan struktur basis data itu terlihat dalam konteks nyata sebuah SIMRS. Mengacu pada standar minimal SIMRS menurut Permenkes No. 82 Tahun 2013, setidaknya ada enam entitas/modul utama yang harus diakomodir dalam skema fisiknya:
Dalam merancang SIMRS, pastikan skema fisikmu mempertimbangkan normalisasi hingga 3NF (Third Normal Form). Menurut Date (2004) dalam An Introduction to Database Systems, 3NF menghilangkan redundansi yang dapat menyebabkan anomali pembaruan (update anomaly), penyisipan (insertion anomaly), dan penghapusan (deletion anomaly) data — tiga bencana terbesar dalam desain basis data yang buruk.
✅ Checklist Perancangan Basis Data SIMRS yang Benar
Sebelum kamu submit tugas atau deploy sistem, pastikan semua poin berikut sudah terpenuhi. Ini adalah quality gate yang dipakai oleh DBA (Database Administrator) profesional:
Tiga kesalahan terbesar yang paling sering ditemukan di tugas mahasiswa RMIK: (1) menyimpan nama dokter langsung di tabel kunjungan — harusnya pakai FK ke tabel dokter; (2) memakai VARCHAR untuk semua kolom angka — stok_obat harus INT, bukan VARCHAR; dan (3) tidak ada constraint sama sekali — akibatnya stok bisa minus, usia bisa 999 tahun, dan data chaos total.
📚 Referensi
- Connolly, T., & Begg, C. (2015). Database Systems: A Practical Approach to Design, Implementation, and Management (6th ed.). Pearson.
- Silberschatz, A., Korth, H. F., & Sudarshan, S. (2020). Database System Concepts (7th ed.). McGraw-Hill.
- Elmasri, R., & Navathe, S. B. (2016). Fundamentals of Database Systems (7th ed.). Pearson.
- Date, C. J. (2004). An Introduction to Database Systems (8th ed.). Addison-Wesley.
- Kementerian Kesehatan RI. (2013). Peraturan Menteri Kesehatan Nomor 82 Tahun 2013 tentang Sistem Informasi Manajemen Rumah Sakit. Kemenkes RI.
- Kementerian Kesehatan RI. (2008). Peraturan Menteri Kesehatan Nomor 269 Tahun 2008 tentang Rekam Medis. Kemenkes RI.
- Ramez, E., & Navathe, S. (2017). Sistem Basis Data (terjemahan). Indeks.
Diskusi Yuk! 🙌
Ada yang masih bingung soal FK vs PK? Atau mau nanya kenapa normalisasi 3NF itu penting? Drop pertanyaanmu di kolom komentar! Kita diskusi bareng. Kalau artikel ini bermanfaat, jangan lupa share ke teman seprodi — lumayan jadi referensi belajar bareng sebelum UAS 😄
No comments:
Post a Comment