Lembaga : UIN Maulana Malik Ibrahim Malang
Jurusan : Teknik Informatika
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
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()
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
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:
A left joint adalah menyimpan semua pengamatan di data_Lembaga.
A right joint adalah menyimpan semua pengamatan di data_Program_Studi.
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.
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)
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
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
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 prosesleft joinsetiap kali kita mencari data tambahan di tabel lain, karena pengamatan asli dipertahankan meskipun tidak ada kecocokan.left joinharus menjadi sambungan proses secara default : prosedur ini adalahleft joinyang harus dipegang untuk digunakan kecuali kita memiliki alasan yang baik untuk memilih salah satu dari prosesouther joinlainnya. Berikut visualisasi operasi joint dengan diagram venn dari semua jenis operasi joint diatas.
Relational Data set