Dirgahayu Kemerdekaan Republik Indonesia

Persembahan Untuk HUT Ke-79 RI

Peringatan hari ulang tahun ke-79 Republik Indonesia menyimpan banyak harapan. Salah satunya adalah pertumbuhan ekonomi. Artikel ini memberikan persembahan visualisasi data dalam tema pertumbuhan ekonomi tersebut.
ekonomi
statistik nasional
tutorial
visualisasi data
Pengarang
Afiliasi
Terbit

August 12, 2024

Dimodifikasi

August 19, 2024

Kata kunci

kemerdekaan, Republik Indonesia, nusantara, ekonomi, investasi, logo, penanaman modal asing, diagram batang, diagram alir

Di awal bulan Agustus, masyarakat Indonesia pada umumnya sibuk mempersiapkan hajatan negara. Mereka secara serentak memasang bendera merah putih, spanduk, umbul-umbul, bersih-bersih desa, dan lain sebagainya. Berbagai perlombaan pun dilakukan. Mulai dari sepak bola, bola voli, bulu tangkis, tenis meja, sampai panjat pinang. Itu semua merupakan luapan suka cita kemerdekaan dan harapan ke depan.

Nusantara Baru, Indonesia Maju. Itulah tema besar peringatan hari ulang tahun ke-79 kemerdekaan Republik Indonesia. Peringatan HUT ke-79 RI tersebut tentu memiliki banyak makna dan harapan. Menariknya, makna dan harapan tersebut tergambar dalam logo numerik yang digunakan. Salah satu harapannya adalah pertumbuhan ekonomi.

Logo numerik HUT ke-79 kemerdekaan RI (kiri). Sorotan terhadap angka tujuh pada logo (kanan).
Gambar 1: Logo numerik HUT ke-79 kemerdekaan RI (kiri). Sorotan terhadap angka tujuh pada logo (kanan).

Berdasarkan panduan identitas visualnya, angka tujuh pada logo tersebut menyerupai anak panah yang mengarah ke kanan-atas. Dalam bahasa Statistika, angka tersebut menyimbolkan tren yang naik. Perhatikan Gambar 1. Hal itu melambangkan harapan Indonesia untuk meningkatkan investasi dan ekspornya sehingga bertumbuh ekonominya.

Nah, kita akan melihat harapan besar itu, khususnya dalam hal investasi. Kita akan menggunakan data realisasi penanaman modal asing pada periode 2010 – 2024 dari Kementerian Investasi/BKPM. Data tersebut kita manfaatkan untuk memvisualisasikan dan melihat tren realisasi penanaman modal dari berbagai negara.

Kita akan memvisualisasikan data tersebut dengan pemrograman R. Untuk melakukannya, kita menggunakan paket {tidyverse}, {ggstream}, dan {ggtext}. Untuk itu kita perlu memastikan ketiga paket tersebut telah terpasang. Jika sudah, kita dapat memanggilnya dengan kode seperti berikut.

library(tidyverse)
library(ggstream)
library(ggtext)

Menjelajah Data

Mari singsingkan lengan baju kita. Dengan semangat kemerdekaan (agak berlebihan tak apa), kita mulai penjelahan data. Data realisasi penanaman modal tersebut tersedia di situs web Kementerian Investasi/BKPM. Data yang sudah aku siapkan dapat diakses di tautan ini. Dengan fungsi read_csv() kita impor data tersebut dan kita namai dengan realisasi_penanaman_modal. Untuk melihat datanya, kita dapat menggunakan fungsi print().

realisasi_penanaman_modal <- read_csv("https://raw.githubusercontent.com/jelajahstatid/jelajahstatid.github.io/main/pos/2024-08-dirgahayu-indonesia/aset/realisasi_penanaman_modal.csv")

print(realisasi_penanaman_modal)
# A tibble: 177 × 17
   benua  negara  `2010` `2011` `2012` `2013` `2014` `2015` `2016` `2017` `2018`
   <chr>  <chr>    <dbl>  <dbl>  <dbl>  <dbl>  <dbl>  <dbl>  <dbl>  <dbl>  <dbl>
 1 Afrika Afrika…     NA     NA     NA     NA     NA   NA      NA     NA      0 
 2 Afrika Afrika…     NA   1190     NA     NA    500   69.1   982.  4292.  5369.
 3 Afrika Aljaza…     NA     NA     NA     NA     NA    0     400      0      0 
 4 Afrika Benin       NA     NA     NA     NA     NA   NA      NA     NA     NA 
 5 Afrika Burkin…     NA     NA     NA     NA    200  300       0    411.     0 
 6 Afrika Eswati…     NA     NA     NA     NA     NA   NA      NA     NA     NA 
 7 Afrika Ethiop…     NA     NA     NA     NA     NA   NA      NA     NA    650 
 8 Afrika Gambia      NA     NA     NA     NA      0   NA      NA     NA     NA 
 9 Afrika Ghana       NA     NA     NA     NA     NA   NA      NA     NA     NA 
10 Afrika Guinea      NA     NA     NA     NA    500  100     200   1500      0 
# ℹ 167 more rows
# ℹ 6 more variables: `2019` <dbl>, `2020` <dbl>, `2021` <dbl>, `2022` <dbl>,
#   `2023` <dbl>, `2024` <dbl>

Data tersebut memiliki 17 variabel dan 177 baris. Variabel-variabelnya adalah benua, negara, dan realisasi penanaman modal (dalam ribuan dolar AS) dari tahun 2010 sampai 2024. Akan tetapi, nilai pada tahun 2024 tersebut belum utuh. Nilainya terhitung hanya sampai pada 30 Juni 2024.

Data kita tersebut bentuknya melebar. Kita buat data itu menjadi memanjang dengan menggunakan pivot_longer(). Karena tahun 2024 nilainya belum utuh, kita perlu memfilternya agar mengabaikan data pada tahun itu. Hal ini dilakukan dengan fungsi filter() dengan argumen tahun < 2024. Namun, filter seperti itu mengharuskan nilai-nilai dalam variabel tahun jenisnya adalah integer (atau numerik). Untuk itu, kita modifikasi variabel tahun agar menjadi integer dengan fungsi mutate dan as.integer(). Kita lihat hasilnya dengan print().

realisasi_penanaman_modal <- realisasi_penanaman_modal |> 
  pivot_longer(
    cols = starts_with("20"),
    names_to = "tahun",
    values_to = "nilai_investasi"
  ) |> 
  mutate(tahun = as.integer(tahun)) |> 
  filter(tahun < 2024)

print(realisasi_penanaman_modal)
# A tibble: 2,478 × 4
   benua  negara         tahun nilai_investasi
   <chr>  <chr>          <int>           <dbl>
 1 Afrika Afrika Lainnya  2010              NA
 2 Afrika Afrika Lainnya  2011              NA
 3 Afrika Afrika Lainnya  2012              NA
 4 Afrika Afrika Lainnya  2013              NA
 5 Afrika Afrika Lainnya  2014              NA
 6 Afrika Afrika Lainnya  2015              NA
 7 Afrika Afrika Lainnya  2016              NA
 8 Afrika Afrika Lainnya  2017              NA
 9 Afrika Afrika Lainnya  2018               0
10 Afrika Afrika Lainnya  2019              NA
# ℹ 2,468 more rows

Sekarang data kita, realisasi_penanaman_modal, memiliki empat variabel dan 2.478 baris. Keempat variabel tersebut adalah benua, negara, tahun, dan nilai_investasi. Dari data tersebut, menarik untuk menyelidiki total investasi negara-negara berdasarkan benuanya.

Kita dapat melakukannya dengan mengelompokkan baris-baris dalam realisasi_penanaman_modal berdasarkan benua, kemudian meringkasnya untuk membuat variabel baru, yaitu total_investasi. Variabel tersebut merupakan jumlah, atau sum(), dari nilai-nilai dalam nilai_investasi dalam setiap kelompoknya. Agar mudah membaca hasilnya, kita dapat mengurutkan baris-barisnya berdasarkan nilai dalam variabel total_investasi dengan menggunakan arrange().

realisasi_penanaman_modal_benua <- realisasi_penanaman_modal |> 
  group_by(benua) |> 
  summarise(
    total_investasi = sum(nilai_investasi, na.rm = TRUE),
    .groups = "drop"
  ) |> 
  arrange(-total_investasi)

print(realisasi_penanaman_modal_benua)
# A tibble: 6 × 2
  benua     total_investasi
  <chr>               <dbl>
1 Asia           286233096.
2 Joint           41288935.
3 Amerika         40521759.
4 Eropa           39327051 
5 Afrika           7185703.
6 Australia        6471650.

Negara-negara Asia memberikan investasi terbesar bagi Indonesia. Proporsinya adalah sekitar 68% dari keseluruhan.

Apabila ditotal, negara-negara dari Asia menanamkan modal terbesar dibandingkan dengan benua-benua lainnya (sekitar 68% dari keseluruhan).

