Data Visualization

Practicum ~ Week 4

Logo

1. Pendahuluan

1.1 Tujuan

  • Memantau produksi kopi dari perkebunan di berbagai provinsi di Indonesia secara bulanan.
  • Menganalisis tren musiman produksi kopi sepanjang semester pertama tahun 2022.
  • Membantu pengambilan keputusan bagi pemerintah, pelaku industri kopi, dan peneliti dalam hal distribusi, ekspor, dan pengembangan sektor perkebunan.

1.2 Deskripsi

  • Jenis data : Kuantitatif, berupa jumlah produksi kopi (dalam ton).
  • Periode waktu : Januari–Juni 2022.
  • Unit analisis : 22 provinsi di Indonesia.

- Variabel utama:

  • Nama provinsi

  • Produksi kopi per bulan (Januari hingga Juni)

1.3 Konteks kasus

Dataset ini bisa digunakan dalam berbagai konteks, seperti:

  • Studi ekonomi pertanian : Menilai kontribusi kopi terhadap PDB daerah atau nasional.

  • Analisis supply chain : Menentukan daerah penghasil utama untuk distribusi dan ekspor.

  • Kebijakan pemerintah : Menyusun program peningkatan produksi atau bantuan ke daerah dengan produksi rendah.

  • Penelitian akademik : Mengkaji hubungan antara iklim, musim, dan hasil panen kopi.

2. Persiapan Data

2.1 Tujuan Dataset

Tujuan dari pembuatan data ini adalah untuk mengetahui bagaimana jumlah produksi kopi di berbagai provinsi di Indonesia selama enam bulan, yaitu dari Januari sampai Juni. Data ini nantinya akan digunakan untuk membuat berbagai bentuk visualisasi agar bisa melihat pola atau perbandingan produksi antarprovinsi.

2.2 Deskripsi Dataset

Dataset ini berisi 20 provinsi di Indonesia dan jumlah produksi kopi (dalam kilogram) setiap bulan dari Januari sampai Juni.

  • Kolom No berisi urutan nomor provinsi.

  • Kolom Provinsi berisi nama-nama provinsi.

  • Kolom Januari–Juni berisi data jumlah produksi kopi tiap bulan.

Data ini dibuat sebagai contoh untuk dianalisis dan divisualisasikan menggunakan bahasa pemrograman R.

2.3 Konteks Kasus

Kopi merupakan salah satu hasil perkebunan penting di Indonesia dan banyak diproduksi di berbagai daerah. Melalui data ini, kita bisa melihat provinsi mana yang memiliki hasil produksi tertinggi, serta bagaimana perubahan produksinya dari bulan ke bulan. Data ini menjadi bahan latihan untuk saya serta kawan-kawan dalam memahami cara kerja pengolahan data dan visualisasi menggunakan R.

Berikut data 20 provinsi dalam memproduksi kopi setiap bulannya (Ton):

library(ggplot2)
library(dplyr)
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
library(tidyr)

 # Membuat Data Frame
data_produksi_kopi_per_provinsi <- data.frame(
  Provinsi = c("Aceh", "Sumatera Utara", "Sumatera Barat", "Riau", "Jambi", "Sumatera Selatan", "Bengkulu", "Lampung", "Bangka Belitung", "Kepulauan Seribu", "DKI Jakarta", "Jawa Barat", "Jawa Tengah", "D.I Yogyakarta", "Jawa Timur", "Banten", "Bali", "Nusa Tenggara Barat", "Nusa Tenggara Timur", "Kalimantan Barat"),
  Januari = c(643, 793, 140, 17, 175, 1903, 547, 1040, 1, 0, 0, 216, 234, 5, 408, 19, 138, 58, 234, 29),
  Februari = c(558, 686, 121, 15, 152, 1649, 475, 902, 0, 0, 0, 187, 203, 4, 354, 16, 120, 51, 203, 25),
  Maret = c(692, 851, 150, 18, 188, 2045, 589, 1118, 1, 0, 0, 232, 251, 5, 439, 20, 149, 63, 252, 31),
  April = c(458, 563, 99, 12, 126, 1354, 401, 740, 0, 0, 0, 154, 171, 3, 294, 13, 99, 42, 167, 21),
  Mei = c(579, 713, 126, 15, 159, 1713, 496, 936, 0, 0, 0, 196, 215, 4, 665, 17, 125, 53, 211, 26),
  Juni = c(4608, 5664, 1000, 122, 1245, 13626, 3921, 7450, 4, 0, 0, 1547, 1697, 35, 3782, 135, 992, 418, 1679, 207)
)

