DBMS DDL | java php laravel linux mysql sql bootstrap html css query java php laravel linux mysql sql bootstrap html css query: DBMS DDL

Wednesday, April 1, 2026

DBMS DDL

📚 Basis Data · RMIK Semester 4

Pengenalan DBMS & DDL:
MySQL / MariaDB untuk Pemula

CREATE DATABASE, CREATE TABLE, ALTER TABLE & DROP — semua yang kamu butuhkan untuk mulai ngulik basis data dari nol.

4
Perintah DDL Utama
10+
Contoh SQL Siap Pakai
~12 min
Waktu Baca
DBMS MySQL MariaDB DDL Basis Data RMIK

Bayangin kamu lagi kerja di rumah sakit, dan tugasmu adalah mengelola data rekam medis ribuan pasien. Tanpa sistem yang terorganisir, data bisa berantakan seperti tumpukan kertas di meja IGD yang nggak pernah beres. Nah, di sinilah DBMS (Database Management System) jadi penyelamatnya.

Sebagai mahasiswa D3 RMIK (Rekam Medis dan Informasi Kesehatan), kamu pasti akan bersentuhan langsung dengan sistem informasi rumah sakit yang mengandalkan database. Artikel ini hadir sebagai panduan pertamamu untuk memahami DBMS dan perintah-perintah DDL di MySQL/MariaDB — dari nol, santai, tapi tetap serius biar bisa dipraktikkan langsung.

💡
Fakta Menarik

Menurut DB-Engines Ranking (2024), MySQL masih menjadi DBMS paling populer di dunia selama lebih dari satu dekade, digunakan oleh platform raksasa teknologi dan berbagai sistem SIMRS (Sistem Informasi Manajemen Rumah Sakit) di Indonesia.
Sumber: db-engines.com/en/ranking, 2024

🗄️ Apa Itu DBMS? Kenalan Dulu Sebelum Ngoding

DBMS (Database Management System) adalah perangkat lunak yang dirancang untuk membuat, mengelola, mengakses, dan mengontrol data dalam sebuah basis data. Secara sederhana, DBMS itu seperti manajer gudang yang tahu persis di mana setiap barang disimpan, siapa yang boleh mengambilnya, dan bagaimana cara merapikannya.

Menurut Silberschatz, Korth, dan Sudarshan dalam Database System Concepts (7th ed., McGraw-Hill, 2019), DBMS adalah kumpulan data yang saling berhubungan beserta sekumpulan program untuk mengakses data tersebut. Tujuan utamanya adalah menyediakan cara yang nyaman dan efisien untuk menyimpan serta mengambil informasi dari database.

🔧 Fungsi Utama DBMS
1
Data Definition — Mendefinisikan struktur data (nama tabel, kolom, tipe data) melalui DDL.
2
Data Manipulation — Operasi CRUD (Create, Read, Update, Delete) melalui DML.
3
Data Security & Integrity — Melindungi data dari akses tidak sah & menjaga konsistensinya.
4
Concurrency Control — Mengatur akses data secara bersamaan oleh banyak pengguna.
5
Backup & Recovery — Memulihkan data ketika terjadi kegagalan sistem.

Ada banyak pilihan DBMS di luar sana. Berikut perbandingan singkat beberapa yang paling populer:

DBMS Jenis Keunggulan Cocok Untuk
MySQL Relasional Open source, cepat, ekosistem besar Web app, SIMRS
MariaDB Relasional Fork MySQL, lebih cepat, community-driven Web app, enterprise
PostgreSQL Relasional Fitur lengkap, ACID compliant Analitik, kompleks
SQLite Relasional Ringan, serverless, mudah Belajar, mobile app

🐬 MySQL vs MariaDB: Mana yang Lebih Oke?

MySQL pertama kali dirilis oleh MySQL AB pada tahun 1995 dan saat ini dikembangkan oleh Oracle Corporation. Sedangkan MariaDB adalah fork (cabang) dari MySQL yang dibuat oleh Michael Widenius — sang co-founder MySQL sendiri — pada 2009, setelah Oracle mengakuisisi Sun Microsystems. Nama MariaDB diambil dari nama putri Widenius, Maria (sementara MySQL dari nama putri lainnya, My).

Kabar baiknya: sintaks SQL-nya hampir identik. Jadi kalau kamu belajar DDL di MySQL, bisa langsung dipake di MariaDB. Di banyak hosting lokal Indonesia dan SIMRS, MariaDB justru lebih umum dipakai karena performanya.

🛠️
Tips Praktikum

Untuk praktikum di kampus atau laptop, kamu bisa install XAMPP (sudah include MySQL/MariaDB + phpMyAdmin) atau HeidiSQL sebagai GUI client. Kalau mau yang lebih ringan, pakai DBeaver Community Edition — gratis dan mendukung semua DBMS populer.

