Tugas Manajemen Data Relasional

Bilal Muhammad Thalib (G1401231093)

2024-11-29

Libraries

library(tidyverse)
## Warning: package 'tidyverse' was built under R version 4.4.2
## Warning: package 'ggplot2' was built under R version 4.4.2
## Warning: package 'tibble' was built under R version 4.4.2
## Warning: package 'tidyr' was built under R version 4.4.2
## Warning: package 'readr' was built under R version 4.4.2
## Warning: package 'purrr' was built under R version 4.4.2
## Warning: package 'dplyr' was built under R version 4.4.2
## Warning: package 'stringr' was built under R version 4.4.2
## Warning: package 'forcats' was built under R version 4.4.2
## Warning: package 'lubridate' was built under R version 4.4.2
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr     1.1.4     ✔ readr     2.1.5
## ✔ forcats   1.0.0     ✔ stringr   1.5.1
## ✔ ggplot2   3.5.1     ✔ tibble    3.2.1
## ✔ lubridate 1.9.3     ✔ tidyr     1.3.1
## ✔ purrr     1.0.2     
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag()    masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
library(dplyr)
library(datasets)

Dataset Exploration

Dataset yang digunakan merupakan bawaan dari RStudio, yaitu “mtcars”

mtcars
##                      mpg cyl  disp  hp drat    wt  qsec vs am gear carb
## Mazda RX4           21.0   6 160.0 110 3.90 2.620 16.46  0  1    4    4
## Mazda RX4 Wag       21.0   6 160.0 110 3.90 2.875 17.02  0  1    4    4
## Datsun 710          22.8   4 108.0  93 3.85 2.320 18.61  1  1    4    1
## Hornet 4 Drive      21.4   6 258.0 110 3.08 3.215 19.44  1  0    3    1
## Hornet Sportabout   18.7   8 360.0 175 3.15 3.440 17.02  0  0    3    2
## Valiant             18.1   6 225.0 105 2.76 3.460 20.22  1  0    3    1
## Duster 360          14.3   8 360.0 245 3.21 3.570 15.84  0  0    3    4
## Merc 240D           24.4   4 146.7  62 3.69 3.190 20.00  1  0    4    2
## Merc 230            22.8   4 140.8  95 3.92 3.150 22.90  1  0    4    2
## Merc 280            19.2   6 167.6 123 3.92 3.440 18.30  1  0    4    4
## Merc 280C           17.8   6 167.6 123 3.92 3.440 18.90  1  0    4    4
## Merc 450SE          16.4   8 275.8 180 3.07 4.070 17.40  0  0    3    3
## Merc 450SL          17.3   8 275.8 180 3.07 3.730 17.60  0  0    3    3
## Merc 450SLC         15.2   8 275.8 180 3.07 3.780 18.00  0  0    3    3
## Cadillac Fleetwood  10.4   8 472.0 205 2.93 5.250 17.98  0  0    3    4
## Lincoln Continental 10.4   8 460.0 215 3.00 5.424 17.82  0  0    3    4
## Chrysler Imperial   14.7   8 440.0 230 3.23 5.345 17.42  0  0    3    4
## Fiat 128            32.4   4  78.7  66 4.08 2.200 19.47  1  1    4    1
## Honda Civic         30.4   4  75.7  52 4.93 1.615 18.52  1  1    4    2
## Toyota Corolla      33.9   4  71.1  65 4.22 1.835 19.90  1  1    4    1
## Toyota Corona       21.5   4 120.1  97 3.70 2.465 20.01  1  0    3    1
## Dodge Challenger    15.5   8 318.0 150 2.76 3.520 16.87  0  0    3    2
## AMC Javelin         15.2   8 304.0 150 3.15 3.435 17.30  0  0    3    2
## Camaro Z28          13.3   8 350.0 245 3.73 3.840 15.41  0  0    3    4
## Pontiac Firebird    19.2   8 400.0 175 3.08 3.845 17.05  0  0    3    2
## Fiat X1-9           27.3   4  79.0  66 4.08 1.935 18.90  1  1    4    1
## Porsche 914-2       26.0   4 120.3  91 4.43 2.140 16.70  0  1    5    2
## Lotus Europa        30.4   4  95.1 113 3.77 1.513 16.90  1  1    5    2
## Ford Pantera L      15.8   8 351.0 264 4.22 3.170 14.50  0  1    5    4
## Ferrari Dino        19.7   6 145.0 175 3.62 2.770 15.50  0  1    5    6
## Maserati Bora       15.0   8 301.0 335 3.54 3.570 14.60  0  1    5    8
## Volvo 142E          21.4   4 121.0 109 4.11 2.780 18.60  1  1    4    2
colnames(mtcars)
##  [1] "mpg"  "cyl"  "disp" "hp"   "drat" "wt"   "qsec" "vs"   "am"   "gear"
## [11] "carb"
str(mtcars)
## 'data.frame':    32 obs. of  11 variables:
##  $ mpg : num  21 21 22.8 21.4 18.7 18.1 14.3 24.4 22.8 19.2 ...
##  $ cyl : num  6 6 4 6 8 6 8 4 4 6 ...
##  $ disp: num  160 160 108 258 360 ...
##  $ hp  : num  110 110 93 110 175 105 245 62 95 123 ...
##  $ drat: num  3.9 3.9 3.85 3.08 3.15 2.76 3.21 3.69 3.92 3.92 ...
##  $ wt  : num  2.62 2.88 2.32 3.21 3.44 ...
##  $ qsec: num  16.5 17 18.6 19.4 17 ...
##  $ vs  : num  0 0 1 1 0 1 0 1 1 1 ...
##  $ am  : num  1 1 1 0 0 0 0 0 0 0 ...
##  $ gear: num  4 4 4 3 3 3 3 4 4 4 ...
##  $ carb: num  4 4 1 1 2 1 4 2 2 4 ...

