Bayangkan kamu mau buka toko online. Sebelum mulai jualan, apa yang pertama kamu siapkan? Betul — tempat penyimpanan barang. Di dunia nyata itu namanya gudang. Di dunia database, itu namanya... database dan tabel. Dan di artikel ke-2 dari seri Belajar Query SQL MySQL ini, kamu akan belajar persis cara membuatnya dari nol.
Perintah CREATE TABLE MySQL adalah salah satu perintah paling fundamental yang wajib kamu kuasai sebelum bisa melakukan apapun — menyimpan data produk, data pelanggan, atau data transaksi. Tanpa tabel, kamu tidak punya "laci" untuk menaruh data. Tanpa database, kamu bahkan tidak punya "lemari"-nya.
Di artikel ini kita akan bahas tuntas: cara membuat database baru, memahami tipe data MySQL yang umum, lalu membuat tabel lengkap untuk studi kasus toko online — dengan tabel produk, pelanggan, dan pesanan. Siap? Let's go! 🚀
MySQL pertama kali dirilis pada tahun 1995 dan hingga kini masih menjadi sistem manajemen database relasional (RDBMS) paling populer di dunia — digunakan oleh lebih dari 50% situs web top global, termasuk WordPress, Facebook (awal), dan Twitter (awal). Perintah CREATE TABLE yang kamu pelajari hari ini sudah digunakan miliaran kali di seluruh penjuru dunia!
1. Membuat Database Baru dengan CREATE DATABASE
Sebelum bisa membuat tabel, kamu butuh database — wadah utama yang akan menampung semua tabel kamu. Analoginya simpel: kalau tabel itu "laci", maka database itu "lemari"-nya. Dan CREATE DATABASE adalah cara kamu membeli lemari baru itu.
CREATE DATABASE nama_database; -- Lebih aman pakai IF NOT EXISTS agar tidak error CREATE DATABASE IF NOT EXISTS nama_database CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; -- Aktifkan database agar siap digunakan USE nama_database;
-- Buat database untuk toko online kita CREATE DATABASE IF NOT EXISTS toko_online CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; USE toko_online;
Selalu gunakan IF NOT EXISTS saat membuat database dan tabel. Tanpanya, MySQL akan lempar error jika nama database sudah ada. Dengan IF NOT EXISTS, script kamu aman dijalankan berulang kali!
2. Memahami CREATE TABLE MySQL dan Tipe Data
Kalau database itu "lemari", maka tabel adalah "lacinya". Setiap laci punya kategori tersendiri — ada laci untuk produk, laci untuk pelanggan, laci untuk pesanan. Dan dengan CREATE TABLE MySQL, kamu mendefinisikan secara detail: laci ini punya berapa slot? Slot pertama untuk apa? Tipe datanya angka atau teks?
Inilah mengapa memahami tipe data itu penting sebelum menulis satu baris CREATE TABLE pun.
CREATE TABLE IF NOT EXISTS nama_tabel ( nama_kolom1 tipe_data constraint, nama_kolom2 tipe_data constraint, -- ... PRIMARY KEY (kolom_kunci) -- Kolom penanda unik tiap baris ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
Untuk kolom harga atau nominal uang, JANGAN gunakan FLOAT atau DOUBLE! Tipe data ini bisa menghasilkan angka desimal yang tidak akurat akibat masalah floating point. Selalu gunakan DECIMAL(10,2) untuk menyimpan nilai uang dengan presisi sempurna.
3. Studi Kasus: CREATE TABLE MySQL untuk Toko Online
Teori cukup — sekarang kita langsung praktik! Kita akan buat 3 tabel utama untuk toko online sederhana. Ini adalah skema yang dipakai di hampir semua sistem e-commerce, jadi kalau kamu bisa membuatnya, kamu sudah punya pondasi yang sangat kuat.
CREATE TABLE IF NOT EXISTS produk ( id_produk INT AUTO_INCREMENT, nama VARCHAR(150) NOT NULL, harga DECIMAL(12,2) NOT NULL, stok INT DEFAULT 0, deskripsi TEXT, status ENUM('aktif','nonaktif') DEFAULT 'aktif', dibuat_pada DATETIME DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (id_produk) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE IF NOT EXISTS pelanggan ( id_pelanggan INT AUTO_INCREMENT, nama_lengkap VARCHAR(100) NOT NULL, email VARCHAR(100) NOT NULL UNIQUE, no_hp VARCHAR(20), alamat TEXT, daftar_pada DATETIME DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (id_pelanggan) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE IF NOT EXISTS pesanan ( id_pesanan INT AUTO_INCREMENT, id_pelanggan INT NOT NULL, id_produk INT NOT NULL, jumlah INT NOT NULL DEFAULT 1, total_harga DECIMAL(14,2) NOT NULL, status ENUM('pending','diproses', 'dikirim','selesai','batal') DEFAULT 'pending', dibuat_pada DATETIME DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (id_pesanan), FOREIGN KEY (id_pelanggan) REFERENCES pelanggan(id_pelanggan), FOREIGN KEY (id_produk) REFERENCES produk(id_produk) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
Perhatikan di tabel pesanan ada FOREIGN KEY. Ini adalah cara MySQL menghubungkan antar tabel — tabel pesanan "merujuk" ke tabel pelanggan dan produk. Topik ini akan kita bahas lebih dalam di seri artikel berikutnya, tapi kamu sudah bisa melihat konsepnya di sini!
🔢 Panduan Praktikum Step-by-Step
Buka MySQL Workbench, phpMyAdmin, atau terminal MySQL. Kalau pakai terminal, jalankan:
mysql -u root -pJalankan perintah CREATE DATABASE dan aktifkan dengan USE:
CREATE DATABASE IF NOT EXISTS toko_online; USE toko_online;
Copy-paste perintah CREATE TABLE untuk tabel produk di atas, lalu eksekusi.
Buat tabel pelanggan terlebih dahulu, baru kemudian tabel pesanan — karena pesanan merujuk ke kedua tabel itu.
Gunakan perintah berikut untuk melihat daftar tabel dan strukturnya:
SHOW TABLES; -- Lihat semua tabel DESCRIBE produk; -- Lihat struktur tabel produk SHOW CREATE TABLE produk; -- Lihat query asli
Biasakan gunakan snake_case (huruf kecil + underscore) untuk nama tabel dan kolom: id_produk, nama_lengkap, dibuat_pada. Ini memudahkan kolaborasi tim dan menghindari konflik dengan keyword MySQL yang case-sensitive.
Hampir setiap tabel perlu kolom ID unik sebagai Primary Key. Kombinasi INT AUTO_INCREMENT PRIMARY KEY adalah pola paling umum — MySQL akan otomatis mengisi angka berurutan setiap kali kamu menyimpan data baru. Kamu tidak perlu mengisinya manual!
✅ Kesimpulan
Di artikel ke-2 ini, kamu sudah berhasil menguasai fondasi paling krusial dalam MySQL. Ini yang sudah kamu pelajari:
- CREATE DATABASE — membuat "lemari" untuk menyimpan semua tabel
- USE — mengaktifkan database yang ingin digunakan
- CREATE TABLE MySQL — mendefinisikan struktur tabel lengkap dengan kolom dan tipe data
- Tipe data umum — INT, VARCHAR, DECIMAL, TEXT, DATETIME, ENUM
- Constraint penting — NOT NULL, DEFAULT, AUTO_INCREMENT, PRIMARY KEY, UNIQUE
- Studi kasus nyata — 3 tabel toko online siap pakai
Ingat, memahami CREATE TABLE MySQL bukan sekadar hafal sintaks — tapi tentang bagaimana kamu berpikir tentang struktur data. Tabel yang dirancang baik sejak awal akan menghemat banyak waktu dan sakit kepala di kemudian hari. Selamat, kamu baru saja membangun fondasi yang kuat! 💪
💬 Punya pertanyaan atau bingung di bagian mana? Tulis di kolom komentar di bawah! Kalau artikel ini bermanfaat, bagikan ke teman yang lagi belajar SQL juga ya — siapa tahu dia lagi stuck di bagian ini. Jangan lupa bookmark seri ini biar tidak ketinggalan artikel selanjutnya! 🔖
Tabelmu sudah siap — sekarang waktunya mengisi data! Pelajari cara memasukkan satu atau banyak baris sekaligus dengan perintah INSERT INTO beserta contoh studi kasus toko online.
No comments:
Post a Comment