Kasus I
PT. GARUDA RAYA (GR)
PT. GR adalah sebuah perusahaan penerbangan yang mempunyai hampir +/- 250 unit pesawat
terbang dengan berbagai tipe ukuran mulai dari ukuran 20 penumpang sampai dengan kapal
terbang AIRBUS-300 . Karyawan dari PT. GR ini juga sudah mencapai +/-1.000 karyawan
dengan lebih dari 30 Department. PT. GR melayani penerbangan Domestik maupun
International. Hampir setiap hari semua unit pesawat terbang melakukan penerbangan untuk
melayani penumpang. Dari kasus diatas buatlah
1. E.R.D : Entity Relationship Diagram (gambarkan hubungan relation nya)
2. Buat Star Schema (tentukan table Dimensi dan table Fact nya)
3. Buat Tampilan Analisa Tabel seperti Pivot di Excel
Tambahkan Asumsi jika dirasa soal kurang jelas atau kurang detail
------------- Selamat Mengerjakan -------------
Kasus II
PT. Blueclothing merupakan sebuah perusahaan yang bergerak di bidang garment. Perusahaan ini menyediakan berbagai jenis pakaian untuk pria maupun wanita. Seiring dengan berjalannya waktu, perusahaan ini pun menjadi semakin berkembang, transaksi – transaksi yang terjadi setiap harinya bertambah banyak. Oleh karena ini para topmanager perusahaan ini membutuhkan sebuah data warehouse untuk mempermudah dalam menganalisis perusahaan mereka dan mengambil keputusan. Dengan begitu perusahaan ini semakin maju lagi. Anda sebagai seorang DatabaseAdministrator diberi tugas untuk membangun sebuah data warehouse yang dapat menangani informasi internal yang berhubungan dengan transaksi – transaksi yang terjadi. Dan informasi yang diberikan adalah sebagai berikut : GM membutuhkan laporan mengenai penjualan, meliputi jumlah penjualan baju dan total penjualan baju. Total Penjualan didapat dari harga jual baju dikali jumlah baju yang dijual.
GM membutuhkan laporan mengenai pembelian, meliputi jumlah pembelian baju dan total pembelian baju. Total Pembelian didapat dari harga beli baju dikali jumlah baju yang dibeli.
GM membutuhkan laporan mengenai penyewaan, meliputi jumlah penyewaan baju dan total penyewaan baju. Total Penyewaan didapat dari harga sewa baju dikali jumlah baju yang disewa.
GM membutuhkan laporan mengenai laundry, meliputi jumlah laundry dan rata-rata laundry. Rata-rata Laundry didapat dari rata-rata perkalian dari jumlah laundry dengan harga laundry.
GM membutuhkan laporan tersebut setiap bulan, kuartal (per empat bulan), dan tahunan.
Laporan tersebut juga harus dapat dilihat dari segi pelanggan, supplier, baju, toko, jenis laundry, dan karyawan (termasuk jenis kelamin karyawan dan jabatan).
Dibutuhkan juga laporan ad-hoc yang dapat diminta kapan saja oleh GM.
Keterangan : Pada transaksi penjualan baju, akan dicatat Kode Karyawan yang melakukan transaksi, Kode Pelanggan, Tanggal Transaksi, Kode Baju yang dijual dan Jumlah baju untuk masing – masing baju yang dijual.
Pada transaksi pembelian baju, akan dicatat Kode Karyawan yang melakukan transaksi, Kode Supplier, Tanggal Transaksi, Kode Baju yang dibeli dan Jumlah baju untuk masing – masing baju yang dibeli.
Pada transaksi penyewaan baju, akan dicatat Kode Karyawan yang melakukan transaksi, Kode Pelanggan, Tanggal Transaksi, Kode Baju yang disewa dan Jumlah baju untuk masing – masing baju yang disewa.
Pada transaksi laundry baju, akan dicatat Kode Karyawan yang melakukan transaksi, Kode Pelanggan, Tanggal Transaksi, Kode Jenis Laundry yang dilakukan dan Jumlah untuk masing – masing jenis laundry yang terjadi.
Setiap Karyawan memiliki satu jabatan. Setiap ada data yang di-insert atau di-update, tanggal dicatat pada fieldInsertedDate.
Tabel operasi relationalnya
a. Identification Table OLTP Kita mulai dengan mengidentifikasi tabel pada database OLTP dengan memisahkannya menjadi table master dan table transaksi. Table Master MsBaju MsKaryawanMsSupplier MsProvinsi MsPelanggan MsToko MsJenisLaundry Table Transaction TrHeaderPenjualan TrDetailPenjualan TrHeaderPembelian TrDetaiPembelian TrHeaderPenyewaan TrDetailPenyewaan TrHeaderLaundry TrDetailLaundry
b. Measuring data from OLTP Tahap berikutnya adalah mengidentifikasi measure sesuai kebutuhan berdasarkan permintaan.(Perhatikan bagaimana cara menganalisa di bagian THEORY). Measure Jumlah Penjualan : sum(Qty) Total biaya penjualan :sum(Qty*HargaJual) Jumlah Pembelian : sum(Qty) Total biaya pembelian : sum(Qty*HargaBeli) Jumlah Penyewaan : sum(Qty) Total biaya penyewaan : sum(Qty*HargaSewa) Jumlah Laundry : sum(Qty) Rata-rata biaya laundry : avg(Qty*HargaLaundry) c. Design Fact Table and Dimension Table Tahap berikutnya adalah mengidentifikasi serta merancang tabel fakta dan tabel dimensi sesuai
kebutuhan berdasarkan permintaan (Perhatikan bagaimana cara menganalisa di bagian THEORY).
Dimensi Dimensi Waktu
-----------------
WaktuID
Hari
Bulan
Kuartal
Tahun
Dimensi Pelanggan
------------------------
PelangganID
KodePelanggan
NamaPelanggan
Dimensi Karyawan
-----------------------
KaryawanID
KodeKaryawan
NamaKaryawan
JenisKelamin
Jabatan
Dimensi Toko ----------------- TokoID KodeToko
NamaToko
Dimensi JenisLaundry
--------------------------
JenisLaundryID
KodeJenisLaundry
JenisLaundry
Dimensi Baju
----------------
BajuID
KodeBaju
Merk
Dimensi Supplier --------------------- SupplierID KodeSupplier
NamaSupplier JenisSupplier
Fakta Fakta Penjualan
-------------------
WaktuID
KaryawanID
PelangganID
BajuID
TokoID
JumlahBajuTerjual
TotalPenjualanBaju
Fakta Pembelian
--------------------
WaktuID
KaryawanID
SupplierID
BajuID
TokoID
JumlahBajuDibeli
TotalPembelianBaju
Fakta Penyewaan --------------------- WaktuID KaryawanID PelangganID BajuID TokoID JumlahBajuDisewa TotalPenyewaanBaju Fakta Laundry ----------------- WaktuID KaryawanID PelangganID TokoID
JenisLaundryID JumlahLaundry RataRataBiayaLaundry
Tahap berikutnya adalah merancang table definition untuk tabel fakta dan tabel transaksi(Saran :
Sebaiknya Samakan Definitionnya dengan yang di OLTP)
createtable DimensiWaktu ( WaktuID intidentityprimarykey, Tgl datetime, Hari int, Bulan int, Kuartal int, Tahun int, ) createtable DimensiKaryawan ( KaryawanID intidentityprimarykey, KodeKaryawan varchar(100), NamaKaryawan varchar(100), JenisKelamin varchar(100), Jabatan varchar(100), Statusvarchar(100), ) createtable DimensiPelanggan ( PelangganID intidentityprimarykey, KodePelanggan varchar(100), NamaPelanggan varchar(100), ) createtable DimensiToko ( TokoID intidentityprimarykey, KodeToko varchar(100), NamaToko varchar(100), ) createtable DimensiJenisLaundry ( JenisLaundryID intidentityprimarykey, KodeJenisLaundry varchar(100), JenisLaundry varchar(100), ) createtable DimensiBaju ( BajuID intidentityprimarykey, KodeBaju varchar(100), Merk varchar(100), ) createtable DimensiSupplier ( SupplierID intidentityprimarykey, KodeSupplier varchar(100), NamaSupplier varchar(100), JenisSupplier varchar(100), ) createtable FaktaPenjualanBaju ( WaktuID int, KaryawanID int, PelangganID int, BajuID int, TokoID int, JumlahBajuTerjual int, TotalPenjualanBaju numeric(15,2), ) createtable FaktaPembelianBaju ( WaktuID int, KaryawanID int, SupplierID int, BajuID int, TokoID int, JumlahBajuDibeli int, TotalPembelianBaju numeric(15,2), ) createtable FaktaPenyewaanBaju ( WaktuID int, KaryawanID int, PelangganID int, BajuID int, TokoID int, JumlahBajuDisewa int, TotalPenyewaanBaju numeric(15,2), ) createtable FaktaLaundryBaju ( WaktuID int, KaryawanID int, PelangganID int, TokoID int, JenisLaundryID int, JumlahLaundry int, RataRataBiayaLaundry numeric(15,2), )
Jangan lupa tambahkan satu buah tabel untuk mencatat waktu saat kita melakukan DTS (Data transformation Services) yaitu Tabel FilterTimeStamp.
createtable FilterTimeStamp ( NamaTable varchar(100)primarykey, Last_ETL datetime, )
dst….
KASUS III
Contoh PT. XYZ, Tbk. adalah perusahaan yang bergerak di bidang perbankan. Perusahaan ini telah
membuka lebih dari 350 cabang yang tersebar di 120 kota di seluruh Indonesia. Pada saat ini,
semua transaksi perbankan di simpan dalam database tradisional. Namun, karena perkembangan
perusahaan yang begitu pesat serta diiringi oleh kebutuhan akan informasi yang cepat, tepat guna,
dan akurat maka perusahaan membutuhkan data warehouse. Cabang dibedakan menjadi dua jenis,
yaitu: kantor cabang utama dan kantor cabang pembantu. Kantor cabang pembantu hanya bertugas
membantu transaksi perbankan yang mungkin tidak terlayani oleh kantor cabang utama. Tetapi
transaksi yang ada tetap dibedakan. Setiap pegawai hanya bekerja pada satu kantor cabang, entah
itu kantor cabang utama maupun kantor cabang pembantu. Jenis tabungan pada Bank Bluejacket
ada 4 jenis, yaitu: Tahapan Bluejacket, Super Savings, Star Savings, dan Bluejacket Yunior.
Setelah melakukan interview dengan General Manager PT. XYZ, Tbk. maka didapatlah beberapa hal berikut: Dibutuhkan laporan mengenai transaksi penyetoran uang tunai yang dilakukan oleh nasabah. Dalam laporan ini tampilkan jumlah uang yang disetor oleh nasabah.
Dibutuhkan laporan mengenai transaksi penarikan uang tunai yang dilakukan nasabah di bank. Dalam laporan ini tampilkan jumlah uang yang ditarik oleh nasabah.
Dibutuhkan juga laporan mengenai transaksi penarikan uang tunai melalui ATM. Dalam laporan ini tampilkan jumlah uang yang ditarik oleh nasabah.
Dibutuhkan laporan mengenai transaksi pemindahbukuan yang dilakukan nasabah (yang melakukan pemindahbukuan). Dalam laporan ini tampilkan jumlah uang yang dipindahbukukan oleh nasabah ke rekening nasabah lain.
Dibutuhkan laporan mengenai banyaknya nasabah yang masih aktif. Dalam laporan ini tampilkan juga jumlah rekening nasabah bersangkutan yang masih aktif.
Laporan-laporan tersebut nantinya akan dievaluasi berkala setiap bulan, triwulan, dan tahun. Tapi tidak menutup kemungkinan juga akan dibutuhkan laporan ad-hoc yang tersedia setiap harinya.
Laporan juga harus dapat dilihat berdasarkan nasabah, jenis tabungan, jenis cabang, dan kantor cabang.
OLTP
Dalam data warehouse, laporan yang dilihat tidak memuat informasi yang detail karena data yang ada dalam data warehouse hanya ditujukan untuk laporan secara garis besar saja untuk pengambilan keputusan. Berikut adalah hasilnya : a. Dimensi Dimensi Cabang
Dimensi Jenis Cabang
Dimensi Jenis Tabungan
Dimensi Nasabah
Dimensi Waktu
b. Fakta Fakta Nasabah Aktif
Fakta Pemindahan Buku
Fakta Penarikan ATM
Fakta Penarikan Tunai
Fakta Setoran
Surrogate key adalah key yang unik yang digunakan sebagai primary key pada tabel tersebut tapi
key ini bukan hasil dari turunan data manapun (alias kita buat sendiri dan fungsinya hanya sebagai
penanda yang sifatnya unik). Setelah kita membuat database datawarehouse sesuai dengan fact
dan dimensi di atas, lalu tambahkan field InsertedDate (nama field bebas) di setiap table pada
database OLTP agar data yang ditarik ke data warehouse nantinya tidak akan redundan. Contoh
pemberian field ke table Jenis Cabang :
Field tanggal entri data tersebut dibuat berdasarkan tanggal dimasukkannya data per baris. Setelah
ditambahkan tanggal entri pada OLTP, maka buat satu table FilterTimeStamp (nama table bebas)
yang digunakan untuk menyimpan waktu terakhir menarik data dari OLTP ke datawarehouse per
tiap dimensi dan fakta. Contoh table penyimpanan tersebut :
Field Process Date akan selalu diupdate setiap dilakukan perpindahan data dari OLTP ke data
warehouse sehingga akan menunjukkan tanggal dan waktu terakhir data tersebut dipindahkan.
Field Table Name hanya menunjukkan nama table yang telah dipindahkan pada tanggal dan waktu
yang ditujukan.
STAR SCHEMA Setelah melakukan analisa di atas, maka akan terbentuk star schema untuk setiap
fakta yang dapat dibuat dari SQL Server 2008. Contoh star schema Fact Nasabah Aktif: