Pengguna Mengimport library yang dibutuhkan untuk mengakses SQL pada server MySQL yang dimiliki
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 = "127.0.0.1",
user = "root",
password = ""
)
Pengguna membuat sebuah database baru pada server yang telah dimasukkan
dbGetQuery(server, "CREATE DATABASE IF NOT EXISTS Playtopia")
## data frame with 0 columns and 0 rows
dbGetQuery(server, "USE Playtopia")
## data frame with 0 columns and 0 rows
con <- dbConnect(RSQLite::SQLite(), "my_database.db")
TABEL PENGUNJUNG
dbExecute(server, " CREATE TABLE Pengunjung (
ID_Pengunjung VARCHAR(10) PRIMARY KEY,
Nama VARCHAR(100) NOT NULL,
Umur INT NOT NULL,
Email VARCHAR(100),
Tanggal_Daftar DATE NOT NULL
);")
## [1] 0
TABEL WAHANA
dbExecute(server, "
CREATE TABLE Wahana (
ID_Wahana VARCHAR(10) PRIMARY KEY,
Nama_Wahana VARCHAR(100) NOT NULL,
Harga_Tiket DECIMAL(10,2) NOT NULL,
Kategori ENUM('Keluarga','Anak','Ekstrim') NOT NULL
);")
## [1] 0
TABEL TIKET
dbExecute(server, "
CREATE TABLE Tiket (
ID_Tiket VARCHAR(10) PRIMARY KEY,
ID_Pengunjung VARCHAR(10),
ID_Wahana VARCHAR(10),
Tanggal_Kunjungan DATE NOT NULL,
FOREIGN KEY (ID_Pengunjung) REFERENCES Pengunjung(ID_Pengunjung),
FOREIGN KEY (ID_Wahana) REFERENCES Wahana(ID_Wahana)
);")
## [1] 0
Tabel PEMAKAIAN WAHANAA
dbExecute(server, "
CREATE TABLE Pemakaian_Wahana (
ID_Pemakaian VARCHAR(10) PRIMARY KEY,
ID_Pengunjung VARCHAR(10),
ID_Wahana VARCHAR(10),
Jam_Mulai TIME NOT NULL,
Jam_Selesai TIME NOT NULL,
FOREIGN KEY (ID_Pengunjung) REFERENCES Pengunjung(ID_Pengunjung),
FOREIGN KEY (ID_Wahana) REFERENCES Wahana(ID_Wahana)
);")
## [1] 0
Tabel FEEDBACKK
dbExecute(server, "
CREATE TABLE Feedback (
ID_Feedback VARCHAR(10) PRIMARY KEY,
ID_Pengunjung VARCHAR(10),
Rating INT CHECK (Rating BETWEEN 1 AND 5),
Komentar VARCHAR(255),
FOREIGN KEY (ID_Pengunjung) REFERENCES Pengunjung(ID_Pengunjung)
);")
## [1] 0
FEEDBACKK
dbSendQuery(server,"
INSERT INTO Pengunjung VALUES
('P001','Dian Putri',25,'dian@gmail.com','2024-01-10'),
('P002','Srinovi',30,'srinovi@gmail.com','2024-01-12'),
('P003','Muhammad Irham',22,'irham@gmail.com','2024-01-15'),
('P004','Yusril Izama',27,'yusril@gmail.com','2024-01-20'),
('P005','Muhammad Fadlan',19,'fadlan@gmail.com','2024-01-25');
")
## <MySQLResult:1776812480,0,7>
Wahana
dbSendQuery(server,"
INSERT INTO Wahana VALUES
('W001','Roller Coaster',50000,'Ekstrim'),
('W002','Rumah Hantu',30000,'Keluarga'),
('W003','Bianglala',20000,'Keluarga'),
('W004','Mobil Listrik',25000,'Anak'),
('W005','Sky Drop',60000,'Ekstrim');
")
## <MySQLResult:12,0,8>
Tiket
dbSendQuery(server,"
INSERT INTO Tiket VALUES
('T001','P001','W001','2024-02-10'),
('T002','P002','W003','2024-02-10'),
('T003','P003','W002','2024-02-11'),
('T004','P004','W001','2024-02-11'),
('T005','P005','W005','2024-02-12');
")
## <MySQLResult:12,0,9>
Pemakaian Wahana
dbSendQuery(server,"
INSERT INTO Pemakaian_Wahana VALUES
('PW01','P001','W001','10:00','10:05'),
('PW02','P002','W003','11:00','11:20'),
('PW03','P003','W002','12:00','12:10'),
('PW04','P004','W001','13:00','13:05'),
('PW05','P005','W005','14:00','14:03');
")
## <MySQLResult:12,0,10>
Feedback
dbSendQuery(server,"
INSERT INTO Feedback VALUES
('F01','P001',5,'Wahana seru sekali!'),
('F02','P002',4,'Pemandangannya bagus'),
('F03','P003',3,'Cukup menyeramkan'),
('F04','P004',5,'Roller Coaster sangat menantang'),
('F05','P005',4,'Sky Drop bikin nagih!');
")
## <MySQLResult:12,0,11>
Menampilkan Nilai Tabel Data Pada Database
Melihat nilai tabel pengunjung
tampilkan.Pengunjung <- dbGetQuery(server, "
SELECT * FROM Pengunjung;
")
library(DT)
## Warning: package 'DT' was built under R version 4.5.2
datatable(tampilkan.Pengunjung)
Melihat nilai tabel Wahana
tampilkan.Wahana <- dbGetQuery(server,"
SELECT * FROM Wahana;
")
## Warning in dbSendQuery(conn, statement, ...): Decimal MySQL column 2 imported
## as numeric
library(DT)
datatable(tampilkan.Wahana)
Melihat nilai tabel Tiket
tampilkan.Tiket <- dbGetQuery(server,"
SELECT * FROM Tiket;
")
library(DT)
datatable(tampilkan.Tiket)
Melihat nilai tabel Pemakaian_Wahana
tampilkan.Pemakaian_Wahana <- dbGetQuery(server,"
SELECT * FROM Pemakaian_Wahana;
")
library(DT)
datatable(tampilkan.Pemakaian_Wahana)
Melihat nilai tabel Feedback
tampilkan.Feedback <- dbGetQuery(server,"
SELECT * FROM Feedback;
")
library(DT)
datatable(tampilkan.Feedback)
library(DT)
# Laporan tiket yang dibeli minggu ini
laporan_Tiket <- "
SELECT
t.ID_Tiket,
p.Nama AS Pengunjung,
w.Nama_Wahana AS Wahana,
t.Tanggal_Kunjungan
FROM Tiket t
JOIN Pengunjung p ON t.ID_Pengunjung = p.ID_Pengunjung
JOIN Wahana w ON t.ID_Wahana = w.ID_Wahana
ORDER BY t.Tanggal_Kunjungan;
"
library(DT)
laporan <- dbGetQuery(server, laporan_Tiket)
datatable(laporan, options=list(pageLength=10), caption="Laporan Tiket Seminggu")