Tipe data pada seluruh kolom adalah number

any(is.na(mtcars))
## [1] FALSE

Dataset ini tidak memiliki value yang kosong

mtcars_new <- mtcars %>% rownames_to_column(var = "nama_mobil")
mtcars_new
##             nama_mobil  mpg cyl  disp  hp drat    wt  qsec vs am gear carb
## 1            Mazda RX4 21.0   6 160.0 110 3.90 2.620 16.46  0  1    4    4
## 2        Mazda RX4 Wag 21.0   6 160.0 110 3.90 2.875 17.02  0  1    4    4
## 3           Datsun 710 22.8   4 108.0  93 3.85 2.320 18.61  1  1    4    1
## 4       Hornet 4 Drive 21.4   6 258.0 110 3.08 3.215 19.44  1  0    3    1
## 5    Hornet Sportabout 18.7   8 360.0 175 3.15 3.440 17.02  0  0    3    2
## 6              Valiant 18.1   6 225.0 105 2.76 3.460 20.22  1  0    3    1
## 7           Duster 360 14.3   8 360.0 245 3.21 3.570 15.84  0  0    3    4
## 8            Merc 240D 24.4   4 146.7  62 3.69 3.190 20.00  1  0    4    2
## 9             Merc 230 22.8   4 140.8  95 3.92 3.150 22.90  1  0    4    2
## 10            Merc 280 19.2   6 167.6 123 3.92 3.440 18.30  1  0    4    4
## 11           Merc 280C 17.8   6 167.6 123 3.92 3.440 18.90  1  0    4    4
## 12          Merc 450SE 16.4   8 275.8 180 3.07 4.070 17.40  0  0    3    3
## 13          Merc 450SL 17.3   8 275.8 180 3.07 3.730 17.60  0  0    3    3
## 14         Merc 450SLC 15.2   8 275.8 180 3.07 3.780 18.00  0  0    3    3
## 15  Cadillac Fleetwood 10.4   8 472.0 205 2.93 5.250 17.98  0  0    3    4
## 16 Lincoln Continental 10.4   8 460.0 215 3.00 5.424 17.82  0  0    3    4
## 17   Chrysler Imperial 14.7   8 440.0 230 3.23 5.345 17.42  0  0    3    4
## 18            Fiat 128 32.4   4  78.7  66 4.08 2.200 19.47  1  1    4    1
## 19         Honda Civic 30.4   4  75.7  52 4.93 1.615 18.52  1  1    4    2
## 20      Toyota Corolla 33.9   4  71.1  65 4.22 1.835 19.90  1  1    4    1
## 21       Toyota Corona 21.5   4 120.1  97 3.70 2.465 20.01  1  0    3    1
## 22    Dodge Challenger 15.5   8 318.0 150 2.76 3.520 16.87  0  0    3    2
## 23         AMC Javelin 15.2   8 304.0 150 3.15 3.435 17.30  0  0    3    2
## 24          Camaro Z28 13.3   8 350.0 245 3.73 3.840 15.41  0  0    3    4
## 25    Pontiac Firebird 19.2   8 400.0 175 3.08 3.845 17.05  0  0    3    2
## 26           Fiat X1-9 27.3   4  79.0  66 4.08 1.935 18.90  1  1    4    1
## 27       Porsche 914-2 26.0   4 120.3  91 4.43 2.140 16.70  0  1    5    2
## 28        Lotus Europa 30.4   4  95.1 113 3.77 1.513 16.90  1  1    5    2
## 29      Ford Pantera L 15.8   8 351.0 264 4.22 3.170 14.50  0  1    5    4
## 30        Ferrari Dino 19.7   6 145.0 175 3.62 2.770 15.50  0  1    5    6
## 31       Maserati Bora 15.0   8 301.0 335 3.54 3.570 14.60  0  1    5    8
## 32          Volvo 142E 21.4   4 121.0 109 4.11 2.780 18.60  1  1    4    2

