• Tidak ada hasil yang ditemukan

Transformasi Data

Dalam dokumen BAB 3 ANALISIS DAN PERANCANGAN SISTEM (Halaman 67-86)

Proses transformasi data dimulai dari tabel DimBahanBaku, DimBarang, DimCustomer, DimGroupBarang, DimSupplier, DimTipeSupplier, DimWaktu, FactPenjualan, FactPembelian, FactProduksi yang akan dijabarkan sebagai berikut :

a. DimBahanBaku

Gambar 3.5 Gambar Rancangan Package DTS Dim BahanBaku

IF EXISTS ( SELECT *

FROM [AE_DW].[dbo].FilterTimeStamp WHERE Table_Name = 'MsBahanBaku' )

SELECT KodeBahan, NamaBahan

FROM [Artha_Operasional].[dbo].MsBahanBaku AS B WHERE

( SELECT Last_ETL_Process_Date FROM [AE_DW].[dbo].FilterTimeStamp WHERE Table_Name = 'MsBahanBaku'

)

ELSE

SELECT KodeBahan, NamaBahan

FROM [Artha_Operasional].[dbo].MsBahanBaku AS B

b. DimBarang

Gambar 3.6 Gambar Rancangan Package DTS Dim Barang

IF EXISTS ( SELECT *

FROM [AE_DW].[dbo].FilterTimeStamp WHERE Table_Name = 'MsBarang' )

FROM [Artha_Operasional].[dbo].MsBarang AS B, [AE_DW].[dbo].DimGroupBarang AS GB

WHERE

B.KodeGroupBarang = GB.KodeGroupBarang AND InsertedDate >

( SELECT Last_ETL_Process_Date FROM [AE_DW].[dbo].FilterTimeStamp WHERE Table_Name = 'MsBarang'

) ELSE

SELECT GroupBarangID, KodeBarang, NamaBarang FROM [Artha_Operasional].[dbo].MsBarang AS B, [AE_DW].[dbo].DimGroupBarang AS GB

WHERE B.KodeGroupBarang = GB.KodeGroupBarang

c. DimCustomer

IF EXISTS ( SELECT *

FROM [AE_DW].[dbo].FilterTimeStamp WHERE Table_Name = 'MsCustomer' )

SELECT TipeCustomerID,KodeCustomer, NamaCustomer FROM [Artha_Operasional].[dbo].MsCustomer as M, [AE_DW].[dbo].DimTipeCustomer as TC

WHERE M.KodeTipeCustomer = TC.KodeTipeCustomer AND InsertedDate >

( SELECT Last_ETL_Process_Date FROM [AE_DW].[dbo].FilterTimeStamp WHERE Table_Name = 'MsCustomer' )

ELSE

SELECT TipeCustomerID, KodeCustomer, NamaCustomer FROM [Artha_Operasional].[dbo].MsCustomer as M, [AE_DW].[dbo].DimTipeCustomer as TC

WHERE M.KodeTipeCustomer = TC.KodeTipeCustomer

Gambar 3.8 Gambar Rancangan Package DTS Dim GroupBarang

IF EXISTS ( SELECT *

FROM [AE_DW].[dbo].FilterTimeStamp WHERE Table_Name = 'MsGroupBarang' )

SELECT KodeGroupBarang, NamaGroupBarang FROM [Artha_Operasional].[dbo].MsGroupBarang

WHERE InsertedDate >

( SELECT Last_ETL_Process_Date FROM [AE_DW].[dbo].FilterTimeStamp WHERE Table_Name = 'MsGroupBarang' )

ELSE

SELECT KodeGroupBarang, NamaGroupBarang FROM [Artha_Operasional].[dbo].MsGroupBarang

e. DimSupplier

Gambar 3.9 Gambar Rancangan Package DTS Dim Supplier

IF EXISTS ( SELECT *

FROM [AE_DW].[dbo].FilterTimeStamp WHERE Table_Name = 'MsSupplier' )

SELECT KodeSupplier, NamaSupplier

FROM [Artha_Operasional].[dbo].MsSupplier AS S WHERE

InsertedDate >

( SELECT Last_ETL_Process_Date FROM [AE_DW].[dbo].FilterTimeStamp WHERE Table_Name = 'MsSupplier' )

SELECT KodeSupplier, NamaSupplier

FROM [Artha_Operasional].[dbo].MsSupplier AS S

f. DimTipeCustomer

Gambar 3.10 Gambar Rancangan Package DTS Dim TipeCustomer

IF EXISTS ( SELECT *

FROM [AE_DW].[dbo].FilterTimeStamp WHERE Table_Name = 'MsTipeCustomer' )

