Untuk menggunakan syntax R diperlukan chunk yang ditandai dengan “{r}” sama hal nya dengan penggunaaan library, juga diperlukan chunk untuk mengakses library tertentu.

# Memuat paket yang diperlukan untuk koneksi database dan visualisasi 
library(DBI) 
library(ggplot2) 
library(scales) 

Pendahuluan

Laporan ini menyajikan banyaknya item untuk tiap product scale dari database “classicmodels”. Proses ini mengintegrasikan SQL untuk pengambilan data dan R untuk visualisasi.

Koneksi Database dan Pengambilan Data

Langkah pertama adalah membangun koneksi antara RStudio dan database MySQL menggunakan fungsi dbConnect()

con <- DBI::dbConnect(odbc::odbc(),
                          
                          Driver = "MySQL ODBC 8.0 ANSI Driver",
                          Server = "127.0.0.1",
                          Database = "classicmodels",
                          UID = "root",
                          PWD = "080391",
                          Port = 3306)

Setelah koneksi terjalin, kita menggunakan blok kode SQL untuk mendapatkan banyaknya item untuk tiap product scale. Simpan data hasil kueri data dalam suatu data frame R.

# Mendapatkan data yang diperlukan 
data1 <- dbGetQuery(con, "SELECT productScale,  
                  COUNT(*) AS totalItems 
                  FROM products 
                  GROUP BY productScale") 
 
data1 
##   productScale totalItems
## 1         1:10          6
## 2         1:12          9
## 3         1:18         42
## 4         1:72          4
## 5         1:24         27
## 6         1:32          8
## 7         1:50          4
## 8        1:700         10

Visualisasi banyaknya item tiap product scale

Kita menggunakan library ggplot2 untuk membuat barchart. Fungsi geom_bar() digunakan untuk melihat banyaknya item tiap product scale.

# Membuat barchart untuk banyaknya item tiap product scale 
 
ggplot(data1, aes(x = productScale, y = totalItems)) + 
  geom_bar(stat = "identity", fill = "blue", alpha = 1) + 
  theme_minimal() + 
  labs(title = "Total Item per Skala Produk", 
       x = "Skala Produk", 
       y = "Total Item") + 
  theme(axis.text.x = element_text(angle = 45, hjust = 1))
## Don't know how to automatically pick scale for object of type <integer64>.
## Defaulting to continuous.

# Latihan sebuah histogram dengan label yang sesuai untuk nilai (value) dari orders yang diterima dari negara-negara Nordic (Denmark, Finland, Norway, Sweden)! Tahap pertama kali yang dilakukan adalah menggunakan library(BDI) guna menghubungkan data dari MySQL dengan R

conn<- DBI::dbConnect(odbc::odbc(),
                          
                          Driver = "MySQL ODBC 8.0 ANSI Driver",
                          Server = "127.0.0.1",
                          Database = "classicmodels",
                          UID = "root",
                          PWD = "080391",
                          Port = 3306)

setelah terhubung dengan database, dilakukan query di R dengan fungsi dbGetQuery() untuk mencari nilai orders yang diterima dari negara negara nordic. query dilakukan dengan menjoinkan 3 tabel melalui 2 kolom penghubung, kemudian mengghunakan fungsi where untuk filter data sesuai yang diinginkan

data<-dbGetQuery(conn,"select c.country, sum(od.quantityOrdered) as jumlah
from orderdetails od
join orders o on od.ordernumber=o.ordernumber
join customers c on o.customerNumber=c.customerNumber
where c.country in ('Denmark', 'Finland', 'Norway', 'Sweden')
group by c.country;")
jumlah<-data$jumlah

Kemudian akan dibuat sebuah grafik histogram untuk memvisualisasikan data order tiap negara nordik

grafik<-ggplot(data.frame(jumlah),aes(x=jumlah))+geom_histogram(binwidth = 500,fill="#066",color="black")+theme_minimal()
grafik

kemudian buat grafik bar chart untuk visualisasi kedua

grafik1<-ggplot(data,aes(x=country,y=jumlah))+geom_bar(stat="identity",fill="skyblue")+geom_text(aes(label = jumlah),vjust= -0.3)+theme_minimal()
grafik1