Mata Kuliah : Linear Algebra (C)

Dosen Pengampu : Prof. Dr. Suhartono, M.Kom

Lembaga : Universitas Islam Negeri Maulana Malik Ibrahim Malang

Fakultas : Sains dan Teknologi

Jurusan : Teknik Informatika

NIM : 210605110034

Pengertian Manipulasi Data

Manipulasi data adalah istilah yang digunakan untuk menggambarkan proses modifikasi struktur data agar lebih mudah dibaca. Misalnya, Anda dapat mengurutkan data berdasarkan abjad. Sehingga pemilik dapat segera menerima informasi yang bermanfaat. Berikut manipulasi data Outflow uang kartal di pulau Kalimantan.

Data Outflow Di Pulau Sumatera

library(readxl)
## Warning: package 'readxl' was built under R version 4.1.2
dataOutflowSumatera <- read_excel(path = "Linear Algebra/PivotOutflowSumatera.xlsx")
dataOutflowSumatera
## # A tibble: 11 x 12
##    Provinsi       `2011` `2012` `2013` `2014` `2015` `2016` `2017` `2018` `2019`
##    <chr>           <dbl>  <dbl>  <dbl>  <dbl>  <dbl>  <dbl>  <dbl>  <dbl>  <dbl>
##  1 Sumatera       80092. 85235. 1.03e5 1.02e5 1.09e5 1.22e5 1.34e5 1.36e5 1.53e5
##  2 Aceh            6338.  6378. 2.33e4 8.63e3 9.64e3 1.13e4 1.18e4 1.14e4 1.31e4
##  3 Sumatera Utara 22176. 22495. 1.92e4 2.64e4 2.79e4 3.20e4 3.52e4 3.69e4 4.41e4
##  4 Sumatera Barat  5300.  6434. 6.51e3 7.06e3 7.47e3 9.20e3 1.08e4 8.45e3 9.46e3
##  5 Riau           12434. 13014. 1.55e4 1.52e4 1.58e4 1.76e4 1.81e4 1.79e4 1.93e4
##  6 Kep. Riau       5819.  6966. 8.75e3 1.01e4 9.80e3 1.01e4 1.07e4 1.26e4 1.26e4
##  7 Jambi           5217.  5013. 6.30e3 8.36e3 8.32e3 7.77e3 8.43e3 8.46e3 9.20e3
##  8 Sumatera Sela~ 14524. 15600. 1.27e4 1.34e4 1.35e4 1.58e4 1.70e4 1.79e4 1.91e4
##  9 Bengkulu        2561.  2959. 6.49e3 4.58e3 4.85e3 5.16e3 5.45e3 5.50e3 6.84e3
## 10 Lampung         5724.  6376. 4.57e3 8.34e3 9.95e3 1.04e4 1.34e4 1.37e4 1.56e4
## 11 Kep. Bangka B~     0      0  0      3.22e2 2.00e3 2.68e3 2.75e3 2.74e3 4.17e3
## # ... with 2 more variables: `2020` <dbl>, `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()

##Menghapus Beberapa Variabel yang Tidak Ingin Digunakan

Sumatera<- select(dataOutflowSumatera,'Provinsi','2011')
Sumatera
## # A tibble: 11 x 2
##    Provinsi             `2011`
##    <chr>                 <dbl>
##  1 Sumatera             80092.
##  2 Aceh                  6338.
##  3 Sumatera Utara       22176.
##  4 Sumatera Barat        5300.
##  5 Riau                 12434.
##  6 Kep. Riau             5819.
##  7 Jambi                 5217.
##  8 Sumatera Selatan     14524.
##  9 Bengkulu              2561.
## 10 Lampung               5724.
## 11 Kep. Bangka Belitung     0
Sumatera2<- select(dataOutflowSumatera,'Provinsi','2012','2013','2014','2015')
Sumatera2
## # A tibble: 11 x 5
##    Provinsi             `2012`  `2013`  `2014`  `2015`
##    <chr>                 <dbl>   <dbl>   <dbl>   <dbl>
##  1 Sumatera             85235. 103288. 102338. 109186.
##  2 Aceh                  6378.  23278.   8630.   9637.
##  3 Sumatera Utara       22495.  19235.  26391.  27877.
##  4 Sumatera Barat        6434.   6511.   7060.   7471.
##  5 Riau                 13014.  15460.  15158.  15789.
##  6 Kep. Riau             6966.   8747.  10122.   9803.
##  7 Jambi                 5013.   6302.   8361.   8325.
##  8 Sumatera Selatan     15600.  12693.  13372.  13484.
##  9 Bengkulu              2959.   6490.   4583.   4852.
## 10 Lampung               6376.   4571.   8339.   9946.
## 11 Kep. Bangka Belitung     0       0     322.   2005.