SELECT KodeTipeCustomer, TipeCustomer FROM [Artha_Operasional].[dbo].MsTipeCustomer

WHERE InsertedDate >

( SELECT Last_ETL_Process_Date FROM [AE_DW].[dbo].FilterTimeStamp WHERE Table_Name = 'MsTipeCustomer'

) ELSE

SELECT KodeTipeCustomer, TipeCustomer FROM [Artha_Operasional].[dbo].MsTipeCustomer

g. DimWaktu

Gambar 3.11 Gambar Rancangan Package DTS Dim Waktu

IF EXISTS ( SELECT *

FROM [AE_DW].[dbo].FilterTimeStamp WHERE Table_Name = 'Waktu'

)

SELECT

YEAR( Tgl ) AS [Tahun], [Kuartal] =

WHEN MONTH( Tgl ) BETWEEN 1 AND 3 THEN 1 WHEN MONTH( Tgl ) BETWEEN 4 AND 6 THEN 2 WHEN MONTH( Tgl ) BETWEEN 7 AND 9 THEN 3 WHEN MONTH( Tgl ) BETWEEN 10 AND 12 THEN 4 END,

MONTH( Tgl ) AS [Bulan] FROM

( SELECT DISTINCT Tanggal AS Tgl, InsertedDate FROM [Artha_Operasional].[dbo].TrHeaderPembelian UNION

SELECT DISTINCT Tanggal AS Tgl, InsertedDate FROM [Artha_Operasional].[dbo].TrHeaderPenjualan UNION

SELECT DISTINCT Tanggal AS Tgl,InsertedDate FROM [Artha_Operasional].[dbo].TrHeaderProduksi UNION

SELECT DISTINCT Tanggal AS Tgl,InsertedDate FROM [Artha_Operasional].[dbo].TrHeaderReturJual UNION

SELECT DISTINCT Tanggal AS Tgl,InsertedDate FROM [Artha_Operasional].[dbo].TrHeaderReturBeli ) AS Tgl

WHERE

( SELECT Last_ETL_Process_Date FROM [AE_DW].[dbo].FilterTimeStamp WHERE Table_Name = 'Waktu'

) ELSE SELECT YEAR( Tgl ) AS [Tahun], [Kuartal] = CASE

WHEN MONTH( Tgl ) BETWEEN 1 AND 3 THEN 1 WHEN MONTH( Tgl ) BETWEEN 4 AND 6 THEN 2 WHEN MONTH( Tgl ) BETWEEN 7 AND 9 THEN 3 WHEN MONTH( Tgl ) BETWEEN 10 AND 12 THEN 4 END,

MONTH( Tgl ) AS [Bulan] FROM

( SELECT DISTINCT Tanggal AS Tgl, InsertedDate FROM [Artha_Operasional].[dbo].TrHeaderPembelian UNION

SELECT DISTINCT Tanggal AS Tgl, InsertedDate FROM [Artha_Operasional].[dbo].TrHeaderPenjualan UNION

SELECT DISTINCT Tanggal AS Tgl,InsertedDate FROM [Artha_Operasional].[dbo].TrHeaderProduksi

UNION

SELECT DISTINCT Tanggal AS Tgl,InsertedDate FROM [Artha_Operasional].[dbo].TrHeaderReturJual UNION

SELECT DISTINCT Tanggal AS Tgl,InsertedDate FROM [Artha_Operasional].[dbo].TrHeaderReturBeli ) AS Tgl

h. FactPenjualan

Gambar 3.12 Gambar Rancangan Package DTS Fact Penjualan

IF EXISTS

( SELECT *

FROM [AE_DW].[dbo].FilterTimeStamp WHERE Table_Name = 'Penjualan'

)

SUM(DP.JmlJual) AS Jumlah,

SUM(DP.JmlJual * B.hargajual) AS [Total Jual], SUM(DR.JmlReturJual)as JumlahRetur, SUM(DR.JmlReturJual*B.hargajual) AS [Total Retur]

FROM [Artha_Operasional].[dbo].TrHeaderPenjualan AS HP, [Artha_Operasional].[dbo].TrDetailPenjualan AS DP, [Artha_Operasional].[dbo].TrHeaderReturJual AS HR, [Artha_Operasional].[dbo].TrDetailReturJual AS DR, [Artha_Operasional].[dbo].MsBarang AS B, [Artha_Operasional].[dbo].MsCustomer AS C, [AE_DW].[dbo].DimWaktu AS DimWk, [AE_DW].[dbo].DimBarang AS DimBr, [AE_DW].[dbo].DimCustomer AS DimCm WHERE

