1 Pendahuluan

Visualisasi data merupakan salah satu cara untuk menyajikan informasi kuantitatif agar lebih mudah dipahami. Namun, efektivitas visualisasi tidak hanya ditentukan oleh jenis grafik yang digunakan, tetapi juga oleh keterbacaan label, pemilihan warna, pengurutan kategori, kejelasan skala, dan kesesuaian bentuk grafik dengan tujuan analisis.

Perbaikan dilakukan dengan menggunakan bahasa pemrograman R dan paket ggplot2. Untuk setiap visualisasi, disajikan identifikasi masalah, data simulasi yang menyerupai karakter umum grafik pada materi, kode untuk menghasilkan visualisasi awal dan hasil perbaikan, serta penjelasan mengenai perubahan dan informasi utama yang ditampilkan.

Data yang digunakan dalam laporan ini merupakan data simulasi, bukan data asli yang diambil dari sumber pada slide. Oleh karena itu, interpretasi hasil dibatasi pada pola yang ditunjukkan oleh data simulasi dan tidak digunakan untuk menyimpulkan kondisi faktual.

2 1. Slide 6: Diagram Lingkaran

2.1 Identifikasi masalah

Pada slide 6, diagram lingkaran digunakan untuk menampilkan beberapa persentase kategori. Diagram lingkaran tepat digunakan apabila kategori merupakan bagian-bagian dari satu keseluruhan. Namun, jika setiap persentase merupakan nilai independen, penggunaan diagram lingkaran dapat menyesatkan karena menyiratkan bahwa semua kategori membentuk satu total.

Oleh karena itu, visualisasi alternatif yang digunakan adalah diagram batang horizontal. Bentuk ini memungkinkan perbandingan nilai antarkategori secara langsung melalui panjang batang dan label angka.

data_bed <- tibble(
  kategori = c(
    "Kategori A", "Kategori B", "Kategori C",
    "Kategori D", "Kategori E"
  ),
  persen = c(60, 57, 54, 18, 11)
)

data_bed
## # A tibble: 5 × 2
##   kategori   persen
##   <chr>       <dbl>
## 1 Kategori A     60
## 2 Kategori B     57
## 3 Kategori C     54
## 4 Kategori D     18
## 5 Kategori E     11

2.1.1 Visualisasi Awal

ggplot(data_bed, aes(x = "", y = persen, fill = kategori)) +
  geom_col(width = 1, color = "white") +
  coord_polar(theta = "y") +
  labs(
    title = "Persentase Menurut Kategori",
    subtitle = "Data simulasi",
    fill = "Kategori"
  ) +
  theme_void()

### Visualisasi Perbaikan

data_bed %>%
  mutate(kategori = fct_reorder(kategori, persen)) %>%
  ggplot(aes(x = persen, y = kategori)) +
  geom_col(width = 0.7, fill = "steelblue") +
  geom_text(
    aes(label = paste0(persen, "%")),
    hjust = -0.15,
    size = 3.5
  ) +
  scale_x_continuous(
    limits = c(0, 70),
    breaks = seq(0, 70, 10)
  ) +
  labs(
    title = "Perbandingan Persentase Menurut Kategori",
    x = "Persentase (%)",
    y = NULL,
    caption = "Data simulasi"
  ) +
  theme_minimal() +
  theme(panel.grid.major.y = element_blank())

### Pembahasan

Visualisasi awal menggunakan diagram lingkaran, sedangkan visualisasi hasil perbaikan menggunakan diagram batang horizontal. Diagram batang dipilih karena panjang batang lebih mudah dibandingkan daripada sudut atau luas irisan, terutama ketika nilai antarkategori berdekatan.

Pengurutan kategori dan penambahan label persentase juga membantu pembaca mengenali perbedaan nilai tanpa harus memperkirakannya berdasarkan ukuran visual.

Pada data simulasi, Kategori A memiliki nilai tertinggi sebesar 60%, sedangkan Kategori E memiliki nilai terendah sebesar 11%. Hasil tersebut hanya menggambarkan data simulasi.

3 2. Slide 7: Infografik Sistem Pembayaran

3.1 Identifikasi Masalah

Visualisasi pada slide 7 menggunakan diagram lingkaran untuk menunjukkan proporsi metode pembayaran, yaitu COD, M-Banking, Paylater/Cicilan, dan kategori lainnya. Jenis diagram ini tetap dipertahankan karena sesuai untuk menggambarkan komposisi kategori.

Permasalahan yang diperbaiki terletak pada penggunaan warna. Beberapa irisan pada visualisasi awal memiliki warna yang berdekatan sehingga batas antarkategori kurang terlihat jelas. Perbaikan dilakukan dengan menggunakan warna yang lebih kontras, mempertahankan garis putih ant irisan, dan menampilkan label persentase agar informasi lebih mudah dibaca.

3.1.1 Data simulasi dan visualisasi awal

library(ggplot2)
library(dplyr)

# Data simulasi yang menyerupai contoh pada slide
data_pembayaran <- data.frame(
  metode = c("COD", "M-Banking", "Paylater/Cicilan", "Lainnya"),
  proporsi = c(20, 64, 2, 14)
)

# Menghitung posisi tengah setiap irisan
data_pembayaran <- data_pembayaran %>%
  mutate(
    posisi = cumsum(proporsi) - proporsi / 2,
    label = paste0(proporsi, "%")
  )

ggplot(
  data_pembayaran,
  aes(x = 1, y = proporsi, fill = metode)
) +
  geom_col(
    width = 1,
    color = "white",
    linewidth = 0.7
  ) +
  coord_polar(theta = "y", start = 0) +
  scale_fill_manual(
    values = c(
      "COD" = "#F8C4AE",
      "M-Banking" = "#F5A06B",
      "Paylater/Cicilan" = "#F28E45",
      "Lainnya" = "#BD6817"
    )
  ) +
  geom_text(
    aes(
      x = 1.18,
      y = posisi,
      label = label
    ),
    inherit.aes = FALSE,
    color = "#5C5145",
    size = 4
  ) +
  labs(
    title = "Sistem Pembayaran",
    fill = NULL
  ) +
  theme_void() +
  theme(
    plot.background = element_rect(
      fill = "white",
      color = NA
    ),
    panel.background = element_rect(
      fill = "white",
      color = NA
    ),
    plot.title = element_text(
      face = "bold",
      size = 16,
      hjust = 0.5,
      color = "black"
    ),
    legend.position = "bottom",
    legend.text = element_text(
      size = 10,
      color = "#5C5145"
    ),
    plot.margin = margin(15, 25, 10, 25)
  )

### Visualisasi Setelah Perbaikan

ggplot(
  data_pembayaran,
  aes(x = 1, y = proporsi, fill = metode)
) +
  geom_col(
    width = 1,
    color = "white",
    linewidth = 1
  ) +
  coord_polar(theta = "y", start = 0) +
  scale_fill_manual(
    values = c(
      "COD" = "#56B4E9",
      "M-Banking" = "#E69F00",
      "Paylater/Cicilan" = "#009E73",
      "Lainnya" = "#CC79A7"
    )
  ) +
  geom_text(
    aes(
      x = 1.18,
      y = posisi,
      label = label
    ),
    inherit.aes = FALSE,
    color = "#333333",
    size = 4
  ) +
  labs(
    title = "Sistem Pembayaran",
    fill = NULL
  ) +
  theme_void() +
  theme(
    plot.background = element_rect(
      fill = "white",
      color = NA
    ),
    panel.background = element_rect(
      fill = "white",
      color = NA
    ),
    plot.title = element_text(
      face = "bold",
      size = 16,
      hjust = 0.5
    ),
    legend.position = "bottom",
    legend.text = element_text(
      size = 10,
      color = "#333333"
    ),
    plot.margin = margin(15, 25, 10, 25)
  )

### Pembahasan

