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.
Berikut adalah gambar arsitektur data warehouse terpusat yang akan digunakan pada PT. Metrotech Jaya Komunika :
Gambar 4.1 Arsitektur Data Warehouse User User User
Data Warehouse PT Metrotech Jaya Komunika
Transformation Data
Database Operasional PT Metrotech Jaya Komunika
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.
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.
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 Dimension Kuantitas Pembelian Supplier X Waktu X Bahan Baku X
Tabel 4.1 Tabel Grain Pembelian b. Penjualan Grain Dimension Barang paling laku terjual Omset Penjualan Dealer X X Barang X X Waktu X X
c. Pemasaran Grain Dimension Biaya Pemasaran Waktu X Barang X Media X Wilayah X
Tabel 4.3 Tabel Grain Pemasaran d. Retur Pembelian
Grain
Dimension
Bahan Baku yang sering di retur
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
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).
4.2.4 Penyimpanan Calculation pada Tabel Fakta (Storing Pre-Calculation 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.
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)
4.2.5 Melengkapi Tabel Dimensi (Rounding out the Dimension Table)
a. Tabel Rounding Out Dimension
Dimensi Field Deskripsi Hirarki Waktu MonthNumber QuartalNumber YearNumber Laporan dapat dilihat per bulan, tahun, atau kuartal. Bulan Tahun Kuartal Barang Barang Jenis Barang Laporan dapat dilihat berdasarkan jenis barang. Barang Jenis Barang
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 Tipe Data Panjang
SupplierID char 10
NamaSupplier varchar 30
Tabel 4.8 Tabel Dimensi DimSupplier DimDealer
Atribut Tipe Data Panjang
DealerID char 10
NamaDealer varchar 30 Tabel 4.9 Tabel Dimensi DimDealer
DimBahanBaku
Atribut Tipe Data Panjang
BahanBakuID char 10
NamaBahan varchar 30 Tabel 4.10 Tabel Dimensi DimBahanBaku
DimBarang
Atribut Tipe Data Panjang
BarangID char 10
JenisBarang varchar 30 NamaBarang varchar 30
Tabel 4.11 Tabel Dimensi DimBarang DimMedia
Atribut Tipe Data Panjang
MediaID char 10
NamaMedia varchar 50 Tabel 4.12 Tabel Dimensi DimMedia
DimWilayah
Atribut Tipe Data Panjang
WilayahID char 10
NamaWilayah varchar 30
b. Perancangan Skema
Dalam perancangan ini, dihasilkan skema star join yaitu :
4.2.6 Memilih durasi dari basis data (Choosing the Duration of the Database) Nama Aplikasi Database Database ada sejak tahun Data yang masuk ke Data Warehouse Data dalam Data Warehouse Metrotech Jaya Komunika DWH Metrotech_DWH Akhir tahun 2006 Januari 2007 – Oktober 2009 2 Tahun 9 Bulan
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.
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 :
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 :
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
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
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)
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
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
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 :
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 :
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
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
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
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
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
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
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
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
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
Nama Tabel Besar Record (Bytes) Jumlah Current Record Jumlah Record Sampai 5 Tahun ke Depan Jumlah Bytes (MBytes) FactPenjualan 44 36000 237600 10.6 FactPembelian 44 26400 174240 7.7 FactPemasaran 54 1200 7920 0.43 Fact Retur Penjualan 35 5100 33660 1.14 Fact Retur Pembelian 25 1920 12672 0.33
Nama Tabel Besar Record (Bytes) Jumlah Current Record Jumlah Record Sampai 5 Tahun ke Depan Jumlah Bytes (KBytes) 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:
DBMS : SQL server 2005
Nama Database : Metrotech_DWH
Nama Tabel : DimWaktu
Deskripsi Tabel : Tabel Dimensi Waktu
Field Tipe Ukuran Sumber Data Transformasi
Field Tipe Ukuran 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
DBMS : SQL server 2005
Nama Database : Metrotech_DWH
Nama Tabel : DimBarang
Deskripsi Tabel : Tabel Dimensi Barang
Field Tipe Ukuran Sumber Data Transformasi
Field Tipe Ukuran Tabel
BarangID char 10 KodeBarang char 10 MsBarang copy
JenisBarang varchar 30 NamaJenisbarang varchar 50 MsJenisBarang copy
NamaBarang varchar 30 NamaBarang varchar 30 MsBarang copy
DBMS : SQL Server 2005
Nama Database : Metrotech_DWH
Nama Tabel : DimSupplier
Deskripsi Tabel : Tabel Dimensi Supplier
Field Tipe Ukuran Sumber Data Transformasi
Field Tipe Ukuran Tabel
SupplierID char 10 KodeSupplier char 10 MsSupplier copy
NamaSupllier varchar 30 NamaSupplier varchar 30 MsSupplier copy
DBMS : SQL Server 2005
Nama Database : Metrotech_DWH
Nama Tabel : DimBahanBaku
Deskripsi Tabel : Tabel Dimensi Bahan Baku
Field Tipe Ukuran Sumber Data Transformasi
Field Tipe Ukuran Tabel
BahanBakuID char 10 KodeBahan char 10 MsBahanBaku copy
NamaBahanBaku varchar 30 NamaBahan varchar 30 MsBahanBaku copy
DBMS : SQL Server 2005
Nama Database : Metrotech_DWH
Nama Tabel : DimWilayah
Deskripsi Tabel : Tabel Dimensi Wilayah
Field Tipe Ukuran Sumber Data Transformasi
Field Tipe Ukuran Tabel
WilayahID char 10 KodeWilayah char 10 MsWilayah copy
NamaWilayah varchar 30 NamaWilayah varchar 30 MsWilayah copy
DBMS : SQL Server 2005
Nama Database : Metrotech_DWH
Nama Tabel : DimDealer
Deskripsi Tabel : Tabel Dimensi Dealer
Field Tipe Ukuran Sumber Data Transformasi
Field Tipe Ukuran Tabel
DealerID char 10 KodeDealer char 10 MsDealer copy
NamaDealer varchar 30 NamaDealer varchar 30 MsDealer copy
DBMS : SQL Server 2005
Nama Database : Metrotech_DWH
Nama Tabel : DimMedia
Deskripsi Tabel : Tabel Dimensi Media
Field Tipe Ukuran Sumber Data Transformasi
Field Tipe Ukuran Tabel
MediaID char 10 KodeMedia char 10 MsMedia copy
NamaMedia varchar 50 NamaMedia varchar 50 MsMedia copy
DBMS : SQL Server 2005
Nama Database : Metrotech_DWH
Nama Tabel : FactPembelian
Deskripsi Tabel : Tabel Fact Pembelian
Field Tipe Ukuran Sumber Data Transformasi
Field Tipe Ukuran Tabel
TimeKey int 4 TimeKey int 4 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
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
D
char 10 DimBahanBa
ku
Copy BahanBakuID where DimBahanBaku.BahanBakuID = TrPembelianDetail.KodeBahan
QtyBeli int 4 Sum(qty) int 4 Calculate
TotalBeli mon ey 8 Sum(qty*ha rgabahan) mon ey 8 Calculate
DBMS : SQL Server 2005
Nama Database : Metrotech_DWH
Nama Tabel : FactPenjualan
Deskripsi Tabel : Tabel Fact Penjualan
Field Tipe Ukuran Sumber Data Transformasi
Field Tipe Ukura
n
Tabel
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
(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 y 8 Sum(qty* harga) mon ey 8 Calculate
DBMS : SQL Server 2005
Nama Database : Metrotech_DWH
Nama Tabel : FactPemasaran
Deskripsi Tabel : Tabel Fact Pemasaran
Field Tipe Ukuran Sumber Data Transformasi
Field Tipe Ukuran Tabel
TimeKey int 4 TimeKey int 4 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
(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
ah
Copy WilayahID where DimWilayah.WilayahID = FactPemasaran.WilayahID
BarangID char 10 BarangID char 10 DimBaran
g
Copy BarangID where DimBarang.BarangID =
FactPemasaran.BarangID
MediaID char 10 MediaID char 10 DimMedia Copy MediaID where
DimMedia.MediaID = FactPemasaran.MediaID
LamaPromo int 4 Sum(Durasipro
mo) int 4 Calculate TotalBiayaProm o mone y 8 Sum(Hargapro mo) mone y 8 Calculate
DBMS : SQL Server 2005
Nama Database : Metrotech_DWH
Nama Tabel : FactReturPembelian
Deskripsi Tabel : Tabel Fact Retur Pembelian
Field Tipe Ukuran Sumber Data Transformasi
Field Tipe Ukuran Tabel
TimeKey int 4 TimeKey int 4 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
(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
u
Copy BahanBakuID where DimBahanBaku.BahanBakuID = ReturPembelianDetail.KodeBahan JumlahReturBaha
n
int 4 Sum(qty) int 4 Calculate
DBMS : SQL Server 2005
Nama Database : Metrotech_DWH
Nama Tabel : FactReturPenjualan
Deskripsi Tabel : Tabel Fact Retur Penjualan
Field Tipe Ukuran Sumber Data Transformasi
Field Tipe Ukuran Tabel
TimeKey int 4 TimeKey int 4 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
(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 Calculate
4.4 Perancangan Layar Prototype Datawarehouse Form Login
Form Menu
Form Menu (Dashboard)
Form Change Password
Form Manage User
Form Pivot Penjualan
Form Pivot Pembelian
Form Pivot Pemasaran
Form Pivot Retur Penjualan
Form Retur Pembelian
Form DTS
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] =
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
( 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
UNION
SELECT DISTINCT Tanggal AS Tgl, InsertedDate
FROM [Metrotech_operasional].[dbo].ReturPenjualanHeader
UNION
SELECT DISTINCT Tanggal AS Tgl, InsertedDate
FROM [Metrotech_operasional].[dbo].ReturPembelianHeader
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'
) ELSE
SELECT KodeBahan, NamaBahan
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'
) ELSE
SELECT KodeBarang, JenisBarang, NamaBarang FROM [Metrotech_operasional].[dbo].MsBarang
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'
ELSE
SELECT KodeDealer, NamaDealer FROM [Metrotech_operasional].[dbo].MsDealer
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'
) ELSE
SELECT KodeMedia, NamaMedia
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'
) ELSE
SELECT KodeSupplier, NamaSupplier FROM [Metrotech_operasional].[dbo].MsSupplier
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 '
) ELSE
SELECT KodeWilayah, NamaWilayah FROM [Metrotech_operasional].[dbo].MsWilayah
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 * 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
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
PBD.KodeBahan = MBB.KodeBahan AND MBB.KodeBahan = DBB.BahanBakuID GROUP BY TimeKey, BahanBakuID, SupplierID
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 * 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,
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
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,
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,
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
GROUP BY TimeKey, BarangID, MediaID, WilayahID
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,
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,
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
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,
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,
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
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.
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
- Monitor 17” - Keyboard - Mouse
4.6 Rencana Implementasi
Berikut adalah jadwal rencana implementasi data warehouse pada PT. Metrotech Jaya Komunika :
Aktivitas Minggu ke -
1 2 3 4 5 6 Penyediaan Software dan Hardware X Instalasi Software dan Aplikasi X
Uji Coba Aplikasi X X
Pelatihan User X
Evaluasi X