Praktikum 03 - Tugas Satria June Adwendi

Tugas untuk Praktikum 03 ini adalah :

• Tugas Praktikum 3.a

Praktikkan penggunaan inner_join(), left_join(), right_join(), full_join(), semi_join(), anti_join() untuk menggabungkan 2 buat table dari database chinook.db atau Northwind_large.sqlite

• Tugas Praktikum 3.b:

Buat satu Peta dari daerah Anda masing-masing (Kecamatan, Kabupaten), Anda bebas menggunakan data apapun.

• Tugas dikerjakan dengan rmarkdown dan dipublish di rpubs masing-masing, yang dikumpulkan di newlms berupa file html, jangan lupa, sertakan url rpubs di file html yang dikumpulkan di newlms.

Database Queries with R

Database Queries Beberapa package yang digunakan untuk bekerja dengan database menggunakan R software adalah:

DBI berfungsi memisahkan konektivitas ke DBMS menjadi “front-end” dan “back-end”. Aplikasi hanya menggunakan API front-end yang terbuka. Fasilitas back-end yang berkomunikasi dengan DBMS tertentu (SQLite, MySQL, PostgreSQL, MonetDB, dll.) disediakan oleh driver (package lain) yang dipanggil secara otomatis.

dplyr dan dbplyr memiliki SQL back-end yang digeneralisasi untuk bisa bekerja dengan database.

odbc menyediakan antarmuka yang sesuai dengan DBI untuk driver Open Database Connectivity (ODBC). Hal ini memungkinkan koneksi yang efisien dan mudah diatur ke database apa pun dengan driver ODBC yang tersedia, termasuk SQL Server, Oracle, MySQL, PostgreSQL, SQLite, dan lainnya.

Connection to Database

Melakukan koneksi terhadap database pada R software adalah dengan menggunakan syntax berikut:

install.packages(c("RSQLite", "DBI"), dependencies = TRUE)

Memanggil package yang akan digunakan:

library(tidyverse)
## -- Attaching packages --------------------------------------- tidyverse 1.3.0 --
## v ggplot2 3.3.2     v purrr   0.3.4
## v tibble  3.0.4     v dplyr   1.0.2
## v tidyr   1.1.2     v stringr 1.4.0
## v readr   1.4.0     v forcats 0.5.0
## -- Conflicts ------------------------------------------ tidyverse_conflicts() --
## x dplyr::filter() masks stats::filter()
## x dplyr::lag()    masks stats::lag()
library(RSQLite)
## Warning: package 'RSQLite' was built under R version 4.0.4
library(DBI)
## Warning: package 'DBI' was built under R version 4.0.4

Database yang akan digunakan pada praktikum ini adalah database Northwind_large.sqlite

#Koneksi ke database yang akan digunakan
NWl <- DBI::dbConnect(RSQLite::SQLite(), "C:/sqlite/db/Northwind_large.sqlite")

class(NWl)
## [1] "SQLiteConnection"
## attr(,"package")
## [1] "RSQLite"

Syntax di atas tidak membaca data ke dalam R seperti halnya fungsi read_csv() melainkan berupa instruksi kepada R untuk mengkoneksikan database SQLite yang terdapat pada file Northwind

Selanjutnya, fungsi dbListTables dapat digunakan untuk melihat tables yang terdapat di dalam database. Berikut daftar tabel yang ada di dalam database chinook:

RSQLite::dbListTables(NWl)
##  [1] "Category"             "Customer"             "CustomerCustomerDemo"
##  [4] "CustomerDemographic"  "Employee"             "EmployeeTerritory"   
##  [7] "Order"                "OrderDetail"          "Product"             
## [10] "ProductDetails_V"     "Region"               "Shipper"             
## [13] "Supplier"             "Territory"

Combining Multiple Tables

#Mengakses tabel pada database
(NSupplier <- dplyr::tbl(NWl,"Supplier"))
## # Source:   table<Supplier> [?? x 12]
## # Database: sqlite 3.34.1 [C:\sqlite\db\Northwind_large.sqlite]
##       Id CompanyName ContactName ContactTitle Address City  Region PostalCode
##    <int> <chr>       <chr>       <chr>        <chr>   <chr> <chr>  <chr>     
##  1     1 Exotic Liq~ Charlotte ~ Purchasing ~ 49 Gil~ Lond~ Briti~ EC1 4SD   
##  2     2 New Orlean~ Shelley Bu~ Order Admin~ P.O. B~ New ~ North~ 70117     
##  3     3 Grandma Ke~ Regina Mur~ Sales Repre~ 707 Ox~ Ann ~ North~ 48104     
##  4     4 Tokyo Trad~ Yoshi Naga~ Marketing M~ 9-8 Se~ Tokyo Easte~ 100       
##  5     5 Cooperativ~ Antonio de~ Export Admi~ Calle ~ Ovie~ South~ 33007     
##  6     6 Mayumi's    Mayumi Ohno Marketing R~ 92 Set~ Osaka Easte~ 545       
##  7     7 Pavlova, L~ Ian Devling Marketing M~ 74 Ros~ Melb~ Victo~ 3058      
##  8     8 Specialty ~ Peter Wils~ Sales Repre~ 29 Kin~ Manc~ Briti~ M14 GSD   
##  9     9 PB Knäckeb~ Lars Peter~ Sales Agent  Kaload~ Göte~ North~ S-345 67  
## 10    10 Refrescos ~ Carlos Diaz Marketing M~ Av. da~ Sao ~ South~ 5442      
## # ... with more rows, and 4 more variables: Country <chr>, Phone <chr>,
## #   Fax <chr>, HomePage <chr>
#Mengakses tabel pada database
(NEmployee <- dplyr::tbl(NWl,"Employee"))
## # Source:   table<Employee> [?? x 18]
## # Database: sqlite 3.34.1 [C:\sqlite\db\Northwind_large.sqlite]
##      Id LastName FirstName Title TitleOfCourtesy BirthDate HireDate Address
##   <int> <chr>    <chr>     <chr> <chr>           <chr>     <chr>    <chr>  
## 1     1 Davolio  Nancy     Sale~ Ms.             1980-12-~ 2024-05~ 507 - ~
## 2     2 Fuller   Andrew    Vice~ Dr.             1984-02-~ 2024-08~ 908 W.~
## 3     3 Leverli~ Janet     Sale~ Ms.             1995-08-~ 2024-04~ 722 Mo~
## 4     4 Peacock  Margaret  Sale~ Mrs.            1969-09-~ 2025-05~ 4110 O~
## 5     5 Buchanan Steven    Sale~ Mr.             1987-03-~ 2025-10~ 14 Gar~
## 6     6 Suyama   Michael   Sale~ Mr.             1995-07-~ 2025-10~ Covent~
## 7     7 King     Robert    Sale~ Mr.             1992-05-~ 2026-01~ Edgeha~
## 8     8 Callahan Laura     Insi~ Ms.             1990-01-~ 2026-03~ 4726 -~
## 9     9 Dodswor~ Anne      Sale~ Ms.             1998-01-~ 2026-11~ 7 Houn~
## # ... with 10 more variables: City <chr>, Region <chr>, PostalCode <chr>,
## #   Country <chr>, HomePhone <chr>, Extension <chr>, Photo <blob>, Notes <chr>,
## #   ReportsTo <int>, PhotoPath <chr>

Tabel yang akan digunakan adalah tabel Supplier dan Employee. Pada tabel Supplier hanya akan digunakan variabel CompanyName, dan City. Sementara, pada tabel Employee hanya akan digunakan variabel LastName Title dan City.

#Tabel Supplier yang akan digunakan
(NS2 <- tibble (data.frame (NSupplier %>% select(CompanyName, City))))
## # A tibble: 29 x 2
##    CompanyName                        City       
##    <chr>                              <chr>      
##  1 Exotic Liquids                     London     
##  2 New Orleans Cajun Delights         New Orleans
##  3 Grandma Kelly's Homestead          Ann Arbor  
##  4 Tokyo Traders                      Tokyo      
##  5 Cooperativa de Quesos 'Las Cabras' Oviedo     
##  6 Mayumi's                           Osaka      
##  7 Pavlova, Ltd.                      Melbourne  
##  8 Specialty Biscuits, Ltd.           Manchester 
##  9 PB Knäckebröd AB                   Göteborg   
## 10 Refrescos Americanas LTDA          Sao Paulo  
## # ... with 19 more rows
#Tabel Employe yang akan digunakan
(NE3 <- tibble (data.frame(NEmployee %>% select(LastName, Title, City))))
## # A tibble: 9 x 3
##   LastName  Title                    City    
##   <chr>     <chr>                    <chr>   
## 1 Davolio   Sales Representative     Seattle 
## 2 Fuller    Vice President, Sales    Tacoma  
## 3 Leverling Sales Representative     Kirkland
## 4 Peacock   Sales Representative     Redmond 
## 5 Buchanan  Sales Manager            London  
## 6 Suyama    Sales Representative     London  
## 7 King      Sales Representative     London  
## 8 Callahan  Inside Sales Coordinator Seattle 
## 9 Dodsworth Sales Representative     London