Visualisasi awal menggunakan diagram lingkaran dengan warna peach dan oranye yang relatif berdekatan. Kombinasi tersebut menyebabkan beberapa kategori kurang mudah dibedakan, terutama irisan dengan proporsi kecil.

Pada visualisasi setelah perbaikan, warna diubah menjadi biru, oranye, hijau, dan ungu. Perbedaan rona yang lebih jelas membantu pembaca membedakan irisan dan mencocokkannya dengan legenda. Garis putih ant irisan dipertegas, sedangkan label persentase tetap dipertahankan agar nilai setiap kategori dapat diketahui secara langsung.

Perbaikan ini tidak mengubah jenis diagram, nilai proporsi, maupun informasi yang ditampilkan. Fokusnya adalah meningkatkan keterbacaan melalui pemilihan warna yang lebih efektif.

3.1.2 Makna dan Informasi Utama

Pada data simulasi, M-Banking memiliki proporsi terbesar sebesar 64%, diikuti COD sebesar 20%, kategori lainnya sebesar 14%, dan Paylater/Cicilan sebesar 2%. Informasi utama yang ditampilkan adalah dominasi proporsi M-Banking dibandingkan metode pembayaran lainnya.

Angka tersebut mengikuti ilustrasi pada slide untuk kebutuhan demonstrasi dan belum diverifikasi sebagai data aktual. Oleh karena itu, interpretasi ini tidak dapat digunakan untuk menyimpulkan pola penggunaan metode pembayaran yang sebenarnya.

4 3. Slide 8: Persentase penggunaan komputer menurut provinsi

4.1 Identifikasi Masalah

Slide 8 menampilkan persentase masyarakat yang menggunakan komputer di berbagai provinsi dengan diagram batang vertikal. Visualisasi ini memungkinkan pembaca membandingkan nilai antarprovinsi, tetapi banyaknya kategori dan panjang nama provinsi menyebabkan label pada sumbu horizontal sulit dibaca.

Selain itu, kategori belum diurutkan berdasarkan nilai persentase. Akibatnya, pembaca harus menelusuri batang satu per satu untuk menemukan provinsi dengan nilai tertinggi dan terendah.

Perbaikan dilakukan dengan mempertahankan diagram batang, mengubah orientasinya menjadi horizontal, mengurutkan provinsi dari persentase terbesar ke terkecil, serta menambahkan label nilai pada ujung batang.

4.1.1 Data simulasi

data_komputer <- data.frame(
  provinsi = c(
    "Aceh", "Sumatera Barat", "Jambi", "Bengkulu",
    "Kep. Bangka Belitung", "DKI Jakarta", "Jawa Tengah",
    "Jawa Timur", "Bali", "Nusa Tenggara Timur",
    "Kalimantan Tengah", "Kalimantan Timur",
    "Sulawesi Utara", "Sulawesi Selatan", "Gorontalo",
    "Maluku", "Papua Barat"
  ),
  persen = c(
    11.8, 14.2, 17.1, 14.5, 12.3, 23.6, 13.3,
    14.3, 18.7, 12.1, 10.5, 19.4, 14.3, 15.5,
    16.5, 12.4, 8.3
  )
)

data_komputer
##                provinsi persen
## 1                  Aceh   11.8
## 2        Sumatera Barat   14.2
## 3                 Jambi   17.1
## 4              Bengkulu   14.5
## 5  Kep. Bangka Belitung   12.3
## 6           DKI Jakarta   23.6
## 7           Jawa Tengah   13.3
## 8            Jawa Timur   14.3
## 9                  Bali   18.7
## 10  Nusa Tenggara Timur   12.1
## 11    Kalimantan Tengah   10.5
## 12     Kalimantan Timur   19.4
## 13       Sulawesi Utara   14.3
## 14     Sulawesi Selatan   15.5
## 15            Gorontalo   16.5
## 16               Maluku   12.4
## 17          Papua Barat    8.3

4.1.2 Visualisasi Awal

ggplot(
  data_komputer,
  aes(x = provinsi, y = persen)
) +
  geom_col(
    fill = "#4B91B5",
    width = 0.65
  ) +
  scale_y_continuous(
    limits = c(0, 25),
    breaks = seq(0, 25, 5)
  ) +
  labs(
    title = "Persentase Masyarakat yang Menggunakan Komputer",
    x = NULL,
    y = "Persentase (%)",
    caption = "Data simulasi, bukan angka asli BPS"
  ) +
  theme_minimal() +
  theme(
    plot.title = element_text(
      face = "bold",
      hjust = 0.5,
      size = 13
    ),
    axis.text.x = element_text(
      angle = 55,
      hjust = 1,
      size = 7
    ),
    panel.grid.major.x = element_blank(),
    panel.grid.minor = element_blank()
  )

###Visualisasi setelah perbaikan

data_urut <- data_komputer %>%
  arrange(desc(persen)) %>%
  mutate(
    provinsi = factor(
      provinsi,
      levels = rev(provinsi)
    )
  )

ggplot(
  data_urut,
  aes(x = persen, y = provinsi)
) +
  geom_col(
    fill = "#4B91B5",
    width = 0.7
  ) +
  geom_text(
    aes(label = sprintf("%.1f%%", persen)),
    hjust = -0.15,
    size = 3.2
  ) +
  scale_x_continuous(
    limits = c(0, 27),
    breaks = seq(0, 25, 5)
  ) +
  labs(
    title = "Persentase Penggunaan Komputer Menurut Provinsi",
    subtitle = "Diurutkan dari nilai terbesar ke terkecil",
    x = "Persentase masyarakat (%)",
    y = NULL,
    caption = "Data simulasi, bukan angka resmi BPS"
  ) +
  theme_minimal() +
  theme(
    plot.title = element_text(
      face = "bold",
      size = 14
    ),
    panel.grid.major.y = element_blank(),
    panel.grid.minor = element_blank()
  )

4.1.3 Pembahasan

Perbaikan dilakukan dengan mengubah orientasi diagram batang dari vertikal menjadi horizontal. Perubahan ini memberikan ruang yang lebih luas untuk nama provinsi sehingga label dapat dibaca tanpa harus dimiringkan. Selanjutnya, provinsi diurutkan berdasarkan persentase dari terbesar ke terkecil untuk menonjolkan peringkat dan memudahkan identifikasi nilai ekstrem.

Label persentase ditambahkan pada ujung setiap batang agar pembaca dapat mengetahui nilai secara langsung. Warna batang tetap seragam karena tujuan utama grafik adalah membandingkan besaran, bukan membedakan kelompok berdasarkan kategori warna.

4.1.4 Makna dan Informasi Utama

Visualisasi ini bertujuan memperlihatkan variasi persentase masyarakat yang menggunakan komputer antarprovinsi. Pada data simulasi, DKI Jakarta memiliki nilai tertinggi sebesar 23,6%, sedangkan Papua Barat memiliki nilai terendah sebesar 8,3%. Angka tersebut hanya berlaku untuk data simulasi dan tidak dapat digunakan untuk menyimpulkan kondisi penggunaan komputer yang sebenarnya di Indonesia.

4.1.5 Kesimpulan

Diagram batang horizontal yang diurutkan membuat perbandingan nilai antarprovinsi lebih mudah dilakukan. Perbaikan ini meningkatkan keterbacaan label, memperjelas peringkat, dan membantu pembaca menangkap informasi utama tanpa mengubah jenis grafik dasarnya.

5 4. Slide 10: Jumlah kasus COVID-19 harian

5.1 Identifikasi masalah

Visualisasi pada slide 10 menampilkan perkembangan jumlah kasus COVID-19 dari waktu ke waktu. Grafik deret waktu (time series) sesuai untuk menunjukkan perubahan kasus harian.