head(data_produksi_kopi_per_provinsi, 20)
 # Mengubah Data frame menjadi format panjang agar bisa di gunakan pada ggplot2
data_lengkap <- data_produksi_kopi_per_provinsi %>%
  pivot_longer(cols = Januari:Juni, names_to = "Bulan", values_to = "Produksi")

 # Menghitung total produksi tiap provinsi
total_produksi_tiap_provinsi <- data_lengkap %>%
  group_by(Provinsi) %>%
  summarise(Total_Produksi = sum(Produksi))

 # Menghitung total produksi tiap bulan
total_produksi_tiap_bulan <- data_lengkap %>%
  group_by(Bulan) %>%
  summarise(Total_Produksi = sum(Produksi))
 # warna custom
warna_kopi <- c("#D2B48C", "#C19A6B", "#A67B5B", "#8B5A2B", "#7B3F00", "#6F4E37", "#5C4033", "#4B3621", "#3B2F2F", "#2F1B0C", "#E3BC9A", "#C4A484", "#B87333", "#A97142", "#8B4513", "#704214", "#5D3A1A", "#3D2B1F", "#2E1A0F", "#1C0A00")

3. Visualisasi

3.1 Bar Chart

3.1.1 Definisi

Bar chart digunakan untuk menampilkan perbandingan nilai antar kategori dalam bentuk batang. Setiap batang mewakili satu kategori (misalnya provinsi), dan panjang batang menunjukkan besarnya nilai (jumlah produksi kopi).

3.1.2 Aturan Penggunaan

Bar chart dapat digunakan ketika ingin membandingkan jumlah produksi kopi antar provinsi. Contoh kategori dalam kasus ini (Provinsi) ada di sumbu X/Y, dan nilai produksinya (Ton) di sumbu lainnya.

3.1.3 Kelebihan

  • Mudah dibaca dan membandingkan antar kategori.

  • Cocok untuk data kategorikal seperti ā€œProvinsiā€.

  • Bisa menampilkan urutan dari produksi tertinggi ke terendah.

3.1.4 Kekurangan

  • Tidak bisa menunjukkan tren waktu.

  • Jika terlalu banyak kategori (seperti >20 provinsi), tampilannya bisa padat.

Berikut Visualisasi Total Produksi Kopi Pada Masing-Masing Provinsi dalam Bar Plot:

ggplot(total_produksi_tiap_provinsi, 
       aes(x = reorder(Provinsi, -Total_Produksi), 
           y = Total_Produksi, fill = Provinsi)) +
  geom_bar(stat = "identity") +
  coord_flip() +
  scale_fill_manual(values = warna_kopi) +  
  labs(title = "Total Produksi Kopi per Provinsi",
       x = "Provinsi", y = "Total Produksi (Ton)") +
  theme_minimal() +
  theme(
    plot.title = element_text(hjust = 0.5, face = "bold"),
    axis.text.y = element_text(size = 10),       
    axis.text.x = element_text(size = 10),                
    legend.position = "none"
)

3.2 Histogram

3.2.1 Definisi

Histogram digunakan untuk menampilkan distribusi data numerik dengan mengelompokkan nilai ke dalam interval (bin). Dalam kasus ini, tiap batang menunjukkan berapa banyak provinsi yang memiliki produksi dalam rentang tertentu.

3.2.2 Aturan Penggunaan

Histogram dapat digunakan untuk melihat pola sebaran jumlah produksi kopi di berbagai provinsi, misalnya apakah kebanyakan provinsi punya produksi rendah atau tinggi.

3.2.3 Kelebihan

  • Menunjukkan pola distribusi (normal, miring, dsb.).

  • Mudah mendeteksi apakah data tersebar merata atau terkonsentrasi.

3.2.4 Kekurangan

  • Tidak bisa digunakan untuk data kategori.

  • Tampilan bisa berubah tergantung jumlah ā€œbinā€ yang dipilih.

Berikut Visualisasi Distribusi Produksi Kopi dari Bulan Januari - Juni dalam Histogram:

ggplot(data_lengkap, aes(x = Produksi, fill = Bulan)) +
  geom_histogram(bins = 20, color = "white", alpha = 0.8) +
  scale_fill_manual(values = warna_kopi) +
  labs(title = "Distribusi Produksi Kopi (Januari–Juni)", 
       x = "Jumlah Produksi Kopi (Ton)", 
       y = "Frekuensi") +
  theme_minimal() +
  theme(plot.title = element_text(hjust = 0.5, face = "bold"), 
        axis.text = element_text(size = 10), 
        legend.title = element_blank()
)

3.3 Boxplot

3.3.1 Definisi

Boxplot digunakan untuk menunjukkan penyebaran data numerik berdasarkan kuartil (Q1, median, Q3) dan mendeteksi outlier (nilai ekstrem).

3.3.2 Aturan Penggunaan

Boxplot dapat digunakan untuk membandingkan penyebaran produksi kopi antar bulan. Misalnya, bulan mana yang punya variasi tertinggi.

3.3.3 Kelebihan

  • Dapat menampilkan median dan penyebaran dengan jelas.

  • Dapat mendeteksi provinsi yang produksinya jauh lebih tinggi atau rendah (outlier).

3.3.4 Kekurangan

  • Tidak menunjukkan bentuk distribusi secara detail.

  • Bisa kurang intuitif bagi orang awam dibanding histogram.

Berikut Visualisasi Sebaran Produksi Kopi per Bulan dalam boxplot:

ggplot(data_lengkap, aes(x = Bulan, y = Produksi, fill = Bulan)) +
  geom_boxplot(alpha = 0.8, color = "black", outlier.colour = "#3b2f2f") + 
  scale_fill_manual(values = warna_kopi) + 
  labs(title = "Sebaran Produksi Kopi per Bulan",
       x = "Bulan",
       y = "Jumlah Produksi Kopi (Ton)") +
  theme_minimal() +
  theme(plot.title = element_text(hjust = 0.5, face = "bold"),
        axis.text = element_text(size = 10),
        legend.position = "none")

3.4 Pie Chart

3.4.1 Definisi

Pie chart digunakan untuk menampilkan proporsi atau persentase bagian terhadap total dalam bentuk potongan lingkaran.

3.4.2 Aturan Penggunaan

pie chart dapat digunakan untuk melihat persentase kontribusi tiap provinsi terhadap total produksi kopi nasional (Januari–Juni).

3.4.3 Kelebihan

  • Menarik secara visual.

  • Mudah memahami bagian mana yang paling besar kontribusinya.

3.4.4 Kekurangan

  • Sulit membedakan jika potongan terlalu banyak (lebih dari 6 kategori).

  • Tidak cocok untuk data dengan perbedaan kecil antar kategori.

Berikut Visualisasi Proporsi Produksi Kopi per Provinsi dalam Bentuk Pie Chart:

pie_data <- total_produksi_tiap_provinsi %>%
  mutate(Proporsi = Total_Produksi / sum(Total_Produksi) * 100)

ggplot(pie_data, aes(x = "", y = Proporsi, fill = Provinsi)) + 
  geom_bar(stat = "identity", width = 1) +
  coord_polar(theta = "y") + 
  scale_fill_manual(values = warna_kopi) + 
  labs(title = "Proporsi Produksi Kopi per Provinsi",
       fill = "Provinsi") +
  theme_void() +
  theme(plot.title = element_text(hjust = 0.5, face = "bold"),
        legend.title = element_text(face = "bold"),
        legend.text = element_text(size = 9))

3.5 Scatter Plot

3.5.1 Definisi

Scatter plot digunakan untuk menampilkan hubungan atau korelasi antara dua variabel numerik. dalam kasus ini, setiap titik mewakili satu provinsi dengan dua nilai numerik (misalnya produksi bulan Maret dan Juni).

3.5.2 Aturan Penggunaan

scatter plot dapat digunakan untuk melihat apakah provinsi yang memiliki produksi tinggi pada bulan Maret juga memiliki produksi tinggi pada bulan Juni. Data yang di tampilkan dan dianalisis tidak menyeluruh dikarenakan mengikuti instruksi tugas dari pak dosen, yaitu hubungan antara dua variable numerik.

3.5.3 Kelebihan

  • Menunjukkan hubungan antar variabel (positif, negatif, atau tidak ada hubungan).

  • Dapat ditambah garis tren untuk memperjelas pola hubungan.

3.5.4 Kekurangan

  • Tidak bisa dipakai untuk data kategori (seperti nama provinsi).

  • Tidak menunjukkan frekuensi (berapa banyak data di satu titik).

