Dimensi dan Measure : Dua Hal Yang Perlu Anda Ketahui Tentang Data

From Data to Knowledge

Salah satu tantangan dalam membangun Data Warehouse dan Business Intelligence adalah membuat Star Schema yang tepat. Dengan Star Schema yang tepat, maka pembuatan BI report/analysis akan jauh lebih mudah.

Apa itu Star Schema? Sesuai namanya Star Schema adalah schema database di mana diagram ERD nya berbentuk seperti bintang (star) seperti pada gambar di atas.

Dalam star schema, satu table yang di tengah (lihat gambar di atas) disebut table fakta (fact table) dan table-table di kelilingnya adalah tabel dimensi (Dimension table).

Apa beda table fakta dan dimensi?

Table dimensi berisi atribut yang menjelaskan table fakta. Sedangkan table fakta adalah table yang berisi measure, yaitu suatu yang bisa dihitung atau diukur dalam suatu angka.

Contoh measure misalnya "jumlah penduduk", "luas wilayah", "jumlah penjualan", "jumlah belanja", dll. Sedangkan contoh table dimensi adalah "dimensi wilayah", misalnya dalam contoh measure "jumlah penduduk", maka dimensi wilayah bisa berisi atribut provinsi, kabupaten/kota, kecamatan atau kelurahan. Sehingga kita bisa menampilkan jumlah penduduk per provinsi misalnya.

Contoh lain dimensi misalnya dimensi waktu. Bila dimensi ini digunakan dalam measure "jumlah penjualan", dimensi waktu dapat berupa tanggal, bulan, kwartal, semester atau tahun. Sehingga kita bisa menampilkan data penjualan ini dalam rentang (dimensi) waktu yang kita inginkan, misalnya harian atau bulanan.

Dengan adanya measure dan dimensi, penyusunan suatu laporan business intelligence sangat mudah dilakukan, karena kita hanya perlu meletakkan dimensi ke dalam baris atau kolom yang kita inginkan.

Table dimensi sering kali berbentuk hirarki, misalnya dimensi geografi akan memiliki hirarki dari Negara -> Provinsi -> Kabuptan -> Kecamatan -> Kelurahan dst. Dan saat ini table dimensi biasanya dilengkapi dengan kordinat posisi (latitude dan longitude) maupun poligon batas wilayah. Data peta ini digunakan untuk menampilkan data tsb dalam overlay peta seperti contoh di bawah

Peta Bencana Indonesia 2019

Untuk lebih mendalami star schema, mari kita lihat study kasus di bawah ini.

Sebagai contoh kasus, kita akan mencoba membuat suatu star schema dari data http://dibi.bnpb.go.id/data-bencana

Peta Bencana Indonesia

Kalau lihat data di atas, maka hanya ada satu measure yaitu "jumlah korban". Ada berapa dimensi? Paling tidak ada 4 dimensi, yaitu:

  • Dimensi waktu (waktu kejadian (tgl/bln/tahun)
  • Dimensi geografi (provinsi, kabupaten)
  • Dimensi bencana (banjir, puting beliung, dll)
  • Dimensi jenis korban (meninggal, hilang, dll)

Dimensi waktu adalah dimensi yang hampir selalu ada dalam setiap Business Intelligence, sehingga semua solusi BI biasanya memiliki pre-defined tabel dimensi ini. Di Tableau misalnya, begitu suatu kolom type nya adalah tanggal, maka otomatis dikenali sebagai dimensi waktu lengkap dengan atribut lainnya seperti bulan, kwartal, semester, tahun, dll. Dengan dimensi waktu yang predefined ini kita hampir tidak perlu membuat table dimensi sendiri, namun untuk kasus ini kita akan membuat table dimensi waktu sendiri.

Dengan dimensi dan measure di atas, maka star schema nya menjadi sbb

Star Schema Bencana

Selanjutnya, setelah kita mendapatkan Star Schema yang sesuai adalah memasukkan data yang ada ke masing-masing table ini.

Untuk table dimensi korban hanya ada 4 baris, yaitu:

Kode Deskripsi
1 Meninggal
2 Hilang
3 Terluka
4 Mengungsi

Untuk table dimensi bencana berisi

Kode Deskripsi
1 Banjir
2 Angin Puting Beliun
3 Tanah Longsor
4 Kebakaran Hutan
5 Gempa Bum

Untuk dimensi geografi

id kode_negara negara kode_prov Provinsi kd_kabupaten kabupaten
1 ID Indonesia 11 Aceh 1112 Aceh Singkil
2 ID Indonesia 11 Aceh
3 ID Indonesia 11 Aceh
4 ID Indonesia 12 Sumatera Barat
5 ID Indonesia 12 Sumatera Barat
6 ID Indonesia 12 Sumatera Barat
7 ID Indonesia 13 Sumatera Utara
8 ID Indonesia 13 Sumatera Utara
9 ID Indonesia 13 Sumatera Utara

Kita bisa saja membuat listnya secara manual seperti di atas, atau kita bisa gunakan ETL untuk memasukkan data ini secara program. Kita akan bahas ETL di tulisan berikut.

Untuk table facta disusun dari kolom-kolom dimensi dan measure tablenya menjadi sbb.

id geo_id tanggal jenis_bencana jenis_korban jumlah_korban
1 1 12-01-2016 1 1 2
2 1 12-01-2016 1 2 1
3 1 12-01-2016 1 3 2
4 1 12-01-2016 1 4 300

Perhatikan bahwa kolom-kolum jenis korban di transpose (pivot)