📐 DDL (Data Definition Language): Arsitek-nya Database

Kalau kamu kenal istilah "SQL sublanguage", maka DDL (Data Definition Language) adalah bagian dari SQL yang bertugas mendefinisikan struktur atau skema database. Ibaratnya, DDL itu adalah arsitek yang menggambar denah gedung sebelum pembangunan dimulai — bukan yang mengisi furniturnya.

Menurut Ramakrishnan & Gehrke dalam Database Management Systems (3rd ed., McGraw-Hill, 2003), DDL digunakan untuk membuat, mengubah, dan menghapus objek-objek database seperti tabel, indeks, dan view. Perintah DDL utama yang wajib kamu kuasai adalah: CREATE DATABASE, CREATE TABLE, ALTER TABLE, dan DROP.

📊 Kategori Sub-Bahasa SQL
DDL — CREATE, ALTER, DROP, TRUNCATE
DML — SELECT, INSERT, UPDATE, DELETE
DCL — GRANT, REVOKE
TCL — COMMIT, ROLLBACK, SAVEPOINT
* Di artikel ini kita fokus pada DDL. DML akan dibahas di sesi berikutnya. 😉

1️⃣ CREATE DATABASE — Bikin "Folder" Datamu

Sebelum bisa bikin tabel apapun, kamu harus punya database dulu. Anggap saja database itu seperti folder besar di Google Drive-mu khusus untuk data rekam medis. Perintahnya sederhana banget:

SQL — MySQL / MariaDB
-- Membuat database baru untuk sistem rekam medis
CREATE DATABASE rekam_medis_rs;

-- Atau gunakan IF NOT EXISTS agar tidak error jika sudah ada
CREATE DATABASE IF NOT EXISTS rekam_medis_rs
  CHARACTER SET utf8mb4
  COLLATE utf8mb4_unicode_ci;

-- Berpindah ke database tersebut
USE rekam_medis_rs;
💬 Kenapa utf8mb4? Karena utf8mb4 mendukung semua karakter Unicode termasuk aksara khusus dan karakter extended. utf8 biasa di MySQL hanya mendukung 3 byte, jadi bisa bermasalah dengan karakter tertentu.

2️⃣ CREATE TABLE — Desain Struktur Datamu

Ini adalah perintah DDL yang paling sering kamu pakai. CREATE TABLE digunakan untuk membuat tabel baru beserta kolom-kolomnya, tipe data, dan constraint-nya. Analoginya seperti membuat formulir rekam medis — kamu tentukan dulu kolom apa saja yang perlu diisi.