Memilih Variabel Yang Ingin Digunakan

Sumateramin2011 <- select(dataOutflowSumatera, -'2016')
Sumateramin2011
## # A tibble: 11 x 11
##    Provinsi       `2011` `2012` `2013` `2014` `2015` `2017` `2018` `2019` `2020`
##    <chr>           <dbl>  <dbl>  <dbl>  <dbl>  <dbl>  <dbl>  <dbl>  <dbl>  <dbl>
##  1 Sumatera       80092. 85235. 1.03e5 1.02e5 1.09e5 1.34e5 1.36e5 1.53e5 1.41e5
##  2 Aceh            6338.  6378. 2.33e4 8.63e3 9.64e3 1.18e4 1.14e4 1.31e4 1.29e4
##  3 Sumatera Utara 22176. 22495. 1.92e4 2.64e4 2.79e4 3.52e4 3.69e4 4.41e4 3.98e4
##  4 Sumatera Barat  5300.  6434. 6.51e3 7.06e3 7.47e3 1.08e4 8.45e3 9.46e3 8.76e3
##  5 Riau           12434. 13014. 1.55e4 1.52e4 1.58e4 1.81e4 1.79e4 1.93e4 1.91e4
##  6 Kep. Riau       5819.  6966. 8.75e3 1.01e4 9.80e3 1.07e4 1.26e4 1.26e4 8.46e3
##  7 Jambi           5217.  5013. 6.30e3 8.36e3 8.32e3 8.43e3 8.46e3 9.20e3 8.95e3
##  8 Sumatera Sela~ 14524. 15600. 1.27e4 1.34e4 1.35e4 1.70e4 1.79e4 1.91e4 1.83e4
##  9 Bengkulu        2561.  2959. 6.49e3 4.58e3 4.85e3 5.45e3 5.50e3 6.84e3 6.56e3
## 10 Lampung         5724.  6376. 4.57e3 8.34e3 9.95e3 1.34e4 1.37e4 1.56e4 1.39e4
## 11 Kep. Bangka B~     0      0  0      3.22e2 2.00e3 2.75e3 2.74e3 4.17e3 3.90e3
## # ... with 1 more variable: `2021` <dbl>

Sintaks ini menggunakan fungsi select, dan select ini tidak hanya untuk memilih kolom dalam jumlah banyak, melainkan juga bisa untuk mengganti nama kolomnya. misalnya :

Sumateramin1 <- dataOutflowSumatera %>%
  select( 'Provinsi', '2017', '2018','2019','2020')
Sumateramin1
## # A tibble: 11 x 5
##    Provinsi              `2017`  `2018`  `2019`  `2020`
##    <chr>                  <dbl>   <dbl>   <dbl>   <dbl>
##  1 Sumatera             133606. 135676. 153484. 140589.
##  2 Aceh                  11760.  11450.  13087.  12874.
##  3 Sumatera Utara        35243.  36908.  44051.  39758.
##  4 Sumatera Barat        10754.   8447.   9465.   8763.
##  5 Riau                  18128.  17926.  19277.  19139.
##  6 Kep. Riau             10749.  12597.  12644.   8461.
##  7 Jambi                  8434.   8459.   9204.   8950.
##  8 Sumatera Selatan      16981.  17931.  19121.  18309.
##  9 Bengkulu               5447.   5495.   6842.   6564.
## 10 Lampung               13359.  13725.  15626.  13873.
## 11 Kep. Bangka Belitung   2750.   2738.   4167.   3899.