Penggunaan inner_join()

Fungsi inner_join() akan menghasilkan semua baris pada tabel x yang memiliki kesamaan nilai dengan tabel y, dan semua kolom dari x dan y.

inner_join(NS2, NE3, by="City")
## # A tibble: 4 x 4
##   CompanyName    City   LastName  Title               
##   <chr>          <chr>  <chr>     <chr>               
## 1 Exotic Liquids London Buchanan  Sales Manager       
## 2 Exotic Liquids London Suyama    Sales Representative
## 3 Exotic Liquids London King      Sales Representative
## 4 Exotic Liquids London Dodsworth Sales Representative

Penggunaan left_join()

Fungsi left_join() akan menghasilkan semua baris pada tabel x, dan semua kolom pada x dan y, dimana untuk baris pada tabel x yang tidak memiliki kesamaan dengan tabel y akan diisi dengan nilai NA pada kolom yang baru.

left_join(NS2, NE3, by="City")
## # A tibble: 32 x 4
##    CompanyName                        City        LastName  Title               
##    <chr>                              <chr>       <chr>     <chr>               
##  1 Exotic Liquids                     London      Buchanan  Sales Manager       
##  2 Exotic Liquids                     London      Suyama    Sales Representative
##  3 Exotic Liquids                     London      King      Sales Representative
##  4 Exotic Liquids                     London      Dodsworth Sales Representative
##  5 New Orleans Cajun Delights         New Orleans <NA>      <NA>                
##  6 Grandma Kelly's Homestead          Ann Arbor   <NA>      <NA>                
##  7 Tokyo Traders                      Tokyo       <NA>      <NA>                
##  8 Cooperativa de Quesos 'Las Cabras' Oviedo      <NA>      <NA>                
##  9 Mayumi's                           Osaka       <NA>      <NA>                
## 10 Pavlova, Ltd.                      Melbourne   <NA>      <NA>                
## # ... with 22 more rows

Penggunaan right_join()

Fungsi right_join() akan menghasilkan semua baris pada tabel y, dan semua kolom pada tabel x dan y, dimana untuk baris pada tabel y yang tidak memiliki kesamaan dengan tabel x akan diisi dengan nilai NA pada kolom yang baru.

right_join(NS2, NE3, by="City")
## # A tibble: 9 x 4
##   CompanyName    City     LastName  Title                   
##   <chr>          <chr>    <chr>     <chr>                   
## 1 Exotic Liquids London   Buchanan  Sales Manager           
## 2 Exotic Liquids London   Suyama    Sales Representative    
## 3 Exotic Liquids London   King      Sales Representative    
## 4 Exotic Liquids London   Dodsworth Sales Representative    
## 5 <NA>           Seattle  Davolio   Sales Representative    
## 6 <NA>           Tacoma   Fuller    Vice President, Sales   
## 7 <NA>           Kirkland Leverling Sales Representative    
## 8 <NA>           Redmond  Peacock   Sales Representative    
## 9 <NA>           Seattle  Callahan  Inside Sales Coordinator

Penggunaan full_join()

Fungsi full_join() akan menghasilkan semua baris dan kolom dari tabel x dan y. Jika ada nilai yang tidak sama antara tabel x dan y, maka akan bernilai NA.

full_join(NS2, NE3, by="City")
## # A tibble: 37 x 4
##    CompanyName                        City        LastName  Title               
##    <chr>                              <chr>       <chr>     <chr>               
##  1 Exotic Liquids                     London      Buchanan  Sales Manager       
##  2 Exotic Liquids                     London      Suyama    Sales Representative
##  3 Exotic Liquids                     London      King      Sales Representative
##  4 Exotic Liquids                     London      Dodsworth Sales Representative
##  5 New Orleans Cajun Delights         New Orleans <NA>      <NA>                
##  6 Grandma Kelly's Homestead          Ann Arbor   <NA>      <NA>                
##  7 Tokyo Traders                      Tokyo       <NA>      <NA>                
##  8 Cooperativa de Quesos 'Las Cabras' Oviedo      <NA>      <NA>                
##  9 Mayumi's                           Osaka       <NA>      <NA>                
## 10 Pavlova, Ltd.                      Melbourne   <NA>      <NA>                
## # ... with 27 more rows

