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.
datajawa <- data.frame(Kota = c('DKI Jakarta','Bogor','Sukabumi','Bandung','Cirebon','Bekasi','Depok','Tasikmalaya','Cilacap','Purwokerto','Kudus','Surakarta','Semarang','Tegal','Yogyakarta','Jember','Bayuwangi','Sumenep','Kediri','Malang','Probolinggo','Madiun','Surabaya','Tangerang','Cilegon','Serang'), IHK = c('108','109','108','107','105','110','108','105','106','107','107','107','107','108','109','108','106','108','107','106','106','106','108','107','110','110'), stringsAsFactors = FALSE) datatingkat <- data.frame(Kota = c('DKI Jakarta','Bogor','Sukabumi','Bandung','Cirebon','Bekasi','Depok','Tasikmalaya','Cilacap','Purwokerto','Kudus','Surakarta','Semarang','Tegal','Yogyakarta','Jember','Bayuwangi','Sumenep','Kediri','Malang','Probolinggo','Madiun','Surabaya','Tangerang','Cilegon','Serang'), "Tingkat Inflasi" = c('0,4','0,5','0,5','0,4','0,5','0,3','0,4','0,4','0,6','0,6','0,7','0.4','0,3','0,7','0,5','0,4','0,4','0,2','0,4','0,5','0,4','0,4','0,4','0,4','1,0','0,9'), stringsAsFactors = FALSE)
Tahapan ketiga adalah menampilkan data dari tabel yang telah di buat :
## Kota IHK
## 1 DKI Jakarta 108
## 2 Bogor 109
## 3 Sukabumi 108
## 4 Bandung 107
## 5 Cirebon 105
## 6 Bekasi 110
## 7 Depok 108
## 8 Tasikmalaya 105
## 9 Cilacap 106
## 10 Purwokerto 107
## 11 Kudus 107
## 12 Surakarta 107
## 13 Semarang 107
## 14 Tegal 108
## 15 Yogyakarta 109
## 16 Jember 108
## 17 Bayuwangi 106
## 18 Sumenep 108
## 19 Kediri 107
## 20 Malang 106
## 21 Probolinggo 106
## 22 Madiun 106
## 23 Surabaya 108
## 24 Tangerang 107
## 25 Cilegon 110
## 26 Serang 110
## Kota Tingkat.Inflasi
## 1 DKI Jakarta 0,4
## 2 Bogor 0,5
## 3 Sukabumi 0,5
## 4 Bandung 0,4
## 5 Cirebon 0,5
## 6 Bekasi 0,3
## 7 Depok 0,4
## 8 Tasikmalaya 0,4
## 9 Cilacap 0,6
## 10 Purwokerto 0,6
## 11 Kudus 0,7
## 12 Surakarta 0.4
## 13 Semarang 0,3
## 14 Tegal 0,7
## 15 Yogyakarta 0,5
## 16 Jember 0,4
## 17 Bayuwangi 0,4
## 18 Sumenep 0,2
## 19 Kediri 0,4
## 20 Malang 0,5
## 21 Probolinggo 0,4
## 22 Madiun 0,4
## 23 Surabaya 0,4
## 24 Tangerang 0,4
## 25 Cilegon 1,0
## 26 Serang 0,9
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 datajawa 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 datajawa 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
.
datajawa %>%
inner_join(datatingkat, by = "Kota")
## Kota IHK Tingkat.Inflasi
## 1 DKI Jakarta 108 0,4
## 2 Bogor 109 0,5
## 3 Sukabumi 108 0,5
## 4 Bandung 107 0,4
## 5 Cirebon 105 0,5
## 6 Bekasi 110 0,3
## 7 Depok 108 0,4
## 8 Tasikmalaya 105 0,4
## 9 Cilacap 106 0,6
## 10 Purwokerto 107 0,6
## 11 Kudus 107 0,7
## 12 Surakarta 107 0.4
## 13 Semarang 107 0,3
## 14 Tegal 108 0,7
## 15 Yogyakarta 109 0,5
## 16 Jember 108 0,4
## 17 Bayuwangi 106 0,4
## 18 Sumenep 108 0,2
## 19 Kediri 107 0,4
## 20 Malang 106 0,5
## 21 Probolinggo 106 0,4
## 22 Madiun 106 0,4
## 23 Surabaya 108 0,4
## 24 Tangerang 107 0,4
## 25 Cilegon 110 1,0
## 26 Serang 110 0,9
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 datajawa
A right joint adalah menyimpan semua pengamatan di datatingkat.
A full joint adalah menjaga semua pengamatan di datajawa 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.
datajawa <- data.frame(Kota = c('DKI Jakarta','Bogor','Sukabumi','Bandung','Cirebon','Bekasi','Depok','Tasikmalaya','Cilacap','Purwokerto','Kudus','Surakarta','Semarang','Tegal','Yogyakarta','Jember','Bayuwangi','Sumenep','Kediri','Malang','Probolinggo','Madiun','Surabaya','Tangerang','Cilegon','Serang'),
IHK = c('108','109','108','107','105','110','108','105','106','107','107','107','107','108','109','108','106','108','107','106','106','106','108','107','110','110'),
stringsAsFactors = FALSE)
datatingkat <- data.frame(Kota = c('DKI Jakarta','Bogor','Sukabumi','Bandung','Cirebon','Bekasi','Depok','Tasikmalaya','Cilacap','Purwokerto','Kudus','Surakarta','Semarang','Tegal','Yogyakarta','Jember','Bayuwangi','Sumenep','Kediri','Malang','Probolinggo','Madiun','Surabaya','Tangerang','Cilegon','Serang'),
"Tingkat Inflasi" = c('0,4','0,5','0,5','0,4','0,5','0,3','0,4','0,4','0,6','0,6','0,7','0.4','0,3','0,7','0,5','0,4','0,4','0,2','0,4','0,5','0,4','0,4','0,4','0,4','1,0','0,9'),
stringsAsFactors = FALSE)
Tahapan keenam adalah menggabungkan dua tabel yang dengan jenis gabungan left joins
yang menyimpan semua data di datajawa.
left_join(datajawa, datatingkat)
## Kota IHK Tingkat.Inflasi
## 1 DKI Jakarta 108 0,4
## 2 Bogor 109 0,5
## 3 Sukabumi 108 0,5
## 4 Bandung 107 0,4
## 5 Cirebon 105 0,5
## 6 Bekasi 110 0,3
## 7 Depok 108 0,4
## 8 Tasikmalaya 105 0,4
## 9 Cilacap 106 0,6
## 10 Purwokerto 107 0,6
## 11 Kudus 107 0,7
## 12 Surakarta 107 0.4
## 13 Semarang 107 0,3
## 14 Tegal 108 0,7
## 15 Yogyakarta 109 0,5
## 16 Jember 108 0,4
## 17 Bayuwangi 106 0,4
## 18 Sumenep 108 0,2
## 19 Kediri 107 0,4
## 20 Malang 106 0,5
## 21 Probolinggo 106 0,4
## 22 Madiun 106 0,4
## 23 Surabaya 108 0,4
## 24 Tangerang 107 0,4
## 25 Cilegon 110 1,0
## 26 Serang 110 0,9
Tahapan ketujuh adalah menggabungkan dua tabel yang dengan jenis gabungan right joins
yang menyimpan semua data di datatingkat.
right_join(datajawa, datatingkat)
## Joining, by = "Kota"
## Kota IHK Tingkat.Inflasi
## 1 DKI Jakarta 108 0,4
## 2 Bogor 109 0,5
## 3 Sukabumi 108 0,5
## 4 Bandung 107 0,4
## 5 Cirebon 105 0,5
## 6 Bekasi 110 0,3
## 7 Depok 108 0,4
## 8 Tasikmalaya 105 0,4
## 9 Cilacap 106 0,6
## 10 Purwokerto 107 0,6
## 11 Kudus 107 0,7
## 12 Surakarta 107 0.4
## 13 Semarang 107 0,3
## 14 Tegal 108 0,7
## 15 Yogyakarta 109 0,5
## 16 Jember 108 0,4
## 17 Bayuwangi 106 0,4
## 18 Sumenep 108 0,2
## 19 Kediri 107 0,4
## 20 Malang 106 0,5
## 21 Probolinggo 106 0,4
## 22 Madiun 106 0,4
## 23 Surabaya 108 0,4
## 24 Tangerang 107 0,4
## 25 Cilegon 110 1,0
## 26 Serang 110 0,9
Tahapan kedelapan adalah menggabungkan dua tabel yang dengan jenis gabungan full joins
yang menjaga semua pengamatan di data_Lembaga dan datatingkat.
full_join(datajawa, datatingkat)
## Kota IHK Tingkat.Inflasi
## 1 DKI Jakarta 108 0,4
## 2 Bogor 109 0,5
## 3 Sukabumi 108 0,5
## 4 Bandung 107 0,4
## 5 Cirebon 105 0,5
## 6 Bekasi 110 0,3
## 7 Depok 108 0,4
## 8 Tasikmalaya 105 0,4
## 9 Cilacap 106 0,6
## 10 Purwokerto 107 0,6
## 11 Kudus 107 0,7
## 12 Surakarta 107 0.4
## 13 Semarang 107 0,3
## 14 Tegal 108 0,7
## 15 Yogyakarta 109 0,5
## 16 Jember 108 0,4
## 17 Bayuwangi 106 0,4
## 18 Sumenep 108 0,2
## 19 Kediri 107 0,4
## 20 Malang 106 0,5
## 21 Probolinggo 106 0,4
## 22 Madiun 106 0,4
## 23 Surabaya 108 0,4
## 24 Tangerang 107 0,4
## 25 Cilegon 110 1,0
## 26 Serang 110 0,9
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 |