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().
nw <- DBI::dbConnect(RSQLite::SQLite(), "C:/sqlite/db/Northwind_large.sqlite")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.
RSQLite::dbListTables(nw) [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.
summary2 <- DataP7 %>%
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.
summary1 <- DataP7 %>%
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.
summary3 <- DataP7 %>%
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