Berikut Visualisasi Hubungan antara Produksi Kopi Bulan Maret dan Juni dalam Bentuk Scatter Plot:

warna_titik <- "#6F4E37"
warna_tren  <- "#A67B5B"

ggplot(data_produksi_kopi_per_provinsi, aes(x = Maret, y = Juni)) +
  geom_point(color = warna_titik, size = 3, alpha = 0.8) +
  geom_smooth(method = "lm", se = FALSE, color = warna_tren, linewidth = 1) +
  labs(title = "Hubungan antara Produksi Kopi Bulan Maret dan Juni", 
       x = "Produksi Bulan Maret (Ton)",
       y = "Produksi Bulan Juni (Ton)") +
  theme_minimal() +
  theme(plot.title = element_text(hjust = 0.5, face = "bold"), 
        axis.text = element_text(size = 10))
## `geom_smooth()` using formula = 'y ~ x'

3.6 Line Plot

3.6.1 Definisi

Line plot digunakan untuk menampilkan tren data dari waktu ke waktu. dalam kasus ini, tiap titik akan mewakili nilai di suatu waktu (bulan), dan garis yang menghubungkannya.

3.6.2 Aturan Penggunaan

line plot dapat digunakan untuk menampilkan tren total produksi kopi nasional dari Januari sampai Juni.

3.6.3 Kelebihan

  • Menunjukkan perubahan waktu dengan jelas.

  • Mudah melihat peningkatan atau penurunan tren produksi.

3.6.4 Kekurangan

  • Tidak cocok untuk data kategori non-waktu (misalnya per provinsi).

  • Kalau titiknya sedikit (misal hanya 6 bulan), garisnya bisa tampak terlalu tajam.

Berikut Visualisasi Tren Produksi Kopi 20 Provinsi (Januari-Juni) dalam Bentuk Scatter Plot:

data_lengkap$Bulan <- factor(data_lengkap$Bulan,
                             levels = c("Januari", "Februari", "Maret", "April", "Mei", "Juni"))

total_per_bulan <- data_lengkap %>%
  group_by(Bulan) %>%
  summarise(Total_Produksi = sum(Produksi))

warna_kopi <- "#a67b5b"

ggplot(total_per_bulan, aes(x = Bulan, y = Total_Produksi, group = 1)) +
  geom_line(color = warna_kopi, linewidth = 1.5) +
  geom_point(color = "#a67b5b", size = 3) +
  labs(title = "Tren Produksi Kopi 20 Provinsi (Januari-Juni)",
       x = "Bulan",
       y = "Total Produksi Kopi (Ton)") + 
  theme_minimal() + 
  theme(plot.title = element_text(hjust = 0.5, face = "bold"), 
        axis.text = element_text(size = 10))

3.7 Density Plot

3.7.1 Definisi

Density plot menampilkan bentuk distribusi data numerik secara halus (smooth), sebagai estimasi dari probabilitas kepadatan data.

3.7.2 Aturan Penggunaan

density plot dapat digunakan untuk melihat sebaran dan bentuk distribusi produksi kopi di tiap bulan, dan membandingkan antar bulan.

3.7.3 Kelebihan

  • Menunjukkan pola distribusi dengan halus (lebih estetis dari histogram).

  • Mudah membandingkan distribusi antar kelompok (misalnya antar bulan).

3.7.4 Kekurangan

  • Sulit dibaca jika data terlalu sedikit atau terlalu tumpang tindih.

  • Tidak menunjukkan nilai spesifik seperti median atau outlier.

Berikut Visualisasi Tren Produksi Kopi 20 Provinsi (Januari-Juni) dalam Bentuk Scatter Plot:

data_lengkap$Bulan <- factor(data_lengkap$Bulan,
                             levels = c("Januari", "Februari", "Maret", "April", "Mei", "Juni"))

warna_kopi <- c("#D2B48C", "#C19A6B", "#A67B5B", "#8B5A2B", "#7B3F00", "#5C4033")

ggplot(data_lengkap, aes(x= Produksi, fill = Bulan)) + 
  geom_density(alpha = 0.6) +
  scale_fill_manual(values = warna_kopi) +
  labs(title = "Sebaran Produksi Kopi (Ton)",
       x = "Jumlah Produksi Kopi (Ton)",
       y = "Kepadatan",
       fill = "Bulan") +
  theme_minimal() +
  theme(plot.title = element_text(hjust = 0.5, face = "bold"),
        axis.text = element_text(size = 10))

