Mata kuliah: Eksplorasi Dan Visualisasi Data
Kelas: A
Dataset yang digunakan dalam analisis ini terdiri dari dua jenis data utama, yaitu data kategorik dan data numerik.
Data kategorik adalah data yang menggambarkan kategori atau kelompok tertentu dan biasanya tidak memiliki nilai numerik yang dapat dihitung secara langsung. Dalam dataset ini, nama provinsi merupakan data kategorik karena menunjukkan kelompok wilayah yang berbeda di Indonesia.
Data numerik adalah data yang berbentuk angka dan dapat diukur atau dihitung secara matematis. Dalam penelitian ini, tingkat pengangguran terbuka (TPT) merupakan data numerik karena dinyatakan dalam bentuk persentase yang menunjukkan proporsi jumlah pengangguran terhadap total angkatan kerja.
Kombinasi kedua jenis data ini memungkinkan dilakukan berbagai teknik visualisasi untuk memahami kondisi pengangguran di Indonesia secara lebih komprehensif.
Topik: Ekonomi – Tingkat Pengangguran Terbuka (TPT) per Provinsi di Indonesia.
Sumber data: Badan Pusat Statistik (BPS) – tabel TPT
menurut provinsi (persen) tahun 2025 (Februari & Agustus).
Link: https://www.bps.go.id/id/statistics-table/2/NTQzIzI=/tingkat-pengangguran-terbuka.html
Review singkat (kenapa memilih data): - TPT adalah indikator penting untuk melihat kondisi pasar kerja. - Data tersedia per provinsi → cocok untuk visualisasi kategorik (wilayah) & numerik (distribusi). - Ada 2 periode (Februari dan Agustus) → bisa dibandingkan.
raw <- read_excel("Tingkat_Pengangguran.xlsx")
df <- raw %>%
slice(3:n()) %>%
setNames(c("Provinsi", "Feb_2025", "Aug_2025")) %>%
mutate(
Feb_2025 = as.numeric(Feb_2025),
Aug_2025 = as.numeric(Aug_2025)
) %>%
filter(!is.na(Provinsi))
glimpse(df)## Rows: 39
## Columns: 3
## $ Provinsi <chr> "ACEH", "SUMATERA UTARA", "SUMATERA BARAT", "RIAU", "JAMBI", …
## $ Feb_2025 <dbl> 5.50, 5.05, 5.69, 4.12, 4.48, 3.89, 3.24, 4.07, 4.17, 6.89, 6…
## $ Aug_2025 <dbl> 5.64, 5.32, 5.62, 4.16, 4.26, 3.69, 3.41, 4.21, 4.45, 6.45, 6…
## Provinsi Feb_2025 Aug_2025
## Length:39 Min. :1.580 Min. :1.490
## Class :character 1st Qu.:3.370 1st Qu.:3.540
## Mode :character Median :4.210 Median :4.210
## Mean :4.438 Mean :4.478
## 3rd Qu.:5.415 3rd Qu.:5.470
## Max. :6.920 Max. :6.960
Buat versi long untuk plot per-periode.
Data kategorik merupakan jenis data kategori atau kelompok tertentu dan biasanya tidak memiliki nilai numerik yang bisa langsung dihitung. Data ini digunakan untuk mengelompokkan objek berdasarkan karakteristik tertentu. Dalam penelitian ini, data kategorik yang digunakan adalah nama provinsi di Indonesia. Setiap provinsi merupakan kategori yang berbeda sehingga dapat dibandingkan berdasarkan tingkat pengangguran terbuka yang dimilikinya.
Bar chart adalah salah satu bentuk visualisasi data yang digunakan untuk membandingkan nilai antar kategori. Grafik ini menampilkan data dalam bentuk batang, dimana panjang atau tinggi batang menunjukkan besarnya nilai dari setiap kategori. Dalam analisis ini, bar chart digunakan untuk menampilkan perbandingan tingkat pengangguran terbuka pada beberapa provinsi di Indonesia sehingga memudahkan pembaca dalam melihat provinsi dengan tingkat pengangguran tertinggi.
top10_feb <- df %>%
arrange(desc(Feb_2025)) %>%
slice_head(n = 10) %>%
mutate(Provinsi = fct_reorder(Provinsi, Feb_2025))
ggplot(top10_feb, aes(Provinsi, Feb_2025, fill = Feb_2025)) +
geom_col(show.legend = FALSE) +
coord_flip() +
scale_y_continuous(labels = label_number(suffix = "%")) +
labs(title = "Top 10 Provinsi dengan TPT Tertinggi (Februari 2025)",
x = NULL, y = "TPT")Interpretasi:
Bar chart memperlihatkan 10 provinsi dengan TPT tertinggi pada Februari
2025. Provinsi dengan bar paling panjang memiliki tingkat pengangguran
paling tinggi.
Needle chart merupakan variasi dari grafik batang yang menggunakan garis vertikal atau “jarum” untuk menunjukkan nilai suatu variabel. Grafik ini efektif untuk memperlihatkan perbandingan nilai antar kategori dengan tampilan yang lebih sederhana.
Dalam analisis ini, needle chart digunakan untuk membandingkan tingkat pengangguran terbuka pada dua periode yaitu Februari 2025 dan Agustus 2025 pada provinsi yang memiliki TPT tertinggi.
df_top10_long <- df_long %>%
filter(Provinsi %in% top10_feb$Provinsi) %>%
mutate(Provinsi = fct_reorder(Provinsi, TPT, .fun = max))
ggplot(df_top10_long, aes(Provinsi, TPT, color = TPT)) +
geom_segment(aes(xend = Provinsi, y = 0, yend = TPT),
linewidth = 1.05, alpha = 0.85) +
geom_point(size = 2.7) +
coord_flip() +
facet_wrap(~Periode) +
scale_y_continuous(labels = label_number(suffix = "%")) +
labs(title = "Needle Chart TPT (Februari vs Agustus 2025) - 10 Provinsi Tertinggi (basis Februari)",
x = NULL, y = "TPT") +
theme(legend.position = "none")Interpretasi:
Needle chart menegaskan besar-kecilnya TPT lewat “jarum” dari nol ke
nilai TPT dan memudahkan membandingkan Februari vs Agustus untuk
provinsi yang sama.
Pie chart adalah jenis grafik yang digunakan untuk menunjukkan proporsi atau persentase dari suatu kategori terhadap keseluruhan data. Grafik ini berbentuk lingkaran yang dibagi menjadi beberapa bagian sesuai dengan kategori yang ada.
Pada visualisasi ini, pie chart digunakan untuk menunjukkan proporsi jumlah provinsi berdasarkan kategori tingkat pengangguran terbuka pada Februari 2025. Dengan grafik ini kita dapat melihat kategori TPT mana yang paling banyak dimiliki oleh provinsi di Indonesia.
df_feb_cat <- df %>%
mutate(
Kategori_TPT_Feb = cut(Feb_2025,
breaks = c(-Inf, 4, 5, 6, Inf),
labels = c("< 4%", "4–5%", "5–6%", "> 6%"))
) %>%
count(Kategori_TPT_Feb) %>%
mutate(prop = n / sum(n),
label = paste0(Kategori_TPT_Feb, "\n", percent(prop, accuracy = 1)))
ggplot(df_feb_cat, aes("", prop, fill = Kategori_TPT_Feb)) +
geom_col(width = 1, color = "grey20") +
coord_polar(theta = "y") +
geom_text(aes(label = label),
position = position_stack(vjust = 0.5),
size = 3.5, color = "white") +
scale_y_continuous(labels = percent) +
labs(title = "Proporsi Provinsi berdasarkan Kategori TPT (Februari 2025)",
x = NULL, y = NULL, fill = "Kategori") +
theme(axis.text = element_blank(), axis.ticks = element_blank())Interpretasi:
Pie chart menunjukkan komposisi provinsi pada tiap kategori TPT
Februari. Irisan terbesar = kategori yang paling banyak diisi
provinsi.
Peta choropleth merupakan bentuk visualisasi data spasial yang menampilkan variasi nilai data pada wilayah geografis menggunakan gradasi warna. Semakin gelap atau pekat warna suatu wilayah, biasanya menunjukkan nilai data yang lebih tinggi.
Dalam analisis ini, peta choropleth digunakan untuk memperlihatkan distribusi tingkat pengangguran terbuka di seluruh provinsi di Indonesia. Visualisasi ini membantu memahami pola geografis dari tingkat pengangguran.
library(sf)
library(geodata)
library(tmap)
tmap_mode("plot")
idn1 <- geodata::gadm(country = "IDN", level = 1, path = tempdir()) %>% st_as_sf()
df_join <- df %>% mutate(key = str_squish(tolower(Provinsi)))
idn1_join <- idn1 %>%
mutate(key = str_squish(tolower(NAME_1))) %>%
left_join(df_join, by = "key")
tm_shape(idn1_join) +
tm_polygons(
col = "Feb_2025",
title = "TPT Februari 2025 (%)",
palette = "-viridis",
style = "jenks",
n = 5,
border.col = "grey30",
lwd = 0.8,
textNA = "Data tidak tersedia",
colorNA = "grey20"
) +
tm_layout(
title = "Peta TPT per Provinsi (Februari 2025)",
frame = FALSE,
bg.color = "#0b0f14",
title.color = "white",
legend.bg.color = "#111827",
legend.bg.alpha = 1,
legend.text.color = "white",
legend.title.color = "white"
)tm_shape(idn1_join) +
tm_polygons(
col = "Aug_2025",
title = "TPT Agustus 2025 (%)",
palette = "-viridis",
style = "jenks",
n = 5,
border.col = "grey30",
lwd = 0.8,
textNA = "Data tidak tersedia",
colorNA = "grey20"
) +
tm_layout(
title = "Peta TPT per Provinsi (Agustus 2025)",
frame = FALSE,
bg.color = "#0b0f14",
title.color = "white",
legend.bg.color = "#111827",
legend.bg.alpha = 1,
legend.text.color = "white",
legend.title.color = "white",
inner.margins = c(0.02, 0.02, 0.02, 0.02)
)Interpretasi:
Peta choropleth memperlihatkan pola spasial TPT Agustus. Warna lebih
pekat = TPT lebih tinggi.
Data numerik adalah jenis data yang berbentuk angka dan dapat diukur atau dihitung secara matematis. Data ini biasanya digunakan untuk melakukan analisis statistik maupun visualisasi data. Pada dataset ini, tingkat pengangguran terbuka (TPT) merupakan data numerik karena dinyatakan dalam bentuk persentase. Nilai tersebut dapat digunakan untuk membandingkan tingkat pengangguran antar provinsi di Indonesia.
Histogram adalah grafik yang digunakan untuk menunjukkan distribusi frekuensi dari data numerik. Data dibagi ke dalam beberapa interval (bin) sehingga kita dapat melihat seberapa sering nilai tertentu muncul dalam dataset.
ggplot(df, aes(Feb_2025, fill = Feb_2025)) +
geom_histogram(bins = 12, alpha = 0.92, color = "grey20") +
labs(title = "Histogram TPT Februari 2025", x = "TPT (%)", y = "Frekuensi") +
theme(legend.position = "none")Interpretasi:
Histogram menunjukkan sebaran TPT Februari: puncak histogram = rentang
TPT yang paling sering muncul.
Density plot adalah grafik yang digunakan untuk menggambarkan distribusi data secara halus menggunakan kurva kepadatan. Grafik ini membantu melihat pola distribusi data tanpa terpengaruh oleh batas interval seperti pada histogram.
ggplot(df_long, aes(TPT, fill = Periode)) +
geom_density(alpha = 0.55) +
labs(title = "Density TPT: Februari vs Agustus 2025",
x = "TPT (%)", y = "Density")Interpretasi:
Kurva bergeser ke kanan = periode dengan TPT lebih tinggi; kurva lebih
lebar = variasi lebih besar.
Boxplot merupakan grafik yang digunakan untuk menampilkan ringkasan statistik dari suatu dataset, seperti nilai minimum, kuartil pertama, median, kuartil ketiga, dan maksimum. Boxplot juga dapat membantu mendeteksi adanya outlier dalam data.
ggplot(df_long, aes(Periode, TPT, fill = Periode)) +
geom_boxplot(width = 0.55, outlier.alpha = 0.75) +
scale_y_continuous(labels = label_number(suffix = "%")) +
labs(title = "Boxplot TPT: Februari vs Agustus 2025", x = NULL, y = "TPT") +
theme(legend.position = "none")Interpretasi:
Boxplot membandingkan median, IQR, dan outlier antar periode.
Violin plot merupakan kombinasi antara boxplot dan density plot yang digunakan untuk melihat distribusi data sekaligus ringkasan statistiknya. Lebar bentuk violin menunjukkan kepadatan data pada nilai tertentu.
ggplot(df_long, aes(Periode, TPT, fill = Periode)) +
geom_violin(trim = FALSE, alpha = 0.85) +
geom_boxplot(width = 0.12, outlier.size = 1) +
labs(title = "Violin Plot TPT: Februari vs Agustus 2025", x = NULL, y = "TPT (%)") +
theme(legend.position = "none")Interpretasi:
Violin plot menunjukkan kepadatan data (bagian lebar = banyak provinsi
di nilai itu) plus ringkasan boxplot.
QQ Plot (Quantile-Quantile Plot) merupakan grafik yang digunakan untuk membandingkan distribusi suatu data dengan distribusi teoritis tertentu, biasanya distribusi normal. Grafik ini membantu dalam menilai apakah data yang dianalisis mengikuti distribusi normal atau tidak. Pada QQ Plot, setiap titik menunjukkan perbandingan antara kuantil dari data sampel dengan kuantil dari distribusi teoritis. Jika titik-titik pada grafik mengikuti garis diagonal, maka dapat disimpulkan bahwa data memiliki distribusi yang mendekati distribusi normal. Sebaliknya, jika titik-titik menyimpang jauh dari garis tersebut, maka data kemungkinan tidak berdistribusi normal.
ggplot(df, aes(sample = Aug_2025)) +
stat_qq(alpha = 0.85) +
stat_qq_line() +
labs(title = "QQ-Plot TPT Agustus 2025", x = "Theoretical Quantiles", y = "Sample Quantiles")Interpretasi:
Titik mengikuti garis = distribusi mendekati normal; penyimpangan besar
(ekor) = skew/outlier.
Scatterplot adalah grafik yang digunakan untuk melihat hubungan antara dua variabel numerik. Setiap titik pada grafik mewakili satu observasi data.
ggplot(df, aes(Feb_2025, Aug_2025)) +
geom_point(aes(color = Aug_2025), size = 2.2, alpha = 0.9) +
geom_smooth(method = "lm", se = FALSE, linewidth = 1.05, alpha = 0.9) +
scale_x_continuous(labels = label_number(suffix = "%")) +
scale_y_continuous(labels = label_number(suffix = "%")) +
labs(title = "Scatterplot: TPT Februari vs Agustus 2025",
x = "TPT Februari 2025", y = "TPT Agustus 2025", color = "TPT Aug")Interpretasi:
Pola naik berarti provinsi yang tinggi di Februari cenderung tinggi juga
di Agustus.
Line chart adalah grafik yang digunakan untuk menunjukkan perubahan suatu nilai dari waktu ke waktu atau antar kategori yang berurutan.
avg_tpt <- df_long %>%
group_by(Periode) %>%
summarise(Rata2_TPT = mean(TPT, na.rm = TRUE), .groups = "drop")
ggplot(avg_tpt, aes(Periode, Rata2_TPT, group = 1)) +
geom_line(linewidth = 1.25, alpha = 0.92) +
geom_point(size = 3) +
scale_y_continuous(labels = label_number(suffix = "%")) +
labs(title = "Rata-rata TPT (Provinsi) Februari vs Agustus 2025",
x = NULL, y = "Rata-rata TPT")Interpretasi:
Garis naik = rata-rata TPT meningkat; garis turun = membaik.
Berdasarkan hasil eksplorasi dan visualisasi data tingkat pengangguran terbuka (TPT) di Indonesia tahun 2025, dapat disimpulkan bahwa terdapat perbedaan tingkat pengangguran antar provinsi yang cukup signifikan. Beberapa provinsi memiliki tingkat pengangguran yang relatif lebih tinggi dibandingkan provinsi lainnya.
Visualisasi data kategorik seperti bar chart, needle chart, pie chart, dan peta choropleth membantu dalam memahami perbandingan antar wilayah serta pola geografis dari tingkat pengangguran. Sementara itu, visualisasi data numerik seperti histogram, density plot, boxplot, dan scatterplot membantu memahami distribusi data serta hubungan antar periode waktu.
Dengan menggunakan berbagai teknik visualisasi data, analisis terhadap kondisi pengangguran di Indonesia menjadi lebih mudah dipahami dan dapat memberikan gambaran yang lebih jelas mengenai kondisi pasar tenaga kerja.