1. Informasi dan Ulasan Data

  • Sumber Data: BPS Provinsi Banten (Sakernas 2026).
  • Nama File: Tingkat Pengangguran Terbuka Menurut Provinsi, 2026.xlsx
  • Deskripsi: Analisis persentase Tingkat Pengangguran Terbuka (TPT) di 38 provinsi di Indonesia berdasarkan hasil Survei Angkatan Kerja Nasional (Sakernas) periode Februari 2026.

2. Memuat dan Membersihkan Data Excel

file_data <- "Tingkat Pengangguran Terbuka Menurut 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 (%)
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

3. Visualisasi Data Kategorik / Wilayah

3.1. Top 10 Provinsi dengan TPT Tertinggi (Bar Chart)

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: >

4. Visualisasi Data Numerik & Distribusi

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", 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: >

4.2. Sebaran Pengangguran Terbuka Menurut Wilayah/Pulau (Boxplot)

ggplot(data_clean, aes(x = Wilayah, y = TPT_Feb_2026, fill = Wilayah)) +
  geom_boxplot(alpha = 0.8, color = "black", outlier.colour = "red", outlier.size = 2.5) +
  scale_fill_brewer(palette = "Pastel1") +
  theme_classic() +
  labs(
    title = "Sebaran Tingkat Pengangguran Terbuka (TPT) per Wilayah (Februari 2026)",
    x = "Wilayah / Kelompok Pulau",
    y = "Tingkat Pengangguran Terbuka (%)"
  ) +
  theme(
    legend.position = "none",
    axis.text.x = element_text(angle = 15, hjust = 1, face = "bold"),
    plot.title = element_text(face = "bold", size = 13)
  )

> Interpretasi: >

4.3. Distribusi Tingkat Pengangguran Terbuka (Histogram & Density)

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: >

5. Kesimpulan

Tingkat Pengangguran Terbuka (TPT) di Indonesia pada Februari 2026 tercatat sebesar 4,68% secara nasional. Terdapat variasi geografis yang cukup mencolok:

  1. 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.

  2. Wilayah Nusa Tenggara & Bali mencatatkan angka pengangguran terendah secara nasional, didukung oleh daya serap sektor pariwisata dan sektor informal lokal.