Peta Statis : Sebaran Sekolah di Majalengka

Menginstall packages

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")

Mengaktifkan Packages

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()

Memasukan data SHP

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 (~

Memasukan Data CSV

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

Mengambil Data Berdasarkan Kecamatan di Majalengka

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...

Membuat Peta Sebaran Sekolah

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

Peta Dinamis : Lokasi Saat Ini

##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()