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
inflowjawa <- read_excel(path = "datainflowjawa.xlsx") 
inflowjawa
## # 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 Jawa     1.24e5 1.60e5 1.35e5 2.17e5 2.30e5 2.62e5 2.78e5 3.07e5 3.25e5 2.59e5
## 2 Jawa Ba~ 4.38e4 6.06e4 3.52e4 7.87e4 8.13e4 8.80e4 8.32e4 8.72e4 9.48e4 7.69e4
## 3 Jawa Te~ 3.51e4 4.33e4 4.22e4 6.05e4 6.52e4 7.28e4 7.70e4 8.78e4 9.08e4 8.50e4
## 4 Yogyaka~ 6.49e3 9.17e3 8.94e3 1.39e4 1.48e4 1.74e4 1.75e4 2.06e4 2.09e4 7.35e3
## 5 Jawa Ti~ 3.85e4 4.74e4 4.87e4 6.43e4 6.88e4 8.34e4 9.84e4 1.06e5 1.14e5 8.68e4
## 6 Banten   0      0      0      0      0      0      1.49e3 4.83e3 4.48e3 3.40e3
## # ... 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 <- inflowjawa %>% 
  pivot_longer(!Provinsi, names_to = "Tahun", values_to = "Kasus")
datalonger 
## # A tibble: 66 x 3
##    Provinsi Tahun   Kasus
##    <chr>    <chr>   <dbl>
##  1 Jawa     2011  123917.
##  2 Jawa     2012  160482.
##  3 Jawa     2013  134998.
##  4 Jawa     2014  217303.
##  5 Jawa     2015  230141.
##  6 Jawa     2016  261607.
##  7 Jawa     2017  277609.
##  8 Jawa     2018  306911.
##  9 Jawa     2019  324624.
## 10 Jawa     2020  259444.
## # ... with 56 more rows

Memilih variabel Provinsi dan Kasus

library(dplyr)
jawaup <- select(datalonger, Provinsi, Kasus)
jawaup
## # A tibble: 66 x 2
##    Provinsi   Kasus
##    <chr>      <dbl>
##  1 Jawa     123917.
##  2 Jawa     160482.
##  3 Jawa     134998.
##  4 Jawa     217303.
##  5 Jawa     230141.
##  6 Jawa     261607.
##  7 Jawa     277609.
##  8 Jawa     306911.
##  9 Jawa     324624.
## 10 Jawa     259444.
## # ... with 56 more rows

Menyeleksi baris atau observasi berdasarkan nilainya.

library(dplyr)
jawaup1 <- datalonger  %>%
    filter(Provinsi > 'Yogyakarta') %>%
    select('Provinsi', 'Tahun', 'Kasus')
jawaup1 
## # A tibble: 0 x 3
## # ... with 3 variables: Provinsi <chr>, Tahun <chr>, Kasus <dbl>
jawaup2 <- datalonger %>%
  filter(Provinsi <= 'Banter', Tahun <= '2019') %>%
 select('Provinsi', 'Tahun', 'Kasus')
jawaup2
## # A tibble: 9 x 3
##   Provinsi Tahun Kasus
##   <chr>    <chr> <dbl>
## 1 Banten   2011     0 
## 2 Banten   2012     0 
## 3 Banten   2013     0 
## 4 Banten   2014     0 
## 5 Banten   2015     0 
## 6 Banten   2016     0 
## 7 Banten   2017  1495.
## 8 Banten   2018  4832.
## 9 Banten   2019  4477.

pivot_wider()

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

jawawid <- datalonger %>% 
  pivot_wider(names_from = "Tahun", 
                     values_from = "Kasus")
jawawid
## # 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 Jawa     1.24e5 1.60e5 1.35e5 2.17e5 2.30e5 2.62e5 2.78e5 3.07e5 3.25e5 2.59e5
## 2 Jawa Ba~ 4.38e4 6.06e4 3.52e4 7.87e4 8.13e4 8.80e4 8.32e4 8.72e4 9.48e4 7.69e4
## 3 Jawa Te~ 3.51e4 4.33e4 4.22e4 6.05e4 6.52e4 7.28e4 7.70e4 8.78e4 9.08e4 8.50e4
## 4 Yogyaka~ 6.49e3 9.17e3 8.94e3 1.39e4 1.48e4 1.74e4 1.75e4 2.06e4 2.09e4 7.35e3
## 5 Jawa Ti~ 3.85e4 4.74e4 4.87e4 6.43e4 6.88e4 8.34e4 9.84e4 1.06e5 1.14e5 8.68e4
## 6 Banten   0      0      0      0      0      0      1.49e3 4.83e3 4.48e3 3.40e3
## # ... with 1 more variable: `2021` <dbl>

Visualisasi Pivotdata Inflow Uang Kartal di Jawa

ggplot(data = datalonger, mapping = aes(x = Tahun, y = Kasus)) +
  geom_point(color = "red")

ggplot(data = datalonger, 
       mapping = aes(x = Provinsi, y = Kasus)) +
    geom_point(color = "purple")

ggplot(data = datalonger, mapping = aes(x = Tahun, y = Kasus)) +
  geom_point(color = "blue") +
  facet_wrap( ~ Provinsi) +
  theme(axis.text.x = element_text(angle = 90))

ggplot(data = datalonger, mapping = aes(x = Provinsi, y = Kasus)) +
  geom_point(color = "Tomato") +
  facet_wrap( ~ Tahun) +
  theme(axis.text.x = element_text(angle = 90))