Mengganti Tabel Tahun

library(dplyr)
Sumateratahun2 <-dataOutflowSumatera %>% rename('2010' = '2011')
head(Sumateratahun2)
## # A tibble: 6 x 12
##   Provinsi `2010` `2012` `2013` `2014` `2015` `2016` `2017` `2018` `2019` `2020`
##   <chr>     <dbl>  <dbl>  <dbl>  <dbl>  <dbl>  <dbl>  <dbl>  <dbl>  <dbl>  <dbl>
## 1 Sumatera 80092. 85235. 1.03e5 1.02e5 1.09e5 1.22e5 1.34e5 1.36e5 1.53e5 1.41e5
## 2 Aceh      6338.  6378. 2.33e4 8.63e3 9.64e3 1.13e4 1.18e4 1.14e4 1.31e4 1.29e4
## 3 Sumater~ 22176. 22495. 1.92e4 2.64e4 2.79e4 3.20e4 3.52e4 3.69e4 4.41e4 3.98e4
## 4 Sumater~  5300.  6434. 6.51e3 7.06e3 7.47e3 9.20e3 1.08e4 8.45e3 9.46e3 8.76e3
## 5 Riau     12434. 13014. 1.55e4 1.52e4 1.58e4 1.76e4 1.81e4 1.79e4 1.93e4 1.91e4
## 6 Kep. Ri~  5819.  6966. 8.75e3 1.01e4 9.80e3 1.01e4 1.07e4 1.26e4 1.26e4 8.46e3
## # ... with 1 more variable: `2021` <dbl>

Mengambil Nilai yang Tidak Duplikasi dari Variabel Dari Sebuah Variabel

Sumatera4 <- distinct(dataOutflowSumatera, `2015`)
Sumatera4
## # A tibble: 11 x 1
##     `2015`
##      <dbl>
##  1 109186.
##  2   9637.
##  3  27877.
##  4   7471.
##  5  15789.
##  6   9803.
##  7   8325.
##  8  13484.
##  9   4852.
## 10   9946.
## 11   2005.

Di Semua Variabel

Sumatera5 <- distinct(dataOutflowSumatera, `2015`, .keep_all = TRUE)
Sumatera5
## # A tibble: 11 x 12
##    Provinsi       `2011` `2012` `2013` `2014` `2015` `2016` `2017` `2018` `2019`
##    <chr>           <dbl>  <dbl>  <dbl>  <dbl>  <dbl>  <dbl>  <dbl>  <dbl>  <dbl>
##  1 Sumatera       80092. 85235. 1.03e5 1.02e5 1.09e5 1.22e5 1.34e5 1.36e5 1.53e5
##  2 Aceh            6338.  6378. 2.33e4 8.63e3 9.64e3 1.13e4 1.18e4 1.14e4 1.31e4
##  3 Sumatera Utara 22176. 22495. 1.92e4 2.64e4 2.79e4 3.20e4 3.52e4 3.69e4 4.41e4
##  4 Sumatera Barat  5300.  6434. 6.51e3 7.06e3 7.47e3 9.20e3 1.08e4 8.45e3 9.46e3
##  5 Riau           12434. 13014. 1.55e4 1.52e4 1.58e4 1.76e4 1.81e4 1.79e4 1.93e4
##  6 Kep. Riau       5819.  6966. 8.75e3 1.01e4 9.80e3 1.01e4 1.07e4 1.26e4 1.26e4
##  7 Jambi           5217.  5013. 6.30e3 8.36e3 8.32e3 7.77e3 8.43e3 8.46e3 9.20e3
##  8 Sumatera Sela~ 14524. 15600. 1.27e4 1.34e4 1.35e4 1.58e4 1.70e4 1.79e4 1.91e4
##  9 Bengkulu        2561.  2959. 6.49e3 4.58e3 4.85e3 5.16e3 5.45e3 5.50e3 6.84e3
## 10 Lampung         5724.  6376. 4.57e3 8.34e3 9.95e3 1.04e4 1.34e4 1.37e4 1.56e4
## 11 Kep. Bangka B~     0      0  0      3.22e2 2.00e3 2.68e3 2.75e3 2.74e3 4.17e3
## # ... with 2 more variables: `2020` <dbl>, `2021` <dbl>

