Lembaga : UIN Maulana Malik Ibrahim Malang
Jurusan : Teknik Informatika

PENDAHULUAN

Seperti dari kata aslinya kita dapat memahami pengertian relational database adalah database dengan tabel-tabel yang saling berhubungan satu dengan yang lain. Secara praktis kita dapat memahami bahwa antar satu tabel memiliki kaitan dengan tabel lain.

Sebagai contoh pertama-tama kita memiliki tabel pelanggan. Pada tabel pelanggan ini akan menyimpan data seperti nama_pelanggan, alamat, nomor_telepon, email dan lain-lain. Kemudian untuk memudahkan identifikasi pelanggan kita memiliki field no_pelanggan di mana setiap pelanggan memiliki no_pelanggan sendiri-sendiri yang berbeda dengan pelanggan-pelanggan lain.

Secara struktur dalam sebuah relational database ini terdapat tabel-tabel. Seperti kita memahami tabel dalam spreadsheet, maka ada kolom dan baris. Kita memahami kolom-kolom sebagai field-field, kemudian baris-baris adalah data dari setiap record.

Berikut langkah-langkah melakukan Relational Data Set menggunakan bahasa R pada RStudio

1. Pertama

Mengaktifkan library tidyverse dengan mengunduh packages, lalu melakukan pemanggilan pada R chunk.

library(tidyverse)
## Warning: package 'tidyverse' was built under R version 4.1.3
## -- 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.3
## Warning: package 'tibble' was built under R version 4.1.3
## Warning: package 'tidyr' was built under R version 4.1.3
## Warning: package 'readr' was built under R version 4.1.3
## Warning: package 'purrr' was built under R version 4.1.3
## Warning: package 'dplyr' was built under R version 4.1.3
## Warning: package 'forcats' was built under R version 4.1.3
## -- Conflicts ------------------------------------------ tidyverse_conflicts() --
## x dplyr::filter() masks stats::filter()
## x dplyr::lag()    masks stats::lag()

2. Ke-Dua

Membuat tabel data set yang akan dihubungkan dimana pada RStudio terdapat fungsi data.frame() yang berguna untuk menciptakan tabel. Kemudian Menampilkan Datanya.

## Membuat Table
## Table 1
data_Lembaga <-data.frame(Provinsi = c('Jawa Barat', 'Jawa Tengah', 'Jawa Timur', 'D.I. Yogyakarta', 'Aceh', 'Sumatera Utara', 'Sumatera Barat', 'Riau'
),
Lembaga = c(377, 259, 328, 103, 94, 219, 96, 77
 ), 
stringsAsFactors = FALSE)
## Table 2
data_Program_Studi <-data.frame(Provinsi = c('D.K.I. Jakarta','Jawa Barat', 'Jawa Tengah', 'Jawa Timur', 'Aceh', 'Sumatera Utara', 'Sumatera Barat', 'Riau'
),
"Program Studi" = c(1163, 1993, 1555,  2277,  337, 1113, 415, 325), 
stringsAsFactors = FALSE)
## Menampilkan Data
data_Lembaga
##          Provinsi Lembaga
## 1      Jawa Barat     377
## 2     Jawa Tengah     259
## 3      Jawa Timur     328
## 4 D.I. Yogyakarta     103
## 5            Aceh      94
## 6  Sumatera Utara     219
## 7  Sumatera Barat      96
## 8            Riau      77
data_Program_Studi
##         Provinsi Program.Studi
## 1 D.K.I. Jakarta          1163
## 2     Jawa Barat          1993
## 3    Jawa Tengah          1555
## 4     Jawa Timur          2277
## 5           Aceh           337
## 6 Sumatera Utara          1113
## 7 Sumatera Barat           415
## 8           Riau           325

3. Ke-Tiga

Menggabungkan dua tabel yang telah dibuat. Untuk menghubungkan kedua tabel data set tersebut maka sebagai acuan untuk mencocokkan adalah pada variabel “key”. Dalam contoh ini, kita akan mencocokan antara variabel “Provinsi” pada tabel data_Lembaga dengan variabel “Provinsi” pada tabel data_Program_Studi, kedua tabel tersebut digeneralisasi secara langsung ke beberapa key dan ke beberapa value. Untuk mendapatkan gabungan kedua tabel adalah dengan cara menghubungkan setiap baris di tabel data_Lembaga yang ke nol, satu, kedua atau lebih, dengan setiap baris di tabel data_Program_Studi. Terdapat berbagai macam jenis gabungan dalam menghubungkan data set. Berikut macam-macam gabungan data :

1. Inner Join
yaitu sebuah perintah yang digunakan untuk menampilkan sebuah data atau record dengan menghubungkan dua table atau lebih dalam satu perintah, proses menggabungkan dua tabel menggunakan variabel key (kata kunci) yang sama di kedua tabel saat kecocokan dibuat. Output dari inner join adalah data frame baru yang berisi key, value tabel data_Lembaga, dan value tabel data_Program_Studi. Untuk melakukan inner join kita dapat menggunak fungsi inner join yang tersedia pada library dplyr.

