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

Lembaga : Universitas Islam Negeri Maulana Malik Ibrahim Malang

Jurusan : Teknik Informatika

Data Relational

Data Relational adalah suatu model basis data yang menggunakan tabel dua dimensi, yang terdiri atas baris dan kolom untuk menggambarkan sebuah berkas data.

Model ini menunjukkan cara mengelola atau mengorganisasikan data secara fisik dalam memory sekunder, yang akan berdampak pula pada bagaimana kita mengelompokkan data dan membentuk keseluruhan data yang terkait dalam sistem yang kita buat.

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.4     v dplyr   1.0.7
## v tidyr   1.1.4     v stringr 1.4.0
## v readr   2.0.2     v forcats 0.5.1
## -- Conflicts ------------------------------------------ tidyverse_conflicts() --
## x dplyr::filter() masks stats::filter()
## x dplyr::lag()    masks stats::lag()

Tabel NIM dan Nama Mahasiswa Bahasa dan Sastra Kelas A

DataMahasiswa <- data.frame(
  NIM = c(210301110010, 210301110011, 210301110013, 210301110025, 210301110026, 210301110047, 210301110055, 210301110058, 210301110063, 210301110065, 210301110077, 210301110085, 210301110096, 210301110112, 210301110119, 210301110124, 210301110126, 210301110138, 210301110149, 210301110163, 210301110165, 210301110166 ), 'Nama Mahasiswa' = c("Muhammad Faza Fadlil Mubarok", "Maulana Maulidin An Nauval", "Aziz Aufalrul Umam", "Sayyidatul Muflihah", "Uswatul Qodriyah", "Rahmad Ramadhan", "Wahyuni", "Abdul Gifari Pratama Amboy", "Shofaa Qurrota Ayun", "Azka Izz Rasyid", "Mohammad Ulil Albab Abdalah", "M.Raihan Adha Putra", "Mawaddah El Rahmah", "Azmi Zaskiani Romza", "Ramadhani Reza Nur Fadhilah", "Nisa Khairini", "Beryl Labiq Hannany", "Mahendra Muhaimin", "Ahmad Gorang Khatami Guhir", "Riza Adinanta Rosyadi", "Hafitta Illa", "Maulida Hasbiya Qotrunnada"),
stringsAsFactors = FALSE)
DataMahasiswa
##             NIM               Nama.Mahasiswa
## 1  210301110010 Muhammad Faza Fadlil Mubarok
## 2  210301110011   Maulana Maulidin An Nauval
## 3  210301110013           Aziz Aufalrul Umam
## 4  210301110025          Sayyidatul Muflihah
## 5  210301110026             Uswatul Qodriyah
## 6  210301110047              Rahmad Ramadhan
## 7  210301110055                      Wahyuni
## 8  210301110058   Abdul Gifari Pratama Amboy
## 9  210301110063          Shofaa Qurrota Ayun
## 10 210301110065              Azka Izz Rasyid
## 11 210301110077  Mohammad Ulil Albab Abdalah
## 12 210301110085          M.Raihan Adha Putra
## 13 210301110096           Mawaddah El Rahmah
## 14 210301110112          Azmi Zaskiani Romza
## 15 210301110119  Ramadhani Reza Nur Fadhilah
## 16 210301110124                Nisa Khairini
## 17 210301110126          Beryl Labiq Hannany
## 18 210301110138            Mahendra Muhaimin
## 19 210301110149   Ahmad Gorang Khatami Guhir
## 20 210301110163        Riza Adinanta Rosyadi
## 21 210301110165                 Hafitta Illa
## 22 210301110166   Maulida Hasbiya Qotrunnada

Tabel Data Jenis Kelamin

