VIASUALISASI DATA BESAR

library(ggplot2)
warna_utama  <- "#DA4F8E"
warna_netral <- "#FFA6CA"

tema_visual <- theme_minimal(base_size = 12) +
  theme(
    plot.title = element_text(face = "bold", size = 16),
    plot.subtitle = element_text(color = "#4B5D67", size = 11),
    plot.caption = element_text(
      color = "#657681", size = 9, hjust = 0
    ),
    panel.grid.minor = element_blank(),
    axis.title = element_text(size = 11),
    plot.margin = margin(15, 20, 15, 15)
  )

1. Keterisian tempat tidur rumah sakit (Slide 6)

data_rs <- data.frame(
  tanggal = factor(
    c("29 Jan", "30 Jan", "31 Jan", "1 Feb"),
    levels = c("29 Jan", "30 Jan", "31 Jan", "1 Feb")
  ),
  keterisian = c(54, 57, 57, 60)
)

grafik_rs <- ggplot(
  data_rs,
  aes(x = tanggal, y = keterisian, group = 1)
) +
  geom_line(color = warna_utama, linewidth = 1.2) +
  geom_point(color = warna_utama, size = 3.5) +
  geom_text(
    aes(label = paste0(keterisian, "%")),
    vjust = -1,
    fontface = "bold",
    size = 4
  ) +
  scale_y_continuous(
    limits = c(0, 100),
    breaks = seq(0, 100, 20),
    labels = function(x) paste0(x, "%"),
    expand = expansion(mult = c(0, 0.03))
  ) +
  labs(
    title = "Keterisian tempat tidur RS di DKI Jakarta",
    subtitle = "Naik 6 poin persentase dari 29 Januari hingga 1 Februari",
    x = NULL,
    y = "Tingkat keterisian",
    caption = paste(
      "slide 6 : Dinas Kesehatan DKI Jakarta"
    )
  ) +
  tema_visual +
  theme(panel.grid.major.x = element_blank())

print(grafik_rs)

Alasan perbaikan :

Persentase 54%, 57%, 57%, dan 60% merupakan tingkat keterisian tempat tidur rumah sakit pada empat tanggal berbeda, bukan bagian dari satu keseluruhan. Oleh karena itu, diagram lingkaran tidak tepat digunakan karena nilai-nilai tersebut tidak membentuk komposisi yang berjumlah 100%.

Perbaikan yang dilakukan :

Diagram lingkaran diubah menjadi grafik garis (line chart) dengan tanggal yang disusun secara kronologis. Grafik ini memudahkan pembaca melihat perubahan tingkat keterisian dari waktu ke waktu. Label persentase ditambahkan pada setiap titik agar nilainya mudah dibaca.

Interpretasi :

Tingkat keterisian tempat tidur rumah sakit meningkat dari 54% pada 29 Januari menjadi 60% pada 1 Februari, atau naik 6 poin persentase. Keterisian mencapai 57% pada 30 Januari dan tetap pada nilai yang sama pada 31 Januari, sebelum meningkat menjadi 60% pada 1 Februari.

2. Komposis Sistem Pembayaran (slide 7)

data_bayar <- data.frame(
  metode = c("M-Banking", "COD", "Lainnya", "Paylater/Cicilan"),
  persentase = c(64, 20, 14, 2)
)

# Memastikan komposisi berjumlah 100%
stopifnot(sum(data_bayar$persentase) == 100)

data_bayar$sorotan <- ifelse(
  data_bayar$metode == "M-Banking",
  "Utama",
  "Lainnya"
)

grafik_bayar <- ggplot(
  data_bayar,
  aes(
    x = persentase,
    y = reorder(metode, persentase),
    fill = sorotan
  )
) +
  geom_col(width = 0.6) +
  geom_text(
    aes(label = paste0(persentase, "%")),
    hjust = -0.2,
    fontface = "bold",
    size = 4
  ) +
  scale_fill_manual(
    values = c("Utama" = warna_utama, "Lainnya" = warna_netral),
    guide = "none"
  ) +
  scale_x_continuous(
    limits = c(0, 100),
    breaks = seq(0, 100, 20),
    labels = function(x) paste0(x, "%"),
    expand = expansion(mult = c(0, 0.02))
  ) +
  labs(
    title = "Komposisi sistem pembayaran",
    subtitle = "M-Banking memiliki proporsi terbesar, yaitu 64%",
    x = "Persentase",
    y = NULL,
    caption = paste(
      "Sumber: slide 7."
    )
  ) +
  tema_visual +
  theme(panel.grid.major.y = element_blank())