Sekarang kita lihat tren realisasi penanaman modal setiap tahunnya. Kita dapat melakukannya dengan menggunakan kode yang serupa, tetapi pengelompokannya berdasarkan tahun.

realisasi_penanaman_modal_tahun <- realisasi_penanaman_modal |> 
  group_by(tahun) |> 
  summarise(
    total_investasi = sum(nilai_investasi, na.rm = TRUE),
    .groups = "drop"
  )

print(realisasi_penanaman_modal_tahun)
# A tibble: 14 × 2
   tahun total_investasi
   <int>           <dbl>
 1  2010       16214772.
 2  2011       19474532.
 3  2012       24564670.
 4  2013       28616270.
 5  2014       28529698.
 6  2015       29275941.
 7  2016       28964075.
 8  2017       32239752.
 9  2018       29307908.
10  2019       28208761.
11  2020       28666272.
12  2021       31093069 
13  2022       45604963.
14  2023       50267512.

Secara umum, kita melihat adanya tren yang naik untuk nilai variabel total_investasi. Berapakah kenaikan setiap tahunnya? Untuk menjawabnya, kita dapat menambahkan variabel baru ke dalam data tersebut dengan mutate(). Misalnya, nama variabel tersebut adalah kenaikan_investasi. Nilai variabel tersebut diperoleh dengan mengurangi nilai total_investasi sebuah baris dengan nilai dalam baris sebelumnya. Untuk mendapatkan nilai pada baris sebelumnya, kita dapat menggunakan fungsi lag().

realisasi_penanaman_modal_tahun <- realisasi_penanaman_modal_tahun |> 
  mutate(
    kenaikan_investasi = total_investasi - lag(total_investasi)
  )

print(realisasi_penanaman_modal_tahun)
# A tibble: 14 × 3
   tahun total_investasi kenaikan_investasi
   <int>           <dbl>              <dbl>
 1  2010       16214772.                NA 
 2  2011       19474532.           3259759.
 3  2012       24564670.           5090139.
 4  2013       28616270.           4051600.
 5  2014       28529698.            -86571.
 6  2015       29275941.            746242.
 7  2016       28964075.           -311866 
 8  2017       32239752.           3275677 
 9  2018       29307908.          -2931844.
10  2019       28208761.          -1099147 
11  2020       28666272.            457512.
12  2021       31093069            2426797.
13  2022       45604963.          14511894.
14  2023       50267512.           4662549.

Berapakah rerata kenaikan realisasi penanaman modal setiap tahunnya? Kita dapat menghitungnya dengan menggunakan mean() terhadap kolom kenaikan_investasi dalam data realisasi_penanaman_modal_tahun.

rerata_kenaikan_investasi <- mean(realisasi_penanaman_modal_tahun$kenaikan_investasi, na.rm = TRUE)

print(rerata_kenaikan_investasi)
[1] 2619442

Jadi, secara rata-rata kenaikan realisasi penanaman modal dari tahun 2010 sampai 2023 adalah sekitar 2.619.442 (ribuan dolar AS) atau sekitar 2,6 milyar dolar AS per tahunnya.

Terdapat tren yang naik untuk total realisasi penanaman modal asing dari berbagai negara. Mulai tahun 2010 sampai 2023, rerata kenaikannya sekitar 2,6 milyar dolar AS per tahunnya.

Tren realisasi penanaman modal tersebut ditunjukkan pada Gambar 2.

Kode
realisasi_penanaman_modal_tahun |> 
  ggplot(aes(x = tahun, y = total_investasi)) + 
  geom_line() + 
  geom_point()
Gambar 2: Tren total realisasi penanaman modal asing setiap tahunnya

Berdasarkan Gambar 2 tersebut, kita dapat melihat bahwa kenaikan realisasi penanaman modal yang paling besar berada pada rentang tahun 2021 – 2023. Rerata kenaikan pada periode tersebut kurang lebih 9,6 milyar dolar AS per tahun.

Kenaikan penanaman modal asing terbesar terjadi di antara tahun 2021 dan 2023.

Memvisualisasikan Data

Saatnya kita wartakan temuan-temuan yang telah kita dapatkan. Berdasarkan Bagian 1, kita menemukan tiga hal.

  1. Apabila ditotal, negara-negara dari Asia menanamkan modal terbesar dibandingkan dengan benua-benua lainnya (sekitar 68% dari keseluruhan).
  2. Terdapat tren yang naik untuk total realisasi penanaman modal asing dari berbagai negara. Mulai tahun 2010 sampai 2023, rerata kenaikannya sekitar 2,6 milyar dolar AS per tahunnya.
  3. Kenaikan penanaman modal asing terbesar terjadi di antara tahun 2021 dan 2023.

Kita akan menyampaikan ketiga pesan tersebut melalui sebuah diagram. Diagram apa yang cocok? Mungkin diagram batang cocok—diagram batang yang menunjukkan realisasi penanaman modal setiap tahunnya beserta dengan proporsi setiap benuanya.

Untuk membuat diagram batang yang demikian, kita memerlukan data yang memiliki variabel benua dan tahun, serta nilai akumulasi dari realisasi penanaman modal untuk benua dan tahun yang bersangkutan.

Untuk membuat data seperti itu, kita menggunakan data realisasi_penanaman_modal. Setelah itu, kita kelompokkan baris-baris dalam data tersebut menurut benua dan tahun untuk dihitung jumlah (sum()) nilai-nilai variabel nilai_investasi-nya. Kita namai data ini sebagai investasi_benua_tahun.

investasi_benua_tahun <- realisasi_penanaman_modal |> 
  group_by(benua, tahun) |> 
  summarise(
    total_investasi = sum(nilai_investasi, na.rm = TRUE),
    .groups = "drop"
  )

print(investasi_benua_tahun)
# A tibble: 84 × 3
   benua  tahun total_investasi
   <chr>  <int>           <dbl>
 1 Afrika  2010         149993.
 2 Afrika  2011         202130.
 3 Afrika  2012        1195699.
 4 Afrika  2013         801737.
 5 Afrika  2014         663936.
 6 Afrika  2015         192825.
 7 Afrika  2016         744869.
 8 Afrika  2017        1288737.
 9 Afrika  2018         373937.
10 Afrika  2019         326860.
# ℹ 74 more rows

Sekarang kita gunakan data investasi_benua_tahun tersebut untuk membuat diagram batang. Diagram batang tersebut ditunjukkan pada Gambar 3.

investasi_benua_tahun |> 
  ggplot(aes(x = tahun, y = total_investasi)) + 
  geom_col(aes(fill = benua))
Gambar 3: Realisasi penanaman modal asing per tahun untuk setiap benua

Diagram batang pada Gambar 3 tersebut telah dapat menyampaikan tiga temuan kita. Akan tetapi, diagram tersebut mungkin terasa belum cukup meyakinkan. Diagram tersebut juga kurang sejalan dengan elemen grafis perayaan HUT ke-79 RI. Berdasarkan pedoman identitas visualnya, elemen grafis tersebut ditunjukkan pada Gambar 4.

Gambar 4: Elemen grafis peringatan HUT ke-79 RI

Elemen grafis pada Gambar 4 tersebut melambangkan aliran sungai. Harapannya, negara akan terus berkembang mengikuti zaman seperti sifat sungai.

Berdasarkan harapan itu, kita dapat menggunakan diagram alir. Diagram seperti ini dapat kita buat dengan menggunakan fungsi geom_stream() dari paket {ggstream}. Diagram alirnya dapat dilihat pada Gambar 5.

investasi_benua_tahun |> 
  ggplot(aes(x = tahun, y = total_investasi)) + 
  geom_stream(aes(fill = benua))
Gambar 5: Diagram alir sederhana yang menunjukkan realisasi penanaman modal asing per tahun untuk setiap benua

Agar terlihat lebih bersih, kita hilangkan latar belakang plotnya. Hal ini dapat kita lakukan dengan memilih tema theme_void(). Warna yang merepresentasikan benua-benuanya juga dapat kita ganti. Untuk itu, kita perlu mengetahui apa saja benua-benua yang ada dalam data kita.

unique(investasi_benua_tahun$benua)
[1] "Afrika"    "Amerika"   "Asia"      "Australia" "Eropa"     "Joint"    

Ternyata ada lima benua (yaitu Afrika, Amerika, Asia, Australia, dan Eropa) serta satu kelompok dengan nama Joint. Kelompok Joint ini merupakan gabungan dari beberapa negara (tidak harus dalam satu benua).

Kita pilih warna untuk keenam kelompok tersebut. Agar warnanya sesuai dengan tema peringatan kemerdekaan Republik Indonesia, kita pilih warna-warnanya adalah #900C3F, #C70039, #FF5733, #FF8D1A, #FFC300, dan grey85. Kita petakan warna-warna ini ke nama kelompok-kelompoknya. Kita namai pemetaan tersebut dengan warna_benua.

warna_benua <- c(
  "Asia" = "#900C3F",
  "Amerika" = "#FFC300",
  "Eropa" = "#C70039",
  "Afrika" = "#FF5733",
  "Australia" = "#ff8d1a",
  "Joint" = "grey85"
)

Sekarang kita modifikasi diagram pada Gambar 5. Hasilnya seperti tampak pada Gambar 6.

investasi_benua_tahun |> 
  ggplot(aes(x = tahun, y = total_investasi)) + 
  geom_stream(aes(fill = benua)) + 
  scale_y_continuous(limits = c(-6e+07, 6e+07)) + 
  scale_fill_manual(
    values = warna_benua
  ) + 
  theme_void()
Gambar 6: Diagram alir setelah dimodifikasi tema dan warnanya

Kita perbaiki lagi diagram pada Gambar 6 tersebut. Apakah kamu punya ide perbaikannya seperti apa?

Pertama, kita hilangkan legendanya. Kedua, kita buat teks untuk sumbu-\(x\) secara manual. Agar teksnya nanti kelihatan rapi, kita juga perlu mengatur ulang batas-batas jendela grafiknya. Selain itu, kita perlu mengatur agar grafiknya lebih mepet ke kiri dan kanan. Hasil eksekusi ide ini ditunjukkan pada Gambar 7.

investasi_benua_tahun |> 
  ggplot(aes(x = tahun, y = total_investasi)) + 
  # Layer teks pada sumbu-x
  geom_segment(
    data = data.frame(tahun = seq(2012, 2022, 2)),
    aes(x = tahun, y = 0, yend = -5e+07),
    linewidth = .5,
    linetype = "dashed",
    alpha = .4
  ) +
  geom_text(
    data = data.frame(tahun = seq(2012, 2022, 2)),
    aes(x = tahun, y = -5.5e+07, label = tahun),
    size = 3
  ) + 
  # Layer diagram alir
  geom_stream(aes(fill = benua)) + 
  # Pembatas jendela grafik
  scale_y_continuous(limits = c(-6e+07, 6e+07)) + 
  # Pewarnaan manual
  scale_fill_manual(
    values = warna_benua
  ) + 
  # Pengaturan bidang koordinat
  coord_cartesian(expand = FALSE) + 
  # Pemilihan tema
  theme_void() + 
  # Pengaturan tema
  theme(
    legend.position = "none"
  )
Gambar 7: Diagram alir setelah diberikan teks untuk sumbu-\(x\)

Apa selanjutnya? Agar diagram pada Gambar 7 tersebut jelas menyampaikan informasi apa, kita perlu menambahkan judul dan anak judul. Karena tadi kita telah menghapus legendanya, informasi legenda tersebut dapat kita masukkan ke dalam anak judul tersebut. Selain itu, kita juga dapat menambakan takarir ke dalam diagram tersebut. Takarir tersebut dapat menginformasikan sumber data yang kita gunakan. Untuk itu, kita siapkan judul, anak judul, dan takarirnya.

judul <- "Realisasi Penanaman Modal Asing"
anak_judul <- "Terdapat tren yang naik untuk total realisasi penanaman modal asing dari berbagai negara dari benua <span style='color:#900C3F'><b>Asia,</b></span> <span style='color:#FFC300'><b>Amerika,</b></span> <span style='color:#C70039'><b>Eropa,</b></span> <span style='color:#FF5733'><b>Afrika,</b></span> dan <span style='color:#FF8D1a'><b>Australia.</b></span> Mulai tahun 2010 sampai 2023, rerata kenaikannya sekitar 2,6 milyar dolar AS per tahunnya."
takarir <- "Data: Kementerian Investasi/BKPM"

Setelah judul, anak_judul, dan takarir siap, kita dapat menambahkannya ke dalam diagram alirnya. Hasilnya ditunjukkan pada Gambar 8.

