dplyr dan Tabel ggplotDosen Pengampu : Prof. Dr. Suhartono, M.Kom
Mata Kuliah : Linear Algebra
Prodi : Teknik Informatika
Lembaga : Universitas Islam Negeri Maulana Malik Ibrahim Malang
Manipulasi data merupakan proses pengolahan data agar lebih mudah dibaca dan terorganisir menjadi informasi yang lebih berguna, berupa menambah (append), menghapus (delete), mengganti (update), menyisip (insert), menarik informasi tertentu (query). Berikut manipulasi data inflow uang kartal di pulau Jawa tahun 2011 dengan library dplyr dan tabel ggplot menggunakan bahasa pemrograman R.
library(dplyr)
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
library(readxl)
inflowjawa <- read_excel(path = "inflowJawa.xlsx")
inflowjawa
## # A tibble: 6 x 13
## Provinsi Januari Februari Maret April Mei Juni Juli Agustus September
## <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 Jawa 7736. 6667. 10318. 7826. 8166. 7442. 9051. 6073. 28450.
## 2 Jawa Barat 1980. 1726. 3718. 2864. 3169. 2971. 3615. 2398. 9581.
## 3 Jawa Tengah 2254. 1823. 3085. 2290. 2202. 2036. 2607. 1496. 8534.
## 4 Yogyakarta 431. 186. 461. 291. 375. 436. 499. 293. 1568.
## 5 Jawa Timur 3071. 2932. 3054. 2381. 2419. 1998. 2330. 1887. 8767.
## 6 Banten 0 0 0 0 0 0 0 0 0
## # ... with 3 more variables: Oktober <dbl>, November <dbl>, Desember <dbl>
library(tidyverse)
## -- Attaching packages --------------------------------------- tidyverse 1.3.1 --
## v ggplot2 3.3.5 v purrr 0.3.4
## v tibble 3.1.6 v stringr 1.4.0
## v tidyr 1.2.0 v forcats 0.5.1
## v readr 2.1.2
## -- Conflicts ------------------------------------------ tidyverse_conflicts() --
## x dplyr::filter() masks stats::filter()
## x dplyr::lag() masks stats::lag()
jawa1 <- select(inflowjawa,'Provinsi', 'September')
jawa1
## # A tibble: 6 x 2
## Provinsi September
## <chr> <dbl>
## 1 Jawa 28450.
## 2 Jawa Barat 9581.
## 3 Jawa Tengah 8534.
## 4 Yogyakarta 1568.
## 5 Jawa Timur 8767.
## 6 Banten 0
jawa2 <- select(inflowjawa, -'Desember')
jawa2
## # A tibble: 6 x 12
## Provinsi Januari Februari Maret April Mei Juni Juli Agustus September
## <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 Jawa 7736. 6667. 10318. 7826. 8166. 7442. 9051. 6073. 28450.
## 2 Jawa Barat 1980. 1726. 3718. 2864. 3169. 2971. 3615. 2398. 9581.
## 3 Jawa Tengah 2254. 1823. 3085. 2290. 2202. 2036. 2607. 1496. 8534.
## 4 Yogyakarta 431. 186. 461. 291. 375. 436. 499. 293. 1568.
## 5 Jawa Timur 3071. 2932. 3054. 2381. 2419. 1998. 2330. 1887. 8767.
## 6 Banten 0 0 0 0 0 0 0 0 0
## # ... with 2 more variables: Oktober <dbl>, November <dbl>
jawa3 <- inflowjawa %>% select('Provinsi', 'Januari', 'Februari', 'Maret')
jawa3
## # A tibble: 6 x 4
## Provinsi Januari Februari Maret
## <chr> <dbl> <dbl> <dbl>
## 1 Jawa 7736. 6667. 10318.
## 2 Jawa Barat 1980. 1726. 3718.
## 3 Jawa Tengah 2254. 1823. 3085.
## 4 Yogyakarta 431. 186. 461.
## 5 Jawa Timur 3071. 2932. 3054.
## 6 Banten 0 0 0
jawa4 <- inflowjawa %>% rename('Juni 2011' = 'Juni')
head(jawa4)
## # A tibble: 6 x 13
## Provinsi Januari Februari Maret April Mei `Juni 2011` Juli Agustus
## <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 Jawa 7736. 6667. 10318. 7826. 8166. 7442. 9051. 6073.
## 2 Jawa Barat 1980. 1726. 3718. 2864. 3169. 2971. 3615. 2398.
## 3 Jawa Tengah 2254. 1823. 3085. 2290. 2202. 2036. 2607. 1496.
## 4 Yogyakarta 431. 186. 461. 291. 375. 436. 499. 293.
## 5 Jawa Timur 3071. 2932. 3054. 2381. 2419. 1998. 2330. 1887.
## 6 Banten 0 0 0 0 0 0 0 0
## # ... with 4 more variables: September <dbl>, Oktober <dbl>, November <dbl>,
## # Desember <dbl>
jawa5 <- inflowjawa %>%
filter(Provinsi == 'Jawa Timur') %>%
select( 'Provinsi', 'Mei','Juni', 'Juli',)
jawa5
## # A tibble: 1 x 4
## Provinsi Mei Juni Juli
## <chr> <dbl> <dbl> <dbl>
## 1 Jawa Timur 2419. 1998. 2330.
str(inflowjawa)
## tibble [6 x 13] (S3: tbl_df/tbl/data.frame)
## $ Provinsi : chr [1:6] "Jawa" "Jawa Barat" "Jawa Tengah" "Yogyakarta" ...
## $ Januari : num [1:6] 7736 1980 2254 431 3071 ...
## $ Februari : num [1:6] 6667 1726 1823 186 2932 ...
## $ Maret : num [1:6] 10318 3718 3085 461 3054 ...
## $ April : num [1:6] 7826 2864 2290 291 2381 ...
## $ Mei : num [1:6] 8166 3169 2202 375 2419 ...
## $ Juni : num [1:6] 7442 2971 2036 436 1998 ...
## $ Juli : num [1:6] 9051 3615 2607 499 2330 ...
## $ Agustus : num [1:6] 6073 2398 1496 293 1887 ...
## $ September: num [1:6] 28450 9581 8534 1568 8767 ...
## $ Oktober : num [1:6] 11368 3975 3340 740 3314 ...
## $ November : num [1:6] 12199 4328 3334 789 3748 ...
## $ Desember : num [1:6] 8620 3450 2136 420 2614 ...
str(inflowjawa %>% group_by(Provinsi))
## grouped_df [6 x 13] (S3: grouped_df/tbl_df/tbl/data.frame)
## $ Provinsi : chr [1:6] "Jawa" "Jawa Barat" "Jawa Tengah" "Yogyakarta" ...
## $ Januari : num [1:6] 7736 1980 2254 431 3071 ...
## $ Februari : num [1:6] 6667 1726 1823 186 2932 ...
## $ Maret : num [1:6] 10318 3718 3085 461 3054 ...
## $ April : num [1:6] 7826 2864 2290 291 2381 ...
## $ Mei : num [1:6] 8166 3169 2202 375 2419 ...
## $ Juni : num [1:6] 7442 2971 2036 436 1998 ...
## $ Juli : num [1:6] 9051 3615 2607 499 2330 ...
## $ Agustus : num [1:6] 6073 2398 1496 293 1887 ...
## $ September: num [1:6] 28450 9581 8534 1568 8767 ...
## $ Oktober : num [1:6] 11368 3975 3340 740 3314 ...
## $ November : num [1:6] 12199 4328 3334 789 3748 ...
## $ Desember : num [1:6] 8620 3450 2136 420 2614 ...
## - attr(*, "groups")= tibble [6 x 2] (S3: tbl_df/tbl/data.frame)
## ..$ Provinsi: chr [1:6] "Banten" "Jawa" "Jawa Barat" "Jawa Tengah" ...
## ..$ .rows : list<int> [1:6]
## .. ..$ : int 6
## .. ..$ : int 1
## .. ..$ : int 2
## .. ..$ : int 3
## .. ..$ : int 5
## .. ..$ : int 4
## .. ..@ ptype: int(0)
## ..- attr(*, ".drop")= logi TRUE
jawa6 <- inflowjawa %>%
group_by(Provinsi)
jawa6
## # A tibble: 6 x 13
## # Groups: Provinsi [6]
## Provinsi Januari Februari Maret April Mei Juni Juli Agustus September
## <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 Jawa 7736. 6667. 10318. 7826. 8166. 7442. 9051. 6073. 28450.
## 2 Jawa Barat 1980. 1726. 3718. 2864. 3169. 2971. 3615. 2398. 9581.
## 3 Jawa Tengah 2254. 1823. 3085. 2290. 2202. 2036. 2607. 1496. 8534.
## 4 Yogyakarta 431. 186. 461. 291. 375. 436. 499. 293. 1568.
## 5 Jawa Timur 3071. 2932. 3054. 2381. 2419. 1998. 2330. 1887. 8767.
## 6 Banten 0 0 0 0 0 0 0 0 0
## # ... with 3 more variables: Oktober <dbl>, November <dbl>, Desember <dbl>
inflowjawa %>%
filter(Provinsi == 'Jawa Timur') %>%
count('September', sort = TRUE)
## # A tibble: 1 x 2
## `"September"` n
## <chr> <int>
## 1 September 1
jawa7 <- inflowjawa %>%
mutate('Januari' = inflowjawa$'Februari'/2)
jawa7
## # A tibble: 6 x 13
## Provinsi Januari Februari Maret April Mei Juni Juli Agustus September
## <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 Jawa 3334. 6667. 10318. 7826. 8166. 7442. 9051. 6073. 28450.
## 2 Jawa Barat 863. 1726. 3718. 2864. 3169. 2971. 3615. 2398. 9581.
## 3 Jawa Tengah 911. 1823. 3085. 2290. 2202. 2036. 2607. 1496. 8534.
## 4 Yogyakarta 93.2 186. 461. 291. 375. 436. 499. 293. 1568.
## 5 Jawa Timur 1466. 2932. 3054. 2381. 2419. 1998. 2330. 1887. 8767.
## 6 Banten 0 0 0 0 0 0 0 0 0
## # ... with 3 more variables: Oktober <dbl>, November <dbl>, Desember <dbl>
ggplot(data = inflowjawa, mapping = aes(Provinsi, `September`, color = Provinsi)) +
geom_point()