Beberapa hal yang perlu diperhatikan dalam visualisasi seperti ini: 1. Fluktuasi kasus harian dapat membuat grafik terlihat tidak teratur. 2. Tren umum kenaikan atau penurunan kasus mungkin sulit dikenali jika hanya ditampilkan melalui nilai harian. 3. Judul, label sumbu, dan keterangan perlu dibuat jelas agar pembaca dapat memahami periode serta jumlah kasus yang ditampilkan. Perbaikan yang dilakukan: mempertahankan grafik garis untuk data harian, kemudian menambahkan garis tren rata-rata bergerak selama tujuh hari. Rata-rata bergerak membantu mengurangi pengaruh fluktuasi harian sehingga pola umum lebih mudah terlihat.

5.1.1 Data simulasi

5.2 4. Slide 10: Jumlah Kasus COVID-19 Harian

5.2.1 Data Simulasi

library(ggplot2)
library(dplyr)

set.seed(123)

tanggal <- seq(
  from = as.Date("2021-06-01"),
  by = "day",
  length.out = 120
)

tren <- seq(300, 2500, length.out = 120)
gelombang <- 500 * sin(seq(0, 3 * pi, length.out = 120))
fluktuasi <- rnorm(120, mean = 0, sd = 250)

data_covid <- data.frame(
  tanggal = tanggal,
  kasus = pmax(
    0,
    round(tren + gelombang + fluktuasi)
  )
)

data_covid <- data_covid %>%
  mutate(
    rata_rata_7hari = as.numeric(
      stats::filter(
        kasus,
        rep(1/7, 7),
        sides = 1
      )
    )
  )

head(data_covid)
##      tanggal kasus rata_rata_7hari
## 1 2021-06-01   160              NA
## 2 2021-06-02   301              NA
## 3 2021-06-03   806              NA
## 4 2021-06-04   491              NA
## 5 2021-06-05   562              NA
## 6 2021-06-06  1014              NA

Data tersebut merupakan data simulasi, bukan catatan kasus COVID-19 yang sebenarnya. Data dibuat untuk meniru pola naik-turun kasus harian agar kita dapat mempelajari perbaikan visualisasi.

5.2.2 Visualisasi awal

ggplot(data_covid, aes(x = tanggal, y = kasus)) +
  geom_line(color = "#4B91B5", linewidth = 0.8) +
  labs(
    title = "Jumlah Kasus COVID-19 Harian",
    x = "Tanggal",
    y = "Jumlah kasus"
  ) +
  theme_minimal()

### Visualisasi perbaikan

ggplot(data_covid, aes(x = tanggal, y = kasus)) +
  geom_line(
    aes(y = kasus, color = "Kasus harian"),
    linewidth = 0.6,
    alpha = 0.55
  ) +
  geom_line(
    aes(y = rata_rata_7hari, color = "Rata-rata 7 hari"),
    linewidth = 1.1,
    na.rm = TRUE
  ) +
  scale_color_manual(
    values = c(
      "Kasus harian" = "#9ECAE1",
      "Rata-rata 7 hari" = "#D55E00"
    )
  ) +
  labs(
    title = "Perkembangan Kasus COVID-19 Harian",
    subtitle = "Garis rata-rata bergerak membantu memperlihatkan tren umum",
    x = "Tanggal",
    y = "Jumlah kasus",
    color = NULL,
    caption = "Data simulasi, bukan data kasus COVID-19 aktual"
  ) +
  theme_minimal() +
  theme(
    plot.title = element_text(face = "bold", size = 14),
    legend.position = "bottom",
    panel.grid.minor = element_blank()
  )

5.2.3 E. Apa yang diubah dan mengapa?

Aspek Sebelum Sesudah
Penyajian data Garis kasus harian Garis harian dan rata-rata bergerak
Fluktuasi Perubahan harian mendominasi tampilan Fluktuasi tetap terlihat, tetapi tren lebih mudah dikenali
Warna Satu warna garis Warna berbeda untuk membedakan dua informasi
Keterangan Judul dan sumbu dasar Ditambah subtitle dan keterangan data simulasi

5.2.4 F. Makna dan informasi utama

Grafik ini membantu pembaca memahami dua hal:

  • Garis kasus harian menunjukkan perubahan jumlah kasus dari hari ke hari, termasuk fluktuasi jangka pendek.
  • Garis rata-rata bergerak tujuh hari menunjukkan kecenderungan umum selama periode pengamatan dengan mengurangi pengaruh perubahan harian.

Dengan demikian, pembaca dapat membedakan lonjakan sesaat dari kecenderungan kenaikan atau penurunan yang lebih berkelanjutan. Namun, rata-rata bergerak tidak menghilangkan seluruh ketidakpastian dan tidak menjelaskan penyebab perubahan kasus.

6 5. Slide 19: Visualisasi distribusi data

6.1 Identifikasi masalah

Pada slide 19, ridgeline plot digunakan untuk memperlihatkan distribusi Indeks Pembangunan Manusia (IPM) pada enam wilayah, yaitu Afrika, Asia, Eropa, Amerika Utara, Oseania, dan Amerika Selatan.

Jenis visualisasi ini sesuai karena memungkinkan pembaca membandingkan bentuk distribusi, lokasi nilai yang relatif tinggi atau rendah, serta penyebaran IPM antarkawasan. Namun, berdasarkan gambar slide, terdapat beberapa aspek yang dapat diperbaiki: 1. Judul belum menjelaskan konteks secara lengkap. Judul yang informatif perlu menyebutkan variabel yang dianalisis dan, jika tersedia, periode pengamatan. 2. Label sumbu dan nama wilayah relatif kecil. Hal ini menyulitkan pembaca ketika grafik ditampilkan dalam ukuran presentasi. 3. Warna antarkawasan cukup mencolok. Warna dapat dipertahankan, tetapi perlu dipilih agar setiap distribusi mudah dibedakan tanpa mengganggu keterbacaan. 4. Informasi sumber dan data belum terlihat jelas. Keterangan sumber dan periode sebaiknya dicantumkan apabila tersedia. Perbaikan difokuskan pada keterbacaan, konsistensi warna, dan kelengkapan informasi tanpa mengganti jenis grafik.

6.1.1 Data Simulasi

library(ggplot2)
library(dplyr)
library(ggridges)

set.seed(123)

n <- 200

data_ipm <- data.frame(
  wilayah = rep(
    c(
      "Africa",
      "Asia",
      "Europe",
      "North America",
      "Oceania",
      "South America"
    ),
    each = n
  ),
  ipm = c(
    rnorm(n, mean = 0.55, sd = 0.12),
    rnorm(n, mean = 0.72, sd = 0.12),
    rnorm(n, mean = 0.82, sd = 0.07),
    rnorm(n, mean = 0.80, sd = 0.08),
    rnorm(n, mean = 0.76, sd = 0.09),
    rnorm(n, mean = 0.74, sd = 0.09)
  )
)

data_ipm <- data_ipm %>%
  mutate(ipm = pmin(pmax(ipm, 0.3), 1.0))

data_ipm$wilayah <- factor(
  data_ipm$wilayah,
  levels = c(
    "Africa",
    "Asia",
    "Europe",
    "North America",
    "Oceania",
    "South America"
  )
)

head(data_ipm)
##   wilayah       ipm
## 1  Africa 0.4827429
## 2  Africa 0.5223787
## 3  Africa 0.7370450
## 4  Africa 0.5584610
## 5  Africa 0.5655145
## 6  Africa 0.7558078

Data simulasi ini membangkitkan 200 observasi untuk setiap wilayah. Rata-rata dan simpangan baku ditetapkan berbeda agar bentuk distribusi antarkawasan dapat dibandingkan.

6.1.2 Visualisasi Awal

ggplot(
  data_ipm,
  aes(
    x = ipm,
    y = wilayah,
    fill = wilayah
  )
) +
  geom_density_ridges(
    alpha = 0.8,
    color = "grey40",
    scale = 1.1
  ) +
  labs(
    title = "IPM Menurut Wilayah",
    x = "Indeks Pembangunan Manusia",
    y = "Wilayah"
  ) +
  theme_minimal()

