Prodi : Teknik Informatika

Lembaga : UIN Maulana Malik Ibrahim Malang

Pengertian Pivot

Pivot adalah membuat rangkuman, melakukan analisa, eksplorasi data, serta mempresentasikannya. Salah satu software yang menyediakan fitur Pivot adalah MSExcel. Pada MSExcel terdapat fitur PivotTable yang merupakan laporan berbentuk tabel, yang dalam waktu saat singkat mampu menampilkan ringkasan berdasarkan jumlah data besar kedalam bentuk atau orientasi berbeda dan sanggup melakukan kalkulasi dalam setiap item yang dibutuhkan.

library(readxl)
## Warning: package 'readxl' was built under R version 4.1.2
inflowkalimantan <- read_excel(path = "datainflowkalimantan.xlsx") 
inflowkalimantan
## # A tibble: 6 x 12
##   Provinsi `2011` `2012` `2013` `2014` `2015` `2016` `2017` `2018` `2019` `2020`
##   <chr>     <dbl>  <dbl>  <dbl>  <dbl>  <dbl>  <dbl>  <dbl>  <dbl>  <dbl>  <dbl>
## 1 Kaliman~ 13272. 17575. 37698. 26379. 29427. 32847. 35119. 41157. 46158. 37200.
## 2 Kaliman~  2831.  3386.  4029.  5943.  6675.  7440.  7775. 10249. 11848.  9294.
## 3 Kaliman~   779.  1135. 19328.  1887.  3547.  3694.  3655.  4083.  4385.  4178.
## 4 Kaliman~  5369.  7311.  4226.  9614.  9558. 10809. 12415. 13604. 14462. 11753.
## 5 Kaliman~  4293.  5743. 10115.  8936.  9646. 10903. 10933. 12305. 13991. 10612.
## 6 Kaliman~     0      0      0      0      0      0    341.   917.  1472.  1362.
## # ... with 1 more variable: `2021` <dbl>
library(tidyverse)
## Warning: package 'tidyverse' was built under R version 4.1.2
## -- Attaching packages --------------------------------------- tidyverse 1.3.1 --
## v ggplot2 3.3.5     v purrr   0.3.4
## v tibble  3.1.6     v dplyr   1.0.8
## v tidyr   1.2.0     v stringr 1.4.0
## v readr   2.1.2     v forcats 0.5.1
## Warning: package 'ggplot2' was built under R version 4.1.2
## Warning: package 'tibble' was built under R version 4.1.2
## Warning: package 'tidyr' was built under R version 4.1.2
## Warning: package 'readr' was built under R version 4.1.2
## Warning: package 'purrr' was built under R version 4.1.2
## Warning: package 'dplyr' was built under R version 4.1.2
## Warning: package 'forcats' was built under R version 4.1.2
## -- Conflicts ------------------------------------------ tidyverse_conflicts() --
## x dplyr::filter() masks stats::filter()
## x dplyr::lag()    masks stats::lag()

pivot_longer()

fungsi untuk mentransformasi dataset dalam bentuk memanjang (memiliki lebih sedikit kolom dan menambah jumlah baris) atau “memperpanjang” data, menambah jumlah baris dan mengurangi jumlah kolom.

datalonger <- inflowkalimantan %>% 
  pivot_longer(!Provinsi, names_to = "Tahun", values_to = "Kasus")
datalonger 
## # A tibble: 66 x 3
##    Provinsi   Tahun  Kasus
##    <chr>      <chr>  <dbl>
##  1 Kalimantan 2011  13272.
##  2 Kalimantan 2012  17575.
##  3 Kalimantan 2013  37698.
##  4 Kalimantan 2014  26379.
##  5 Kalimantan 2015  29427.
##  6 Kalimantan 2016  32847.
##  7 Kalimantan 2017  35119.
##  8 Kalimantan 2018  41157.
##  9 Kalimantan 2019  46158.
## 10 Kalimantan 2020  37200.
## # ... with 56 more rows

Memilih variabel Provinsi dan Kasus

