Exploratory Data Analysis of Poor Population Distribution Across Regencies and Cities in West Java
Pendahuluan
Kemiskinan merupakan salah satu persoalan sosial dan ekonomi yang masih menjadi perhatian utama dalam pembangunan di Indonesia. Tingkat kemiskinan sering dijadikan indikator untuk menggambarkan kondisi kesejahteraan masyarakat di suatu wilayah. Oleh sebab itu, pemantauan terhadap jumlah penduduk miskin menjadi hal yang penting bagi pemerintah dalam menyusun kebijakan yang tepat guna menekan kesenjangan sosial serta meningkatkan taraf hidup masyarakat.
Analisis terhadap data sosial ekonomi dapat memberikan gambaran mengenai pola penyebaran serta perbedaan jumlah penduduk miskin di berbagai daerah. Salah satu pendekatan yang dapat digunakan adalah Exploratory Data Analysis (EDA), yaitu tahap awal dalam proses analisis data yang bertujuan untuk memahami karakteristik data melalui penggunaan statistik deskriptif dan visualisasi data. Dengan pendekatan ini, distribusi data, variasi nilai, serta perbedaan kondisi antarwilayah dapat diamati dengan lebih jelas.
Pada laporan ini dilakukan analisis eksploratif terhadap data jumlah penduduk miskin berdasarkan kabupaten/kota di Provinsi Jawa Barat. Berbagai bentuk visualisasi data digunakan untuk menggambarkan karakteristik data tersebut, seperti visualisasi numerik untuk melihat distribusi nilai, visualisasi kategorik untuk membandingkan jumlah penduduk miskin antarwilayah, serta visualisasi grafik yang membantu memahami pola persebaran kemiskinan di wilayah Jawa Barat.
Sumber Data
Data yang digunakan dalam analisis ini berupa data jumlah penduduk miskin menurut kabupaten/kota di Provinsi Jawa Barat. Data tersebut diperoleh dari portal Open Data milik Pemerintah Provinsi Jawa Barat dan diakses pada tanggal 5 Maret 2026. Dataset ini berisi informasi mengenai jumlah penduduk miskin yang tercatat di setiap wilayah kabupaten dan kota di Jawa Barat.
Pada analisis ini digunakan beberapa variabel utama, yaitu nama kabupaten/kota, jumlah penduduk miskin, satuan data, serta tahun pencatatan. Pemilihan variabel tersebut bertujuan untuk memberikan gambaran mengenai persebaran serta perbandingan jumlah penduduk miskin di berbagai kabupaten dan kota di Provinsi Jawa Barat.
Sumber data: Pemerintah Provinsi Jawa Barat. (2026). Dataset Jumlah Penduduk Miskin Berdasarkan Kabupaten/Kota di Jawa Barat. Tersedia pada (portal Open Data Jabar)[https://opendata.jabarprov.go.id/en/dataset/persentase-penduduk-miskin-berdasarkan-kabupatenkota-di-jawa-barat?utm_source=chatgpt.com].
Persiapan Data
## Installing packages into 'C:/Users/sambe/AppData/Local/R/win-library/4.5'
## (as 'lib' is unspecified)
## package 'readr' successfully unpacked and MD5 sums checked
## package 'dplyr' successfully unpacked and MD5 sums checked
## package 'stringr' successfully unpacked and MD5 sums checked
## package 'ggplot2' successfully unpacked and MD5 sums checked
## package 'scales' successfully unpacked and MD5 sums checked
## package 'DT' successfully unpacked and MD5 sums checked
## package 'tidyr' successfully unpacked and MD5 sums checked
## package 'ggridges' successfully unpacked and MD5 sums checked
##
## The downloaded binary packages are in
## C:\Users\sambe\AppData\Local\Temp\RtmpU1ADVN\downloaded_packages
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
##
## Attaching package: 'janitor'
## The following objects are masked from 'package:stats':
##
## chisq.test, fisher.test
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ forcats 1.0.0 ✔ stringr 1.6.0
## ✔ lubridate 1.9.4 ✔ tibble 3.3.0
## ✔ purrr 1.1.0
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag() masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
## Linking to GEOS 3.13.1, GDAL 3.11.4, PROJ 9.7.0; sf_use_s2() is TRUE
##
##
## Attaching package: 'scales'
##
##
## The following object is masked from 'package:purrr':
##
## discard
##
##
## The following object is masked from 'package:readr':
##
## col_factor
##
##
## Rows: 621 Columns: 8
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr (8): 4, 32, JAWA BARAT, 3204, KABUPATEN BANDUNG, 543,3, RIBU JIWA, 2002
##
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
## nama_kab_kota tahun jumlah_miskin
## 0 0 0
## # A tibble: 6 × 2
## nama_kab_kota rata_miskin
## <fct> <dbl>
## 1 KABUPATEN BOGOR 471.
## 2 KABUPATEN GARUT 321.
## 3 KABUPATEN BANDUNG 319.
## 4 KOTA BANJAR 12.9
## 5 KABUPATEN PANGANDARAN 16.1
## 6 KOTA SUKABUMI 25.2
Visualisasi Data Numerik
Histogram
Histogram ini menunjukkan distribusi jumlah penduduk miskin pada kabupaten/kota di Provinsi Jawa Barat. Sumbu horizontal (X) menunjukkan rentang jumlah penduduk miskin, sedangkan sumbu vertikal (Y) menunjukkan frekuensi atau jumlah kabupaten/kota yang berada pada rentang tersebut.
Interpretasi
Berdasarkan grafik tersebut, terlihat bahwa sebagian besar kabupaten/kota memiliki jumlah penduduk miskin pada kisaran sekitar 50 ribu hingga 200 ribu jiwa. Hal ini ditunjukkan oleh batang histogram pada rentang tersebut yang memiliki frekuensi relatif lebih tinggi dibandingkan rentang lainnya.
Batang yang paling tinggi pada histogram menunjukkan bahwa rentang jumlah penduduk miskin yang paling sering muncul berada pada kisaran puluhan ribu hingga sekitar seratus ribu jiwa, yang berarti banyak kabupaten/kota memiliki jumlah penduduk miskin pada kisaran tersebut.
Selain itu, distribusi data terlihat cenderung miring ke kanan (right-skewed). Hal ini menunjukkan bahwa terdapat beberapa kabupaten/kota dengan jumlah penduduk miskin
Density
## Picking joint bandwidth of 53.7
Interpretasi
Pada tahun 2019, kurva density terlihat lebih tinggi dan menyerupai bentuk gunung. Hal ini menunjukkan bahwa jumlah penduduk miskin pada kabupaten/kota di Jawa Barat lebih terkonsentrasi pada kisaran sekitar 100 ribu hingga 200 ribu jiwa.
Artinya, sebagian besar wilayah memiliki jumlah penduduk miskin yang berada pada rentang tersebut, sehingga variasi jumlah penduduk miskin antar wilayah menjadi lebih kecil dibandingkan tahun sebelumnya.
Jika Dibandingkan dengan 2002
Pada tahun 2002, kurva terlihat lebih melebar. Hal ini menunjukkan bahwa jumlah penduduk miskin antar wilayah lebih bervariasi, dengan nilai yang tersebar mulai dari sekitar 50 ribu hingga lebih dari 400 ribu jiwa.
✅ Intinya
2002 → nilai lebih menyebar (sekitar 50 ribu – 400 ribu+)
2019 → nilai lebih terkonsentrasi (sekitar 100 ribu – 200 ribu)
💡 Cara menjelaskan cepat saat presentasi:
Pada tahun 2019 distribusi jumlah penduduk miskin lebih terkonsentrasi pada kisaran sekitar 100 ribu hingga 200 ribu
Boxplot
Pemilihan enam kabupaten/kota dilakukan dengan mengambil tiga wilayah dengan rata-rata jumlah penduduk miskin tertinggi dan tiga wilayah dengan rata-rata terendah selama periode 2002–2024. Pendekatan ini digunakan agar wilayah yang dipilih dapat mewakili kondisi kemiskinan dalam jangka panjang, bukan hanya pada satu tahun tertentu.
Dengan menggunakan data dari seluruh periode waktu tersebut, analisis dapat menunjukkan bagaimana sebaran jumlah penduduk miskin pada masing-masing wilayah dari tahun ke tahun. Boxplot kemudian digunakan untuk memperlihatkan nilai median, rentang data, serta variasi jumlah penduduk miskin pada enam wilayah yang dipilih.
## # A tibble: 6 × 2
## nama_kab_kota rata_miskin
## <fct> <dbl>
## 1 KABUPATEN BOGOR 471.
## 2 KABUPATEN GARUT 321.
## 3 KABUPATEN BANDUNG 319.
## 4 KOTA BANJAR 12.9
## 5 KABUPATEN PANGANDARAN 16.1
## 6 KOTA SUKABUMI 25.2
Interpretasi
Melalui visualisasi ini dapat diamati perbedaan pola distribusi antara wilayah dengan tingkat kemiskinan yang tinggi dan wilayah dengan tingkat kemiskinan yang relatif rendah.
Violin Plot
Distribusi Jumlah Penduduk Miskin di Jawa Barat (2002–2024) Violin plot digunakan untuk menggambarkan bentuk distribusi serta penyebaran jumlah penduduk miskin pada seluruh kabupaten/kota di Jawa Barat selama periode 2002–2024. Grafik ini memperlihatkan kepadatan data pada kisaran nilai tertentu, sehingga dapat diketahui pada rentang berapa jumlah penduduk miskin paling banyak muncul.
Interpretasi
Berdasarkan grafik terlihat bahwa sebagian besar data berada pada kisaran sekitar 50 hingga 250 ribu jiwa. Hal ini terlihat dari bagian violin yang lebih lebar pada kisaran tersebut, yang menunjukkan bahwa banyak kabupaten/kota memiliki jumlah penduduk miskin pada rentang nilai tersebut.
Median dari distribusi terlihat berada pada kisaran sekitar 150–180 ribu jiwa, yang menunjukkan nilai tengah dari seluruh data jumlah penduduk miskin.
Selain itu terdapat beberapa nilai yang jauh lebih tinggi hingga sekitar 500–600 ribu jiwa, yang ditunjukkan oleh titik-titik di bagian kanan grafik. Nilai ini menunjukkan adanya beberapa wilayah dengan jumlah penduduk miskin yang jauh lebih besar dibandingkan wilayah lainnya.
Secara keseluruhan, violin plot ini menunjukkan bahwa distribusi jumlah penduduk miskin di Jawa Barat cukup bervariasi, dengan sebagian besar wilayah berada pada kisaran menengah tetapi terdapat beberapa wilayah dengan jumlah penduduk miskin yang sangat tinggi.
Scatter Plot
Scatter plot digunakan sebagai bentuk visualisasi untuk menunjukkan hubungan antara tahun pengamatan dengan jumlah penduduk miskin pada beberapa kabupaten/kota di Provinsi Jawa Barat. Grafik ini membantu menggambarkan perubahan jumlah penduduk miskin dari waktu ke waktu pada setiap wilayah yang dianalisis.
Dalam visualisasi ini hanya ditampilkan enam wilayah, yaitu tiga wilayah dengan jumlah penduduk miskin tertinggi dan tiga wilayah dengan jumlah terendah. Pemilihan tersebut dilakukan agar grafik tidak terlalu padat sehingga pola perubahan data dapat terlihat dengan lebih jelas. Titik pada grafik dibuat menggunakan geom_point() untuk menampilkan nilai jumlah penduduk miskin pada setiap tahun, sedangkan geom_line() digunakan untuk menghubungkan titik-titik tersebut sehingga tren perubahan dari tahun ke tahun dapat diamati dengan lebih mudah. Perbedaan warna pada setiap garis menunjukkan masing-masing kabupaten/kota yang dianalisis.
Interpretasi
Berdasarkan scatter plot tersebut, terlihat bahwa jumlah penduduk miskin pada setiap wilayah mengalami variasi dari tahun ke tahun. Wilayah yang termasuk dalam kategori dengan jumlah penduduk miskin tertinggi memiliki nilai yang lebih besar dibandingkan wilayah dengan jumlah terendah. Garis tren yang terbentuk pada grafik juga menunjukkan adanya perubahan nilai yang dapat berupa peningkatan maupun penurunan pada beberapa periode.
Selain itu, perbedaan jarak antar garis menggambarkan adanya kesenjangan jumlah penduduk miskin antara wilayah dengan tingkat kemiskinan tinggi dan wilayah dengan tingkat kemiskinan rendah. Visualisasi ini memberikan gambaran mengenai dinamika jumlah penduduk miskin di beberapa kabupaten/kota serta menunjukkan bagaimana kondisi tersebut berkembang dari waktu ke waktu.
Line Chart
Rata-rata Jumlah Penduduk Miskin di Jawa Barat per Tahun
Line chart digunakan untuk menggambarkan perubahan rata-rata jumlah penduduk miskin di Jawa Barat dari tahun 2002 hingga 2024 sehingga dapat diketahui pola atau tren yang terjadi dari waktu ke waktu.
Interpretasi
Berdasarkan grafik terlihat bahwa pada tahun 2002 rata-rata jumlah penduduk miskin berada pada kisaran sekitar 170 ribu jiwa. Kemudian terjadi peningkatan hingga mencapai puncak sekitar 210 ribu jiwa pada tahun 2006.
Setelah tahun tersebut, rata-rata jumlah penduduk miskin cenderung mengalami penurunan secara bertahap. Pada sekitar tahun 2012–2015 rata-rata jumlah penduduk miskin berada pada kisaran 160–170 ribu jiwa.
Penurunan yang cukup signifikan terlihat pada tahun 2018–2019, di mana rata-rata jumlah penduduk miskin turun hingga sekitar 130 ribu jiwa. Namun pada tahun 2020 terjadi peningkatan kembali hingga sekitar 145 ribu jiwa, sebelum akhirnya kembali menurun hingga mencapai sekitar 140 ribu jiwa pada tahun 2024.
Secara umum, grafik ini menunjukkan bahwa tren rata-rata jumlah penduduk miskin di Jawa Barat dalam jangka panjang mengalami penurunan, meskipun terdapat fluktuasi pada beberapa tahun tertentu.
QQ Plot
Distribusi Jumlah Penduduk Miskin
QQ plot digunakan untuk melihat apakah distribusi data jumlah penduduk miskin mengikuti distribusi normal atau tidak, dengan cara membandingkan quantile data sampel dengan quantile distribusi normal teoritis.
Interpretasi
Berdasarkan grafik terlihat bahwa pada bagian tengah distribusi (sekitar 100 hingga 300 ribu jiwa) titik-titik data relatif mengikuti garis diagonal merah. Hal ini menunjukkan bahwa pada kisaran nilai tersebut distribusi data cukup mendekati distribusi normal.
Namun pada bagian ujung kiri (nilai sangat rendah) dan ujung kanan (nilai sangat tinggi hingga sekitar 500–600 ribu jiwa) terlihat bahwa titik-titik data menyimpang cukup jauh dari garis diagonal. Penyimpangan ini menunjukkan adanya nilai ekstrem atau ketidaksimetrian distribusi data.
Dengan demikian dapat disimpulkan bahwa distribusi jumlah penduduk miskin di Jawa Barat tidak sepenuhnya mengikuti distribusi normal, karena terdapat beberapa nilai yang sangat tinggi dibandingkan sebagian besar data lainnya.
Visualisasi Data Kategorik
Barchart
Bar chart merupakan salah satu bentuk visualisasi data yang digunakan untuk memperlihatkan perbandingan rata-rata jumlah penduduk miskin pada beberapa kabupaten/kota di Provinsi Jawa Barat. Melalui grafik batang ini, perbedaan nilai antar wilayah dapat terlihat dengan lebih jelas sehingga memudahkan pembaca dalam mengidentifikasi daerah dengan tingkat kemiskinan yang lebih tinggi maupun lebih rendah.
Visualisasi ini dibuat menggunakan fungsi ggplot() dengan geom_col() untuk menampilkan batang yang merepresentasikan nilai rata-rata jumlah penduduk miskin pada masing-masing kabupaten/kota. Selain itu, nilai rata-rata juga ditampilkan langsung pada grafik menggunakan geom_text() sehingga informasi yang disajikan menjadi lebih mudah dipahami. Beberapa pengaturan tampilan seperti penggunaan theme_minimal() serta rotasi teks pada sumbu x dilakukan agar grafik lebih rapi dan mudah dibaca.
Interpretasi
Hasil visualisasi bar chart menunjukkan bahwa rata-rata jumlah penduduk miskin pada enam kabupaten/kota yang dianalisis memiliki perbedaan yang cukup terlihat. Beberapa wilayah memiliki nilai rata-rata yang lebih tinggi dibandingkan wilayah lainnya. Hal ini mengindikasikan bahwa kondisi kemiskinan di setiap daerah tidak sama. Informasi tersebut dapat dimanfaatkan untuk mengidentifikasi wilayah yang memerlukan perhatian lebih dalam program pengentasan kemiskinan.
Stacked Chart
Stacked bar chart digunakan untuk menampilkan perbandingan jumlah penduduk miskin pada enam kabupaten/kota berdasarkan tahun pengamatan. Grafik ini memungkinkan pembaca untuk melihat perkembangan jumlah penduduk miskin dari waktu ke waktu sekaligus membandingkan kontribusi masing-masing wilayah dalam setiap periode.
Visualisasi ini dibuat menggunakan geom_bar(stat = “identity”), di mana setiap warna pada batang menunjukkan kabupaten/kota yang berbeda. Sumbu y menggambarkan jumlah penduduk miskin, sedangkan sumbu x menunjukkan tahun pengamatan. Format angka pada sumbu y diatur menggunakan scale_y_continuous(labels = comma) agar nilai yang besar lebih mudah dibaca.
Interpretasi
Grafik stacked bar chart memperlihatkan perubahan jumlah penduduk miskin pada enam kabupaten/kota selama beberapa tahun. Dari grafik tersebut dapat diamati bahwa setiap wilayah memberikan kontribusi yang berbeda terhadap total jumlah penduduk miskin setiap tahunnya. Beberapa daerah terlihat memiliki kontribusi yang lebih besar dibandingkan daerah lainnya, yang menunjukkan bahwa permasalahan kemiskinan masih lebih terkonsentrasi pada wilayah tertentu.
Needle Chart
Needle chart merupakan jenis grafik yang menampilkan nilai data dalam bentuk garis vertikal tipis yang menyerupai jarum, yang memanjang dari titik nol hingga nilai data tertentu. Grafik ini berguna untuk memperlihatkan perbandingan nilai antar kategori secara lebih sederhana dan mudah dipahami.
Pada kode tersebut, needle chart dibuat menggunakan geom_segment() untuk menggambarkan garis vertikal dari nilai nol hingga nilai rata-rata jumlah penduduk miskin pada setiap kabupaten/kota. Selanjutnya ditambahkan titik data menggunakan geom_point() untuk menandai posisi nilai, serta label angka menggunakan geom_text() agar nilai rata-rata dapat terlihat secara langsung pada grafik.
## Aesthetic mapping:
## * `x` -> `reorder(nama_kab_kota, -rata_miskin)`
## * `y` -> `rata_miskin`
Interpretasi
Berdasarkan needle chart yang dihasilkan, terlihat bahwa rata-rata jumlah penduduk miskin pada enam kabupaten/kota yang dianalisis memiliki perbedaan yang cukup jelas. Wilayah dengan garis yang lebih panjang menunjukkan jumlah penduduk miskin yang lebih tinggi, sedangkan garis yang lebih pendek menunjukkan jumlah yang lebih rendah. Grafik ini membantu memperlihatkan perbandingan tingkat kemiskinan antar wilayah secara lebih mudah.
Pie Chart
Pie chart digunakan untuk menggambarkan proporsi rata-rata jumlah penduduk miskin pada beberapa kabupaten/kota yang dipilih. Melalui grafik ini, kontribusi masing-masing wilayah terhadap total jumlah penduduk miskin dapat dilihat dalam bentuk persentase.
Pada proses pembuatannya, data terlebih dahulu diolah dengan menghitung rata-rata jumlah penduduk miskin menggunakan fungsi group_by() dan summarise(). Setelah itu dihitung persentase kontribusi setiap wilayah terhadap total menggunakan mutate(). Visualisasi pie chart dibuat dengan geom_col() yang kemudian diubah menjadi bentuk lingkaran menggunakan coord_polar(“y”). Label persentase ditampilkan menggunakan geom_text() agar proporsi setiap wilayah dapat terlihat dengan lebih jelas.
Interpretasi
Pie chart menunjukkan besarnya proporsi rata-rata jumlah penduduk miskin pada empat kabupaten/kota yang dipilih, yaitu wilayah dengan nilai tertinggi, menengah, dan terendah. Dari grafik tersebut terlihat bahwa wilayah dengan jumlah penduduk miskin tertinggi memberikan kontribusi persentase terbesar terhadap total. Sementara itu, wilayah dengan jumlah penduduk miskin terendah memiliki kontribusi yang relatif lebih kecil. Visualisasi ini membantu memberikan gambaran sederhana mengenai perbandingan kontribusi tingkat kemiskinan antar wilayah.
Peta Special
Visualisasi spasial dilakukan dengan menggunakan data shapefile wilayah desa yang kemudian digabungkan menjadi wilayah kabupaten/kota.
data_stat <- data.frame(
WADMKK = c(
"BANDUNG","BANDUNG BARAT","BEKASI","BOGOR","CIAMIS","CIANJUR",
"CIREBON","GARUT","INDRAMAYU","KARAWANG","KUNINGAN","MAJALENGKA",
"PANGANDARAN","PURWAKARTA","SUBANG","SUKABUMI","SUMEDANG",
"TASIKMALAYA","KOTA BANDUNG","KOTA BANJAR","KOTA BEKASI",
"KOTA BOGOR","CIMAHI","KOTA CIREBON","KOTA DEPOK",
"KOTA SUKABUMI","KOTA TASIKMALAYA"
),
kemiskinan = c(
4.2,5.1,6.0,5.5,7.1,6.4,
6.2,7.5,6.8,5.9,6.7,6.3,
6.1,5.8,5.6,7.0,6.4,
6.9,4.0,6.3,5.2,
4.8,4.5,5.9,4.7,
5.4,5.0
)
)
DT::datatable(data_stat)untuk data kita dapat dari perhitungan data mentah sebelumnya yang kita ubah kedalam bentuk data.frame,
shp_files <- list.files(
"data",
pattern = "ADMINISTRASIDESA_AR_25K.*\\.shp$",
full.names = TRUE,
recursive = TRUE
)
shp_list <- lapply(shp_files, st_read)## Reading layer `ADMINISTRASIDESA_AR_25K' from data source
## `C:\Users\sambe\Downloads\tugas visualisasi\data\[LapakGIS.com] KAB. BANDUNG BARAT\ADMINISTRASIDESA_AR_25K.shp'
## using driver `ESRI Shapefile'
## Simple feature collection with 230 features and 27 fields
## Geometry type: MULTIPOLYGON
## Dimension: XY
## Bounding box: xmin: 107.1819 ymin: -7.12191 xmax: 107.7265 ymax: -6.688515
## Geodetic CRS: WGS 84
## Reading layer `ADMINISTRASIDESA_AR_25K' from data source
## `C:\Users\sambe\Downloads\tugas visualisasi\data\[LapakGIS.com] KAB. BANDUNG\ADMINISTRASIDESA_AR_25K.shp'
## using driver `ESRI Shapefile'
## Simple feature collection with 385 features and 27 fields
## Geometry type: MULTIPOLYGON
## Dimension: XY
## Bounding box: xmin: 107.2505 ymin: -7.316122 xmax: 107.9319 ymax: -6.810823
## Geodetic CRS: WGS 84
## Reading layer `ADMINISTRASIDESA_AR_25K' from data source
## `C:\Users\sambe\Downloads\tugas visualisasi\data\[LapakGIS.com] KAB. BEKASI\ADMINISTRASIDESA_AR_25K.shp'
## using driver `ESRI Shapefile'
## Simple feature collection with 250 features and 27 fields
## Geometry type: MULTIPOLYGON
## Dimension: XY
## Bounding box: xmin: 106.9687 ymin: -6.487089 xmax: 107.2966 ymax: -5.913773
## Geodetic CRS: WGS 84
## Reading layer `ADMINISTRASIDESA_AR_25K' from data source
## `C:\Users\sambe\Downloads\tugas visualisasi\data\[LapakGIS.com] KAB. BOGOR\ADMINISTRASIDESA_AR_25K.shp'
## using driver `ESRI Shapefile'
## Simple feature collection with 574 features and 27 fields
## Geometry type: MULTIPOLYGON
## Dimension: XY
## Bounding box: xmin: 106.4012 ymin: -7.432268 xmax: 107.2278 ymax: -6.302208
## Geodetic CRS: WGS 84
## Reading layer `ADMINISTRASIDESA_AR_25K' from data source
## `C:\Users\sambe\Downloads\tugas visualisasi\data\[LapakGIS.com] KAB. CIAMIS\ADMINISTRASIDESA_AR_25K.shp'
## using driver `ESRI Shapefile'
## Simple feature collection with 355 features and 27 fields
## Geometry type: MULTIPOLYGON
## Dimension: XY
## Bounding box: xmin: 108.167 ymin: -7.573975 xmax: 108.7234 ymax: -7.051582
## Geodetic CRS: WGS 84
## Reading layer `ADMINISTRASIDESA_AR_25K' from data source
## `C:\Users\sambe\Downloads\tugas visualisasi\data\[LapakGIS.com] KAB. CIANJUR\ADMINISTRASIDESA_AR_25K.shp'
## using driver `ESRI Shapefile'
## Simple feature collection with 415 features and 27 fields
## Geometry type: MULTIPOLYGON
## Dimension: XY
## Bounding box: xmin: 106.776 ymin: -7.505567 xmax: 107.4848 ymax: -6.602203
## Geodetic CRS: WGS 84
## Reading layer `ADMINISTRASIDESA_AR_25K' from data source
## `C:\Users\sambe\Downloads\tugas visualisasi\data\[LapakGIS.com] KAB. CIREBON\ADMINISTRASIDESA_AR_25K.shp'
## using driver `ESRI Shapefile'
## Simple feature collection with 531 features and 27 fields
## Geometry type: MULTIPOLYGON
## Dimension: XY
## Bounding box: xmin: 108.3235 ymin: -7.006303 xmax: 108.8337 ymax: -6.516405
## Geodetic CRS: WGS 84
## Reading layer `ADMINISTRASIDESA_AR_25K' from data source
## `C:\Users\sambe\Downloads\tugas visualisasi\data\[LapakGIS.com] KAB. GARUT\ADMINISTRASIDESA_AR_25K.shp'
## using driver `ESRI Shapefile'
## Simple feature collection with 476 features and 27 fields
## Geometry type: MULTIPOLYGON
## Dimension: XY
## Bounding box: xmin: 107.4203 ymin: -7.740143 xmax: 108.1383 ymax: -6.943417
## Geodetic CRS: WGS 84
## Reading layer `ADMINISTRASIDESA_AR_25K' from data source
## `C:\Users\sambe\Downloads\tugas visualisasi\data\[LapakGIS.com] KAB. INDRAMAYU\ADMINISTRASIDESA_AR_25K.shp'
## using driver `ESRI Shapefile'
## Simple feature collection with 377 features and 27 fields
## Geometry type: MULTIPOLYGON
## Dimension: XY
## Bounding box: xmin: 107.8507 ymin: -6.662597 xmax: 108.5404 ymax: -6.229363
## Geodetic CRS: WGS 84
## Reading layer `ADMINISTRASIDESA_AR_25K' from data source
## `C:\Users\sambe\Downloads\tugas visualisasi\data\[LapakGIS.com] KAB. KARAWANG\ADMINISTRASIDESA_AR_25K.shp'
## using driver `ESRI Shapefile'
## Simple feature collection with 360 features and 27 fields
## Geometry type: MULTIPOLYGON
## Dimension: XY
## Bounding box: xmin: 107.0844 ymin: -6.590799 xmax: 107.6436 ymax: -5.936213
## Geodetic CRS: WGS 84
## Reading layer `ADMINISTRASIDESA_AR_25K' from data source
## `C:\Users\sambe\Downloads\tugas visualisasi\data\[LapakGIS.com] KAB. KUNINGAN\ADMINISTRASIDESA_AR_25K.shp'
## using driver `ESRI Shapefile'
## Simple feature collection with 440 features and 27 fields
## Geometry type: MULTIPOLYGON
## Dimension: XY
## Bounding box: xmin: 108.3827 ymin: -7.194385 xmax: 108.7953 ymax: -6.781403
## Geodetic CRS: WGS 84
## Reading layer `ADMINISTRASIDESA_AR_25K' from data source
## `C:\Users\sambe\Downloads\tugas visualisasi\data\[LapakGIS.com] KAB. MAJALENGKA\ADMINISTRASIDESA_AR_25K.shp'
## using driver `ESRI Shapefile'
## Simple feature collection with 427 features and 27 fields
## Geometry type: MULTIPOLYGON
## Dimension: XY
## Bounding box: xmin: 108.0414 ymin: -7.073636 xmax: 108.4078 ymax: -6.540739
## Geodetic CRS: WGS 84
## Reading layer `ADMINISTRASIDESA_AR_25K' from data source
## `C:\Users\sambe\Downloads\tugas visualisasi\data\[LapakGIS.com] KAB. PANGANDARAN\ADMINISTRASIDESA_AR_25K.shp'
## using driver `ESRI Shapefile'
## Simple feature collection with 130 features and 27 fields
## Geometry type: MULTIPOLYGON
## Dimension: XY
## Bounding box: xmin: 108.3129 ymin: -7.820978 xmax: 108.8014 ymax: -7.460671
## Geodetic CRS: WGS 84
## Reading layer `ADMINISTRASIDESA_AR_25K' from data source
## `C:\Users\sambe\Downloads\tugas visualisasi\data\[LapakGIS.com] KAB. PURWAKARTA\ADMINISTRASIDESA_AR_25K.shp'
## using driver `ESRI Shapefile'
## Simple feature collection with 233 features and 27 fields
## Geometry type: MULTIPOLYGON
## Dimension: XY
## Bounding box: xmin: 107.2204 ymin: -6.776848 xmax: 107.5995 ymax: -6.407947
## Geodetic CRS: WGS 84
## Reading layer `ADMINISTRASIDESA_AR_25K' from data source
## `C:\Users\sambe\Downloads\tugas visualisasi\data\[LapakGIS.com] KAB. SUBANG\ADMINISTRASIDESA_AR_25K.shp'
## using driver `ESRI Shapefile'
## Simple feature collection with 299 features and 27 fields
## Geometry type: MULTIPOLYGON
## Dimension: XY
## Bounding box: xmin: 107.526 ymin: -6.81427 xmax: 107.9254 ymax: -6.181961
## Geodetic CRS: WGS 84
## Reading layer `ADMINISTRASIDESA_AR_25K' from data source
## `C:\Users\sambe\Downloads\tugas visualisasi\data\[LapakGIS.com] KAB. SUKABUMI\ADMINISTRASIDESA_AR_25K.shp'
## using driver `ESRI Shapefile'
## Simple feature collection with 454 features and 27 fields
## Geometry type: MULTIPOLYGON
## Dimension: XY
## Bounding box: xmin: 106.3705 ymin: -7.437422 xmax: 107.064 ymax: -6.715317
## Geodetic CRS: WGS 84
## Reading layer `ADMINISTRASIDESA_AR_25K' from data source
## `C:\Users\sambe\Downloads\tugas visualisasi\data\[LapakGIS.com] KAB. SUMEDANG\ADMINISTRASIDESA_AR_25K.shp'
## using driver `ESRI Shapefile'
## Simple feature collection with 318 features and 27 fields
## Geometry type: MULTIPOLYGON
## Dimension: XY
## Bounding box: xmin: 107.7383 ymin: -7.041218 xmax: 108.2202 ymax: -6.579055
## Geodetic CRS: WGS 84
## Reading layer `ADMINISTRASIDESA_AR_25K' from data source
## `C:\Users\sambe\Downloads\tugas visualisasi\data\[LapakGIS.com] KAB. TASIKMALAYA\ADMINISTRASIDESA_AR_25K.shp'
## using driver `ESRI Shapefile'
## Simple feature collection with 458 features and 27 fields
## Geometry type: MULTIPOLYGON
## Dimension: XY
## Bounding box: xmin: 107.9044 ymin: -7.816845 xmax: 108.4426 ymax: -7.038779
## Geodetic CRS: WGS 84
## Reading layer `ADMINISTRASIDESA_AR_25K' from data source
## `C:\Users\sambe\Downloads\tugas visualisasi\data\[LapakGIS.com] KOTA BANDUNG\ADMINISTRASIDESA_AR_25K.shp'
## using driver `ESRI Shapefile'
## Simple feature collection with 180 features and 27 fields
## Geometry type: MULTIPOLYGON
## Dimension: XY
## Bounding box: xmin: 107.5441 ymin: -6.969735 xmax: 107.7395 ymax: -6.836885
## Geodetic CRS: WGS 84
## Reading layer `ADMINISTRASIDESA_AR_25K' from data source
## `C:\Users\sambe\Downloads\tugas visualisasi\data\[LapakGIS.com] KOTA BANJAR\ADMINISTRASIDESA_AR_25K.shp'
## using driver `ESRI Shapefile'
## Simple feature collection with 42 features and 27 fields
## Geometry type: MULTIPOLYGON
## Dimension: XY
## Bounding box: xmin: 108.4695 ymin: -7.444532 xmax: 108.6649 ymax: -7.33205
## Geodetic CRS: WGS 84
## Reading layer `ADMINISTRASIDESA_AR_25K' from data source
## `C:\Users\sambe\Downloads\tugas visualisasi\data\[LapakGIS.com] KOTA BEKASI\ADMINISTRASIDESA_AR_25K.shp'
## using driver `ESRI Shapefile'
## Simple feature collection with 82 features and 27 fields
## Geometry type: MULTIPOLYGON
## Dimension: XY
## Bounding box: xmin: 106.8977 ymin: -6.397357 xmax: 107.0438 ymax: -6.167029
## Geodetic CRS: WGS 84
## Reading layer `ADMINISTRASIDESA_AR_25K' from data source
## `C:\Users\sambe\Downloads\tugas visualisasi\data\[LapakGIS.com] KOTA BOGOR\ADMINISTRASIDESA_AR_25K.shp'
## using driver `ESRI Shapefile'
## Simple feature collection with 102 features and 27 fields
## Geometry type: MULTIPOLYGON
## Dimension: XY
## Bounding box: xmin: 106.7348 ymin: -6.679427 xmax: 106.8486 ymax: -6.508838
## Geodetic CRS: WGS 84
## Reading layer `ADMINISTRASIDESA_AR_25K' from data source
## `C:\Users\sambe\Downloads\tugas visualisasi\data\[LapakGIS.com] KOTA CIMAHI\ADMINISTRASIDESA_AR_25K.shp'
## using driver `ESRI Shapefile'
## Simple feature collection with 28 features and 27 fields
## Geometry type: MULTIPOLYGON
## Dimension: XY
## Bounding box: xmin: 107.5187 ymin: -6.906305 xmax: 107.5761 ymax: -6.8315
## Geodetic CRS: WGS 84
## Reading layer `ADMINISTRASIDESA_AR_25K' from data source
## `C:\Users\sambe\Downloads\tugas visualisasi\data\[LapakGIS.com] KOTA CIREBON\ADMINISTRASIDESA_AR_25K.shp'
## using driver `ESRI Shapefile'
## Simple feature collection with 40 features and 27 fields
## Geometry type: MULTIPOLYGON
## Dimension: XY
## Bounding box: xmin: 108.5198 ymin: -6.7961 xmax: 108.5901 ymax: -6.690883
## Geodetic CRS: WGS 84
## Reading layer `ADMINISTRASIDESA_AR_25K' from data source
## `C:\Users\sambe\Downloads\tugas visualisasi\data\[LapakGIS.com] KOTA DEPOK\ADMINISTRASIDESA_AR_25K.shp'
## using driver `ESRI Shapefile'
## Simple feature collection with 94 features and 27 fields
## Geometry type: MULTIPOLYGON
## Dimension: XY
## Bounding box: xmin: 106.7176 ymin: -6.463655 xmax: 106.9215 ymax: -6.314004
## Geodetic CRS: WGS 84
## Reading layer `ADMINISTRASIDESA_AR_25K' from data source
## `C:\Users\sambe\Downloads\tugas visualisasi\data\[LapakGIS.com] KOTA SUKABUMI\ADMINISTRASIDESA_AR_25K.shp'
## using driver `ESRI Shapefile'
## Simple feature collection with 48 features and 27 fields
## Geometry type: MULTIPOLYGON
## Dimension: XY
## Bounding box: xmin: 106.8717 ymin: -6.978919 xmax: 106.9602 ymax: -6.893456
## Geodetic CRS: WGS 84
## Reading layer `ADMINISTRASIDESA_AR_25K' from data source
## `C:\Users\sambe\Downloads\tugas visualisasi\data\[LapakGIS.com] KOTA TASIKMALAYA\ADMINISTRASIDESA_AR_25K.shp'
## using driver `ESRI Shapefile'
## Simple feature collection with 116 features and 27 fields
## Geometry type: MULTIPOLYGON
## Dimension: XY
## Bounding box: xmin: 108.1525 ymin: -7.450504 xmax: 108.3094 ymax: -7.269313
## Geodetic CRS: WGS 84
database shapefile didapat dari 27 file berbeda dalam working directory yang kita panggil dengan pattern yang sama,
Penggabungan Shapefile
## Spherical geometry (s2) switched off
data shapefile yang sebelumnya ada 27 file dari masing masing kota/kabupaten yang ada di Provinsi Jawa Barat, kita gabungkan kedalam 1 variabel yang sama,
Filter Provinsi Jawa Barat
Merge Desa menjadi Kabupaten
desa_jabar$WADMKK <- desa_jabar$WADMKK %>%
str_to_upper() %>%
str_trim() %>%
str_replace("^KABUPATEN ", "") %>%
str_replace("^KOTA ", "KOTA ")
jabar <- desa_jabar %>%
group_by(WADMKK) %>%
summarise(geometry = st_union(geometry))## although coordinates are longitude/latitude, st_union assumes that they are
## planar
## although coordinates are longitude/latitude, st_union assumes that they are
## planar
## although coordinates are longitude/latitude, st_union assumes that they are
## planar
## although coordinates are longitude/latitude, st_union assumes that they are
## planar
## although coordinates are longitude/latitude, st_union assumes that they are
## planar
## although coordinates are longitude/latitude, st_union assumes that they are
## planar
## although coordinates are longitude/latitude, st_union assumes that they are
## planar
## although coordinates are longitude/latitude, st_union assumes that they are
## planar
## although coordinates are longitude/latitude, st_union assumes that they are
## planar
## although coordinates are longitude/latitude, st_union assumes that they are
## planar
## although coordinates are longitude/latitude, st_union assumes that they are
## planar
## although coordinates are longitude/latitude, st_union assumes that they are
## planar
## although coordinates are longitude/latitude, st_union assumes that they are
## planar
## although coordinates are longitude/latitude, st_union assumes that they are
## planar
## although coordinates are longitude/latitude, st_union assumes that they are
## planar
## although coordinates are longitude/latitude, st_union assumes that they are
## planar
## although coordinates are longitude/latitude, st_union assumes that they are
## planar
## although coordinates are longitude/latitude, st_union assumes that they are
## planar
## although coordinates are longitude/latitude, st_union assumes that they are
## planar
## although coordinates are longitude/latitude, st_union assumes that they are
## planar
## although coordinates are longitude/latitude, st_union assumes that they are
## planar
## although coordinates are longitude/latitude, st_union assumes that they are
## planar
## although coordinates are longitude/latitude, st_union assumes that they are
## planar
## although coordinates are longitude/latitude, st_union assumes that they are
## planar
## although coordinates are longitude/latitude, st_union assumes that they are
## planar
## although coordinates are longitude/latitude, st_union assumes that they are
## planar
## although coordinates are longitude/latitude, st_union assumes that they are
## planar
## [1] "BANDUNG" "BANDUNG BARAT" "BEKASI" "BOGOR"
## [5] "CIAMIS" "CIANJUR" "CIMAHI" "CIREBON"
## [9] "GARUT" "INDRAMAYU" "KARAWANG" "KOTA BANDUNG"
## [13] "KOTA BANJAR" "KOTA BEKASI" "KOTA BOGOR" "KOTA CIREBON"
## [17] "KOTA DEPOK" "KOTA SUKABUMI" "KOTA TASIKMALAYA" "KUNINGAN"
## [21] "MAJALENGKA" "PANGANDARAN" "PURWAKARTA" "SUBANG"
## [25] "SUKABUMI" "SUMEDANG" "TASIKMALAYA"
data_stat$WADMKK[data_stat$WADMKK == "KOTA CIMAHI"] <- "CIMAHI"
peta_data <- jabar %>%
left_join(data_stat, by = "WADMKK")
sum(is.na(peta_data$kemiskinan))## [1] 0
hasil dari detect sum(is.na(peta_data$kemiskinan)) harus = 0, karena code tersebut bertujuan untuk mencari nilai N/a dari data,
## [1] 0
pal <- colorNumeric("YlOrRd", domain = peta_data$kemiskinan)
leaflet(peta_data) %>%
addTiles() %>%
addPolygons(
fillColor = ~pal(kemiskinan),
weight = 1,
color = "black",
fillOpacity = 0.7,
popup = ~paste0(
"<b>Kabupaten/Kota:</b> ", WADMKK,
"<br>Kemiskinan: ", kemiskinan, "%"
)
) %>%
addLegend(
pal = pal,
values = ~kemiskinan,
title = "Tingkat Kemiskinan"
)## [1] "BANDUNG" "BANDUNG BARAT" "BEKASI" "BOGOR"
## [5] "CIAMIS" "CIANJUR" "CIMAHI" "CIREBON"
## [9] "GARUT" "INDRAMAYU" "KARAWANG" "KOTA BANDUNG"
## [13] "KOTA BANJAR" "KOTA BEKASI" "KOTA BOGOR" "KOTA CIREBON"
## [17] "KOTA DEPOK" "KOTA SUKABUMI" "KOTA TASIKMALAYA" "KUNINGAN"
## [21] "MAJALENGKA" "PANGANDARAN" "PURWAKARTA" "SUBANG"
## [25] "SUKABUMI" "SUMEDANG" "TASIKMALAYA"
## [1] "BANDUNG" "BANDUNG BARAT" "BEKASI" "BOGOR"
## [5] "CIAMIS" "CIANJUR" "CIREBON" "GARUT"
## [9] "INDRAMAYU" "KARAWANG" "KUNINGAN" "MAJALENGKA"
## [13] "PANGANDARAN" "PURWAKARTA" "SUBANG" "SUKABUMI"
## [17] "SUMEDANG" "TASIKMALAYA" "KOTA BANDUNG" "KOTA BANJAR"
## [21] "KOTA BEKASI" "KOTA BOGOR" "CIMAHI" "KOTA CIREBON"
## [25] "KOTA DEPOK" "KOTA SUKABUMI" "KOTA TASIKMALAYA"
data_stat$WADMKK[data_stat$WADMKK == "KOTA CIMAHI"] <- "CIMAHI"
peta_data <- jabar %>%
left_join(data_stat, by = "WADMKK")
sum(is.na(peta_data$kemiskinan))## [1] 0
## character(0)
Interpretasi
Kode tersebut digunakan untuk menggabungkan data spasial wilayah Jawa Barat (jabar) dengan data statistik kemiskinan (data_stat) menggunakan fungsi left_join() berdasarkan variabel WADMKK (nama kabupaten/kota). Setelah penggabungan dilakukan, fungsi sum(is.na()) digunakan untuk memeriksa apakah terdapat nilai kemiskinan yang hilang akibat ketidaksesuaian nama wilayah pada kedua dataset.
Selanjutnya dibuat visualisasi peta interaktif menggunakan paket leaflet, di mana setiap wilayah kabupaten/kota diberi warna berdasarkan tingkat kemiskinan menggunakan skema warna YlOrRd. Semakin tinggi nilai kemiskinan, maka warna wilayah akan semakin mendekati merah. Peta juga dilengkapi dengan popup yang menampilkan nama wilayah dan persentase kemiskinan serta legenda untuk membantu interpretasi warna.
Pada bagian penanganan error, dilakukan pengecekan perbedaan nama wilayah antara kedua dataset. Ditemukan ketidaksesuaian penulisan “KOTA CIMAHI”, sehingga diubah menjadi “CIMAHI” agar sesuai dengan data spasial. Setelah itu proses penggabungan data dilakukan kembali dan dicek ulang apakah masih terdapat data kemiskinan yang belum terhubung dengan wilayah pada peta.