Visualisasi Data Visual

Data yang digunakan:

  1. Data wilayah administratif Kabupaten di Jawa Timur (file shp).
  2. Data Jumlah Penduduk Miskin menurut Kabupaten/Kota di Jawa Timur (Ribu Jiwa), 2022-2024 (file excel).

Keterangan Data: Sumber: - Tahun 2011 dan sebelumnya merupakan angka tahunan SUSENAS - Badan Pusat Statistik (Susenas Maret). Untuk mengukur kemiskinan, BPS menggunakan konsep kemampuan memenuhi kebutuhan dasar (basic needs approach). Konsep ini mengacu pada Handbook on Poverty and Inequality yang diterbitkan oleh Worldbank. Dengan pendekatan ini, kemiskinan dipandang sebagai ketidakmampuan dari sisi ekonomi untuk memenuhi kebutuhan dasar makanan dan bukan makanan yang diukur dari sisi pengeluaran. Penduduk dikategorikan sebagai penduduk miskin jika memiliki rata-rata pengeluaran per kapita per bulan di bawah garis kemiskinan.

library(sf)
library(tmap)
library(raster)
library(ggplot2)
library(openxlsx)
library(readxl)
library(terra)

Peta Tematik:

geo=st_read("C:/Zia/School/6th Semester/Business Intelligence/database/PROVINSI_JAWA_TIMUR-20250417/PROVINSI_JAWA_TIMUR.shp")
## Reading layer `PROVINSI_JAWA_TIMUR' from data source 
##   `C:\Zia\School\6th Semester\Business Intelligence\database\PROVINSI_JAWA_TIMUR-20250417\PROVINSI_JAWA_TIMUR.shp' 
##   using driver `ESRI Shapefile'
## Simple feature collection with 38 features and 5 fields
## Geometry type: MULTIPOLYGON
## Dimension:     XY
## Bounding box:  xmin: 110.8987 ymin: -8.78036 xmax: 116.2702 ymax: -5.048857
## Geodetic CRS:  WGS 84
geo
## Simple feature collection with 38 features and 5 fields
## Geometry type: MULTIPOLYGON
## Dimension:     XY
## Bounding box:  xmin: 110.8987 ymin: -8.78036 xmax: 116.2702 ymax: -5.048857
## Geodetic CRS:  WGS 84
## First 10 features:
##    KABKOTNO   PROVINSI      KABKOT PDRB17 PDRB16                       geometry
## 1        01 JAWA TIMUR     PACITAN   4.98   5.21 MULTIPOLYGON (((111.375 -8....
## 2        02 JAWA TIMUR    PONOROGO   5.10   5.29 MULTIPOLYGON (((111.6746 -7...
## 3        03 JAWA TIMUR  TRENGGALEK   5.02   5.00 MULTIPOLYGON (((111.6507 -8...
## 4        04 JAWA TIMUR TULUNGAGUNG   5.08   5.02 MULTIPOLYGON (((111.8639 -8...
## 5        05 JAWA TIMUR      BLITAR   5.07   5.08 MULTIPOLYGON (((112.2387 -8...
## 6        06 JAWA TIMUR      KEDIRI   4.90   5.02 MULTIPOLYGON (((112.1216 -7...
## 7        07 JAWA TIMUR      MALANG   5.43   5.30 MULTIPOLYGON (((112.7057 -8...
## 8        08 JAWA TIMUR    LUMAJANG   5.05   4.70 MULTIPOLYGON (((113.295 -7....
## 9        09 JAWA TIMUR      JEMBER   5.11   5.23 MULTIPOLYGON (((113.818 -8....
## 10       10 JAWA TIMUR  BANYUWANGI   5.45   5.38 MULTIPOLYGON (((114.2038 -8...

Interpretasi: Membaca data shapefile dengan menyimpannya dengan nama “geo”

ggplot(data = geo) +
  geom_sf(aes(fill=PDRB17)) +
  scale_fill_viridis_c(option="viridis",direction=-1)

Interpretasi: Berdasarkan peta yang divisualisasikan menggunakan ggplot2, yang menampilkan data PDRB17 (Produk Domestik Regional Bruto per Kabupaten/Kota di Jawa Timur) pada tahun 2017 dapat diinterpretasikan:

• Kabupaten/Kota dengan PDRB17 Tertinggi: Wilayah yang berwarna ungu gelap di bagian barat Jawa Timur kemungkinan adalah daerah yang memiliki PDRB17 tertinggi, yang mengindikasikan aktivitas ekonomi yang lebih tinggi di wilayah tersebut. Bisa jadi ini adalah wilayah dengan kota-kota besar atau pusat ekonomi yang lebih berkembang.

• Kabupaten/Kota dengan PDRB17 Terendah: Beberapa wilayah yang berwarna kuning terang atau hijau di bagian timur dan selatan Jawa Timur menunjukkan PDRB17 yang lebih rendah, yang dapat mengindikasikan adanya kabupaten/kota yang memiliki ekonomi yang lebih rendah atau lebih sedikit aktivitas ekonomi dibandingkan daerah lainnya.

• Sebaran PDRB di Jawa Timur: Peta ini memberikan gambaran umum bahwa terdapat ketimpangan ekonomi antara kabupaten/kota di Jawa Timur, di mana beberapa wilayah menunjukkan kekayaan yang lebih tinggi sementara yang lain lebih rendah.

## List of 136
##  $ line                            : list()
##   ..- attr(*, "class")= chr [1:2] "element_blank" "element"
##  $ rect                            : list()
##   ..- attr(*, "class")= chr [1:2] "element_blank" "element"
##  $ text                            :List of 11
##   ..$ family       : chr ""
##   ..$ face         : chr "plain"
##   ..$ colour       : chr "black"
##   ..$ size         : num 11
##   ..$ hjust        : num 0.5
##   ..$ vjust        : num 0.5
##   ..$ angle        : num 0
##   ..$ lineheight   : num 0.9
##   ..$ margin       : 'margin' num [1:4] 0points 0points 0points 0points
##   .. ..- attr(*, "unit")= int 8
##   ..$ debug        : logi FALSE
##   ..$ inherit.blank: logi TRUE
##   ..- attr(*, "class")= chr [1:2] "element_text" "element"
##  $ title                           : NULL
##  $ aspect.ratio                    : NULL
##  $ axis.title                      : list()
##   ..- attr(*, "class")= chr [1:2] "element_blank" "element"
##  $ axis.title.x                    : NULL
##  $ axis.title.x.top                : NULL
##  $ axis.title.x.bottom             : NULL
##  $ axis.title.y                    : NULL
##  $ axis.title.y.left               : NULL
##  $ axis.title.y.right              : NULL
##  $ axis.text                       : list()
##   ..- attr(*, "class")= chr [1:2] "element_blank" "element"
##  $ axis.text.x                     : NULL
##  $ axis.text.x.top                 : NULL
##  $ axis.text.x.bottom              : NULL
##  $ axis.text.y                     : NULL
##  $ axis.text.y.left                : NULL
##  $ axis.text.y.right               : NULL
##  $ axis.text.theta                 : NULL
##  $ axis.text.r                     : NULL
##  $ axis.ticks                      : NULL
##  $ axis.ticks.x                    : NULL
##  $ axis.ticks.x.top                : NULL
##  $ axis.ticks.x.bottom             : NULL
##  $ axis.ticks.y                    : NULL
##  $ axis.ticks.y.left               : NULL
##  $ axis.ticks.y.right              : NULL
##  $ axis.ticks.theta                : NULL
##  $ axis.ticks.r                    : NULL
##  $ axis.minor.ticks.x.top          : NULL
##  $ axis.minor.ticks.x.bottom       : NULL
##  $ axis.minor.ticks.y.left         : NULL
##  $ axis.minor.ticks.y.right        : NULL
##  $ axis.minor.ticks.theta          : NULL
##  $ axis.minor.ticks.r              : NULL
##  $ axis.ticks.length               : 'simpleUnit' num 0points
##   ..- attr(*, "unit")= int 8
##  $ axis.ticks.length.x             : NULL
##  $ axis.ticks.length.x.top         : NULL
##  $ axis.ticks.length.x.bottom      : NULL
##  $ axis.ticks.length.y             : NULL
##  $ axis.ticks.length.y.left        : NULL
##  $ axis.ticks.length.y.right       : NULL
##  $ axis.ticks.length.theta         : NULL
##  $ axis.ticks.length.r             : NULL
##  $ axis.minor.ticks.length         : 'simpleUnit' num 0points
##   ..- attr(*, "unit")= int 8
##  $ axis.minor.ticks.length.x       : NULL
##  $ axis.minor.ticks.length.x.top   : NULL
##  $ axis.minor.ticks.length.x.bottom: NULL
##  $ axis.minor.ticks.length.y       : NULL
##  $ axis.minor.ticks.length.y.left  : NULL
##  $ axis.minor.ticks.length.y.right : NULL
##  $ axis.minor.ticks.length.theta   : NULL
##  $ axis.minor.ticks.length.r       : NULL
##  $ axis.line                       : NULL
##  $ axis.line.x                     : NULL
##  $ axis.line.x.top                 : NULL
##  $ axis.line.x.bottom              : NULL
##  $ axis.line.y                     : NULL
##  $ axis.line.y.left                : NULL
##  $ axis.line.y.right               : NULL
##  $ axis.line.theta                 : NULL
##  $ axis.line.r                     : NULL
##  $ legend.background               : NULL
##  $ legend.margin                   : NULL
##  $ legend.spacing                  : NULL
##  $ legend.spacing.x                : NULL
##  $ legend.spacing.y                : NULL
##  $ legend.key                      : NULL
##  $ legend.key.size                 : 'simpleUnit' num 1.2lines
##   ..- attr(*, "unit")= int 3
##  $ legend.key.height               : NULL
##  $ legend.key.width                : NULL
##  $ legend.key.spacing              : 'simpleUnit' num 5.5points
##   ..- attr(*, "unit")= int 8
##  $ legend.key.spacing.x            : NULL
##  $ legend.key.spacing.y            : NULL
##  $ legend.frame                    : NULL
##  $ legend.ticks                    : NULL
##  $ legend.ticks.length             : 'rel' num 0.2
##  $ legend.axis.line                : NULL
##  $ legend.text                     :List of 11
##   ..$ family       : NULL
##   ..$ face         : NULL
##   ..$ colour       : NULL
##   ..$ size         : 'rel' num 0.8
##   ..$ hjust        : NULL
##   ..$ vjust        : NULL
##   ..$ angle        : NULL
##   ..$ lineheight   : NULL
##   ..$ margin       : NULL
##   ..$ debug        : NULL
##   ..$ inherit.blank: logi TRUE
##   ..- attr(*, "class")= chr [1:2] "element_text" "element"
##  $ legend.text.position            : NULL
##  $ legend.title                    :List of 11
##   ..$ family       : NULL
##   ..$ face         : NULL
##   ..$ colour       : NULL
##   ..$ size         : NULL
##   ..$ hjust        : num 0
##   ..$ vjust        : NULL
##   ..$ angle        : NULL
##   ..$ lineheight   : NULL
##   ..$ margin       : NULL
##   ..$ debug        : NULL
##   ..$ inherit.blank: logi TRUE
##   ..- attr(*, "class")= chr [1:2] "element_text" "element"
##  $ legend.title.position           : NULL
##  $ legend.position                 : chr "right"
##  $ legend.position.inside          : NULL
##  $ legend.direction                : NULL
##  $ legend.byrow                    : NULL
##  $ legend.justification            : NULL
##  $ legend.justification.top        : NULL
##  $ legend.justification.bottom     : NULL
##  $ legend.justification.left       : NULL
##  $ legend.justification.right      : NULL
##  $ legend.justification.inside     : NULL
##  $ legend.location                 : NULL
##  $ legend.box                      : NULL
##  $ legend.box.just                 : NULL
##  $ legend.box.margin               : NULL
##  $ legend.box.background           : NULL
##  $ legend.box.spacing              : NULL
##   [list output truncated]
##  - attr(*, "class")= chr [1:2] "theme" "gg"
##  - attr(*, "complete")= logi TRUE
##  - attr(*, "validate")= logi TRUE
data<-read_excel("C:/Zia/School/6th Semester/Business Intelligence/database/Jumlah Penduduk Miskin menurut Kabupaten_Kota di Jawa Timur, 2022-2024.xlsx")
data
## # A tibble: 39 × 4
##    `Kab/Kota`  `2022` `2023` `2024`
##    <chr>        <dbl>  <dbl>  <dbl>
##  1 Pacitan       76.9   76.2   73.0
##  2 Ponorogo      81.8   83.7   80.0
##  3 Trenggalek    76.8   74.6   73.8
##  4 Tulungagung   70.5   68.8   66.4
##  5 Blitar       102.   102.    95.9
##  6 Kediri       169.   171.   159. 
##  7 Malang       253.   251.   240. 
##  8 Lumajang      95.0   93.8   91.0
##  9 Jember       233.   236.   225. 
## 10 Banyuwangi   122.   120.   107. 
## # ℹ 29 more rows
geo[,7]=data[,4]

Interpretasi: Menambahkan kolom baru pada data geo, yaitu kolom ke-7 dengan data penduduk miskin di Jawa Timur tahun 2024 yaitu kolom ke-4.

plot(geo[,7])

Interpretasi: Berdasarkan peta yang divisualisasikan menggunakan ggplot2, yang menggambarkan data jumlah penduduk miskin di Jawa Timur pada tahun 2024, berikut adalah interpretasi dari visualisasi plot tersebut:

• Kabupaten/Kota dengan Penduduk Miskin Paling Sedikit: Wilayah yang berwarna biru gelap di peta menunjukkan daerah-daerah yang memiliki jumlah penduduk miskin yang lebih rendah. Ini menunjukkan wilayah dengan tingkat kemakmuran yang lebih baik, kemungkinan besar adanya akses lebih baik terhadap pendidikan, pekerjaan, dan infrastruktur ekonomi.

• Kabupaten/Kota dengan Penduduk Miskin Paling Banyak: Wilayah yang berwarna kuning terang menunjukkan kabupaten/kota dengan jumlah penduduk miskin yang lebih banyak. Hal ini menunjukkan ketimpangan sosial dan ekonomi di wilayah tersebut. Wilayah ini mungkin memiliki masalah besar terkait pengangguran, akses terbatas terhadap layanan pendidikan dan kesehatan, atau ketergantungan pada sektor ekonomi yang kurang berkembang.