Tugas Mandiri Visualisasi Data

Praktikum Pertemuan 1

Penulis

Dinda Ardhia Ramadhani Kusuma (M0501251046)

Tugas Mandiri 1 - Visualisasi Data Besar (Praktikum)

Silakan tinjau kembali materi visualisasi data besar yang telah dibahas pada perkuliahan hari ini. Pilih beberapa slide yang menurut Anda visualisasinya perlu diperbaiki atau ditingkatkan, kemudian buat versi visualisasi yang lebih baik.

Untuk setiap visualisasi yang diperbaiki, sertakan:

  1. Alasan perbaikan: Mengapa visualisasi tersebut perlu diperbaiki?

  2. Perbaikan yang dilakukan: Apa yang diubah dan bagaimana perbaikan tersebut membuat visualisasi lebih efektif?

  3. Interpretasi: Jelaskan makna atau informasi utama yang ditampilkan oleh visualisasi tersebut.

Penyelesaian:

Visualisasi Perbaikan 1

Alasan Perbaikan: Visualisasi awal menggunakan diagram lingkaran (pie chart) untuk menunjukkan tingkat keterisian tempat tidur rumah sakit selama empat hari. Diagram tersebut kurang tepat karena data yang ditampilkan merupakan data runtun waktu (time series) yang menunjukkan perubahan persentase dari hari ke hari. Diagram lingkaran lebih sesuai untuk menggambarkan proporsi bagian terhadap keseluruhan pada satu waktu tertentu. Selain itu, penggunaan efek tiga dimensi, warna yang mencolok, serta latar belakang yang ramai dapat mengurangi keterbacaan data dan menyulitkan pembaca dalam membandingkan nilai antartanggal.

Perbaikan:

# Memanggil paket
library(ggplot2)

# Membuat data
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)
)

# Membuat diagram garis
ggplot(data_rs, aes(x = Tanggal, y = Keterisian, group = 1)) +
  geom_line(color = "#1596A6", linewidth = 1.2) +
  geom_point(color = "#1596A6", size = 3.5) +
  geom_text(
    aes(label = paste0(Keterisian, "%")),
    vjust = -1,
    size = 4.5,
    fontface = "bold",
    color = "#174A7E"
  ) +
  scale_y_continuous(
    limits = c(50, 65),
    breaks = seq(50, 65, by = 5),
    labels = function(x) paste0(x, "%")
  ) +
  labs(
    title = "Tingkat Keterisian Tempat Tidur RS di DKI Jakarta",
    x = "Tanggal",
    y = "Tingkat Keterisian (%)",
    caption = "Sumber: Dinas Kesehatan DKI Jakarta"
  ) +
  theme_minimal(base_size = 12) +
  theme(
    plot.title = element_text(
      face = "bold", size = 15, color = "#174A7E"
    ),
    axis.title = element_text(face = "bold"),
    panel.grid.minor = element_blank(),
    panel.grid.major.x = element_blank(),
    plot.caption = element_text(hjust = 1)
  )

Perbaikan dilakukan dengan mengubah diagram lingkaran (pie chart) tiga dimensi menjadi diagram garis (line chart) menggunakan bahasa pemrograman R dengan paket ggplot2. Diagram garis dipilih karena lebih efektif untuk menggambarkan perubahan tingkat keterisian tempat tidur rumah sakit dari waktu ke waktu.

Beberapa perbaikan yang dilakukan adalah:

  • Mengubah jenis grafik: Diagram lingkaran diganti menjadi diagram garis agar pola perubahan tingkat keterisian dari hari ke hari lebih mudah diamati.

  • Menyederhanakan tampilan: Efek tiga dimensi, latar belakang yang ramai, dan penggunaan warna yang berlebihan dihilangkan agar perhatian pembaca terpusat pada data.

  • Menambahkan label persentase: Setiap titik diberi label nilai 54%, 57%, 57%, dan 60% sehingga pembaca dapat mengetahui nilai secara langsung tanpa memperkirakannya dari grafik.

  • Memperjelas sumbu grafik: Sumbu horizontal menunjukkan tanggal pengamatan, sedangkan sumbu vertikal menunjukkan tingkat keterisian dalam persen. Garis bantu horizontal juga ditambahkan untuk memudahkan perbandingan nilai.

  • Menggunakan warna yang konsisten: Warna biru kehijauan pada garis dan titik serta warna biru tua pada label membuat grafik terlihat lebih rapi dan mudah dibaca.

Perbaikan ini membuat informasi lebih jelas, mudah dibandingkan, dan lebih cepat dipahami oleh pembaca.

Interpretasi: Berdasarkan diagram garis yang telah diperbaiki, tingkat keterisian tempat tidur rumah sakit di DKI Jakarta menunjukkan kecenderungan meningkat selama periode 29 Januari hingga 1 Februari. Pada 29 Januari, tingkat keterisian tercatat sebesar 54%, kemudian meningkat menjadi 57% pada 30 Januari. Pada 31 Januari, nilainya tetap sebesar 57%, sebelum kembali meningkat menjadi 60% pada 1 Februari.