investasi_benua_tahun |> 
  ggplot(aes(x = tahun, y = total_investasi)) + 
  # Layer teks pada sumbu-x
  geom_segment(
    data = data.frame(tahun = seq(2012, 2022, 2)),
    aes(x = tahun, y = 0, yend = -5e+07),
    linewidth = .5,
    linetype = "dashed",
    alpha = .4
  ) +
  geom_text(
    data = data.frame(tahun = seq(2012, 2022, 2)),
    aes(x = tahun, y = -5.5e+07, label = tahun),
    size = 3
  ) + 
  # Layer diagram alir
  geom_stream(aes(fill = benua)) + 
  # Pembatas jendela grafik
  scale_y_continuous(limits = c(-6e+07, 6e+07)) + 
  # Pewarnaan manual
  scale_fill_manual(
    values = warna_benua
  ) + 
  # Pengaturan bidang koordinat
  coord_cartesian(expand = FALSE) + 
  # Pemilihan tema
  theme_void() + 
  # Pengaturan tema
  theme(
    legend.position = "none",
    plot.title = element_textbox_simple(
      size = 20,
      face = "bold",
      margin = margin(t = 10, r = 20, b = 5, l = 20)
    ),
    plot.subtitle = element_textbox_simple(
      margin = margin(t = 0, r = 20, b = 5, l = 20)
    ),
    plot.caption = element_textbox_simple(
      margin = margin(t = 5, r = 20, b = 10, l = 20)
    )
  ) + 
  labs(
    title = judul,
    subtitle = anak_judul,
    caption = takarir
  )
Gambar 8: Diagram alir setelah diberikan judul, anak judul, dan takarir

Diagram alir yang ditunjukkan pada Gambar 8 sudah menawan. Akan tetapi, belum semua pesan yang kita temukan di Bagian 1 tersampaikan. Untuk itu, kita perlu menambahkan label pada diagram tersebut. Terlebih dahulu kita siapkan label-label tersebut.

pesan_1 <- "<b>Penanam modal terbesar</b><br>Apabila ditotal, negara-negara dari Asia menanamkan modal terbesar dibandingkan dengan benua-benua lainnya (sekitar 68% dari keseluruhan)."
pesan_2 <- "<b>Kenaikan terbesar</b><br>Kenaikan penanaman modal asing terbesar terjadi di antara tahun 2021 dan 2023."

Label-label sudah siap. Kita masukkan kedua label tersebut (yaitu pesan_1 dan pesan_2) ke dalam diagram alirnya. Hasilnya disajikan pada Gambar 9.

investasi_benua_tahun |> 
  ggplot(aes(x = tahun, y = total_investasi)) + 
  # Layer teks pada sumbu-x
  geom_segment(
    data = data.frame(tahun = seq(2012, 2022, 2)),
    aes(x = tahun, y = 0, yend = -5e+07),
    linewidth = .5,
    linetype = "dashed",
    alpha = .4
  ) +
  geom_text(
    data = data.frame(tahun = seq(2012, 2022, 2)),
    aes(x = tahun, y = -5.5e+07, label = tahun),
    size = 3
  ) + 
  # Layer pesan 1
  geom_segment(
    x = 2015.05,
    y = 5e+07,
    yend = 0,
    linewidth = 1
  ) +
  geom_textbox(
    x = 2015,
    y = 5e+07,
    label = pesan_1,
    vjust = 0.95,
    size = 3,
    lineheight = 1,
    hjust = 1,
    halign = 1,
    box.colour = "transparent",
    fill = "transparent",
    width = .38
  ) + 
  # Layer pesan 2
  geom_segment(
    x = 2022.55,
    y = 5.5e+07,
    yend = 0,
    linewidth = 1
  ) + 
  geom_textbox(
    x = 2022.5,
    y = 5.5e+07,
    label = pesan_2,
    vjust = 0.95,
    size = 3,
    lineheight = 1,
    hjust = 1,
    halign = 1,
    box.colour = "transparent",
    fill = "transparent",
    width = .3
  ) + 
  # Layer diagram alir
  geom_stream(aes(fill = benua)) + 
  # Pembatas jendela grafik
  scale_y_continuous(limits = c(-6e+07, 6e+07)) + 
  # Pewarnaan manual
  scale_fill_manual(
    values = warna_benua
  ) + 
  # Pengaturan bidang koordinat
  coord_cartesian(expand = FALSE) + 
  # Pemilihan tema
  theme_void() + 
  # Pengaturan tema
  theme(
    legend.position = "none",
    plot.title = element_textbox_simple(
      size = 20,
      face = "bold",
      margin = margin(t = 10, r = 20, b = 5, l = 20),
      lineheight = 1
    ),
    plot.subtitle = element_textbox_simple(
      margin = margin(t = 0, r = 20, b = 5, l = 20),
      lineheight = 1
    ),
    plot.caption = element_textbox_simple(
      margin = margin(t = 5, r = 20, b = 10, l = 20),
      lineheight = 1
    )
  ) + 
  labs(
    title = judul,
    subtitle = anak_judul,
    caption = takarir
  )
Gambar 9: Diagram alir setelah diberikan label yang menyampaikan pesan-pesan utama