DataJenisKelamin <- data.frame(
   NIM = c(210301110010, 210301110011, 210301110013, 210301110025, 210301110026, 210301110047, 210301110055, 210301110058, 210301110063, 210301110065, 210301110077, 210301110085, 210301110096, 210301110112, 210301110119, 210301110124, 210301110126, 210301110138, 210301110149, 210301110163, 210301110165, 21030111066), JenisKelamin = c("Putra", "Putra","Putra", "Putri", "Putri", "Putra", "Putri", "Putra", "Putri", "Putra", "Putra", "Putra", "Putri", "Putra", "Putri", "Putra", "Putra", "Putra", "Putra", "Putra", "Putri", "Putri"),
stringsAsFactors = FALSE)
DataJenisKelamin
##             NIM JenisKelamin
## 1  210301110010        Putra
## 2  210301110011        Putra
## 3  210301110013        Putra
## 4  210301110025        Putri
## 5  210301110026        Putri
## 6  210301110047        Putra
## 7  210301110055        Putri
## 8  210301110058        Putra
## 9  210301110063        Putri
## 10 210301110065        Putra
## 11 210301110077        Putra
## 12 210301110085        Putra
## 13 210301110096        Putri
## 14 210301110112        Putra
## 15 210301110119        Putri
## 16 210301110124        Putra
## 17 210301110126        Putra
## 18 210301110138        Putra
## 19 210301110149        Putra
## 20 210301110163        Putra
## 21 210301110165        Putri
## 22  21030111066        Putri

Tabel Data Mahasiswa beserta Jenis Kelaminnya

library(dplyr)
MahasiswaKelasA1 <- merge(
  x = DataMahasiswa,
  y = DataJenisKelamin,
  by = 'NIM',
  all = TRUE
)
MahasiswaKelasA1
##             NIM               Nama.Mahasiswa JenisKelamin
## 1   21030111066                         <NA>        Putri
## 2  210301110010 Muhammad Faza Fadlil Mubarok        Putra
## 3  210301110011   Maulana Maulidin An Nauval        Putra
## 4  210301110013           Aziz Aufalrul Umam        Putra
## 5  210301110025          Sayyidatul Muflihah        Putri
## 6  210301110026             Uswatul Qodriyah        Putri
## 7  210301110047              Rahmad Ramadhan        Putra
## 8  210301110055                      Wahyuni        Putri
## 9  210301110058   Abdul Gifari Pratama Amboy        Putra
## 10 210301110063          Shofaa Qurrota Ayun        Putri
## 11 210301110065              Azka Izz Rasyid        Putra
## 12 210301110077  Mohammad Ulil Albab Abdalah        Putra
## 13 210301110085          M.Raihan Adha Putra        Putra
## 14 210301110096           Mawaddah El Rahmah        Putri
## 15 210301110112          Azmi Zaskiani Romza        Putra
## 16 210301110119  Ramadhani Reza Nur Fadhilah        Putri
## 17 210301110124                Nisa Khairini        Putra
## 18 210301110126          Beryl Labiq Hannany        Putra
## 19 210301110138            Mahendra Muhaimin        Putra
## 20 210301110149   Ahmad Gorang Khatami Guhir        Putra
## 21 210301110163        Riza Adinanta Rosyadi        Putra
## 22 210301110165                 Hafitta Illa        Putri
## 23 210301110166   Maulida Hasbiya Qotrunnada         <NA>

Tabel Data Alamat

