Tiga Lapisan Model Data: Dari Ide di Kepala sampai Tersimpan di Server
Kenali model data konseptual, logis, dan fisik lewat contoh rekam medis. Artikel 2 dari 16 dalam seri Kuliah Basis Data.
Bayangkan kamu diminta membangun rumah sakit. Apakah kamu langsung menuang semen? Tentu tidak. Kamu mulai dari ide: ada IGD, poli, dan ruang rekam medis. Lalu kamu gambar denah, lalu gambar teknik yang detail, dan baru setelah itu tukang bekerja. Basis data bekerja dengan cara yang sama. Di artikel ini kamu akan mengenal model data konseptual logis fisik, tiga lapisan yang membawa data pasien dari ide di kepala sampai tersimpan di server. Artikel ini cocok untuk kamu, mahasiswa D3 RMIK semester 3, yang pernah bingung kenapa dosen menggambar kotak-kotak dulu sebelum menulis satu baris SQL. Kamu sedang membaca Artikel 2 dari 16 seri Kuliah Basis Data.
Model Data Konseptual Logis Fisik: Analogi Membangun Rumah Sakit
Kita samakan dulu satu istilah. Model data adalah cara menggambarkan data beserta hubungan dan aturannya, supaya semua orang punya pemahaman yang sama. Bayangkan petugas pendaftaran, dokter, dan programmer membahas data pasien. Petugas bilang "kunjungan", programmer membuat tabel "transaksi", dan dokter mengira yang dimaksud adalah "pemeriksaan". Kacau, kan? Model data mencegah salah paham seperti ini.
- Entitas: objek yang datanya kita simpan, misalnya pasien dan kunjungan.
- Atribut: ciri dari entitas, misalnya nama dan tanggal lahir pasien.
- Relasi: hubungan antar entitas, misalnya pasien mengunjungi poli.
- Batasan (constraint): aturan penjaga data, misalnya nomor RM tidak boleh kembar.
Nah, model data dibuat bertahap, dari yang paling abstrak sampai yang paling teknis. Connolly dan Begg memisahkan perancangan basis data ke dalam tiga fase: konseptual, logis, dan fisik. Analoginya seperti membangun rumah sakit:
Model Data Konseptual: Gambaran Besar Data Rekam Medis
Lapisan pertama dalam model data konseptual logis fisik ini menjawab satu pertanyaan: "Data apa saja yang kita butuhkan?" Di sini kamu belum bicara tabel, tipe data, atau nama kolom. Kamu hanya menggambar entitas dan hubungannya, biasanya memakai diagram hubungan entitas atau ERD, yang diperkenalkan Peter Chen pada 1976. Pembacanya bukan cuma programmer, tapi juga dokter, perawat, dan petugas rekam medis.
Untuk kasus kunjungan pasien rawat jalan, model konseptualnya bisa seperti ini:
PASIEN (1) ───── mengunjungi ───── (N) KUNJUNGAN NAKES (1) ───── menangani ───── (N) KUNJUNGAN KUNJUNGAN (1) ── memiliki ──────── (N) DIAGNOSIS KUNJUNGAN (1) ── mendapat ──────── (N) TINDAKAN Keterangan: 1 = satu, N = banyak Contoh baca: satu PASIEN bisa punya banyak KUNJUNGAN
Model Data Logis: Menerjemahkan Ide Menjadi Struktur Tabel
Setelah semua sepakat dengan gambaran besarnya, kamu turun satu lapisan. Model data logis menjawab: "Bagaimana data itu disusun?" Setiap entitas menjadi tabel, setiap atribut menjadi kolom, dan hubungan antar tabel dijaga lewat kunci. Kunci primer (PK) menandai baris secara unik, sedangkan kunci tamu (FK) menunjuk ke tabel lain. Model logis mengikuti model relasional yang dirumuskan Codd (1970), tapi belum terikat produk DBMS tertentu.
PASIEN(no_rm, nama, tgl_lahir, jenis_kelamin, alamat)NAKES(id_nakes, nama, profesi)KUNJUNGAN(id_kunjungan, no_rm, id_nakes, tgl_kunjungan, keluhan)DIAGNOSIS(id_diagnosis, id_kunjungan, kode_icd10, nama_diagnosis)TINDAKAN(id_tindakan, id_kunjungan, nama_tindakan)Garis bawah = kunci primer, miring = kunci tamu. Kolom kode_icd10 merujuk ke klasifikasi ICD-10 dari WHO.
Model Data Fisik: Wujud Nyata di Server dengan SQL
Inilah lapisan terakhir dari model data konseptual logis fisik. Model fisik menjawab: "Bagaimana data itu benar-benar disimpan?" Kamu memilih DBMS, tipe data, batasan, dan indeks. Di sinilah rancangan di kertas berubah menjadi tabel sungguhan. Contoh berikut memakai sintaks yang umum di PostgreSQL dan MySQL; detail tipe data bisa berbeda antar DBMS, jadi selalu cek dokumentasi resminya.
-- Model fisik: tabel pasien
CREATE TABLE pasien (
no_rm VARCHAR(10) PRIMARY KEY,
nama VARCHAR(100) NOT NULL,
tgl_lahir DATE NOT NULL,
jenis_kelamin CHAR(1) CHECK (jenis_kelamin IN ('L','P')),
alamat VARCHAR(255)
);
-- Tabel tenaga kesehatan
CREATE TABLE nakes (
id_nakes VARCHAR(10) PRIMARY KEY,
nama VARCHAR(100) NOT NULL,
profesi VARCHAR(50)
);
-- Tabel kunjungan dengan dua kunci tamu
CREATE TABLE kunjungan (
id_kunjungan INT PRIMARY KEY,
no_rm VARCHAR(10) NOT NULL REFERENCES pasien(no_rm),
id_nakes VARCHAR(10) NOT NULL REFERENCES nakes(id_nakes),
tgl_kunjungan DATE NOT NULL,
keluhan TEXT
);
-- Indeks agar pencarian per tanggal lebih cepat
CREATE INDEX idx_kunjungan_tgl ON kunjungan (tgl_kunjungan);
Perhatikan: PRIMARY KEY, NOT NULL, CHECK, dan REFERENCES adalah batasan, komponen keempat model data yang tadi kita bahas. Di lapisan fisik, batasan itu benar-benar ditegakkan oleh server. Coba masukkan kunjungan untuk nomor RM yang belum terdaftar, dan server akan menolaknya.
Membedakan Model Data Konseptual, Logis, dan Fisik
Supaya tidak tertukar saat ujian, bandingkan ketiganya berdampingan:
Rumah sakit pindah dari MySQL ke PostgreSQL? Hanya model fisik yang berubah (tipe data dan sintaks). Model konseptual dan logisnya tetap sama.
Dokter minta data alergi pasien dicatat? Perubahan dimulai dari model konseptual (entitas ALERGI), merambat ke tabel di model logis, lalu ke perintah CREATE TABLE di model fisik.
Pelajarannya: makin ke atas lapisannya, makin stabil. Makin ke bawah, makin sering berubah mengikuti teknologi.
Praktik: Merancang Model Data Konseptual Logis Fisik Sendiri
Teori paling cepat nempel kalau langsung dipraktikkan. Ikuti lima langkah ini untuk kasus registrasi dan kunjungan pasien di puskesmas:
CREATE TABLE seperti contoh di atas.Kesimpulan
Model data konseptual logis fisik adalah tiga lapisan perancangan basis data. Konseptual menggambar data apa yang dibutuhkan, logis menyusunnya menjadi tabel dengan kunci, dan fisik mewujudkannya di server lewat SQL. Semuanya dibangun dari empat komponen: entitas, atribut, relasi, dan batasan.
Di artikel berikutnya kita akan membedah isi tabel itu: atribut, record, dan kunci.
💬 Tulis Komentar 🔗 Bagikan ArtikelMenurutmu, lapisan mana yang paling susah dipahami? Ceritakan di kolom komentar!
- Chen, P. P. S. (1976). The entity-relationship model: Toward a unified view of data. ACM Transactions on Database Systems, 1(1), 9–36.
- Codd, E. F. (1970). A relational model of data for large shared data banks. Communications of the ACM, 13(6), 377–387.
- Connolly, T., & Begg, C. Database Systems: A Practical Approach to Design, Implementation, and Management. Pearson.
- Elmasri, R., & Navathe, S. B. Fundamentals of Database Systems. Pearson.
- Silberschatz, A., Korth, H. F., & Sudarshan, S. Database System Concepts. McGraw-Hill.
- Kementerian Kesehatan Republik Indonesia. (2022). Peraturan Menteri Kesehatan Nomor 24 Tahun 2022 tentang Rekam Medis.
- World Health Organization. ICD-10: International Statistical Classification of Diseases and Related Health Problems, 10th Revision.
- PostgreSQL Global Development Group. PostgreSQL Documentation: CREATE TABLE. https://www.postgresql.org/docs/current/sql-createtable.html
No comments:
Post a Comment