6.1.3 Visualisasi setelah perbaikan

library(ggplot2)
library(dplyr)
library(ggridges)

ggplot(
  data_ipm,
  aes(
    x = ipm,
    y = wilayah,
    fill = wilayah
  )
) +
  geom_density_ridges(
    alpha = 0.85,
    color = "white",
    linewidth = 0.4,
    scale = 1.05,
    rel_min_height = 0.01
  ) +
  scale_fill_manual(
    values = c(
      "Africa" = "#D55E00",
      "Asia" = "#E69F00",
      "Europe" = "#009E73",
      "North America" = "#0072B2",
      "Oceania" = "#CC79A7",
      "South America" = "#56B4E9"
    )
  ) +
  scale_x_continuous(
    breaks = seq(0.3, 1.0, by = 0.1),
    limits = c(0.3, 1.0),
    expand = c(0, 0)
  ) +
  labs(
    title = "Distribusi Indeks Pembangunan Manusia Menurut Wilayah",
    subtitle = "Perbandingan bentuk dan penyebaran nilai IPM",
    x = "Indeks Pembangunan Manusia",
    y = NULL,
    fill = "Wilayah",
    caption = "Data simulasi, bukan data IPM aktual"
  ) +
  theme_minimal(base_size = 12) +
  theme(
    plot.title = element_text(
      face = "bold",
      size = 15
    ),
    plot.subtitle = element_text(size = 11),
    axis.text = element_text(
      size = 10,
      color = "grey20"
    ),
    axis.title.x = element_text(
      size = 11,
      face = "bold"
    ),
    legend.position = "none",
    panel.grid.minor = element_blank(),
    panel.grid.major.y = element_blank(),
    plot.caption = element_text(
      size = 9,
      color = "grey40"
    )
  )

### Penjelasan perubahan Aspek Visualisasi awal Visualisasi perbaikan Judul Umum Menjelaskan distribusi IPM menurut wilayah Ukuran teks Mengikuti pengaturan bawaan Diperbesar agar lebih terbaca Warna Mengikuti pengaturan bawaan Palet warna yang ditentukan secara eksplisit Garis pemisah Abu-abu Putih untuk memperjelas batas antarkurva Kisi grafik Kisi bawaan Kisi minor dihilangkan dan kisi horizontal dikurangi Keterangan data Belum tersedia Ditambahkan keterangan bahwa data bersifat simulasi

Perubahan tersebut meningkatkan keterbacaan dan membantu pembaca membandingkan distribusi antarwilayah. Namun, perubahan warna dan ukuran teks tidak mengubah informasi statistik yang terkandung dalam data.

6.1.4 Makna dan informasi utama

Ridgeline plot menampilkan distribusi nilai IPM melalui kurva kepadatan untuk setiap wilayah. - Posisi kurva pada sumbu horizontal menunjukkan rentang nilai IPM yang diamati. - Puncak kurva menunjukkan bagian rentang nilai dengan kepadatan observasi relatif tinggi. - Lebar kurva memperlihatkan penyebaran nilai. Kurva yang lebih lebar pada rentang tertentu menunjukkan distribusi yang lebih menyebar di rentang tersebut. - Perbedaan bentuk antarkurva membantu mengidentifikasi kemiripan atau perbedaan pola distribusi antarwilayah. Pada data simulasi yang dibuat, Afrika cenderung memiliki nilai IPM lebih rendah daripada Eropa, sedangkan distribusi Eropa lebih terkonsentrasi pada nilai yang tinggi. Ini hanya interpretasi terhadap data simulasi, bukan kesimpulan tentang IPM aktual.

6.1.5 Kesimpulan

Ridgeline plot tetap menjadi pilihan yang tepat untuk membandingkan distribusi IPM antarkawasan. Perbaikan utama terletak pada judul, label, warna, dan pengaturan tampilan sehingga pembaca dapat memahami pola distribusi dengan lebih mudah.

7 6. Slide 20 visualisasi perbandingan proporsi.

7.1 Identifikasi masalah

Visualisasi pada slide 20 memiliki beberapa aspek yang perlu diperbaiki. Ketiga grafik belum menampilkan nilai atau persentase secara langsung, sedangkan label kategori dan legenda berukuran kecil sehingga kurang mudah dibaca. Dari ketiga jenis grafik tersebut, diagram batang biasa lebih sesuai untuk membandingkan proporsi antarkategori karena perbedaan panjang batang lebih mudah diamati. Oleh karena itu, perbaikan difokuskan pada diagram batang dengan menambahkan label jumlah dan persentase, memperjelas judul dan label sumbu, serta menggunakan warna yang konsisten agar informasi lebih mudah dipahami.

7.1.1 Data Simulasi

library(ggplot2)
library(dplyr)

data_etnis <- data.frame(
  etnis = c("Black", "Other", "White"),
  jumlah = c(120, 350, 500)
)

data_etnis <- data_etnis %>%
  mutate(
    proporsi = jumlah / sum(jumlah) * 100
  )

data_etnis
##   etnis jumlah proporsi
## 1 Black    120 12.37113
## 2 Other    350 36.08247
## 3 White    500 51.54639

7.1.2 Visualiasi Awal

ggplot(data_etnis, aes(x = etnis, y = jumlah, fill = etnis)) +
  geom_col() +
  labs(
    title = "Jumlah Ibu Melahirkan Berdasarkan Etnis",
    x = "Etnis",
    y = "Jumlah"
  ) +
  theme_minimal()

### Visualisasi Setelah diperbaiki

data_urut <- data_etnis %>%
  arrange(jumlah) %>%
  mutate(
    etnis = factor(etnis, levels = etnis),
    label = paste0(
      jumlah, " (",
      sprintf("%.1f", proporsi), "%)"
    )
  )

ggplot(data_urut, aes(x = etnis, y = jumlah, fill = etnis)) +
  geom_col(width = 0.65, show.legend = FALSE) +
  geom_text(
    aes(label = label),
    vjust = -0.5,
    size = 4
  ) +
  scale_fill_manual(
    values = c(
      "Black" = "#56B4E9",
      "Other" = "#009E73",
      "White" = "#0072B2"
    )
  ) +
  scale_y_continuous(
    expand = expansion(mult = c(0, 0.15))
  ) +
  labs(
    title = "Jumlah Ibu Melahirkan Berdasarkan Etnis",
    subtitle = "Jumlah observasi dan persentase setiap kategori",
    x = "Etnis",
    y = "Jumlah ibu melahirkan",
    caption = "Data simulasi"
  ) +
  theme_minimal(base_size = 12) +
  theme(
    plot.title = element_text(face = "bold", size = 15),
    plot.subtitle = element_text(size = 11),
    panel.grid.minor = element_blank(),
    panel.grid.major.x = element_blank()
  )

7.1.3 E. Penjelasan hasil perbaikan

Aspek Sebelum Sesudah
Label nilai Tidak tersedia Jumlah dan persentase ditampilkan
Warna Belum diatur secara konsisten Warna ditetapkan untuk setiap kategori
Keterbacaan Pembaca harus memperkirakan nilai dari sumbu Nilai dapat dibaca langsung
Perbandingan Bergantung pada tinggi batang Lebih mudah membandingkan jumlah dan proporsi

Berdasarkan data simulasi, kategori White memiliki jumlah tertinggi, yaitu 500 atau 51,5%, sedangkan Black memiliki jumlah terendah, yaitu 120 atau 12,4%.

7.1.4 Kesimpulan

diagram batang biasa merupakan pilihan yang baik jika tujuan utamanya membandingkan jumlah antarkategori. Diagram lingkaran tetap berguna untuk menunjukkan komposisi keseluruhan, sedangkan diagram batang bertumpuk dapat digunakan untuk menunjukkan bagian-bagian dalam satu total. Pemilihan grafik sebaiknya disesuaikan dengan informasi yang ingin ditekankan.

8 7. Slide 23: Visualisasi Treemap

8.1 Identifikasi Masalah

Pada slide 23, treemap digunakan untuk memperlihatkan komposisi tujuan ekspor Indonesia tahun 2019 berdasarkan benua dan negara. Luas setiap kotak merepresentasikan nilai ekspor, sedangkan warna digunakan untuk membedakan kelompok benua.

Jenis visualisasi ini sesuai karena memungkinkan pembaca melihat komposisi nilai ekspor berdasarkan negara dan kelompok benua. Namun, berdasarkan gambar slide, terdapat beberapa aspek yang dapat diperbaiki.

  1. Label nama negara pada kotak berukuran kecil sulit dibaca dan beberapa label tampak bertumpuk.
  2. Warna antarkelompok benua perlu dibedakan secara lebih jelas agar pengelompokan lebih mudah dikenali.
  3. Nama negara pada kotak kecil dapat dihilangkan agar tampilan tidak terlalu padat, sedangkan nama negara pada kotak yang cukup besar tetap ditampilkan.
  4. Judul dan keterangan perlu diperjelas agar pembaca memahami bahwa luas kotak menunjukkan nilai ekspor dan warna menunjukkan kelompok benua.

Perbaikan difokuskan pada keterbacaan label, konsistensi warna, dan kejelasan informasi tanpa mengganti jenis grafik. Data simulasi digunakan untuk membandingkan visualisasi awal dan hasil perbaikan karena nilai ekspor asli pada slide tidak tersedia secara lengkap.

8.1.1 Data Simulasi

library(ggplot2)
library(dplyr)
library(treemapify)

data_ekspor <- data.frame(
  benua = c(
    "Asia", "Asia", "Asia", "Asia", "Asia",
    "Amerika Utara", "Amerika Utara", "Amerika Utara",
    "Eropa", "Eropa", "Eropa",
    "Oseania", "Oseania",
    "Afrika", "Afrika",
    "Amerika Selatan", "Amerika Selatan"
  ),
  negara = c(
    "China", "Jepang", "Singapura", "India", "Korea Selatan",
    "Amerika Serikat", "Kanada", "Meksiko",
    "Jerman", "Belanda", "Italia",
    "Australia", "Selandia Baru",
    "Mesir", "Afrika Selatan",
    "Brasil", "Chile"
  ),
  nilai_ekspor = c(
    500, 350, 250, 180, 150,
    400, 120, 100,
    220, 180, 130,
    150, 70,
    80, 90,
    110, 60
  )
)

head(data_ekspor)
##           benua          negara nilai_ekspor
## 1          Asia           China          500
## 2          Asia          Jepang          350
## 3          Asia       Singapura          250
## 4          Asia           India          180
## 5          Asia   Korea Selatan          150
## 6 Amerika Utara Amerika Serikat          400

8.1.2 Visualisasi awal

ggplot(
  data_ekspor,
  aes(
    area = nilai_ekspor,
    fill = benua,
    label = negara,
    subgroup = benua
  )
) +
  geom_treemap(
    color = "#8C6F63",
    linewidth = 0.4
  ) +
  geom_treemap_subgroup_border(
    color = "#6F5146",
    linewidth = 0.8
  ) +
  geom_treemap_text(
    place = "bottom",
    grow = FALSE,
    reflow = TRUE,
    min.size = 2,
    size = 3,
    color = "blue",
    fontface = "plain"
  ) +
  geom_treemap_subgroup_text(
    place = "centre",
    grow = FALSE,
    color = "white",
    fontface = "bold",
    min.size = 4,
    size = 4
  ) +
  scale_fill_manual(
    values = c(
      "Asia" = "#E7B08F",
      "Amerika Utara" = "#D9ADC2",
      "Eropa" = "#B7C5D9",
      "Oseania" = "#B8D8B1",
      "Afrika" = "#B5D6C0",
      "Amerika Selatan" = "#D8C4A4"
    )
  ) +
  labs(
    title = NULL,
    fill = NULL
  ) +
  theme_void() +
  theme(
    legend.position = "none",
    plot.margin = margin(5, 5, 5, 5)
  )

### Visualiasi perbaikannya

ggplot(
  data_ekspor,
  aes(
    area = nilai_ekspor,
    fill = benua,
    label = negara,
    subgroup = benua
  )
) +
  geom_treemap(
    color = "white",
    linewidth = 0.8
  ) +
  geom_treemap_subgroup_border(
    color = "grey30",
    linewidth = 1.2
  ) +
  geom_treemap_text(
    place = "centre",
    grow = FALSE,
    reflow = TRUE,
    min.size = 5,
    color = "black",
    fontface = "plain"
  ) +
  scale_fill_manual(
    values = c(
      "Asia" = "#56B4E9",
      "Amerika Utara" = "#E69F00",
      "Eropa" = "#009E73",
      "Oseania" = "#CC79A7",
      "Afrika" = "#D55E00",
      "Amerika Selatan" = "#0072B2"
    )
  ) +
  labs(
    title = "Komposisi Nilai Ekspor Menurut Negara Tujuan dan Benua",
    subtitle = "Luas kotak menunjukkan nilai ekspor",
    caption = "Data simulasi, bukan data ekspor aktual tahun 2019"
  ) +
  theme_void(base_size = 12) +
  theme(
    plot.title = element_text(
      face = "bold",
      size = 14,
      color = "grey15"
    ),
    plot.subtitle = element_text(
      size = 11,
      color = "grey30"
    ),
    plot.caption = element_text(
      size = 9,
      color = "grey40"
    ),
    legend.position = "right",
    legend.title = element_text(face = "bold"),
    plot.margin = margin(10, 10, 10, 10)
  )

### Penjelasan Perbaikan

Perbaikan visualisasi treemap dilakukan dengan menggunakan warna yang lebih kontras untuk membedakan setiap benua. Garis putih digunakan untuk memperjelas batas antarkotak, sedangkan label negara dibuat berwarna hitam agar lebih mudah dibaca. Ukuran minimum teks juga ditetapkan agar nama negara pada kotak yang terlalu kecil tidak ditampilkan dan tidak menyebabkan tumpang tindih. Selain itu, judul dan keterangan diperjelas untuk menunjukkan bahwa luas kotak merepresentasikan nilai ekspor.

8.1.3 Interpretasi

Treemap menyajikan komposisi nilai ekspor berdasarkan negara tujuan dan kelompok benua. Luas kotak menunjukkan besarnya nilai ekspor relatif terhadap negara lainnya, sedangkan warna membedakan kelompok benua. Kotak yang lebih besar menunjukkan nilai ekspor yang lebih besar dalam data yang digunakan.

Melalui visualisasi yang telah diperbaiki, pembaca diharapkan lebih mudah mengenali negara dengan nilai ekspor relatif besar dan memahami pengelompokan negara berdasarkan benua. Penyederhanaan label juga membantu mengurangi kepadatan informasi pada kotak berukuran kecil.

Namun, karena analisis ini menggunakan data simulasi, hasil visualisasi tidak dapat digunakan untuk menyimpulkan negara tujuan ekspor terbesar Indonesia pada tahun 2019. Interpretasi hanya berlaku untuk data simulasi yang digunakan dalam demonstrasi.

8.1.4 Kesimpulan

Perbaikan treemap difokuskan pada peningkatan keterbacaan label, penggunaan warna yang lebih kontras, dan kejelasan informasi yang disampaikan. Jenis visualisasi tetap dipertahankan karena sesuai untuk menunjukkan komposisi nilai ekspor berdasarkan negara dan benua. Dengan perbaikan tersebut, informasi diharapkan dapat disampaikan secara lebih jelas tanpa mengubah tujuan utama visualisasi.

9 8. Slide 27: Perbaikan Visualisasi Ketidakpastian

9.1 Identifikasi masalah

