Setiap artikel yang Anda tulis di WordPress, setiap komentar pembaca yang masuk, setiap pengaturan tema yang Anda ubah — semuanya tersimpan di satu tempat. Sebuah database yang bekerja tanpa terlihat di balik halaman website. Saat halaman dimuat, WordPress mengambil data dari database itu, lalu menyusunnya jadi HTML yang Anda lihat di browser.
Database yang menggerakkan WordPress dan mayoritas aplikasi web di dunia adalah MySQL. MySQL adalah salah satu teknologi penyimpanan data yang paling banyak dipakai di internet. Artikel ini akan mengupas pengertian MySQL, cerita menarik di balik sejarahnya, konsep database relasional yang jadi fondasinya, contoh perintah SQL yang bisa langsung Anda coba, sampai panduan praktis kapan Anda perlu mendalaminya.
Apa Itu MySQL?
MySQL adalah sebuah Relational Database Management System (RDBMS) — sistem manajemen basis data relasional open source yang memakai SQL sebagai bahasa untuk berinteraksi dengannya. Istilah teknis ini kedengaran berat, jadi mari kita pecah satu per satu untuk pemula:
- Database — kumpulan data terorganisir, mirip seperti spreadsheet besar yang bisa diakses lewat program.
- Management System — perangkat lunak yang mengelola database tersebut, memungkinkan kita membuat, membaca, mengubah, dan menghapus data.
- Relational — data tidak hanya disimpan dalam satu tabel besar, tapi dipecah ke beberapa tabel yang bisa saling berhubungan.
Kalau Anda mengikuti seri ini, mari lanjutkan analogi rumah kita. HTML adalah rangka dan dinding, CSS adalah cat dan perabot, JavaScript adalah lampu otomatis di sisi penghuni, PHP adalah kontraktor di belakang layar yang menyiapkan ruangan. MySQL adalah gudang penyimpanan tempat semua barang berharga rumah disimpan rapi — daftar tamu, riwayat transaksi, foto kenangan, semua catatan keuangan. Kontraktor (PHP) yang akan keluar-masuk gudang ini untuk mengambil atau menyimpan barang sesuai kebutuhan.
Sejarah Singkat: Dari MySQL ke MariaDB
Cerita MySQL adalah salah satu kisah paling menarik di dunia open source. Penciptanya adalah Michael "Monty" Widenius, seorang programmer asal Finlandia yang mulai menyusun konsepnya saat masih remaja pada 1979.
Beberapa tonggak penting dalam perjalanan MySQL:
- Mei 1995: MySQL resmi dirilis oleh perusahaan MySQL AB yang didirikan Monty Widenius bersama David Axmark dan Allan Larsson. Nama "MySQL" diambil dari "My", nama panggilan putri Monty (yang bernama lengkap Maria), dipadu dengan singkatan SQL.
- Januari 2008: Sun Microsystems mengakuisisi MySQL AB seharga 1 miliar dolar.
- April 2009: Oracle mengakuisisi Sun Microsystems untuk 5,6 miliar dolar — otomatis MySQL berada di tangan Oracle.
- Oktober 2009: Monty memutuskan keluar dan mem-fork MySQL menjadi proyek baru bernama MariaDB. Alasannya: kekhawatiran bahwa Oracle akan mematikan model open source MySQL atau merubah lisensinya. Nama "Maria" diambil dari nama putri keduanya.
Cerita di atas menjelaskan kenapa hari ini, di banyak shared hosting Indonesia (terutama cPanel default modern), Anda akan menemui "MariaDB" padahal mencari MySQL. Secara teknis keduanya sangat kompatibel — kita akan bahas detailnya di section khusus nanti.
Sampai sekarang, baik MySQL (di bawah Oracle) maupun MariaDB (komunitas independen) sama-sama berkembang. Mayoritas pengguna umum tidak akan merasakan perbedaan signifikan dalam pemakaian harian.
Timeline horizontal sejarah MySQL
Apa Itu Database Relasional?
Untuk memahami MySQL lebih dalam, Anda perlu mengenal konsep database relasional. Data disimpan dalam tabel — mirip spreadsheet di Excel atau Google Sheets. Setiap tabel punya kolom (yang mendefinisikan jenis data, mis. nama, email, umur) dan baris (yang berisi data sebenarnya).
Contoh tabel users:
| id | nama | umur | |
|---|---|---|---|
| 1 | Budi | budi@example.com | 30 |
| 2 | Ani | ani@example.com | 25 |
| 3 | Cici | cici@example.com | 28 |
Kuncinya ada di kata "relasional" — tabel bisa berhubungan dengan tabel lain. Misalnya, kita punya tabel pesanan yang merujuk ke users:
| id | user_id | produk | total |
|---|---|---|---|
| 1 | 1 | Buku | 50000 |
| 2 | 1 | Pulpen | 15000 |
| 3 | 2 | Tas | 200000 |
Kolom user_id di tabel pesanan menunjuk ke kolom id di tabel users. Hubungan ini disebut foreign key. Dengan struktur ini, kita bisa tahu bahwa Budi (id=1) punya 2 pesanan, dan Ani (id=2) punya 1 pesanan, tanpa perlu mengulang data nama dan email di tabel pesanan.
Beberapa konsep dasar yang perlu Anda kenal:
- Database: kumpulan tabel yang saling berhubungan.
- Tabel: kumpulan data dalam baris dan kolom.
- Baris (row atau record): satu entri data.
- Kolom (column atau field): kategori data dengan tipe tertentu seperti
INT(angka),VARCHAR(teks),DATE(tanggal). - Primary Key: kolom yang membuat tiap baris unik. Biasanya
iddenganAUTO_INCREMENTagar otomatis bertambah. - Foreign Key: kolom yang menghubungkan ke tabel lain.
- Query: perintah yang Anda berikan ke MySQL.
Diagram dua tabel MySQL
SQL: Bahasa untuk Berbicara dengan MySQL
Untuk berinteraksi dengan MySQL, Anda menggunakan SQL (Structured Query Language). SQL bukan bahasa pemrograman umum seperti PHP atau JavaScript. Ia adalah bahasa khusus dengan fokus tunggal: operasi pada database.
Empat operasi paling sering dipakai dikenal dengan akronim CRUD:
- C — Create: membuat database, tabel, atau menambah data baru
- R — Read (SELECT): mengambil data
- U — Update: mengubah data yang sudah ada
- D — Delete: menghapus data
SQL adalah standar internasional — perintah SELECT * FROM users WHERE umur > 18; bekerja di MySQL, MariaDB, PostgreSQL, SQL Server, dan database relasional lainnya dengan sintaks yang sangat mirip. Karena itu belajar SQL adalah investasi yang berguna jangka panjang, tidak terbatas pada satu database saja.
Contoh Perintah SQL Lengkap
Mari kita lihat contoh utuh — dari membuat database baru, membuat tabel dengan relasi, sampai mengambil data gabungan dari dua tabel. Anda bisa mencoba kode-kode berikut lewat phpMyAdmin atau MySQL command line.
-- 1. Membuat database baru bernama toko_online
CREATE DATABASE toko_online;
USE toko_online;
-- 2. Membuat tabel users
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
nama VARCHAR(100) NOT NULL,
email VARCHAR(100) UNIQUE NOT NULL,
umur INT,
dibuat_pada TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
-- 3. Membuat tabel pesanan dengan foreign key ke users
CREATE TABLE pesanan (
id INT AUTO_INCREMENT PRIMARY KEY,
user_id INT NOT NULL,
produk VARCHAR(200) NOT NULL,
total DECIMAL(10, 2) NOT NULL,
status VARCHAR(20) DEFAULT 'pending',
dibuat_pada TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (user_id) REFERENCES users(id)
);
-- 4. Memasukkan beberapa user
INSERT INTO users (nama, email, umur) VALUES
('Budi', 'budi@example.com', 30),
('Ani', 'ani@example.com', 25),
('Cici', 'cici@example.com', 28);
-- 5. Memasukkan beberapa pesanan
INSERT INTO pesanan (user_id, produk, total) VALUES
(1, 'Buku Pemrograman', 75000),
(1, 'Pulpen Premium', 25000),
(2, 'Tas Laptop', 350000),
(3, 'Headset Bluetooth', 450000);
-- 6. Mengambil semua user
SELECT * FROM users;
-- 7. Mengambil user dengan filter — hanya yang umurnya 27 ke atas
SELECT nama, email FROM users WHERE umur >= 27;
-- 8. Mengambil pesanan beserta nama user yang membuatnya (JOIN)
SELECT users.nama, pesanan.produk, pesanan.total
FROM pesanan
JOIN users ON pesanan.user_id = users.id;
-- 9. Memperbarui data — ubah umur Budi
UPDATE users SET umur = 31 WHERE nama = 'Budi';
-- 10. Menghapus data — hapus semua pesanan yang sudah cancelled
DELETE FROM pesanan WHERE status = 'cancelled';Beberapa konsep penting yang muncul:
AUTO_INCREMENT: angka otomatis bertambah untuk primary key. Anda tidak perlu menentukan id secara manual saat memasukkan data baru.VARCHAR(100): tipe data untuk teks dengan maksimal 100 karakter.NOT NULL: kolom yang wajib diisi, tidak boleh kosong.UNIQUE: nilai tidak boleh duplikat (cocok untuk email).FOREIGN KEY ... REFERENCES: relasi formal antar tabel. MySQL akan menjaga konsistensi — Anda tidak bisa membuat pesanan dengan user_id yang tidak ada di tabel users.JOIN ... ON: menggabungkan data dari dua tabel berdasarkan kolom yang berhubungan.WHERE: filter kondisi untuk membatasi data yang diambil atau dimodifikasi.
Hasil query nomor 8 (JOIN) akan terlihat seperti ini:
| nama | produk | total |
|---|---|---|
| Budi | Buku Pemrograman | 75000.00 |
| Budi | Pulpen Premium | 25000.00 |
| Ani | Tas Laptop | 350000.00 |
| Cici | Headset Bluetooth | 450000.00 |
Inilah kekuatan database relasional — Anda menyimpan data terpecah secara efisien, lalu menggabungkannya saat diperlukan.
Visualisasi konsep JOIN
Storage Engine: InnoDB vs MyISAM
MySQL memiliki konsep unik bernama storage engine — mesin internal yang menentukan cara MySQL menyimpan dan mengelola data. Dua yang paling sering ditemui:
- InnoDB: storage engine default di MySQL modern. Mendukung transaksi (operasi yang either semua sukses atau semua dibatalkan), foreign keys, dan ACID compliance (jaminan konsistensi data). Pilihan tepat untuk hampir semua kasus modern.
- MyISAM: storage engine lama, lebih cepat untuk operasi baca-saja, tapi tidak mendukung transaksi atau foreign keys. Dulu default, sekarang jarang dipakai untuk proyek baru.
Untuk pemula, rekomendasinya sederhana: pakai InnoDB. Itu sudah default modern dan paling aman untuk hampir semua kebutuhan.
Tool untuk Berinteraksi dengan MySQL
Ada beberapa cara untuk mengeksekusi perintah SQL ke MySQL, dari yang paling teknis sampai yang ramah pemula:
- MySQL Command Line Client: terminal hitam putih, perintah langsung. Cepat dan efisien, tapi tidak ramah pemula yang belum terbiasa command line.
- phpMyAdmin: antarmuka web paling populer untuk mengelola MySQL/MariaDB. Hampir semua cPanel hosting sudah menyertakannya. Anda bisa membuat database, tabel, menjalankan query, sampai mengimpor backup lewat browser. Untuk tutorial setup praktis, lihat cara membuat database MySQL di cPanel.
- MySQL Workbench: GUI resmi Oracle. Lebih powerful, dengan fitur diagram relasi visual dan tools untuk DBA profesional.
- DBeaver, TablePlus, Sequel Ace, Navicat: GUI client populer lainnya yang dipakai developer. Masing-masing punya kekuatan tersendiri.
Untuk pemula yang baru mulai, phpMyAdmin di cPanel hosting biasanya jadi pilihan paling natural — sudah preinstall, ramah, dan tidak butuh setup tambahan.
MySQL dan WordPress: Pasangan yang Tak Terpisahkan
Untuk pembaca Indonesia, salah satu pemakaian MySQL yang paling sering ditemui adalah lewat WordPress. Setiap website WordPress menyimpan semua datanya di MySQL atau MariaDB. Beberapa tabel utama yang biasa Anda temui:
wp_posts: semua post, halaman, draft, hingga revisi tersimpan di sini.wp_users: daftar pengguna admin, editor, author, dan subscriber.wp_comments: semua komentar pengunjung.wp_options: pengaturan tema, plugin, URL situs, dan ratusan setting lainnya.wp_postmeta: metadata tambahan untuk setiap post (custom fields, SEO meta, dsb.).
Plus puluhan tabel lain yang ditambahkan oleh plugin. Setiap kali halaman WordPress dimuat, di balik layar PHP membuat puluhan query SQL ke MySQL untuk merakit halaman. Inilah mengapa hosting yang baik untuk WordPress harus punya konfigurasi MySQL yang optimal.
Mockup struktur database WordPress
LAMP, LEMP, dan Stack Modern
MySQL paling sering berpasangan dengan teknologi lain dalam apa yang disebut "stack" — kombinasi teknologi yang saling melengkapi:
- LAMP Stack: Linux + Apache + MySQL + PHP — kombinasi klasik yang sudah dipakai lebih dari dua dekade.
- LEMP Stack: Linux + Nginx (dibaca "engine-x", makanya E) + MySQL + PHP — varian modern dengan Nginx sebagai web server.
- MERN Stack: MongoDB + Express + React + Node.js — alternatif modern tanpa MySQL.
- JAMstack: JavaScript + APIs + Markup — pendekatan modern yang sering pakai database eksternal (bukan MySQL langsung).
MySQL paling natural berpasangan dengan PHP, makanya banyak tutorial mengajarkan keduanya bersamaan. Pembahasan lengkap tentang PHP ada di pengertian PHP.
MySQL vs MariaDB di Hosting Modern
Section yang penting untuk meluruskan kebingungan yang sering dialami pemula. Saat ini banyak shared hosting modern (termasuk cPanel default) memakai MariaDB sebagai pengganti MySQL — meski masih sering disebut "MySQL" oleh pengguna.
Pertanyaan-pertanyaan yang sering muncul:
Apakah perlu khawatir kalau hosting saya pakai MariaDB? Tidak. MariaDB dirancang sebagai drop-in replacement untuk MySQL. Perintah SQL hampir 100 persen sama. Aplikasi yang ditulis untuk MySQL akan berjalan di MariaDB tanpa perubahan.
Apakah WordPress, Laravel, dan aplikasi PHP lain akan jalan di MariaDB? Ya, dan sangat lancar. WordPress mendukung MariaDB resmi sejak versi 5.0. Banyak instalasi WordPress di Indonesia justru berjalan di MariaDB, bukan MySQL asli.
Bagaimana cara tahu hosting saya pakai MySQL atau MariaDB? Buka phpMyAdmin di cPanel Anda. Di bagian "Server" akan terlihat versi yang sedang berjalan, misalnya "10.6.12-MariaDB" atau "8.0.32-MySQL".
Untuk artikel ini, semua yang kami sebut "MySQL" juga berlaku untuk MariaDB kecuali disebutkan secara khusus.
MySQL vs Alternatif Database Lain
Ada banyak database di pasar. Berikut perbandingan singkat untuk membantu Anda memahami posisi MySQL:
| Database | Tipe | Cocok untuk |
|---|---|---|
| MySQL / MariaDB | Relasional | Web apps umum, WordPress, e-commerce |
| PostgreSQL | Relasional | Aplikasi enterprise, data dengan struktur kompleks |
| SQLite | Relasional (file) | Aplikasi mobile, embedded, single-user |
| MongoDB | NoSQL (dokumen) | Data tidak terstruktur, aplikasi real-time |
| Redis | NoSQL (key-value) | Cache, session, antrian pesan |
Untuk web apps berbasis PHP/WordPress di Indonesia, MySQL/MariaDB hampir selalu pilihan yang tepat. Database lain biasanya dipilih untuk kebutuhan khusus — PostgreSQL untuk perusahaan besar yang butuh fitur SQL standar lengkap, MongoDB untuk aplikasi yang struktur datanya berubah-ubah, Redis untuk caching dan performance.
Kelebihan MySQL
MySQL bertahan tiga dekade dan tetap dominan. Beberapa alasannya:
- Open source dan gratis: edisi Community sepenuhnya gratis dengan lisensi GPL.
- Performa baik untuk web apps tipikal.
- Komunitas besar: dokumentasi resmi lengkap, tutorial melimpah, jawaban di Stack Overflow hampir tidak terhitung.
- Standar de facto untuk WordPress dan shared hosting di seluruh dunia.
- Cross-platform: berjalan di Linux, Windows, dan macOS.
- Skalabilitas baik: mendukung replikasi, cluster, dan sharding untuk menangani traffic besar.
- Tersedia di hampir semua hosting termasuk layanan web hosting Indowebsite yang sudah include MySQL/MariaDB di semua paket.
Sisi Lain MySQL yang Perlu Anda Pertimbangkan
Tidak ada teknologi sempurna. MySQL juga punya keterbatasan yang perlu dipahami:
- Beberapa fitur SQL standar tidak diimplementasi 100 persen: misalnya window functions baru ada di MySQL 8.0, dan beberapa fitur PostgreSQL seperti tipe data array native belum tersedia.
- Storage engine MyISAM tidak transactional: kalau pilih MyISAM, Anda kehilangan jaminan konsistensi yang ada di InnoDB.
- Untuk data sangat besar (puluhan terabyte), PostgreSQL atau database cloud-native seperti BigQuery dan Snowflake lebih cocok.
- Kepemilikan Oracle menimbulkan pertanyaan tentang masa depan model open source MySQL — alasan inilah yang melahirkan MariaDB.
- Untuk data tidak terstruktur seperti dokumen JSON yang field-nya berubah-ubah, NoSQL seperti MongoDB lebih natural. MySQL 8 sudah mendukung tipe JSON, tapi tetap dirancang untuk data terstruktur.
Backup MySQL: Hal yang Sering Dilupakan Pemula
Data di database adalah aset paling berharga di website Anda. Kalau database hilang atau korup, artinya semua artikel WordPress, komentar pembaca, dan setting hilang. Backup wajib dilakukan rutin.
Cara backup MySQL di hosting:
- Via phpMyAdmin → Export: cara paling mudah untuk pemula. Pilih database, klik Export, simpan file
.sql. - Via Backup Wizard di cPanel: backup otomatis seluruh akun termasuk file dan database.
- Otomatis lewat plugin WordPress: UpdraftPlus, WP Vivid, atau Duplicator mengotomatisasi backup ke cloud storage.
- Via command line
mysqldump: untuk developer yang familiar dengan SSH.
Untuk panduan praktis backup di cPanel, lihat cara backup dan restore MySQL melalui Backup Wizard.
Kapan Anda Perlu Belajar MySQL, Kapan Tidak
Anda sebaiknya belajar MySQL kalau:
- Anda ingin develop aplikasi web custom dengan PHP, Node.js, Python, atau bahasa lain.
- Anda ingin mengkustom WordPress di level database (advanced).
- Anda berkarir sebagai data analyst yang perlu query database untuk laporan.
- Anda penasaran cara kerja aplikasi web di balik layar dan ingin memahami fondasinya.
Anda bisa menunda mempelajari MySQL kalau:
- Anda hanya mengelola WordPress lewat admin panel — semua interaksi dengan database sudah ditangani WordPress secara otomatis.
- Fokus Anda murni front-end (HTML, CSS, JavaScript) tanpa kebutuhan back-end.
- Tujuan utama Anda menjalankan bisnis, bukan menjadi praktisi teknis. Pilih solusi yang lebih hemat waktu seperti website builder atau jasa pembuatan website profesional.
Hubungan MySQL dengan PHP, HTML, CSS, dan JavaScript
Mari kita lengkapi analogi web stack yang sudah kita bangun di seri ini:
- HTML — rangka dan dinding rumah (struktur konten)
- CSS — cat dan susunan perabot (tampilan)
- JavaScript — lampu otomatis dan AC di sisi penghuni (perilaku client-side)
- PHP — kontraktor di belakang layar (logika server-side)
- MySQL — gudang penyimpanan data (database)
Saat sebuah halaman web dimuat, kontraktor (PHP) yang masuk ke gudang (MySQL) untuk mengambil data yang dibutuhkan, lalu menggabungkannya dengan rangka (HTML), cat (CSS), dan menyiapkan instruksi untuk lampu otomatis (JavaScript). Hasil akhirnya dikirim ke browser pengunjung sebagai halaman yang utuh.
Semua komponen ini perlu hidup di sebuah server agar bisa diakses dari mana saja. Layanan web hosting Indowebsite menyertakan MySQL, PHP, dan kebutuhan dasar lainnya dalam paket dasar — Anda tidak perlu setup terpisah.
Pertanyaan yang Sering Muncul
MySQL singkatan dari apa? "My" diambil dari nama panggilan putri Monty Widenius (Maria), digabung dengan SQL (Structured Query Language). Jadi MySQL bukan kependekan dari "MySymbol Query Language" atau yang lain.
Apa beda MySQL dan SQL? SQL adalah bahasa standar untuk berinteraksi dengan database relasional. MySQL adalah salah satu database yang mengimplementasi SQL. Jadi MySQL menggunakan SQL, tapi SQL bukan MySQL. Database relasional lain seperti PostgreSQL atau SQL Server juga memakai SQL dengan dialek mereka masing-masing.
Apa beda MySQL dan MariaDB? MariaDB adalah fork dari MySQL yang dibuat Monty Widenius (pencipta MySQL asli) pada 2009. Drop-in replacement — perintah SQL hampir 100 persen sama, aplikasi yang jalan di MySQL akan jalan di MariaDB. MariaDB lebih agresif menambah fitur baru, MySQL Oracle lebih konservatif.
Apa beda MySQL dan PostgreSQL? Keduanya database relasional, tapi PostgreSQL lebih ketat mengikuti standar SQL dan punya fitur lebih banyak (tipe data array, JSON yang lebih powerful, custom data types). MySQL lebih sederhana, lebih cepat dipelajari, dan jauh lebih populer di shared hosting.
Apakah MySQL berbayar? Versi Community Edition gratis dengan lisensi GPL. Oracle juga menjual MySQL Enterprise Edition dengan fitur premium, dukungan komersial, dan tools tambahan. Untuk mayoritas pengguna, versi Community sudah lebih dari cukup.
Apakah bisa pakai MySQL tanpa PHP?
Bisa. MySQL bisa diakses dari hampir semua bahasa pemrograman — Python (lewat library mysql-connector atau ORM), Node.js (lewat library mysql2), Java, Go, dan lainnya. PHP hanya pasangan klasik yang paling populer di lingkungan web.
Kesimpulan
MySQL adalah sistem manajemen database relasional open source yang menggerakkan mayoritas aplikasi web di dunia, termasuk hampir semua situs WordPress. Bersama PHP dalam LAMP stack, MySQL menyimpan data yang membuat website terasa hidup dan personal — dari artikel blog, komentar pembaca, sampai pengaturan tema yang Anda ubah di admin panel.
Bagi siapa pun yang ingin masuk ke pengembangan web back-end di Indonesia, mempelajari MySQL adalah salah satu investasi paling masuk akal. Pasar kerjanya luas, sumber belajar melimpah, dan hampir semua hosting sudah mendukungnya secara default.
Semoga artikel ini membantu.




