Email          : ali.19arifin@gmail.com
RPubs         : https://rpubs.com/aliciaarifin/
Jurusan      :
Statistika
Address     : ARA Center, Matana University Tower
   Â
         Jl. CBD Barat Kav, RT.1, Curug Sangereng, Kelapa Dua,
Tangerang, Banten 15810.
Library yang akan dibutuhkan dalam emngconnect R ke dalam SQL adalah
RMariaDB, RMySQL, RPostgres, dan
RSQLite. Jika belum memiliki packagenya, silahkan install
terlebih dahulu. Pada
install.packages(c(
"RMariaDB",
"RMySQL",
"RPostgres",
"RSQLite")
)library("RMariaDB") ## Warning: package 'RMariaDB' was built under R version 4.2.3
library("RMySQL") ## Warning: package 'RMySQL' was built under R version 4.2.3
## Warning: package 'DBI' was built under R version 4.2.3
library("RPostgres") ## Warning: package 'RPostgres' was built under R version 4.2.3
library("RSQLite") ## Warning: package 'RSQLite' was built under R version 4.2.3
library("readxl") # untuk mengimport excel (xlsx)Data yang akan diperlukan dalam praktikum ini akan diimpor menggunakan codingan sebagai berikut :
setwd(getwd()) # set working directory
## csv files
Customers <-read.csv("data_praktikum2/Customers.csv")
Categories <-read.csv("data_praktikum2/Categories.csv")
Employees <-read.csv("data_praktikum2/Employees.csv")
OrderDetails<-read.csv("data_praktikum2/OrderDetails.csv")
Orders <-read.csv("data_praktikum2/Orders.csv")
Products <-read.csv("data_praktikum2/Products.csv")
Shippers <-read.csv("data_praktikum2/Shippers.csv")
Suppliers <-read.csv("data_praktikum2/Suppliers.csv")
## excel files (xlsx)
Customers <-read_excel("data_praktikum2/RawDatabase.xlsx",sheet=1)
Categories <-read_excel("data_praktikum2/RawDatabase.xlsx",sheet=2)
Employees <-read_excel("data_praktikum2/RawDatabase.xlsx",sheet=3)
OrderDetails<-read_excel("data_praktikum2/RawDatabase.xlsx",sheet=4)
Orders <-read_excel("data_praktikum2/RawDatabase.xlsx",sheet=5)
Products <-read_excel("data_praktikum2/RawDatabase.xlsx",sheet=6)
Shippers <-read_excel("data_praktikum2/RawDatabase.xlsx",sheet=7)
Suppliers <-read_excel("data_praktikum2/RawDatabase.xlsx",sheet=8) Kalau dilihat dari hasil codingan di atas, kedua codingan meng-impor
file seperti di atas. Meng-impor file csv kita akan menggunakan
read.csv(), dan file excel (xlsx) adalah
read_excel() yang merupakan package readxl.
Setelah kita meng-impor kita akan lanjut membuat database dan memasukkan
ke dalam database.
Pertama-tama kita akan menyambungkan RMySQL
bunbun_RMySQL <- dbConnect(MySQL(),
user='root',
password='',
dbname='bunbun_prak',
host='localhost')tampilan phpMyAdmin sebelum ditambahkan tabel
dbWriteTable(bunbun_RMySQL, "Customers", Customers, append=T)
dbWriteTable(bunbun_RMySQL, "Categories", Categories, append=T)
dbWriteTable(bunbun_RMySQL, "Employees", Employees, append=T)
dbWriteTable(bunbun_RMySQL, "OrderDetails", OrderDetails, append=T)
dbWriteTable(bunbun_RMySQL, "Orders", Orders, append=T)
dbWriteTable(bunbun_RMySQL, "Products", Products, append=T)
dbWriteTable(bunbun_RMySQL, "Shippers", Shippers, append=T)
dbWriteTable(bunbun_RMySQL, "Suppliers", Suppliers, append=T) untuk melihat perubahan kita bisa tekan tombol refresh,
lalu tampilan akan seperti di bawah ini.
Jika dalam satu tabel
struktur suatu tanggal tidak benar seperti tabel
Employees,
maka kita bisa menggunakan codingan di bawah ini untuk membenarkan atau
merevisi tanggalnya
dbRemoveTable(bunbun_RMySQL, 'employees') # menghapus table
Employees["BirthDate"] <-as.Date(Employees$BirthDate, format = "%Y-%m-%d") # mengganti format tanggal dengan benar
dbWriteTable(bunbun_RMySQL, "Employees", Employees, append=T) # menambahkan database employee kembali ke dalam database.Jika keluar output TRUE maka codingan operasi yang kita
lakukan pada database/tabel berhasil dijalankan. FALSE jika
tidak berhasil.
Notes :
+ Khusus RMySQL untuk menghapus tabel
menggunakan dbRemoveTable(), nama file yang diketik harus
huruf kecil semua. karena nama tabel yang sudah dimasukkan ke dalam
MySQL (phpMyAdmin) adalah huruf kecil semua.
Kita akan mengconnect R dengan Progress terlebih dahulu.
bunbun_RPostgres <- dbConnect(Postgres(),
user='postgres',
password='bunbun',
dbname='bunbun_prak2',
host='localhost')
dbListTables(bunbun_RPostgres)## [1] "Customers" "Categories" "OrderDetails" "Orders" "Products"
## [6] "Shippers" "Suppliers" "Employees"
dbListTables() merupakan codingan untuk melihat berapa
banyak tabel yang terdapat pada database bunbun_prak2.
characted(0) mengartikan bahwa di dalam database
bunbun_prak2 tidak ada tabel.
tampilan database setelah ditambah tabel
dbWriteTable(bunbun_RPostgres, "Customers", Customers, append=T)
dbWriteTable(bunbun_RPostgres, "Categories", Categories, append=T)
dbWriteTable(bunbun_RPostgres, "Employees", Employees, append=T)
dbWriteTable(bunbun_RPostgres, "OrderDetails", OrderDetails, append=T)
dbWriteTable(bunbun_RPostgres, "Orders", Orders, append=T)
dbWriteTable(bunbun_RPostgres, "Products", Products, append=T)
dbWriteTable(bunbun_RPostgres, "Shippers", Shippers, append=T)
dbWriteTable(bunbun_RPostgres, "Suppliers", Suppliers, append=T) Seperti RMySQL, kita
perlu mengubah suatu struktur tanggal pada bisa menggunakan codingan di
bawah ini untuk membenarkan atau merevisi tanggalnya
dbRemoveTable(bunbun_RPostgres, 'Employees') # menghapus table
Employees["BirthDate"] <-as.Date(Employees$BirthDate, format = "%Y-%m-%d") # mengganti format tanggal dengan benar
dbWriteTable(bunbun_RPostgres, "Employees", Employees, append=T) # menambahkan database employee kembali ke dalam database.Jika keluar output TRUE maka codingan operasi yang kita
lakukan pada database/tabel berhasil dijalankan. FALSE jika
tidak berhasil.
Notes :
Khusus RPostgres untuk menghapus tabel
menggunakan dbRemoveTable(), nama file yang diketik harus
sesuai dengan nama yang telah dipilih sebelumnya. Huruf kapital atau
tidaknya diperlukan, tidak seperti RMySQL yang harus huruf kecil
semua.
SQLite adalah basis data seperti MySQL tetapi penyimpanan dilakukan oleh local storage. database akan tersimpan terdapat di dalam working directory
bunbun_RSQLite <- dbConnect(RSQLite::SQLite(), "SQLbunbun.sqlite")
dbListTables(bunbun_RSQLite)## [1] "Categories" "Customers" "Employees" "OrderDetails" "Orders"
## [6] "Products" "Shippers" "Suppliers"
Karena kita baru saja membuat SQLite, maka di dalam database tersebut belum memiliki tabel-tabel di dalamnya.
dbWriteTable(bunbun_RSQLite, "Customers", Customers, append=T)
dbWriteTable(bunbun_RSQLite, "Categories", Categories, append=T)
dbWriteTable(bunbun_RSQLite, "Employees", Employees, append=T)
dbWriteTable(bunbun_RSQLite, "OrderDetails", OrderDetails, append=T)
dbWriteTable(bunbun_RSQLite, "Orders", Orders, append=T)
dbWriteTable(bunbun_RSQLite, "Products", Products, append=T)
dbWriteTable(bunbun_RSQLite, "Shippers", Shippers, append=T)
dbWriteTable(bunbun_RSQLite, "Suppliers", Suppliers, append=T) dbListTables(bunbun_RSQLite)Seperti RMySQL, kita perlu mengubah suatu struktur tanggal pada bisa menggunakan codingan di bawah ini untuk membenarkan atau merevisi tanggalnya
dbRemoveTable(bunbun_RSQLite, 'Employees') # menghapus table
Employees["BirthDate"] <-as.Date(Employees$BirthDate, format = "%Y-%m-%d") # mengganti format tanggal dengan benar
dbWriteTable(bunbun_RSQLite, "Employees", Employees, append=T) # menambahkan database employee kembali ke dalam database.Notes:
pada SQLite, fungsi dbRemoveTable()
digunakan untuk menghapus table tanpa ada pengecualian nama table.
Contoh kita bisa menghapus table dengan codingan
dbRemoveTable(bunbun_RSQLite, 'Employees') dan
dbRemoveTable(bunbun_RSQLite, 'employees'), hasil codingan
tersebut sama. tidak seperti MySQL dan Postgres yang memiliki
spesifikasi untuk menghapus tabel.
Untuk menghubungkan R dengan Posgress dan R dengan SQLite, hal yang membedakan dari RMySQL adalah cara mengconnect di awal dengan codingan di bawah ini, dengan user password dan host yang ada di dalam laptop masing-masing. dbname merupakan nama database yang mau kita tuju.
# MySQL
MySQL <- dbConnect(MySQL(),
user='',
password='',
dbname='',
host='')
# Postgres
postgres <- dbConnect(Postgres(),
user='',
password='',
dbname='',
host='')
# RSQLite
RSQLite <- dbConnect(RSQLite::SQLite(), "MySQLite.sqlite")