# Memuat paket yang diperlukan untuk visualisasi
library(DBI)
library(odbc)
library(ggplot2)
library(scales)
/* Penggunaan Inline CSS pada R-Markdown */
Dokumen ini menyajikan hasil analisis data dengan memanfaatkan R-Markdown sebagai alat utama dalam pengolahan dan penyusunan laporan. Dengan integrasi HTML, tampilan laporan menjadi lebih dinamis dan fleksibel, memungkinkan penyajian tabel, gambar, serta elemen interaktif yang tidak dapat dicapai hanya dengan Markdown biasa.
Kombinasi kedua teknologi ini memberikan kemudahan dalam menyusun laporan yang tidak hanya informatif, tetapi juga lebih profesional dan mudah dibaca. Selain itu, penggunaan CSS dalam HTML semakin memperkaya estetika tampilan, menjadikan dokumen lebih menarik dan sesuai dengan standar penyajian visual yang baik.
Dengan pendekatan ini, analisis data dapat dikomunikasikan secara lebih jelas dan efektif kepada pembaca.
Referensi tambahan:
R-Markdown memberikan kemudahan dalam menyusun laporan berbasis data dengan struktur yang ringkas dan fleksibel.
Dengan dukungan HTML, pengguna dapat memperkaya tampilan dokumen menggunakan elemen seperti tabel, gambar, dan format teks yang lebih variatif.
selain itu, integrasi dengan CSS memungkinkan personalisasi gaya agar laporan lebih estetis dan profesional, mulai dari pemilihan warna, font, hingga tata letak elemen.
Kombinasi ketiga teknologi ini membantu menyampaikan analisis data secara lebih jelas dan terstruktur, sehingga pembaca dapat memahami hasil dengan lebih mudah.
Dengan pendekatan ini, penyusunan laporan menjadi lebih efisien dan menarik tanpa mengorbankan keakuratan informasi yang disajikan.
Proses ini mengintegrasikan SQL untuk pengambilan data dan R untuk visualisasi.
Langkah pertama adalah membangun koneksi antara RStudio dan database
MySQL menggunakan fungsi dbConnect()
con2 <- dbConnect(odbc(),
Driver = "/usr/local/mysql-connector-odbc-8.0.33-macos13-x86-64bit/lib/libmyodbc8a.so",
Server = "127.0.0.1",
UID = "root",
PWD = "157$GnKJHK8",
Port = 3306,
Database = "classicmodels")
Setelah koneksi terjalin, kita menggunakan blok kode SQL untuk mendapatkan data nilai pesanan di negara nordic. Simpan data hasil kueri data dalam suatu data frame R.
# mendapatkan data yang diperlukan
query1 <- "SELECT o.OrderNumber, country,
sum(quantityordered*priceeach) as total_value
FROM orders o
JOIN orderdetails od ON o.orderNumber=od.OrderNumber
JOIN customers c ON c.customerNumber = o.CustomerNumber
WHERE country IN ('Denmark', 'Finland', 'Norway', 'Sweden')
GROUP BY o.orderNumber"
data1 <- dbGetQuery(con2, query1)
data1
## OrderNumber country total_value
## 1 10103 Norway 50218.95
## 2 10105 Denmark 53959.21
## 3 10112 Sweden 7674.94
## 4 10141 Finland 29716.86
## 5 10151 Finland 32723.04
## 6 10155 Finland 37602.48
## 7 10158 Norway 1491.38
## 8 10161 Denmark 36164.46
## 9 10167 Sweden 44167.09
## 10 10181 Norway 55069.55
## 11 10188 Norway 29954.91
## 12 10238 Denmark 28211.70
## 13 10239 Finland 16212.59
## 14 10247 Finland 28394.54
## 15 10256 Denmark 4710.73
## 16 10284 Norway 32260.16
## 17 10289 Norway 12538.01
## 18 10291 Sweden 48809.90
## 19 10299 Finland 34341.08
## 20 10301 Norway 36798.88
## 21 10309 Norway 17876.32
## 22 10314 Denmark 53745.34
## 23 10320 Sweden 16799.03
## 24 10325 Norway 34638.14
## 25 10326 Sweden 19206.68
## 26 10327 Denmark 20564.86
## 27 10334 Sweden 23014.17
## 28 10363 Finland 45785.34
## 29 10373 Finland 46770.52
## 30 10377 Finland 23602.90
## 31 10389 Sweden 27966.54
## 32 10406 Denmark 21638.62
Ringkasan data merupakan ringkasan statistik deskriptif dari data, seperti nilai minimum, kuartil pertama, median, mean (rata-rata), kuartil ketiga, dan maksimum untuk data numerik, serta hitungan kategori untuk data faktor.
knitr::kable(data1,
caption = "Data Nilai Pesanan Negara Nordic",
col.names = c("Order Number", "Country", "Total value"))
| Order Number | Country | Total value |
|---|---|---|
| 10103 | Norway | 50218.95 |
| 10105 | Denmark | 53959.21 |
| 10112 | Sweden | 7674.94 |
| 10141 | Finland | 29716.86 |
| 10151 | Finland | 32723.04 |
| 10155 | Finland | 37602.48 |
| 10158 | Norway | 1491.38 |
| 10161 | Denmark | 36164.46 |
| 10167 | Sweden | 44167.09 |
| 10181 | Norway | 55069.55 |
| 10188 | Norway | 29954.91 |
| 10238 | Denmark | 28211.70 |
| 10239 | Finland | 16212.59 |
| 10247 | Finland | 28394.54 |
| 10256 | Denmark | 4710.73 |
| 10284 | Norway | 32260.16 |
| 10289 | Norway | 12538.01 |
| 10291 | Sweden | 48809.90 |
| 10299 | Finland | 34341.08 |
| 10301 | Norway | 36798.88 |
| 10309 | Norway | 17876.32 |
| 10314 | Denmark | 53745.34 |
| 10320 | Sweden | 16799.03 |
| 10325 | Norway | 34638.14 |
| 10326 | Sweden | 19206.68 |
| 10327 | Denmark | 20564.86 |
| 10334 | Sweden | 23014.17 |
| 10363 | Finland | 45785.34 |
| 10373 | Finland | 46770.52 |
| 10377 | Finland | 23602.90 |
| 10389 | Sweden | 27966.54 |
| 10406 | Denmark | 21638.62 |
summary(data1)
## OrderNumber country total_value
## Min. :10103 Length:32 Min. : 1491
## 1st Qu.:10166 Class :character 1st Qu.:20225
## Median :10286 Mode :character Median :29836
## Mean :10257 Mean :30395
## 3rd Qu.:10325 3rd Qu.:39244
## Max. :10406 Max. :55070
| Order Number | Country | Total Value |
|---|---|---|
| 20001 | Norway | 50000 |
| 20002 | Denmark | 100000 |
Kita menggunakan library ggplot2 untuk membuat
histogram. Fungsi geom_histogram() digunakan untuk melihat
distribusi frekuensi nilai pesanan.
# Membuat histogram dari nilai pesanan
ggplot(data1, aes(x = total_value)) +
geom_histogram(aes(fill = after_stat(count)),
bins = 15, color='white') +
stat_bin(bins = 15, geom = "text",
aes(label =after_stat(count)), vjust=-0.5)+
scale_fill_gradient(low='lightgreen', high = 'darkgreen')+
scale_x_continuous(labels = label_dollar())+
scale_y_continuous(expand = expansion(c(0,0.15)))+
theme_minimal() +
labs(title = "Distribusi Nilai Pesanan di negara Nordic",
subtitle = "Negara : Denmark, Finland, Norway, Sweden",
x = "Nilai Pesanan (USD)",
y = "Frekuensi") +
theme(legend.position = "none")