๐ฉบ๐️๐
Kuliah Basis Data · Artikel 12 dari 16
Pilih Tipe Data yang Pas: Variabel dan Metadata Kesehatan
Satu kolom salah tipe bisa membuat umur pasien kacau dan laporan tidak bisa dipercaya. Yuk, belajar memilihnya dengan benar.
Tipe Data
Variabel
Metadata
Rekam Medis
Bayangkan petugas registrasi mengetik tanggal lahir pasien sebagai teks bebas: 5/3/92. Itu 5 Maret atau 3 Mei? Dua minggu kemudian laporan umur pasien berantakan, dan kamu yang diminta menjelaskan. Kesalahan sekecil ini hampir selalu berawal dari satu keputusan: salah memilih tipe data.
Di artikel ini kamu akan belajar menentukan tipe data dan metadata kesehatan dengan tepat, mulai dari mengenali variabel sampai menyusun kamus data. Artikel ini adalah bagian dari seri Kuliah Basis Data (Artikel 12 dari 16) untuk mahasiswa D3 RMIK semester 3, jadi cocok kalau kamu sedang menyiapkan struktur tabel pasien dan kunjungan.
Apa Itu Tipe Data dan Metadata Kesehatan?
Bayangkan dapur di rumahmu. Kerupuk masuk toples, sirop masuk botol, beras masuk wadah kedap udara. Kalau sirop kamu tuang ke saringan, hasilnya bocor dan lengket. Database bekerja dengan logika yang sama: tipe data menentukan jenis nilai apa yang boleh masuk ke sebuah kolom, berapa ruang yang dipakai, dan operasi apa yang bisa dilakukan, seperti menjumlahkan, mengurutkan, atau membandingkan.
๐ Tiga istilah kunci
Variabel = karakteristik yang dicatat dari sebuah objek, misalnya umur, berat badan, atau diagnosis. Di tabel, variabel menjadi kolom (atribut).
Tipe data = aturan jenis nilai yang boleh disimpan pada sebuah kolom (angka bulat, desimal, teks, tanggal, dan sebagainya).
Metadata = "data tentang data": nama kolom, tipe, panjang, aturan, dan arti setiap kolom (Elmasri & Navathe, 2016).
Variabel → Karakteristik → Tipe Data → Metadata
Kenapa ini penting di RMIK? Permenkes No. 24 Tahun 2022 mengatur penyelenggaraan rekam medis, termasuk rekam medis elektronik. Data pasien harus akurat, mudah dicari, dan bisa dilaporkan. Tipe data yang tepat membuat database menolak input ngawur secara otomatis, sedangkan metadata yang rapi membuat petugas lain paham arti setiap kolom tanpa harus menebak.
๐ฅ Fakta Menarik: NIK Tidak Muat di INT
NIK terdiri dari 16 digit, sedangkan nilai terbesar tipe INT hanya 2.147.483.647 (10 digit). Nomor rekam medis seperti 000123 juga akan berubah menjadi 123 kalau disimpan sebagai angka, karena nol di depannya hilang. Dua-duanya adalah identitas, bukan angka untuk dihitung, jadi simpan sebagai teks.
Mengenali Variabel: Fondasi Tipe Data dan Metadata Kesehatan
Sebelum memilih tipe data, kenali dulu karakter variabelnya. Ada empat skala pengukuran yang sering muncul di data kesehatan:
Nominal: kategori tanpa urutan, misalnya jenis kelamin atau golongan darah.
Ordinal: kategori berurutan, misalnya derajat nyeri ringan–sedang–berat.
Interval: angka dengan jarak sama tetapi tanpa nol mutlak, misalnya suhu tubuh dalam °C.
Rasio: angka dengan nol mutlak, misalnya berat badan, tinggi badan, atau jumlah kunjungan.
Variabel angka juga dibedakan menjadi diskret (hasil menghitung, seperti jumlah kunjungan) dan kontinu (hasil mengukur, seperti tinggi badan). Tabel berikut memetakan variabel khas rekam medis ke tipe data SQL.
| Variabel |
Contoh nilai |
Karakteristik |
Tipe data SQL |
| No. rekam medis | 000123 | Identitas, tidak dihitung | CHAR(6) |
| NIK | 1234567890123456 | Identitas 16 digit | CHAR(16) |
| Nama pasien | Siti Rahmawati | Teks, panjang bervariasi | VARCHAR(100) |
| Tanggal lahir | 1992-03-05 | Tanggal | DATE |
| Jenis kelamin | L / P | Nominal, 2 pilihan | CHAR(1) |
| Berat badan (kg) | 62,50 | Rasio, desimal | DECIMAL(5,2) |
| Suhu tubuh (°C) | 37,8 | Interval, 1 desimal | DECIMAL(3,1) |
| Waktu kunjungan | 2026-10-05 08:15:00 | Tanggal dan jam | DATETIME (MySQL) / TIMESTAMP (PostgreSQL) |
| Kode ICD-10 | J00 | Kode alfanumerik | VARCHAR(10) |
| Keluhan utama | Demam 3 hari, batuk | Teks panjang bebas | TEXT |
| Rawat inap? | Ya / Tidak | Dua kemungkinan | BOOLEAN |
๐ก Tips: Tiga Pertanyaan Penentu
Untuk setiap variabel, tanyakan: (1) Apakah nilainya akan dihitung? Kalau tidak, simpan sebagai teks. (2) Apakah panjangnya selalu sama? Kalau ya, pakai CHAR. (3) Apakah pilihannya terbatas? Kalau ya, pakai kode pendek atau tabel referensi.
Langkah Memilih Tipe Data dan Metadata Kesehatan untuk Tabel Pasien
Ikuti lima langkah ini setiap kali kamu merancang tabel baru. Kamu bisa langsung memakainya pada formulir pendaftaran atau resume medis di tempat praktikmu.
1
Daftar semua variabel dari formulir.
Ambil formulir pendaftaran pasien dan tulis setiap isian: nama, tanggal lahir, keluhan, dan seterusnya. Satu isian umumnya menjadi satu kolom.
2
Tentukan skala dan karakter tiap variabel.
Nominal, ordinal, interval, atau rasio? Diskret atau kontinu? Hasilnya menentukan keluarga tipe data: teks, angka, atau tanggal.
3
Pilih tipe paling sempit yang masih aman.
Pakai INT untuk hitungan biasa, bukan BIGINT. Pakai VARCHAR(100) untuk nama, bukan TEXT. Tipe yang pas menghemat ruang dan mempercepat pencarian.
4
Tetapkan panjang, presisi, dan aturan wajib isi.
Putuskan NOT NULL untuk data yang wajib ada (misalnya tanggal lahir) dan boleh kosong untuk yang opsional (misalnya golongan darah).
5
Catat semuanya di kamus data.
Hasil langkah 1–4 kamu tuliskan sebagai metadata, supaya orang lain paham tanpa bertanya. Bagian berikutnya membahasnya.
Berikut hasil penerapan langkah-langkah itu pada tabel pasien dan kunjungan. Perintah CREATE TABLE dibahas tuntas di Artikel 13, jadi untuk sekarang fokus saja pada tipe data di setiap baris.
SQL · klik 3x pada kode untuk menyalin ๐
-- Tabel pasien: identitas dasar
CREATE TABLE pasien (
no_rm CHAR(6) NOT NULL,
nik CHAR(16) NOT NULL,
nama_pasien VARCHAR(100) NOT NULL,
tgl_lahir DATE NOT NULL,
jenis_kelamin CHAR(1) NOT NULL, -- 'L' atau 'P'
gol_darah VARCHAR(3), -- boleh kosong
PRIMARY KEY (no_rm)
);
-- Tabel kunjungan: satu pasien, banyak kunjungan
CREATE TABLE kunjungan (
id_kunjungan INT NOT NULL,
no_rm CHAR(6) NOT NULL,
tgl_kunjungan DATETIME NOT NULL,
berat_badan DECIMAL(5,2),
suhu_tubuh DECIMAL(3,1),
keluhan TEXT,
kode_icd10 VARCHAR(10),
rawat_inap BOOLEAN NOT NULL,
PRIMARY KEY (id_kunjungan),
FOREIGN KEY (no_rm) REFERENCES pasien (no_rm)
);
Perhatikan pola yang muncul: kolom no_rm di tabel kunjungan memakai tipe dan panjang yang sama persis dengan no_rm di tabel pasien. Ini disengaja. Kolom yang menjadi penghubung antartabel (foreign key) harus kompatibel dengan kolom yang dirujuknya, kalau tidak, database menolak relasinya atau menghasilkan pencocokan yang meleset. Tabel berikut menunjukkan apa yang terjadi kalau tipe dipilih sembarangan.
๐ Analisis: Salah Pilih Tipe, Apa Akibatnya?
| Kolom |
Pilihan keliru |
Akibatnya |
Pilihan tepat |
| tgl_lahir | VARCHAR | Format campur aduk; saat diurutkan, "10/2" muncul sebelum "9/1" | DATE |
| nik | INT | Nilai 16 digit tidak muat | CHAR(16) |
| no_rm | INT | Nol di depan hilang: 000123 menjadi 123 | CHAR(6) |
| berat_badan | INT | 62,5 kg dibulatkan; perhitungan dosis berbasis berat badan bisa meleset | DECIMAL(5,2) |
⚠️ Perhatian: Jangan Simpan Umur
Umur berubah setiap tahun, jadi kolom umur akan basi tanpa disadari. Simpan tgl_lahir, lalu hitung umur saat dibutuhkan. Di MySQL, kamu bisa memakai:
SELECT nama_pasien, TIMESTAMPDIFF(YEAR, tgl_lahir, CURDATE()) AS umur FROM pasien;
Membangun Kamus Data: Metadata Kesehatan dalam Praktik
Kalau tipe data adalah label di wadah dapur, metadata adalah buku resep lengkapnya: isi wadah apa, boleh disimpan berapa lama, dan siapa yang mengisinya. Metadata umumnya dikelompokkan menjadi tiga jenis: struktural (nama kolom, tipe, panjang), deskriptif (arti dan contoh nilai), dan administratif (pemilik data, tanggal perubahan). Dokumen yang merangkumnya disebut kamus data.
| Kolom |
Tipe |
Wajib? |
Deskripsi |
Contoh |
no_rm | CHAR(6) | Ya | Nomor rekam medis unik per pasien | 000123 |
tgl_lahir | DATE | Ya | Tanggal lahir, format YYYY-MM-DD | 1992-03-05 |
suhu_tubuh | DECIMAL(3,1) | Tidak | Suhu tubuh saat pemeriksaan, satuan °C | 37.8 |
kode_icd10 | VARCHAR(10) | Tidak | Kode diagnosis menurut ICD-10 WHO | J00 |
Kamu tidak perlu menebak metadata strukturalnya. DBMS menyimpannya di katalog sistem, dan kamu bisa membacanya lewat information_schema, yang tersedia di MySQL maupun PostgreSQL:
SQL · membaca metadata tabel pasien ๐
SELECT column_name,
data_type,
character_maximum_length,
is_nullable
FROM information_schema.columns
WHERE table_name = 'pasien';
⚡ Insight Penting: Kode, Bukan Kalimat
Kolom kode_icd10 menyimpan kode diagnosis (WHO, 2019), bukan teks diagnosis. Nama penyakitnya cukup ditaruh sekali di tabel referensi, lalu dirujuk lewat kode. Hasilnya ejaan seragam, laporan morbiditas mudah dihitung, dan inilah pintu masuk ke normalisasi yang sudah kamu pelajari di artikel sebelumnya.
๐ Kesimpulan
Memilih tipe data dan metadata kesehatan dengan benar adalah pekerjaan kecil yang dampaknya besar. Ringkasnya:
• Kenali skala dan karakter variabel dulu, baru pilih tipe data.
• Identitas seperti NIK dan nomor RM disimpan sebagai teks, karena tidak dihitung.
• Pilih tipe paling sempit yang aman, lalu tetapkan panjang dan aturan NOT NULL.
• Simpan tanggal lahir, bukan umur.
• Catat semuanya di kamus data supaya seluruh tim membaca data dengan arti yang sama.
Sekarang giliranmu: variabel apa di formulir tempat praktikmu yang paling rawan salah tipe? Tulis di kolom komentar, dan bagikan artikel ini ke teman sekelasmu yang masih menyimpan tanggal sebagai teks.
๐ฌ Tulis Komentar
๐ค Bagikan Artikel
๐ Referensi
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.
World Health Organization. (2019). International Statistical Classification of Diseases and Related Health Problems, 10th Revision (ICD-10). WHO.
MySQL. MySQL Reference Manual: Data Types. dev.mysql.com/doc.
PostgreSQL Global Development Group. PostgreSQL Documentation: Data Types. postgresql.org/docs.
#BasisData
#Database
#RMIK
#TipeData
#Metadata
#VariabelKesehatan
Tipe Data dan Metadata Kesehatan
Variabel dan Kamus Data RMIK
๐
Daftar Isi Kuliah Basis Data
Artikel ini adalah bagian dari seri Kuliah Basis Data (Artikel 12 dari 16). Lihat peta lengkap seluruh materinya di artikel utama.
Buka Daftar Isi Kuliah Basis Data