top of page

Analisa Rating Berdasarkan Divisi, Departemen, dan Kelas

Writer's picture: Adib Ahmad IstiqlalAdib Ahmad Istiqlal

Pada projek yang saya lakukan, dataset berasal dari Kaggle.com [1]. Dataset ini berjudul Women’s E-Commerce Clothing Reviews yang memiliki 23485 baris dan 11 kolom. Pada deskripsi yang tertera 11


kolom tersebut antara lain [1].

  1. Clothing ID: Kolom yang berisi ID review dengan tipe integer

  2. Age: Umur reviewer dengan integer

  3. Title: Judul review yang diberikan dengan tipe string

  4. Rating: Positive integer ordinal yang memiliki peringkat 1 (paling buruk) hingga 5 (paling baik)

  5. Recommend IND: Kolom yang berisi nilai binary dimana nilai 1 berarti direkomendasi dan 0 berarti tidak direkomendasikan

  6. Positive Feedback Count: Jumlah pelanggan yang memberikan nilai positif.

  7. Division Name: Bertipe kategori untuk produksi

  8. Department Name: Bertipe kategori untuk nama departemen produk

  9. Class Name: Bertipe kategori untuk nama kelas produk.


Proses analisa menggunakan software Pentaho Data Integration (PDI) dengan menggunakan prinsip OLAP dengan terdapat tabel fakta dan tabel dimensi. Dimensi model yang digunakan adalah Star Schema sebagai visualisasi gambaran tabel fakta dan tabel dimensi dengan melakukan normalisasi 2NF. Star schema atau skema bintang adalah struktur logical yang memiliki tabel fakta yang terdiri atas data faktual sebagai hasil akhir analisis yang digunakan dengan dikelilingi tabel dimensi [2]. Normalisasi 2NF sendiri merupakan tahapan ketika normalisasi data sudah dianggap data normal (1NF) tanpa adanya atribut yang memiliki nilai ganda atau baris rangkap [2].


Permasalahan: Mengetahui rata-rata rating yang didapatkan berdasarkan Divisi, Departemen dan Kelas.



1. Star Schema

Permasalahan di atas dapat dilakukan pembuatan star schema yang menghasilkan star schema sebagai berikut.


Star schema diatas sudah dilakukan 2 NF dikarenakan nilai sudah bergantung dengan primary key nya. Seperti contoh Dimensi divisi yang bersifat FK di table Fact yang tergantung pada PK di dimensinya sendiri.


2. Extract

Proses extract disini dilakukan mendownload data dari Kaggle dan dilakukan import pada database. Database yang digunakan ialah PostgreSQL dengan nama database women_e_commerce.

a. Pembuatan Table

Pembuatan table dilakukan karena PostgreSQL tidak dapat menerima jika langsung dilakukan import pada dataset. Berikut query pembuatan tabel dengan nama ‘review’.

	CREATE TABLE IF NOT EXISTS public.review(
         "number" integer NOT NULL,
          clothing_id integer,
         "Age" integer,
         title "char",
         review_text "char",
         "Rating" integer,
         recommend boolean,
         division_name "char",
         department "char",
         class_name "char",
         PRIMARY KEY ("number"));

b. Import data

Setelah dilakukan pembuatan tabel dengan tipe kolom yang telah ditentukan, saatnya dilakukan proses import.

Dataset yang dimiliki bernama Womens Clothing E-Commerce Reviews.csv dengan format .csv. Encoding disini tidak dipilih dikarenakan encoding dilakukan jika bersifat . csv UTF-8 atau yang lain

Header dirubah menjadi Yes untuk menjadikan kolom sebagai baris pertama dan

pemisah antara kolom (delimiter) menggunakan ‘,’ (koma) dan Quote serta Escape

menggunakan ‘ ” ’ (petik dua). Petik dua digunakan dikarenakan terdapat baris yang

bersifat teks. Berikut gambar data dengan LIMIT 5.


3. Transform dan Load

a. Tabel Dimensi

Proses transform yang dilakukan antra lain replace null ‘with unknown’, mengambil n nilai unik dan menambahkan primary key pada setiap hasil tabel yang akan di load ke d database. Sebelumnya mari kita berapa total nilai null pada tiap kolom.

Hasil query diatas menghasilkan total 14 nilai null pada tiap-tiap tabel dan jika

dilakukan pada fitur Pentaho, didapatkan seperti berikut


Hasil diatas didapatkan dengan melakukan sorting pada nilai. Jika dilihat

menggunakan SQL, hasil yang didapatkan seperti berikut.


Dapat dinyatakan bahwa nilai null yang tersebar pada 3 kolom diatas saling berkaitan.

Sehingga, pada kasus ini saya mengganti nilai null dengan “Unknown”. Setelah

penggantian nilai null akan dilakukan sorting untuk mempersiapkan pengambilan

nilai unik dan pertambahan id sebagai primary key.

Rangkaian ETL selengkapnya seperti berikut.

Rangkaian di atas menghasilkan tabel dimensi yang sebelumnya telah divisualikan

dengan star schema diatas. Hasil di atas di load pada database yang sama dan diextract

kedalam file excel (.xlsx).


b. Tabel Fakta

Hasil dimensi diatas akan siap digunakan untuk menghasilkan tabel fakta.

Rangkaian tabel fakta yang dilakukan seperti proses join, lebih tepatnya dengan

INNER JOIN. Fitur pada pentaho untuk itu dilakukan menggunakan “Database Lookup”

yang memanfaatkan value yang sama untuk pada tabel data real dengan hasil tabel

dimensi.

  1. Lookup schema -> digunakan untuk mengetahui status tabel dan di database yang dibuat, status tabel yang digunakan adalah public.

  2. Lookup table -> digunakan untuk melakukan proses INNER join.

  3. Table field -> digunakan untuk tabel yang berisi data real

  4. Field1 -> digunakan untuk mengambil hasil dimensi division

  5. Comparator -> digunakan untuk membandingkan nilai antar kedua tabel

  6. Values to return from the lookup table -> digunakan untuk mengembailkan nilai yang diinginkan. Tabel fakta menyimpan id dari tabel dimensi, sehingga yang dikembalikan adalah id dari dimensi tersebut

Namun karena tabel data real masih memiliki null, maka diperlukan pengubah nilai menjadi ‘Unknown’. Fungsi yang digunakan adalah COALESCE. Fungsi tersebut menggubah nilai pada tabel yang diinputkan dengan value yang diinginkan (‘Unknown’) dan dilakukan measure (Average) dari tabel Rating. Berikut query yang digunakan.

SELECT
       COALESCE(division_name,'Unknown') AS division_name,
       COALESCE(department,'Unknown') AS department,
       COALESCE(class_name, 'Unknown') AS class_name,
       AVG("Rating")
FROM review
GROUP BY 1,2,3

Proses untuk 2 dimensi lainnya sama seperti dimensi division. Hasil dari tabel fakta seperti berikut.



Hasil tersebut akan difilter kolom mana saja yang digunakan. Filter yang digunakan seperti berikut yang berdasarkan star schema yang digunakan.

Rangkaian lengkap tabel fakta dan hasilnya seperti berikut.



8 views0 comments

Recent Posts

See All

Comments


bottom of page