| Muhammad Syafiq Athalariq | (3337260029) |
| Ikbal Maulana Alyani | (3337260161) |
| Livia Ramadhani | (3337260152) |
| Kayla Azzahra | (3337260059) |
Kelas: A26
22/09/2026
file_data <- "Tabel_TPT_Provinsi_2026.xlsx"
# Membaca data excel dari BPS (38 provinsi)
data_tpt <- read_excel(
path = file_data,
skip = 4,
n_max = 38,
col_names = c("Provinsi", "TPT_Feb_2026", "TPT_Agustus", "TPT_Tahunan"),
na = c("", "-", "NA", "N/A")
)
# Pembersihan Data & Pengelompokan Wilayah
data_clean <- data_tpt %>%
select(Provinsi, TPT_Feb_2026) %>%
filter(!is.na(Provinsi)) %>%
filter(!grepl("indonesia", tolower(Provinsi))) %>% # Perbaikan grepl aman tanpa ignore.case
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 (%) |
|---|---|
| Maluku & Papua | |
| 38 PROVINSI | NA |
| 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 |
| 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 |
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.
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", size = 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 = ..count.. * 0.8),
color = "#ef4444",
size = 1.2
) +
geom_vline(
xintercept = mean(data_clean$TPT_Feb_2026, na.rm = TRUE),
linetype = "dashed",
color = "#059669",
size = 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:
Wilayah Industri Utama & Pusat Ekonomi (seperti Jawa Barat, Banten, DKI Jakarta) serta Papua mencatatkan pengangguran di atas rata-rata nasional akibat besarnya jumlah angkatan kerja baru dan pencari kerja harian.
Wilayah Nusa Tenggara & Bali mencatatkan angka pengangguran terendah secara nasional, didukung oleh daya serap sektor pariwisata dan sektor informal lokal.