ASP.NET Core API #3: Mendesain Database Wisata – Tabel Kategori dan Daftar Wisata
Halo lagi, calon programmer cilik!
Di artikel sebelumnya kita sudah bisa bikin API yang bilang "Hello World". Sekarang kita akan buatkan dia tempat nyimpen data yang beneran. Ibarat kita punya lemari es, sekarang kita mau isi lemari es itu dengan makanan-makanan lezat. Di dunia programming, lemari es itu namanya database, dan makanannya adalah data.
🤣 Kenapa database perempuan? Karena dia butuh relasi! (Canda dulu biar nggak tegang)
Kita akan buat dua tabel:
- KategoriWisata – buat nyimpen jenis wisata, misal Pantai, Gunung, Museum.
- DaftarWisata – buat nyimpen tempat wisata lengkap dengan detailnya.
Relasinya: satu kategori bisa punya banyak tempat wisata. Kayak satu emak bisa punya banyak anak gitu deh.
Langkah 1: Buka SQL Server Management Studio (SSMS)
- Buka SSMS, masuk ke server lokal (biasanya
localhostatau.\SQLEXPRESS). Klik Connect. - Di panel kiri, klik kanan pada Databases -> New Database...
- Beri nama database:
WisataDB. Klik OK. Tunggu sampai muncul di daftar database.
💡 Kalau bingung nyari database baru, coba refresh (klik kanan Databases -> Refresh).
Langkah 2: Membuat Tabel KategoriWisata
Klik kanan database WisataDB -> New Query. Akan muncul jendela kosong untuk menulis perintah SQL.
Ketik perintah berikut:
CREATE TABLE KategoriWisata (
Id INT PRIMARY KEY IDENTITY(1,1),
Nama VARCHAR(100) NOT NULL,
Deskripsi VARCHAR(255)
);
Penjelasan:
Id– nomor unik untuk setiap kategori.IDENTITY(1,1)artinya otomatis diisi nomor 1,2,3,... (kaya antrian bakso).Nama– nama kategori, misal "Pantai".NOT NULLwajib diisi.Deskripsi– penjelasan tambahan, boleh kosong.
Setelah diketik, tekan F5 atau klik Execute. Kalau muncul "Command(s) completed successfully", berarti tabel sudah jadi.
Langkah 3: Membuat Tabel DaftarWisata
Masih di jendela query yang sama (atau buka baru), ketik perintah berikut:
CREATE TABLE DaftarWisata (
Id INT PRIMARY KEY IDENTITY(1,1),
Nama VARCHAR(100) NOT NULL,
Deskripsi TEXT,
Lokasi VARCHAR(150),
HargaTiket DECIMAL(10,2),
KategoriId INT NOT NULL,
FOREIGN KEY (KategoriId) REFERENCES KategoriWisata(Id)
);
Penjelasan:
Id– nomor unik tempat wisata.Nama– nama tempat wisata, wajib diisi.Deskripsi– penjelasan panjang, boleh kosong.Lokasi– alamat atau daerah.HargaTiket– harga tiket masuk (uang).KategoriId– ini adalah kunci yang menghubungkan ke tabel KategoriWisata. Angka ini harus ada di tabel kategori. Makanya kita kasihFOREIGN KEYbiar terjaga hubungannya.
Execute lagi. Sekarang kita punya dua tabel yang bersahabat.
Langkah 4: Melihat Relasi (Optional)
Di SSMS, kamu bisa lihat diagram database dengan cara: di folder Database Diagrams, klik kanan -> New Database Diagram, pilih kedua tabel. Nanti akan terlihat garis penghubung antara KategoriId dan Id. Keren kan?
Langkah 5: Mengisi Data Contoh
Biar tidak kosong, kita isi beberapa data. Jalankan perintah berikut (bisa di query yang sama atau baru):
-- Isi Kategori
INSERT INTO KategoriWisata (Nama, Deskripsi) VALUES
('Pantai', 'Wisata tepi laut dengan pasir putih'),
('Gunung', 'Pendakian dan pemandangan alam'),
('Museum', 'Tempat belajar sejarah dan budaya');
-- Isi Daftar Wisata
INSERT INTO DaftarWisata (Nama, Deskripsi, Lokasi, HargaTiket, KategoriId) VALUES
('Pantai Kuta', 'Pantai dengan sunset terkenal', 'Bali', 15000, 1),
('Gunung Bromo', 'Gunung berapi aktif dengan lautan pasir', 'Jawa Timur', 30000, 2),
('Museum Nasional', 'Koleksi sejarah dan budaya Indonesia', 'Jakarta', 10000, 3);
Jalankan. Data sudah masuk.
Langkah 6: Mengecek Data
Coba lihat data dengan perintah:
SELECT * FROM KategoriWisata;
SELECT * FROM DaftarWisata;
Hasilnya akan muncul di tab Results. Kalau muncul tabel dengan data, berarti sukses!
📝 Perhatikan bahwa kolom KategoriId di DaftarWisata berisi angka 1,2,3 yang sesuai dengan Id di KategoriWisata. Itulah yang disebut relasi.
Apakah Harus Manual? Bisa Pakai Migration?
Di artikel ini kita bikin tabel manual biar jelas. Nanti pas kita hubungkan ke API, kita bisa pakai Entity Framework Core yang bisa bikin tabel otomatis dari kode (namanya migration). Tapi untuk sekarang, kita sudah punya database yang siap dipakai.
Di artikel selanjutnya (ASP.NET Core API #4), kita akan menghubungkan API kita dengan database ini menggunakan Entity Framework. Kita akan baca data dari tabel dan tampilkan di API. Seru!
Bonus: Struktur Tabel dalam Bentuk Gambar (dalam angan-angan)
| Kolom | Tipe Data | Keterangan |
|---|---|---|
| Id | INT | Primary Key, auto number |
| Nama | VARCHAR(100) | Wajib diisi |
| Deskripsi | VARCHAR(255) | Boleh kosong |
| Kolom | Tipe Data | Keterangan |
|---|---|---|
| Id | INT | Primary Key, auto number |
| Nama | VARCHAR(100) | Wajib diisi |
| Deskripsi | TEXT | Boleh panjang |
| Lokasi | VARCHAR(150) | Alamat |
| HargaTiket | DECIMAL(10,2) | Harga dalam rupiah |
| KategoriId | INT | Foreign Key ke KategoriWisata.Id |
😁 Gimana? Udah mulai pusing? Istirahat dulu, minum susu, jangan lupa makan. Besok kita sambung lagi!
Ditulis oleh Kakak programmer yang dulu juga bingung bedain tabel dan lemari. Kalau ada pertanyaan, tulis di komentar ya!