3.8 Ridgeline Plot

3.8.1 Definisi

Ridgeline plot menampilkan beberapa distribusi (density plot) yang disusun bertumpuk secara vertikal, untuk membandingkan distribusi antar kelompok.

3.8.2 Aturan Penggunaan

Gunakan ridgeline plot untuk menampilkan perbandingan sebaran produksi kopi antar bulan (Januari–Juni) dengan cara visual yang menarik.

3.8.3 Kelebihan

  • Menampilkan perbandingan distribusi antar waktu atau kelompok dengan jelas.

  • Lebih menarik secara visual daripada banyak density plot terpisah.

3.8.4 Kekurangan

  • Butuh paket tambahan (ggridges).

  • Bisa sulit dibaca jika terlalu banyak kelompok atau kurva saling tumpuk.

Berikut Visualisasi Distribusi Produksi Kopi per Bulan dalam Bentuk Ridgeline Plot:

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

data_lengkap$Bulan <- factor(data_lengkap$Bulan,
                             levels = c("Januari", "Februari", "Maret", "April", "Mei", "Juni"))

warna_kopi <- c("#E3BC9A", "#C4A484", "#A67B5B", "#8B5A2B", "#6F4E37", "#3B2F2F")

ggplot(data_lengkap, aes(x = Produksi, y = Bulan, fill = Bulan)) +
  geom_density_ridges(alpha = 0.8, color = "black", scale = 1.2) +
  scale_fill_manual(values = warna_kopi) +
  labs(title = "Distribusi Produksi Kopi per Bulan",
       x = "Jumlah Produksi Kopi (Ton)", 
       y = "Bulan", 
       fill = "Bulan") +
  theme_minimal() +
  theme(plot.title = element_text(hjust = 0.5, face = "bold"), 
        axis.text = element_text(size = 10), 
        legend.position = "none")
## Picking joint bandwidth of 353

4. Kesimpulan

Berdasarkan hasil visualisasi data produksi kopi dari 20 provinsi di Indonesia selama periode Januari hingga Juni 2022, dapat disimpulkan beberapa hal berikut:

  1. Provinsi dengan produksi kopi tertinggi adalah Sumatera Selatan, diikuti oleh Lampung dan Jawa Timur. Hal ini terlihat jelas pada diagram batang dan diagram lingkaran yang menunjukkan tiga provinsi tersebut mendominasi total produksi kopi nasional.

  2. Sebagian besar provinsi lainnya memiliki tingkat produksi yang relatif rendah, seperti yang tampak pada histogram dan boxplot. Kondisi ini menggambarkan bahwa produksi kopi di Indonesia masih terpusat pada beberapa daerah utama.

  3. Berdasarkan line plot, dapat dilihat adanya peningkatan signifikan pada bulan Juni. Hal ini menunjukkan adanya kemungkinan faktor musim panen yang memengaruhi jumlah produksi kopi pada periode tersebut.

  4. Scatter plot memperlihatkan adanya hubungan positif antara produksi bulan Maret dan Juni, yang berarti provinsi dengan produksi tinggi pada bulan Maret cenderung memiliki produksi tinggi pula pada bulan Juni.

  5. Melalui density plot dan ridgeline plot, terlihat bahwa distribusi produksi tiap bulan memiliki pola yang serupa, namun bulan Juni menunjukkan kepadatan tertinggi, menandakan lonjakan produksi pada bulan tersebut.

Secara keseluruhan, hasil visualisasi ini menunjukkan bahwa produksi kopi di Indonesia tidak merata antarprovinsi dan cenderung meningkat menjelang pertengahan tahun.

Serta pola yang terlihat dari berbagai visualisasi tidak hanya menggambarkan perbedaan angka produksi, tetapi juga mencerminkan pengaruh faktor lingkungan, musim, dan infrastruktur pertanian terhadap hasil kopi di tiap daerah.

Peningkatan produksi pada bulan Juni kemungkinan berkaitan dengan masa panen utama, sedangkan dominasi provinsi seperti Sumatera Selatan dan Lampung menunjukkan adanya pusat produksi yang kuat di wilayah Sumatera.

Hal ini menegaskan bahwa visualisasi data dapat menjadi alat penting untuk memahami dinamika sektor pertanian secara lebih mendalam, bukan hanya menampilkan angka, tetapi juga menyampaikan cerita di balik data.