Pengertian Relasioal Data Set |
Relasional data set merupakan kumpulan item data yang memiliki perpaduan atau hubungan yang telah ditentukan sebelumnya. Berbagai item ini diatur sebagai satu set tabel menggunakan kolom dan baris. Tabel digunakan untuk menyimpan informasi tentang objek yang ditampilkan dalam database.
Tiap kolom dalam tabel memuat tipe data ekskusif , dan bidang tersebut menyimpan nilai aktual atribut. Baris dalam tabel mempresentasikan perpaduan nilai terkait berdasarkan satu objek atau entitas. Tiap baris pada tabel dapat ditandai dengan pengidentifikasi unik yang disebut kunci utama (keyword), dan baris di antara beberapa tabel dapat dibuat saling terkait menggunakan kunci asing.
Berikut tahapan dalam menerapkan relasional data set pada RStudio.
Tahap pertama yang harus dilakukan dalam menerapkan relasional data set pada RStudio adalah mengaktifkan library tidyverse
dengan mengunduh packages atau library tidyverse
library(tidyverse)
Tahapan kedua adalah membuat tabel data set yang akan dihubungkan dimana pada RStudio terdapat fungsi data.frame()
yang berguna untuk menciptakan tabel. Berikut contoh membuat tabel dengan data gambaran umum indeks harga konsumen januari 2022.
datasumatera <- data.frame(Kota = c('Meulaboh','Banda Aceh','Lhokseumawe','Sibolga','Pematang Siantar','Medan','Padangsidimpuan','Gunung Sitoli','Padang','Bukittinggi','Tembilahan','Pekan Baru','Dumai','Bungo','Jambi','Palembang','Lubuklinggau','Bengkulu','Bandar Lampung','Metro','Tanjung Pandan','Pangkal Pinang','Batam','Tanjung Pinang'), IHK = c('112','109','109','109','108','107','109','109','107','107','108','107','108','109','109','107','107','107','109','109','111','108','108','106'), stringsAsFactors = FALSE) datatingkat <- data.frame(Kota = c('Meulaboh','Banda Aceh','Lhokseumawe','Sibolga','Pematang Siantar','Medan','Padangsidimpuan','Gunung Sitoli','Padang','Bukittinggi','Tembilahan','Pekan Baru','Dumai','Bungo','Jambi','Palembang','Lubuklinggau','Bengkulu','Bandar Lampung','Metro','Tanjung Pandan','Pangkal Pinang','Batam','Tanjung Pinang'), "Tingkat Inflasi" = c('0,9','1,0','1,1','1,5','0,9','1,0','0,9','0,9','1,0','0,9','1,3','0.7','0,6','1,3','1,1','0,9','0,8','0,5','0,3','0,5','0,5','1,2','0,7','0,3'), stringsAsFactors = FALSE)
Tahapan ketiga adalah menampilkan data dari tabel yang telah di buat :
## Kota IHK
## 1 Meulaboh 112
## 2 Banda Aceh 109
## 3 Lhokseumawe 109
## 4 Sibolga 109
## 5 Pematang Siantar 108
## 6 Medan 107
## 7 Padangsidimpuan 109
## 8 Gunung Sitoli 109
## 9 Padang 107
## 10 Bukittinggi 107
## 11 Tembilahan 108
## 12 Pekan Baru 107
## 13 Dumai 108
## 14 Bungo 109
## 15 Jambi 109
## 16 Palembang 107
## 17 Lubuklinggau 107
## 18 Bengkulu 107
## 19 Bandar Lampung 109
## 20 Metro 109
## 21 Tanjung Pandan 111
## 22 Pangkal Pinang 108
## 23 Batam 108
## 24 Tanjung Pinang 106
## Kota Tingkat.Inflasi
## 1 Meulaboh 0,9
## 2 Banda Aceh 1,0
## 3 Lhokseumawe 1,1
## 4 Sibolga 1,5
## 5 Pematang Siantar 0,9
## 6 Medan 1,0
## 7 Padangsidimpuan 0,9
## 8 Gunung Sitoli 0,9
## 9 Padang 1,0
## 10 Bukittinggi 0,9
## 11 Tembilahan 1,3
## 12 Pekan Baru 0.7
## 13 Dumai 0,6
## 14 Bungo 1,3
## 15 Jambi 1,1
## 16 Palembang 0,9
## 17 Lubuklinggau 0,8
## 18 Bengkulu 0,5
## 19 Bandar Lampung 0,3
## 20 Metro 0,5
## 21 Tanjung Pandan 0,5
## 22 Pangkal Pinang 1,2
## 23 Batam 0,7
## 24 Tanjung Pinang 0,3
Tahapan keempat adalah 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 “Kota” pada tabel datasumatera dengan variabel “Kota” pada tabel datatingkat, 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 datasumatera yang ke nol, satu, kedua atau lebih, dengan setiap baris di tabel datatingkat.
Terdapat berbagai macam jenis gabungan dalam menghubungkan data set. Berikut macam-macam gabungan :
Inner Join
Inner join adalah 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 datatingkat. Untuk melakukan inner join kita dapat menggunak fungsi inner join
yang tersedia pada library dplyr
.
datasumatera %>%
inner_join(datatingkat, by = "Kota")
## Kota IHK Tingkat.Inflasi
## 1 Meulaboh 112 0,9
## 2 Banda Aceh 109 1,0
## 3 Lhokseumawe 109 1,1
## 4 Sibolga 109 1,5
## 5 Pematang Siantar 108 0,9
## 6 Medan 107 1,0
## 7 Padangsidimpuan 109 0,9
## 8 Gunung Sitoli 109 0,9
## 9 Padang 107 1,0
## 10 Bukittinggi 107 0,9
## 11 Tembilahan 108 1,3
## 12 Pekan Baru 107 0.7
## 13 Dumai 108 0,6
## 14 Bungo 109 1,3
## 15 Jambi 109 1,1
## 16 Palembang 107 0,9
## 17 Lubuklinggau 107 0,8
## 18 Bengkulu 107 0,5
## 19 Bandar Lampung 109 0,3
## 20 Metro 109 0,5
## 21 Tanjung Pandan 111 0,5
## 22 Pangkal Pinang 108 1,2
## 23 Batam 108 0,7
## 24 Tanjung Pinang 106 0,3
Nb : 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
Outer Join
Outer join akan menyimpan data yang berbeda dengan inner join , dimana data yang sesuai dan muncul di salah satu tabel. Terdapat tiga macam Outer joins :
A left joint adalah menyimpan semua pengamatan di datasumatera
A right joint adalah menyimpan semua pengamatan di datatingkat.
A full joint adalah menjaga semua pengamatan di datasumatera dan datatingkat.
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.
menggabungkan dua tabel dengan jenis outer joins
sebelumnya kita perlu membuat tabel yang akan digabungkan.
datasumatera <- data.frame(Kota = c('Meulaboh','Banda Aceh','Lhokseumawe','Sibolga','Pematang Siantar','Medan','Padangsidimpuan','Gunung Sitoli','Padang','Bukittinggi','Tembilahan','Pekan Baru','Dumai','Bungo','Jambi','Palembang','Lubuklinggau','Bengkulu','Bandar Lampung','Metro','Tanjung Pandan','Pangkal Pinang','Batam','Tanjung Pinang'),
IHK = c('112,44','109,58','109,93','109,81','108,83','107,02','109,66','109,44','107,92','107,60','108,89','107,29','108,43','109,19','109,22','107,55','107,68','107,43','109,04','109,82','111,52','108,47','108,02','106,10'),
stringsAsFactors = FALSE)
datatingkat <- data.frame(Kota = c('Meulaboh','Banda Aceh','Lhokseumawe','Sibolga','Pematang Siantar','Medan','Padangsidimpuan','Gunung Sitoli','Padang','Bukittinggi','Tembilahan','Pekan Baru','Dumai','Bungo','Jambi','Palembang','Lubuklinggau','Bengkulu','Bandar Lampung','Metro','Tanjung Pandan','Pangkal Pinang','Batam','Tanjung Pinang'),
"Tingkat Inflasi" = c('0,95','1,01','1,12','1,53','0,96','1,04','0,90','0,93','1,03','0,95','1,37','0.71','0,68','1,39','1,13','0,94','0,83','0,54','0,38','0,55','0,54','1,22','0,74','0,38'),
stringsAsFactors = FALSE)
Tahapan keenam adalah menggabungkan dua tabel yang dengan jenis gabungan left joins
yang menyimpan semua data di datasumatera.
left_join(datasumatera, datatingkat)
## Kota IHK Tingkat.Inflasi
## 1 Meulaboh 112,44 0,95
## 2 Banda Aceh 109,58 1,01
## 3 Lhokseumawe 109,93 1,12
## 4 Sibolga 109,81 1,53
## 5 Pematang Siantar 108,83 0,96
## 6 Medan 107,02 1,04
## 7 Padangsidimpuan 109,66 0,90
## 8 Gunung Sitoli 109,44 0,93
## 9 Padang 107,92 1,03
## 10 Bukittinggi 107,60 0,95
## 11 Tembilahan 108,89 1,37
## 12 Pekan Baru 107,29 0.71
## 13 Dumai 108,43 0,68
## 14 Bungo 109,19 1,39
## 15 Jambi 109,22 1,13
## 16 Palembang 107,55 0,94
## 17 Lubuklinggau 107,68 0,83
## 18 Bengkulu 107,43 0,54
## 19 Bandar Lampung 109,04 0,38
## 20 Metro 109,82 0,55
## 21 Tanjung Pandan 111,52 0,54
## 22 Pangkal Pinang 108,47 1,22
## 23 Batam 108,02 0,74
## 24 Tanjung Pinang 106,10 0,38
Tahapan ketujuh adalah menggabungkan dua tabel yang dengan jenis gabungan right joins
yang menyimpan semua data di datatingkat.
right_join(datasumatera, datatingkat)
## Kota IHK Tingkat.Inflasi
## 1 Meulaboh 112,44 0,95
## 2 Banda Aceh 109,58 1,01
## 3 Lhokseumawe 109,93 1,12
## 4 Sibolga 109,81 1,53
## 5 Pematang Siantar 108,83 0,96
## 6 Medan 107,02 1,04
## 7 Padangsidimpuan 109,66 0,90
## 8 Gunung Sitoli 109,44 0,93
## 9 Padang 107,92 1,03
## 10 Bukittinggi 107,60 0,95
## 11 Tembilahan 108,89 1,37
## 12 Pekan Baru 107,29 0.71
## 13 Dumai 108,43 0,68
## 14 Bungo 109,19 1,39
## 15 Jambi 109,22 1,13
## 16 Palembang 107,55 0,94
## 17 Lubuklinggau 107,68 0,83
## 18 Bengkulu 107,43 0,54
## 19 Bandar Lampung 109,04 0,38
## 20 Metro 109,82 0,55
## 21 Tanjung Pandan 111,52 0,54
## 22 Pangkal Pinang 108,47 1,22
## 23 Batam 108,02 0,74
## 24 Tanjung Pinang 106,10 0,38
Tahapan kedelapan adalah menggabungkan dua tabel yang dengan jenis gabungan full joins
yang menjaga semua pengamatan di data_Lembaga dan datatingkat.
full_join(datasumatera, datatingkat)
## Kota IHK Tingkat.Inflasi
## 1 Meulaboh 112,44 0,95
## 2 Banda Aceh 109,58 1,01
## 3 Lhokseumawe 109,93 1,12
## 4 Sibolga 109,81 1,53
## 5 Pematang Siantar 108,83 0,96
## 6 Medan 107,02 1,04
## 7 Padangsidimpuan 109,66 0,90
## 8 Gunung Sitoli 109,44 0,93
## 9 Padang 107,92 1,03
## 10 Bukittinggi 107,60 0,95
## 11 Tembilahan 108,89 1,37
## 12 Pekan Baru 107,29 0.71
## 13 Dumai 108,43 0,68
## 14 Bungo 109,19 1,39
## 15 Jambi 109,22 1,13
## 16 Palembang 107,55 0,94
## 17 Lubuklinggau 107,68 0,83
## 18 Bengkulu 107,43 0,54
## 19 Bandar Lampung 109,04 0,38
## 20 Metro 109,82 0,55
## 21 Tanjung Pandan 111,52 0,54
## 22 Pangkal Pinang 108,47 1,22
## 23 Batam 108,02 0,74
## 24 Tanjung Pinang 106,10 0,38
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.
Referensi |