| Muhamad Syafik Athalariq | (3337260029) |
| Ikbal Maulana Alyani | (3337260161) |
| Livia Ramadhani | (3337260152) |
| Kayla Azzahra | (3337260059) |
Kelas: A26
22/09/2026
Deskripsi: Analisis persentase Tingkat Pengangguran Terbuka (TPT) di 38 provinsi di Indonesia berdasarkan hasil Survei Angkatan Kerja Nasional (Sakernas) periode Februari 2026.
file_data <- "Tabel TPT Provinsi 2026.xlsx"
# Membaca data excel tanpa col_names kaku agar menghindari error jumlah kolom
data_tpt <- read_excel(
path = file_data,
skip = 4,
n_max = 38,
na = c("", "-", "NA", "N/A")
)
# Pembersihan Data & Pengelompokan Wilayah (mengambil kolom ke-2 dan ke-3 berdasarkan posisi)
data_clean <- data_tpt %>%
select(Provinsi = 2, TPT_Feb_2026 = 3) %>%
filter(!is.na(Provinsi)) %>%
filter(!grepl("indonesia", tolower(Provinsi))) %>%
mutate(TPT_Feb_2026 = as.numeric(gsub(",", ".", TPT_Feb_2026))) %>%
# Pengelompokan Wilayah berdasarkan Pulau
mutate(Wilayah = case_when(
Provinsi %in% c("ACEH", "SUMATERA UTARA", "SUMATERA BARAT", "RIAU", "JAMBI",
"SUMATERA SELATAN", "BENGKULU", "LAMPUNG", "KEP. BANGKA BELITUNG",
"KEP. RIAU") ~ "Sumatera",
Provinsi %in% c("DKI JAKARTA", "JAWA BARAT", "JAWA TENGAH", "DI YOGYAKARTA",
"JAWA TIMUR", "BANTEN") ~ "Jawa",
Provinsi %in% c("BALI", "NUSA TENGGARA BARAT", "NUSA TENGGARA TIMUR") ~ "Nusa Tenggara & Bali",
Provinsi %in% c("KALIMANTAN BARAT", "KALIMANTAN TENGAH", "KALIMANTAN SELATAN",
"KALIMANTAN TIMUR", "KALIMANTAN UTARA") ~ "Kalimantan",
Provinsi %in% c("SULAWESI UTARA", "SULAWESI TENGAH", "SULAWESI SELATAN",
"SULAWESI TENGGARA", "GORONTALO", "SULAWESI BARAT") ~ "Sulawesi",
TRUE ~ "Maluku & Papua"
)) %>%
mutate(Wilayah = factor(Wilayah, levels = c("Sumatera", "Jawa", "Nusa Tenggara & Bali", "Kalimantan", "Sulawesi", "Maluku & Papua")))
# Menampilkan Tabel Modern Menggunakan gt
tabel_modern <- data_clean %>%
gt(groupname_col = "Wilayah") %>%
tab_header(
title = md("**Tingkat Pengangguran Terbuka (TPT) per Provinsi (Februari 2026)**"),
subtitle = "Data Hasil Sakernas BPS Indonesia (Persen)"
) %>%
cols_label(
Provinsi = "Provinsi",
TPT_Feb_2026 = "TPT Februari 2026 (%)"
) %>%
fmt_number(
columns = TPT_Feb_2026,
decimals = 2,
dec_mark = ",",
sep_mark = "."
) %>%
tab_style(
style = cell_fill(color = "#f0f4f8"),
locations = cells_body(columns = TPT_Feb_2026)
) %>%
tab_style(
style = list(
cell_fill(color = "#1e293b"),
cell_text(color = "white", weight = "bold", align = "center")
),
locations = cells_column_labels()
) %>%
tab_style(
style = list(
cell_fill(color = "#e2e8f0"),
cell_text(weight = "bold", color = "#0f172a")
),
locations = cells_row_groups()
) %>%
cols_align(align = "left", columns = Provinsi) %>%
cols_align(align = "right", columns = TPT_Feb_2026) %>%
tab_options(
table.border.top.color = "transparent",
table.border.bottom.color = "#1e293b"
) %>%
opt_row_striping()
tabel_modern| Tingkat Pengangguran Terbuka (TPT) per Provinsi (Februari 2026) | |
| Data Hasil Sakernas BPS Indonesia (Persen) | |
| Provinsi | TPT Februari 2026 (%) |
|---|---|
| Sumatera | |
| ACEH | 5,88 |
| SUMATERA UTARA | 5,01 |
| SUMATERA BARAT | 5,51 |
| RIAU | 4,09 |
| JAMBI | 3,99 |
| SUMATERA SELATAN | 3,59 |
| BENGKULU | 3,23 |
| LAMPUNG | 3,95 |
| KEP. BANGKA BELITUNG | 4,15 |
| KEP. RIAU | 6,87 |
| Jawa | |
| DKI JAKARTA | 6,03 |
| JAWA BARAT | 6,64 |
| JAWA TENGAH | 4,24 |
| DI YOGYAKARTA | 3,05 |
| JAWA TIMUR | 3,55 |
| BANTEN | 6,59 |
| Nusa Tenggara & Bali | |
| BALI | 1,59 |
| NUSA TENGGARA BARAT | 2,99 |
| NUSA TENGGARA TIMUR | 3,16 |
| Kalimantan | |
| KALIMANTAN BARAT | 4,57 |
| KALIMANTAN TENGAH | 3,44 |
| KALIMANTAN SELATAN | 3,80 |
| KALIMANTAN TIMUR | 5,27 |
| KALIMANTAN UTARA | 3,90 |
| Sulawesi | |
| SULAWESI UTARA | 5,75 |
| SULAWESI TENGAH | 2,95 |
| SULAWESI SELATAN | 4,95 |
| SULAWESI TENGGARA | 3,25 |
| GORONTALO | 3,17 |
| SULAWESI BARAT | 2,93 |
| Maluku & Papua | |
| MALUKU | 5,80 |
| MALUKU UTARA | 4,46 |
| PAPUA BARAT | 4,10 |
| PAPUA BARAT DAYA | 6,41 |
| PAPUA | 7,02 |
| PAPUA SELATAN | 5,25 |
| PAPUA TENGAH | 3,83 |
| PAPUA PEGUNUNGAN | 1,70 |
top10_2026 <- data_clean %>%
arrange(desc(TPT_Feb_2026)) %>%
head(10)
ggplot(top10_2026, aes(x = reorder(Provinsi, TPT_Feb_2026), y = TPT_Feb_2026, fill = Wilayah)) +
geom_col(color = "black", alpha = 0.85, width = 0.7) +
coord_flip() +
geom_text(
aes(label = paste0(format(TPT_Feb_2026, nsmall = 2), "%")),
hjust = -0.1,
size = 3.8,
fontface = "bold"
) +
scale_fill_brewer(palette = "Set2") +
scale_y_continuous(limits = c(0, 8.5), breaks = seq(0, 8, by = 2)) +
theme_minimal() +
labs(
title = "Top 10 Provinsi dengan Pengangguran Terbuka Tertinggi (Februari 2026)",
x = "Provinsi",
y = "Tingkat Pengangguran Terbuka (%)",
fill = "Wilayah/Pulau"
) +
theme(
plot.title = element_text(face = "bold", size = 13),
axis.text = element_text(size = 10)
)Interpretasi: Berdasarkan bar chart, terlihat 10 provinsi dengan nilai Tingkat Pengangguran Terbuka (TPT) tertinggi pada Februari 2026. Perbedaan panjang batang menunjukkan adanya variasi tingkat pengangguran antarprovinsi. Provinsi yang berada di posisi teratas memiliki persentase TPT yang lebih tinggi dibandingkan provinsi lainnya dalam data. Warna pada grafik menunjukkan pengelompokan wilayah atau pulau, sehingga dapat digunakan untuk melihat persebaran provinsi dengan TPT tinggi berdasarkan wilayah geografis.
##4.1. Perbandingan TPT Seluruh Provinsi Terhadap Rata-Rata Nasional (Dot Plot)
rata_nasional <- 4.68 # Angka acuan Rata-rata Nasional BPS 2026
ggplot(data_clean, aes(x = reorder(Provinsi, TPT_Feb_2026), y = TPT_Feb_2026, color = Wilayah)) +
geom_point(size = 3.5) +
geom_hline(yintercept = rata_nasional, linetype = "dashed", color = "red", linewidth = 1) +
annotate("text", x = 5, y = rata_nasional + 0.4, label = paste0("Rata-rata Nasional: ", rata_nasional, "%"), color = "red", fontface = "bold") +
coord_flip() +
scale_color_brewer(palette = "Dark2") +
theme_bw() +
labs(
title = "Sebaran TPT Seluruh Provinsi vs Rata-Rata Nasional (Februari 2026)",
x = "Provinsi",
y = "Tingkat Pengangguran Terbuka (%)",
color = "Wilayah/Pulau"
) +
theme(
axis.text.y = element_text(size = 8),
plot.title = element_text(face = "bold", size = 13)
)Interpretasi: Berdasarkan dot plot, nilai TPT setiap provinsi menunjukkan adanya perbedaan tingkat pengangguran antarwilayah. Garis putus-putus menunjukkan rata-rata nasional sebesar 4,68%. Provinsi yang titiknya berada di atas garis tersebut memiliki TPT lebih tinggi daripada rata-rata nasional, sedangkan provinsi yang berada di bawah garis memiliki TPT lebih rendah. Hal ini menunjukkan bahwa tingkat pengangguran di setiap provinsi tidak sama dan memiliki variasi terhadap rata-rata nasional.
ggplot(data_clean, aes(x = TPT_Feb_2026)) +
geom_histogram(
bins = 7,
fill = "#3b82f6",
color = "#1e293b",
alpha = 0.7
) +
geom_density(
aes(y = after_stat(count) * 0.8),
color = "#ef4444",
linewidth = 1.2
) +
geom_vline(
xintercept = mean(data_clean$TPT_Feb_2026, na.rm = TRUE),
linetype = "dashed",
color = "#059669",
linewidth = 1
) +
annotate(
"text",
x = mean(data_clean$TPT_Feb_2026, na.rm = TRUE) + 0.6,
y = 9,
label = paste0("Rata-Rata: ", round(mean(data_clean$TPT_Feb_2026, na.rm = TRUE), 2), "%"),
color = "#059669",
fontface = "bold"
) +
theme_minimal() +
labs(
title = "Distribusi Frekuensi TPT Seluruh Provinsi (Februari 2026)",
subtitle = "Garis Hijau: Rata-Rata | Garis Merah: Kurva Sebaran Data (Density)",
x = "Tingkat Pengangguran Terbuka (%)",
y = "Jumlah Provinsi"
) +
theme(
plot.title = element_text(face = "bold", size = 13),
axis.text = element_text(size = 10)
)Interpretasi: Berdasarkan histogram, nilai TPT 38 provinsi tersebar pada beberapa rentang persentase. Tinggi batang menunjukkan jumlah provinsi yang berada pada masing-masing rentang TPT. Kurva density membantu memperlihatkan pola persebaran data secara lebih halus, sedangkan garis vertikal menunjukkan nilai rata-rata TPT seluruh provinsi. Dari grafik tersebut dapat dilihat apakah sebagian besar provinsi memiliki nilai TPT yang berada di sekitar rata-rata atau tersebar pada rentang yang lebih luas.
Tingkat Pengangguran Terbuka (TPT) di Indonesia pada Februari 2026 tercatat sebesar 4,68% secara nasional. Terdapat variasi geografis yang cukup mencolok: