1 Pendahuluan

Tugas ini disusun untuk memenuhi Tugas Pendalaman Materi mata kuliah Statistika. Kelompok kami mengambil data real dari Badan Pusat Statistik (BPS) Provinsi Banten dengan fokus bidang Kesehatan/Kependudukan, yaitu data Jumlah Penduduk Menurut Kelompok Umur dan Jenis Kelamin (ribu jiwa) di Provinsi Banten, 2026.

Data jumlah penduduk menurut umur dan jenis kelamin penting dianalisis karena menjadi dasar perencanaan kebijakan publik, misalnya kebutuhan fasilitas kesehatan ibu dan anak, proyeksi jumlah tenaga kerja usia produktif, hingga kebutuhan layanan lanjut usia. Oleh karena itu kelompok kami memilih data ini sebagai bahan pendalaman materi visualisasi statistika.

Sumber data: Badan Pusat Statistik (BPS) Provinsi Banten Link: https://banten.bps.go.id/id/statistics-table/3/WVc0MGEyMXBkVFUxY25KeE9HdDZkbTQzWkVkb1p6MDkjMw==/jumlah-penduduk-menurut-kelompok-umur-dan-jenis-kelamin-di-provinsi-banten--2019.html

1.1 Studi Kasus “Visualisasi Data Kependudukan Provinsi Banten”

Diunggah Oleh: Mullah Muhammad Umar - 3337260062

Anggota Kelompok 7 : 1. Laila fitriani - 3337260160 2. Boby Nurul Ahmad - 3337260165 3. Rahmatul Adawiyah - 3337260040 4. Mullah Muhammad Umar - 3337260062

Beberapa poin penting: 1. Relevansi dengan isu kependudukan aktual — Data jumlah penduduk menurut kelompok umur dan jenis kelamin berkaitan langsung dengan isu bonus demografi yang sedang dialami Indonesia, termasuk Provinsi Banten. Topik ini aktual dan relevan untuk perencanaan kebijakan publik ke depan. 2.Kredibilitas dan keresmian sumber — Data diperoleh langsung dari situs resmi Badan Pusat Statistik (BPS) Provinsi Banten, sehingga validitas dan akurasinya terjamin dibandingkan sumber data sekunder lain yang belum tentu terverifikasi. 3. Kelengkapan struktur data untuk kebutuhan visualisasi — Data ini memiliki struktur yang kaya (variabel kelompok umur yang bertingkat serta pembagian jenis kelamin), sehingga cocok diolah menjadi berbagai jenis visualisasi yang dipelajari di kelas, baik data kategorik (pie chart, bar chart) maupun data numerik (piramida penduduk, line chart, histogram, boxplot). 4. Nilai kegunaan praktis (aplikatif) — Data kependudukan seperti ini menjadi dasar bagi banyak kebijakan nyata, misalnya perencanaan fasilitas kesehatan ibu dan anak, proyeksi tenaga kerja usia produktif, hingga penyediaan layanan lanjut usia. Ini menjadikan tugas visualisasi kelompok kami tidak sekadar latihan teknis, tetapi juga bermakna secara kontekstual. 5. Kesesuaian dengan bidang studi kelompok — Sebagai mahasiswa Statistika dan Informatika, kelompok kami tertarik mengaitkan konsep statistika deskriptif dan visualisasi data dengan isu sosial-demografis nyata, sehingga pembelajaran menjadi lebih kontekstual dan tidak abstrak. 6. Ketersediaan dan kemudahan akses data — Data tersedia secara terbuka (open data) dalam format yang bisa diunduh dan diolah, memudahkan proses pembersihan data (data cleaning) serta transformasi variabel (seperti pembuatan kategori usia fungsional) sesuai kebutuhan analisis kelompok.

2 Persiapan Package

# install.packages(c("readxl","dplyr","tidyr","ggplot2","scales","forcats"))
library(readxl)   # membaca file Excel
library(dplyr)    # wrangling data
library(tidyr)    # merapikan data (pivot)
library(ggplot2)  # visualisasi
library(scales)   # format angka pada sumbu/label
library(forcats)  # mengatur urutan level faktor

3 Palet Warna Kelompok

Agar seluruh grafik pada laporan ini terlihat konsisten dan menarik, kami menetapkan satu palet warna khusus yang dipakai berulang di semua visualisasi: maroon untuk kategori Laki-laki dan emas (gold) untuk kategori Perempuan, terinspirasi dari warna identitas kampus.

warna_lk <- "#7B241C"   # maroon - Laki-laki
warna_pr <- "#D4AC0D"   # gold   - Perempuan
warna_total <- "#1B4F72" # navy  - total/garis tren
warna_pal_umur <- c("#7B241C", "#A9611E", "#D4AC0D") # muda - produktif - tua

tema_kelompok <- theme_minimal(base_size = 12) +
  theme(
    plot.title = element_text(face = "bold", size = 14, color = "#1B2631"),
    plot.subtitle = element_text(color = "#5D6D7E"),
    axis.title = element_text(face = "bold"),
    legend.position = "bottom",
    legend.title = element_blank(),
    panel.grid.minor = element_blank()
  )

4 Impor dan Pembersihan Data

penduduk <- read_excel("data penduduk.xlsx",
                        sheet = "data penduduk",
                        skip = 3) %>%
  filter(Kelompok_Umur != "Jumlah/Total") %>%   # buang baris Total dari sheet Excel
  mutate(
    Kelompok_Umur = fct_inorder(Kelompok_Umur),
    Laki_laki = as.numeric(Laki_laki),
    Perempuan = as.numeric(Perempuan),
    Jumlah = Laki_laki + Perempuan
  )

glimpse(penduduk)
## Rows: 16
## Columns: 5
## $ Kelompok_Umur <fct> 0-4, 5-9, 10-14, 15-19, 20-24, 25-29, 30-34, 35-39, 40-4…
## $ `Laki-Laki`   <dbl> 490.0, 522.0, 532.0, 514.1, 506.7, 523.4, 522.9, 518.2, …
## $ Perempuan     <dbl> 470.4, 498.6, 509.0, 485.0, 478.2, 497.4, 501.8, 501.7, …
## $ Laki_laki     <dbl> 490.0, 522.0, 532.0, 514.1, 506.7, 523.4, 522.9, 518.2, …
## $ Jumlah        <dbl> 960.4, 1020.6, 1041.0, 999.1, 984.9, 1020.8, 1024.7, 101…

Kami juga membentuk variabel kategorik baru, yaitu kelompok usia fungsional (Muda/Produktif/Tua), untuk memperlihatkan cara mengubah data numerik menjadi data kategorik pada analisis kependudukan.

penduduk <- penduduk %>%
  mutate(
    Kategori_Usia = case_when(
      Kelompok_Umur %in% c("0-4","5-9","10-14") ~ "Muda (0-14)",
      Kelompok_Umur %in% c("65-69","70-74","75+") ~ "Tua (65+)",
      TRUE ~ "Produktif (15-64)"
    ),
    Kategori_Usia = factor(Kategori_Usia,
                           levels = c("Muda (0-14)", "Produktif (15-64)", "Tua (65+)"))
  )

data_long <- penduduk %>%
  select(Kelompok_Umur, Laki_laki, Perempuan) %>%
  pivot_longer(cols = c(Laki_laki, Perempuan),
               names_to = "Jenis_Kelamin", values_to = "Jumlah_Ribu") %>%
  mutate(Jenis_Kelamin = recode(Jenis_Kelamin,
                                 Laki_laki = "Laki-laki", Perempuan = "Perempuan"))

5 Visualisasi Data Kategorik

5.1 Diagram Lingkaran (Pie Chart) - Proporsi Jenis Kelamin

prop_gender <- penduduk %>%
  summarise(Laki_laki = sum(Laki_laki), Perempuan = sum(Perempuan)) %>%
  pivot_longer(everything(), names_to = "Jenis_Kelamin", values_to = "Jumlah") %>%
  mutate(Jenis_Kelamin = recode(Jenis_Kelamin,
                                 Laki_laki = "Laki-laki", Perempuan = "Perempuan"),
         Persen = Jumlah / sum(Jumlah))

ggplot(prop_gender, aes(x = "", y = Jumlah, fill = Jenis_Kelamin)) +
  geom_col(width = 1, color = "white") +
  coord_polar(theta = "y") +
  scale_fill_manual(values = c("Laki-laki" = warna_lk, "Perempuan" = warna_pr)) +
  geom_text(aes(label = percent(Persen, accuracy = 0.1)),
            position = position_stack(vjust = 0.5), color = "white", fontface = "bold") +
  labs(title = "Proporsi Penduduk Provinsi Banten Menurut Jenis Kelamin",
       subtitle = "Tahun 2026 (ribu jiwa)") +
  tema_kelompok +
  theme(axis.text = element_blank(), axis.title = element_blank(), panel.grid = element_blank())

Interpretasi: diagram lingkaran di atas memperlihatkan komposisi penduduk Banten menurut jenis kelamin. Apabila proporsi laki-laki sedikit lebih besar dari 50%, hal ini konsisten dengan rasio jenis kelamin (sex ratio) Provinsi Banten yang cenderung di atas 100, salah satunya didorong oleh migrasi tenaga kerja laki-laki ke kawasan industri.

5.2 Diagram Batang (Bar Chart) - Jumlah Penduduk per Kategori Usia Fungsional

kategori_summary <- penduduk %>%
  group_by(Kategori_Usia) %>%
  summarise(Total = sum(Jumlah)) %>%
  mutate(Persen = Total / sum(Total))

ggplot(kategori_summary, aes(x = Kategori_Usia, y = Total, fill = Kategori_Usia)) +
  geom_col(width = 0.6) +
  geom_text(aes(label = paste0(comma(Total), "\n(", percent(Persen, accuracy = 0.1), ")")),
            vjust = -0.3, fontface = "bold", size = 3.5) +
  scale_fill_manual(values = warna_pal_umur) +
  scale_y_continuous(labels = comma, expand = expansion(mult = c(0, 0.15))) +
  labs(title = "Jumlah Penduduk Banten Menurut Kategori Usia Fungsional",
       subtitle = "Tahun 2026 (ribu jiwa)",
       x = "Kategori Usia", y = "Jumlah Penduduk (ribu jiwa)") +
  tema_kelompok +
  theme(legend.position = "none")

Interpretasi: diagram batang ini mengelompokkan penduduk menjadi tiga kategori usia fungsional. Kelompok usia produktif (15-64 tahun) mendominasi jumlah penduduk, menunjukkan Provinsi Banten berada pada periode bonus demografi, yaitu proporsi penduduk usia kerja jauh lebih besar dibanding usia non-produktif (muda dan tua). Kondisi ini berpotensi menjadi modal pembangunan ekonomi jika diimbangi lapangan kerja dan peningkatan kualitas SDM yang memadai.

6 Visualisasi Data Numerik

6.1 Piramida Penduduk (Diverging Bar Chart)

piramida_data <- penduduk %>%
  select(Kelompok_Umur, Laki_laki, Perempuan) %>%
  mutate(Laki_laki = -Laki_laki) %>%
  pivot_longer(cols = c(Laki_laki, Perempuan),
               names_to = "Jenis_Kelamin", values_to = "Jumlah") %>%
  mutate(Jenis_Kelamin = recode(Jenis_Kelamin,
                                 Laki_laki = "Laki-laki", Perempuan = "Perempuan"))

batas <- max(abs(piramida_data$Jumlah))

ggplot(piramida_data, aes(x = Kelompok_Umur, y = Jumlah, fill = Jenis_Kelamin)) +
  geom_col(width = 0.8) +
  coord_flip() +
  scale_y_continuous(limits = c(-batas, batas) * 1.05,
                      labels = function(x) comma(abs(x))) +
  scale_fill_manual(values = c("Laki-laki" = warna_lk, "Perempuan" = warna_pr)) +
  labs(title = "Piramida Penduduk Provinsi Banten Tahun 2026",
       subtitle = "Menurut Kelompok Umur dan Jenis Kelamin (ribu jiwa)",
       x = "Kelompok Umur", y = "Jumlah Penduduk (ribu jiwa)") +
  tema_kelompok

Interpretasi: bentuk piramida yang melebar di kelompok umur muda hingga usia produktif awal (0-34 tahun) lalu menyempit tajam di usia tua menunjukkan struktur penduduk ekspansif/muda, khas negara berkembang dengan fertilitas yang masih relatif tinggi dan harapan hidup yang terus meningkat sehingga penduduk lansia belum terlalu banyak dibanding kelompok usia muda dan produktif.

6.2 Diagram Garis (Line Chart) - Tren Jumlah Penduduk Antar Kelompok Umur

ggplot(data_long, aes(x = Kelompok_Umur, y = Jumlah_Ribu,
                       color = Jenis_Kelamin, group = Jenis_Kelamin)) +
  geom_line(linewidth = 1.1) +
  geom_point(size = 2) +
  scale_color_manual(values = c("Laki-laki" = warna_lk, "Perempuan" = warna_pr)) +
  scale_y_continuous(labels = comma) +
  labs(title = "Tren Jumlah Penduduk Banten Antar Kelompok Umur",
       subtitle = "Tahun 2026 (ribu jiwa)",
       x = "Kelompok Umur", y = "Jumlah Penduduk (ribu jiwa)") +
  tema_kelompok +
  theme(axis.text.x = element_text(angle = 45, hjust = 1))

Interpretasi: garis tren pada kedua jenis kelamin menurun secara konsisten seiring bertambahnya kelompok umur, terutama setelah usia 45 tahun. Penurunan ini sejalan dengan proses alami penuaan penduduk (semakin tua kelompok umur, semakin sedikit jumlahnya) dan terlihat bahwa garis Perempuan berada di atas garis Laki-laki pada kelompok umur lanjut, mengindikasikan harapan hidup perempuan yang lebih tinggi.

6.3 Histogram - Sebaran Jumlah Penduduk per Kelompok Umur

ggplot(penduduk, aes(x = Jumlah)) +
  geom_histogram(binwidth = 100, fill = warna_total, color = "white", boundary = 0) +
  scale_x_continuous(labels = comma) +
  labs(title = "Sebaran (Distribusi) Jumlah Penduduk per Kelompok Umur",
       subtitle = "Provinsi Banten, Tahun 2026 (ribu jiwa)",
       x = "Jumlah Penduduk per Kelompok Umur (ribu jiwa)", y = "Frekuensi Kelompok Umur") +
  tema_kelompok

Interpretasi: histogram memperlihatkan bahwa sebagian besar kelompok umur memiliki jumlah penduduk pada kisaran menengah hingga tinggi (400-600 ribu jiwa), sedangkan hanya sedikit kelompok umur (umumnya kelompok usia lanjut) yang jumlah penduduknya rendah. Pola ini konsisten dengan bentuk piramida penduduk yang ekspansif pada bagian sebelumnya.

6.4 Boxplot - Perbandingan Sebaran Laki-laki vs Perempuan

ggplot(data_long, aes(x = Jenis_Kelamin, y = Jumlah_Ribu, fill = Jenis_Kelamin)) +
  geom_boxplot(width = 0.5, alpha = 0.9) +
  geom_jitter(width = 0.08, color = "#2C3E50", alpha = 0.6, size = 1.8) +
  scale_fill_manual(values = c("Laki-laki" = warna_lk, "Perempuan" = warna_pr)) +
  scale_y_continuous(labels = comma) +
  labs(title = "Perbandingan Sebaran Jumlah Penduduk: Laki-laki vs Perempuan",
       subtitle = "Provinsi Banten, Tahun 2026 (ribu jiwa)",
       x = NULL, y = "Jumlah Penduduk (ribu jiwa)") +
  tema_kelompok +
  theme(legend.position = "none")

Interpretasi: median jumlah penduduk laki-laki dan perempuan per kelompok umur terlihat relatif berdekatan, namun sebaran (variasi) pada masing-masing jenis kelamin menunjukkan rentang yang cukup lebar karena mencakup kelompok umur muda yang jumlahnya besar hingga kelompok umur lanjut yang jumlahnya kecil.

7 Ringkasan Statistik Deskriptif

ringkasan <- data_long %>%
  group_by(Jenis_Kelamin) %>%
  summarise(
    Total = sum(Jumlah_Ribu),
    Rata2 = mean(Jumlah_Ribu),
    Median = median(Jumlah_Ribu),
    SD = sd(Jumlah_Ribu),
    Min = min(Jumlah_Ribu),
    Max = max(Jumlah_Ribu)
  )
knitr::kable(ringkasan, digits = 1,
             caption = "Statistik Deskriptif Jumlah Penduduk per Jenis Kelamin (ribu jiwa)")
Statistik Deskriptif Jumlah Penduduk per Jenis Kelamin (ribu jiwa)
Jenis_Kelamin Total Rata2 Median SD Min Max
Laki-laki 6417.3 401.1 490.1 159.7 75.1 532
Perempuan 6224.3 389.0 474.3 147.9 92.7 509

8 Sumber Data dan Alasan Pemilihan

Kenapa kelompok kami memilih data ini? Data struktur umur dan jenis kelamin merupakan data dasar (fundamental) dalam bidang kesehatan dan kependudukan. Data ini dipilih karena mudah diakses secara resmi dari BPS, relevan dengan isu aktual seperti bonus demografi, dan cukup kaya untuk dieksplorasi dengan berbagai jenis visualisasi kategorik maupun numerik yang telah dipelajari di kelas Statistika.

9 Kesimpulan

Berdasarkan seluruh visualisasi di atas, dapat disimpulkan bahwa struktur penduduk Provinsi Banten tahun 2026 didominasi oleh kelompok usia produktif, dengan proporsi jenis kelamin yang relatif seimbang namun sedikit lebih banyak laki-laki pada usia muda-produktif dan lebih banyak perempuan pada usia lanjut. Kondisi ini mengindikasikan Provinsi Banten sedang berada pada fase bonus demografi yang perlu dimanfaatkan melalui penyediaan lapangan kerja dan peningkatan kualitas pendidikan/keterampilan angkatan kerja.


Catatan pengerjaan: setelah file ini di-Knit, publish hasilnya ke akun RPubs kelompok (Publish button di RStudio), lalu salin link RPubs tersebut untuk dikumpulkan bersama file .Rmd dan Excel, dan diunggah oleh SETIAP anggota kelompok ke SPADA.