Discovering Knowledge
Pendahuluan
Database yang Digunakan
Database yang digunakan dalam discovering knowledge adalah Northwind
. Hal pertama yang dilakukan adalah membuat koneksi ke database tersebut dengan menggunakan dbConnect
pada package DBI
, kemudian membaca database tersebut menggunakan RSQLite::SQLite()
.
<- DBI::dbConnect(RSQLite::SQLite(), "C:/sqlite/db/Northwind_large.sqlite") nw
Untuk melihat tabel-tabel di dalam database Northwind dapat menggunakan RSQLite::dbListTables
. Terlihat bahwa di dalam database Northwind terdiri dari 14 tabel mulai dari tabel Category
sampai dengan tabel Territory
.
::dbListTables(nw) RSQLite
[1] "Category" "Customer" "CustomerCustomerDemo"
[4] "CustomerDemographic" "Employee" "EmployeeTerritory"
[7] "Order" "OrderDetail" "Product"
[10] "ProductDetails_V" "Region" "Shipper"
[13] "Supplier" "Territory"
Berikut adalah ERD dari database Northwind yang digunakan
ERD Database Northwind
Tabel yang Digunakan
Tabel yang digunakan akan disimpan dalam bentuk dataframe
. Untuk mengubah database tersebut menjadi dataframe
maka akan ditambahkan paramater sebagai berikut:
```{r, connection=nw, engine="sql", output.var="P1"}
dimana P1
adalah nama tabel yang disimpan dalam format dataframe
.
Beberapa tabel yang akan digunakan yaitu Product
, Supplier
, dan Category
. Berikut akan ditampilkan isi dari masing-masing tabel tersebut.
Product
Tabel Product
menunjukan informasi mengenai produk apa saja yang ada. Tabel ini juga berhubungan dengan tabel Supplier
.
SELECT * FROM Product;
Supplier
Tabel Supplier
menunjukkan informasi mengenai supplier dari produk- produk yang dijual.
SELECT * FROM Supplier;
Category
Tabel Category
menunjukkan informasi mengenai kategori dari produk- produk yang dijual.
SELECT * FROM Category;
Discovering Knowledge
Dalam menemukan informasi dari database Northwind, maka akan dibentuk dataframe
menggunakan proses join
dari ketiga tabel tersebut untuk mendapatkan nama produk, nama kategori, harga produk, serta wilayah asal supplier.
SELECT P.Id as IdProduct, P.ProductName, P.CategoryId, C.CategoryName, P.UnitPrice, S.City, S.Country
FROM Product as P, Supplier as S, Category as C
WHERE P.SupplierId= S.Id AND P.CategoryId = C.Id;
Analisis Sederhana
Jumlah produk berdasarkan negara asal supplier
Negara yang menjadi supplier dengan jenis produk yang paling banyak adalah USA dengan 12 produk, sementara negara yang menjadi supplier dengan jenis produk yang paling sedikit adalah Brazil dengan 1 Produk.
<- DataP7 %>%
summary2 group_by(Country) %>% summarise(j_product = n())
Jumlah produk berdasarkan kota asal supplier
Namun, jika dilihat dari sisi kota, terlihat bahwa supplier yang berasal dari kota Frankfurt dan Melbourne menjual jenis produk yang terbanyak dibandingkan kota lainnya, yaitu sebanyak 5 jenis produk.
<- DataP7 %>%
summary1 group_by(City) %>% summarise(j_product = n())
Rata rata harga per unit produk per kategori
Produk dengan harga tertinggi berada dalam kategori Beverages, sementara produk dengan harga termurah adalah Dairy Products. Kategori produk dengan rata-rata tertinggi adalah Meat/ Poultry.
<- DataP7 %>%
summary3 group_by(CategoryName) %>% summarise(max_product = max(UnitPrice), min_product = min(UnitPrice), avg_product = mean(UnitPrice))
Plot Sederhana
Berikut ditampilkan dalam bentuk bar plot rata-rata per unit harga produk per kategori.
ggplot(summary3, # data yang digunakan
aes(x=factor(CategoryName),
y=avg_product))+
geom_bar(stat = "identity", width = 0.6, show.legend = FALSE)+ # membuat bar chart per kategori
theme(plot.title = element_text(size=14, face="bold.italic", margin=margin(0,0,15,0)))+ # pengaturan font judul plot
ggtitle("Rata-rata per Unit Harga Produk per Kategori")+ # judul plot
labs(x="Jenis Kategori", y="Rata-rata") # mengatur judul sumbu x dan y