Siapkan terlebih dahulu package yang akan digunakan. Package sf digunakan untuk membaca dan mengelola data spasial. Package readxl untuk membaca file dengan formal xlsx. Package dplyr untuk manipulasi data frame. Selain itu, untuk membuat visualisasi plot digunakan package ggplot2.
library(sf)
## Linking to GEOS 3.9.1, GDAL 3.4.3, PROJ 7.2.1; sf_use_s2() is TRUE
library(readxl)
## Warning: package 'readxl' was built under R version 4.2.2
library(dplyr)
## Warning: package 'dplyr' was built under R version 4.2.2
##
## 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
library(ggplot2)
## Warning: package 'ggplot2' was built under R version 4.2.2
##Pembacaan Data Membaca data shp Indonesia.
library(sf)
mapIndonesia <- st_read("idn_adm_bps_adm4_20200401_shp/idn_admbnda_adm4_ID3_bps_20200401.shp", quiet=TRUE)
glimpse(mapIndonesia)
## Rows: 25,376
## Columns: 19
## $ ADM4_EN <chr> "Abadijaya", "Abar-Abir", "Adan-Adan", "Adiarsa", "Adiarsa …
## $ ADM4_PCODE <chr> "ID3276030009", "ID3525120017", "ID3506100021", "ID33031410…
## $ ADM4_REF <chr> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
## $ ADM4ALT1EN <chr> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
## $ ADM4ALT2EN <chr> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
## $ ADM3_EN <chr> "Sukma Jaya", "Bungah", "Gurah", "Kertanegara", "Karawang B…
## $ ADM3_PCODE <chr> "ID3276030", "ID3525120", "ID3506100", "ID3303141", "ID3215…
## $ ADM2_EN <chr> "Kota Depok", "Gresik", "Kediri", "Purbalingga", "Karawang"…
## $ ADM2_PCODE <chr> "ID3276", "ID3525", "ID3506", "ID3303", "ID3215", "ID3215",…
## $ ADM1_EN <chr> "Jawa Barat", "Jawa Timur", "Jawa Timur", "Jawa Tengah", "J…
## $ ADM1_PCODE <chr> "ID32", "ID35", "ID35", "ID33", "ID32", "ID32", "ID32", "ID…
## $ ADM0_EN <chr> "Indonesia", "Indonesia", "Indonesia", "Indonesia", "Indone…
## $ ADM0_PCODE <chr> "ID", "ID", "ID", "ID", "ID", "ID", "ID", "ID", "ID", "ID",…
## $ date <date> 2019-12-20, 2019-12-20, 2019-12-20, 2019-12-20, 2019-12-20…
## $ validOn <date> 2020-04-01, 2020-04-01, 2020-04-01, 2020-04-01, 2020-04-01…
## $ validTo <date> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA…
## $ Shape_Leng <dbl> 0.06946083, 0.04327490, 0.15202196, 0.09345928, 0.05654664,…
## $ Shape_Area <dbl> 2.086679e-04, 8.528197e-05, 3.399555e-04, 2.672890e-04, 1.5…
## $ geometry <MULTIPOLYGON [°]> MULTIPOLYGON (((106.8569 -6..., MULTIPOLYGON (…
Membaca data demografi Kab Tuban.
dataTuban <- read.csv("demografi tuban.csv")
dataTuban
## Kabupaten Kecamatan KodeBPS KodeKemendagri JumlahPenduduk LuasWilayah
## 1 Tuban Bancar ID3523190 35.23.04 60210 127.20
## 2 Tuban Bangilan ID3523020 35.23.03 49901 89.28
## 3 Tuban Grabagan ID3523081 35.23.20 40727 93.76
## 4 Tuban Jatirogo ID3523180 35.23.02 57942 122.61
## 5 Tuban Jenu ID3523140 35.23.12 58420 89.54
## 6 Tuban Kenduruan ID3523010 35.23.01 29777 96.39
## 7 Tuban Kerek ID3523160 35.23.08 69041 155.44
## 8 Tuban Merakurak ID3523150 35.23.13 61301 104.40
## 9 Tuban Montong ID3523050 35.23.10 55125 157.92
## 10 Tuban Palang ID3523110 35.23.18 88810 87.91
## 11 Tuban Parengan ID3523060 35.23.09 56426 129.62
## 12 Tuban Plumpang ID3523090 35.23.17 81970 90.25
## 13 Tuban Rengel ID3523080 35.23.14 61480 64.60
## 14 Tuban Semanding ID3523120 35.23.15 117128 133.06
## 15 Tuban Senori ID3523030 35.23.05 43179 99.63
## 16 Tuban Singgahan ID3523040 35.23.07 43615 68.43
## 17 Tuban Soko ID3523070 35.23.11 88551 96.05
## 18 Tuban Tambakboyo ID3523170 35.23.06 42228 76.83
## 19 Tuban Tuban ID3523130 35.23.16 87521 20.74
## 20 Tuban Widang ID3523100 35.23.19 51284 101.46
## KepadatanPenduduk
## 1 473.35
## 2 558.93
## 3 434.38
## 4 472.57
## 5 652.45
## 6 308.92
## 7 444.16
## 8 587.17
## 9 349.07
## 10 1010.24
## 11 435.32
## 12 908.25
## 13 951.70
## 14 880.26
## 15 433.39
## 16 637.37
## 17 921.93
## 18 549.63
## 19 4219.91
## 20 505.46
##Menggabungkan Data Selanjutnya gabungkan kedua data tersebut
menjadi satu. Karena hanya ingin menampilkan peta Kabupaten Bandung,
maka digunakan fungsi inner_join() berdasarkan kolom
ADM3_PCODE dari mapIndonesia dan kolom
KodeBPS dari dataKabTuban.
mapTuban<- mapIndonesia %>%
inner_join(dataTuban, by = c("ADM3_PCODE" = "KodeBPS"))
mapTuban
## Simple feature collection with 328 features and 24 fields
## Geometry type: MULTIPOLYGON
## Dimension: XY
## Bounding box: xmin: 111.5701 ymin: -7.165087 xmax: 112.222 ymax: -6.753713
## Geodetic CRS: WGS 84
## First 10 features:
## ADM4_EN ADM4_PCODE ADM4_REF ADM4ALT1EN ADM4ALT2EN ADM3_EN ADM3_PCODE
## 1 Bader ID3523180010 <NA> <NA> <NA> Jatirogo ID3523180
## 2 Bancar ID3523190024 <NA> <NA> <NA> Bancar ID3523190
## 3 Bandungrejo ID3523090008 <NA> <NA> <NA> Plumpang ID3523090
## 4 Bangilan ID3523020008 <NA> <NA> <NA> Bangilan ID3523020
## 5 Bangunrejo ID3523070011 <NA> <NA> <NA> Soko ID3523070
## 6 Banjar ID3523100007 <NA> <NA> <NA> Widang ID3523100
## 7 Banjaragung ID3523080011 <NA> <NA> <NA> Rengel ID3523080
## 8 Banjararum ID3523080009 <NA> <NA> <NA> Rengel ID3523080
## 9 Banjarejo ID3523190019 <NA> <NA> <NA> Bancar ID3523190
## 10 Banjarworo ID3523020011 <NA> <NA> <NA> Bangilan ID3523020
## ADM2_EN ADM2_PCODE ADM1_EN ADM1_PCODE ADM0_EN ADM0_PCODE date
## 1 Tuban ID3523 Jawa Timur ID35 Indonesia ID 2019-12-20
## 2 Tuban ID3523 Jawa Timur ID35 Indonesia ID 2019-12-20
## 3 Tuban ID3523 Jawa Timur ID35 Indonesia ID 2019-12-20
## 4 Tuban ID3523 Jawa Timur ID35 Indonesia ID 2019-12-20
## 5 Tuban ID3523 Jawa Timur ID35 Indonesia ID 2019-12-20
## 6 Tuban ID3523 Jawa Timur ID35 Indonesia ID 2019-12-20
## 7 Tuban ID3523 Jawa Timur ID35 Indonesia ID 2019-12-20
## 8 Tuban ID3523 Jawa Timur ID35 Indonesia ID 2019-12-20
## 9 Tuban ID3523 Jawa Timur ID35 Indonesia ID 2019-12-20
## 10 Tuban ID3523 Jawa Timur ID35 Indonesia ID 2019-12-20
## validOn validTo Shape_Leng Shape_Area Kabupaten Kecamatan
## 1 2020-04-01 <NA> 0.09123754 0.0003117804 Tuban Jatirogo
## 2 2020-04-01 <NA> 0.09308702 0.0004199402 Tuban Bancar
## 3 2020-04-01 <NA> 0.11753296 0.0003065137 Tuban Plumpang
## 4 2020-04-01 <NA> 0.09788405 0.0003695756 Tuban Bangilan
## 5 2020-04-01 <NA> 0.10165092 0.0003548760 Tuban Soko
## 6 2020-04-01 <NA> 0.07947601 0.0003063174 Tuban Widang
## 7 2020-04-01 <NA> 0.06812644 0.0002450451 Tuban Rengel
## 8 2020-04-01 <NA> 0.07314279 0.0001963245 Tuban Rengel
## 9 2020-04-01 <NA> 0.07306125 0.0001515168 Tuban Bancar
## 10 2020-04-01 <NA> 0.12865087 0.0006609024 Tuban Bangilan
## KodeKemendagri JumlahPenduduk LuasWilayah KepadatanPenduduk
## 1 35.23.02 57942 122.61 472.57
## 2 35.23.04 60210 127.20 473.35
## 3 35.23.17 81970 90.25 908.25
## 4 35.23.03 49901 89.28 558.93
## 5 35.23.11 88551 96.05 921.93
## 6 35.23.19 51284 101.46 505.46
## 7 35.23.14 61480 64.60 951.70
## 8 35.23.14 61480 64.60 951.70
## 9 35.23.04 60210 127.20 473.35
## 10 35.23.03 49901 89.28 558.93
## geometry
## 1 MULTIPOLYGON (((111.6709 -6...
## 2 MULTIPOLYGON (((111.7946 -6...
## 3 MULTIPOLYGON (((112.1134 -7...
## 4 MULTIPOLYGON (((111.7135 -6...
## 5 MULTIPOLYGON (((111.9507 -7...
## 6 MULTIPOLYGON (((112.1841 -7...
## 7 MULTIPOLYGON (((112.0554 -7...
## 8 MULTIPOLYGON (((112.0557 -7...
## 9 MULTIPOLYGON (((111.7306 -6...
## 10 MULTIPOLYGON (((111.7397 -6...
##Visualiasi Data Plot Jumlah Penduduk Kab Tuban.
jumlah <- ggplot() +
geom_sf(data=mapTuban, aes(fill=JumlahPenduduk))
jumlah
Plot Kepadatan Penduduk Kab Tuban.
kepadatan <- ggplot() +
geom_sf(data=mapTuban, aes(fill=KepadatanPenduduk))
kepadatan
Atur dan sesuaikan tampilan visualisasi plot Jumlah Penduduk sesuai yang diinginkan.
colorPallete = RColorBrewer::brewer.pal(5,"YlGnBu")
yBreak = seq(106.72, 106.86, by=0.04)
jumlah + scale_fill_gradientn(colors = colorPallete,
name = "Jumlah Penduduk") +
labs(title = "Jumlah Penduduk Kabupaten Tuban") +
theme(legend.text = element_text(size=7),
legend.title = element_text(size=7),
axis.text.x = element_text(size = 7),
axis.text.y = element_text(size = 7),
title = element_text(size=12, face='bold')) +
scale_x_continuous(breaks = yBreak)
Atur dan sesuaikan plot visualisasi Kepadatan Penduduk sesuai yang diinginkan
colorPallete = RColorBrewer::brewer.pal(5,"YlGnBu")
yBreak = seq(106.72, 106.86, by=0.04)
kepadatan + scale_fill_gradientn(colors = colorPallete,
name = "Kepadatan Penduduk") +
labs(title = "Kepadatan Penduduk Kabupaten Tuban") +
theme(legend.text = element_text(size=7),
legend.title = element_text(size=7),
axis.text.x = element_text(size = 7),
axis.text.y = element_text(size = 7),
title = element_text(size=12, face='bold')) +
scale_x_continuous(breaks = yBreak)
Berdasarkan hasil pemngolahan data area Kabupaten Tuban, diperoleh peta choropleth yang menggambarkan masalah kependudukan wilayah Kabupaten Tuban. Melalui peta choropleth diketahui semakin banyak ataupun padat penduduk di suatu kecamatan di Kabupaten Tuban, makan akan semakin biru warna area tersebut. Oleh karena itu, jumlah penduduk paling banyak diketahui berada pada Kecamatan Semanding dengan 117.128 penduduk, namun hal ini berbeda dengan dengan kepadatan penduduk terbanyak pada Kabupaten Tuban terletak di Kecamatan Tuban dengan 4219.91 jiwa/km2.