73
BAB 4 PERANCANGAN DATAWAREHOUSE
4.1
Arsitektur Data warehouse Rancangan data warehouse yang diusulkan pada PT. Metrotech Jaya Komunika menggunakan arsitektur data warehouse terpusat. Alasan menggunakan data warehouse terpusat ialah : •
Mempermudah dalam melakukan pengawasan dan pemeliharaan terhadap data yang berada di dalam data warehouse.
•
Lebih mudah dalam menjaga konsistensi dari data warehouse terhadap bermacam-macam perubahan dibandingkan dengan data warehouse terdistribusi.
•
Memudahkan dalam pengolahan data yang akan digunakan untuk pengambilan keputusan oleh pihak eksekutif.
•
Perancangan yang relatif mudah dan murah dibandingkan dengan arsitektur data warehouse terdistribusi.
74
Berikut adalah gambar arsitektur data warehouse terpusat yang akan digunakan pada PT. Metrotech Jaya Komunika :
User
User
User
Data Warehouse PT Metrotech Jaya Komunika
Transformation Data
Database Operasional PT Metrotech Jaya Komunika
Gambar 4.1 Arsitektur Data Warehouse
75
Dari gambar arsitektur di atas ada tiga komponen sistem yang saling berhubungan. Masing-masing dapat dijelaskan sebgai berikut : 1. Data source Data source merupakan sumber data yang berasal dari internal perusahaan. Sumber data internal diambil dari kegiatan operasional perusahaan, yang menyangkut kegiatan penjualan, pembelian, dan pemasaran.Dari data-data tersebut kemudian akan dilakukan proses transformasi data yang hasilnya akan disimpan ke dalam data warehouse.
2. User User merupakan pihak eksekutif yang akan menggunakan data yang tersimpan di dalam data warehouse untuk pengambilan keputusan yang strategis.
3. Data warehouse Komponen ini merupakan tempat penyimpanan data-data operasional yang telah disaring. Data yang berada didalam data warehouse merupakan data yang bersifat historis dengan jangka waktu tertentu dan bersifat konsisten.Data-data tersebut nantinya akan berguna bagi pihak eksekutif dalam pengambilan keputusan.
76
4.2
Rancangan Data Warehouse 4.2.1
Memilih Grain(Choosing the Grain) Memilih grain berarti memutuskan apa yang akan direpresentasikan oleh sebuah record dari tabel fakta. Grain dalam perancangan data warehouse ini meliputi : a. Pembelian Pada proses pembelian data yang dapat dianalisis adalah kuantitas bahan baku yang dibeli dari supplier. b. Penjualan Pada proses penjualan data yang dapat dianalisis adalah produk yang paling laku terjual, dan omset penjualan. c. Pemasaran Pada proses pemasaran data yang dapat dianalisis adalah biaya yang dikeluarkan untuk melakukan pemasaran. d. Retur Pembelian Proses retur pembelian yang dapat dianalisis adalah bahan baku yang sering diretur. e. Retur Penjualan Proses retur penjualan yang dapat dianalisis adalah barang yang diretur karena cacat atau rusak.
77
4.2.2
Identifikasi
dan
penyesuaian
dimensi
(Identifying
and
Conforming the Dimension) Pada tahap ini dilakukan penyesuaian dimensi dan grain yang ditampilkan dalam bentuk matriks a. Pembelian Grain
Kuantitas Pembelian
Dimension Supplier
X
Waktu
X
Bahan Baku
X
Tabel 4.1 Tabel Grain Pembelian b. Penjualan Grain Dimension
Barang paling
Omset Penjualan
laku terjual
Dealer
X
X
Barang
X
X
Waktu
X
X
Tabel 4.2 Tabel Grain Penjualan
78
c. Pemasaran Grain
Biaya Pemasaran
Dimension Waktu
X
Barang
X
Media
X
Wilayah
X
Tabel 4.3 Tabel Grain Pemasaran d. Retur Pembelian Grain
Bahan Baku yang sering di retur
Dimension Waktu
X
Bahan Baku
X
Tabel 4.4 Tabel Grain Retur Pembelian e. Retur Penjualan Grain Dimension
Barang yang sering di retur
Waktu
X
Barang
X
Dealer
X
Tabel 4.5 Tabel Grain Ratur Penjualan
79
4.2.3
Pemilihan Fakta(Choosing the Fact) Pada tahap ini dilakukan pemilihan fakta. Setiap fakta memiliki data yang dapat dihitung(bersifat numeric) a. Pembelian Pembelian meliputi Quantity (kuantitas pembelian bahan baku), total harga bahan baku yang dibeli. b. Penjualan Penjualan meliputi Quantity (kuantitas barang yang terjual), total harga barang yang terjual. c. Pemasaran Pemasaran meliputi HargaPromo (biaya pengeluaran untuk promo), lama (durasi diadakannya promo) d. Retur Pembelian Retur pembelian meliputi Quantity (kuantitas bahan baku yang diretur). e. Retur Penjualan Retur penjualan meliputi Quantity (kuantitas barang yang diretur).
80
4.2.4
Penyimpanan Pre-Calculation pada Tabel Fakta (Storing PreCalculation in the Fact Table) Di dalam tabel fakta terdapat kalkulasi awal terhadap data yang dapat dihitung. Kalkulasi awal yang ada pada tabel fakta antara lain : a. Pembelian •
Jumlah pembelian yang merupakan jumlah dari quantity (kuantitas beli).
•
Total pembelian yang merupakan jumlah dari (quantity bahan baku yang dikali dengan harga bahan baku)
b. Penjualan •
Jumlah jual yang merupakan jumlah quantity (kuantitas barang yang dijual)
•
Total jual yang merupakan jumlah (quantity barang dikalikan dengan harga barang)
c. Pemasaran • Durasi promo yang merupakan lamanya promosi yang dilakukan pada suatu wilayah. • Jumlah harga yang dikeluarkan untuk promosi.
81
d. Retur Pembelian • Jumlah retur yang merupakan jumlah dari quantity (kuantitas bahan baku yang diretur)
e. Retur Penjualan • Jumlah retur yang merupakan jumlah quantity (kuantitas barang yang diretur)
82
4.2.5
Melengkapi Tabel Dimensi (Rounding out the Dimension Table) a. Tabel Rounding Out Dimension Dimensi
Field
Deskripsi
Hirarki
Waktu
MonthNumber
Laporan dapat
Bulan
QuartalNumber dilihat per YearNumber
bulan, tahun,
Tahun Kuartal
atau kuartal. Barang
Barang
Laporan dapat
Barang
Jenis Barang
dilihat
Jenis
berdasarkan
Barang
jenis barang.
Tabel 4. 6 Tabel Rounding Out Dimension
83
Daftar Tabel - Tabel Dimensi DimWaktu Atribut
Tipe Data
Panjang
TimeKey
int
4
MonthNumber
int
4
QuartalNumber
int
4
YearNumber
int
4
Tabel 4.7 Tabel Dimensi DimWaktu DimSupplier Atribut SupplierID NamaSupplier
Tipe Data
Panjang
char
10
varchar
30
Tabel 4.8 Tabel Dimensi DimSupplier DimDealer Atribut DealerID NamaDealer
Tipe Data
Panjang
char
10
varchar
30
Tabel 4.9 Tabel Dimensi DimDealer DimBahanBaku Atribut BahanBakuID NamaBahan
Tipe Data
Panjang
char
10
varchar
30
Tabel 4.10 Tabel Dimensi DimBahanBaku
84
DimBarang Atribut
Tipe Data
Panjang
char
10
JenisBarang
varchar
30
NamaBarang
varchar
30
BarangID
Tabel 4.11 Tabel Dimensi DimBarang DimMedia Atribut MediaID NamaMedia
Tipe Data
Panjang
char
10
varchar
50
Tabel 4.12 Tabel Dimensi DimMedia DimWilayah Atribut WilayahID NamaWilayah
Tipe Data
Panjang
char
10
varchar
30
Tabel 4.13 Tabel Dimensi DimWilayah
85
b. Perancangan Skema Dalam perancangan ini, dihasilkan skema star join yaitu :
Gambar 4.2 Perancangan Skema
86
4.2.6
Memilih durasi dari basis data (Choosing the Duration of the Database) Nama
Database
Aplikasi
Database
Data yang
Data
ada sejak
masuk ke
dalam
tahun
Data
Data
Warehouse Warehouse Metrotech
Metrotech_DWH Akhir
Januari
2 Tahun 9
Jaya
tahun
2007 –
Bulan
Komunika
2006
Oktober 2009
DWH
Tabel 4.14 Tabel Durasi Basis Data
4.2.7 Melacak Perubahan dari Dimensi Secara Perlahan (Tracking Slowly Changing Dimension) Mengamati perubahan dari dimensi pada tabel dimensi dapat dilakukan dengan tiga cara yaitu mengganti secara langsung pada tabel dimensi, pembentukan record baru untuk setiap perubahan baru, dan perubahan data yang membentuk kolom baru yang berbeda. Dalam perancangan ini dipilih cara pertama yaitu mengganti data secara langsung pada tabel dimensi tanpa menambahkan record baru ke dalam tabel dimensi.
87
4.2.8 Memutuskan prioritas dan model dari query (Deciding the query prioritites and the query models) Pada tahap ini dibahas mengenai proses ETL, backup yang dilakukan secara berkala, analisa kapasitas media penyimpanan, dan analisa pertumbuhan data. a. Proses Extract, Transform, and Loading (ETL) Proses Extract, transform, and loading(ETL) akan dilakukan sebulan sekali oleh bagian IT b. Proses Backup Proses backup akan dilakukan setiap akhir bulan sebelum proses ETL dilakukan untuk menghindari kegagalan dari proses ETL. c. Analisa kapasitas media penyimpanan Dalam melakukan pengolahan data, kapasitas media penyimpanan menjadi salah satu aspek yang signifikan dan perlu untuk dipertimbangkan. Proses insert, update, dan delete pada aplikasi OLTP akan mempengaruhi data. Berikut adalah analisis kapasitas media penyimpanan untuk 2.5 tahun sebelumnya. 1. Record Fact Pembelian Jumlah record data pembelian setiap bulan adalah 2200 record. Diketahui besarnya suatu record ada 36 Bytes. Maka jumlah record selama 2.5 tahun adalah : 2200 x 30 (bulan) x 36 = 2376000 Bytes = 2376 KBytes.
88
2. Record Fact Penjualan Jumlah record data pejualan setiap bulan adalah 3000 record. Diketahui besarnya suatu record ada 36 Bytes. Maka jumlah record selama 2.5 tahun adalah : 3000 x 30 (bulan) x 36 = 3240000 Bytes = 3240 KBytes.
3. Record Fact Pemasaran Asumsi jumlah record data pembelian setiap bulan adalah 100 record. Diketahui besarnya suatu record ada 46 Bytes. Maka jumlah record selama 2.5 tahun adalah : 100 x 30 (bulan) x 46 = 138000 Bytes = 138 KBytes.
4. Record Retur Pembelian jumlah record Retur Pembelian setiap bulan adalah 160 record. Diketahui besarnya suatu record ada 18 Bytes. Maka jumlah record selama 2.5 tahun adalah : 160 x 30 (bulan) x 18 = 86400 Bytes = 86.4 KBytes.
5. Record Retur Penjualan Jumlah record data retur penjualan setiap bulan adalah 425 record. Diketahui besarnya suatu record ada 28 Bytes. Maka jumlah record selama 2.5 tahun adalah : 425 x 30 (bulan) x 28 = 357000 Bytes = 357 KBytes.
89
6. Dim Waktu Diketahui besar 1 record = 16 Bytes Jumlah record Dim Waktu pada bulan ke-30 = 912 Besar media penyimpanan yang dibutuhkan dalam jangka waktu 2.5 tahun adalah 16 x 912 = 14592 Bytes
7. Dim Barang Diketahui besar 1 record = 70 Bytes Jumlah record Dim Barang pada bulan ke-30 = 24 Besar media penyimpanan yang dibutuhkan dalam jangka waktu 2.5 tahun adalah 24 x 70 = 1680 Bytes
8. Dim Supplier Diketahui besar 1 record = 40 Bytes Jumlah record Dim Supplier pada bulan ke-30 = 5 Besar media penyimpanan yang dibutuhkan dalam jangka waktu 2.5 tahun adalah 5 x 40 = 200 Bytes
9. Dim Dealer Diketahui besar 1 record = 40 Bytes Jumlah record Dim Dealer pada bulan ke-30 = 5 Besar media penyimpanan yang dibutuhkan dalam jangka waktu 2.5 tahun adalah 5 x 40 = 200 Bytes
90
10. Dim Bahan Baku Diketahui besar 1 record = 40 Bytes Jumlah record Dim Bahan Baku pada bulan ke-30 = 18 Besar media penyimpanan yang dibutuhkan dalam jangka waktu 2.5 tahun adalah 18 x 40 = 720 Bytes
11. Dim Media Diketahui besar 1 record = 60 Bytes Jumlah record Dim Media pada bulan ke-30 = 5 Besar media penyimpanan yang dibutuhkan dalam jangka waktu 2.5 tahun adalah 5 x 60 = 300 Bytes
12. Dim Wilayah Diketahui besar 1 record = 60 Bytes Jumlah record Dim Wilayah pada bulan ke-30 = 6 Besar media penyimpanan yang dibutuhkan dalam jangka waktu 2.5 tahun adalah 6 x 60 = 360 Bytes
91
d. Analisa pertumbuhan data Analisis perkiraan pertumbuhan data pada data warehouse PT. Metrotech Jaya Komunika. Rumus yang akan digunakan untuk perhitungan kebutuhan penyimpanan record dalam SQL Server 2000 (SQL Server Books Online) adalah: • Num_Row = Jumlah Baris / Jumlah Record • Num_Col = Jumlah Kolom dalam tabel • Fixed_Data_Size = Jumlah Bytes yang dibutuhkan oleh semua kolom sesuai dengna tipe datanya masing-masing. • Null Bitmap = Bit status null kolom = 2 +((Num_Col + 7) / 8) • Row_Size = Fixed_Data_Size + Null_Bitmap + 4 • Nilai 4 mempresentasikan data row header • Rows_Per_Page = 8096 / (Row_Size + 2) • Num_of_Pages = Num Row / Rows_Per_page • Num_of_Bytes = 8192 xNum_of_Pages • Num_of_KBytes = 8192 / 1024 x Num_of_Pages = 8 x Num_of_Pages Analisis perkiraaan kapasitas media penyimpanan data pada data warehouse PT. Metrotech Jaya Komunika adalah seperti berikut, dimana ‘n’ merupakan variabel tahun. Rn = R x (n + (1+i)n)
92
R = Jumlah record n = Tahun i = persentase pertumbuhan record per tahun Perhitungan untuk dimensi yang mengalami pertumbuhan data adalah sebagai berikut : Rn = R x (1+i)n R = Jumlah record n = tahun i = persentase pertumbuhan record per tahun Berikut adalah analisis perkiraan kapasitas media penyimpanan untuk 5 tahun mendatang.
1. Fact Penjualan Asumsi jumlah record data untuk tahun ini diperkirakan adalah 36000 record. Jumlah tersebut didasarkan pada asumsi bahwa rata-rata setiap bulan terjadi 3000 transaksi, sehingga jumlah record untuk 1 tahun menjadi 3000 x 12 bulan = 36000 record. Maka dapat dihitung jumlah record sampai tahun ke 5 : R5 = 36000 x (5 + (1+0.1) 5) = 237600 Jadi jumlah record Fact Penjualan pada tahun ke-5 = 237600
93
Kisaran media penyimpanan yang dibutuhkan dalam jangka waktu 5 tahun adalah: • Num_Row = 237600 • Num_Col = 5 • Fixed_Data_Size = 4 + 10 + 10 + 4 + 8 = 36 • Null Bitmap = 2 + ((5 + 7) / 8) = 4 • Row_Size = 36 + 4 + 4 = 44 • Rows_Per_Page = 8096 / (44 + 2) = 176 • Num_of_Pages = 237600 / 176 = 1350 • Num_of_Bytes = 8192 x 1350 = 11059200 Bytes • Num_of_KBytes 8 x 1350 = 10800 Kb
2. Fact Pembelian Asumsi jumlah record data fact pembelian untuk setiap tahun diperkirakan adalah 26400 record. Jumlah tersebut didasarkan pada asumsi bahwa rata-rata setiap bulan terjadi 2200 transaksi, sehingga jumlah record untuk 1 tahun menjadi 2200 x 12 bulan = 26400 record. Maka dapat dihitung jumlah record sampai tahun ke 5 : R5 = 26400 x (5 + (1+0.1) 5) = 174240 Jadi jumlah record Fact Pembelian pada tahun ke-5 = 174240
94
Kisaran media penyimpanan yang dibutuhkan dalam jangka waktu 5 tahun adalah: • Num_Row = 174240 • Num_Col = 5 • Fixed_Data_Size = 4 + 10 + 10 + 4 + 8 = 36 • Null Bitmap = 2 + ((5 + 7) / 8) = 4 • Row_Size = 36 + 4 + 4 = 44 • Rows_Per_Page = 8096 / (44 + 2) = 176 • Num_of_Pages = 174240 / 176 = 990 • Num_of_Bytes = 8192 x990 = 8110080 Bytes • Num_of_KBytes 8 x 990 = 7920 Kb
3. Fact Pemasaran Asumsi jumlah record data fact pemasaran untuk setiap tahun diperkirakan adalah 1200 record. Jumlah tersebut didasarkan pada asumsi bahwa rata-rata setiap bulan terjadi 100 transaksi, sehingga jumlah record untuk 1 tahun menjadi 100 x 12 bulan = 1200 record. Maka dapat dihitung jumlah record sampai tahun ke 5 :
95
R5 = 1200 x (5 + (1+0.1) 5) = 7920 Jadi jumlah record Fact Pemasaran pada tahun ke-5 = 7920 Kisaran media penyimpanan yang dibutuhkan dalam jangka waktu 5 tahun adalah: • Num_Row = 7920 • Num_Col = 6 • Fixed_Data_Size = 4 + 10 + 10 + 10 + 4 + 8 = 46 • Null Bitmap = 2 + ((6 + 7) / 8) = 4 • Row_Size = 46 + 4 + 4 = 54 • Rows_Per_Page = 8096 / (54 + 2) = 145 • Num_of_Pages = 7920 / 145 = 55 • Num_of_Bytes = 8192 x 55 = 450560 Bytes • Num_of_KBytes 8 x 55 = 440 Kb
4. Fact Retur Penjulan Asumsi jumlah record data fact retur penjualan untuk setiap tahun diperkirakan adalah 5100 record. Jumlah tersebut didasarkan pada asumsi bahwa rata-rata setiap bulan terjadi 425 transaksi, sehingga jumlah record untuk 1 tahun menjadi 425 x 12 bulan = 5100 record. Maka dapat dihitung jumlah record sampai tahun ke 5 :
96
R5 = 5100 x (5 + (1+0.1) 5) = 33660 Jadi jumlah record Fact retur penjualan pada tahun ke-5 = 33660 Kisaran media penyimpanan yang dibutuhkan dalam jangka waktu 5 tahun adalah: • Num_Row = 33660 • Num_Col = 4 • Fixed_Data_Size = 4 + 10 + 10 + 4 = 28 • Null Bitmap = 2 + ((4 + 7) / 8) = 3 • Row_Size = 28 + 3 + 4 = 35 • Rows_Per_Page = 8096 / (35 + 2) = 231 • Num_of_Pages = 33660/ 231 = 146 • Num_of_Bytes = 8192 x146 = 1196032 Bytes • Num_of_KBytes 8 x 146 = 1168 Kb
97
5. Fact Retur Pembelian Asumsi jumlah record data fact retur pembelian untuk setiap tahun diperkirakan adalah 1920 record. Jumlah tersebut didasarkan pada asumsi bahwa rata-rata setiap bulan terjadi 160 transaksi, sehingga jumlah record untuk 1 tahun menjadi 160 x 12 bulan = 1920 record. Maka dapat dihitung jumlah record sampai tahun ke 5 : R5 = 1920 x (5 + (1+0.1) 5) = 12672 Jadi jumlah record Fact retur pembelian pada tahun ke-5 = 12672 Kisaran media penyimpanan yang dibutuhkan dalam jangka waktu 5 tahun adalah: • Num_Row = 12672 • Num_Col = 3 • Fixed_Data_Size = 4 + 10 + 4 = 18 • Null Bitmap = 2 + ((3 + 7) / 8) = 3 • Row_Size = 18 + 3 + 4 = 25 • Rows_Per_Page = 8096 / (25 + 2) = 300 • Num_of_Pages = 12672 / 300 = 42 • Num_of_Bytes = 8192 x42 = 344064 Bytes • Num_of_KBytes 8 x 42 = 336 Kb
98
Berikut adalah perhitungan untuk dimensi yang mengalami pertumbuhan data (kecuali dimensi waktu) : 1. Dimensi Waktu R5 = 912 + 365 + 365 + 365 + 365 + 365 = 2737 Jumlah record DimWaktu pada tahun ke-5 = 2737 Kisaran media penyimpanan yang dibutuhkan dalam jangka waktu 5 tahun adalah: • Num_Row = 2737 • Num_Col = 4 • Fixed_Data_Size = 4 + 4 + 4 + 4 = 16 • Null Bitmap = 2 + ((4 + 7) / 8) = 3 • Row_Size = 16 + 3 + 4 = 23 • Rows_Per_Page = 8096 / (23 + 2) = 324 • Num_of_Pages = 2737 / 324 = 8.45 • Num_of_Bytes = 8192 x 8.45 = 69222 bytes • Num_of_Kbytes = 8 x 8.45 = 67.6 Kbytes
99
2. Dimensi Barang R5 = 24 x (1+0,01)5 = 25 Jumlah record DimBarang pada tahun ke-5 = 25 Kisaran media penyimpanan yang dibutuhkan dalam jangka waktu 5 tahun adalah: • Num_Row = 25 • Num_Col = 3 • Fixed_Data_Size = 10 + 30 + 30 = 70 Bytes • Null Bitmap = 2 + ((3 + 7) / 8) = 3 • Row_Size = 70 + 3 + 4 = 77 • Rows_Per_Page = 8096 / (77 + 2) = 103 pages • Num_of_Pages = 25 / 103 = 0,24 page • Num_of_Bytes = 8192 x 0,24 = 1966.08 Bytes • Num_of_KBytes = 8 x 0,24 = 1,92 Kb
100
3. Dim Supplier R5 = 5 x (1+0,01)5 =5 Jumlah record DimSupplier pada tahun ke-5 = 5 Kisaran media penyimpanan yang dibutuhkan dalam jangka waktu 5 tahun adalah: • Num_Row = 5 • Num_Col = 2 • Fixed_Data_Size = 10 + 30 = 40 Bytes • Null Bitmap = 2 + ((2 + 7) / 8) = 3 • Row_Size = 40 + 3 + 4 = 47 • Rows_Per_Page = 8096 / (47 + 2) = 165 pages • Num_of_Pages = 5 / 165 = 0,03 page • Num_of_Bytes = 8192 x 0,03 = 245.76 Bytes • Num_of_KBytes = 8 x 0,03 = 0,24 Kb
101
4. Dim Dealer R5 = 5 x (1+0,01)5 =5 Jumlah record DimDealer pada tahun ke-5 = 5 Kisaran media penyimpanan yang dibutuhkan dalam jangka waktu 5 tahun adalah: • Num_Row = 5 • Num_Col = 2 • Fixed_Data_Size = 10 + 30 = 40 Bytes • Null Bitmap = 2 + ((2 + 7) / 8) = 3 • Row_Size = 40 + 3 + 4 = 47 • Rows_Per_Page = 8096 / (47 + 2) = 165 pages • Num_of_Pages = 5 / 165 = 0,03 page • Num_of_Bytes = 8192 x 0,03 = 245.76 Bytes • Num_of_KBytes = 8 x 0,03 = 0,24 Kb
102
5. Dim Bahan Baku R5 = 18 x (1+0,01)5 = 19 Jumlah record DimDealer pada tahun ke-5 = 19 Kisaran media penyimpanan yang dibutuhkan dalam jangka waktu 5 tahun adalah: • Num_Row = 19 • Num_Col = 2 • Fixed_Data_Size = 10 + 30 = 40 Bytes • Null Bitmap = 2 + ((3 + 7) / 8) = 3 • Row_Size = 40 + 3 + 4 = 47 • Rows_Per_Page = 8096 / (47 + 2) = 165 pages • Num_of_Pages = 19 / 165 = 0,12 page • Num_of_Bytes = 8192 x 0,12 = 983.04 byte • Num_of_KBytes = 8 x 0,12 = 0.96 Kb
103
6. Dim Media R5 = 5 x (1+0,01)5 =5 Jumlah record DimMedia pada tahun ke-5 = 5 Kisaran media penyimpanan yang dibutuhkan dalam jangka waktu 5 tahun adalah: • Num_Row = 5 • Num_Col = 2 • Fixed_Data_Size = 10 + 50 = 60 Bytes • Null Bitmap = 2 + ((2 + 7) / 8) = 3 • Row_Size = 60 + 3 + 4 = 67 • Rows_Per_Page = 8096 / (67 + 2) = 1117 pages • Num_of_Pages = 5 / 117 = 0,04 page • Num_of_Bytes = 8192 x 0,04 = 327.68 Bytes • Num_of_KBytes = 8 x 0,04 = 0.32 Kb
104
7. Dim Wilayah R5 = 6 x (1+0,01)5 =6 Jumlah record DimDealer pada tahun ke-5 = 6 Kisaran media penyimpanan yang dibutuhkan dalam jangka waktu 5 tahun adalah: • Num_Row = 6 • Num_Col = 2 • Fixed_Data_Size = 10 + 30 = 40 Bytes • Null Bitmap = 2 + ((2 + 7) / 8) = 3 • Row_Size = 40 + 3 + 4 = 47 • Rows_Per_Page = 8096 / (47 + 2) = 165 pages • Num_of_Pages = 6 / 165 = 0,04 page • Num_of_Bytes = 8192 x 0,04 = 328 Bytes • Num_of_KBytes = 8 x 0,04 = 0,32 Kb
105
Nama Tabel
Besar
Jumlah
Jumlah
Jumlah
Record
Current
Record
Bytes
(Bytes)
Record
Sampai
(MBytes)
5 Tahun ke Depan FactPenjualan
44
36000
237600
10.6
FactPembelian
44
26400
174240
7.7
FactPemasaran 54
1200
7920
0.43
Fact Retur
35
5100
33660
1.14
25
1920
12672
0.33
Penjualan
Fact Retur Pembelian
Tabel 4.15 Tabel Fakta
106
Nama Tabel
Besar
Jumlah
Jumlah
Jumlah
Record
Current
Record
Bytes
(Bytes)
Record
Sampai
(KBytes)
5 Tahun ke Depan DimWaktu
16
912
2737
67.6
DimBarang
77
24
25
1.92
DimWilayah
47
6
6
0.32
DimMedia
67
5
5
0.32
DimBahanBaku 47
18
19
0.96
DimSupplier
47
5
5
0.24
DimDealer
47
5
5
0.24
Tabel 4.16 Tabel Dimensi
4.3 Metadata Metadata berisi tabel pada data warehouse yang mencakup nama database sumber, nama tabel data warehouse beserta deskripsi. Metadata juga memuat informasi yang mencakup rincian tabel, tipe field, ukuran field, dan field yang menjadi field kunci. Berikut merupakan metadata dari data warehouse PT. Metrotech Jaya Komunika:
107
DBMS
: SQL server 2005
Nama Database
: Metrotech_DWH
Nama Tabel
: DimWaktu
Deskripsi Tabel
: Tabel Dimensi Waktu
Field
Tipe
Ukuran
Sumber Data Field
Tipe
Ukuran
Transformasi Tabel
TimeKey
int
4
TimeKey
int
4
DimWaktu
create
MonthNumber
int
4
MonthNumber
int
4
DimWaktu
create
QuartalNumber
int
4
QuartalNumber
int
4
DimWaktu
create
YearNumber
int
4
YearNumber
int
4
DimWaktu
create
Tabel 4.17 Metadata DimWaktu
108
DBMS
: SQL server 2005
Nama Database
: Metrotech_DWH
Nama Tabel
: DimBarang
Deskripsi Tabel
: Tabel Dimensi Barang
Field
Tipe
Ukuran
Sumber Data Field
Tipe
Ukuran
Transformasi Tabel
BarangID
char
10
KodeBarang
char
10
MsBarang
JenisBarang
varchar
30
NamaJenisbarang
varchar
50
MsJenisBarang copy
NamaBarang
varchar
30
NamaBarang
varchar
30
MsBarang
Tabel 4.18 Metadata DimBarang
copy
copy
109
DBMS
: SQL Server 2005
Nama Database
: Metrotech_DWH
Nama Tabel
: DimSupplier
Deskripsi Tabel
: Tabel Dimensi Supplier
Field
Tipe
Ukuran
Sumber Data Field
Tipe
Ukuran
Transformasi Tabel
SupplierID
char
10
KodeSupplier
char
10
MsSupplier
copy
NamaSupllier
varchar
30
NamaSupplier
varchar
30
MsSupplier
copy
Tabel 4.19 Metadata DimSupplier
110
DBMS
: SQL Server 2005
Nama Database
: Metrotech_DWH
Nama Tabel
: DimBahanBaku
Deskripsi Tabel
: Tabel Dimensi Bahan Baku
Field
Tipe
Ukuran
Sumber Data Field
Tipe
Ukuran
Transformasi Tabel
BahanBakuID
char
10
KodeBahan
char
10
MsBahanBaku
copy
NamaBahanBaku
varchar
30
NamaBahan
varchar
30
MsBahanBaku
copy
Tabel 4.20 Metadata DimBahanBaku
111
DBMS
: SQL Server 2005
Nama Database
: Metrotech_DWH
Nama Tabel
: DimWilayah
Deskripsi Tabel
: Tabel Dimensi Wilayah
Field
Tipe
Ukuran
Sumber Data Field
Tipe
Ukuran
Transformasi Tabel
WilayahID
char
10
KodeWilayah
char
10
MsWilayah
copy
NamaWilayah
varchar
30
NamaWilayah
varchar
30
MsWilayah
copy
Tabel 4.21 Metadata DimWilayah
112
DBMS
: SQL Server 2005
Nama Database
: Metrotech_DWH
Nama Tabel
: DimDealer
Deskripsi Tabel
: Tabel Dimensi Dealer
Field
Tipe
Ukuran
Sumber Data Field
Tipe
Ukuran
Transformasi Tabel
DealerID
char
10
KodeDealer
char
10
MsDealer
copy
NamaDealer
varchar
30
NamaDealer
varchar
30
MsDealer
copy
Tabel 4.22 Metadata DimDealer
113
DBMS
: SQL Server 2005
Nama Database
: Metrotech_DWH
Nama Tabel
: DimMedia
Deskripsi Tabel
: Tabel Dimensi Media
Field
Tipe
Ukuran
Sumber Data Field
Tipe
Ukuran
Transformasi Tabel
MediaID
char
10
KodeMedia
char
10
MsMedia
copy
NamaMedia
varchar
50
NamaMedia
varchar
50
MsMedia
copy
Tabel 4.23 Metadata DimMedia
114
DBMS
: SQL Server 2005
Nama Database
: Metrotech_DWH
Nama Tabel
: FactPembelian
Deskripsi Tabel
: Tabel Fact Pembelian
Field
Tipe
Ukuran
Sumber Data Field
TimeKey
int
4
TimeKey
Tipe
Ukuran
int
4
Transformasi Tabel DimWaktu
Copy TimeKey where DimWaktu.MonthNumber = month (TrPembelianHeader.Tanggal) and DimWaktu.QuartalNumber = case when month (TrPembelianHeader.Tanggal) between 1 and 3 then 1 when month (TrPembelianHeader.Tanggal) between 4 and 6 then 2 when month (TrPembelianHeader.Tanggal) between 7
115
and 9 then 3 when month (TrPembelianHeader.Tanggal) between 10 and 12 then 4 and DimWaktu.YearNumber = year (TrPembelianHeader.Tanggal) SupplierID
char
10
SupplierID
char
10
DimSupplier
Copy SupplierID where DimSupplier.SupplierID = TrPembelianHeader.KodeSupplier
BahanBakuID char
10
BahanBakuI char
10
D
DimBahanBa Copy BahanBakuID where ku
DimBahanBaku.BahanBakuID = TrPembelianDetail.KodeBahan
QtyBeli
int
4
Sum(qty)
int
4
Calculate
TotalBeli
mon
8
Sum(qty*ha
mon
8
Calculate
rgabahan)
ey
ey
Tabel 4.24 Metadata Fact Pembelian
116
DBMS
: SQL Server 2005
Nama Database
: Metrotech_DWH
Nama Tabel
: FactPenjualan
Deskripsi Tabel
: Tabel Fact Penjualan
Field
Tipe
Ukuran
Sumber Data Field
Tipe
Ukura
Transformasi Tabel
n TimeKey
int
4
TimeKey
int
4
DimWaktu
Copy TimeKey where DimWaktu.MonthNumber = month (TrPenjualanHeader.Tanggal) and DimWaktu.QuartalNumber = case when month (TrPenjualanHeader.Tanggal) between 1 and 3 then 1 when month (TrPenjualanHeader.Tanggal) between 4 and 6 then 2 when month
117
(TrPenjualanHeader.Tanggal) between 7 and 9 then 3 when month (TrPenjualanHeader.Tanggal) between 10 and 12 then 4 and DimWaktu.YearNumber = year (TrPenjualanHeader.Tanggal) DealerID
char
10
DealerID
char
10
DimDealer
Copy DealerID where DimDealer.DealerID = FactPenjualan.DealerID
BarangID
char
10
BarangID
char
10
DimBarang
Copy BarangID where DimBarang.BarangID = FactPenjualan.BarangID
JumlahJual
int
4
Sum(qty)
int
4
Calculate
TotalPenjualan
mone
8
Sum(qty*
mon
8
Calculate
harga)
ey
y
Tabel 4.25 Metadata Fact Penjualan
118
DBMS
: SQL Server 2005
Nama Database
: Metrotech_DWH
Nama Tabel
: FactPemasaran
Deskripsi Tabel
: Tabel Fact Pemasaran
Field
Tipe
Ukuran
Sumber Data Field
TimeKey
int
4
TimeKey
Tipe int
Ukuran 4
Transformasi Tabel DimWaktu Copy TimeKey where DimWaktu.MonthNumber = month (TrPromotionHeader.TanggalMula i) and DimWaktu.QuartalNumber = case when month (TrPromotionHeader.TanggalMula i) between 1 and 3 then 1 when month
119
(TrPromotionHeader.TanggalMula i) between 4 and 6 then 2 when month (TrPromotionHeader.TanggalMula i) between 7 and 9 then 3 when month (TrPromotionHeader.TanggalMula i) between 10 and 12 then 4 and DimWaktu.YearNumber = year (TrPromotionHeader.TanggalMula i) WilayahID
char
10
WilayahID
char
10
DimWilay
Copy WilayahID where
ah
DimWilayah.WilayahID = FactPemasaran.WilayahID
BarangID
char
10
BarangID
char
10
DimBaran
Copy BarangID where
g
DimBarang.BarangID =
120
FactPemasaran.BarangID
MediaID
char
10
MediaID
char
10
DimMedia
Copy MediaID where DimMedia.MediaID = FactPemasaran.MediaID
LamaPromo
int
4
Sum(Durasipro
int
4
Calculate
Sum(Hargapro
mone
8
Calculate
mo)
y
mo) TotalBiayaProm
mone
o
y
8
Tabel 4.26 Metadata Fact Pemasaran
121
DBMS
: SQL Server 2005
Nama Database
: Metrotech_DWH
Nama Tabel
: FactReturPembelian
Deskripsi Tabel
: Tabel Fact Retur Pembelian
Field
Tipe Ukuran
Sumber Data Field
TimeKey
int
4
TimeKey
Tipe Ukuran int
4
Transformasi Tabel DimWaktu
Copy TimeKey where DimWaktu.MonthNumber = month (ReturPembelianHeader.Tanggal) and DimWaktu.QuartalNumber = case when month (ReturPembelianHeader.Tanggal) between 1 and 3 then 1 when month
122
(ReturPembelianHeader.Tanggal) between 4 and 6 then 2 when month (ReturPembelianHeader.Tanggal) between 7 and 9 then 3 when month (ReturPembelianHeader.Tanggal) between 10 and 12 then 4 and DimWaktu.YearNumber = year (ReturPembelianHeader.Tanggal) BahanBakuID
char
10
BahanBakuID
char
10
DimBahanBak
Copy BahanBakuID where
u
DimBahanBaku.BahanBakuID = ReturPembelianDetail.KodeBahan
JumlahReturBaha
int
4
Sum(qty)
int
4
n
Tabel 4.27 Metadata Fact Retur Pembelian
Calculate
123
DBMS
: SQL Server 2005
Nama Database
: Metrotech_DWH
Nama Tabel
: FactReturPenjualan
Deskripsi Tabel
: Tabel Fact Retur Penjualan
Field
Tipe Ukuran
Sumber Data Field
TimeKey
int
4
TimeKey
Tipe Ukuran int
4
Transformasi Tabel DimWaktu
Copy TimeKey where DimWaktu.MonthNumber = month (ReturPenjualanHeader.Tanggal) and DimWaktu.QuartalNumber = case when month (ReturPenjualanHeader.Tanggal) between 1 and 3 then 1 when month (ReturPenjualanHeader.Tanggal) between 4 and 6 then 2 when month
124
(ReturPenjualanHeader.Tanggal) between 7 and 9 then 3 when month (ReturPenjualanHeader.Tanggal) between 10 and 12 then 4 and DimWaktu.YearNumber = year (ReturPenjualanHeader.Tanggal) DealerID
char
10
DealerID
char
10
DimDealer
Copy DealerID where DimDealer.DealerID = FactReturPenjualan.DealerID
BarangID
char
10
BarangID
char
10
DimBarang Copy BarangID where DimBarang.BarangID = FactReturPenjualan.BarangID
JumlahReturBarang
int
4
Sum(qty)
int
4
Tabel 4.28 Metadata Fact Retur Penjualan
Calculate
125
4.4 Perancangan Layar Prototype Datawarehouse Form Login
Gambar 4.3 Form Login
126
Form Menu
Gambar 4.4 Form Menu
127
Form Menu (Dashboard)
Gambar 4.5 Dashboard
128
Form Change Password
Gambar 4.6 Form Change Password
129
Form Manage User
Gambar 4.7 Form Manage User
130
Form Pivot Penjualan
Gambar 4.8 Form Pivot Penjualan
131
Form Pivot Pembelian
Gambar 4.9 Form Pivot Pembelian
132
Form Pivot Pemasaran
Gambar 4.10 Form Pivot Pemasaran
133
Form Pivot Retur Penjualan
Gambar 4.11 Form Pivot Retur Penjualan
134
Form Retur Pembelian
Gambar 4.12 Form Pivot Retur Pembelian
135
Form DTS
Gambar 4.13 Form DTS
136
Transformasi Data Dim Waktu
Gambar 4.14 Transformasi Data Dim Waktu
IF EXISTS ( SELECT * FROM [Metrotech_DWH].[dbo].FilterTimeStamp WHERE Table_Name = 'DimWaktu' ) SELECT year( Tgl ) AS [Year], [QuartalNumber] = case
137
WHEN month( Tgl ) BETWEEN 1 AND 4 THEN 1 WHEN month( Tgl ) BETWEEN 5 AND 8 THEN 2 WHEN month( Tgl ) BETWEEN 9 AND 12 THEN 3 END, month( Tgl ) AS [MonthNumber]
FROM ( SELECT DISTINCT Tanggal AS Tgl, InsertedDate FROM [Metrotech_operasional].[dbo].TrPembelianHeader UNION SELECT DISTINCT Tanggal AS Tgl, InsertedDate FROM [Metrotech_operasional].[dbo].TrPenjualanHeader UNION SELECT DISTINCT TanggalMulai AS Tgl, InsertedDate FROM [Metrotech_operasional].[dbo].TrPromotionHeader UNION SELECT DISTINCT Tanggal AS Tgl, InsertedDate FROM [Metrotech_operasional].[dbo].ReturPenjualanHeader UNION SELECT DISTINCT Tanggal AS Tgl, InsertedDate FROM [Metrotech_operasional].[dbo].ReturPembelianHeader ) AS Tgl WHERE Tgl.InsertedDate >
138
( SELECT Last_date_ETL_Process FROM [Metrotech_DWH].[dbo].FilterTimeStamp WHERE Table_Name = 'DimWaktu' ) ELSE SELECT year( Tgl ) AS [Year], [QuartalNumber] = case WHEN month( Tgl ) BETWEEN 1 AND 4 THEN 1 WHEN month( Tgl ) BETWEEN 5 AND 8 THEN 2 WHEN month( Tgl ) BETWEEN 9 AND 12 THEN 3 END, month( Tgl ) AS [MonthNumber]
FROM ( SELECT DISTINCT Tanggal AS Tgl, InsertedDate FROM [Metrotech_operasional].[dbo].TrPembelianHeader UNION SELECT DISTINCT Tanggal AS Tgl, InsertedDate FROM [Metrotech_operasional].[dbo].TrPenjualanHeader UNION SELECT DISTINCT TanggalMulai AS Tgl, InsertedDate FROM [Metrotech_operasional].[dbo].TrPromotionHeader
139
UNION SELECT DISTINCT Tanggal AS Tgl, InsertedDate FROM [Metrotech_operasional].[dbo].ReturPenjualanHeader UNION SELECT DISTINCT Tanggal AS Tgl, InsertedDate FROM [Metrotech_operasional].[dbo].ReturPembelianHeader
) AS Tgl
140
Dim Bahan Baku
Gambar 4.15 Transformasi Data Dim Bahan Baku
IF EXISTS ( SELECT * FROM [Metrotech_DWH].[dbo].FilterTimeStamp WHERE Table_Name = 'DimBahanBaku' ) SELECT KodeBahan, NamaBahan FROM [Metrotech_operasional].[dbo].MsBahanBaku WHERE InsertedDate > ( SELECT Last_date_ETL_Process FROM [Metrotech_DWH].[dbo].FilterTimeStamp WHERE Table_Name = 'DimBahanBaku'
141
) ELSE SELECT KodeBahan, NamaBahan FROM [Metrotech_operasional].[dbo].MsBahanBaku
142
Dim Barang
Gambar 4.16 Transformasi Data Dim Barang
IF EXISTS ( SELECT * FROM [Metrotech_DWH].[dbo].FilterTimeStamp WHERE Table_Name = 'DimBarang' ) SELECT KodeBarang,JenisBarang, NamaBarang FROM [Metrotech_operasional].[dbo].MsBarang WHERE InsertedDate > ( SELECT Last_date_ETL_Process FROM [Metrotech_DWH].[dbo].FilterTimeStamp WHERE Table_Name = 'DimBarang'
143
) ELSE SELECT KodeBarang, JenisBarang, NamaBarang FROM [Metrotech_operasional].[dbo].MsBarang
144
DimDealer
Gambar 4.17 Transformasi Data Dim Dealer IF EXISTS ( SELECT * FROM [Metrotech_DWH].[dbo].FilterTimeStamp WHERE Table_Name = 'DimDealer' ) SELECT KodeDealer, NamaDealer FROM [Metrotech_operasional].[dbo].MsDealer WHERE InsertedDate > ( SELECT Last_date_ETL_Process FROM [Metrotech_DWH].[dbo].FilterTimeStamp WHERE Table_Name = 'DimDealer' )
145
ELSE SELECT KodeDealer, NamaDealer FROM [Metrotech_operasional].[dbo].MsDealer
146
DimMedia
Gambar 4.18 Transformasi Data Dim Media
IF EXISTS ( SELECT * FROM [Metrotech_DWH].[dbo].FilterTimeStamp WHERE Table_Name = 'DimMedia' ) SELECT KodeMedia, NamaMedia FROM [Metrotech_operasional].[dbo].MsMedia WHERE InsertedDate > ( SELECT Last_date_ETL_Process FROM [Metrotech_DWH].[dbo].FilterTimeStamp WHERE Table_Name = 'DimMedia'
147
) ELSE SELECT KodeMedia, NamaMedia FROM [Metrotech_operasional].[dbo].MsMedia
148
DimSupplier
Gambar 4.19 Transformasi Data Dim Supplier
IF EXISTS ( SELECT * FROM [Metrotech_DWH].[dbo].FilterTimeStamp WHERE Table_Name = 'DimSupplier' ) SELECT KodeSupplier, NamaSupplier FROM [Metrotech_operasional].[dbo].MsSupplier WHERE InsertedDate > ( SELECT Last_date_ETL_Process FROM [Metrotech_DWH].[dbo].FilterTimeStamp WHERE Table_Name = 'DimSupplier'
149
) ELSE SELECT KodeSupplier, NamaSupplier FROM [Metrotech_operasional].[dbo].MsSupplier
150
DimWilayah
Gambar 4.20 Transformasi Data Dim Wilayah
IF EXISTS ( SELECT * FROM [Metrotech_DWH].[dbo].FilterTimeStamp WHERE Table_Name = 'DimWilayah' ) SELECT KodeWilayah, NamaWilayah FROM [Metrotech_operasional].[dbo].MsWilayah WHERE InsertedDate > ( SELECT Last_date_ETL_Process FROM [Metrotech_DWH].[dbo].FilterTimeStamp WHERE Table_Name = 'DimWilayah '
151
) ELSE SELECT KodeWilayah, NamaWilayah FROM [Metrotech_operasional].[dbo].MsWilayah
152
Fact Pembelian
Gambar 4.21 Transformasi Data Fact Pembelian
IF EXISTS ( SELECT * FROM [Metrotech_DWH].[dbo].FilterTimeStamp WHERE Table_Name = 'FactPembelian' ) SELECT TimeKey, SupplierID, BahanBakuID, SUM (PBD.Quantity) AS [qtyBeli],
153
SUM (PBD.Quantity * PBD.HargaBahan) AS [totalBeli] FROM [Metrotech_DWH].[dbo].DimSupplier AS DS, [Metrotech_DWH].[dbo].DimBahanBaku AS DBB, [Metrotech_DWH].[dbo].DimWaktu AS DimWk, [Metrotech_operasional].[dbo].MsBahanBaku AS MBB, [Metrotech_operasional].[dbo].MsSupplier AS MS, [Metrotech_operasional].[dbo].TrPembelianHeader AS PBH, [Metrotech_operasional].[dbo].TrPembelianDetail AS PBD
WHERE PBH.KodePembelian = PBD.KodePembelian AND PBH.Tanggal = DimWk.FullDate AND PBH.KodeSupplier = MS.KodeSupplier AND MS.KodeSupplier = DS.SupplierID AND PBD.KodeBahan = MBB.KodeBahan AND MBB.KodeBahan = DBB.BahanBakuID AND PBH.Tanggal > ( SELECT Last_date_ETL_Process FROM [Metrotech_DWH].[dbo].FilterTimeStamp WHERE Table_Name = 'FactPembelian' ) GROUP BY TimeKey,
154
BahanBakuID, SupplierID ELSE SELECT TimeKey, SupplierID, BahanBakuID, SUM (PBD.Quantity) AS [QtyBeli], SUM (PBD.Quantity * PBD.HargaBahan) AS [TotalBeli] FROM [Metrotech_DWH].[dbo].DimSupplier AS DS, [Metrotech_DWH].[dbo].DimBahanBaku AS DBB, [Metrotech_DWH].[dbo].DimWaktu AS DimWk, [Metrotech_operasional].[dbo].MsBahanBaku AS MBB, [Metrotech_operasional].[dbo].MsSupplier AS MS, [Metrotech_operasional].[dbo].TrPembelianHeader AS PBH, [Metrotech_operasional].[dbo].TrPembelianDetail AS PBD
WHERE
PBH.KodePembelian = PBD.KodePembelian AND PBH.Tanggal = DimWk.FullDate AND PBH.KodeSupplier = MS.KodeSupplier AND MS.KodeSupplier = DS.SupplierID AND
155
PBD.KodeBahan = MBB.KodeBahan AND MBB.KodeBahan = DBB.BahanBakuID
GROUP BY TimeKey, BahanBakuID, SupplierID
ORDER BY BahanBakuID ASC
156
Fact Penjualan
Gambar 4.22 Transformasi Data Fact Penjualan
IF EXISTS ( SELECT * FROM [Metrotech_DWH].[dbo].FilterTimeStamp WHERE Table_Name = 'FactPenjualan' ) SELECT TimeKey, BarangID, DealerID, SUM (Quantity) AS [JumlahJual],
157
SUM (Quantity * Harga) AS [TotalPenjualan] FROM [Metrotech_operasional].[dbo].TrPenjualanHeader HP, [Metrotech_operasional].[dbo].TrPenjualanDetail DP, [Metrotech_DWH].[dbo].DimWaktu DimWk, [Metrotech_DWH].[dbo].DimBarang DimBrg, [Metrotech_DWH].[dbo].DimDealer DimD WHERE HP.KodePenjualan = DP.KodePenjualan AND HP.Tanggal = DimWk.FullDate AND DP.KodeBarang = DimBrg.BarangID AND HP.KodeDealer = DimD.DealerID AND HP.Tanggal > ( SELECT Last_date_ETL_Process FROM [Metrotech_DWH].[dbo].FilterTimeStamp WHERE Table_Name = 'FactPenjualan' ) GROUP BY TimeKey, BarangID, DealerID ELSE SELECT TimeKey,
158
BarangID, DealerID, SUM (Quantity) AS [JumlahJual], SUM (Quantity * Harga) AS [TotalPenjualan] FROM [Metrotech_operasional].[dbo].TrPenjualanHeader HP, [Metrotech_operasional].[dbo].TrPenjualanDetail DP, [Metrotech_DWH].[dbo].DimWaktu DimWk, [Metrotech_DWH].[dbo].DimBarang DimBrg, [Metrotech_DWH].[dbo].DimDealer DimD WHERE HP.KodePenjualan = DP.KodePenjualan AND HP.Tanggal = DimWk.FullDate AND DP.KodeBarang = DimBrg.BarangID AND HP.KodeDealer = DimD.DealerID GROUP BY TimeKey, BarangID, DealerID
159
Fact Pemasaran
Gambar 4.23 Transformasi Data Fact Pemasaran
IF EXISTS ( SELECT * FROM [Metrotech_DWH].[dbo].FilterTimeStamp WHERE Table_Name = 'FactPemasaran' ) SELECT TimeKey, BarangID, MediaID, WilayahID,
160
SUM (PRD.DurasiPromo) AS [LamaPromo], SUM (PRH.HargaPromo ) AS [TotalBiayaPromo] FROM [Metrotech_DWH].[dbo].DimWaktu DimWk, [Metrotech_DWH].[dbo].DimBarang AS DB, [Metrotech_DWH].[dbo].DimMedia AS DM, [Metrotech_DWH].[dbo].DimWilayah AS DW, [Metrotech_operasional].[dbo].TrPromotionHeader AS PRH INNER JOIN [Metrotech_operasional].[dbo].TrPromotionDetail AS PRD ON PRH.KodePromo = PRD.KodePromo WHERE PRH.TanggalMulai = DimWk.FullDate AND PRD.KodeBarang = DB.BarangID AND PRH.KodeWilayah = DW.WilayahID AND PRD.KodeMedia = DM.MediaID AND PRH.TanggalMulai > ( SELECT Last_date_ETL_Process FROM [Metrotech_DWH].[dbo].FilterTimeStamp WHERE Table_Name = 'FactPemasaran' ) GROUP BY TimeKey, BarangID, MediaID,
161
WilayahID
ELSE SELECT TimeKey, BarangID, MediaID, WilayahID, SUM (PRD.DurasiPromo) AS [LamaPromo], SUM (PRH.HargaPromo ) AS [TotalBiayaPromo] FROM
[Metrotech_DWH].[dbo].DimWaktu DimWk, [Metrotech_DWH].[dbo].DimBarang AS DB, [Metrotech_DWH].[dbo].DimMedia AS DM, [Metrotech_DWH].[dbo].DimWilayah AS DW, [Metrotech_operasional].[dbo].TrPromotionHeader AS PRH INNER JOIN [Metrotech_operasional].[dbo].TrPromotionDetail AS PRD ON PRH.KodePromo = PRD.KodePromo WHERE PRH.TanggalMulai = DimWk.FullDate AND PRD.KodeBarang = DB.BarangID AND PRH.KodeWilayah = DW.WilayahID AND PRD.KodeMedia = DM.MediaID
162
GROUP BY TimeKey, BarangID, MediaID, WilayahID
ORDER BY BarangID ASC
163
Fact Retur Pembelian
Gambar 4.24 Transformasi Data Fact Retur Pembelian
IF EXISTS ( SELECT * FROM [Metrotech_DWH].[dbo].FilterTimeStamp WHERE Table_Name = 'FactReturPembelian' ) SELECT TimeKey, BahanBakuID, SUM (Quantity) AS [JumlahReturBahan]
164
FROM [Metrotech_operasional].[dbo].ReturPembelianHeader RHPB, [Metrotech_operasional].[dbo].ReturPembelianDetail RDPB, [Metrotech_DWH].[dbo].DimWaktu DimWk, [Metrotech_DWH].[dbo].DimBahanBaku DimBB
WHERE RHPB.KodeReturPembelian = RDPB.KodeReturPembelian AND RHPB.Tanggal = DimWk.FullDate AND RDPB.KodeBahan = DimBB.BahanBakuID AND RHPB.Tanggal > ( SELECT Last_date_ETL_Process FROM [Metrotech_DWH].[dbo].FilterTimeStamp WHERE Table_Name = 'FactReturPembelian' ) GROUP BY TimeKey, BahanBakuID
ELSE SELECT TimeKey, BahanBakuID, SUM (Quantity) AS [JumlahReturBahan]
165
FROM [Metrotech_operasional].[dbo].ReturPembelianHeader RHPB, [Metrotech_operasional].[dbo].ReturPembelianDetail RDPB, [Metrotech_DWH].[dbo].DimWaktu DimWk, [Metrotech_DWH].[dbo].DimBahanBaku DimBB WHERE RHPB.KodeReturPembelian = RDPB.KodeReturPembelian AND RHPB.Tanggal = DimWk.FullDate AND RDPB.KodeBahan = DimBB.BahanBakuID GROUP BY TimeKey, BahanBakuID
ORDER BY BahanBakuID ASC
166
Fact Retur Penjualan
Gambar 4.25 Transformasi Data Fact Retur Penjualan
IF EXISTS ( SELECT * FROM [Metrotech_DWH].[dbo].FilterTimeStamp WHERE Table_Name = 'FactReturPenjualan' ) SELECT TimeKey, BarangID, DealerID, SUM (Quantity) AS [JumlahReturBarang]
167
FROM [Metrotech_operasional].[dbo].ReturPenjualanHeader RHP, [Metrotech_operasional].[dbo].ReturPenjualanDetail RDP, [Metrotech_DWH].[dbo].DimWaktu DimWk, [Metrotech_DWH].[dbo].DimBarang DimBrg, [Metrotech_DWH].[dbo].DimDealer DimD WHERE RHP.KodeReturPenjualan = RDP.KodeReturPenjualan AND RHP.Tanggal = DimWk.FullDate AND RDP.KodeBarang = DimBrg.BarangID AND RHP.KodeDealer = DimD.DealerID AND RHP.Tanggal > ( SELECT Last_date_ETL_Process FROM [Metrotech_DWH].[dbo].FilterTimeStamp WHERE Table_Name = 'FactReturPenjualan' ) GROUP BY TimeKey, BarangID, DealerID ELSE SELECT TimeKey,
168
BarangID, DealerID, SUM (Quantity) AS [JumlahReturBarang] FROM [Metrotech_operasional].[dbo].ReturPenjualanHeader RHP, [Metrotech_operasional].[dbo].ReturPenjualanDetail RDP, [Metrotech_DWH].[dbo].DimWaktu DimWk, [Metrotech_DWH].[dbo].DimBarang DimBrg, [Metrotech_DWH].[dbo].DimDealer DimD WHERE RHP.KodeReturPenjualan = RDP.KodeReturPenjualan AND RHP.Tanggal = DimWk.FullDate AND RDP.KodeBarang = DimBrg.BarangID AND RHP.KodeDealer = DimD.DealerID GROUP BY TimeKey, BarangID, DealerID
ORDER BY BarangID ASC
169
4.5 Rancangan Implementasi 4.5.1
Dukungan Perancangan Software Software yang digunakan dalam menjalankan aplikasi data warehouse pada PT. Metrotech Jaya Komunika adalah : 1. Client Sistem Operasi : Menggunakan Microsoft Windows XP Professional Edition Service. Front End Tool : Internet Explorer. 2. Server Sistem Operasi : Menggunakan Microsoft Windows XP Professional Edition. Database : Menggunakan Microsoft SQL Server 2005 Entreprise Edition. Front End Tool : Microsoft Visual Studio 2005.
170
4.5.2
Dukungan Perancangan Hardware Komponen hardware yang diperlukan untuk merancang datawarehouse pada PT. Metrotech Jaya Komunika adalah sebagai berikut: Server: -
Processor XEON Pentium IV – 3,6GHz
-
Motherboard yang mendukung
-
Harddisk SCSI 250GB
-
Memory RAM : DDR2 2 GB
-
VGA 64Mb
-
LAN Card
-
CD ROM 52x
-
Monitor 17”
-
Keyboard
-
Mouse
Workstation -
Processor XEON Pentium IV – 3,6GHz
-
Motherboard yang mendukung
-
Harddisk SCSI 160GB
-
Memory RAM : DDR2 1 GB
-
VGA 64Mb
-
LAN Card
-
Perangkat Modem
-
CD ROM 52x
171
-
Monitor 17”
-
Keyboard
-
Mouse
4.6 Rencana Implementasi Berikut adalah jadwal rencana implementasi data warehouse pada PT. Metrotech Jaya Komunika : Aktivitas
Minggu ke 1
Penyediaan Software dan Hardware Instalasi Software dan Aplikasi Uji Coba Aplikasi
2
3
4
X
X
5
6
X X
Pelatihan User
X
Evaluasi
X Tabel 4.29 Rancangan Implementasi