Penggunaan semi_join()

Fungsi semi_join() akan menghasilkan semua baris pada tabel x yang memiliki kesamaan nilai dengan tabel y, dan semua kolom dari tabel x. Mirip dengan inner_join(), hanya saja pada inner_join() mengembalikan semua kolom dari tabel x dan y.

semi_join(NS2, NE3, by="City")
## # A tibble: 1 x 2
##   CompanyName    City  
##   <chr>          <chr> 
## 1 Exotic Liquids London

Penggunaan anti_join()

Fungsi anti_join() akan menghasilkan semua baris dari tabel x yang TIDAK memiliki kesamaan dengan tabel y, dan semua kolom yang berasal dari tabel x.

anti_join(NS2, NE3, by="City")
## # A tibble: 28 x 2
##    CompanyName                        City       
##    <chr>                              <chr>      
##  1 New Orleans Cajun Delights         New Orleans
##  2 Grandma Kelly's Homestead          Ann Arbor  
##  3 Tokyo Traders                      Tokyo      
##  4 Cooperativa de Quesos 'Las Cabras' Oviedo     
##  5 Mayumi's                           Osaka      
##  6 Pavlova, Ltd.                      Melbourne  
##  7 Specialty Biscuits, Ltd.           Manchester 
##  8 PB Knäckebröd AB                   Göteborg   
##  9 Refrescos Americanas LTDA          Sao Paulo  
## 10 Heli Süßwaren GmbH & Co. KG        Berlin     
## # ... with 18 more rows

Spatial Data

Instal Package

install.packages("rgdal")
install.packages("gdtools")
install.packages("kableExtra")
install.packages("sf")
install.packages("tigris")

Library yang digunakan:

library(rgdal)
## Warning: package 'rgdal' was built under R version 4.0.4
## Loading required package: sp
## rgdal: version: 1.5-23, (SVN revision 1121)
## Geospatial Data Abstraction Library extensions to R successfully loaded
## Loaded GDAL runtime: GDAL 3.2.1, released 2020/12/29
## Path to GDAL shared files: C:/Users/ADWENDI/OneDrive/Documents/R/win-library/4.0/rgdal/gdal
## GDAL binary built with GEOS: TRUE 
## Loaded PROJ runtime: Rel. 7.2.1, January 1st, 2021, [PJ_VERSION: 721]
## Path to PROJ shared files: C:/Users/ADWENDI/OneDrive/Documents/R/win-library/4.0/rgdal/proj
## PROJ CDN enabled: FALSE
## Linking to sp version:1.4-5
## To mute warnings of possible GDAL/OSR exportToProj4() degradation,
## use options("rgdal_show_exportToProj4_warnings"="none") before loading rgdal.
## Overwritten PROJ_LIB was C:/Users/ADWENDI/OneDrive/Documents/R/win-library/4.0/rgdal/proj
library(sf)
## Warning: package 'sf' was built under R version 4.0.4
## Linking to GEOS 3.8.0, GDAL 3.0.4, PROJ 6.3.1
library(ggplot2)
library(tigris)
## Warning: package 'tigris' was built under R version 4.0.4
## To enable 
## caching of data, set `options(tigris_use_cache = TRUE)` in your R script or .Rprofile.
library(dplyr)
library(tidyverse)

Memasukan Data SHP

adm3 <- "D:/S2 Bismillah/02_SEMESTER 1/_STA581 SAINS DATA/PRAKTIKUM/idn_adm_bps_20200401_shp/idn_admbnda_adm3_bps_20200401.shp"
adm3 <- st_read(adm3)
## Reading layer `idn_admbnda_adm3_bps_20200401' from data source `D:\S2 Bismillah\02_SEMESTER 1\_STA581 SAINS DATA\PRAKTIKUM\idn_adm_bps_20200401_shp\idn_admbnda_adm3_bps_20200401.shp' using driver `ESRI Shapefile'
## Simple feature collection with 7069 features and 16 fields
## geometry type:  MULTIPOLYGON
## dimension:      XY
## bbox:           xmin: 95.01079 ymin: -11.00762 xmax: 141.0194 ymax: 6.07693
## geographic CRS: WGS 84
glimpse(adm3) # unutuk tahu seperti apa file SHP tersebut di R
## Rows: 7,069
## Columns: 17
## $ Shape_Leng <dbl> 0.2798656, 0.7514001, 0.6900061, 0.6483629, 0.2437073, 1...
## $ Shape_Area <dbl> 0.003107633, 0.016925540, 0.024636382, 0.010761277, 0.00...
## $ ADM3_EN    <chr> "2 X 11 Enam Lingkung", "2 X 11 Kayu Tanam", "Abab", "Ab...
## $ ADM3_PCODE <chr> "ID1306050", "ID1306052", "ID1612030", "ID5107050", "ID7...
## $ ADM3_REF   <chr> 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, ...
## $ ADM3ALT2EN <chr> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
## $ ADM2_EN    <chr> "Padang Pariaman", "Padang Pariaman", "Penukal Abab Lema...
## $ ADM2_PCODE <chr> "ID1306", "ID1306", "ID1612", "ID5107", "ID7471", "ID943...
## $ ADM1_EN    <chr> "Sumatera Barat", "Sumatera Barat", "Sumatera Selatan", ...
## $ ADM1_PCODE <chr> "ID13", "ID13", "ID16", "ID51", "ID74", "ID94", "ID94", ...
## $ ADM0_EN    <chr> "Indonesia", "Indonesia", "Indonesia", "Indonesia", "Ind...
## $ ADM0_PCODE <chr> "ID", "ID", "ID", "ID", "ID", "ID", "ID", "ID", "ID", "I...
## $ date       <date> 2019-12-20, 2019-12-20, 2019-12-20, 2019-12-20, 2019-12...
## $ validOn    <date> 2020-04-01, 2020-04-01, 2020-04-01, 2020-04-01, 2020-04...
## $ validTo    <date> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,...
## $ geometry   <MULTIPOLYGON [°]> MULTIPOLYGON (((100.2811 -0..., MULTIPOLYGO...

Memasukan Data File CSV

Data yang digunakan adalah jumlah penduduk Kota Manado berdasarkan Kecamatan

# Input Data

#tabel manado
pendudukmanado <- read.csv("D:/S2 Bismillah/02_SEMESTER 1/_STA581 SAINS DATA/PRAKTIKUM/pendudukmanado.csv", header=TRUE, sep=",")

pendudukmanado
##            kecamatan kodekecamatan penduduk
## 1            Bunaken     ID7171053    21740
## 2  Bunaken Kepulauan     ID7171054     6167
## 3         Malalayang     ID7171010    57319
## 4           Mapanget     ID7171040    53716
## 5           Paal Dua     ID7171032    42488
## 6              Sario     ID7171020    24456
## 7            Singkil     ID7171051    48248
## 8             Tikala     ID7171031    29693
## 9          Tuminting     ID7171052    51539
## 10             Wanea     ID7171021    56509
## 11            Wenang     ID7171030    36031
#tabel sulawesi utara
pendudukmanadoindo <- read.csv("D:/S2 Bismillah/02_SEMESTER 1/_STA581 SAINS DATA/PRAKTIKUM/pendudukmanadoindonesia.csv", header=TRUE, sep=",")

Merge Data

Merge Data dilakukan dengan membandingkan primary key antara Spatial Data (Admin3 hasil import file SHP) dan Data Frame (penduduk hasil Import File CSV).

# Merge Data
mergependuduk <- geo_join(spatial_data=adm3, data_frame=pendudukmanado, by_sp="ADM3_PCODE",
                          by_df="kodekecamatan", how = "inner")
