library(knitr)

title: “Tugas Bintel R Markdown” author: “Nabila Rafa Aisha” date: “2025-05-25” output: html_document —

Business Intelligence

Nama : Nabila Rafa Aisha

NRP : 5006221089

Tujuan dan Deskripsi Data

Pada studi kasus ini data yang dipakai adalah dataset Indeks Kualitas Udara dan Kasus Penyakit Pernapasan per Kota dengan memuat 5 variabel, diantaranya variable kota, provinsi, AQI, Kasus, dan Penduduk. Untuk menginterpretasikan dan menganalisis data menjadi lebih mudah, maka dilakukan pembuatan visualisasi. Pembuatan visualisasi dapat menggunakan Lattice, ggplot2, dan Graphics Engine.

Berikut ini adalah visualisasi data pada indeks kulitas udara dan kasus penyakit pernapasan yang melibatkan variable Kasus dan variable AQI.

Scatterplot Kasus (Y) vs AQI (X) untuk Semua Kota Menggunakan xyplot()

Berikut ini syntax dan outup untuk visualisasi dengan Lattice dan Lattice Extra

library(lattice)
## Warning: package 'lattice' was built under R version 4.3.3
library(latticeExtra)
## Warning: package 'latticeExtra' was built under R version 4.3.3
library(readr)
## Warning: package 'readr' was built under R version 4.3.3
Kualitas_Udara <- read_csv("C:/Users/asus/Downloads/Data Indeks Kualitas Udara di Indonesia.csv")

xyplot(Kasus ~ AQI | Kota,
       data = Kualitas_Udara,
       groups = Provinsi,
       layout = c(5, 2),
       panel = function(x, y, ..., subscripts, groups) {
         panel.xyplot(x, y, ..., pch = 16)
         panel.lmline(x, y, col = "green", lty = 2)
         panel.abline(v = 100, col = "red", lty = 3)
         panel.text(x = 105, y = max(y, na.rm = TRUE), 
                    labels = "Batas Aman AQI", pos = 4, cex = 0.7, col = "blue")
       },
       auto.key = list(title = "Provinsi", columns = 2, points = TRUE, lines = FALSE)
)

Interpretasi : Dari gambar visualisasi diatas dapat diketahui bahwa terdapat 10 kota, yaitu kota Medan, Palembang, Semaranga, Surabaya, Tangerang, Bandung, Bekasi, Depok, Jakarta, dan Makassar. Dari 10 kota Bekasi dan Makassar cenderung melebihi dari batas aman AQI yang sebesar 100. Sedangkan untuk kota yang cenderung tidak melebihi dari batas aman adalah kota Medan.

Scatterplot AQI vs Kasus dengan Warna Berdasarkan Provinsi.

Berikut ini syntax dan outup untuk visualisasi dengan ggplot2

AQI vs Kasus berdasarkan Provinsi

library(ggplot2)

ggplot(Kualitas_Udara, aes(x = AQI, y = Kasus, color = Provinsi)) +
  geom_point(size = 2.5, alpha = 0.8) +
  labs(
    title = "Scatterplot AQI vs Kasus Penyakit Pernapasan",
    subtitle = "Warna titik mewakili masing-masing provinsi",
    x = "Air Quality Index (AQI)",
    y = "Jumlah Kasus per 1000 Penduduk",
    color = "Provinsi"
  ) +
  scale_color_brewer(palette = "Set1") +
  theme_minimal() +
  theme(
    plot.title = element_text(face = "bold", size = 14),
    plot.subtitle = element_text(size = 10),
    axis.text.x = element_text(angle = 0),
    legend.position = "right"
  )

Interpretasi : Dari gambar visualisasi Scatterplot antara index AQI dengan kasus penyakit pernafasan berdasarkan provinsi dapat dilihat bahwa jawa timur memiliki index AQI yang sangat besar dibandingkan provinsi lainnya, yaitu lebih dari 150. Sedangkan, pada sumatera selatan yang memiliki jumlah penduduk yang paling banyak, memiliki index AQI di anatara 100 sampai 150.

Jumlah penduduk per kota

library(ggplot2)

ggplot(Kualitas_Udara, aes(x = reorder(Kota, -Penduduk), y = Penduduk, fill = Provinsi)) +
  geom_bar(stat = "identity") +
  labs(
    title = "Jumlah Penduduk per Kota",
    x = "Kota",
    y = "Jumlah Penduduk"
  ) +
  scale_fill_brewer(palette = "Set1") +
  theme_minimal() +
  theme(axis.text.x = element_text(angle = 45, hjust = 1))

Interpretasi : Dari gambar visualisasi antara 10 kota dengan jumlah penduduk dapat dilihat bahwa kota medan dan surabaya memiliki jumlah penduduk yang hampir sama dan paling banyak dinatara kota lainnya. Sedangkan, untuk kota dengan jumlah penduduk terendah adalah kota jakarta

AQI berdasarkan provinsi

library(ggplot2)

ggplot(Kualitas_Udara, mapping = aes(AQI, Provinsi)) + 
  geom_boxplot() +
  labs(
    title = "AQI tiap Provinsi",
    x = "AQI",
    y = "Provinsi"
  ) +
  scale_fill_brewer(palette = "Set1") +
  theme_minimal()

Interpretasi : Dari gambar visualisasi AQI untuk tiap provinsi dapat dilihat bahwa Provinsi Banten memiliki jumlah AQI kurang dari 100 lebih banyak dari provinsi lainnya. Sedangkan, untuk provinsi laiinnya cenderung memiliki proporsi yang sama antara indeks AQI dengan rentang 100 sampai 150.

Visualisasi dengan Graphics Engine

untuk menyimpan gambar menjadi format pdf atau jpg dari grafik yang telah dibuat dapat menggunkaan syntax berikut:

Simpan ke format PDF

library(lattice)

# Simpan output ke file PDF
pdf(file = "scatterplot Kasus (Y) vs AQI (X).pdf")

xyplot(Kasus ~ AQI | Kota,
       data = Kualitas_Udara,
       groups = Provinsi,
       layout = c(5, 2), # Sesuaikan dengan jumlah kota
       panel = function(x, y, ..., subscripts, groups) {
         # Scatterplot
         panel.xyplot(x, y, ..., pch = 16)
         
         # Garis regresi
         panel.lmline(x, y, col = "green", lty = 2)
         
         # Garis batas AQI normal
         panel.abline(v = 100, col = "red", lty = 3)
         
         # Keterangan batas aman
         panel.text(x = 105, y = max(y, na.rm = TRUE),
                    labels = "Batas Aman AQI", pos = 4, cex = 0.7, col = "blue")
       },
       auto.key = list(title = "Provinsi", columns = 2, points = TRUE, lines = FALSE)
)

dev.off()
## png 
##   2

Simpan ke format PNG

library(ggplot2)

# Simpan output ke file PNG
png("Jumlah Penduduk per kota.png")

ggplot(Kualitas_Udara, aes(x = reorder(Kota, -Penduduk), y = Penduduk, fill = Provinsi)) +
  geom_bar(stat = "identity") +
  labs(
    title = "Jumlah Penduduk per Kota",
    x = "Kota",
    y = "Jumlah Penduduk"
  ) +
  scale_fill_brewer(palette = "Set1") +
  theme_minimal() +
  theme(axis.text.x = element_text(angle = 45, hjust = 1))

dev.off()
## png 
##   2

Syntax bisa disesuaikan sesuai kebutuhan masing-masing. File PDF dan JPG akan langsung tersimpan kedalam device atau directory yang diinginkan.