Mengatur Dimensi Gambar secara Manual

A <- c("a", "a", "b", "b") 
B <- c(5, 10, 15, 20) 
dataframe <- data.frame(A, B) 
print(dataframe) 
##   A  B
## 1 a  5
## 2 a 10
## 3 b 15
## 4 b 20
boxplot(B~A,data=dataframe) 

Kable adalah Fungsi Pemformatan Tabel paling Estetis dan Sederhana

library(knitr) 
## Warning: package 'knitr' was built under R version 4.5.2
kable(dataframe, digits = 2) 
A B
a 5
a 10
b 15
b 20

Mengontrol konten tabel dapat menggunakan pander() dalam package pander. Misalkan ingin kolom ke-3 muncul dalam huruf miring:

library(pander) 
## Warning: package 'pander' was built under R version 4.5.2
plant <- c("a", "b", "c") 
temperature <- c(20, 20, 20) 
growth <- c(0.65, 0.95, 0.15) 
dataframe <- data.frame(plant, temperature, growth) 
emphasize.italics.cols(3)                             # Make the 3rd column italics 
pander(dataframe)                                     # Create the table 
plant temperature growth
a 20 0.65
b 20 0.95
c 20 0.15

Contoh

#Memuat paket yang diperlukan untuk koneksi database dan visualisasi 
library(DBI) 
## Warning: package 'DBI' was built under R version 4.5.2
library(odbc)
## Warning: package 'odbc' was built under R version 4.5.2
library(ggplot2) 
## Warning: package 'ggplot2' was built under R version 4.5.2
library(scales) 
## Warning: package 'scales' was built under R version 4.5.2

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()

con2 = dbConnect(odbc(),
                 Driver = "MySQL ODBC 8.0 ANSI Driver",
                 Server = "127.0.0.1",
                 Database = "classicmodels",
                 UID = "root",
                 PWD = "WJ28@krhps",
                 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(con2, "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

Membuat atau Mengambil Data dari SQL

#Mendapatkan data yang diperlukan
query1 <-  "SELECT o.ordernumber, country, SUM(quantityordered*priceeach) AS total_values
            FROM orders o
            JOIN orderdetails od ON o.orderNumber=od.orderNumber
            JOIN customers c ON o.customerNumber=c.customerNumber
            WHERE country IN ('Denmark', 'Finland', 'Norway', 'Sweden')
            GROUP BY o.orderNumber;"
data1 <- dbGetQuery(con2, query1)
data1
##    ordernumber  country total_values
## 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

Visualisasi banyaknya item tiap product scale

Kita menggunakan library ggplot2 untuk membuat barchart. Fungsi geom_histogram() digunakan untuk melihat distribusi frekuensi.

#Membuat barchart untuk banyaknya item tiap product scale
ggplot(data1, aes(x = total_values)) + 
  geom_histogram(aes(fill = after_stat(count)),
                 bins = 15, color="black") + 
  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")

Informasi

echo → Menentukan apakah KODE R ditampilkan di output dokumen atau hanya hasilnya saja. message → Mengatur apakah PESAN dari R (message) ditampilkan atau disembunyikan saat kode dijalankan. warning → Mengatur apakah PERINGATAN (warning) dari R ditampilkan dalam output. include → Menentukan apakah KODE dan HASILnya dimasukkan ke dalam dokumen output atau tidak. eval → Menentukan apakah kode benar-benar DIJALANKAN (dievaluasi) atau hanya ditampilkan saja. binwidth → Menentukan lebar setiap interval (kelas) pada histogram. bins → Menentukan jumlah interval (kelas) yang membagi data pada histogram.