MySQL ORACLE MariaDB LANGKAH 2 — BUAT & PILIH DATABASE
(Pastikan XAMPP terinstall di C:\xampp. Jika tidak, sesuaikan path.) 3) Buat database (jika belum ada)
CREATE DATABASE IF NOT EXISTS pertanahan;
Opsi Kepanjangan Fungsi
Penjelasan:
-u user Login memakai user tertentu • Membuat database bernama "pertanahan".
• "IF NOT EXISTS" mencegah error jika database sudah ada.
-p password Meminta password saat login
4) Pilih database untuk digunakan
-h host Menentukan server MySQL yang dituju
USE pertanahan;
-P port Menentukan nomor port server
Penjelasan:
-D database Membuka database langsung saat login
• “USE" menentukan database aktif untuk perintah SQL
-e execute Menjalankan query langsung dari CMD selanjutnya.
• Setelah ini semua CREATE/INSERT/SELECT akan berlaku
======================================== pada database pertanahan.
LANGKAH 1 — BUKA CMD & MASUK MARIADB ========================================
1) Masuk folder MySQL/MariaDB LANGKAH 3 — BUAT SEMUA TABEL + RELASI
• cd C:\xampp\mysql\bin 5) Buat tabel Pemilik
• cd C:\Program Files\xampp\mysql\bin
CREATE TABLE Pemilik (
• cd D:\Program Files (x86)\xampp\mysql\bin
id_pemilik INT AUTO_INCREMENT PRIMARY KEY,
Penjelasan:
nama VARCHAR(100) NOT NULL,
• "cd" = change directory (pindah folder). nik VARCHAR(20) UNIQUE NOT NULL,
• Kita masuk ke folder ini karena di sini terdapat file alamat TEXT
[Link] yang menjalankan client MariaDB/MySQL. );
• Jalankan perintah ini di Command Prompt (CMD) Windows. Penjelasan:
2) Login ke MariaDB/MySQL • Tabel menyimpan data pemilik tanah.
• id_pemilik: nomor unik tiap pemilik, otomatis bertambah.
• mysql -u root -p • nik diberi UNIQUE agar tidak ada duplikasi identitas.
• mysql -u root -h localhost -p • NOT NULL dipakai untuk kolom penting agar tidak dibiarkan
Fungsi sama, localhost hanya lebih eksplisit/expose. kosong.
Penjelasan: 6) Buat tabel BidangTanah
• "mysql" memanggil client database. CREATE TABLE BidangTanah (
• "-u root" berarti login sebagai user root. id_bidang INT AUTO_INCREMENT PRIMARY KEY,
• "-p" menandakan akan diminta password; jika root tidak nomor_bidang VARCHAR(50) NOT NULL UNIQUE,
pakai password, tekan Enter ketika diminta. luas DECIMAL(10,2) NOT NULL,
• Setelah berhasil, prompt akan berubah ke MariaDB lokasi TEXT,
[(none)]> atau MariaDB [pertanahan0]> bila sudah memilih id_pemilik INT,
DB. FOREIGN KEY (id_pemilik) REFERENCES Pemilik(id_pemilik)
======================================== );
Penjelasan: • id_bidang memastikan transaksi dicatat untuk bidang yang
benar.
• Mewakili masing-masing bidang tanah.
• nomor_bidang: kode unik bidang (mis. MDN-019). ========================================
• luas: pakai DECIMAL(10,2) untuk menyimpan angka desimal
(mis. 150.50). LANGKAH 4 — INPUT DATA BARU (DATA TERBARU)
• id_pemilik: foreign key yang mengaitkan bidang ke pemilik. 9) Masukkan data Pemilik
Ini menjaga integritas data — hanya pemilik terdaftar yang
bisa dikaitkan. INSERT INTO Pemilik (nama, nik, alamat) VALUES
('Arya', '1234567890123456', 'Jl. Cemara No. 1'),
7) Buat tabel DokumenLegal ('Kesit', '2345678901234567', 'Jl. Keadilan No. 053'),
CREATE TABLE DokumenLegal ( ('Danuarta', '3456789012345678', 'Jl. Krakatau No. 2');
id_dokumen INT AUTO_INCREMENT PRIMARY KEY, Penjelasan:
jenis_dokumen VARCHAR(50) NOT NULL, • Menambahkan 3 pemilik. id_pemilik akan otomatis jadi 1,2,3
nomor_dokumen VARCHAR(50) NOT NULL, berurutan.
id_bidang INT,
tanggal_terbit DATE, 10) Masukkan data BidangTanah
FOREIGN KEY (id_bidang) REFERENCES BidangTanah(id_bidang) INSERT INTO BidangTanah (nomor_bidang, luas, lokasi, id_pemilik)
); VALUES
('MDN-019', 150.50, 'Desa Tembung', 1),
Penjelasan: ('MDN-003', 200.75, 'Desa Sampali', 2),
• Menyimpan dokumen seperti SHM, SKPT, dll. ('MDN-004', 180.00, 'Desa Saentis', 3);
• id_bidang menghubungkan dokumen ke bidang yang sesuai. Penjelasan:
• Satu bidang bisa punya banyak dokumen (riwayat). • Mengaitkan tiap bidang ke pemilik via id_pemilik.
8) Buat tabel Transaksi • Pastikan id_pemilik yang dipakai memang ada (1..3).
CREATE TABLE Transaksi ( 11) Masukkan data DokumenLegal
id_transaksi INT AUTO_INCREMENT PRIMARY KEY, INSERT INTO DokumenLegal (jenis_dokumen, nomor_dokumen,
jenis_transaksi VARCHAR(50) NOT NULL, id_bidang, tanggal_terbit) VALUES
tanggal DATE NOT NULL, ('SHM', 'SHM-003', 2, '2015-03-19'),
id_bidang INT, ('SHM', 'SHM-019', 1, '2020-03-19'),
pemilik_lama INT, ('SKPT', 'SKPT-004', 3, '2025-03-04');
pemilik_baru INT, Penjelasan:
FOREIGN KEY (id_bidang) REFERENCES BidangTanah(id_bidang),
FOREIGN KEY (pemilik_lama) REFERENCES Pemilik(id_pemilik), • Menambah dokumen untuk bidang 1,2,3. Tanggal harus
FOREIGN KEY (pemilik_baru) REFERENCES Pemilik(id_pemilik) format YYYY-MM-DD.
);
12) Masukkan data Transaksi
Penjelasan: INSERT INTO Transaksi (jenis_transaksi, tanggal, pemilik_lama,
pemilik_baru, id_bidang)
• Menyimpan riwayat perpindahan hak (jual beli, waris,
VALUES
hibah).
('Jual Beli', '2025-02-15', 1, 2, 1),
• pemilik_lama & pemilik_baru keduanya mengacu ke tabel
('Hibah', '2025-03-01', 2, 3, 2),
Pemilik.
('Waris', '2025-03-20', 3, 1, 3);
Penjelasan: LANGKAH 7 — QUERY JOIN (MENYAJIKAN DATA TERKAIT)
• Dua transaksi untuk bidang id 1: 16) Pemilik + BidangTanah (nama pemilik + lahan)
• Pertama: Waris (1 → 2) pada 2021-05-10.
SELECT
• Kedua: Jual Beli (2 → 3) pada 2022-11-03.
[Link],
• Urutan transaksi logis: pemilik lama berubah sesuai
b.nomor_bidang,
riwayat.
[Link]
======================================== FROM Pemilik p
JOIN BidangTanah b ON p.id_pemilik = b.id_pemilik;
LANGKAH 5 — CEK TABEL & STRUKTUR
13) Lihat daftar tabel Penjelasan:
SHOW TABLES; • JOIN menampilkan relasi pemilik ↔ bidang: cocok untuk
laporan siapa punya bidang apa.
Penjelasan:
17) BidangTanah + DokumenLegal (dokumen tiap bidang)
• Menampilkan tabel dalam database pertanahan.
SELECT
14) Lihat struktur tiap tabel b.nomor_bidang,
DESCRIBE Pemilik; d.jenis_dokumen,
DESCRIBE BidangTanah; d.nomor_dokumen,
DESCRIBE DokumenLegal; d.tanggal_terbit
DESCRIBE Transaksi; FROM BidangTanah b
JOIN DokumenLegal d ON b.id_bidang = d.id_bidang;
Penjelasan:
Penjelasan:
• Menampilkan nama kolom, tipe data, jika boleh NULL, dan
kunci (PRI/MUL/UNI). • Mengetahui dokumen apa yang terkait dengan setiap
bidang.
========================================
18) Transaksi + Pemilik Lama & Baru (semua transaksi)
LANGKAH 6 — TAMPILKAN SEMUA DATA (PENGECEKAN ISI)
SELECT
15) Tampilkan seluruh isi tabel t.jenis_transaksi,
[Link],
SELECT * FROM Pemilik;
[Link] AS pemilik_lama,
SELECT * FROM BidangTanah;
[Link] AS pemilik_baru
SELECT * FROM DokumenLegal;
FROM Transaksi t
SELECT * FROM Transaksi;
JOIN Pemilik pl ON t.pemilik_lama = pl.id_pemilik
JOIN Pemilik pb ON t.pemilik_baru = pb.id_pemilik;
Penjelasan:
• Pastikan data yang dimasukkan tampil dan benar (cek Penjelasan:
nomor_bidang, relasi id_pemilik, tanggal).
• Menampilkan riwayat perpindahan hak dengan nama
======================================== pemilik lama & baru agar mudah dibaca.
========================================
LANGKAH 8 — JOIN TOTAL (RINGKASAN SEMUA TABEL) Catatan tambahan:
19) Gabungan ringkasan bidang + pemilik + dokumen • Jika muncul error FOREIGN KEY (mis. ERROR 1452), artinya
karena mencoba memasukkan data yang mengacu ke id
SELECT
yang belum ada. Pastikan urutan INSERT benar: masukkan
b.nomor_bidang,
Pemilik dulu → Bidang → Dokumen/Transaksi.
[Link],
• Jika ingin menghapus tabel dan mulai ulang: gunakan DROP
[Link] AS pemilik,
TABLE nama_tabel; (hati-hati, ini menghapus data).
d.jenis_dokumen,
• Backup: gunakan mysqldump untuk menyimpan salinan
d.nomor_dokumen,
database sebelum perubahan besar.
d.tanggal_terbit
FROM BidangTanah b
LEFT JOIN Pemilik p ON b.id_pemilik = p.id_pemilik
LEFT JOIN DokumenLegal d ON b.id_bidang = d.id_bidang;
Penjelasan:
• LEFT JOIN memastikan bidang tetap muncul walau belum
ada dokumen.
• Berguna untuk ringkasan laporan.
========================================
LANGKAH 9 — QUERY KHUSUS (RIWAYAT BIDANG TERTENTU)
20) Riwayat transaksi untuk bidang tertentu (mis. id_bidang =
1)
SELECT
t.jenis_transaksi,
[Link],
[Link] AS pemilik_lama,
[Link] AS pemilk_baru
FROM Transaksi t
JOIN Pemilik pl ON t.pemilik_lama = pl.id_pemilik
JOIN Pemilik pb ON t.pemilik_baru = pb.id_pemilik
WHERE t.id_bidang = 1;
Penjelasan:
• Ganti angka 1 dengan id_bidang lain untuk melihat riwayat
bidang lain.
• Untuk beberapa bidang sekaligus gunakan: WHERE
t.id_bidang IN (1,2,3);
========================================
SELESAI =====
SEKILAS TENTANG MySQL & MariaDB Tetapi Monty juga mengakui bahwa di TcX mereka memiliki banyak
library yang dimulai dengan prefix “My”—jadi namanya kebetulan
MySQL > Oracle menyatu.
• MySQL tidak menjadi MariaDB; MariaDB adalah fork Logo Lumba-Lumba “Sakila”
(cabang) dari MySQL yang dibuat oleh pengembang asli
MySQL. MySQL dikenal dengan logo lumba-lumba biru. Nama lumba-lumba
tersebut adalah Sakila, hasil kontes “Name the Dolphin”.
• Keduanya adalah sistem manajemen basis data relasional
(RDBMS) yang berbeda dengan sejarah awal yang sama, Pemenangnya: Ambrose Twebaze, programmer open-source dari
tetapi telah berevolusi secara terpisah sejak MariaDB Swaziland (Eswatini). Nama “Sakila” berasal dari bahasa Siswati,
dibuat sebagai respons terhadap akuisisi MySQL oleh bahasa lokal di wilayah tersebut.
Oracle Corporation. Michael "Monty" Widenius
• Asal: MariaDB dibuat oleh tim pengembang asli MySQL • My Widenius
setelah Oracle mengakuisisi MySQL.
• Maria Widenius
• Lisensi: MariaDB sepenuhnya bersifat open source (lisensi
GPL), sementara MySQL memiliki lisensi ganda. • Max Widenius
• Perbedaan: Karena perjalanannya yang berbeda, MariaDB 2. Pengertian MySQL
menawarkan peningkatan dalam hal kinerja, fitur, dan
• MySQL adalah sebuah DBMS (Database Management
arsitektur yang berbeda dari MySQL.
System) yang menggunakan bahasa SQL (Structured Query
• Kompatibilitas: MariaDB dibuat agar kompatibel dengan Language) sebagai dasar pengolahan datanya.
MySQL, yang berarti aplikasi atau konektor yang bekerja di
• MySQL digunakan di berbagai aplikasi, terutama website
MySQL umumnya juga dapat bekerja dengan MariaDB.
dan sistem dengan trafik tinggi.
1. MySQL AB dan Asal Nama MySQL
Sifat Lisensi MySQL//MySQL memiliki dua lisensi:
• Pada tahun 1995, perusahaan TcX—tempat MySQL pertama
• Free Software (GNU) → bebas digunakan siapa saja.
kali dikembangkan—resmi berganti nama menjadi MySQL
AB. • Shareware / Commercial → versi berbayar dengan fitur
• Huruf “AB” pada nama perusahaan adalah singkatan dari enterprise.
“Aktiebolag”, yaitu istilah Swedia yang berarti Perseroan Latar Belakang Teknologi
Terbatas (PT).
MySQL adalah penerus sistem berbasis SQL lainnya. Dikembangkan
Pendiri MySQL AB oleh TcX untuk menangani:
MySQL AB didirikan oleh tiga orang: • 40 database
• David Axmark (Swedia) • 10.000 tabel
• Allan Larsson (Swedia) • 7 juta baris data
• Michael "Monty" Widenius (Finlandia) Itu adalah beban yang harus dilayani oleh TcX pada tahun 1990-an.
Sekarang teknologinya sudah jauh berkembang.
Asal Nama “MySQL”
• Kata “My” berasal dari nama anak perempuan Monty: My MySQL menggunakan konsep relational database, yaitu data disusun
dalam:
Widenius.
• Tabel → berisi struktur data • cocok untuk aplikasi real-time
• Kolom → atribut data 4. Masa Depan MySQL
• Baris → isi/record data • Saat ini MySQL dimiliki oleh Oracle Corporation (diakuisisi
tahun 2010).
• MySQL menjadi penghubung antara aplikasi dan database
server. • Oracle berjanji bahwa MySQL tetap akan tersedia versi
gratisnya.
3. Alasan Mengapa Menggunakan MySQL
Tetapi muncul pertanyaan:
1) Keamanan Data. MySQL terkenal stabil dan aman.
• Apakah ke depannya MySQL akan tetap gratis?
Digunakan oleh platform besar seperti:
• Apakah fitur-fitur tertentu akan menjadi berbayar?
• WordPress
Karena alasan inilah Monty (pendiri MySQL) mulai mengembangkan
• Facebook
sistem baru:
• Twitter
• MariaDB — Generasi Baru Open-Source MySQL
• Joomla
• MariaDB dibuat oleh Monty Widenius sebagai bentuk
• Drupal “penyelamatan” MySQL agar tetap open-source penuh.
Versi terbaru mendukung: Asal Nama MariaDB
• transaction processing (ACID) • Nama “Maria” berasal dari nama anak Monty yang lain.
• keamanan data tinggi Hubungan MySQL dan MariaDB
• reliability untuk e-commerce & sistem keuangan MySQL: Dikembangkan Oracle / Ada versi gratis + enterprise //
Digunakan di banyak perusahaan besar /// Fokus ke stabilitas
2. Open Source enterprise
• MySQL dapat digunakan secara bebas karena open-source. MariaDB: Dikembangkan komunitas + Monty Program AB / 100%
• Memiliki dokumentasi sangat lengkap dan komunitas besar. open-source // Dipakai di Linux, XAMPP, cPanel /// Fokus ke
performa & transparansi kode
Keuntungan:
MariaDB adalah pengganti langsung MySQL
• gratis
• Sintaks sama
• banyak tutorial
• Struktur data sama
• mudah diintegrasikan ke berbagai aplikasi
• Query sama
3. Performa Tinggi
• Tabel, relasi, index sama
MySQL dirancang untuk kecepatan:
• Biasanya drop-in replacement → bisa langsung
• mampu menangani jutaan query per hari menggantikan MySQL
• stabil untuk trafik tinggi Mengapa XAMPP menggunakan MariaDB, bukan MySQL?
• memiliki sistem cache yang efisien • Karena lisensi MySQL berubah sejak diambil alih Oracle →
tidak sepenuhnya open-source.
• MariaDB lebih aman dan terbuka bagi developer. Ref:
Kesimpulan Penting tentang MySQL & MariaDB Informasi / Fakta Sumber / Link
1. MariaDB adalah penerus MySQL yang sepenuhnya open-source MySQL Reference Manual —
MySQL: nama berasal dari nama
• MySQL masih digunakan, tetapi beberapa fitur enterprise “History of MySQL” (MySQL
putri Monty (“My”)
dikelola Oracle. Developer Zone)
2. Secara praktis, MariaDB = MySQL Fakta bahwa MySQL AB didirikan oleh Halaman MySQL AB / sejarah
Michael “Monty” Widenius, David MySQL di Wikipedia
• Perintah sama
Axmark, Allan Larsson (Wikipedia)
• SQL sama
Alasan fork MySQL → lahirlah
• Cara membuat database sama MariaDB; MariaDB ditujukan menjaga Artikel perbandingan MariaDB
open source setelah akuisisi MySQL vs MySQL ([Link])
4. XAMPP memakai MariaDB
oleh Oracle/Sun
Jadi perintah dari tutorial MySQL tetap bisa digunakan di MariaDB
tanpa perubahan. Penjelasan bahwa MariaDB dibuat
Halaman About MariaDB
oleh pendiri dan pengembang asli
Tambahan: Kapan harus memilih MySQL? (resmi) ([Link])
MySQL, termasuk Monty Widenius
• Enterprise besar Perbandingan fitur, lisensi, dan
Artikel “MariaDB vs MySQL:
• Integrasi dengan Oracle kompatibilitas antara MySQL dan
The Ultimate Comparison”
MariaDB — kelebihan MariaDB pada
• Aplikasi komersial tingkat tinggi (DbVisualizer)
lisensi dan komunitas
Kapan harus memilih MariaDB?
• MySQL — Wikipedia (bahasa Inggris) Wikipedia
• Open-source
• MySQL — Wikipedia (bahasa Indonesia) Wikipedia
• Performansi cepat
• MySQL AB — Wikipedia Wikipedia+1
• Pengembangan aplikasi web
• MySQL History (resmi) — MySQL Reference Manual MySQL
• Saat menggunakan XAMPP, Laragon, cPanel, Linux server, Developer Zone
dsb.
• “MariaDB vs MySQL — Mana yang Harus Dipilih?” —
Status Pengembangan 2025- [Link] [Link]
• MySQL dan MariaDB terus berkembang hingga sekarang • “MariaDB vs MySQL: The Ultimate Comparison” —
[Link] DbVisualizer
• MariaDB sering lebih cepat merilis fitur baru dibanding
MySQL • Official About MariaDB — [Link] [Link]
• Artikel “Understanding MariaDB: The Powerful Fork of
MySQL” — CrestSolution blog Crest Infosolutions
Notes by: Arya Kesit Danuarta, [Link].
“the way of thingking is matters”