Skip to content Skip to sidebar Skip to footer

Basis Data

 Basis Data


Perancangan (pembuatan table dan relasi)

Misalkan kita ingin membuat basis data untuk sebuah toko buku online. Berikut adalah tabel-tabel yang akan dibuat beserta atribut-atributnya:
1. Tabel buku
id_buku : (primary key) identitas unik buku
judul_buku : judul buku
penulis : penulis buku
penerbit : penerbit buku
tahun_terbit : tahun terbit buku
harga : harga buku
2. Tabel kategori_buku
id_kategori : (primary key) identitas unik kategori buku
nama_kategori : nama kategori buku
3. Tabel stok_buku
id_stok : (primary key) identitas unik stok buku
id_buku : (foreign key ke tabel buku) identitas buku yang tersedia
jumlah_stok : jumlah stok buku yang tersedia
4. Tabel pembelian
id_pembelian : (primary key) identitas unik pembelian
id_buku : (foreign key ke tabel buku) identitas buku yang dibeli
jumlah_pembelian : jumlah buku yang dibeli
tanggal_pembelian : tanggal pembelian buku
Dari tabel-tabel tersebut, terdapat beberapa relasi antara tabel, yaitu:
  1. Tabel buku memiliki relasi one-to-many dengan tabel stok_buku. Satu buku dapat memiliki banyak stok.
  2. Tabel buku memiliki relasi many-to-many dengan tabel kategori_buku. Satu buku dapat termasuk dalam banyak kategori dan satu kategori dapat memiliki banyak buku.
  3. Tabel buku memiliki relasi one-to-many dengan tabel pembelian. Satu buku dapat dibeli banyak kali.
  4. Tabel pembelian memiliki relasi many-to-one dengan tabel buku. Banyak pembelian dapat terkait dengan satu buku.
Dengan perancangan tersebut, kita dapat membuat sebuah basis data yang dapat digunakan untuk menyimpan informasi-informasi tentang buku, kategori buku, stok buku, dan pembelian buku.

Implementasi (Query)

1. Mengambil semua data buku beserta kategori-kategorinya
SELECT buku.*, kategori_buku.nama_kategori 
FROM buku 
INNER JOIN buku_kategori ON buku.id_buku = buku_kategori.id_buku 
INNER JOIN kategori_buku ON buku_kategori.id_kategori = kategori_buku.id_kategori;

2. Mengambil data buku yang harganya diatas Rp100.000
SELECT * FROM buku WHERE harga > 100000;

3. Mengambil data buku yang stoknya tersedia lebih dari 10
SELECT buku.*, stok_buku.jumlah_stok 
FROM buku 
INNER JOIN stok_buku ON buku.id_buku = stok_buku.id_buku 
WHERE stok_buku.jumlah_stok > 10;

4. Menambahkan data pembelian baru
INSERT INTO pembelian (id_buku, jumlah_pembelian, tanggal_pembelian) 
VALUES (1, 2, '2023-05-03');

5. Mengupdate jumlah
UPDATE stok_buku 
SET jumlah_stok = jumlah_stok - 2 
WHERE id_buku = 1;

Post a Comment for "Basis Data"