relasi pelayanan kesehatan | java php laravel linux mysql sql bootstrap html css query java php laravel linux mysql sql bootstrap html css query: relasi pelayanan kesehatan

Monday, October 5, 2026

relasi pelayanan kesehatan

🧑‍⚕️🔗🏥
Kuliah Basis Data · Artikel 4 dari 16

Ketika Pasien, Dokter, dan Poli Saling Terhubung: Relasi pada Pelayanan Kesehatan

Cara menghubungkan tabel lewat primary key dan foreign key supaya data kunjungan pasien tidak berjalan sendiri-sendiri.

Basis Data Relasi Tabel Foreign Key Rekam Medis
⏱ 9 menit
Estimasi baca
📈 Dasar
Level
📅 2026
Tahun

Bayangkan kamu bertugas di loket pendaftaran sebuah puskesmas. Seorang bapak datang dengan keluhan batuk. Kamu mencatat namanya di tabel pasien, lalu mencatat dokter jaga di tabel dokter. Tapi di mana kamu menulis bahwa bapak ini diperiksa dokter itu, di poli umum, pada hari ini? Tanpa penghubung, tabel-tabelmu hanya tumpukan data yang saling cuek.

Di sinilah relasi basis data pelayanan kesehatan berperan. Artikel ini adalah bagian dari seri Kuliah Basis Data (Artikel 4 dari 16). Setelah memahami anatomi tabel, atribut, dan record di artikel sebelumnya, sekarang kamu belajar menghubungkan entitas pasien, dokter, poli, dan kunjungan menjadi satu alur data yang utuh.

🎯 Capaian pembelajaran (Sub-CPMK T1)

Setelah membaca, kamu mampu menerapkan konsep relasional pada kasus kesehatan dan menghubungkan entitas serta data pada kasus pelayanan kesehatan.

Mengapa Relasi Basis Data Pelayanan Kesehatan Itu Penting?

Coba bayangkan kartu pasien di lemari arsip. Satu map berisi identitas, riwayat kunjungan, nama dokter, dan hasil diagnosis. Di basis data relasional, semua itu tidak ditumpuk dalam satu tabel raksasa. Datanya dipecah ke beberapa tabel kecil yang rapi, lalu dihubungkan lewat kunci. Edgar F. Codd memperkenalkan gagasan ini pada tahun 1970 (Codd, 1970).

Kenapa dipecah? Karena kalau identitas pasien kamu tulis ulang di setiap kunjungan, masalah muncul cepat. Pasien pindah alamat, dan kamu harus mengubahnya di puluhan baris. Satu baris terlewat, dan datanya tidak konsisten. Dengan relasi, identitas pasien cukup tersimpan sekali, lalu kunjungan hanya "menunjuk" ke pasien tersebut.

📐 Konsep Utama

Primary Key (PK) = atribut yang mengidentifikasi satu record secara unik di dalam tabelnya.

Foreign Key (FK) = atribut di satu tabel yang nilainya merujuk ke PK di tabel lain.

Relasi = FK (tabel anak) ➜ PK (tabel induk)

💡 Tips

Pakai analogi nomor KTP. Nomor itu unik per orang (PK), dan formulir apa pun yang menyebut nomor KTP-mu sedang "menunjuk" ke dirimu (FK). Di rekam medis, nomor rekam medis (No. RM) memainkan peran yang sama.

Tiga Jenis Relasi dalam Basis Data Pelayanan Kesehatan

Relasi punya "kardinalitas", yaitu aturan berapa record di satu tabel yang boleh terhubung dengan record di tabel lain (Elmasri & Navathe, 2016). Ada tiga jenis yang wajib kamu kuasai, dan semuanya muncul di puskesmas atau rumah sakit.

Jenis Relasi Artinya Contoh Kasus Kesehatan
One-to-One (1:1) Satu record terhubung ke tepat satu record lain Satu pasien memiliki satu data kepesertaan jaminan kesehatan aktif
One-to-Many (1:N) Satu record induk punya banyak record anak Satu pasien memiliki banyak kunjungan; satu poli menerima banyak kunjungan
Many-to-Many (M:N) Banyak record bisa terhubung ke banyak record lain, perlu tabel penghubung Satu dokter praktik di banyak poli, satu poli diisi banyak dokter

Relasi paling sering kamu temui adalah one-to-many. Pasien yang sama bisa datang berkali-kali, tetapi setiap kunjungan hanya milik satu pasien. Relasi many-to-many butuh perhatian ekstra karena tidak bisa dipasang langsung. Kamu membuat tabel perantara, misalnya jadwal_praktik, yang menyimpan pasangan dokter dan poli.

⚡ Insight Penting

Tabel kunjungan adalah "jantung" basis data pelayanan. Ia menyimpan tiga foreign key sekaligus: pasien, dokter, dan poli. Satu baris kunjungan menjawab pertanyaan siapa, diperiksa siapa, di mana, dan kapan.

Berikut gambaran hubungan antartabel dalam bentuk diagram teks. Panah menunjukkan arah rujukan dari foreign key ke primary key.

 ┌──────────┐ 1      N ┌─────────────┐ N      1 ┌──────────┐
 │  PASIEN  │──────────│  KUNJUNGAN  │──────────│   POLI   │
 │ PK no_rm │          │ PK id_kunj  │          │ PK id_poli│
 └──────────┘          │ FK no_rm    │          └─────┬────┘
                       │ FK id_dokter│                │ 1
 ┌──────────┐ 1      N │ FK id_poli  │                │
 │  DOKTER  │──────────│ tgl, keluhan│          ┌─────┴──────────┐
 │PK id_dokt│          └─────────────┘          │ JADWAL_PRAKTIK │
 └────┬─────┘ 1                              N  │ FK id_dokter   │
      └──────────────────────────────────────────│ FK id_poli     │
                                                 └────────────────┘

Langkah Membangun Relasi Basis Data Pelayanan Kesehatan

Kamu tidak perlu langsung menulis kode. Ikuti lima langkah berikut, urut dari kertas dulu baru ke SQL.

1
Daftar entitasnya. Dari kasus puskesmas, tuliskan benda yang datanya perlu disimpan: pasien, dokter, poli, kunjungan, diagnosis.
2
Tentukan primary key tiap tabel. Pilih atribut yang pasti unik dan tidak berubah, misalnya No. RM untuk pasien.
3
Tentukan jenis relasi. Tanyakan dua arah: "satu pasien boleh punya berapa kunjungan?" lalu "satu kunjungan boleh milik berapa pasien?"
4
Pasang foreign key di sisi "banyak". Pada relasi 1:N, FK selalu ditaruh di tabel anak. Untuk M:N, buat tabel penghubung.
5
Tulis dan uji dengan SQL. Buat tabel, isi data contoh, lalu coba masukkan data yang "salah" untuk melihat apakah relasi menolaknya.

Berikut implementasinya dalam SQL. Urutan pembuatan penting: tabel induk dulu, baru tabel anak.

📄 pelayanan_kesehatan.sql
CREATE TABLE pasien (
  no_rm          VARCHAR(10) PRIMARY KEY,
  nama_pasien    VARCHAR(100) NOT NULL,
  tgl_lahir      DATE NOT NULL
);

CREATE TABLE dokter (
  id_dokter      INT PRIMARY KEY,
  nama_dokter    VARCHAR(100) NOT NULL
);

CREATE TABLE poli (
  id_poli        INT PRIMARY KEY,
  nama_poli      VARCHAR(50) NOT NULL
);

CREATE TABLE kunjungan (
  id_kunjungan   INT PRIMARY KEY,
  no_rm          VARCHAR(10) NOT NULL,
  id_dokter      INT NOT NULL,
  id_poli        INT NOT NULL,
  tgl_kunjungan  DATE NOT NULL,
  keluhan        VARCHAR(200),
  FOREIGN KEY (no_rm)     REFERENCES pasien(no_rm),
  FOREIGN KEY (id_dokter) REFERENCES dokter(id_dokter),
  FOREIGN KEY (id_poli)   REFERENCES poli(id_poli)
);
⚠️ Perhatian

Hati-hati memakai ON DELETE CASCADE pada data klinis. Menghapus satu pasien bisa ikut menghapus seluruh riwayat kunjungannya. Rekam medis punya aturan penyimpanan dan kerahasiaan, jadi baca Permenkes No. 24 Tahun 2022 tentang Rekam Medis sebelum menentukan perilaku hapus.

Membaca Relasi Basis Data Pelayanan Kesehatan dengan JOIN

Data yang sudah terhubung baru terasa gunanya saat kamu menggabungkannya kembali. Perintah JOIN mengikuti "benang" foreign key untuk menyatukan tabel. Tanpa JOIN, tabel kunjungan hanya berisi deretan angka kode yang sulit dibaca manusia.

📄 laporan_kunjungan.sql
SELECT k.tgl_kunjungan,
       p.nama_pasien,
       d.nama_dokter,
       po.nama_poli,
       k.keluhan
FROM kunjungan k
JOIN pasien p  ON k.no_rm     = p.no_rm
JOIN dokter d  ON k.id_dokter = d.id_dokter
JOIN poli  po  ON k.id_poli   = po.id_poli
WHERE k.tgl_kunjungan = '2026-10-05';

Query ini menghasilkan daftar kunjungan hari itu lengkap dengan nama pasien, dokter, dan poli. Ini mirip laporan harian yang mungkin kamu buat di unit rekam medis. Perhatikan pola ON k.no_rm = p.no_rm: kondisi JOIN hampir selalu berupa pasangan foreign key dan primary key.