Pada slide 27, diagram batang digunakan untuk memperlihatkan persentase petani dengan lahan kecil di Kamboja dari tahun 2012 hingga 2015. Grafik sebelah kiri hanya menampilkan nilai persentase, sedangkan grafik sebelah kanan menambahkan error bar untuk menunjukkan rentang ketidakpastian estimasi.

Diagram batang sudah sesuai untuk membandingkan nilai antartahun. Namun, grafik tanpa error bar tidak memberikan informasi mengenai ketidakpastian estimasi. Pada grafik dengan error bar, judul dan keterangan juga perlu diperjelas agar pembaca memahami arti rentang tersebut.

Perbaikan difokuskan pada penambahan error bar, penggunaan warna yang lebih jelas, serta penjelasan mengenai nilai persentase dan rentang ketidakpastian. Data simulasi digunakan karena nilai numerik dan definisi interval pada grafik asli tidak tersedia secara lengkap.

9.1.1 Data simulasi

library(ggplot2)
library(dplyr)

data_kamboja <- data.frame(
  tahun = 2012:2015,
  persentase = c(42, 41, 40.5, 39.5),
  batas_bawah = c(38.5, 37.5, 36.8, 36.0),
  batas_atas = c(45.0, 44.5, 43.8, 43.5)
)

data_kamboja
##   tahun persentase batas_bawah batas_atas
## 1  2012       42.0        38.5       45.0
## 2  2013       41.0        37.5       44.5
## 3  2014       40.5        36.8       43.8
## 4  2015       39.5        36.0       43.5

9.1.2 Visualiasi Awal

ggplot(
  data_kamboja,
  aes(x = tahun, y = persentase)
) +
  geom_col(
    fill = "#A8D5C8",
    width = 0.65
  ) +
  labs(
    title = "Persentase Petani dengan Lahan Kecil di Kamboja",
    x = "Tahun",
    y = "Persentase (%)"
  ) +
  theme_minimal()

9.1.3 Visualisasi setelah diperbaiki

ggplot(
  data_kamboja,
  aes(x = tahun, y = persentase)
) +
  geom_col(
    fill = "#56B4E9",
    width = 0.6,
    alpha = 0.85
  ) +
  geom_errorbar(
    aes(
      ymin = batas_bawah,
      ymax = batas_atas
    ),
    width = 0.12,
    linewidth = 0.8,
    color = "#333333"
  ) +
  geom_text(
    aes(
      y = batas_atas + 1.5,
      label = paste0(persentase, "%")
    ),
    vjust = 0,
    size = 3.5
  ) +
  scale_x_continuous(
    breaks = 2012:2015
  ) +
  scale_y_continuous(
    limits = c(0, 50),
    breaks = seq(0, 50, 10),
    expand = expansion(mult = c(0, 0))
  ) +
  coord_cartesian(
    ylim = c(0, 50),
    clip = "off"
  ) +
  labs(
    title = "Persentase Petani dengan Lahan Kecil di Kamboja",
    subtitle = "Perbandingan estimasi dan rentang ketidakpastian",
    x = "Tahun",
    y = "Persentase (%)",
    caption = "Data simulasi, bukan data penelitian aktual"
  ) +
  theme_minimal(base_size = 12) +
  theme(
    plot.title = element_text(
      face = "bold",
      size = 14
    ),
    plot.subtitle = element_text(size = 11),
    axis.title = element_text(face = "bold"),
    panel.grid.minor = element_blank(),
    panel.grid.major.x = element_blank(),
    plot.caption = element_text(
      size = 9,
      color = "grey40"
    ),
    plot.margin = margin(
      t = 15,
      r = 10,
      b = 10,
      l = 10
    )
  )

9.1.4 Penjelasan perbaikan

Perbaikan dilakukan dengan menambahkan error bar pada setiap batang untuk menunjukkan batas bawah dan batas atas rentang ketidakpastian. Label persentase juga ditambahkan agar nilai estimasi dapat dibaca secara langsung. Selain itu, warna batang, judul, dan label sumbu diperjelas agar informasi lebih mudah dipahami.

9.1.5 Interpretasi

Diagram batang menunjukkan perubahan persentase petani dengan lahan kecil dari tahun ke tahun. Sementara itu, error bar memberikan informasi mengenai rentang ketidakpastian dari nilai estimasi yang ditampilkan.

Pada data simulasi, persentase menurun dari 42% pada 2012 menjadi 39,5% pada 2015. Rentang error bar memperlihatkan bahwa setiap estimasi memiliki ketidakpastian. Namun, penurunan nilai estimasi saja belum cukup untuk menyimpulkan adanya perubahan yang signifikan secara statistik. Kesimpulan tersebut memerlukan informasi mengenai jenis interval yang digunakan dan metode analisis yang sesuai.

9.1.6 Makna dan Informasi Utama

Visualisasi menunjukkan bahwa persentase petani dengan lahan kecil di Kamboja mengalami penurunan secara bertahap, dari 42% pada tahun 2012 menjadi 39,5% pada tahun 2015. Penambahan error bar membantu menunjukkan rentang ketidakpastian pada setiap estimasi, sehingga informasi yang disajikan tidak hanya berfokus pada nilai persentase, tetapi juga memperlihatkan variasi atau ketidakpastian di sekitarnya.

Informasi utama dari visualisasi ini adalah bahwa diagram batang dengan error bar memberikan informasi yang lebih lengkap dibandingkan diagram batang biasa. Namun, karena data yang digunakan merupakan data simulasi, hasil tersebut hanya menggambarkan contoh penyajian visualisasi dan bukan kesimpulan mengenai kondisi aktual petani di Kamboja.

9.1.7 Kesimpulan

Penambahan error bar membuat visualisasi lebih informatif karena pembaca tidak hanya melihat nilai persentase, tetapi juga rentang ketidakpastian estimasi. Dengan demikian, grafik batang dengan error bar lebih sesuai ketika tujuan visualisasi adalah membandingkan estimasi sekaligus memperlihatkan ketidakpastiannya.

10 9. Slide 29: Perbaikan Visualisasi Jaringan Perdagangan ASEAN

10.1 Identifikasi Masalah

Visualisasi jaringan pada slide menunjukkan hubungan perdagangan antarnegara ASEAN melalui simpul (node) dan garis penghubung (edge) yang memiliki arah. Namun, beberapa garis saling berpotongan sehingga hubungan antarnegara sulit ditelusuri. Selain itu, ukuran simpul terlihat relatif seragam dan belum menjelaskan perbedaan peran atau besarnya aktivitas perdagangan setiap negara. Penggunaan warna garis yang berbeda juga belum disertai keterangan yang jelas.

Oleh karena itu, perbaikan difokuskan pada pengaturan posisi simpul, penggunaan warna yang konsisten, penambahan legenda, serta penjelasan arah hubungan perdagangan. Data yang digunakan merupakan data simulasi, bukan data perdagangan aktual ASEAN.

10.1.1 Data Simulasi

# install.packages(c("igraph", "ggraph", "ggplot2", "dplyr"))

library(igraph)
library(ggraph)
library(ggplot2)
library(dplyr)

# Data simulasi perdagangan antarnegara ASEAN
data_perdagangan <- data.frame(
  asal = c(
    "Indonesia", "Indonesia", "Indonesia",
    "Thailand", "Thailand", "Thailand",
    "Malaysia", "Malaysia",
    "Singapura", "Singapura",
    "Filipina", "Vietnam"
  ),
  tujuan = c(
    "Singapura", "Malaysia", "Filipina",
    "Malaysia", "Vietnam", "Singapura",
    "Singapura", "Vietnam",
    "Thailand", "Vietnam",
    "Thailand", "Indonesia"
  ),
  nilai = c(
    80, 60, 35,
    55, 40, 45,
    70, 30,
    65, 50,
    25, 20
  )
)

