Penerapan SQL Database pada RStudio dalam manajemen sistem Platform Sewa Alat Camping & Outdoor
Import library untuk menjalankan package yang akan digunakan
library(DBI)
## Warning: package 'DBI' was built under R version 4.5.2
library(RMySQL)
## Warning: package 'RMySQL' was built under R version 4.5.2
Pembuatan database pada server untuk dapat membuat tabel dengan nama server “con”
dbExecute(con, "CREATE DATABASE IF NOT EXISTS `CampOutdoor`")
## [1] 1
dbExecute(con, "USE `CampOutdoor`")
## [1] 0
# Tabel Pelanggan
dbExecute(con, "
CREATE TABLE Pelanggan (
ID_Pelanggan VARCHAR(10) PRIMARY KEY,
Nama VARCHAR(100) NOT NULL,
No_HP VARCHAR(15) NOT NULL,
Email VARCHAR(100) NOT NULL,
Alamat TEXT
);
")
## [1] 0
# Tabel Kategori Alat
dbExecute(con, "
CREATE TABLE Kategori_Alat (
ID_Kategori VARCHAR(5) PRIMARY KEY,
Nama_Kategori VARCHAR(50) NOT NULL
);
")
## [1] 0
# Tabel Alat Camping (produk yang disewakan)
dbExecute(con, "
CREATE TABLE Alat_Camping (
ID_Alat VARCHAR(10) PRIMARY KEY,
Nama_Alat VARCHAR(100) NOT NULL,
ID_Kategori VARCHAR(5) NOT NULL,
Harga_Sewa_PerHari INT NOT NULL,
Stok INT NOT NULL,
FOREIGN KEY (ID_Kategori) REFERENCES Kategori_Alat(ID_Kategori)
);
")
## [1] 0
# Tabel Pegawai / Admin Platform
dbExecute(con, "
CREATE TABLE Pegawai (
ID_Pegawai VARCHAR(10) PRIMARY KEY,
Nama_Pegawai VARCHAR(100) NOT NULL,
Jabatan VARCHAR(50) NOT NULL,
No_HP VARCHAR(15)
);
")
## [1] 0
# Tabel Transaksi Sewa
dbExecute(con, "
CREATE TABLE Sewa (
ID_Sewa VARCHAR(15) PRIMARY KEY,
ID_Pelanggan VARCHAR(10) NOT NULL,
ID_Pegawai VARCHAR(10) NOT NULL,
ID_Alat VARCHAR(10) NOT NULL,
Tgl_Mulai DATE NOT NULL,
Tgl_Selesai DATE NOT NULL,
Jumlah_Hari INT NOT NULL,
Total_Biaya INT NOT NULL,
Status_Pembayaran ENUM('Lunas','Belum Lunas','DP') DEFAULT 'Belum Lunas',
FOREIGN KEY (ID_Pelanggan) REFERENCES Pelanggan(ID_Pelanggan),
FOREIGN KEY (ID_Pegawai) REFERENCES Pegawai(ID_Pegawai),
FOREIGN KEY (ID_Alat) REFERENCES Alat_Camping(ID_Alat)
);
")
## [1] 0
# Kategori
dbExecute(con, "
INSERT INTO Kategori_Alat (ID_Kategori, Nama_Kategori) VALUES
('K01', 'Tenda'),
('K02', 'Sleeping Bag & Matras'),
('K03', 'Kompor & Nesting'),
('K04', 'Carrier & Tas'),
('K05', 'Lain-lain');
")
## [1] 5
# Pelanggan
dbExecute(con, "
INSERT INTO Pelanggan (ID_Pelanggan, Nama, No_HP, Email, Alamat) VALUES
('C001', 'Fardan', '081234567890', 'fardan@gmail.com', 'Kendari'),
('C002', 'Desta', '081298765432', 'desta@gmail.com', 'Wakatobi'),
('C003', 'Wahab', '082176543210', 'wahab@gmail.com', 'Muna'),
('C004', 'Rina', '089876543210', 'rina.m@gmail.com', 'Bau-bau')
");
## [1] 4
dbExecute(con, "
INSERT INTO Pegawai (ID_Pegawai, Nama_Pegawai, Jabatan, No_HP) VALUES
('P001', 'Dika Pratama', 'Admin Gudang', '085712345678'),
('P002', 'Laras Sari', 'Customer Service','087812345678'),
('P003', 'Fajar Nugroho', 'Finance', '081312345678');
")
## [1] 3
# Alat Camping
dbExecute(con, "
INSERT INTO Alat_Camping (ID_Alat, Nama_Alat, ID_Kategori, Harga_Sewa_PerHari, Stok) VALUES
('A001', 'Tenda Dome Consina 4P', 'K01', 80000, 15),
('A002', 'Tenda Rei Co-op Kingdom 6', 'K01', 150000, 8),
('A003', 'Sleeping Bag Naturehike -10°C','K02', 35000, 20),
('A004', 'Matras Angin Single', 'K02', 20000, 30),
('A005', 'Kompor Portable Windproof', 'K03', 25000, 25),
('A006', 'Nesting 4 orang', 'K03', 30000, 18),
('A007', 'Carrier Deuter 70L', 'K04', 60000, 10),
('A008', 'Headlamp + Powerbank', 'K05', 15000, 40);
")
## [1] 8
# Transaksi Sewa (contoh minggu pertama Desember 2025)
dbExecute(con, "
INSERT INTO Sewa
(ID_Sewa, ID_Pelanggan, ID_Pegawai, ID_Alat, Tgl_Mulai, Tgl_Selesai, Total_Biaya, Status_Pembayaran) VALUES
('S25120101', 'C001', 'P001', 'A001', '2025-12-01', '2025-12-03', 240000, 'Lunas'),
('S25120102', 'C002', 'P002', 'A002', '2025-12-01', '2025-12-04', 600000, 'Lunas'),
('S25120201', 'C003', 'P001', 'A003', '2025-12-02', '2025-12-04', 70000, 'DP'),
('S25120202', 'C001', 'P003', 'A005', '2025-12-02', '2025-12-05', 75000, 'Lunas'),
('S25120301', 'C004', 'P002', 'A007', '2025-12-03', '2025-12-06', 180000, 'Lunas'),
('S25120401', 'C002', 'P001', 'A004', '2025-12-04', '2025-12-06', 40000, 'Belum Lunas'),
('S25120501', 'C003', 'P003', 'A008', '2025-12-05', '2025-12-07', 30000, 'Lunas'),
('S25120601', 'C004', 'P002', 'A001', '2025-12-06', '2025-12-08', 160000, 'Lunas');
")
## [1] 8
Berdasarkan database yang telah di buat, berikut merupakan hasil dari tabel tabel terkait platfom peminjaman alat camping dan outdoot
Berdasarkan data tabel yang tersedia, berikut merupakan laporan mingguan hasil penyewaan alat camping dan outdoor