Untuk membuat sebuah peta demografi atau sebaran menggunakan R, terlebih dahulu dapat menginstall packgaes sf, tigris, ggplot2, dplyr, dan tidyverse dengan menggunakan fungsi install.packages(nama packages)
#install.packages("sf")
#install.packages("tigris")
#install.packages("ggplot2")
#install.packages("dplyr")
Setelah mengintal packages, kemudian aktifkan packages dengan fugnsi library(nama packages)
library(sf)
## Linking to GEOS 3.9.1, GDAL 3.2.1, PROJ 7.2.1
library(tigris)
## To enable
## caching of data, set `options(tigris_use_cache = TRUE)` in your R script or .Rprofile.
library(ggplot2)
library(dplyr)
##
## 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(tidyverse)
## -- Attaching packages --------------------------------------- tidyverse 1.3.1 --
## v tibble 3.1.4 v purrr 0.3.4
## v tidyr 1.1.3 v stringr 1.4.0
## v readr 2.0.1 v forcats 0.5.1
## -- Conflicts ------------------------------------------ tidyverse_conflicts() --
## x dplyr::filter() masks stats::filter()
## x dplyr::lag() masks stats::lag()
Data yang akan digunakan dalam membuat peta adalah data SHP yang bisa didownload di https://drive.google.com/file/d/1uWpPwzbbPAxOC-VB1m3wWj9V6v7d9uGr/view untuk data Kabupaten di seluruh Indonesia dan download di https://drive.google.com/file/d/1Y2SVClHilmU-rCOcZVjzHNzmrDSwMFsy/view untuk data seluruh Kecamatan di Indonesia.
Untuk memasukkan Data SHP, bisa dilakukan dengan melakukan akses pada file SHP yang telah kita download, dan dipastikan data SHP berada dalam satu working directory yang sama dengan program R yang sedang dijalankan.
kab.indonesia <- "C:/01. Data/3. Study/2. Task/STA581 Statistika dan Sains Data/Membuat Peta Majalengka/idn_admbnda_adm3_bps_20200401.shp"
Untuk mengetahui seperti apa data yang ada di dalam SHP, bisa menggunakan fugnsi glimpse dari packages dplyr
glimpse(kab.indonesia)
## chr "C:/01. Data/3. Study/2. Task/STA581 Statistika dan Sains Data/Membuat Peta Majalengka/idn_admbnda_adm3_bps_20200401.shp"
Kita perlu mengubahnya menjadi melalui fungsi st_read dari Package sf
data.kab <- st_read(kab.indonesia)
## Reading layer `idn_admbnda_adm3_bps_20200401' from data source
## `C:\01. Data\3. Study\2. Task\STA581 Statistika dan Sains Data\Membuat Peta Majalengka\idn_admbnda_adm3_bps_20200401.shp'
## using driver `ESRI Shapefile'
## Simple feature collection with 7069 features and 16 fields
## Geometry type: MULTIPOLYGON
## Dimension: XY
## Bounding box: xmin: 95.01079 ymin: -11.00762 xmax: 141.0194 ymax: 6.07693
## Geodetic CRS: WGS 84
Dapat dilihat, sudah berubah
glimpse(data.kab)
## Rows: 7,069
## Columns: 17
## $ Shape_Leng <dbl> 0.2798656, 0.7514001, 0.6900061, 0.6483629, 0.2437073, 1.35~
## $ Shape_Area <dbl> 0.003107633, 0.016925540, 0.024636382, 0.010761277, 0.00116~
## $ ADM3_EN <chr> "2 X 11 Enam Lingkung", "2 X 11 Kayu Tanam", "Abab", "Abang~
## $ ADM3_PCODE <chr> "ID1306050", "ID1306052", "ID1612030", "ID5107050", "ID7471~
## $ ADM3_REF <chr> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,~
## $ ADM3ALT1EN <chr> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,~
## $ ADM3ALT2EN <chr> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,~
## $ ADM2_EN <chr> "Padang Pariaman", "Padang Pariaman", "Penukal Abab Lematan~
## $ ADM2_PCODE <chr> "ID1306", "ID1306", "ID1612", "ID5107", "ID7471", "ID9432",~
## $ ADM1_EN <chr> "Sumatera Barat", "Sumatera Barat", "Sumatera Selatan", "Ba~
## $ ADM1_PCODE <chr> "ID13", "ID13", "ID16", "ID51", "ID74", "ID94", "ID94", "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~
## $ geometry <MULTIPOLYGON [°]> MULTIPOLYGON (((100.2811 -0..., MULTIPOLYGON (~
Pada tahap ini, saya membuat subuah data format CSV yang isinya hanya informasi untuk Kabupaten Majalalengka, kemudian saya lengkapi dengan data jumlah sekolah jenjang SD dan MI yan ada di Kabupaten Majalengka. Data jumlah sekolah diakses di https://referensi.data.kemdikbud.go.id/index11_sd.php?kode=021600&level=2
MJL.Jabar <- read.csv("C:/01. Data/3. Study/2. Task/STA581 Statistika dan Sains Data/Membuat Peta Majalengka/KabMJL.csv",header=TRUE,sep=";")
MJL.Jabar
## Shape_Leng.N.19.11 Shape_Area.N.19.11 ADM3_EN.C.50 KodeBPS validTo.D
## 1 0,38154988821 0,00667980539 Argapura ID3210050 NA
## 2 0,29177231557 0,00272358670 Banjaran ID3210041 NA
## 3 0,46819094275 0,00542817840 Bantarujeg ID3210020 NA
## 4 0,33215508401 0,00258578572 Cigasong ID3210080 NA
## 5 0,32345228855 0,00315057010 Cikijing ID3210030 NA
## 6 0,38355718368 0,00340162443 Cingambul ID3210031 NA
## 7 0,34532509757 0,00260850744 Dawuan ID3210150 NA
## 8 0,46881555818 0,00704283577 Jatitujuh ID3210190 NA
## 9 0,39500789605 0,00328623779 Jatiwangi ID3210140 NA
## 10 0,30225421203 0,00183894236 Kadipaten ID3210170 NA
## 11 0,32632845241 0,00285538497 Kasokandel ID3210151 NA
## 12 0,95941851771 0,01610466224 Kertajati ID3210180 NA
## 13 0,49621993574 0,00677771907 Lemahsugih ID3210010 NA
## 14 0,26660386321 0,00231219275 Leuwimunding ID3210120 NA
## 15 0,55624848070 0,00597864232 Ligung ID3210200 NA
## 16 0,50324259254 0,00510547068 Maja ID3210060 NA
## 17 0,41417178364 0,00527311930 Majalengka ID3210070 NA
## 18 0,42785428286 0,00378357058 Malausma ID3210021 NA
## 19 0,38500613286 0,00317179392 Palasah ID3210130 NA
## 20 0,22288777217 0,00179904175 Panyingkiran ID3210160 NA
## 21 0,34056969038 0,00302198533 Rajagaluh ID3210100 NA
## 22 0,26607855429 0,00235826116 Sindang ID3210091 NA
## 23 0,41754420128 0,00347641397 Sindangwangi ID3210110 NA
## 24 0,35873397061 0,00240133780 Sukahaji ID3210090 NA
## 25 0,31535764067 0,00302128500 Sumberjaya ID3210210 NA
## 26 0,42893220115 0,00348611019 Talaga ID3210040 NA
## JumlahSekolah
## 1 22
## 2 24
## 3 33
## 4 17
## 5 37
## 6 27
## 7 23
## 8 30
## 9 47
## 10 19
## 11 17
## 12 36
## 13 48
## 14 31
## 15 35
## 16 38
## 17 37
## 18 32
## 19 26
## 20 16
## 21 30
## 22 12
## 23 21
## 24 24
## 25 30
## 26 38
head(MJL.Jabar)
## Shape_Leng.N.19.11 Shape_Area.N.19.11 ADM3_EN.C.50 KodeBPS validTo.D
## 1 0,38154988821 0,00667980539 Argapura ID3210050 NA
## 2 0,29177231557 0,00272358670 Banjaran ID3210041 NA
## 3 0,46819094275 0,00542817840 Bantarujeg ID3210020 NA
## 4 0,33215508401 0,00258578572 Cigasong ID3210080 NA
## 5 0,32345228855 0,00315057010 Cikijing ID3210030 NA
## 6 0,38355718368 0,00340162443 Cingambul ID3210031 NA
## JumlahSekolah
## 1 22
## 2 24
## 3 33
## 4 17
## 5 37
## 6 27
Pada tahap ini adalah menggabungkan antara data SHP Kecamatan se Indonesia dengan data CSV Kecamatan yang ada di Kabupaten Majalengka
mapMJL <- data.kab %>%
inner_join(MJL.Jabar, by = c("ADM3_PCODE" = "KodeBPS"))
mapMJL
## Simple feature collection with 26 features and 21 fields
## Geometry type: MULTIPOLYGON
## Dimension: XY
## Bounding box: xmin: 108.0422 ymin: -7.074581 xmax: 108.4133 ymax: -6.540739
## Geodetic CRS: WGS 84
## First 10 features:
## Shape_Leng Shape_Area ADM3_EN ADM3_PCODE ADM3_REF ADM3ALT1EN ADM3ALT2EN
## 1 0.3815499 0.006679805 Argapura ID3210050 <NA> <NA> <NA>
## 2 0.2917723 0.002723587 Banjaran ID3210041 <NA> <NA> <NA>
## 3 0.4681909 0.005428178 Bantarujeg ID3210020 <NA> <NA> <NA>
## 4 0.3321551 0.002585786 Cigasong ID3210080 <NA> <NA> <NA>
## 5 0.3234523 0.003150570 Cikijing ID3210030 <NA> <NA> <NA>
## 6 0.3835572 0.003401624 Cingambul ID3210031 <NA> <NA> <NA>
## 7 0.3453251 0.002608507 Dawuan ID3210150 <NA> <NA> <NA>
## 8 0.4688156 0.007042836 Jatitujuh ID3210190 <NA> <NA> <NA>
## 9 0.3950079 0.003286238 Jatiwangi ID3210140 <NA> <NA> <NA>
## 10 0.3022542 0.001838942 Kadipaten ID3210170 <NA> <NA> <NA>
## ADM2_EN ADM2_PCODE ADM1_EN ADM1_PCODE ADM0_EN ADM0_PCODE date
## 1 Majalengka ID3210 Jawa Barat ID32 Indonesia ID 2019-12-20
## 2 Majalengka ID3210 Jawa Barat ID32 Indonesia ID 2019-12-20
## 3 Majalengka ID3210 Jawa Barat ID32 Indonesia ID 2019-12-20
## 4 Majalengka ID3210 Jawa Barat ID32 Indonesia ID 2019-12-20
## 5 Majalengka ID3210 Jawa Barat ID32 Indonesia ID 2019-12-20
## 6 Majalengka ID3210 Jawa Barat ID32 Indonesia ID 2019-12-20
## 7 Majalengka ID3210 Jawa Barat ID32 Indonesia ID 2019-12-20
## 8 Majalengka ID3210 Jawa Barat ID32 Indonesia ID 2019-12-20
## 9 Majalengka ID3210 Jawa Barat ID32 Indonesia ID 2019-12-20
## 10 Majalengka ID3210 Jawa Barat ID32 Indonesia ID 2019-12-20
## validOn validTo Shape_Leng.N.19.11 Shape_Area.N.19.11 ADM3_EN.C.50
## 1 2020-04-01 <NA> 0,38154988821 0,00667980539 Argapura
## 2 2020-04-01 <NA> 0,29177231557 0,00272358670 Banjaran
## 3 2020-04-01 <NA> 0,46819094275 0,00542817840 Bantarujeg
## 4 2020-04-01 <NA> 0,33215508401 0,00258578572 Cigasong
## 5 2020-04-01 <NA> 0,32345228855 0,00315057010 Cikijing
## 6 2020-04-01 <NA> 0,38355718368 0,00340162443 Cingambul
## 7 2020-04-01 <NA> 0,34532509757 0,00260850744 Dawuan
## 8 2020-04-01 <NA> 0,46881555818 0,00704283577 Jatitujuh
## 9 2020-04-01 <NA> 0,39500789605 0,00328623779 Jatiwangi
## 10 2020-04-01 <NA> 0,30225421203 0,00183894236 Kadipaten
## validTo.D JumlahSekolah geometry
## 1 NA 22 MULTIPOLYGON (((108.3237 -6...
## 2 NA 24 MULTIPOLYGON (((108.3249 -6...
## 3 NA 33 MULTIPOLYGON (((108.2812 -6...
## 4 NA 17 MULTIPOLYGON (((108.2628 -6...
## 5 NA 37 MULTIPOLYGON (((108.3855 -6...
## 6 NA 27 MULTIPOLYGON (((108.3292 -7...
## 7 NA 23 MULTIPOLYGON (((108.2263 -6...
## 8 NA 30 MULTIPOLYGON (((108.2101 -6...
## 9 NA 47 MULTIPOLYGON (((108.24 -6.6...
## 10 NA 19 MULTIPOLYGON (((108.1819 -6...
head(mapMJL)
## Simple feature collection with 6 features and 21 fields
## Geometry type: MULTIPOLYGON
## Dimension: XY
## Bounding box: xmin: 108.2018 ymin: -7.073493 xmax: 108.4072 ymax: -6.783106
## Geodetic CRS: WGS 84
## Shape_Leng Shape_Area ADM3_EN ADM3_PCODE ADM3_REF ADM3ALT1EN ADM3ALT2EN
## 1 0.3815499 0.006679805 Argapura ID3210050 <NA> <NA> <NA>
## 2 0.2917723 0.002723587 Banjaran ID3210041 <NA> <NA> <NA>
## 3 0.4681909 0.005428178 Bantarujeg ID3210020 <NA> <NA> <NA>
## 4 0.3321551 0.002585786 Cigasong ID3210080 <NA> <NA> <NA>
## 5 0.3234523 0.003150570 Cikijing ID3210030 <NA> <NA> <NA>
## 6 0.3835572 0.003401624 Cingambul ID3210031 <NA> <NA> <NA>
## ADM2_EN ADM2_PCODE ADM1_EN ADM1_PCODE ADM0_EN ADM0_PCODE date
## 1 Majalengka ID3210 Jawa Barat ID32 Indonesia ID 2019-12-20
## 2 Majalengka ID3210 Jawa Barat ID32 Indonesia ID 2019-12-20
## 3 Majalengka ID3210 Jawa Barat ID32 Indonesia ID 2019-12-20
## 4 Majalengka ID3210 Jawa Barat ID32 Indonesia ID 2019-12-20
## 5 Majalengka ID3210 Jawa Barat ID32 Indonesia ID 2019-12-20
## 6 Majalengka ID3210 Jawa Barat ID32 Indonesia ID 2019-12-20
## validOn validTo Shape_Leng.N.19.11 Shape_Area.N.19.11 ADM3_EN.C.50
## 1 2020-04-01 <NA> 0,38154988821 0,00667980539 Argapura
## 2 2020-04-01 <NA> 0,29177231557 0,00272358670 Banjaran
## 3 2020-04-01 <NA> 0,46819094275 0,00542817840 Bantarujeg
## 4 2020-04-01 <NA> 0,33215508401 0,00258578572 Cigasong
## 5 2020-04-01 <NA> 0,32345228855 0,00315057010 Cikijing
## 6 2020-04-01 <NA> 0,38355718368 0,00340162443 Cingambul
## validTo.D JumlahSekolah geometry
## 1 NA 22 MULTIPOLYGON (((108.3237 -6...
## 2 NA 24 MULTIPOLYGON (((108.3249 -6...
## 3 NA 33 MULTIPOLYGON (((108.2812 -6...
## 4 NA 17 MULTIPOLYGON (((108.2628 -6...
## 5 NA 37 MULTIPOLYGON (((108.3855 -6...
## 6 NA 27 MULTIPOLYGON (((108.3292 -7...
Untuk membuat peta sebaran sekolah, maka data JumlahSekolah dijadikan sebagai output.
peta.MJL <- ggplot()+
geom_sf(data=mapMJL, aes(fill=JumlahSekolah))+
labs(title = "Peta Sebaran Sekolah di Majalengka")
peta.MJL
##install.packages("leaflet") #opsional bagi yang belum install packages
library(leaflet)
my.location <- leaflet()%>%
setView(lat = -6.949956619848943, lng= 108.23370013414382, zoom=12)
my.location%>%addTiles()