data_perdagangan
##         asal    tujuan nilai
## 1  Indonesia Singapura    80
## 2  Indonesia  Malaysia    60
## 3  Indonesia  Filipina    35
## 4   Thailand  Malaysia    55
## 5   Thailand   Vietnam    40
## 6   Thailand Singapura    45
## 7   Malaysia Singapura    70
## 8   Malaysia   Vietnam    30
## 9  Singapura  Thailand    65
## 10 Singapura   Vietnam    50
## 11  Filipina  Thailand    25
## 12   Vietnam Indonesia    20

10.1.2 Visualisasi Awal

Visualisasi awal menggunakan simpul (node) untuk mewakili negara dan garis penghubung (edge) untuk menunjukkan hubungan perdagangan antarnegara ASEAN. Namun, beberapa garis saling berpotongan sehingga hubungan antarnegara sulit ditelusuri. Selain itu, belum terdapat keterangan yang jelas mengenai makna warna dan ketebalan garis.

10.1.3 Visualisasi setelah perbaikan

jaringan <- graph_from_data_frame(
  data_perdagangan,
  directed = TRUE
)

set.seed(123)

ggraph(jaringan, layout = "fr") +
  geom_edge_link(
    aes(width = nilai),
    colour = "#56A6D9",
    alpha = 0.65,
    arrow = arrow(
      length = unit(3, "mm"),
      type = "closed"
    ),
    end_cap = circle(4, "mm")
  ) +
  geom_node_point(
    size = 7,
    colour = "#007C91"
  ) +
  geom_node_text(
    aes(label = name),
    repel = TRUE,
    size = 3.5,
    fontface = "bold"
  ) +
  scale_edge_width(
    range = c(0.5, 2.5),
    name = "Nilai perdagangan"
  ) +
  labs(
    title = "Jaringan Perdagangan Antarnegara ASEAN",
    subtitle = "Ketebalan garis menunjukkan nilai perdagangan simulasi",
    caption = "Data simulasi, bukan data perdagangan aktual"
  ) +
  theme_void(base_size = 12) +
  theme(
    plot.title = element_text(
      face = "bold",
      size = 15
    ),
    plot.subtitle = element_text(size = 11),
    plot.caption = element_text(
      size = 9,
      color = "grey40"
    ),
    legend.position = "bottom"
  )

10.1.4 Penjelasan Perbaikan

  1. Posisi simpul diatur otomatis. Tata letak Fruchterman-Reingold membantu menyebarkan simpul agar hubungan lebih mudah diamati.
  2. Ketebalan garis menunjukkan nilai perdagangan. Hubungan dengan nilai lebih besar digambarkan menggunakan garis lebih tebal.
  3. Arah panah diperjelas. Panah menunjukkan arah hubungan dari negara asal menuju negara tujuan.
  4. Label negara diperjelas. Nama negara dibuat tebal dan menggunakan pengaturan repel = TRUE untuk mengurangi tumpang tindih.
  5. Keterangan visual ditambahkan. Judul, subjudul, legenda, dan catatan data simulasi membantu pembaca memahami informasi pada grafik.

10.1.5 Interpretasi

Jaringan memperlihatkan hubungan perdagangan antarnegara berdasarkan arah dan nilai perdagangan simulasi. Garis yang lebih tebal menunjukkan nilai perdagangan yang lebih besar, sedangkan panah menunjukkan arah hubungan. Visualisasi ini dapat membantu mengidentifikasi negara yang memiliki banyak hubungan perdagangan. Namun, karena datanya merupakan simulasi, hasilnya tidak menggambarkan pola perdagangan ASEAN yang sebenarnya.

10.1.6 Makna dan Informasi Utama

Diagram jaringan sesuai untuk menggambarkan hubungan antarnegara yang saling terhubung. Informasi utama yang dapat disampaikan meliputi arah perdagangan, jumlah hubungan yang dimiliki setiap negara, dan perbedaan nilai perdagangan antarpasangan negara. Pengaturan posisi simpul, ketebalan garis, dan arah panah membuat hubungan tersebut lebih mudah dibaca.

10.1.7 Kesimpulan

Perbaikan dilakukan dengan mengurangi tumpang tindih label, membedakan ketebalan garis berdasarkan nilai perdagangan, dan memperjelas arah hubungan. Dengan demikian, diagram jaringan dapat menyampaikan struktur hubungan perdagangan secara lebih informatif.

11 10.Slide 29: Perbaikan Visualisasi Word Cloud

11.1 Identifikasi Masalah

isualisasi word cloud pada slide menampilkan banyak nama dengan ukuran dan warna yang bervariasi. Nama yang sering muncul dibuat lebih besar, tetapi kepadatan kata dan penggunaan warna yang beragam membuat beberapa nama sulit dibaca. Selain itu, tidak terdapat keterangan yang menjelaskan bahwa ukuran kata merepresentasikan frekuensi kemunculannya.

Oleh karena itu, perbaikan difokuskan pada pembatasan jumlah kata, pemilihan warna yang lebih konsisten, dan penambahan judul serta keterangan agar informasi utama lebih mudah dipahami.

11.1.1 Data Simulasi

# Jalankan satu kali jika paket belum tersedia
# install.packages(c("ggplot2", "dplyr", "ggwordcloud"))

library(ggplot2)
library(dplyr)
library(ggwordcloud)

data_nama <- data.frame(
  nama = c(
    "Muhammad", "Budi", "Siti", "Dewi", "Putri",
    "Ahmad", "Nurul", "Rizki", "Aulia", "Nabila",
    "Rahma", "Andi", "Fitri", "Dimas", "Rina",
    "Wahyu", "Anisa", "Fajar", "Indah", "Zahra",
    "Agus", "Dian", "Rani", "Hafiz", "Intan"
  ),
  frekuensi = c(
    100, 75, 65, 58, 52,
    48, 45, 42, 39, 35,
    32, 30, 28, 26, 24,
    22, 20, 18, 17, 16,
    14, 13, 12, 10, 8
  )
)

data_nama
##        nama frekuensi
## 1  Muhammad       100
## 2      Budi        75
## 3      Siti        65
## 4      Dewi        58
## 5     Putri        52
## 6     Ahmad        48
## 7     Nurul        45
## 8     Rizki        42
## 9     Aulia        39
## 10   Nabila        35
## 11    Rahma        32
## 12     Andi        30
## 13    Fitri        28
## 14    Dimas        26
## 15     Rina        24
## 16    Wahyu        22
## 17    Anisa        20
## 18    Fajar        18
## 19    Indah        17
## 20    Zahra        16
## 21     Agus        14
## 22     Dian        13
## 23     Rani        12
## 24    Hafiz        10
## 25    Intan         8

11.1.2 Visualisasi setelah perbaikan

11.1.3 Visualisasi setelah perbaikan

library(ggplot2)
library(ggwordcloud)

ggplot(
  data_nama,
  aes(
    label = nama,
    size = frekuensi,
    color = nama
  )
) +
  geom_text_wordcloud(
    area_corr = TRUE,
    rm_outside = TRUE,
    shape = "ellipse",
    eccentricity = 0.55,
    grid_size = 2,
    seed = 123
  ) +
  scale_size_area(
    max_size = 28,
    name = "Frekuensi"
  ) +
  scale_color_manual(
    values = grDevices::hcl.colors(
      nrow(data_nama),
      palette = "Dynamic"
    ),
    guide = "none"
  ) +
  labs(
    title = "Word Cloud Frekuensi Nama",
    subtitle = "Ukuran kata menunjukkan frekuensi kemunculan",
    caption = "Data simulasi, bukan data aktual"
  ) +
  theme_void(base_size = 12) +
  theme(
    plot.title = element_text(
      face = "bold",
      size = 15,
      hjust = 0.5
    ),
    plot.subtitle = element_text(
      size = 11,
      hjust = 0.5
    ),
    plot.caption = element_text(
      size = 9,
      color = "grey40"
    )
  )

