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