Data yang digunakan berasal dari Berita Resmi Statistik (BRS) Badan Pusat Statistik Provinsi Banten, 5 Mei 2026, yang memuat empat topik:
Link data: https://banten.bps.go.id (ganti dengan link langsung ke berkas BRS yang kalian pakai)
Data mentah sudah dirapikan lebih dulu di Microsoft
Excel (data_banten.xlsx) dengan satu sheet per
topik, lalu dibaca ke R menggunakan paket readxl.
Kelompok kami memilih data ini karena:
Catatan: Pastikan file
data_banten.xlsxberada di folder kerja (working directory) yang sama dengan file.Rmdini. Cek dengangetwd(), dan pindahkan filenya bila perlu, atau ubahpath_exceldi bawah.
path_excel <- "data_banten.xlsx"
# Setiap sheet punya 1 baris judul + 1 baris kosong di atas header,
# sehingga data sesungguhnya dimulai dari baris ke-3 (skip = 2)
lapus <- read_excel(path_excel, sheet = "LapanganUsaha", skip = 2) %>% drop_na()
pendidikan <- read_excel(path_excel, sheet = "Pendidikan", skip = 2) %>% drop_na()
status <- read_excel(path_excel, sheet = "StatusPekerjaan", skip = 2) %>% drop_na()
tpt <- read_excel(path_excel, sheet = "TPT", skip = 2) %>% drop_na()
tpak <- read_excel(path_excel, sheet = "TPAK", skip = 2) %>% drop_na()
formal <- read_excel(path_excel, sheet = "Formal", skip = 2) %>% drop_na()
ekonomi <- read_excel(path_excel, sheet = "Ekonomi", skip = 2) %>% drop_na()
kabkota <- read_excel(path_excel, sheet = "KabKota", skip = 2) %>% drop_na()
# Rapikan nama kolom (spasi -> underscore, huruf kecil)
names(lapus) <- c("lapangan_usaha", "persen")
names(pendidikan) <- c("pendidikan", "persen")
names(status) <- c("status", "persen")
names(tpt) <- c("periode", "pengangguran", "tpt")
names(tpak) <- c("periode", "jenis_kelamin", "tpak")
names(formal) <- c("periode", "sektor", "persen")
names(ekonomi) <- c("periode", "tahun", "qtoq", "yoy")
names(kabkota) <- c("wilayah", "tfr", "imr", "lansia", "ikg2024", "ikg2025")
# Tetapkan urutan level faktor supaya tidak terurut alfabetis di grafik
tpt$periode <- factor(tpt$periode, levels = tpt$periode)
tpak$periode <- factor(tpak$periode, levels = unique(tpak$periode))
formal$periode <- factor(formal$periode, levels = unique(formal$periode))
ekonomi$periode <- factor(ekonomi$periode, levels = ekonomi$periode)
glimpse(lapus)
## Rows: 17
## Columns: 2
## $ lapangan_usaha <chr> "Perdagangan Besar dan Eceran", "Industri", "Pertanian"…
## $ persen <dbl> 19.82, 18.55, 15.80, 8.60, 7.30, 6.46, 6.28, 5.93, 2.57…
lapus %>%
ggplot(aes(x = reorder(lapangan_usaha, persen), y = persen, fill = persen)) +
geom_col(show.legend = FALSE) +
geom_text(aes(label = paste0(persen, "%")), hjust = -0.1, size = 3.3) +
coord_flip() +
scale_fill_gradient(low = "#fdd49e", high = "#d94801") +
scale_y_continuous(expand = expansion(mult = c(0, .12))) +
labs(title = "Distribusi Penduduk Bekerja Menurut Lapangan Usaha",
subtitle = "Banten, Februari 2026",
x = NULL, y = "Persentase (%)",
caption = "Sumber: BPS Provinsi Banten (BRS 5 Mei 2026)")
Interpretasi: Tiga lapangan usaha terbesar penyerap tenaga kerja Banten adalah Perdagangan (19,82%), Industri (18,55%), dan Pertanian (15,80%). Ketiganya menyerap sekitar 54,17% dari seluruh penduduk bekerja. Sebaliknya, sektor Listrik dan Gas (0,30%), Pertambangan (0,75%), dan Informasi-Komunikasi (0,77%) menyerap tenaga kerja paling sedikit.
pendidikan %>%
mutate(pendidikan = factor(pendidikan, levels = pendidikan),
label = paste0(persen, "%")) %>%
ggplot(aes(x = "", y = persen, fill = pendidikan)) +
geom_col(width = 1, color = "white") +
coord_polar(theta = "y") +
geom_text(aes(label = label), position = position_stack(vjust = 0.5),
color = "white", fontface = "bold", size = 3.5) +
scale_fill_brewer(palette = "Dark2", name = "Pendidikan") +
labs(title = "Komposisi Penduduk Bekerja Menurut Tingkat Pendidikan",
subtitle = "Banten, Februari 2026",
caption = "Sumber: BPS Provinsi Banten (BRS 5 Mei 2026)") +
theme_void(base_size = 12) +
theme(plot.title = element_text(face = "bold"))
Interpretasi: Kelompok terbesar adalah lulusan SD ke bawah (35,74%), disusul SMA (22,62%) dan SMP (17,32%). Penduduk bekerja berpendidikan tinggi (Diploma ke atas) hanya sekitar 11,97%. Artinya, lebih dari separuh pekerja Banten berpendidikan SMP ke bawah.
status %>%
ggplot(aes(x = reorder(status, -persen), y = persen)) +
geom_col(fill = "#2b8cbe") +
geom_text(aes(label = paste0(persen, "%")), vjust = -0.4, size = 3.5) +
scale_x_discrete(labels = function(x) str_wrap(x, 14)) +
scale_y_continuous(expand = expansion(mult = c(0, .12))) +
labs(title = "Penduduk Bekerja Menurut Status Pekerjaan Utama",
subtitle = "Banten, Februari 2026",
x = NULL, y = "Persentase (%)",
caption = "Sumber: BPS Provinsi Banten (BRS 5 Mei 2026)")
Interpretasi: Hampir separuh pekerja (49,03%) berstatus buruh/karyawan/pegawai, diikuti berusaha sendiri (16,67%). Status yang paling jarang adalah berusaha dibantu buruh tetap (3,16%).
formal %>%
ggplot(aes(x = periode, y = persen, fill = sektor)) +
geom_col(width = .6) +
geom_text(aes(label = paste0(persen, "%")),
position = position_stack(vjust = .5), color = "white", fontface = "bold") +
scale_fill_manual(values = c("Formal" = "#c2571a", "Informal" = "#fdb913"), name = NULL) +
labs(title = "Proporsi Pekerja Formal dan Informal",
x = NULL, y = "Persentase (%)",
caption = "Sumber: BPS Provinsi Banten (BRS 5 Mei 2026)")
Interpretasi: Proporsi pekerja formal naik dari 50,27% (Feb 2024) menjadi 53,37% (Feb 2025), namun turun kembali menjadi 52,19% (Feb 2026), mengindikasikan sebagian tenaga kerja bergeser ke kegiatan informal.
ggplot(tpt, aes(x = periode, group = 1)) +
geom_col(aes(y = pengangguran), fill = "#fdae6b", width = .6) +
geom_line(aes(y = tpt * 60), color = "#08519c", linewidth = 1.2) +
geom_point(aes(y = tpt * 60), color = "#08519c", size = 3) +
geom_text(aes(y = tpt * 60, label = paste0(tpt, "%")),
vjust = -1, color = "#08519c", fontface = "bold") +
geom_text(aes(y = pengangguran, label = pengangguran), vjust = 1.5, size = 3.3) +
scale_y_continuous(name = "Pengangguran (ribu orang)",
sec.axis = sec_axis(~ . / 60, name = "TPT (%)")) +
labs(title = "Jumlah Pengangguran dan Tingkat Pengangguran Terbuka (TPT)",
subtitle = "Banten, Februari 2022 - Februari 2026", x = NULL,
caption = "Sumber: BPS Provinsi Banten (BRS 5 Mei 2026)")
Interpretasi: Jumlah pengangguran turun dari 504,26 ribu orang (Feb 2022) menjadi 411,24 ribu orang (Feb 2026). TPT ikut turun dari 8,53% menjadi 6,59%, namun penurunan mulai melandai (hanya 0,05 poin persentase dari Feb 2025 ke Feb 2026).
ekonomi %>%
pivot_longer(c(qtoq, yoy), names_to = "jenis", values_to = "nilai") %>%
mutate(jenis = recode(jenis, qtoq = "q-to-q", yoy = "y-on-y")) %>%
ggplot(aes(x = periode, y = nilai, group = jenis, color = jenis)) +
geom_line(linewidth = 1) + geom_point(size = 2) +
geom_text(aes(label = nilai), vjust = -0.9, size = 3, show.legend = FALSE) +
scale_color_manual(values = c("q-to-q" = "#c2571a", "y-on-y" = "#08519c"), name = NULL) +
scale_y_continuous(expand = expansion(mult = c(.05, .12))) +
labs(title = "Pertumbuhan Ekonomi Banten Triwulanan (%)",
subtitle = "Triwulan I-2023 s.d. Triwulan I-2026",
x = NULL, y = "Pertumbuhan (%)",
caption = "Sumber: BPS Provinsi Banten (BRS 5 Mei 2026)") +
theme(axis.text.x = element_text(angle = 45, hjust = 1))
Interpretasi: Pertumbuhan y-on-y naik bertahap dari 4,66% (Q1-2023) hingga 5,64% (Q1-2026). Pertumbuhan q-to-q berpola musiman: selalu tertinggi di Triwulan IV lalu turun di Triwulan I, sehingga penurunan q-to-q Q1-2026 (1,01%) dari Q4-2025 (2,22%) adalah pola musiman, bukan tanda perlambatan.
ggplot(ekonomi, aes(x = qtoq)) +
geom_histogram(binwidth = 0.25, fill = "#31a354", color = "white", boundary = 0) +
geom_vline(aes(xintercept = mean(qtoq)), color = "red", linetype = "dashed", linewidth = 1) +
labs(title = "Histogram Pertumbuhan Ekonomi Banten (q-to-q)",
subtitle = paste0("Garis merah putus-putus = rata-rata (", round(mean(ekonomi$qtoq), 2), "%)"),
x = "Pertumbuhan q-to-q (%)", y = "Frekuensi (jumlah triwulan)",
caption = "Sumber: BPS Provinsi Banten (BRS 5 Mei 2026), diolah")
Interpretasi: Sebagian besar pertumbuhan q-to-q berada pada kisaran 0,75-1,50% dengan rata-rata sekitar 1.25%. Distribusinya sedikit menjulur ke kanan karena efek musiman akhir tahun.
kabkota %>%
select(wilayah, ikg2024, ikg2025) %>%
pivot_longer(-wilayah, names_to = "tahun", values_to = "ikg") %>%
mutate(tahun = str_remove(tahun, "ikg")) %>%
ggplot(aes(x = tahun, y = ikg, fill = tahun)) +
geom_boxplot(alpha = .7, show.legend = FALSE, outlier.colour = "red") +
geom_jitter(width = .08, size = 2, alpha = .8) +
scale_fill_manual(values = c("2024" = "#fdb913", "2025" = "#c2571a")) +
labs(title = "Sebaran Indeks Ketimpangan Gender (IKG) 8 Kabupaten/Kota di Banten",
subtitle = "Semakin kecil nilai IKG, semakin rendah ketimpangan gender",
x = "Tahun", y = "IKG",
caption = "Sumber: BPS Provinsi Banten (BRS 5 Mei 2026)")
Interpretasi: Median IKG kabupaten/kota turun dari 2024 ke 2025. Data terlihat bimodal: Tangerang Raya dan Cilegon berada di kelompok rendah (0,15-0,27), sedangkan Pandeglang, Lebak, Serang, dan Kota Serang di kelompok tinggi (0,48-0,55). IKG Provinsi Banten turun dari 0,453 (2024) menjadi 0,418 (2025).
kabkota %>%
ggplot(aes(x = reorder(wilayah, tfr), y = tfr, fill = tfr < 2.1)) +
geom_col() +
geom_hline(yintercept = 2.10, linetype = "dashed", color = "red") +
annotate("text", x = 1, y = 2.13, label = "Replacement level = 2,10",
hjust = 0, color = "red", size = 3.5) +
geom_text(aes(label = tfr), hjust = -0.2) +
coord_flip() +
scale_fill_manual(values = c("TRUE" = "#2b8cbe", "FALSE" = "#e6550d"),
labels = c("TRUE" = "Di bawah replacement level", "FALSE" = "Di atas replacement level"),
name = NULL) +
scale_y_continuous(limits = c(0, 2.5)) +
labs(title = "Total Fertility Rate (TFR) Menurut Kabupaten/Kota, SUPAS 2025",
x = NULL, y = "TFR (anak per perempuan)",
caption = "Sumber: BPS Provinsi Banten (BRS 5 Mei 2026)")
Interpretasi: TFR terendah di Kota Tangerang Selatan (1,71) dan tertinggi di Kabupaten Pandeglang (2,21). Hanya Pandeglang dan Lebak yang di atas replacement level (2,10); enam wilayah lainnya sudah di bawahnya.
r <- cor(kabkota$tfr, kabkota$imr)
ggplot(kabkota, aes(x = tfr, y = imr)) +
geom_smooth(method = "lm", se = TRUE, color = "#08519c", fill = "#c6dbef") +
geom_point(size = 3.5, color = "#c2571a") +
ggrepel::geom_text_repel(aes(label = wilayah), size = 3.3) +
labs(title = "Hubungan TFR dan Angka Kematian Bayi (IMR) per Kabupaten/Kota",
subtitle = paste0("Koefisien korelasi Pearson r = ", round(r, 2)),
x = "TFR (anak per perempuan)", y = "IMR (per 1.000 kelahiran hidup)",
caption = "Sumber: BPS Provinsi Banten (BRS 5 Mei 2026), SUPAS 2025")
Interpretasi: Terdapat hubungan positif yang kuat antara TFR dan IMR (r = 0.89). Wilayah dengan TFR tinggi (Pandeglang, Lebak) juga memiliki IMR tinggi, menunjukkan pola disparitas Banten Utara vs Banten Selatan. Dengan hanya 8 titik data, korelasi ini bersifat deskriptif, bukan sebab-akibat.
kabkota %>%
ggplot(aes(x = reorder(wilayah, lansia), y = lansia, fill = lansia >= 10)) +
geom_col() +
geom_hline(yintercept = 10, linetype = "dashed", color = "red") +
geom_hline(yintercept = 9.51, linetype = "dotted", color = "black") +
geom_text(aes(label = lansia), hjust = -0.2) +
coord_flip() +
scale_fill_manual(values = c("TRUE" = "#cb181d", "FALSE" = "#6baed6"),
labels = c("TRUE" = "Ageing population (>= 10%)", "FALSE" = "Belum ageing population"),
name = NULL) +
scale_y_continuous(limits = c(0, 13)) +
labs(title = "Persentase Penduduk Lanjut Usia (60+) Menurut Kabupaten/Kota, SUPAS 2025",
subtitle = "Garis putus-putus merah = batas 10%; garis titik-titik hitam = rata-rata Banten (9,51%)",
x = NULL, y = "Persentase lansia (%)",
caption = "Sumber: BPS Provinsi Banten (BRS 5 Mei 2026)")
Interpretasi: Tiga wilayah telah memasuki fase ageing population: Kota Tangerang Selatan (11,75%), Pandeglang (10,36%), dan Kota Tangerang (10,34%). Persentase lansia Banten naik dari 7,15% (SP2020) menjadi 9,51% (SUPAS 2025).
Badan Pusat Statistik Provinsi Banten. (2026). Berita Resmi Statistik: Pertumbuhan Ekonomi Triwulan I-2026, Keadaan Ketenagakerjaan Februari 2026, Indeks Ketimpangan Gender 2025, dan Hasil SUPAS 2025 Provinsi Banten (5 Mei 2026). https://banten.bps.go.id