print(grafik_bayar)

Alasan Perbaikan :

Diagram lingkaran pada visualisasi awal dapat digunakan untuk menyajikan komposisi karena seluruh persentasenya berjumlah 100%. Namun, perbandingan antarkategori kurang mudah dilakukan karena pembaca harus membandingkan sudut atau luas juring, terutama pada kategori dengan proporsi kecil. Penempatan legenda yang terpisah juga mengharuskan pembaca mencocokkan warna juring dengan nama kategori.

Perbaikan yang dilakukan :

Diagram lingkaran diubah menjadi diagram batang horizontal dengan kategori yang diurutkan berdasarkan persentase terbesar hingga terkecil. Penyajian ini memudahkan perbandingan antarkategori melalui panjang batang yang menggunakan titik awal dan skala yang sama. Nama kategori ditempatkan di samping batang, sedangkan label persentase dicantumkan pada ujung batang sehingga pembaca tidak perlu merujuk pada legenda.

Warna merah muda yang lebih gelap digunakan untuk menonjolkan M-Banking sebagai kategori dengan proporsi terbesar, sementara kategori lainnya menggunakan warna yang lebih terang. Sumbu persentase ditampilkan dari 0% hingga 100% agar panjang batang merepresentasikan besarnya proporsi secara konsisten.

Interpretasi :

M-Banking memiliki proporsi terbesar, yaitu 64%, diikuti COD sebesar 20%, kategori lainnya sebesar 14%, serta Paylater/Cicilan sebesar 2%. Proporsi M-Banking lebih tinggi 44 poin persentase dibandingkan COD dan melebihi gabungan ketiga kategori lainnya yang berjumlah 36%. Dengan demikian, M-Banking mendominasi komposisi metode pembayaran dalam data yang ditampilkan.

3. Penggunaan Komputer antarprovinsi (Slide 8)

data_komputer <- data.frame(
  provinsi = c(
    "Aceh",
    "Sumatera Utara",
    "Sumatera Barat",
    "Riau",
    "Jambi",
    "Sumatera Selatan",
    "Bengkulu",
    "Lampung",
    "Kep. Bangka Belitung",
    "Kep. Riau",
    "DKI Jakarta",
    "Jawa Barat",
    "Jawa Tengah",
    "DI Yogyakarta",
    "Jawa Timur",
    "Banten",
    "Bali",
    "Nusa Tenggara Barat",
    "Nusa Tenggara Timur",
    "Kalimantan Barat",
    "Kalimantan Tengah",
    "Kalimantan Selatan",
    "Kalimantan Timur",
    "Kalimantan Utara",
    "Sulawesi Utara",
    "Sulawesi Tengah",
    "Sulawesi Selatan",
    "Sulawesi Tenggara",
    "Gorontalo",
    "Sulawesi Barat",
    "Maluku",
    "Maluku Utara",
    "Papua Barat",
    "Papua"
  ),
  persentase = c(
    11.64, 14.17, 17.00, 14.50, 12.20, 11.10,
    14.89, 9.94, 12.01, 20.72, 23.51, 14.52,
    13.17, 23.35, 14.22, 15.27, 18.62, 12.03,
    11.39, 10.45, 13.58, 17.35, 19.42, 18.02,
    14.27, 13.61, 15.41, 15.80, 16.46, 12.30,
    13.78, 11.26, 14.04, 8.20
  )
)

# Memastikan jumlah provinsi dan rentang persentase sesuai
stopifnot(
  nrow(data_komputer) == 34,
  all(data_komputer$persentase >= 0),
  all(data_komputer$persentase <= 100)
)

