1. Pendahuluan dan Sumber Data

2. Persiapan Data

Langkah pertama adalah memanggil paket bantuan (library) dan memasukkan data Excel ke dalam R.

library(ggplot2)
library(readxl)

library(ggplot2)
library(readxl)

# Gunakan file.choose() agar muncul jendela pemilih berkas
data_obesitas <- read_excel(file.choose(), skip = 3, col_names = FALSE)
## New names:
## • `` -> `...1`
## • `` -> `...2`
colnames(data_obesitas) <- c("wilayah", "prevalensi")
data_obesitas
## # A tibble: 3 × 2
##   wilayah             prevalensi
##   <chr>               <chr>     
## 1 Perkotaan           39.7      
## 2 Perdesaan           30        
## 3 Perkotaan+Perdesaan 35.4

3. Visualisasi Data Kategorik

Visualisasi data kategorik digunakan untuk melihat perbandingan antar kelompok (Perkotaan vs Perdesaan), grafik yang paling tepat adalah Bar Chart (Diagram Batang).

ggplot(data_obesitas, aes(x = wilayah, y = prevalensi, fill = wilayah)) +
  geom_col(width = 0.6) +
  geom_text(aes(label = prevalensi), vjust = -0.5, size = 4) +
  labs(
    title = "Prevalensi Obesitas pada Usia > 18 Tahun Berdasarkan Wilayah (2018)",
    subtitle = "Fokus Bidang: Kesehatan",
    x = "Wilayah",
    y = "Prevalensi (%)"
  ) +
  theme_minimal()

Berdasarkan diagram batang di atas, terlihat jelas bahwa prevalensi obesitas pada penduduk usia di atas 18 tahun lebih tinggi di wilayah Perkotaan (39.7%) dibandingkan dengan wilayah Perdesaan (30%). Secara agregat (nasional gabungan), rata-rata prevalensinya adalah 35.4%. Hal ini mengindikasikan bahwa gaya hidup, pola makan, atau tingkat aktivitas fisik masyarakat di perkotaan berpotensi lebih memicu terjadinya obesitas dibandingkan masyarakat di perdesaan.

4. Visualisasi Data Numerik

Karena data asli dari Excel yang digunakan adalah data agregat (hanya ringkasan 3 angka), data tersebut tidak bisa dijadikan grafik distribusi (seperti Histogram). Oleh karena itu, untuk memenuhi prasyarat tugas visualisasi data numerik, di bawah ini disimulasikan sebaran Indeks Massa Tubuh (IMT) dari 200 responden hipotetis di salah satu perkotaan.

set.seed(123)
data_imt <- data.frame(IMT = rnorm(n = 200, mean = 25, sd = 4))
ggplot(data = data_imt, aes(x = IMT)) +
  geom_histogram(fill = "steelblue", color = "white", bins = 20) +
  geom_vline(aes(xintercept = mean(IMT)), color = "red", linetype = "dashed", size = 1) +
  labs(title = "Distribusi Indeks Massa Tubuh (IMT) Responden",
       subtitle = "Garis merah menunjukkan rata-rata IMT",
       x = "Nilai Indeks Massa Tubuh (IMT)",
       y = "Frekuensi (Jumlah Orang)") +
  theme_minimal()
## Warning: Using `size` aesthetic for lines was deprecated in ggplot2 3.4.0.
## ℹ Please use `linewidth` instead.
## This warning is displayed once per session.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.

Histogram di atas menunjukkan distribusi data numerik dari Indeks Massa Tubuh responden. Bentuk grafik yang menyerupai lonceng (bell-curve) menunjukkan bahwa data terdistribusi secara normal. Mayoritas responden memusat pada nilai IMT di angka 25 (ditandai dengan garis putus-putus merah). Sebagian kecil responden memiliki IMT di bawah 20 (kurus) dan di atas 30 (sangat obesitas).