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)
Laporan ini menyajikan banyaknya item untuk tiap product scale dari database “classicmodels”. Proses ini mengintegrasikan SQL untuk pengambilan data dan R untuk visualisasi.
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
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