# Soroti dua nilai tertinggi dan satu nilai terendah
data_komputer$sorotan <- ifelse(
  data_komputer$provinsi %in%
    c("DKI Jakarta", "DI Yogyakarta", "Papua"),
  "Sorotan",
  "Lainnya"
)

# Label dengan dua desimal dan tanda desimal koma
data_komputer$label <- paste0(
  formatC(
    data_komputer$persentase,
    format = "f",
    digits = 2,
    decimal.mark = ","
  ),
  "%"
)

grafik_komputer <- ggplot(
  data_komputer,
  aes(
    x = persentase,
    y = reorder(provinsi, persentase),
    fill = sorotan
  )
) +
  geom_col(width = 0.7) +
  geom_text(
    aes(label = label),
    hjust = -0.15,
    size = 3.2
  ) +
  scale_fill_manual(
    values = c(
      "Sorotan" = warna_utama,
      "Lainnya" = warna_netral
    ),
    guide = "none"
  ) +
  scale_x_continuous(
    limits = c(0, 27),
    breaks = seq(0, 25, 5),
    labels = function(x) paste0(x, "%"),
    expand = expansion(mult = c(0, 0))
  ) +
  labs(
    title = "Penggunaan komputer antarprovinsi, 2019",
    subtitle = "DKI Jakarta 23,51%; DI Yogyakarta 23,35%; Papua 8,20%",
    x = "Masyarakat yang menggunakan komputer (%)",
    y = NULL,
    caption = paste(
      "Sumber: data grafik slide 8; BPS (2019),"
    )
  ) +
  tema_visual +
  theme(
    panel.grid.major.y = element_blank(),
    axis.text.y = element_text(size = 10)
  )

print(grafik_komputer)

Alasan Perbaikan :

Visualisasi awal menyajikan data yang sama dalam dua diagram batang, yaitu vertikal dan horizontal. Penyajian tersebut menimbulkan pengulangan informasi dan mengurangi ruang untuk menampilkan setiap grafik secara optimal. Pada diagram vertikal, nama provinsi ditulis dengan orientasi tegak sehingga memerlukan upaya lebih untuk membacanya. Selain itu, provinsi belum diurutkan berdasarkan persentase penggunaan komputer sehingga pembaca sulit mengidentifikasi peringkat dan membandingkan nilai antarprovinsi. Ketiadaan label nilai pada batang juga mengharuskan pembaca memperkirakan persentase berdasarkan skala sumbu.

Perbaikan yang dilakukan :

Kedua diagram disederhanakan menjadi satu diagram batang horizontal yang menampilkan seluruh provinsi secara berurutan, dari persentase tertinggi hingga terendah. Pengurutan ini memudahkan identifikasi posisi relatif setiap provinsi. Label persentase dengan dua angka desimal ditambahkan pada ujung batang agar pembaca dapat mengetahui nilai secara langsung.

Warna merah muda yang lebih gelap digunakan untuk menyoroti DKI Jakarta dan DI Yogyakarta sebagai dua provinsi dengan persentase tertinggi, serta Papua sebagai provinsi dengan persentase terendah. Provinsi lainnya menggunakan warna yang lebih terang. Judul mencantumkan tahun pengamatan, sedangkan subjudul menegaskan nilai yang menjadi perhatian utama. Sumbu horizontal tetap dimulai dari nol agar panjang batang menggambarkan perbandingan nilai secara proporsional.

Interpretasi :

Pada tahun 2019, DKI Jakarta memiliki persentase masyarakat yang menggunakan komputer tertinggi, yaitu 23,51%, diikuti DI Yogyakarta sebesar 23,35% dan Kepulauan Riau sebesar 20,72%. Sementara itu, Papua memiliki persentase terendah, yaitu 8,20%. Selisih antara DKI Jakarta dan Papua mencapai 15,31 poin persentase, yang menunjukkan adanya kesenjangan penggunaan komputer antarprovinsi secara deskriptif.Persentase DKI Jakarta dan DI Yogyakarta relatif berdekatan, dengan selisih 0,16 poin persentase