data_Lembaga %>% 
  inner_join(data_Program_Studi, by = "Provinsi")
##         Provinsi Lembaga Program.Studi
## 1     Jawa Barat     377          1993
## 2    Jawa Tengah     259          1555
## 3     Jawa Timur     328          2277
## 4           Aceh      94           337
## 5 Sumatera Utara     219          1113
## 6 Sumatera Barat      96           415
## 7           Riau      77           325
  • Pada inner join baris yang tidak cocok tidak disertakan dalam hasil pada tabel gabungan. Artinya, secara umum inner join biasanya tidak sesuai untuk digunakan dalam analisis karena terlalu mudah untuk kehilangan data.

1. Outer Join
Outer join akan menyimpan data yang berbeda dengan inner join , dimana data yang sesuai dan muncul di salah satu tabel. Terdapa tiga macam Outer joins:

  1. A left joint adalah menyimpan semua pengamatan di data_Lembaga.

  2. A right joint adalah menyimpan semua pengamatan di data_Program_Studi.

  3. A full joint adalah menjaga semua pengamatan di data_Lembaga dan data_Program_Studi.

Proses joint ini bekerja dengan menambahkan variabel “value” menjadi data “virtual” pada salah satu tabel. Hasil nya dapat memiliki key yang selalu cocok (jika tidak ada kunci lain yang cocok), dan value diisi dengan NA.

4. Ke-Empat

Sebelum menggabungkan dua tabel dengan jenis outer joins sebelumnya kita perlu membuat tabel yang akan digabungkan.

## Membuat Tabel yang akan di gabungkan
data_Lembaga <-data.frame(Provinsi = c('Jawa Barat', 'Jawa Tengah', 'Jawa Timur', 'D.I. Yogyakarta', 'Aceh', 'Sumatera Utara', 'Sumatera Barat', 'Riau'
),
Lembaga = c(377, 259, 328, 103, 94, 219, 96, 77 ), 
stringsAsFactors = FALSE)

data_Program_Studi <-data.frame(Provinsi = c('D.K.I. Jakarta','Jawa Barat', 'Jawa Tengah', 'Jawa Timur', 'Aceh', 'Sumatera Utara', 'Sumatera Barat', 'Riau'
),
"Program Studi" = c(1634, 1993, 1555,  2277, 337, 1113, 415, 325 ), 
stringsAsFactors = FALSE)

5. Ke-Lima

Menggabungkan dua tabel yang dengan jenis gabungan left joins yang menyimpan semua data di data_Lembaga.

left_join(data_Lembaga,data_Program_Studi)
## Joining, by = "Provinsi"
##          Provinsi Lembaga Program.Studi
## 1      Jawa Barat     377          1993
## 2     Jawa Tengah     259          1555
## 3      Jawa Timur     328          2277
## 4 D.I. Yogyakarta     103            NA
## 5            Aceh      94           337
## 6  Sumatera Utara     219          1113
## 7  Sumatera Barat      96           415
## 8            Riau      77           325

6. Ke-Enam

Menggabungkan dua tabel yang dengan jenis gabungan right joins yang menyimpan semua data di data_Program_Studi.

right_join(data_Lembaga,data_Program_Studi)
## Joining, by = "Provinsi"
##         Provinsi Lembaga Program.Studi
## 1     Jawa Barat     377          1993
## 2    Jawa Tengah     259          1555
## 3     Jawa Timur     328          2277
## 4           Aceh      94           337
## 5 Sumatera Utara     219          1113
## 6 Sumatera Barat      96           415
## 7           Riau      77           325
## 8 D.K.I. Jakarta      NA          1634

7. Ke-Tujuh

Menggabungkan dua tabel yang dengan jenis gabungan full joins yang menjaga semua pengamatan di data_Lembaga dan data_Program_Studi.

full_join(data_Lembaga,data_Program_Studi)
## Joining, by = "Provinsi"
##          Provinsi Lembaga Program.Studi
## 1      Jawa Barat     377          1993
## 2     Jawa Tengah     259          1555
## 3      Jawa Timur     328          2277
## 4 D.I. Yogyakarta     103            NA
## 5            Aceh      94           337
## 6  Sumatera Utara     219          1113
## 7  Sumatera Barat      96           415
## 8            Riau      77           325
## 9  D.K.I. Jakarta      NA          1634

Operasi joint yang paling sering digunakan adalah left join. Gunakan proses left join setiap kali kita mencari data tambahan di tabel lain, karena pengamatan asli dipertahankan meskipun tidak ada kecocokan. left join harus menjadi sambungan proses secara default : prosedur ini adalah left join yang harus dipegang untuk digunakan kecuali kita memiliki alasan yang baik untuk memilih salah satu dari proses outher join lainnya. Berikut visualisasi operasi joint dengan diagram venn dari semua jenis operasi joint diatas.

Relational Data set