### Penjelasan Perbaikan
Visualisasi word cloud telah diperbaiki dengan mempertahankan penggunaan warna yang beragam dan bentuk kumpulan kata yang menyerupai oval. Ukuran setiap nama disesuaikan dengan frekuensi kemunculannya, sehingga nama yang memiliki frekuensi lebih tinggi ditampilkan dengan ukuran lebih besar. Judul dan subjudul ditambahkan untuk memperjelas bahwa ukuran kata merepresentasikan frekuensi kemunculan, sedangkan keterangan di bagian bawah menunjukkan bahwa data yang digunakan merupakan data simulasi.

Meskipun demikian, beberapa kata masih terlihat berdekatan dan distribusi warna yang beragam belum menunjukkan tingkatan nilai tertentu. Oleh karena itu, warna berfungsi sebagai pembeda antarnama, bukan sebagai indikator frekuensi.
### Interpretasi
Berdasarkan visualisasi, nama seperti Rizki, Rafi, Citra, Agus, dan Aulia terlihat menonjol karena ditampilkan dengan ukuran relatif besar. Hal ini menunjukkan bahwa nama-nama tersebut memiliki frekuensi kemunculan yang relatif tinggi dalam data simulasi. Sebaliknya, nama dengan ukuran lebih kecil memiliki frekuensi kemunculan yang relatif rendah.
### Makna dan Informasi Utama
Informasi utama yang disampaikan adalah dominasi nama berdasarkan frekuensi kemunculannya. Ukuran kata membantu pembaca mengenali nama yang paling sering muncul secara cepat, sedangkan variasi warna memudahkan pembedaan antarnama. Namun, word cloud lebih sesuai untuk memberikan gambaran umum daripada membandingkan frekuensi secara akurat.
### Kesimpulan
Visualisasi word cloud memberikan gambaran ringkas mengenai nama-nama yang dominan dalam data. Penambahan judul, subjudul, dan keterangan data memperjelas konteks visualisasi. Penggunaan warna yang beragam tetap dipertahankan sebagai unsur pembeda, sementara ukuran kata menjadi elemen utama untuk menunjukkan frekuensi kemunculan.

# 11.Slide 30: Perbaikan Visualisasi Peta Tematik
## Identifikasi Masalah
Visualisasi pada slide 30 sudah menggunakan peta tematik yang sesuai untuk menampilkan persebaran tingkat kemiskinan antarprovinsi. Namun, peta masih dapat diperbaiki melalui pemilihan gradasi warna yang lebih jelas, penambahan judul yang informatif, serta pengaturan legenda agar rentang persentase lebih mudah dipahami. Selain itu, sumber data perlu dicantumkan agar informasi yang disajikan dapat ditelusuri.

Oleh karena itu, perbaikan difokuskan pada penggunaan gradasi warna yang konsisten, legenda dengan satuan persentase, serta tampilan peta yang lebih bersih. Data yang digunakan pada contoh berikut merupakan data simulasi, bukan data kemiskinan aktual tahun 2020.

### Data Simulasi

``` r
library(geodata)
library(sf)
library(ggplot2)
library(dplyr)

# Mengambil batas administrasi provinsi Indonesia
peta_provinsi <- geodata::gadm(
  country = "IDN",
  level = 1,
  path = tempdir()
)

peta_provinsi <- st_as_sf(peta_provinsi)

# Membuat data simulasi
set.seed(123)

peta_provinsi <- peta_provinsi %>%
  mutate(
    persentase_kemiskinan = round(
      runif(n(), min = 4, max = 28),
      1
    )
  )

head(
  st_drop_geometry(peta_provinsi)[
    c("NAME_1", "persentase_kemiskinan")
  ]
)
##            NAME_1 persentase_kemiskinan
## 1            Aceh                  10.9
## 2            Bali                  22.9
## 3 Bangka Belitung                  13.8
## 4          Banten                  25.2
## 5        Bengkulu                  26.6
## 6       Gorontalo                   5.1

11.1.4 Visualisasi Awal

Visualisasi awal pada slide menggunakan gradasi warna biru muda hingga biru yang lebih gelap. Pendekatan ini sesuai untuk peta tematik karena perbedaan warna dapat menunjukkan variasi nilai antardaerah. Namun, judul dan legenda dapat dibuat lebih jelas agar pembaca lebih mudah memahami informasi yang disajikan.

11.1.5 Visualisasi Setelah Perbaikan

ggplot(peta_provinsi) +
  geom_sf(
    aes(fill = persentase_kemiskinan),
    color = "white",
    linewidth = 0.25
  ) +
  scale_fill_gradient(
    low = "#EAF4FB",
    high = "#0868AC",
    name = "Kemiskinan (%)",
    breaks = seq(5, 25, 5),
    limits = c(0, 30),
    labels = function(x) paste0(x, "%"),
    oob = scales::squish
  ) +
  labs(
    title = "Persebaran Persentase Kemiskinan Antarprovinsi",
    subtitle = "Indonesia, data simulasi",
    caption = paste(
      "Sumber batas wilayah: GADM.",
      "Nilai kemiskinan merupakan data simulasi."
    )
  ) +
  coord_sf(datum = NA) +
  theme_void(base_size = 12) +
  theme(
    plot.title = element_text(
      face = "bold",
      size = 15
    ),
    plot.subtitle = element_text(
      size = 11,
      color = "grey35"
    ),
    legend.position = "bottom",
    legend.title = element_text(
      face = "bold",
      size = 10
    ),
    legend.text = element_text(size = 9),
    plot.caption = element_text(
      size = 9,
      color = "grey40"
    ),
    plot.margin = margin(12, 12, 12, 12)
  ) +
  guides(
    fill = guide_colorbar(
      barwidth = 18,
      barheight = 0.7,
      title.position = "top",
      title.hjust = 0.5
    )
  )

11.1.6 Penjelasan Perbaikan

  1. Gradasi warna diperjelas. Warna biru muda menunjukkan nilai yang relatif rendah, sedangkan biru tua menunjukkan nilai yang relatif tinggi.
  2. Batas antarprovinsi diperjelas. Garis putih tipis membantu membedakan wilayah tanpa membuat peta terlihat terlalu ramai.
  3. Legenda diberi satuan persentase. Pembaca dapat memahami bahwa warna merepresentasikan persentase kemiskinan.
  4. Judul dan keterangan diperjelas. Judul menjelaskan informasi utama, sedangkan keterangan menyatakan bahwa nilai yang ditampilkan merupakan data simulasi.
  5. Elemen yang tidak diperlukan dihilangkan. Sumbu koordinat dihapus agar perhatian pembaca berfokus pada persebaran geografis.

11.1.7 Interpretasi

Pada peta, provinsi dengan warna biru yang lebih gelap memiliki nilai kemiskinan simulasi yang lebih tinggi, sedangkan provinsi dengan warna lebih terang memiliki nilai yang lebih rendah. Peta tematik membantu pembaca mengenali variasi geografis secara cepat. Namun, karena nilainya dibuat secara acak untuk simulasi, pola yang terlihat tidak dapat digunakan untuk menyimpulkan kondisi kemiskinan aktual di Indonesia.

11.1.8 Makna dan Informasi Utama

Peta tematik merupakan visualisasi yang sesuai untuk menunjukkan persebaran suatu indikator berdasarkan wilayah geografis. Gradasi warna memungkinkan pembaca membandingkan tingkat kemiskinan antarprovinsi secara visual. Informasi utama yang ingin disampaikan adalah perbedaan nilai antardaerah, dengan catatan bahwa interpretasi substantif hanya dapat dilakukan jika peta menggunakan data aktual yang valid.

11.1.9 Kesimpulan

Perbaikan peta tematik dilakukan dengan memperjelas gradasi warna, batas wilayah, legenda, judul, dan sumber data. Perbaikan tersebut meningkatkan keterbacaan peta serta memudahkan pembaca memahami variasi nilai antardaerah. Untuk analisis kemiskinan yang sesungguhnya, data simulasi perlu diganti dengan data resmi dari sumber yang relevan.