DataAlamat <- data.frame(
   NIM = c(210301110010, 210301110011, 210301110013, 210301110025, 210301110026, 210301110047, 210301110055, 210301110058, 210301110063, 210301110065, 210301110077, 210301110085, 210301110096, 210301110112, 210301110119, 210301110124, 210301110126, 210301110138, 210301110149, 210301110163, 210301110165, 210301110166),
Alamat = c("Malang", "Malang", "Tulungagung", "Madiun", "Jepara", "Surabaya", "Bima", "Kotamobagu", "Madiun", "Pasuruan", "Gresik", "Bojonegoro", "Lamongan", "Jakarta", "Semarang", "Sidoarjo", "Lampung", "Batam", "Banjarmasin", "Medan", "Bali", "Malang"),
stringsAsFactors = FALSE)
DataAlamat
##             NIM      Alamat
## 1  210301110010      Malang
## 2  210301110011      Malang
## 3  210301110013 Tulungagung
## 4  210301110025      Madiun
## 5  210301110026      Jepara
## 6  210301110047    Surabaya
## 7  210301110055        Bima
## 8  210301110058  Kotamobagu
## 9  210301110063      Madiun
## 10 210301110065    Pasuruan
## 11 210301110077      Gresik
## 12 210301110085  Bojonegoro
## 13 210301110096    Lamongan
## 14 210301110112     Jakarta
## 15 210301110119    Semarang
## 16 210301110124    Sidoarjo
## 17 210301110126     Lampung
## 18 210301110138       Batam
## 19 210301110149 Banjarmasin
## 20 210301110163       Medan
## 21 210301110165        Bali
## 22 210301110166      Malang

Tabel Mahasiswa Beserta Jenis Kelamin dan Alamat

library(dplyr)
MahasiswaKelasA2 <- merge(
  x = MahasiswaKelasA1,
  y = DataAlamat,
  by = 'NIM',
  all = TRUE
  )
MahasiswaKelasA2
##             NIM               Nama.Mahasiswa JenisKelamin      Alamat
## 1   21030111066                         <NA>        Putri        <NA>
## 2  210301110010 Muhammad Faza Fadlil Mubarok        Putra      Malang
## 3  210301110011   Maulana Maulidin An Nauval        Putra      Malang
## 4  210301110013           Aziz Aufalrul Umam        Putra Tulungagung
## 5  210301110025          Sayyidatul Muflihah        Putri      Madiun
## 6  210301110026             Uswatul Qodriyah        Putri      Jepara
## 7  210301110047              Rahmad Ramadhan        Putra    Surabaya
## 8  210301110055                      Wahyuni        Putri        Bima
## 9  210301110058   Abdul Gifari Pratama Amboy        Putra  Kotamobagu
## 10 210301110063          Shofaa Qurrota Ayun        Putri      Madiun
## 11 210301110065              Azka Izz Rasyid        Putra    Pasuruan
## 12 210301110077  Mohammad Ulil Albab Abdalah        Putra      Gresik
## 13 210301110085          M.Raihan Adha Putra        Putra  Bojonegoro
## 14 210301110096           Mawaddah El Rahmah        Putri    Lamongan
## 15 210301110112          Azmi Zaskiani Romza        Putra     Jakarta
## 16 210301110119  Ramadhani Reza Nur Fadhilah        Putri    Semarang
## 17 210301110124                Nisa Khairini        Putra    Sidoarjo
## 18 210301110126          Beryl Labiq Hannany        Putra     Lampung
## 19 210301110138            Mahendra Muhaimin        Putra       Batam
## 20 210301110149   Ahmad Gorang Khatami Guhir        Putra Banjarmasin
## 21 210301110163        Riza Adinanta Rosyadi        Putra       Medan
## 22 210301110165                 Hafitta Illa        Putri        Bali
## 23 210301110166   Maulida Hasbiya Qotrunnada         <NA>      Malang

Data Set Menggunakan Key “NIM” dan Value “Jenis Kelamin”

DataJenisKelamin <- data.frame(
   NIM = c(210301110010, 210301110011, 210301110013, 210301110025, 210301110026, 210301110047, 210301110055, 210301110058, 210301110063, 210301110065, 210301110077, 210301110085, 210301110096, 210301110112, 210301110119, 210301110124, 210301110126, 210301110138, 210301110149, 210301110163, 210301110165, 210301110166), JenisKelamin = c("Putra", "Putra","Putra", "Putri", "Putri", "Putra", "Putri", "Putra", "Putri", "Putra", "Putra", "Putra", "Putri", "Putra", "Putri", "Putra", "Putra", "Putra", "Putra", "Putra", "Putri", "Putri"),
stringsAsFactors = FALSE)
DataJenisKelamin
##             NIM JenisKelamin
## 1  210301110010        Putra
## 2  210301110011        Putra
## 3  210301110013        Putra
## 4  210301110025        Putri
## 5  210301110026        Putri
## 6  210301110047        Putra
## 7  210301110055        Putri
## 8  210301110058        Putra
## 9  210301110063        Putri
## 10 210301110065        Putra
## 11 210301110077        Putra
## 12 210301110085        Putra
## 13 210301110096        Putri
## 14 210301110112        Putra
## 15 210301110119        Putri
## 16 210301110124        Putra
## 17 210301110126        Putra
## 18 210301110138        Putra
## 19 210301110149        Putra
## 20 210301110163        Putra
## 21 210301110165        Putri
## 22 210301110166        Putri

Penerapan Data Set Inner Join

innerJoin <- DataMahasiswa %>%
  inner_join(DataJenisKelamin, by = "NIM")
innerJoin
##             NIM               Nama.Mahasiswa JenisKelamin
## 1  210301110010 Muhammad Faza Fadlil Mubarok        Putra
## 2  210301110011   Maulana Maulidin An Nauval        Putra
## 3  210301110013           Aziz Aufalrul Umam        Putra
## 4  210301110025          Sayyidatul Muflihah        Putri
## 5  210301110026             Uswatul Qodriyah        Putri
## 6  210301110047              Rahmad Ramadhan        Putra
## 7  210301110055                      Wahyuni        Putri
## 8  210301110058   Abdul Gifari Pratama Amboy        Putra
## 9  210301110063          Shofaa Qurrota Ayun        Putri
## 10 210301110065              Azka Izz Rasyid        Putra
## 11 210301110077  Mohammad Ulil Albab Abdalah        Putra
## 12 210301110085          M.Raihan Adha Putra        Putra
## 13 210301110096           Mawaddah El Rahmah        Putri
## 14 210301110112          Azmi Zaskiani Romza        Putra
## 15 210301110119  Ramadhani Reza Nur Fadhilah        Putri
## 16 210301110124                Nisa Khairini        Putra
## 17 210301110126          Beryl Labiq Hannany        Putra
## 18 210301110138            Mahendra Muhaimin        Putra
## 19 210301110149   Ahmad Gorang Khatami Guhir        Putra
## 20 210301110163        Riza Adinanta Rosyadi        Putra
## 21 210301110165                 Hafitta Illa        Putri
## 22 210301110166   Maulida Hasbiya Qotrunnada        Putri

Penerapan Data Set Outer Join

1.) A Left Join

leftjoin <- left_join(DataMahasiswa,DataJenisKelamin)
## Joining, by = "NIM"
## Joining, by = "NIM"
leftjoin
##             NIM               Nama.Mahasiswa JenisKelamin
## 1  210301110010 Muhammad Faza Fadlil Mubarok        Putra
## 2  210301110011   Maulana Maulidin An Nauval        Putra
## 3  210301110013           Aziz Aufalrul Umam        Putra
## 4  210301110025          Sayyidatul Muflihah        Putri
## 5  210301110026             Uswatul Qodriyah        Putri
## 6  210301110047              Rahmad Ramadhan        Putra
## 7  210301110055                      Wahyuni        Putri
## 8  210301110058   Abdul Gifari Pratama Amboy        Putra
## 9  210301110063          Shofaa Qurrota Ayun        Putri
## 10 210301110065              Azka Izz Rasyid        Putra
## 11 210301110077  Mohammad Ulil Albab Abdalah        Putra
## 12 210301110085          M.Raihan Adha Putra        Putra
## 13 210301110096           Mawaddah El Rahmah        Putri
## 14 210301110112          Azmi Zaskiani Romza        Putra
## 15 210301110119  Ramadhani Reza Nur Fadhilah        Putri
## 16 210301110124                Nisa Khairini        Putra
## 17 210301110126          Beryl Labiq Hannany        Putra
## 18 210301110138            Mahendra Muhaimin        Putra
## 19 210301110149   Ahmad Gorang Khatami Guhir        Putra
## 20 210301110163        Riza Adinanta Rosyadi        Putra
## 21 210301110165                 Hafitta Illa        Putri
## 22 210301110166   Maulida Hasbiya Qotrunnada        Putri

