Penerapa SQL dalam sistem manajemen basis data transaksi festival konser ## Program ### Import Library
library(RMySQL)
## Warning: package 'RMySQL' was built under R version 4.5.2
## Loading required package: DBI
## Warning: package 'DBI' was built under R version 4.5.2
library(DBI)
server <- dbConnect(
RMySQL::MySQL(),
host = "localhost",
user = "root",
password = ""
)
dbExecute(server, "CREATE DATABASE IF NOT EXISTS FESTIVAL_KONSER")
## [1] 1
dbExecute(server, "USE FESTIVAL_KONSER")
## [1] 0
# Tabel Pengunjung
dbExecute(server, "
CREATE TABLE IF NOT EXISTS Pengunjung (
ID_Pengunjung VARCHAR(10) PRIMARY KEY,
Nama VARCHAR(100) NOT NULL,
Email VARCHAR(100) UNIQUE NOT NULL,
Nomor_HP VARCHAR(20),
Alamat VARCHAR(150)
);
")
## [1] 0
# Tabel Festival
dbExecute(server, "
CREATE TABLE IF NOT EXISTS Festival (
ID_Festival VARCHAR(10) PRIMARY KEY,
Nama_Festival VARCHAR(100) NOT NULL,
Lokasi VARCHAR(100) NOT NULL,
Tanggal DATE NOT NULL,
Penyelenggara VARCHAR(100) NOT NULL
);
")
## [1] 0
# Tabel Kategori Tiket
dbExecute(server, "
CREATE TABLE IF NOT EXISTS Kategori_Tiket (
ID_Kategori VARCHAR(10) PRIMARY KEY,
ID_Festival VARCHAR(10),
Nama_Kategori VARCHAR(50) NOT NULL,
Harga INT NOT NULL,
Kuota INT NOT NULL,
FOREIGN KEY (ID_Festival) REFERENCES Festival(ID_Festival)
);
")
## [1] 0
# Tabel Pembelian
dbExecute(server, "
CREATE TABLE IF NOT EXISTS Pembelian (
ID_Pembelian VARCHAR(10) PRIMARY KEY,
ID_Pengunjung VARCHAR(10),
Tanggal_Pembelian DATETIME NOT NULL,
Metode_Pembayaran VARCHAR(50),
FOREIGN KEY (ID_Pengunjung) REFERENCES Pengunjung(ID_Pengunjung)
);
")
## [1] 0
# Tabel Detail Pembelian
dbExecute(server, "
CREATE TABLE IF NOT EXISTS Detail_Pembelian (
ID_Detail VARCHAR(10) PRIMARY KEY,
ID_Pembelian VARCHAR(10),
ID_Kategori VARCHAR(10),
Jumlah INT NOT NULL,
Subtotal INT NOT NULL,
FOREIGN KEY (ID_Pembelian) REFERENCES Pembelian(ID_Pembelian),
FOREIGN KEY (ID_Kategori) REFERENCES Kategori_Tiket(ID_Kategori)
);
")
## [1] 0
# Tabel Penukaran Tiket
dbExecute(server, "
CREATE TABLE IF NOT EXISTS Penukaran_Tiket (
ID_Penukaran VARCHAR(10) PRIMARY KEY,
ID_Pengunjung VARCHAR(10),
ID_Festival VARCHAR(10),
Waktu_Scan DATETIME NOT NULL,
FOREIGN KEY (ID_Pengunjung) REFERENCES Pengunjung(ID_Pengunjung),
FOREIGN KEY (ID_Festival) REFERENCES Festival(ID_Festival)
);
")
## [1] 0
# Data Pengunjung
dbExecute(server, "
INSERT INTO Pengunjung VALUES
('P01','Zahira Kayla','Zahirakay@Email.com','08123456789','Jakarta'),
('P02','Risma syafa','Rismasyafa@Email.com','08234567890','Bandung'),
('P03','Aqila Calista','Aqilca@Email.com','08345678901','Surabaya');
")
## [1] 3
# Data Festival
dbExecute(server, "
INSERT INTO Festival VALUES
('F01','Summer Music Fest','Jakarta','2025-07-12','Resilient'),
('F02','Rock Nation Live','Bandung','2025-08-20','SuperSound');
")
## [1] 2
# Data Kategori Tiket
dbExecute(server, "
INSERT INTO Kategori_Tiket VALUES
('K001','F01','VIP',1500000,200),
('K002','F01','Festival',750000,500),
('K003','F02','VVIP',2000000,150),
('K004','F02','Regular',500000,700);
")
## [1] 4
# Data Pembelian
dbExecute(server, "
INSERT INTO Pembelian VALUES
('B01','P01','2025-05-10 14:22:00','QRIS'),
('B02','P02','2025-05-11 10:15:00','Transfer');
")
## [1] 2
# Data Detail Pembelian
dbExecute(server, "
INSERT INTO Detail_Pembelian VALUES
('D001','B01','K001',2,3000000),
('D002','B02','K004',3,1500000);
")
## [1] 2
# Data Penukaran Tiket
dbExecute(server, "
INSERT INTO Penukaran_Tiket VALUES
('C001','P01','F01','2025-07-12 16:05:00'),
('C002','P02','F02','2025-08-20 17:30:00');
")
## [1] 2
tampilkan.pengujung <- (dbGetQuery(server, "SELECT * FROM Pengunjung"))
library(DT)
## Warning: package 'DT' was built under R version 4.5.2
datatable(tampilkan.pengujung)
tampilkan.Festival <- (dbGetQuery(server, "SELECT * FROM Festival"))
library(DT)
datatable(tampilkan.Festival)
tampilkan.Kategori_Tiket <- (dbGetQuery(server, "SELECT * FROM Kategori_Tiket"))
library(DT)
datatable(tampilkan.Kategori_Tiket)
tampilkan.pembelian <- (dbGetQuery(server, "SELECT * FROM Pembelian"))
library(DT)
datatable(tampilkan.pembelian)
tampilkan.Detail_Pembelian <- (dbGetQuery(server, "SELECT * FROM Detail_Pembelian"))
library(DT)
datatable(tampilkan.Detail_Pembelian)
tampilkan.penukaran_Tiket <- (dbGetQuery(server, "SELECT * FROM Penukaran_Tiket"))
library(DT)
datatable(tampilkan.penukaran_Tiket)
## Warning in dbSendQuery(conn, statement, ...): Decimal MySQL column 1 imported
## as numeric