🔥 Fakta Menarik

Gagasan model relasional berasal dari makalah Codd tahun 1970 yang ditulis di IBM. Lebih dari lima dekade kemudian, prinsip yang sama masih menjadi dasar sistem informasi rumah sakit yang kamu temui sekarang.

Mengembangkan Relasi: Diagnosis dan Tindakan

Kunjungan jarang berhenti pada keluhan saja. Dokter menegakkan diagnosis, lalu kadang melakukan tindakan. Dalam rekam medis, satu kunjungan bisa punya lebih dari satu diagnosis, misalnya hipertensi dan diabetes sekaligus. Itu berarti relasinya satu kunjungan ke banyak diagnosis (1:N). Kamu cukup membuat tabel diagnosis_kunjungan yang berisi id_kunjungan sebagai foreign key dan kode penyakit dari ICD-10.

Pola yang sama berlaku untuk tindakan medis. Setiap kali kebutuhan data baru muncul, tanyakan dua hal: data ini milik siapa, dan berapa banyak yang boleh dimiliki? Jawabannya langsung menunjukkan di tabel mana foreign key harus dipasang. Latihan sederhana ini membuat kamu terbiasa membaca kasus pelayanan kesehatan sebagai jaringan entitas, bukan sekadar daftar kolom. Cobalah menggambar relasinya di kertas dulu sebelum membuka aplikasi DBMS, karena kesalahan rancangan jauh lebih murah diperbaiki di atas kertas daripada setelah ribuan data pasien masuk.

🔍 Analisis: Tanpa Relasi vs Dengan Relasi
❌ Satu tabel besar
  • Nama pasien ditulis berulang di tiap kunjungan
  • Ganti nama dokter harus ubah banyak baris
  • Typo membuat satu orang tercatat sebagai dua pasien
✅ Tabel berelasi
  • Identitas pasien tersimpan sekali
  • Perubahan cukup di satu tempat
  • Foreign key menolak kunjungan untuk pasien yang tidak ada

Poin terakhir itulah yang disebut integritas referensial: basis data sendiri yang menjaga agar setiap rujukan menunjuk ke data yang benar-benar ada (Silberschatz, Korth, & Sudarshan, 2019).

💡 Tips Praktik

Setelah tabel jadi, langsung uji dengan sengaja. Coba INSERT kunjungan dengan No. RM yang belum terdaftar. Kalau relasimu benar, DBMS akan menolak. Di praktikum, kebiasaan menguji data "nakal" seperti ini akan menyelamatkanmu dari banyak galat.

🏁 Kesimpulan

Relasi mengubah tabel-tabel yang berdiri sendiri menjadi satu gambaran utuh pelayanan kesehatan. Ingat empat hal ini:

  • Primary key mengidentifikasi record, foreign key menghubungkannya ke tabel lain.
  • Ada tiga jenis relasi: 1:1, 1:N, dan M:N (dengan tabel penghubung).
  • Tabel kunjungan menyatukan pasien, dokter, dan poli lewat tiga foreign key.
  • JOIN membaca ulang data yang sudah terhubung menjadi laporan yang mudah dipahami.

Itulah inti relasi basis data pelayanan kesehatan: data tidak diulang, tetap konsisten, dan bisa ditelusuri dari pasien sampai tenaga kesehatan yang menanganinya.

Menurutmu, relasi mana yang paling membingungkan: 1:N atau M:N? Ceritakan di kolom komentar, lalu bagikan artikel ini ke temanmu yang sedang belajar basis data!

#BasisData #Database #RMIK #RelasiTabel #PrimaryKey #ForeignKey
🏷 Relasi Basis Data Pelayanan Kesehatan 🏷 Pasien–Dokter–Poli
📚 Referensi
  • Codd, E. F. (1970). A relational model of data for large shared data banks. Communications of the ACM, 13(6), 377–387.
  • Elmasri, R., & Navathe, S. B. (2016). Fundamentals of Database Systems (7th ed.). Pearson.
  • Silberschatz, A., Korth, H. F., & Sudarshan, S. (2019). Database System Concepts (7th ed.). McGraw-Hill.
  • Kementerian Kesehatan Republik Indonesia. (2022). Peraturan Menteri Kesehatan Nomor 24 Tahun 2022 tentang Rekam Medis.
📚 Artikel Utama Seri

Daftar Isi Kuliah Basis Data

Artikel ini bagian dari seri Kuliah Basis Data (Artikel 4 dari 16). Lihat seluruh materi di halaman daftar isi.

Buka Daftar Isi ➜

No comments:

Post a Comment

saifiahmada.com adalah blog belajar programming Indonesia, membahas lengkap materi bahasa pemrograman: code HTML, CSS, Bootstrap, Desain, PHP, MySQL, coding Java, Query, SQL, dan dunia linux