Menyeleksi Baris pada Tabel

Sumatera6 <- dataOutflowSumatera %>%
  filter(Provinsi <= 'Aceh') %>%
    select(`2018`,`2019`)
Sumatera6
## # A tibble: 1 x 2
##   `2018` `2019`
##    <dbl>  <dbl>
## 1 11450. 13087.
Sumatera7 <- dataOutflowSumatera %>%
  filter(Provinsi == 'Aceh', Provinsi == 'Lampung') %>%
    select( -`2020`)
Sumatera7
## # A tibble: 0 x 11
## # ... with 11 variables: Provinsi <chr>, 2011 <dbl>, 2012 <dbl>, 2013 <dbl>,
## #   2014 <dbl>, 2015 <dbl>, 2016 <dbl>, 2017 <dbl>, 2018 <dbl>, 2019 <dbl>,
## #   2021 <dbl>
str(dataOutflowSumatera)
## tibble [11 x 12] (S3: tbl_df/tbl/data.frame)
##  $ Provinsi: chr [1:11] "Sumatera" "Aceh" "Sumatera Utara" "Sumatera Barat" ...
##  $ 2011    : num [1:11] 80092 6338 22176 5300 12434 ...
##  $ 2012    : num [1:11] 85235 6378 22495 6434 13014 ...
##  $ 2013    : num [1:11] 103288 23278 19235 6511 15460 ...
##  $ 2014    : num [1:11] 102338 8630 26391 7060 15158 ...
##  $ 2015    : num [1:11] 109186 9637 27877 7471 15789 ...
##  $ 2016    : num [1:11] 121992 11311 31959 9198 17645 ...
##  $ 2017    : num [1:11] 133606 11760 35243 10754 18128 ...
##  $ 2018    : num [1:11] 135676 11450 36908 8447 17926 ...
##  $ 2019    : num [1:11] 153484 13087 44051 9465 19277 ...
##  $ 2020    : num [1:11] 140589 12874 39758 8763 19139 ...
##  $ 2021    : num [1:11] 86627 5770 23453 5941 12631 ...
str(dataOutflowSumatera %>% group_by(Provinsi))
## grouped_df [11 x 12] (S3: grouped_df/tbl_df/tbl/data.frame)
##  $ Provinsi: chr [1:11] "Sumatera" "Aceh" "Sumatera Utara" "Sumatera Barat" ...
##  $ 2011    : num [1:11] 80092 6338 22176 5300 12434 ...
##  $ 2012    : num [1:11] 85235 6378 22495 6434 13014 ...
##  $ 2013    : num [1:11] 103288 23278 19235 6511 15460 ...
##  $ 2014    : num [1:11] 102338 8630 26391 7060 15158 ...
##  $ 2015    : num [1:11] 109186 9637 27877 7471 15789 ...
##  $ 2016    : num [1:11] 121992 11311 31959 9198 17645 ...
##  $ 2017    : num [1:11] 133606 11760 35243 10754 18128 ...
##  $ 2018    : num [1:11] 135676 11450 36908 8447 17926 ...
##  $ 2019    : num [1:11] 153484 13087 44051 9465 19277 ...
##  $ 2020    : num [1:11] 140589 12874 39758 8763 19139 ...
##  $ 2021    : num [1:11] 86627 5770 23453 5941 12631 ...
##  - attr(*, "groups")= tibble [11 x 2] (S3: tbl_df/tbl/data.frame)
##   ..$ Provinsi: chr [1:11] "Aceh" "Bengkulu" "Jambi" "Kep. Bangka Belitung" ...
##   ..$ .rows   : list<int> [1:11] 
##   .. ..$ : int 2
##   .. ..$ : int 9
##   .. ..$ : int 7
##   .. ..$ : int 11
##   .. ..$ : int 6
##   .. ..$ : int 10
##   .. ..$ : int 5
##   .. ..$ : int 1
##   .. ..$ : int 4
##   .. ..$ : int 8
##   .. ..$ : int 3
##   .. ..@ ptype: int(0) 
##   ..- attr(*, ".drop")= logi TRUE

