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

Lembaga : Universitas Islam Negeri Maulana Malik Ibrahim Malang

Prodi : Teknik Informatika

library(tidyverse)
## -- 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
## -- Conflicts ------------------------------------------ tidyverse_conflicts() --
## x dplyr::filter() masks stats::filter()
## x dplyr::lag()    masks stats::lag()

Pengertian Relasional Data Set

Relational data set merupakan umpulan item data dengan hubungan yang telah ditentukan sebelumnya. Berbagai item ini disusun menjadi satu set tabel dengan kolom dan baris. Tabel digunakan untuk menyimpan informasi tentang objek yang akan direpresentasikan. Tiap kolom pada tabel memuat jenis data tertentu dan bidang menyimpan nilai aktual atribut. Baris pada tabel merepresentasikan kumpulan nilai terkait dari satu objek atau entitas. Tiap baris pada tabel dapat ditandai dengan pengidentifikasi unik yang disebut kunci utama, dan baris di antara beberapa tabel dapat dibuat saling terkait menggunakan kunci asing. Data ini dapat diakses dengan berbagai cara tanpa menyusun ulang tabel basis data itu sendiri.
basis data relasional digunakan untuk mengorganisir berdasarkan model hubungan data. Banyak sekali perangkat lunak yang menggunakan sistem ini untuk mengatur dan memelihara basis data melalui hubungan setiap data

Tabel Data Penduduk Laki-Laki Berumur 10 Tahun Buta Huruf

lakilaki <- data.frame(
  'Provinsi' = c("Aceh", "Sumatera Utara", "Sumatera Barat", "Sumatera Selatan", "Jambi", "Bengkulu", "Lampung", "Riau"),
  "Laki-Laki(Persen)"= c(0.92, 0.49, 0.49, 0.69, 1.29, 1.06, 1.38, 0.54),
  stringsAsFactors = FALSE)
lakilaki
##           Provinsi Laki.Laki.Persen.
## 1             Aceh              0.92
## 2   Sumatera Utara              0.49
## 3   Sumatera Barat              0.49
## 4 Sumatera Selatan              0.69
## 5            Jambi              1.29
## 6         Bengkulu              1.06
## 7          Lampung              1.38
## 8             Riau              0.54

Tabel Data Penduduk Perempuan Berumur 10 Tahun Buta Huruf

perempuan <- data.frame(
  'Provinsi' = c("Aceh", "Sumatera Utara", "Sumatera Barat", "Sumatera Selatan", "Jambi", "Bengkulu", "Lampung", "Riau"),
  "Perempuan(Persen)"= c(2.34, 1.07, 0.96, 1.61, 2.31, 2.86, 3.59, 1.00),
  stringsAsFactors = FALSE)
perempuan
##           Provinsi Perempuan.Persen.
## 1             Aceh              2.34
## 2   Sumatera Utara              1.07
## 3   Sumatera Barat              0.96
## 4 Sumatera Selatan              1.61
## 5            Jambi              2.31
## 6         Bengkulu              2.86
## 7          Lampung              3.59
## 8             Riau              1.00

Penggabungan Data Laki-Laki dan Perempuan

library(dplyr)
datagabungan <- merge(
  x = lakilaki,
  y = perempuan,
  by = 'Provinsi',
  all = TRUE
)
datagabungan
##           Provinsi Laki.Laki.Persen. Perempuan.Persen.
## 1             Aceh              0.92              2.34
## 2         Bengkulu              1.06              2.86
## 3            Jambi              1.29              2.31
## 4          Lampung              1.38              3.59
## 5             Riau              0.54              1.00
## 6   Sumatera Barat              0.49              0.96
## 7 Sumatera Selatan              0.69              1.61
## 8   Sumatera Utara              0.49              1.07

Inner Joins antara Data Laki-Laki dan Perempuan

InnerJoins <- lakilaki %>% 
  inner_join(perempuan, by = "Provinsi")
InnerJoins
##           Provinsi Laki.Laki.Persen. Perempuan.Persen.
## 1             Aceh              0.92              2.34
## 2   Sumatera Utara              0.49              1.07
## 3   Sumatera Barat              0.49              0.96
## 4 Sumatera Selatan              0.69              1.61
## 5            Jambi              1.29              2.31
## 6         Bengkulu              1.06              2.86
## 7          Lampung              1.38              3.59
## 8             Riau              0.54              1.00

Outer Joins antar Data Laki-Laki dan Perempuan

1. A Left Join

leftjoin <- left_join(lakilaki,perempuan)
## Joining, by = "Provinsi"
leftjoin
##           Provinsi Laki.Laki.Persen. Perempuan.Persen.
## 1             Aceh              0.92              2.34
## 2   Sumatera Utara              0.49              1.07
## 3   Sumatera Barat              0.49              0.96
## 4 Sumatera Selatan              0.69              1.61
## 5            Jambi              1.29              2.31
## 6         Bengkulu              1.06              2.86
## 7          Lampung              1.38              3.59
## 8             Riau              0.54              1.00

2. A Right Join

Rightjoins <- right_join(lakilaki,perempuan)
## Joining, by = "Provinsi"
Rightjoins
##           Provinsi Laki.Laki.Persen. Perempuan.Persen.
## 1             Aceh              0.92              2.34
## 2   Sumatera Utara              0.49              1.07
## 3   Sumatera Barat              0.49              0.96
## 4 Sumatera Selatan              0.69              1.61
## 5            Jambi              1.29              2.31
## 6         Bengkulu              1.06              2.86
## 7          Lampung              1.38              3.59
## 8             Riau              0.54              1.00

3. A Full Join

fulljoin <- full_join(lakilaki,perempuan)
## Joining, by = "Provinsi"
fulljoin
##           Provinsi Laki.Laki.Persen. Perempuan.Persen.
## 1             Aceh              0.92              2.34
## 2   Sumatera Utara              0.49              1.07
## 3   Sumatera Barat              0.49              0.96
## 4 Sumatera Selatan              0.69              1.61
## 5            Jambi              1.29              2.31
## 6         Bengkulu              1.06              2.86
## 7          Lampung              1.38              3.59
## 8             Riau              0.54              1.00

Visualisasi Relasional Data Set

plot(InnerJoins$Laki.Laki.Persen.,type = "o", col= "red")
lines(InnerJoins$Perempuan.Persen.,type = "o", col= "blue")
legend("top",c("Laki-Laki Buta Huruf","Perempuan Buta Huruf"),fill=c("red","blue"))