Karena sebelumnya nama mobil terdapat pada baris yang belum terdapat nama kolom, saya menambahnya agar menjadi sebuah kolom baru bernama nama_mobil

Dataset Analysis

Menggunakan function Summarise

avg_bensin <- mtcars_new %>% summarise(avg_mpg = mean(mpg, na.rm = TRUE))
avg_bensin
##    avg_mpg
## 1 20.09062

Hasil rata-rata dari konsumsi bensin per mile adalah 20.09 dengan mengabaikan value yang kosong (Jika ada)

Menggunakan function Arrange dan Select

urutan_hp <- mtcars_new %>% arrange(desc(hp)) %>%select(nama_mobil, hp)
urutan_hp
##             nama_mobil  hp
## 1        Maserati Bora 335
## 2       Ford Pantera L 264
## 3           Duster 360 245
## 4           Camaro Z28 245
## 5    Chrysler Imperial 230
## 6  Lincoln Continental 215
## 7   Cadillac Fleetwood 205
## 8           Merc 450SE 180
## 9           Merc 450SL 180
## 10         Merc 450SLC 180
## 11   Hornet Sportabout 175
## 12    Pontiac Firebird 175
## 13        Ferrari Dino 175
## 14    Dodge Challenger 150
## 15         AMC Javelin 150
## 16            Merc 280 123
## 17           Merc 280C 123
## 18        Lotus Europa 113
## 19           Mazda RX4 110
## 20       Mazda RX4 Wag 110
## 21      Hornet 4 Drive 110
## 22          Volvo 142E 109
## 23             Valiant 105
## 24       Toyota Corona  97
## 25            Merc 230  95
## 26          Datsun 710  93
## 27       Porsche 914-2  91
## 28            Fiat 128  66
## 29           Fiat X1-9  66
## 30      Toyota Corolla  65
## 31           Merc 240D  62
## 32         Honda Civic  52

Mengurutkan nama mobil berdasarkan horsepower dari yang terbesar hingga terkecil

Menggunakan function Filter dan Select

mobil_4cylynder <- mtcars_new %>% filter(cyl == 4) %>% select(nama_mobil, cyl)
mobil_4cylynder
##        nama_mobil cyl
## 1      Datsun 710   4
## 2       Merc 240D   4
## 3        Merc 230   4
## 4        Fiat 128   4
## 5     Honda Civic   4
## 6  Toyota Corolla   4
## 7   Toyota Corona   4
## 8       Fiat X1-9   4
## 9   Porsche 914-2   4
## 10   Lotus Europa   4
## 11     Volvo 142E   4

Memfilter agar mobil dengan 4 cylynder saja yang muncul

Menggunakan function Select