Pengelompokkan dan Pengurutkan Data

Pengelompokkan Data

Sumateraup <- dataOutflowSumatera %>%
    group_by(Provinsi)
Sumateraup
## # A tibble: 11 x 12
## # Groups:   Provinsi [11]
##    Provinsi       `2011` `2012` `2013` `2014` `2015` `2016` `2017` `2018` `2019`
##    <chr>           <dbl>  <dbl>  <dbl>  <dbl>  <dbl>  <dbl>  <dbl>  <dbl>  <dbl>
##  1 Sumatera       80092. 85235. 1.03e5 1.02e5 1.09e5 1.22e5 1.34e5 1.36e5 1.53e5
##  2 Aceh            6338.  6378. 2.33e4 8.63e3 9.64e3 1.13e4 1.18e4 1.14e4 1.31e4
##  3 Sumatera Utara 22176. 22495. 1.92e4 2.64e4 2.79e4 3.20e4 3.52e4 3.69e4 4.41e4
##  4 Sumatera Barat  5300.  6434. 6.51e3 7.06e3 7.47e3 9.20e3 1.08e4 8.45e3 9.46e3
##  5 Riau           12434. 13014. 1.55e4 1.52e4 1.58e4 1.76e4 1.81e4 1.79e4 1.93e4
##  6 Kep. Riau       5819.  6966. 8.75e3 1.01e4 9.80e3 1.01e4 1.07e4 1.26e4 1.26e4
##  7 Jambi           5217.  5013. 6.30e3 8.36e3 8.32e3 7.77e3 8.43e3 8.46e3 9.20e3
##  8 Sumatera Sela~ 14524. 15600. 1.27e4 1.34e4 1.35e4 1.58e4 1.70e4 1.79e4 1.91e4
##  9 Bengkulu        2561.  2959. 6.49e3 4.58e3 4.85e3 5.16e3 5.45e3 5.50e3 6.84e3
## 10 Lampung         5724.  6376. 4.57e3 8.34e3 9.95e3 1.04e4 1.34e4 1.37e4 1.56e4
## 11 Kep. Bangka B~     0      0  0      3.22e2 2.00e3 2.68e3 2.75e3 2.74e3 4.17e3
## # ... with 2 more variables: `2020` <dbl>, `2021` <dbl>

Pengurutan Data