Secara keseluruhan, tingkat keterisian mengalami kenaikan sebesar 6 poin persentase, dari 54% menjadi 60%. Kenaikan terbesar terjadi antara 29 dan 30 Januari serta antara 31 Januari dan 1 Februari, masing-masing sebesar 3 poin persentase. Sementara itu, tidak terjadi perubahan antara 30 dan 31 Januari.

Visualisasi Perbaikan 2

Alasan Perbaikan: Visualisasi awal menggunakan diagram lingkaran (pie chart) dengan warna yang relatif mirip dan latar belakang kuning yang mencolok. Pemilihan warna tersebut membuat beberapa irisan sulit dibedakan dengan jelas, terutama ketika pembaca ingin membandingkan kategori yang memiliki proporsi kecil, seperti Paylater/Cicilan sebesar 2%.

Selain itu, latar belakang yang terlalu mencolok dapat mengalihkan perhatian pembaca dari informasi utama yang disajikan. Oleh karena itu, visualisasi perlu diperbaiki melalui pemilihan warna yang lebih kontras dan tampilan yang lebih sederhana, tanpa mengubah jenis diagram maupun nilai data. Diagram lingkaran tetap dipertahankan karena sesuai untuk menggambarkan proporsi setiap kategori sistem pembayaran terhadap keseluruhan.

Perbaikan:

library(ggplot2)
library(ggrepel)
Warning: package 'ggrepel' was built under R version 4.5.3
# Data sistem pembayaran
data_pembayaran <- data.frame(
  Sistem = c("COD", "M-Banking",
             "Paylater/Cicilan", "Lainnya"),
  Persentase = c(20, 64, 2, 14)
)

# Menghitung posisi tengah irisan
data_pembayaran$posisi <- cumsum(data_pembayaran$Persentase) -
  data_pembayaran$Persentase / 2

# Diagram lingkaran
ggplot(data_pembayaran,
       aes(x = 1, y = Persentase, fill = Sistem)) +
  geom_col(
    width = 1,
    color = "white",
    linewidth = 1
  ) +
  coord_polar(theta = "y", clip = "off") +

  # Label persentase di luar lingkaran
  geom_text_repel(
    aes(
      x = 1.7,
      y = posisi,
      label = paste0(Persentase, "%")
    ),
    inherit.aes = FALSE,
    direction = "y",
    nudge_x = 0.3,
    segment.color = "grey40",
    min.segment.length = 0,
    size = 4,
    seed = 123
  ) +

  scale_fill_manual(
    values = c(
      "COD" = "#2878B5",
      "M-Banking" = "#F28E2B",
      "Paylater/Cicilan" = "#59A14F",
      "Lainnya" = "#B07AA1"
    )
  ) +
  scale_x_continuous(
    limits = c(0.5, 2.5),
    expand = c(0, 0)
  ) +
  labs(
    title = "Distribusi Sistem Pembayaran",
    fill = "Sistem Pembayaran"
  ) +
  theme_void() +
  theme(
    plot.title = element_text(
      face = "bold",
      size = 15,
      hjust = 0.5
    ),
    legend.position = "right",
    plot.margin = margin(20, 50, 20, 50)
  )

Perbaikan dilakukan dengan mempertahankan diagram lingkaran, tetapi mengganti warna setiap kategori menggunakan kombinasi biru, oranye, hijau, dan ungu agar perbedaan antaririsan lebih mudah dikenali. Selain itu, latar belakang kuning diganti dengan tampilan yang lebih sederhana, garis pemisah putih ditambahkan untuk memperjelas batas setiap irisan, dan label persentase dibuat tebal agar mudah dibaca. Legenda juga ditampilkan secara jelas di sisi kanan diagram untuk membantu pembaca mengidentifikasi setiap kategori.

Perbaikan tersebut membuat visualisasi lebih nyaman dilihat, meningkatkan keterbacaan, dan mempermudah pembaca membandingkan proporsi antarkategori, termasuk kategori dengan persentase yang kecil.

Interpretasi: Berdasarkan visualisasi tersebut, sistem pembayaran yang paling banyak digunakan adalah M-Banking sebesar 64%, diikuti oleh COD sebesar 20%, sistem pembayaran lainnya sebesar 14%, dan Paylater/Cicilan sebesar 2%. M-Banking mendominasi distribusi sistem pembayaran dengan persentase hampir dua pertiga dari keseluruhan data. Sementara itu, Paylater/Cicilan memiliki persentase paling rendah, yaitu hanya 2%.

Visualisasi Perbaikan 3