mergependuduk
## Simple feature collection with 11 features and 18 fields
## geometry type:  MULTIPOLYGON
## dimension:      XY
## bbox:           xmin: 124.6813 ymin: 1.429394 xmax: 124.9336 ymax: 1.649242
## geographic CRS: WGS 84
## First 10 features:
##    Shape_Leng   Shape_Area           ADM3_EN ADM3_PCODE ADM3_REF ADM3ALT1EN
## 1  0.31622460 0.0025846925           Bunaken  ID7171053     <NA>       <NA>
## 2  0.37983155 0.0015202973 Bunaken Kepulauan  ID7171054     <NA>       <NA>
## 3  0.21428259 0.0013495132        Malalayang  ID7171010     <NA>       <NA>
## 4  0.35565022 0.0043182665          Mapanget  ID7171040     <NA>       <NA>
## 5  0.19362944 0.0009143825          Paal Dua  ID7171032     <NA>       <NA>
## 6  0.08430001 0.0001592974             Sario  ID7171020     <NA>       <NA>
## 7  0.10301963 0.0003878210           Singkil  ID7171051     <NA>       <NA>
## 8  0.14986550 0.0004954714            Tikala  ID7171031     <NA>       <NA>
## 9  0.11751331 0.0003841142         Tuminting  ID7171052     <NA>       <NA>
## 10 0.15553400 0.0006956120             Wanea  ID7171021     <NA>       <NA>
##    ADM3ALT2EN     ADM2_EN ADM2_PCODE        ADM1_EN ADM1_PCODE   ADM0_EN
## 1        <NA> Kota Manado     ID7171 Sulawesi Utara       ID71 Indonesia
## 2        <NA> Kota Manado     ID7171 Sulawesi Utara       ID71 Indonesia
## 3        <NA> Kota Manado     ID7171 Sulawesi Utara       ID71 Indonesia
## 4        <NA> Kota Manado     ID7171 Sulawesi Utara       ID71 Indonesia
## 5        <NA> Kota Manado     ID7171 Sulawesi Utara       ID71 Indonesia
## 6        <NA> Kota Manado     ID7171 Sulawesi Utara       ID71 Indonesia
## 7        <NA> Kota Manado     ID7171 Sulawesi Utara       ID71 Indonesia
## 8        <NA> Kota Manado     ID7171 Sulawesi Utara       ID71 Indonesia
## 9        <NA> Kota Manado     ID7171 Sulawesi Utara       ID71 Indonesia
## 10       <NA> Kota Manado     ID7171 Sulawesi Utara       ID71 Indonesia
##    ADM0_PCODE       date    validOn validTo         kecamatan penduduk
## 1          ID 2019-12-20 2020-04-01    <NA>           Bunaken    21740
## 2          ID 2019-12-20 2020-04-01    <NA> Bunaken Kepulauan     6167
## 3          ID 2019-12-20 2020-04-01    <NA>        Malalayang    57319
## 4          ID 2019-12-20 2020-04-01    <NA>          Mapanget    53716
## 5          ID 2019-12-20 2020-04-01    <NA>          Paal Dua    42488
## 6          ID 2019-12-20 2020-04-01    <NA>             Sario    24456
## 7          ID 2019-12-20 2020-04-01    <NA>           Singkil    48248
## 8          ID 2019-12-20 2020-04-01    <NA>            Tikala    29693
## 9          ID 2019-12-20 2020-04-01    <NA>         Tuminting    51539
## 10         ID 2019-12-20 2020-04-01    <NA>             Wanea    56509
##                          geometry
## 1  MULTIPOLYGON (((124.8207 1....
## 2  MULTIPOLYGON (((124.7442 1....
## 3  MULTIPOLYGON (((124.8263 1....
## 4  MULTIPOLYGON (((124.9067 1....
## 5  MULTIPOLYGON (((124.8786 1....
## 6  MULTIPOLYGON (((124.838 1.4...
## 7  MULTIPOLYGON (((124.8673 1....
## 8  MULTIPOLYGON (((124.8515 1....
## 9  MULTIPOLYGON (((124.8466 1....
## 10 MULTIPOLYGON (((124.8489 1....
mergependuduk2 <- geo_join(spatial_data=adm3, data_frame=pendudukmanadoindo, by_sp="ADM3_PCODE",
                          by_df="kodekecamatan", how = "inner")

Atur Warna

mycol <- c("#ffcccc", "#ff6666", "#ff4d4d", "#e60000")

Menampilkan Peta

#Peta manado by kecataman dan jumlah penduduk manado
petapenduduk<-ggplot()+
  geom_sf(data=mergependuduk, aes(fill=penduduk))+
  scale_fill_gradientn(colours=mycol)+theme(axis.text = element_text(size = 5))+
  labs(title="Jumlah Penduduk Kota Manado Berdasarkan Kecamatan Tahun 2020")
petapenduduk

#peta provinsi sulawesi Utara by kecamatan dan jumlah penduduk manado
petapenduduk2<-ggplot()+
  geom_sf(data=mergependuduk2, aes(fill=penduduk))+
  scale_fill_gradientn(colours=mycol)+theme(axis.text = element_text(size = 5))+
  labs(title="Jumlah Penduduk Kota Manado Berdasarkan Kecamatan Tahun 2020")
petapenduduk2

Demikian, Terima Kasih


  1. Satria June Adwendi, IPB University, ↩︎