library(dplyr)
kalimantanup <- select(datalonger, Provinsi, Kasus)
kalimantanup
## # A tibble: 66 x 2
##    Provinsi    Kasus
##    <chr>       <dbl>
##  1 Kalimantan 13272.
##  2 Kalimantan 17575.
##  3 Kalimantan 37698.
##  4 Kalimantan 26379.
##  5 Kalimantan 29427.
##  6 Kalimantan 32847.
##  7 Kalimantan 35119.
##  8 Kalimantan 41157.
##  9 Kalimantan 46158.
## 10 Kalimantan 37200.
## # ... with 56 more rows

Menyeleksi baris atau observasi berdasarkan nilainya.

library(dplyr)
kalimantanup1 <- datalonger  %>%
    filter(Provinsi > 'Kalimantan Selatan') %>%
    select('Provinsi', 'Tahun', 'Kasus')
kalimantanup1
## # A tibble: 33 x 3
##    Provinsi          Tahun  Kasus
##    <chr>             <chr>  <dbl>
##  1 Kalimantan Tengah 2011    779.
##  2 Kalimantan Tengah 2012   1135.
##  3 Kalimantan Tengah 2013  19328.
##  4 Kalimantan Tengah 2014   1887.
##  5 Kalimantan Tengah 2015   3547.
##  6 Kalimantan Tengah 2016   3694.
##  7 Kalimantan Tengah 2017   3655.
##  8 Kalimantan Tengah 2018   4083.
##  9 Kalimantan Tengah 2019   4385.
## 10 Kalimantan Tengah 2020   4178.
## # ... with 23 more rows
kalimantanup2 <- datalonger %>%
  filter(Provinsi <= 'Kalimantan', Tahun <= '2020') %>%
 select('Provinsi', 'Tahun', 'Kasus')
kalimantanup2
## # A tibble: 10 x 3
##    Provinsi   Tahun  Kasus
##    <chr>      <chr>  <dbl>
##  1 Kalimantan 2011  13272.
##  2 Kalimantan 2012  17575.
##  3 Kalimantan 2013  37698.
##  4 Kalimantan 2014  26379.
##  5 Kalimantan 2015  29427.
##  6 Kalimantan 2016  32847.
##  7 Kalimantan 2017  35119.
##  8 Kalimantan 2018  41157.
##  9 Kalimantan 2019  46158.
## 10 Kalimantan 2020  37200.

pivot_wider()

fungsi untuk merubah struktur memanjang menjadi struktur data melebar (menambah jumlah kolom dan mengurangi jumlah baris).

kalimantanwid <- datalonger %>% 
  pivot_wider(names_from = "Tahun", 
                     values_from = "Kasus")
kalimantanwid
## # A tibble: 6 x 12
##   Provinsi `2011` `2012` `2013` `2014` `2015` `2016` `2017` `2018` `2019` `2020`
##   <chr>     <dbl>  <dbl>  <dbl>  <dbl>  <dbl>  <dbl>  <dbl>  <dbl>  <dbl>  <dbl>
## 1 Kaliman~ 13272. 17575. 37698. 26379. 29427. 32847. 35119. 41157. 46158. 37200.
## 2 Kaliman~  2831.  3386.  4029.  5943.  6675.  7440.  7775. 10249. 11848.  9294.
## 3 Kaliman~   779.  1135. 19328.  1887.  3547.  3694.  3655.  4083.  4385.  4178.
## 4 Kaliman~  5369.  7311.  4226.  9614.  9558. 10809. 12415. 13604. 14462. 11753.
## 5 Kaliman~  4293.  5743. 10115.  8936.  9646. 10903. 10933. 12305. 13991. 10612.
## 6 Kaliman~     0      0      0      0      0      0    341.   917.  1472.  1362.
## # ... with 1 more variable: `2021` <dbl>

Visualisasi Pivotdata Inflow Uang Kartal di Kalimantan

ggplot(data = datalonger, 
       mapping = aes(x = Tahun, y = Kasus)) +
          geom_boxplot(alpha = 0) +  # Do not show outliers
          geom_jitter(alpha = 0.7, color = "tomato") +
          theme_bw()

ggplot(data = datalonger, 
       mapping = aes(x = Provinsi, y = Kasus)) +
          geom_boxplot(alpha = 0) +  # Do not show outliers
          geom_jitter(alpha = 0.7, color = "tomato") +
          theme_bw()