Penerapan SQL Database dan RStudio untuk Pengolahan Data Ramen Restaurant

Program

Import Library

Menginport library dibutuhkan paling awal agar dapat membaca package yang akan digunakan

library(RMySQL)
## Loading required package: DBI
library(DBI)

Menghubungkan Server Database Ke RStudio

dbb <- dbConnect(
  RMySQL::MySQL(),
  host = "127.0.0.1",
  user = "root",
  password = "")

Membuat dan Mengakses Database Baru

Sebelum membuat tabel di perlukan membuat database pada server yang terlah dimasukkan, dimana pada program ini servernya bernama “dbb”

dbExecute(dbb, "CREATE DATABASE IF NOT EXISTS `RamenRestaurant`")
## [1] 1
dbExecute(dbb, "USE `RamenRestaurant`")
## [1] 0

Membuat Tabel Data Baru Dalam Database yang Telah dibuat

Menggunakan database yang telah di buat sebelumnya, dibuatkan tabel di dalamnya

1. Tabel Data Pelanggan

#Tabel Data_Pelanggan
dbExecute(dbb, "
          CREATE TABLE Data_Pelanggan (
    ID_Pelanggan VARCHAR(15) PRIMARY KEY NOT NULL,
    Nama_Pelanggan VARCHAR(50) NOT NULL,
    Nomor_HP INT NOT NULL,
    Alamat_Email VARCHAR(100) NOT NULL
);
          ")
## [1] 0

2. Tabel Menu Ramen

#Tabel Menu_Ramen
dbExecute(dbb, "
          CREATE TABLE Menu_Ramen (
    ID_Ramen VARCHAR(10) PRIMARY KEY,
    Nama_Ramen VARCHAR(100) NOT NULL,
    Harga INT NOT NULL
); 
          ")
## [1] 0

3. Tabel Pegawai

#Tabel Pegawai
dbExecute(dbb, "
          CREATE TABLE Pegawai (
    ID_Pegawai VARCHAR(10) PRIMARY KEY,
    Nama_Pegawai VARCHAR(50) NOT NULL,
    Jabatan VARCHAR(25) NOT NULL
);
          ")
## [1] 0

4. Tabel Pesanan

#Tabel Pesanan
dbExecute(dbb, "
         CREATE TABLE Pesanan (
    ID_Pesanan VARCHAR(10) PRIMARY KEY,
    ID_Pelanggan VARCHAR(15) NOT NULL,
    ID_Pegawai VARCHAR(10) NOT NULL,
    ID_Ramen VARCHAR(10) NOT NULL,
    Tanggal_Transaksi DATE NOT NULL,
    Total INT,
    Pembayaran VARCHAR(15) NOT NULL,
    FOREIGN KEY (ID_Pelanggan) REFERENCES Data_Pelanggan(ID_Pelanggan),
    FOREIGN KEY (ID_Pegawai) REFERENCES Pegawai(ID_Pegawai)
);
          ")
## [1] 0

Memasukkan Data ke Dalam Tabel

1. Memasukkan Data ke Dalam Tabel Pelanggan

#Tabel Data_Pelanggan
dbExecute(dbb,"
INSERT INTO Data_Pelanggan (ID_Pelanggan, Nama_Pelanggan, Nomor_Hp, Alamat_Email) VALUES
('LY001','Cika','08123','cika@gmail.com'),
('LY002','Tasya Aulia','08124','tasyaaulia@gmail.com'),
('LY003','Santi','08125','santi@gmail.com'),
('LY004','Raihani Annida','08126','raihaniannida@gmail.com')
")
## [1] 4

2. Memasukkan Data ke Dalam Tabel Menu Ramen

#Tabel Menu_Ramen
dbExecute(dbb, "INSERT INTO Menu_Ramen (ID_Ramen, Nama_Ramen, Harga) VALUES
('R001', 'Paitan Shio Ramen', '45000'),
('R002', 'Paitan Karai Ramen', '45000'),
('R003', 'Paitan Shoyu Ramen', '40000');
")
## [1] 3

3. Memasukkan Data ke Dalam Tabel Pegawai

#Tabel Pegawai
dbExecute(dbb, "
            INSERT INTO Pegawai (ID_Pegawai, Nama_Pegawai, Jabatan) VALUES
  ('PG001', 'Hana', 'Waiters'),
  ('PG002', 'Ryo', 'Waiters'),
  ('PG003', 'Ikhwan', 'Casher')
            ")
## [1] 3

4. Memasukkan Data ke Dalam Tabel Pesanan

#Tabel Pesanan 
dbExecute(dbb, "
            INSERT INTO Pesanan (ID_Pesanan, ID_Pelanggan, ID_Pegawai, ID_Ramen, Tanggal_Transaksi, Total, Pembayaran) VALUES 
            ('P12011', 'LY001', 'PG001', 'R001', '2025-12-01', '45000', 'Qris'),
            ('P12021', 'LY002', 'PG002', 'R002', '2025-12-02', '45000', 'Debit'),
            ('P12022', 'LY003', 'PG003', 'R003', '2025-12-02', '40000', 'Transfer'),
            ('P12031', 'LY004', 'PG003', 'R002', '2025-12-03', '45000', 'Qris'),
            ('P12041', 'LY002', 'PG002', 'R003', '2025-12-04', '40000', 'Qris'),
            ('P12051', 'LY003', 'PG001', 'R001', '2025-12-05', '45000', 'Transfer'),
            ('P12052', 'LY001', 'PG001', 'R003', '2025-12-05', '40000', 'Qris'),
            ('P12061', 'LY004', 'PG003', 'R002', '2025-12-06', '45000', 'Qris'),
            ('P12071', 'LY003', 'PG002', 'R003', '2025-12-07', '40000', 'Qris');
            
          ")
## [1] 9

Study Kasus

Berdasarkan database yang telah di buat dan tabel-tabel yang ada dalam database, pada kali ini saya akan menampilkan hasilnya

Menampilkan Isi Tabel

1. Menampilkan Isi Tabel Data Pelanggan

2. Menampilkan Isi Tabel Menu Ramen

3. Menampilkan Isi Tabel Pegawai

4. Menampilkan Isi Tabel Pesanan

Laporan Pesanan Seminggu

Dari data yang tersedia, berikut saya akan menampilkan laporan pesanan apa saja pada minggu ini.

Laporan Pendapatan Seminggu