2.) A Right Join

rightjoin <- right_join(DataMahasiswa,DataJenisKelamin)
## Joining, by = "NIM"
## Joining, by = "NIM"
rightjoin
##             NIM               Nama.Mahasiswa JenisKelamin
## 1  210301110010 Muhammad Faza Fadlil Mubarok        Putra
## 2  210301110011   Maulana Maulidin An Nauval        Putra
## 3  210301110013           Aziz Aufalrul Umam        Putra
## 4  210301110025          Sayyidatul Muflihah        Putri
## 5  210301110026             Uswatul Qodriyah        Putri
## 6  210301110047              Rahmad Ramadhan        Putra
## 7  210301110055                      Wahyuni        Putri
## 8  210301110058   Abdul Gifari Pratama Amboy        Putra
## 9  210301110063          Shofaa Qurrota Ayun        Putri
## 10 210301110065              Azka Izz Rasyid        Putra
## 11 210301110077  Mohammad Ulil Albab Abdalah        Putra
## 12 210301110085          M.Raihan Adha Putra        Putra
## 13 210301110096           Mawaddah El Rahmah        Putri
## 14 210301110112          Azmi Zaskiani Romza        Putra
## 15 210301110119  Ramadhani Reza Nur Fadhilah        Putri
## 16 210301110124                Nisa Khairini        Putra
## 17 210301110126          Beryl Labiq Hannany        Putra
## 18 210301110138            Mahendra Muhaimin        Putra
## 19 210301110149   Ahmad Gorang Khatami Guhir        Putra
## 20 210301110163        Riza Adinanta Rosyadi        Putra
## 21 210301110165                 Hafitta Illa        Putri
## 22 210301110166   Maulida Hasbiya Qotrunnada        Putri

3.) A Full Join

fulljoin <- full_join(DataMahasiswa,DataJenisKelamin)
## Joining, by = "NIM"
## Joining, by = "NIM"
fulljoin
##             NIM               Nama.Mahasiswa JenisKelamin
## 1  210301110010 Muhammad Faza Fadlil Mubarok        Putra
## 2  210301110011   Maulana Maulidin An Nauval        Putra
## 3  210301110013           Aziz Aufalrul Umam        Putra
## 4  210301110025          Sayyidatul Muflihah        Putri
## 5  210301110026             Uswatul Qodriyah        Putri
## 6  210301110047              Rahmad Ramadhan        Putra
## 7  210301110055                      Wahyuni        Putri
## 8  210301110058   Abdul Gifari Pratama Amboy        Putra
## 9  210301110063          Shofaa Qurrota Ayun        Putri
## 10 210301110065              Azka Izz Rasyid        Putra
## 11 210301110077  Mohammad Ulil Albab Abdalah        Putra
## 12 210301110085          M.Raihan Adha Putra        Putra
## 13 210301110096           Mawaddah El Rahmah        Putri
## 14 210301110112          Azmi Zaskiani Romza        Putra
## 15 210301110119  Ramadhani Reza Nur Fadhilah        Putri
## 16 210301110124                Nisa Khairini        Putra
## 17 210301110126          Beryl Labiq Hannany        Putra
## 18 210301110138            Mahendra Muhaimin        Putra
## 19 210301110149   Ahmad Gorang Khatami Guhir        Putra
## 20 210301110163        Riza Adinanta Rosyadi        Putra
## 21 210301110165                 Hafitta Illa        Putri
## 22 210301110166   Maulida Hasbiya Qotrunnada        Putri

Daftar Pustaka

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

http://teknikinformatika.fasilkom.mercubuana.ac.id/wp-content/uploads/2015/03/3.-Modul-3-Model-Data-Relasional.pdf