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
inflowbali <- read_excel(path = "datainflowbali.xlsx") 
inflowbali
## # A tibble: 4 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 Bali Nu~ 10322. 14613. 17512. 20807. 23008. 30965. 30797. 33866. 38116. 29400.
## 2 Bali      6394.  8202.  5066. 11590. 13072. 17914. 16962. 18610. 21422. 14735.
## 3 Nusa Te~  1803.  3676.  7024.  5704.  6285.  8842.  8383.  9140.  9614.  8007.
## 4 Nusa Te~  2125.  2735.  5422.  3512.  3651.  4210.  5452.  6116.  7080.  6657.
## # ... 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 <- inflowbali %>% 
  pivot_longer(!Provinsi, names_to = "Tahun", values_to = "Kasus")
datalonger 
## # A tibble: 44 x 3
##    Provinsi   Tahun  Kasus
##    <chr>      <chr>  <dbl>
##  1 Bali Nusra 2011  10322.
##  2 Bali Nusra 2012  14613.
##  3 Bali Nusra 2013  17512.
##  4 Bali Nusra 2014  20807.
##  5 Bali Nusra 2015  23008.
##  6 Bali Nusra 2016  30965.
##  7 Bali Nusra 2017  30797.
##  8 Bali Nusra 2018  33866.
##  9 Bali Nusra 2019  38116.
## 10 Bali Nusra 2020  29400.
## # ... with 34 more rows

Memilih variabel Provinsi dan Kasus

library(dplyr)
baliup <- select(datalonger, Provinsi, Kasus)
baliup
## # A tibble: 44 x 2
##    Provinsi    Kasus
##    <chr>       <dbl>
##  1 Bali Nusra 10322.
##  2 Bali Nusra 14613.
##  3 Bali Nusra 17512.
##  4 Bali Nusra 20807.
##  5 Bali Nusra 23008.
##  6 Bali Nusra 30965.
##  7 Bali Nusra 30797.
##  8 Bali Nusra 33866.
##  9 Bali Nusra 38116.
## 10 Bali Nusra 29400.
## # ... with 34 more rows

Menyeleksi baris atau observasi berdasarkan nilainya.

library(dplyr)
baliup1 <- datalonger  %>%
    filter(Provinsi > 'Nusa Tenggara Barat') %>%
    select('Provinsi', 'Tahun', 'Kasus')
baliup1 
## # A tibble: 11 x 3
##    Provinsi            Tahun Kasus
##    <chr>               <chr> <dbl>
##  1 Nusa Tenggara Timur 2011  2125.
##  2 Nusa Tenggara Timur 2012  2735.
##  3 Nusa Tenggara Timur 2013  5422.
##  4 Nusa Tenggara Timur 2014  3512.
##  5 Nusa Tenggara Timur 2015  3651.
##  6 Nusa Tenggara Timur 2016  4210.
##  7 Nusa Tenggara Timur 2017  5452.
##  8 Nusa Tenggara Timur 2018  6116.
##  9 Nusa Tenggara Timur 2019  7080.
## 10 Nusa Tenggara Timur 2020  6657.
## 11 Nusa Tenggara Timur 2021  5498.
baliup2 <- datalonger %>%
  filter(Provinsi <= 'Bali Nusra', Tahun <= '2019') %>%
 select('Provinsi', 'Tahun', 'Kasus')
baliup2
## # A tibble: 18 x 3
##    Provinsi   Tahun  Kasus
##    <chr>      <chr>  <dbl>
##  1 Bali Nusra 2011  10322.
##  2 Bali Nusra 2012  14613.
##  3 Bali Nusra 2013  17512.
##  4 Bali Nusra 2014  20807.
##  5 Bali Nusra 2015  23008.
##  6 Bali Nusra 2016  30965.
##  7 Bali Nusra 2017  30797.
##  8 Bali Nusra 2018  33866.
##  9 Bali Nusra 2019  38116.
## 10 Bali       2011   6394.
## 11 Bali       2012   8202.
## 12 Bali       2013   5066.
## 13 Bali       2014  11590.
## 14 Bali       2015  13072.
## 15 Bali       2016  17914.
## 16 Bali       2017  16962.
## 17 Bali       2018  18610.
## 18 Bali       2019  21422.

pivot_wider()

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

baliwid <- datalonger %>% 
  pivot_wider(names_from = "Tahun", 
                     values_from = "Kasus")
baliwid
## # A tibble: 4 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 Bali Nu~ 10322. 14613. 17512. 20807. 23008. 30965. 30797. 33866. 38116. 29400.
## 2 Bali      6394.  8202.  5066. 11590. 13072. 17914. 16962. 18610. 21422. 14735.
## 3 Nusa Te~  1803.  3676.  7024.  5704.  6285.  8842.  8383.  9140.  9614.  8007.
## 4 Nusa Te~  2125.  2735.  5422.  3512.  3651.  4210.  5452.  6116.  7080.  6657.
## # ... with 1 more variable: `2021` <dbl>

Visualisasi Pivotdata Inflow Uang Kartal di Bali

ggplot(data = datalonger, 
       mapping = aes(x = Tahun, y = Kasus, color = Provinsi)) +
    geom_jitter(alpha = 0.9)

ggplot(data = datalonger, 
       mapping = aes(x = Provinsi, y = Kasus, color = Tahun)) +
    geom_jitter(alpha = 0.9)