Diagram alir pada Gambar 9 tersebut telah menyampaikan temuan-temuan yang kita dapatkan pada Bagian 1. Diagram tersebut juga sudah tampak indah dan sejalan dengan harapan-harapan Indonesia tentang pertumbuhan ekonomi dan perkembangan bangsa Indonesia yang mengikuti zaman.

Visualisasi Lebih Lanjut

Kita masih dapat memodifikasi diagram alir pada Gambar 9. Paling tidak ada dua hal yang dapat kita lakukan:

  1. mengganti jenis dan warna fonnya, dan
  2. mengatur ukuran dan resolusi fail gambarnya.

Untuk melakukannya kita dapat menggunakan paket {showtext} dan {camcorder}. Paket {showtext} akan memudahkan kita untuk menggunakan berbagai macam jenis fon pada diagram kita nanti.

Fungsi paket {camcorder} sebenarnya untuk merekam sejarah diagram-diagram yang kita buat. Akan tetapi, di sini kita menggunakan paket tersebut untuk memastikan tampilan diagram pada fail gambar yang kita hasilkan nanti persis sama dengan diagram luaran R. Sebagai ilustrasi, jika kita menjalankan baris kode yang menghasilkan Gambar 9, kita akan mendapatkan tampilan seperti pada Gambar 10 (a). Akan tetapi, jika kita simpan diagram tersebut dengan ukuran 1280 px × 960 px, kita mendapatkan fail gambar yang tampilannya seperti pada Gambar 10 (b). Perbedaan yang mencolok dari kedua diagram tersebut adalah ukuran fonnya. Agar tampilan diagram kita konsisten, kita akan menggunakan fungsi-fungsi dari paket {camcorder}.

(a) Tampilan diagram pada jendela Plots di RStudio
(b) Tampilan diagram yang sama setelah disimpan dengan ukuran 1280 px × 960 px
Gambar 10: Perbedaan tampilan diagram

Jika kedua paket tersebut belum terinstal, silakan instal paket-paket tersebut dengan fungsi install.packages(). Jika sudah terinstal, mari kita panggil kedua paket tersebut.

library(showtext)
library(camcorder)

Misalnya kita akan membuat sebuah gambar png yang berukuran 1280 px × 960 px dan memiliki kedalaman gambar 72 dpi. Kita gunakan fungsi gg_record() seperti pada baris kode di bawah. Argumen dir diisi dengan nama folder tempat kita menyimpan gambar yang akan dihasilkan.

gg_record(
  dir = "rekaman/",
  device = "png",
  width = 1280,
  height = 960,
  units = "px",
  dpi = 72
)

Selanjutnya kita akan mengganti jenis dan warna fonnya. Untuk jenis fon, kita pilih fon Lato. Fon ini tersedia secara gratis di Google Fonts. Fon Lato tersebut dapat diimpor dengan menggunakan fungsi font_add_google(). Untuk menggunakan fungsi-fungsi {showtext} secara otomatis, kita perlu memanggil fungsi showtext_auto(). Untuk warna teks, kita pilih #343A40 agar tidak terlalu kontras.

# Mengimpor fon dan menyalakan fungsi-fungsi {showtext}
font_add_google("Lato", "lato")
showtext_auto()

#' Membuat variabel `fon_judul` dan `fon_batang_tubuh`
#' untuk digunakan di tahap berikutnya
fon_judul <- "lato"
fon_batang_tubuh <- "lato"

# Menentukan `warna_teks`
warna_teks <- "#343A40"

Sekarang waktunya kita beraksi untuk melakukan visualisasi data. Kita modifikasi kode-kode yang digunakan untuk membuat diagram alir pada Gambar 9. Misalnya, hasil modifikasi tersebut adalah sebagai berikut.