HP.NoFakturJual = DP.NoFakturJual AND HP.KodeCustomer = C.KodeCustomer AND C.KodeCustomer = DimCm.KodeCustomer AND DP.KodeBarang = B.KodeBarang AND

B.KodeBarang = DimBr.KodeBarang AND HP.NoFakturJual = HR.NoFakturJual AND HR.KodeReturJual = DR.KodeReturJual AND YEAR( HP.Tanggal ) = DimWk.Tahun AND MONTH( HP.Tanggal ) = DimWk.Bulan AND

HP.Tanggal >

( SELECT Last_ETL_Process_Date FROM [AE_DW].[dbo].FilterTimeStamp WHERE Table_Name = 'Penjualan'

)

GROUP BY WaktuID, BarangID, CustomerID ELSE

SELECT WaktuID, BarangID, CustomerID,

SUM(DP.JmlJual) AS Jumlah,

SUM(DP.JmlJual * B.hargajual) AS [Total Jual], SUM(DR.JmlReturJual)as JumlahRetur,

SUM(DR.JmlReturJual*B.hargajual)AS [Total Retur]

FROM [Artha_Operasional].[dbo].TrHeaderPenjualan AS HP, [Artha_Operasional].[dbo].TrDetailPenjualan AS DP, [Artha_Operasional].[dbo].TrHeaderReturJual AS HR, [Artha_Operasional].[dbo].TrDetailReturJual AS DR, [Artha_Operasional].[dbo].MsBarang AS B, [Artha_Operasional].[dbo].MsCustomer AS C, [AE_DW].[dbo].DimWaktu AS DimWk, [AE_DW].[dbo].DimBarang AS DimBr, [AE_DW].[dbo].DimCustomer AS DimCm WHERE

HP.KodeCustomer = C.KodeCustomer AND C.KodeCustomer= DimCm.KodeCustomer AND DP.KodeBarang = B.KodeBarang AND

B.KodeBarang = DimBr.KodeBarang AND HP.NoFakturJual = HR.NoFakturJual AND HR.KodeReturJual = DR.KodeReturJual AND YEAR( HP.Tanggal ) = DimWk.Tahun AND MONTH( HP.Tanggal ) = DimWk.Bulan GROUP BY WaktuID, BarangID, CustomerID i. FactPembelian

Gambar 3.13 Gambar Rancangan Package DTS Fact Pembelian

IF EXISTS ( SELECT *

FROM [AE_DW].[dbo].FilterTimeStamp WHERE Table_Name = 'Pembelian' )

SELECT WaktuID, BahanID,SupplierID, SUM(DP.JmlBeli) AS Jumlah,

SUM(DP.JmlBeli * BB.hargabeli) AS [Total Beli], SUM(DR.JmlReturBeli)as JumlahRetur,

SUM(DR.JmlReturBeli*BB.hargabeli)AS [Total Retur] FROM [Artha_Operasional].[dbo].TrHeaderPembelian AS HP, [Artha_Operasional].[dbo].TrDetailPembelian AS DP, [Artha_Operasional].[dbo].TrHeaderReturBeli AS HR, [Artha_Operasional].[dbo].TrDetailReturBeli AS DR, [Artha_Operasional].[dbo].MsBahanBaku AS BB, [Artha_Operasional].[dbo].MsSupplier AS S, [AE_DW].[dbo].DimWaktu AS DimWk, [AE_DW].[dbo].DimBahanBaku AS DimBb, [AE_DW].[dbo].DimSupplier AS DimSp WHERE

HP.NoFakturBeli = DP.NoFakturBeli AND HP.KodeSupplier = S.KodeSupplier AND S.KodeSupplier = DimSp.KodeSupplier AND DP.KodeBahan = BB.KodeBahan AND

BB.KodeBahan = DimBb.KodeBahan AND HP.NoFakturBeli = HR.NoFakturBeli AND HR.KodeReturBeli = Dr.KodeReturBeli AND YEAR( HP.Tanggal ) = DimWk.Tahun AND

MONTH( HP.Tanggal ) = DimWk.Bulan AND HP.Tanggal >

( SELECT Last_ETL_Process_Date FROM [AE_DW].[dbo].FilterTimeStamp WHERE Table_Name = 'Pembelian'

)

GROUP BY WaktuID, BahanID, SupplierID ELSE

SELECT WaktuID, BahanID, SupplierID, SUM (DP.JmlBeli) AS Jumlah,

SUM (DP.JmlBeli * BB.hargabeli) AS [Total Beli], SUM (DR.JmlReturBeli)as JumlahRetur,