SQL — Tabel Pasien Rekam Medis
CREATE TABLE pasien (
  no_rm         VARCHAR(10)   NOT NULL PRIMARY KEY,
  nama_lengkap  VARCHAR(100)  NOT NULL,
  jenis_kelamin ENUM('L','P')    NOT NULL,
  tanggal_lahir DATE          NOT NULL,
  alamat        TEXT,
  no_telepon    VARCHAR(15),
  created_at    DATETIME      DEFAULT CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

-- Tabel kunjungan dengan FOREIGN KEY
CREATE TABLE kunjungan (
  id_kunjungan  INT           AUTO_INCREMENT PRIMARY KEY,
  no_rm         VARCHAR(10)   NOT NULL,
  tanggal       DATE          NOT NULL,
  diagnosis     VARCHAR(200),
  dokter        VARCHAR(100)  NOT NULL,
  FOREIGN KEY (no_rm) REFERENCES pasien(no_rm)
    ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

Tipe data yang sering dipakai dalam konteks rekam medis dan sistem informasi kesehatan:

Tipe Data Keterangan Contoh Penggunaan
INTBilangan bulatid_pasien, umur
VARCHAR(n)String panjang variabel max n karakternama, no_rm, telepon
DATETanggal (YYYY-MM-DD)tanggal_lahir, tgl_masuk
DATETIMETanggal + waktu lengkapcreated_at, updated_at
TEXTTeks panjang tak terbatascatatan, diagnosis, alamat
DECIMAL(m,d)Bilangan desimal dengan presisibiaya, berat_badan, suhu
ENUMNilai dari daftar pilihan tetapjenis_kelamin, goldar, status

3️⃣ ALTER TABLE — Edit Struktur Tabel yang Sudah Ada

Kadang kebutuhan berubah — misalnya kamu lupa tambahkan kolom email di tabel pasien, atau tiba-tiba perlu memperbesar ukuran kolom nama. Nah, ALTER TABLE adalah solusinya — tanpa perlu menghapus dan membuat ulang tabel, sehingga data kamu tetap aman.

SQL — ALTER TABLE Contoh Lengkap
-- 1. Menambah kolom baru
ALTER TABLE pasien
  ADD COLUMN email VARCHAR(100);

-- 2. Menambah kolom di posisi tertentu
ALTER TABLE pasien
  ADD COLUMN nik VARCHAR(16) AFTER no_rm;

-- 3. Mengubah tipe data kolom
ALTER TABLE pasien
  MODIFY COLUMN nama_lengkap VARCHAR(150) NOT NULL;

-- 4. Rename kolom (MySQL 8+ / MariaDB 10.5+)
ALTER TABLE pasien
  RENAME COLUMN no_telepon TO telepon;

-- 5. Menghapus kolom
ALTER TABLE pasien
  DROP COLUMN email;

-- 6. Menambah INDEX untuk performa query
ALTER TABLE pasien
  ADD INDEX idx_nama (nama_lengkap);
Insight Penting

Saat menggunakan ALTER TABLE pada tabel yang berisi jutaan baris data (seperti di SIMRS besar), operasi ini bisa memakan waktu lama dan bahkan mengunci tabel (table lock) sehingga operasi lain terhambat. Solusinya: gunakan pt-online-schema-change dari Percona Toolkit, atau fitur Online DDL di MySQL 8+/MariaDB 10.3+. Ini penting kamu tahu saat nanti kerja di fasilitas kesehatan!

4️⃣ DROP — Hapus dengan Penuh Kesadaran ⚠️

DROP adalah perintah DDL paling "berbahaya" karena sifatnya irreversible — tidak bisa di-undo! Kalau kamu DROP tabel, semua data di dalamnya ikut hilang. Makanya ada meme developer yang bilang: "Sebelum DROP, berdoa dulu..." 😅

⚠️ DANGER ZONE — Pastikan sudah backup!
-- Menghapus TABEL (data ikut hilang!)
DROP TABLE kunjungan;

-- Aman: cek dulu apakah tabel ada
DROP TABLE IF EXISTS kunjungan;

-- Menghapus DATABASE seluruhnya (semua tabel ikut hilang!)
DROP DATABASE rekam_medis_rs;
DROP DATABASE IF EXISTS rekam_medis_rs;

-- Alternatif: TRUNCATE (hapus semua data, tapi struktur tabel tetap)
TRUNCATE TABLE kunjungan;
-- Note: TRUNCATE lebih cepat dari DELETE, tapi tidak bisa di-rollback

Biar nggak bingung, ini perbedaan DROP, TRUNCATE, dan DELETE:

Perintah Hapus Data? Hapus Struktur? Bisa Rollback? Kategori
DROPYaYaTidakDDL
TRUNCATEYa (semua baris)TidakTidak*DDL
DELETEYa (bisa kondisional)TidakYaDML

🏥 Studi Kasus: Skema Database Rekam Medis Mini

Sekarang saatnya kita praktikkan semua yang sudah dipelajari dengan membuat skema mini database rekam medis. Anggap saja ini tugas pertamamu sebagai calon petugas RMIK yang melek IT!

📋 Spesifikasi Database: simrs_mini
Entitas yang perlu dibuat: pasien, dokter, poliklinik, kunjungan
Pasien
no_rm, nama, NIK, tgl_lahir, alamat, telepon
Dokter
id_dokter, nama, spesialisasi, SIP
Poliklinik
id_poli, nama_poli, lantai, telp
Kunjungan
id_kunjungan, no_rm, id_dokter, id_poli, tgl, diagnosa, icd10
SQL — Skema Lengkap SIMRS Mini
-- ==========================================
-- SIMRS MINI - Database Rekam Medis
-- Dibuat untuk praktikum Basis Data D3 RMIK
-- ==========================================

CREATE DATABASE IF NOT EXISTS simrs_mini
  CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

USE simrs_mini;

-- Tabel Poliklinik (dibuat duluan karena direferensikan)
CREATE TABLE poliklinik (
  id_poli    INT         AUTO_INCREMENT PRIMARY KEY,
  nama_poli  VARCHAR(80) NOT NULL UNIQUE,
  lantai     TINYINT     DEFAULT 1,
  telepon    VARCHAR(15)
);

-- Tabel Dokter
CREATE TABLE dokter (
  id_dokter     INT          AUTO_INCREMENT PRIMARY KEY,
  nama_dokter   VARCHAR(100) NOT NULL,
  spesialisasi  VARCHAR(80),
  no_sip        VARCHAR(30)  UNIQUE
);

-- Tabel Pasien
CREATE TABLE pasien (
  no_rm          VARCHAR(10)  PRIMARY KEY,
  nik            CHAR(16)     UNIQUE,
  nama_lengkap   VARCHAR(100) NOT NULL,
  jenis_kelamin  ENUM('L','P')  NOT NULL,
  tanggal_lahir  DATE         NOT NULL,
  golongan_darah ENUM('A','B','AB','O','Tidak Diketahui')
                              DEFAULT 'Tidak Diketahui',
  alamat         TEXT,
  telepon        VARCHAR(15),
  created_at     TIMESTAMP    DEFAULT CURRENT_TIMESTAMP
);

-- Tabel Kunjungan (tabel transaksi utama)
CREATE TABLE kunjungan (
  id_kunjungan   BIGINT      AUTO_INCREMENT PRIMARY KEY,
  no_rm          VARCHAR(10) NOT NULL,
  id_dokter      INT         NOT NULL,
  id_poli        INT         NOT NULL,
  tgl_kunjungan  DATE        NOT NULL,
  kode_icd10     VARCHAR(10),
  diagnosis      TEXT,
  FOREIGN KEY (no_rm)    REFERENCES pasien(no_rm)     ON UPDATE CASCADE,
  FOREIGN KEY (id_dokter) REFERENCES dokter(id_dokter)  ON UPDATE CASCADE,
  FOREIGN KEY (id_poli)   REFERENCES poliklinik(id_poli) ON UPDATE CASCADE
);

-- Tambah kolom yang terlupa
ALTER TABLE kunjungan
  ADD COLUMN berat_badan DECIMAL(5,2) AFTER tgl_kunjungan;

-- Hapus tabel sementara jika tidak diperlukan
DROP TABLE IF EXISTS tabel_sementara;
🚨
Peringatan Penting

Perintah DDL (CREATE, ALTER, DROP) di MySQL/MariaDB bersifat auto-commit — artinya langsung tersimpan tanpa bisa di-rollback meskipun kamu belum COMMIT. Berbeda dengan DML. Jadi selalu backup dulu sebelum menjalankan DDL di database produksi. Di dunia SIMRS, satu kesalahan DROP TABLE bisa mengakibatkan kehilangan data rekam medis ribuan pasien.

Best Practice DDL
  • Selalu gunakan IF NOT EXISTS / IF EXISTS untuk menghindari error tak terduga
  • Tentukan charset=utf8mb4 dari awal agar tidak repot migrasi nanti
  • Gunakan FOREIGN KEY untuk menjaga integritas data relasional
  • Dokumentasikan skema database dengan komentar SQL (-- komentar)
  • Selalu backup sebelum ALTER/DROP di database produksi!

📚 Referensi

  1. Silberschatz, A., Korth, H. F., & Sudarshan, S. (2019). Database System Concepts (7th ed.). McGraw-Hill Education.
  2. Ramakrishnan, R., & Gehrke, J. (2003). Database Management Systems (3rd ed.). McGraw-Hill.
  3. Schwartz, B., Zaitsev, P., & Tkachenko, V. (2012). High Performance MySQL (3rd ed.). O'Reilly Media.
  4. Oracle Corporation. (2024). MySQL 8.0 Reference Manual. Tersedia di: https://dev.mysql.com/doc/refman/8.0/en/
  5. MariaDB Foundation. (2024). MariaDB Knowledge Base — DDL Statements. Tersedia di: https://mariadb.com/kb/en/data-definition/
  6. DB-Engines. (2024). DB-Engines Ranking. Tersedia di: https://db-engines.com/en/ranking
  7. Kementerian Kesehatan RI. (2022). Peraturan Menteri Kesehatan Nomor 24 Tahun 2022 tentang Rekam Medis. Jakarta: Kemenkes RI.
🏁 Kesimpulan

Kamu Sudah Selangkah Lebih Maju!

Di artikel ini, kamu sudah belajar tentang DBMS sebagai fondasi sistem informasi, mengenal MySQL dan MariaDB sebagai DBMS pilihan, serta memahami empat perintah DDL utama yang wajib dikuasai oleh praktisi RMIK:

CREATE DATABASE CREATE TABLE ALTER TABLE DROP

Dengan pemahaman DDL ini, kamu sudah bisa membuat skema database dari nol — termasuk untuk konteks RMIK yang langsung relevan di dunia kerjamu nanti. Next step: pelajari DML (INSERT, SELECT, UPDATE, DELETE) untuk mulai mengisi dan mengolah data di tabel yang sudah kamu buat!

💬

Gimana, Udah Nyoba Sendiri?

Coba langsung praktikkan contoh-contoh SQL di atas di XAMPP atau HeidiSQL kamu. Kalau ada yang bingung, error-nya apa, atau ada pertanyaan seputar materi basis data lainnya — tulis di kolom komentar! Aku akan bantu jawab. 🙌

👍 Like artikel ini
🔗 Share ke teman sekelas
🔔 Subscribe blog ini

Next artikel: DML — INSERT, SELECT, UPDATE, DELETE dengan Studi Kasus SIMRS. Stay tuned!

#DBMS #MySQL #MariaDB #DDL #BasisData #RMIK #SistemInformasi #SQL

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