select_mtcars <- mtcars_new %>% select(nama_mobil, mpg, hp, wt)
select_mtcars
##             nama_mobil  mpg  hp    wt
## 1            Mazda RX4 21.0 110 2.620
## 2        Mazda RX4 Wag 21.0 110 2.875
## 3           Datsun 710 22.8  93 2.320
## 4       Hornet 4 Drive 21.4 110 3.215
## 5    Hornet Sportabout 18.7 175 3.440
## 6              Valiant 18.1 105 3.460
## 7           Duster 360 14.3 245 3.570
## 8            Merc 240D 24.4  62 3.190
## 9             Merc 230 22.8  95 3.150
## 10            Merc 280 19.2 123 3.440
## 11           Merc 280C 17.8 123 3.440
## 12          Merc 450SE 16.4 180 4.070
## 13          Merc 450SL 17.3 180 3.730
## 14         Merc 450SLC 15.2 180 3.780
## 15  Cadillac Fleetwood 10.4 205 5.250
## 16 Lincoln Continental 10.4 215 5.424
## 17   Chrysler Imperial 14.7 230 5.345
## 18            Fiat 128 32.4  66 2.200
## 19         Honda Civic 30.4  52 1.615
## 20      Toyota Corolla 33.9  65 1.835
## 21       Toyota Corona 21.5  97 2.465
## 22    Dodge Challenger 15.5 150 3.520
## 23         AMC Javelin 15.2 150 3.435
## 24          Camaro Z28 13.3 245 3.840
## 25    Pontiac Firebird 19.2 175 3.845
## 26           Fiat X1-9 27.3  66 1.935
## 27       Porsche 914-2 26.0  91 2.140
## 28        Lotus Europa 30.4 113 1.513
## 29      Ford Pantera L 15.8 264 3.170
## 30        Ferrari Dino 19.7 175 2.770
## 31       Maserati Bora 15.0 335 3.570
## 32          Volvo 142E 21.4 109 2.780

Melihat nama mobil dengan setiap mpg, hp, dan wt nya

##Menggunakan function Mutate

efisiensi_bensin <- mtcars_new %>% mutate(efisiensi = ifelse(mpg > 20, "Efisien", "Tidak Efisien")) %>% select(nama_mobil, mpg, efisiensi)
efisiensi_bensin
##             nama_mobil  mpg     efisiensi
## 1            Mazda RX4 21.0       Efisien
## 2        Mazda RX4 Wag 21.0       Efisien
## 3           Datsun 710 22.8       Efisien
## 4       Hornet 4 Drive 21.4       Efisien
## 5    Hornet Sportabout 18.7 Tidak Efisien
## 6              Valiant 18.1 Tidak Efisien
## 7           Duster 360 14.3 Tidak Efisien
## 8            Merc 240D 24.4       Efisien
## 9             Merc 230 22.8       Efisien
## 10            Merc 280 19.2 Tidak Efisien
## 11           Merc 280C 17.8 Tidak Efisien
## 12          Merc 450SE 16.4 Tidak Efisien
## 13          Merc 450SL 17.3 Tidak Efisien
## 14         Merc 450SLC 15.2 Tidak Efisien
## 15  Cadillac Fleetwood 10.4 Tidak Efisien
## 16 Lincoln Continental 10.4 Tidak Efisien
## 17   Chrysler Imperial 14.7 Tidak Efisien
## 18            Fiat 128 32.4       Efisien
## 19         Honda Civic 30.4       Efisien
## 20      Toyota Corolla 33.9       Efisien
## 21       Toyota Corona 21.5       Efisien
## 22    Dodge Challenger 15.5 Tidak Efisien
## 23         AMC Javelin 15.2 Tidak Efisien
## 24          Camaro Z28 13.3 Tidak Efisien
## 25    Pontiac Firebird 19.2 Tidak Efisien
## 26           Fiat X1-9 27.3       Efisien
## 27       Porsche 914-2 26.0       Efisien
## 28        Lotus Europa 30.4       Efisien
## 29      Ford Pantera L 15.8 Tidak Efisien
## 30        Ferrari Dino 19.7 Tidak Efisien
## 31       Maserati Bora 15.0 Tidak Efisien
## 32          Volvo 142E 21.4       Efisien

Melihat nama mobil yang memiliki efisiensi bensin yang baik dengan menambahkan kolom penilai keefisiensian dengan asumsi mpg > 20, maka disebut “efisien”