# Memuat paket yang diperlukan untuk visualisasi
library(DBI)
library(odbc)
library(ggplot2)
library(scales)
/* Penggunaan Inline CSS pada R-Markdown */

Pendahuluan

Penulisan Dengan Struktur 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:

🔗Dokumentasi R-Markdown

Penulisan Dengan tag html

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.

🔗 Pelajari lebih lanjut tentang R-Markdown

Data

Proses ini mengintegrasikan SQL untuk pengambilan data dan R untuk visualisasi.

Koneksi 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       = "Pemalang07_",
                      Port      = 3306)

Ambil Data

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.

query <- "SELECT o.ordernumber, country, sum(quantityordered*priceeach) as total_value
FROM orders o
JOIN orderdetails od ON o.orderNumber=od.orderNumber
JOIN customers_old c ON o.customerNumber=c.customerNumber
WHERE country IN ('Denmark', 'Finland', 'Norway', 'Sweden')
GROUP BY o.orderNumber"

data <- dbGetQuery(con, query)

Ringkasan Data

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(data,
             caption = "Data Nilai Pesanan Negara Nordic",
             col.names = c("Order Number", "Country", "Total Value"))
Data Nilai Pesanan Negara Nordic
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(data)
##   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

Contoh Membuat Tabel Data Secara Manual

Order Number Country Total Value
20001 Norway 50000
20002 Denmark 100000

Analisis Data

Laporan ini menyajikan analisis data untuk nilai pesanan dari negara-negara Nordic dari database classicmodels.

Menambahkan Gambar

Menambahkan Gambar dengan sintaks Markdown

Gambar 1. Peta Negara-Negara Nordic dengan sintaks Markdown
Gambar 1. Peta Negara-Negara Nordic dengan sintaks Markdown

Menambahkan Gambar dengan tag HTML

Gambar 2. Peta Negara-Negara Nordic dengan tag HTML

Visualisasi banyaknya item tiap product scale

Kita menggunakan library ggplot2 untuk membuat histogram. Fungsi geom_histogram() digunakan untuk melihat distribusi frekuensi nilai pesanan.

# Membuat histogram dari nilai pesanan

ggplot(data, 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")

Referensi Cheat Sheet untuk Penggunaan CSS

🔗 Referensi Cheatsheet CSS