Sumateraubah <- arrange(dataOutflowSumatera, `2012`)
Sumateraubah
## # A tibble: 11 x 12
##    Provinsi       `2011` `2012` `2013` `2014` `2015` `2016` `2017` `2018` `2019`
##    <chr>           <dbl>  <dbl>  <dbl>  <dbl>  <dbl>  <dbl>  <dbl>  <dbl>  <dbl>
##  1 Kep. Bangka B~     0      0  0      3.22e2 2.00e3 2.68e3 2.75e3 2.74e3 4.17e3
##  2 Bengkulu        2561.  2959. 6.49e3 4.58e3 4.85e3 5.16e3 5.45e3 5.50e3 6.84e3
##  3 Jambi           5217.  5013. 6.30e3 8.36e3 8.32e3 7.77e3 8.43e3 8.46e3 9.20e3
##  4 Lampung         5724.  6376. 4.57e3 8.34e3 9.95e3 1.04e4 1.34e4 1.37e4 1.56e4
##  5 Aceh            6338.  6378. 2.33e4 8.63e3 9.64e3 1.13e4 1.18e4 1.14e4 1.31e4
##  6 Sumatera Barat  5300.  6434. 6.51e3 7.06e3 7.47e3 9.20e3 1.08e4 8.45e3 9.46e3
##  7 Kep. Riau       5819.  6966. 8.75e3 1.01e4 9.80e3 1.01e4 1.07e4 1.26e4 1.26e4
##  8 Riau           12434. 13014. 1.55e4 1.52e4 1.58e4 1.76e4 1.81e4 1.79e4 1.93e4
##  9 Sumatera Sela~ 14524. 15600. 1.27e4 1.34e4 1.35e4 1.58e4 1.70e4 1.79e4 1.91e4
## 10 Sumatera Utara 22176. 22495. 1.92e4 2.64e4 2.79e4 3.20e4 3.52e4 3.69e4 4.41e4
## 11 Sumatera       80092. 85235. 1.03e5 1.02e5 1.09e5 1.22e5 1.34e5 1.36e5 1.53e5
## # ... with 2 more variables: `2020` <dbl>, `2021` <dbl>

Menambahkan kolom pada tabel

Sumateraup1 <- dataOutflowSumatera %>%
    mutate(`2021` = dataOutflowSumatera$`2020`/2)
Sumateraup1
## # A tibble: 11 x 12
##    Provinsi       `2011` `2012` `2013` `2014` `2015` `2016` `2017` `2018` `2019`
##    <chr>           <dbl>  <dbl>  <dbl>  <dbl>  <dbl>  <dbl>  <dbl>  <dbl>  <dbl>
##  1 Sumatera       80092. 85235. 1.03e5 1.02e5 1.09e5 1.22e5 1.34e5 1.36e5 1.53e5
##  2 Aceh            6338.  6378. 2.33e4 8.63e3 9.64e3 1.13e4 1.18e4 1.14e4 1.31e4
##  3 Sumatera Utara 22176. 22495. 1.92e4 2.64e4 2.79e4 3.20e4 3.52e4 3.69e4 4.41e4
##  4 Sumatera Barat  5300.  6434. 6.51e3 7.06e3 7.47e3 9.20e3 1.08e4 8.45e3 9.46e3
##  5 Riau           12434. 13014. 1.55e4 1.52e4 1.58e4 1.76e4 1.81e4 1.79e4 1.93e4
##  6 Kep. Riau       5819.  6966. 8.75e3 1.01e4 9.80e3 1.01e4 1.07e4 1.26e4 1.26e4
##  7 Jambi           5217.  5013. 6.30e3 8.36e3 8.32e3 7.77e3 8.43e3 8.46e3 9.20e3
##  8 Sumatera Sela~ 14524. 15600. 1.27e4 1.34e4 1.35e4 1.58e4 1.70e4 1.79e4 1.91e4
##  9 Bengkulu        2561.  2959. 6.49e3 4.58e3 4.85e3 5.16e3 5.45e3 5.50e3 6.84e3
## 10 Lampung         5724.  6376. 4.57e3 8.34e3 9.95e3 1.04e4 1.34e4 1.37e4 1.56e4
## 11 Kep. Bangka B~     0      0  0      3.22e2 2.00e3 2.68e3 2.75e3 2.74e3 4.17e3
## # ... with 2 more variables: `2020` <dbl>, `2021` <dbl>

Visualisasi Data Tabel dengan ggplot

ggplot Dengan Grafik Titik :

ggplot(data = dataOutflowSumatera, mapping = aes(x = Provinsi, y = `2011`)) +
  geom_point()

ggplot(data = dataOutflowSumatera, mapping = aes(x = Provinsi, y = `2012`)) +
  geom_point()

Referensi

https://rpubs.com/suhartono-uinmaliki/868598

https://www.bi.go.id/id/statistik/ekonomi-keuangan/ssp/indikator-pengedaran-uang.aspx