Alasan Perbaikan: Visualisasi awal menampilkan persentase masyarakat yang menggunakan komputer di berbagai provinsi pada tahun 2019 dalam dua diagram batang, yaitu vertikal dan horizontal. Kedua diagram menyajikan informasi yang sama sehingga tampilannya menjadi berulang. Selain itu, nama provinsi pada diagram vertikal harus ditampilkan secara miring, sedangkan diagram horizontal memiliki label yang relatif kecil. Perbaikan dilakukan dengan memilih diagram batang horizontal saja karena nama provinsi cukup panjang dan jumlah kategorinya banyak. Diagram horizontal memungkinkan nama provinsi ditampilkan secara mendatar sehingga lebih mudah dibaca dan dibandingkan.

Perbaikan:

library(ggplot2)

# Memasukkan data
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
  )
)

# Urutkan dari nilai tertinggi ke terendah
data_komputer$Provinsi <- factor(
  data_komputer$Provinsi,
  levels = data_komputer$Provinsi[
    order(data_komputer$Persentase)
  ]
)

# Membuat diagram batang horizontal
p <- ggplot(
  data_komputer,
  aes(x = Persentase, y = Provinsi)
) +
  geom_col(
    fill = "#3984A8",
    width = 0.5
  ) +
  geom_text(
    aes(label = paste0(
      formatC(
        Persentase,
        format = "f",
        digits = 2,
        decimal.mark = ","
      ),
      "%"
    )),
    hjust = -0.15,
    size = 3.1
  ) +
  scale_x_continuous(
    name = "Persentase (%)",
    breaks = seq(0, 25, 5),
    limits = c(0, 27),
    expand = expansion(mult = c(0, 0))
  ) +
  labs(
    title = "Persentase Masyarakat yang Menggunakan Komputer",
    subtitle = "Menurut Provinsi di Indonesia, Tahun 2019",
    y = NULL,
    caption = "Sumber: BPS, data tahun 2019"
  ) +
  theme_minimal(base_size = 11) +
  theme(
    plot.title = element_text(
      face = "bold",
      size = 14
    ),
    plot.subtitle = element_text(size = 10),
    axis.text.y = element_text(size = 8.5),
    axis.text.x = element_text(size = 9),
    axis.title.x = element_text(face = "bold"),
    panel.grid.major.y = element_blank(),
    panel.grid.minor = element_blank(),
    plot.caption = element_text(
      hjust = 0,
      size = 9
    ),
    plot.margin = margin(12, 25, 12, 12)
  )

print(p)

Beberapa perbaikan yang dilakukan adalah:

  • Memilih satu jenis diagram. Diagram batang horizontal digunakan untuk menghilangkan pengulangan informasi dari dua diagram.
  • Mengurutkan data berdasarkan persentase. Provinsi diurutkan dari persentase tertinggi ke terendah agar provinsi dengan nilai tertinggi dan terendah lebih mudah dikenali.

  • Menambahkan label persentase. Angka ditampilkan di ujung setiap batang sehingga pembaca tidak perlu memperkirakan nilai hanya berdasarkan sumbu.

  • Memperjelas nama provinsi. Nama provinsi ditampilkan secara horizontal dengan ukuran huruf yang cukup terbaca.

  • Menyederhanakan tampilan. Warna batang dibuat konsisten dan garis kisi dikurangi agar perhatian pembaca terarah pada perbandingan nilai.

  • Memperbaiki judul dan sumber data. Judul menjelaskan variabel dan periode pengamatan, sedangkan sumber dicantumkan secara jelas di bawah grafik.

Interpretasi: Berdasarkan diagram batang horizontal, persentase masyarakat yang menggunakan komputer di berbagai provinsi di Indonesia pada tahun 2019 menunjukkan variasi antardaerah. DKI Jakarta memiliki persentase tertinggi sebesar 23,51%, diikuti oleh DI Yogyakarta sebesar 23,35% dan Kepulauan Riau sebesar 20,72%. Sementara itu, Papua memiliki persentase terendah sebesar 8,20%, diikuti oleh Lampung sebesar 9,94% dan Kalimantan Barat sebesar 10,45%.

Beberapa provinsi lain juga memiliki persentase yang relatif tinggi, seperti Kalimantan Timur (19,42%), Bali (18,62%), dan Kalimantan Utara (18,02%). Sebaliknya, sejumlah provinsi memiliki persentase di bawah 12%, antara lain Sumatera Selatan, Maluku Utara, Nusa Tenggara Timur, dan Papua.

Selisih antara persentase tertinggi di DKI Jakarta dan terendah di Papua mencapai 15,31 poin persentase. Hal ini menunjukkan adanya perbedaan penggunaan komputer yang cukup besar antardaerah pada tahun pengamatan. Meskipun demikian, visualisasi ini hanya menggambarkan distribusi persentase pada tahun 2019 sehingga tidak dapat digunakan untuk menyimpulkan penyebab perbedaan maupun perubahan penggunaan komputer dari waktu ke waktu.