investasi_benua_tahun |> 
  ggplot(aes(x = tahun, y = total_investasi)) + 
  # Layer teks pada sumbu-x
  geom_segment(
    data = data.frame(tahun = seq(2012, 2022, 2)),
    aes(x = tahun, y = 0, yend = -5e+07),
    linewidth = 1,
    linetype = "dashed",
    alpha = .4,
    colour = warna_teks
  ) +
  geom_text(
    data = data.frame(tahun = seq(2012, 2022, 2)),
    mapping = aes(x = tahun, y = -5.5e+07, label = tahun),
    colour = warna_teks,
    family = fon_batang_tubuh,
    size = 6
  ) + 
  # Layer pesan 1
  geom_segment(
    x = 2015.1,
    y = 4.5e+07,
    yend = 0,
    colour = warna_teks,
    linewidth = 1.5
  ) +
  geom_textbox(
    x = 2015,
    y = 4.5e+07,
    label = pesan_1,
    colour = warna_teks,
    family = fon_batang_tubuh,
    vjust = 0.95,
    size = 6,
    lineheight = 1.5,
    hjust = 1,
    halign = 1,
    box.colour = "transparent",
    fill = "transparent",
    width = .35
  ) + 
  # Layer pesan 2
  geom_segment(
    x = 2022.6,
    y = 5.5e+07,
    yend = 0,
    colour = warna_teks,
    linewidth = 1.5
  ) + 
  geom_textbox(
    x = 2022.5,
    y = 5.5e+07,
    label = pesan_2,
    colour = warna_teks,
    family = fon_batang_tubuh,
    vjust = 0.95,
    size = 6,
    lineheight = 1.5,
    hjust = 1,
    halign = 1,
    box.colour = "transparent",
    fill = "transparent",
    width = .3
  ) + 
  # Layer diagram alir
  geom_stream(
    aes(fill = benua)
  ) + 
  # Pembatas jendela grafik
  scale_y_continuous(limits = c(-6e+07, 6e+07)) + 
  # Pewarnaan manual
  scale_fill_manual(
    values = warna_benua
  ) + 
  # Pengaturan bidang koordinat
  coord_cartesian(expand = FALSE) + 
  # Pemilihan tema
  theme_void(base_size = 24, base_family = fon_batang_tubuh) + 
  # Pengaturan tema
  theme(
    legend.position = "none",
    plot.margin = margin(5, 5, 5, 0),
    plot.background = element_rect(
      fill = "white", colour = "white"
    ),
    panel.background = element_rect(
      fill = "white", colour = "white"
    ),
    plot.title = element_textbox_simple(
      colour = warna_teks,
      hjust = 0,
      halign = 0,
      margin = margin(t = 30, r = 20, b = 5, l = 30),
      lineheight = 1.5,
      family = fon_judul,
      face = "bold",
      size = 40
    ),
    plot.subtitle = element_textbox_simple(
      colour = warna_teks,
      hjust = 0,
      halign = 0,
      margin = margin(t = 5, r = 20, b = 15, l = 30),
      lineheight = 1.5,
      family = fon_batang_tubuh
    ),
    plot.caption = element_textbox_simple(
      colour = warna_teks,
      hjust = 0,
      halign = 0,
      margin = margin(l = 30, b = 20, t = 10),
      lineheight = 1.5,
      family = fon_batang_tubuh
    )
  ) + 
  # Pemberian judul, anak judul, dan takarir
  labs(
    title = judul,
    subtitle = anak_judul,
    caption = takarir
  )

Setelah baris kode di atas dijalankan, kita akan mendapatkan diagram alir seperti yang ditunjukkan pada Gambar 11.

Diagram alir yang menunjukkan tren kenaikan realisasi penanaman modal asing ke Indonesia
Gambar 11: Versi terakhir diagram alir yang menunjukkan tren kenaikan realisasi penanaman modal asing ke Indonesia

Fail gambar pada Gambar 11 tersebut dapat ditemukan dalam folder yang kita inputkan pada argumen dir dalam fungsi gg_record() di atas. Untuk mengakhiri perekaman, kita gunakan fungsi gg_stop_recording().

gg_stop_recording()

Catatan Akhir

Pada bulan Agustus, semua bangsa Indonesia memperingati kemerdekaan Republik Indonesia. Banyak cara yang dapat dilakukan. Salah satu cara yang kita lakukan adalah memberikan persembahan visualisasi data yang bertemakan pertumbuhan ekonomi nasional. Hal itu kita lakukan pada Bagian 2. Diagram alir pada Gambar 9 atau Gambar 11 tidak hanya menunjukkan tren pertumbuhan ekonomi Indonesia, tetapi juga sejalan dengan semangat perkembangan bangsa Indonesia yang mengikuti zaman.

Pada pos-pos berikutnya, kamu akan melihat bagaimana Statistika dan Ilmu Data digunakan dalam merayakan HUT ke-79 Republik Indonesia. Di pos-pos tersebut, kamu akan melihat bagaimana memvisualisasikan prestasi sepak bola Indonesia dibandingkan dengan negara-negara Asia Tenggara lainnya. Selain itu, kamu juga akan melihat bagaimana torehan atlet-atlet hebat Indonesia di pagelaran olimpiade melalui Statistika dan Ilmu Data. Dirgahayu Republik Indonesia!

Penggunaan Kembali