SUM (DR.JmlReturBeli*BB.hargabeli)AS [Total Retur] FROM [Artha_Operasional].[dbo].TrHeaderPembelian AS HP, [Artha_Operasional].[dbo].TrDetailPembelian AS DP, [Artha_Operasional].[dbo].TrHeaderReturBeli AS HR, [Artha_Operasional].[dbo].TrDetailReturBeli AS DR, [Artha_Operasional].[dbo].MsBahanBaku AS BB, [Artha_Operasional].[dbo].MsSupplier AS S, [AE_DW].[dbo].DimWaktu AS DimWk, [AE_DW].[dbo].DimBahanBaku AS DimBb, [AE_DW].[dbo].DimSupplier AS DimSp WHERE

HP.NoFakturBeli = DP.NoFakturBeli AND HP.KodeSupplier = S.KodeSupplier AND S.KodeSupplier = DimSp.KodeSupplier AND DP.KodeBahan = BB.KodeBahan AND

BB.KodeBahan = DimBb.KodeBahan AND HP.NoFakturBeli = HR.NoFakturBeli AND HR.KodeReturBeli = Dr.KodeReturBeli AND YEAR( HP.Tanggal ) = DimWk.Tahun AND MONTH( HP.Tanggal ) = DimWk.Bulan GROUP BY WaktuID, BahanID, SupplierID

j. FactProduksi

Gambar 3.14 Gambar Rancangan Package DTS Fact Produksi

IF EXISTS

( SELECT *

WHERE Table_Name = 'Produksi' ) SELECT WaktuID, BahanID, BarangID,

SUM(DP.JumlahBahan)as [Jumlah Bahan],

SUM(DP.JumlahBahanTakTerpakai) as [Jumlah Bahan Tak Terpakai],

SUM(DP.JumlahProduksiJadi) AS [Jumlah Produksi Jadi], SUM(DP.JumlahProduksiCacat) as [Jumlah Produksi Cacat] FROM [Artha_Operasional].[dbo].TrHeaderProduksi AS HP, [Artha_Operasional].[dbo].TrDetailProduksi AS DP, [Artha_Operasional].[dbo].MsBarang AS B, [Artha_Operasional].[dbo].MsBahanBaku AS BB, [AE_DW].[dbo].DimWaktu AS DimWk, [AE_DW].[dbo].DimBarang AS DimBr, [AE_DW].[dbo].DimBahanBaku AS DimBn WHERE

HP.KodeProduksi = DP.KodeProduksi AND DP.KodeBahan = BB.KodeBahan AND BB.KodeBahan = DimBn.KodeBahan AND DP.KodeBarang = B.KodeBarang AND

B.KodeBarang = DimBr.KodeBarang AND YEAR( HP.Tanggal ) = DimWk.Tahun AND MONTH( HP.Tanggal ) = DimWk.Bulan AND

HP.Tanggal >

( SELECT Last_ETL_Process_Date FROM [AE_DW].[dbo].FilterTimeStamp WHERE Table_Name = 'Produksi'

) GROUP BY WaktuID, BahanID, BarangID ELSE SELECT WaktuID, BahanID, BarangID,

SUM(DP.JumlahBahan)as [Jumlah Bahan],

SUM(DP.JumlahBahanTakTerpakai) as [Jumlah Bahan Tak Terpakai], SUM(DP.JumlahProduksiJadi) AS [Jumlah Produksi Jadi],

SUM(DP.JumlahProduksiCacat)as [Jumlah Produksi Cacat] FROM

[Artha_Operasional].[dbo].TrHeaderProduksi AS HP, [Artha_Operasional].[dbo].TrDetailProduksi AS DP,

[Artha_Operasional].[dbo].MsBarang AS B, [Artha_Operasional].[dbo].MsBahanBaku AS BB, [AE_DW].[dbo].DimWaktu AS DimWk, [AE_DW].[dbo].DimBarang AS DimBr, [AE_DW].[dbo].DimBahanBaku AS DimBn WHERE

HP.KodeProduksi = DP.KodeProduksi AND DP.KodeBahan = BB.KodeBahan AND BB.KodeBahan = DimBn.KodeBahan AND DP.KodeBarang = B.KodeBarang AND B.KodeBarang = DimBr.KodeBarang AND year( HP.Tanggal ) = DimWk.Tahun AND month( HP.Tanggal ) = DimWk.Bulan

GROUP BY

WaktuID,

BahanID,

BarangID

Dalam dokumen BAB 3 ANALISIS DAN PERANCANGAN SISTEM (Halaman 67-86)

Dokumen terkait