• Tidak ada hasil yang ditemukan

LAMPIRAN. 1) Membuat database baru untuk menampung data warehouse, yang bernama

N/A
N/A
Protected

Academic year: 2021

Membagikan "LAMPIRAN. 1) Membuat database baru untuk menampung data warehouse, yang bernama"

Copied!
39
0
0

Teks penuh

(1)

LAMPIRAN

Langkah-langkah pembuatan data warehouse :

1) Membuat database baru untuk menampung data warehouse, yang bernama ‘OtoBITzOLAP’.

2) Membuat tabel-tabel dimensi dan fakta yang sesuai dengan skema bintang yang telah dirancang, meliputi :

Nama Tabel : DimAccessories

Primary Key : AccessoriesID (identity) Keterangan : Tabel Dimensi Aksesoris SQL Query :

create table DimAccessories (

AccessoriesID int not null primary key identity, Kode nvarchar(20) not null,

Nama nvarchar(50) not null, ExpDate datetime

)

Nama Tabel : DimCustomer

Primary Key : CustomerID (identity) Keterangan : Tabel Dimensi Customer SQL Query :

create table DimCustomer (

CustomerID int not null primary key identity, Nomor nvarchar(50) not null,

Nama nvarchar(50) not null, Alamat nvarchar(50) not null, Kota nvarchar(50) not null, NilaiTransaksi numeric(18), NilaiUangMuka numeric(18), ExpDate datetime

(2)

Nama Tabel : DimKendaraan

Primary Key : KendaraanID (identity) Keterangan : Tabel Dimensi Kendaraan SQL Query :

create table DimKendaraan (

KendaraanID int not null primary key identity, NoRangka nvarchar(20) not null,

Kelas nvarchar(50) not null, Jenis nvarchar(50) not null, Warna nvarchar(50) not null, Model nvarchar(50) not null, Tipe nvarchar(50) not null, ExpDate datetime

)

Nama Tabel : DimSalesman

Primary Key : SalesmanID (identity) Keterangan : Tabel Dimensi Salesman SQL Query :

create table DimSalesman (

SalesmanID int not null primary key identity, Kode nvarchar(5) not null,

Nama nvarchar(50) not null, Supervisor nvarchar(50) not null, Aktif bit,

Expdate datetime )

Nama Tabel : DimWaktu

Primary Key : WaktuID (identity) Keterangan : Tabel Dimensi Waktu SQL Query :

create table DimWaktu (

WaktuID int not null primary key identity, Tahun int not null,

Bulan int not null, Hari int not null )

(3)

Nama Tabel : FactPenjualanKend

Primary Key : -

Surrogate Key : WaktuID, KendaraanID, SalesmanID, CustomerID

Keterangan : Tabel Fakta Penjualan Kendaraan

SQL Query :

create table FactPenjualanKend ( WaktuID int not null,

KendaraanID int not null, SalesmanID int not null, CustomerID int not null, TotalUnitKendTerjual int,

TotalRpKendTerjual numeric(18) )

Nama Tabel : FactPenjualanKendAcc

Primary Key : -

Surrogate Key : WaktuID, KendaraanID, SalesmanID, CustomerID, AccessoriesID

Keterangan : Tabel Fakta Penjualan Aksesoris Kendaraan

SQL Query :

create table FactPenjualanKendAcc ( WaktuID int not null,

KendaraanID int not null, SalesmanID int not null, CustomerID int not null, AccessoriesID int not null, TotalUnitAccTerjual int,

TotalRpAccTerjual numeric(18) )

Nama Tabel : FactAccessoriesPurnaJual

Primary Key : -

Surrogate Key : WaktuID, SalesmanID, CustomerID, AccessoriesID

Keterangan : Tabel Fakta Aksesoris Purna Jual

SQL Query :

create table FactAccessoriesPurnaJual ( WaktuID int not null,

SalesmanID int not null, CustomerID int not null,

(4)

AccessoriesID int not null, TotalUnitAccPurnaJual int,

TotalRpAccPurnaJual numeric(18), TotalRpLaba numeric(18)

)

3) Membuat tabel-tabel staging untuk menampung data yang berasal dari database operasional ‘OtoBITz’ ke database ‘OtoBITzOLAP’ tetapi atribut diambil seperlunya saja, meliputi :

Nama Tabel : TblStg_Accessories

Primary Key : kode

Keterangan : Tabel Staging Aksesoris

SQL Query :

create table TblStg_Accessories (

kode nvarchar(20) not null primary key, nama nvarchar(50),

hargapokok numeric(18), hargajual numeric(18), tglsimpan datetime )

Nama Tabel : TblStg_Customer

Primary Key : nomor

Keterangan : Tabel Staging Customer

SQL Query :

create table TblStg_Customer (

nomor nvarchar(10) not null primary key, nama nvarchar(50), alamat nvarchar(50), kota nvarchar(50), nilaitransaksi numeric(18), nilaiuangmuka numeric(18), tglsimpan datetime )

(5)

Nama Tabel : TblStg_Kendaraan

Primary Key : norangka

Keterangan : Tabel Staging Kendaraan

SQL Query :

create table TblStg_Kendaraan (

norangka nvarchar(20) not null primary key, kode_tipe nvarchar(30),

kode_warna nvarchar(10), tglsimpan datetime

)

Nama Tabel : TblStg_KelasKend

Primary Key : kode

Keterangan : Tabel Staging Kelas Kendaraan

SQL Query :

create table TblStg_KelasKend (

kode nvarchar(5) not null primary key, nama nvarchar(50),

tglsimpan datetime )

Nama Tabel : TblStg_JenisKend

Primary Key : kode

Keterangan : Tabel Staging Jenis Kendaraan

SQL Query :

create table TblStg_JenisKend (

kode nvarchar(5) not null primary key, nama nvarchar(50),

kode_kelas nvarchar(5), tglsimpan datetime )

(6)

Nama Tabel : TblStg_WarnaKend

Primary Key : kode

Keterangan : Tabel Staging Warna Kendaraan

SQL Query :

create table TblStg_WarnaKend (

kode nvarchar(10) not null primary key, nama nvarchar(50),

tglsimpan datetime )

Nama Tabel : TblStg_ModelKend

Primary Key : kode

Keterangan : Tabel Staging Model Kendaraan

SQL Query :

create table TblStg_ModelKend (

kode nvarchar(30) not null primary key, nama nvarchar(50),

tglsimpan datetime )

Nama Tabel : TblStg_TipeKend

Primary Key : kode

Keterangan : Tabel Staging Tipe Kendaraan

SQL Query :

create table TblStg_TipeKend (

kode nvarchar(30) not null primary key, nama nvarchar(50),

kode_model nvarchar(30), kode_jenis nvarchar(5), tglsimpan datetime )

(7)

Nama Tabel : TblStg_Salesman

Primary Key : kode

Keterangan : Tabel Staging Salesman

SQL Query :

create table TblStg_Salesman (

kode nvarchar(5) not null primary key, nama nvarchar(50),

kode_supervisor nvarchar(5), aktif bit,

tglsimpan datetime )

Nama Tabel : TblStg_Supervisor

Primary Key : kode

Keterangan : Tabel Staging Supervisor

SQL Query :

create table TblStg_Supervisor (

kode nvarchar(5) not null primary key, nama nvarchar(50),

tglsimpan datetime )

Nama Tabel : TblStg_Penjualan

Primary Key : nomor

Keterangan : Tabel Staging Penjualan

SQL Query :

create table TblStg_Penjualan (

nomor nvarchar(10) not null primary key, nomor_matching nvarchar(10), norangka nvarchar(20), tanggal datetime, nomor_pesanan nvarchar(10), hjaccessories numeric(18), hjakhir numeric(18), tglsimpan datetime, batal bit )

(8)

Nama Tabel : TblStg_Matching

Primary Key : nomor

Keterangan : Tabel Staging Matching

SQL Query :

create table TblStg_Matching (

nomor nvarchar(10) not null primary key, tanggal datetime,

norangka nvarchar(20), nomor_pesanan nvarchar(10), tglsimpan datetime

)

Nama Tabel : TblStg_PesananKend

Primary Key : nomor

Keterangan : Tabel Staging Pesanan Kendaraan

SQL Query :

create table TblStg_PesananKend (

nomor nvarchar(10) not null primary key, tanggal datetime,

nomor_customer nvarchar(10), kode_salesman nvarchar(5), tglsimpan datetime

)

Nama Tabel : TblStg_MatchingAcc

Primary Key : nomor

Keterangan : Tabel Staging Matching Aksesoris

SQL Query :

create table TblStg_MatchingAcc ( nomor nvarchar(10), nomor_pesanan nvarchar(10), kode_accessories nvarchar(20), totaldpphargajual numeric(18), jumlahpasang smallint, batal bit )

(9)

Nama Tabel : TblStg_AccPurnaJual

Primary Key : nomor

Keterangan : Tabel Staging Aksesoris Purna Jual

SQL Query :

create table TblStg_AccPurnaJual ( nomor nvarchar(10), norangka nvarchar(20), kode_accessories nvarchar(20), nomor_customer nvarchar(10), tanggal datetime, jumlah smallint, hargajualakhir numeric(18), hargapokok numeric(18), kode_salesman nvarchar(5), tglsimpan datetime, batal bit )

4) Membuat Tabel FilterTimeStamp dan Stored Procedure ‘UpdateFilterTimeStamp’ di database ‘OtoBITzOLAP’.

create table FilterTimeStamp (

TableName varchar(50) not null primary key, LastETLDate datetime not null

)

create proc ProcUpdateFilterTimeStamp @TableName varchar(50)

as begin

if exists (select * from FilterTimeStamp where TableName=@TableName) update FilterTimeStamp

set LastETLDate=getdate() where TableName=@TableName else

insert into FilterTimeStamp(TableName,LastETLDate) values (@TableName,getdate())

end go

(10)

5) Melakukan Transformasi Data menggunakan Data Transformation Services di SQL Server 2000 Enterprise Manager.

DTS Dimensi Aksesoris

1. Truncate TblStg_Accessories, berisi query : truncate table TblStg_Accessories

2. Staging Accessories, berisi query :

select kode,nama,hargapokok,hargajual,tglsimpan from UntM_Accessories

Kemudian mentransformasikan ke TblStg_Accessories sesuai dengan kolom yang telah ditentukan.

3. Update ExpDate terhadap DimAccessories, berisi query : update DimAccessories set ExpDate=getdate()

from TblStg_Accessories as Acc,DimAccessories as DimAcc where

DimAcc.Kode=Acc.kode and ( DimAcc.Nama<>Acc.nama ) and

DimAcc.ExpDate is null

4. DWH DimAccesories, berisi query :

if exists (select * from FilterTimeStamp as FTS where FTS.TableName='DimAccessories')

select Acc.kode,Acc.nama from TblStg_Accessories as Acc

where Acc.tglsimpan>(select LastETLDate from FilterTimeStamp where TableName='DimAccessories')

else

select Acc.kode,Acc.nama from TblStg_Accessories as Acc

Kemudian mentransformasikan ke DimAccessories sesuai dengan kolom yang telah ditentukan.

(11)

5. Update FilterTimeStamp, berisi query : exec ProcUpdateFilterTimeStamp ? dan Parameter : DimAccessories

DTS Dimensi Customer

1. Truncate TblStg_Customer, berisi query : truncate table TblStg_Customer

2. Staging Customer, berisi query :

select nomor,nama,alamat,kota,nilaitransaksi,nilaiuangmuka,tglsimpan from GlbM_Customer

Kemudian mentransformasikan ke TblStg_Customer sesuai dengan kolom yang telah ditentukan.

3. Update ExpDate terhadap DimCustomer, berisi query : update DimCustomer set ExpDate=getdate()

from TblStg_Customer as Cust,DimCustomer as DimCust where DimCust.Nomor=Cust.nomor and ( DimCust.Nama<>Cust.nama or DimCust.Alamat<>Cust.alamat or DimCust.Kota<>Cust.kota or DimCust.NilaiTransaksi<>Cust.nilaitransaksi or DimCust.NilaiUangMuka<>Cust.nilaiuangmuka ) and DimCust.ExpDate is null

4. DWH DimCustomer, berisi query :

if exists (select * from FilterTimeStamp as FTS where FTS.TableName='DimCustomer')

select

Cust.nomor,Cust.nama,Cust.alamat,Cust.kota,Cust.nilaitransaksi,Cust.nilaiua ngmuka

from TblStg_Customer as Cust

where Cust.tglsimpan>(select LastETLDate from FilterTimeStamp where TableName='DimCustomer')

(12)

select

Cust.nomor,Cust.nama,Cust.alamat,Cust.kota,Cust.nilaitransaksi,Cust.nilaiua ngmuka

from TblStg_Customer as Cust

Kemudian mentransformasikan ke DimCustomer sesuai dengan kolom yang telah ditentukan.

5. Update FilterTimeStamp, berisi query : exec ProcUpdateFilterTimeStamp ? dan Parameter : DimCustomer

DTS Dimensi Kendaraan

1. Truncate TblStg_KelasKend, berisi query : truncate table TblStg_KelasKend

2. Staging Kelas, berisi query : select kode,nama,tglsimpan from UntM_Kelas

Kemudian mentransformasikan ke TblStg_KelasKend sesuai dengan kolom yang telah ditentukan.

3. Truncate TblStg_JenisKend, berisi query : truncate table TblStg_JenisKend

4. Staging Jenis, berisi query :

select kode,nama,kode_kelas,tglsimpan from UntM_Jenis

Kemudian mentransformasikan ke TblStg_JenisKend sesuai dengan kolom yang telah ditentukan.

5. Truncate TblStg_WarnaKend, berisi query : truncate table TblStg_WarnaKend

(13)

6. Staging Warna, berisi query : select kode,nama,tglsimpan from UntM_Warna

Kemudian mentransformasikan ke TblStg_WarnaKend sesuai dengan kolom yang telah ditentukan.

7. Truncate TblStg_ModelKend, berisi query : truncate table TblStg_ModelKend

8. Staging Model, berisi query : select kode,nama,tglsimpan from UntM_Model

Kemudian mentransformasikan ke TblStg_ModelKend sesuai dengan kolom yang telah ditentukan.

9. Truncate TblStg_TipeKend, berisi query : truncate table TblStg_TipeKend

10. Staging Tipe, berisi query :

select kode,nama,kode_model,kode_jenis,tglsimpan from UntM_Tipe

Kemudian mentransformasikan ke TblStg_TipeKend sesuai dengan kolom yang telah ditentukan.

11. Truncate TblStg_Kendaraan, berisi query : truncate table TblStg_Kendaraan

12. Staging Kendaraan, berisi query :

select norangka,kode_tipe,kode_warna,tglsimpan from UntT_DataKendaraan

Kemudian mentransformasikan ke TblStg_Kendaraan sesuai dengan kolom yang telah ditentukan.

(14)

13. Update ExpDate terhadap DimKendaraan, berisi query : update DimKendaraan set ExpDate=getdate()

from TblStg_KelasKend as Kls, TblStg_JenisKend as Jns, TblStg_WarnaKend as Wrn, TblStg_ModelKend as Mdl, TblStg_TipeKend as Tp, TblStg_Kendaraan as Kend, DimKendaraan as DimKend where DimKend.NoRangka=Kend.norangka and Kend.kode_warna=Wrn.kode and Kend.kode_tipe=Tp.kode and Tp.kode_model=Mdl.kode and Tp.kode_jenis=Jns.kode and Jns.kode_kelas=Kls.kode and ( DimKend.Warna<>Wrn.nama or DimKend.Tipe<>Tp.nama or DimKend.Model<>Mdl.nama or DimKend.Jenis<>Jns.nama or DimKend.Kelas<>Kls.nama ) and DimKend.ExpDate is null

14. DWH DimKendaraan, berisi query :

if exists (select * from FilterTimeStamp as FTS where FTS.TableName='DimKendaraan')

select Kend.norangka,Tp.nama as Tipe,Mdl.nama as Model,Jns.nama as Jenis,Kls.nama as Kelas,Wrn.nama as Warna

from TblStg_KelasKend as Kls, TblStg_JenisKend as Jns, TblStg_WarnaKend as Wrn, TblStg_ModelKend as Mdl, TblStg_TipeKend as Tp, TblStg_Kendaraan as Kend where Kend.kode_tipe=Tp.kode and Tp.kode_model=Mdl.kode and Tp.kode_jenis=Jns.kode and Jns.kode_kelas=Kls.kode and Kend.kode_warna=Wrn.kode and

Kend.tglsimpan>(select LastETLDate from FilterTimeStamp where TableName='DimKendaraan')

(15)

else

select Kend.norangka,Tp.nama as Tipe,Mdl.nama as Model,Jns.nama as Jenis,Kls.nama as Kelas,Wrn.nama as Warna

from TblStg_KelasKend as Kls, TblStg_JenisKend as Jns, TblStg_WarnaKend as Wrn, TblStg_ModelKend as Mdl, TblStg_TipeKend as Tp, TblStg_Kendaraan as Kend where Kend.kode_tipe=Tp.kode and Tp.kode_model=Mdl.kode and Tp.kode_jenis=Jns.kode and Jns.kode_kelas=Kls.kode and Kend.kode_warna=Wrn.kode

Kemudian mentransformasikan ke DimKendaraan sesuai dengan kolom yang telah ditentukan.

15. Update FilterTimeStamp, berisi query : exec ProcUpdateFilterTimeStamp ? dan Parameter : DimKendaraan

DTS Dimensi Salesman

1. Truncate TblStg_Supervisor, berisi query : truncate table TblStg_Supervisor

2. Staging Supervisor, berisi query : select kode,nama,tglsimpan from UntM_Supervisor

Kemudian mentransformasikan ke TblStg_Supervisor sesuai dengan kolom yang telah ditentukan.

3. Truncate TblStg_Salesman, berisi query : truncate table TblStg_Salesman

(16)

select kode,nama,kode_Supervisor,aktif,tglsimpan from UntM_Salesman

Kemudian mentransformasikan ke TblStg_Salesman sesuai dengan kolom yang telah ditentukan.

5. Update ExpDate terhadap DimSalesman, berisi query : update DimSalesman set ExpDate=getdate()

from TblStg_Salesman as Sales,DimSalesman as DimSales, TblStg_Supervisor as Super

where

DimSales.Kode=Sales.kode and Sales.kode_supervisor=Super.kode and ( DimSales.Nama<>Sales.nama or

DimSales.Supervisor<>Super.nama ) and

DimSales.ExpDate is null 6. DWH DimSalesman, berisi query :

if exists (select * from FilterTimeStamp as FTS where FTS.TableName='DimSalesman')

select Sales.kode,Sales.nama,Super.nama as Supervisor,Sales.aktif from TblStg_Salesman as Sales, TblStg_Supervisor as Super where

Sales.kode_supervisor=Super.kode and

Sales.tglsimpan>(select LastETLDate from FilterTimeStamp where TableName='DimSalesman')

else

select Sales.kode,Sales.nama,Super.nama as Supervisor,Sales.aktif from TblStg_Salesman as Sales, TblStg_Supervisor as Super where Sales.kode_supervisor=Super.kode

Kemudian mentransformasikan ke DimSalesman sesuai dengan kolom yang telah ditentukan.

7. Update FilterTimeStamp, berisi query : exec ProcUpdateFilterTimeStamp ? dan Parameter : DimSalesman

(17)

DTS Dimensi Waktu

1. Waktu 5 Tahunan, berisi query : declare @tahun int

declare @bulan int declare @hari int declare @maxtgl int declare @maxthn int

if exists (select * from FilterTimeStamp as FTS where FTS.TableName='DimWaktu')

begin

set @tahun=(select max(Tahun) from DimWaktu)+1 set @maxthn=@tahun+4 while @tahun<=@maxthn begin set @bulan=1 while @bulan<=12 begin

if @bulan=1 set @maxtgl=31 if @bulan=2

begin

if @tahun%4=0 --kabisat set @maxtgl=29

else --tidak kabisat set @maxtgl=28 end

if @bulan=3 set @maxtgl=31 if @bulan=4 set @maxtgl=30 if @bulan=5 set @maxtgl=31 if @bulan=6 set @maxtgl=30 if @bulan=7 set @maxtgl=31 if @bulan=8 set @maxtgl=31 if @bulan=9 set @maxtgl=30 if @bulan=10 set @maxtgl=31 if @bulan=11 set @maxtgl=30 if @bulan=12 set @maxtgl=31 set @hari=1

while @hari<=@maxtgl begin

insert into DimWaktu(Tahun,Bulan,Hari) values (@Tahun,@Bulan,@Hari)

set @hari=@hari+1 end

(18)

end set @tahun=@tahun+1 end end else begin set @tahun=2005 while @tahun<=2009 begin set @bulan=1 while @bulan<=12 begin

if @bulan=1 set @maxtgl=31 if @bulan=2

begin

if @tahun%4=0 --kabisat set @maxtgl=29

else --tidak kabisat set @maxtgl=28 end

if @bulan=3 set @maxtgl=31 if @bulan=4 set @maxtgl=30 if @bulan=5 set @maxtgl=31 if @bulan=6 set @maxtgl=30 if @bulan=7 set @maxtgl=31 if @bulan=8 set @maxtgl=31 if @bulan=9 set @maxtgl=30 if @bulan=10 set @maxtgl=31 if @bulan=11 set @maxtgl=30 if @bulan=12 set @maxtgl=31 set @hari=1

while @hari<=@maxtgl begin

insert into DimWaktu(Tahun,Bulan,Hari) values (@Tahun,@Bulan,@Hari) set @hari=@hari+1 end set @bulan=@bulan+1 end set @tahun=@tahun+1 end end

(19)

2. Update FilterTimeStamp, berisi query : exec ProcUpdateFilterTimeStamp ? dan Parameter : DimWaktu

DTS Fakta Penjualan Kendaraan dan Fakta Aksesoris Kendaraan 1. Truncate TblStg_Penjualan, berisi query :

truncate table TblStg_Penjualan 2. Staging Penjualan, berisi query :

select

nomor,nomor_matching,norangka,tanggal,

nomor_pesanan,hjaccessories,hjakhir,tglsimpan,batal from UntT_Penjualan

Kemudian mentransformasikan ke TblStg_Penjualan sesuai dengan kolom yang telah ditentukan.

3. Truncate TblStg_Matching, berisi query : truncate table TblStg_Matching

4. Staging Penjualan, berisi query :

select nomor,tanggal,norangka,nomor_pesanan,tglsimpan from UntT_Matching

Kemudian mentransformasikan ke TblStg_Matching sesuai dengan kolom yang telah ditentukan.

5. Truncate TblStg_PesananKend, berisi query : truncate table TblStg_PesananKend

6. Staging PesananKend, berisi query :

select nomor,tanggal,nomor_customer,kode_salesman,tglsimpan from UntT_PesananKendaraan

(20)

Kemudian mentransformasikan ke TblStg_PesananKend sesuai dengan kolom yang telah ditentukan.

7. Truncate TblStg_MatchingAcc, berisi query : truncate table TblStg_MatchingAcc

8. Staging MatchingAcc, berisi query : select

nomor,nomor_pesanan,kode_accessories, totaldpphargajual,jumlahpasang,batal from UntT_MatchingAccessories

Kemudian mentransformasikan ke TblStg_MatchingAcc sesuai dengan kolom yang telah ditentukan.

9. Update Batal, berisi query : declare @WaktuID int declare @KendaraanID int declare @SalesmanID int declare @CustomerID int

declare cursor1 cursor forward_only for select FactPenjualanKend.WaktuID, FactPenjualanKend.KendaraanID, FactPenjualanKend.SalesmanID, FactPenjualanKend.CustomerID from TblStg_Penjualan, FactPenjualanKend, DimWaktu, DimKendaraan, DimSalesman, DimCustomer, TblStg_Matching, TblStg_PesananKend where TblStg_Penjualan.batal=1 and FactPenjualanKend.WaktuID=DimWaktu.WaktuID and year(TblStg_Penjualan.tanggal)=DimWaktu.Tahun and month(TblStg_Penjualan.tanggal)=DimWaktu.Bulan and

(21)

day(TblStg_Penjualan.tanggal)=DimWaktu.Hari and FactPenjualanKend.KendaraanID=DimKendaraan.KendaraanID and TblStg_Penjualan.norangka=DimKendaraan.NoRangka and FactPenjualanKend.SalesmanID=DimSalesman.SalesmanID and TblStg_Penjualan.nomor_matching=TblStg_Matching.nomor and TblStg_Matching.nomor_pesanan=TblStg_PesananKend.nomor and TblStg_PesananKend.kode_salesman=DimSalesman.Kode and FactPenjualanKend.CustomerID=DimCustomer.CustomerID and TblStg_PesananKend.nomor_customer=DimCustomer.Nomor open cursor1

fetch next from cursor1 into @WaktuID,@KendaraanID,@SalesmanID,@CustomerID

while @@fetch_status=0 begin delete from FactPenjualanKend where

WaktuID=@WaktuID and

KendaraanID=@KendaraanID and SalesmanID=@SalesmanID and CustomerID=@CustomerID

fetch next from cursor1 into

@WaktuID,@KendaraanID,@SalesmanID,@CustomerID end

close cursor1 deallocate cursor1

10. DWH PenjualanKend, berisi query :

if exists (select * from FilterTimeStamp as FTS where FTS.TableName='FactPenjualanKend') select WaktuID,KendaraanID,SalesmanID,CustomerID, count(Penj.nomor) as TotalUnitKendTerjual, sum(Penj.hjakhir) as TotalRpKendTerjual from DimWaktu as DimWkt, DimSalesman as DimSales, DimKendaraan as DimKend, DimCustomer as DimCust, TblStg_Penjualan as Penj, TblStg_Matching as Mtch, TblStg_PesananKend as PesananKend where year(Penj.tanggal)=DimWkt.Tahun and month(Penj.tanggal)=DimWkt.Bulan and day(Penj.tanggal)=DimWkt.Hari and Penj.nomor_matching=Mtch.nomor and Mtch.nomor_pesanan=PesananKend.nomor and

(22)

PesananKend.kode_salesman=DimSales.Kode and DimSales.ExpDate is null and

Mtch.norangka=DimKend.NoRangka and DimKend.ExpDate is null and

PesananKend.nomor_customer=DimCust.Nomor and DimCust.ExpDate is null and

Penj.batal=0 and

Penj.tglsimpan>(select LastETLDate from FilterTimeStamp where TableName='FactPenjualanKend') group by WaktuID,KendaraanID,SalesmanID,CustomerID order by WaktuID,KendaraanID,SalesmanID,CustomerID else select WaktuID,KendaraanID,SalesmanID,CustomerID, count(Penj.nomor) as TotalUnitKendTerjual, sum(Penj.hjakhir) as TotalRpKendTerjual from DimWaktu as DimWkt, DimSalesman as DimSales, DimKendaraan as DimKend, DimCustomer as DimCust, TblStg_Penjualan as Penj, TblStg_Matching as Mtch, TblStg_PesananKend as PesananKend where year(Penj.tanggal)=DimWkt.Tahun and month(Penj.tanggal)=DimWkt.Bulan and day(Penj.tanggal)=DimWkt.Hari and Penj.nomor_matching=Mtch.nomor and Mtch.nomor_pesanan=PesananKend.nomor and PesananKend.kode_salesman=DimSales.Kode and DimSales.ExpDate is null and

Mtch.norangka=DimKend.NoRangka and DimKend.ExpDate is null and

PesananKend.nomor_customer=DimCust.Nomor and DimCust.ExpDate is null and

Penj.batal=0

group by WaktuID,KendaraanID,SalesmanID,CustomerID order by WaktuID,KendaraanID,SalesmanID,CustomerID

Kemudian mentransformasikan ke FactPenjualanKend sesuai dengan kolom yang telah ditentukan.

11. Update FilterTimeStamp, berisi query : exec ProcUpdateFilterTimeStamp ? dan Parameter : FactPenjualanKend

(23)

12. Update Batal (paling bawah), berisi query : declare @WaktuID int

declare @KendaraanID int declare @SalesmanID int declare @CustomerID int declare @AccessoriesID int

declare cursor1 cursor forward_only for select FactPenjualanKendAcc.WaktuID, FactPenjualanKendAcc.KendaraanID, FactPenjualanKendAcc.SalesmanID, FactPenjualanKendAcc.CustomerID, FactPenjualanKendAcc.AccessoriesID from TblStg_Penjualan, FactPenjualanKendAcc, DimWaktu, DimKendaraan, DimSalesman, DimCustomer, DimAccessories, TblStg_Matching, TblStg_PesananKend, TblStg_MatchingAcc where TblStg_Penjualan.batal=1 and FactPenjualanKendAcc.WaktuID=DimWaktu.WaktuID and year(TblStg_Penjualan.tanggal)=DimWaktu.Tahun and month(TblStg_Penjualan.tanggal)=DimWaktu.Bulan and day(TblStg_Penjualan.tanggal)=DimWaktu.Hari and FactPenjualanKendAcc.KendaraanID=DimKendaraan.KendaraanID and TblStg_Penjualan.norangka=DimKendaraan.NoRangka and FactPenjualanKendAcc.SalesmanID=DimSalesman.SalesmanID and TblStg_Penjualan.nomor_matching=TblStg_Matching.nomor and TblStg_Matching.nomor_pesanan=TblStg_PesananKend.nomor and TblStg_PesananKend.kode_salesman=DimSalesman.Kode and FactPenjualanKendAcc.CustomerID=DimCustomer.CustomerID and TblStg_PesananKend.nomor_customer=DimCustomer.Nomor and FactPenjualanKendAcc.AccessoriesID=DimAccessories.AccessoriesID and TblStg_Matching.nomor_pesanan=TblStg_MatchingAcc.nomor_pesanan and TblStg_MatchingAcc.kode_accessories=DimAccessories.Kode open cursor1

(24)

fetch next from cursor1 into

@WaktuID,@KendaraanID,@SalesmanID,@CustomerID,@AccessoriesID while @@fetch_status=0 begin

delete from FactPenjualanKendAcc where WaktuID=@WaktuID and KendaraanID=@KendaraanID and SalesmanID=@SalesmanID and CustomerID=@CustomerID and AccessoriesID=@AccessoriesID fetch next from cursor1 into

@WaktuID,@KendaraanID,@SalesmanID,@CustomerID,@AccessoriesID end

close cursor1 deallocate cursor1

13. DWH PenjualanKendAcc, berisi query :

if exists (select * from FilterTimeStamp as FTS where FTS.TableName='FactPenjualanKendAcc') select WaktuID,KendaraanID,SalesmanID,CustomerID,AccessoriesID, sum(MtchAcc.jumlahpasang) as TotalUnitAccTerjual, sum(MtchAcc.totaldpphargajual) as TotalRpAccTerjual from DimWaktu as DimWkt, DimSalesman as DimSales, DimKendaraan as DimKend, DimCustomer as DimCust, DimAccessories as DimAcc, TblStg_Penjualan as Penj, TblStg_Matching as Mtch, TblStg_PesananKend as PesananKend, TblStg_MatchingAcc as MtchAcc where year(Penj.tanggal)=DimWkt.Tahun and month(Penj.tanggal)=DimWkt.Bulan and day(Penj.tanggal)=DimWkt.Hari and Penj.nomor_matching=Mtch.nomor and Mtch.nomor_pesanan=PesananKend.nomor and PesananKend.kode_salesman=DimSales.Kode and DimSales.ExpDate is null and

Mtch.norangka=DimKend.NoRangka and DimKend.ExpDate is null and

(25)

DimCust.ExpDate is null and

Mtch.nomor_pesanan=MtchAcc.nomor_pesanan and MtchAcc.jumlahpasang<>0 and

MtchAcc.kode_accessories=DimAcc.Kode and DimAcc.ExpDate is null and

Penj.batal=0 and

Penj.tglsimpan>(select LastETLDate from FilterTimeStamp where TableName='FactPenjualanKendAcc') group by WaktuID,KendaraanID,SalesmanID,CustomerID,AccessoriesID order by WaktuID,KendaraanID,SalesmanID,CustomerID,AccessoriesID else select WaktuID,KendaraanID,SalesmanID,CustomerID,AccessoriesID, sum(MtchAcc.jumlahpasang) as TotalUnitAccTerjual, sum(MtchAcc.totaldpphargajual) as TotalRpAccTerjual from DimWaktu as DimWkt, DimSalesman as DimSales, DimKendaraan as DimKend, DimCustomer as DimCust, DimAccessories as DimAcc, TblStg_Penjualan as Penj, TblStg_Matching as Mtch, TblStg_PesananKend as PesananKend, TblStg_MatchingAcc as MtchAcc where year(Penj.tanggal)=DimWkt.Tahun and month(Penj.tanggal)=DimWkt.Bulan and day(Penj.tanggal)=DimWkt.Hari and Penj.nomor_matching=Mtch.nomor and Mtch.nomor_pesanan=PesananKend.nomor and PesananKend.kode_salesman=DimSales.Kode and DimSales.ExpDate is null and

Mtch.norangka=DimKend.NoRangka and DimKend.ExpDate is null and

PesananKend.nomor_customer=DimCust.Nomor and DimCust.ExpDate is null and

Mtch.nomor_pesanan=MtchAcc.nomor_pesanan and MtchAcc.jumlahpasang<>0 and

MtchAcc.kode_accessories=DimAcc.Kode and DimAcc.ExpDate is null and

Penj.batal=0

group by WaktuID,KendaraanID,SalesmanID,CustomerID,AccessoriesID order by WaktuID,KendaraanID,SalesmanID,CustomerID,AccessoriesID

(26)

Kemudian mentransformasikan ke FactPenjualanKendAcc sesuai dengan kolom yang telah ditentukan.

14. Update FilterTimeStamp, berisi query : exec ProcUpdateFilterTimeStamp ? dan Parameter : FactPenjualanKendAcc

DTS Fakta Aksesoris Purna Jual

1. Truncate TblStg_AccPurnaJual, berisi query : truncate table TblStg_AccPurnaJual

2. Staging AccPurnaJual, berisi query : select

nomor,norangka,kode_accessories,nomor_customer,tanggal, jumlah,hargajualakhir,hargapokok,kode_salesman,tglsimpan,batal from UntT_AccessoriesPurnaJual

Kemudian mentransformasikan ke TblStg_AccPurnaJual sesuai dengan kolom yang telah ditentukan.

3. Update Batal, berisi query : declare @WaktuID int declare @SalesmanID int declare @CustomerID int declare @AccessoriesID int

declare cursor1 cursor forward_only for select FactAccessoriesPurnaJual.WaktuID, FactAccessoriesPurnaJual.SalesmanID, FactAccessoriesPurnaJual.CustomerID, FactAccessoriesPurnaJual.AccessoriesID from TblStg_AccPurnaJual, FactAccessoriesPurnaJual, DimWaktu, DimSalesman, DimCustomer,

(27)

DimAccessories where TblStg_AccPurnaJual.batal=1 and FactAccessoriesPurnaJual.WaktuID=DimWaktu.WaktuID and year(TblStg_AccPurnaJual.tanggal)=DimWaktu.Tahun and month(TblStg_AccPurnaJual.tanggal)=DimWaktu.Bulan and day(TblStg_AccPurnaJual.tanggal)=DimWaktu.Hari and FactAccessoriesPurnaJual.SalesmanID=DimSalesman.SalesmanID and TblStg_AccPurnaJual.kode_salesman=DimSalesman.kode and FactAccessoriesPurnaJual.CustomerID=DimCustomer.CustomerID and TblStg_AccPurnaJual.nomor_customer=DimCustomer.nomor and FactAccessoriesPurnaJual.AccessoriesID=DimAccessories.AccessoriesID and TblStg_AccPurnaJual.kode_accessories=DimAccessories.kode open cursor1

fetch next from cursor1 into

@WaktuID,@SalesmanID,@CustomerID,@AccessoriesID while @@fetch_status=0 begin

delete from FactAccessoriesPurnaJual where

WaktuID=@WaktuID and SalesmanID=@SalesmanID and CustomerID=@CustomerID and AccessoriesID=@AccessoriesID fetch next from cursor1 into

@WaktuID,@SalesmanID,@CustomerID,@AccessoriesID end

close cursor1 deallocate cursor1

4. DWH AccessoriesPUrnaJual, berisi query :

if exists (select * from FilterTimeStamp as FTS where FTS.TableName='FactAccPurnaJual') select WaktuID,SalesmanID,CustomerID,AccessoriesID, sum(APJ.jumlah) as TotalUnitAccPurnaJual, sum(APJ.hargajualakhir) as TotalRpAccPurnaJual, sum(APJ.hargajualakhir-APJ.hargapokok) as TotalRpLaba from DimWaktu as DimWkt, DimSalesman as DimSales, DimCustomer as DimCust, DimAccessories as DimAcc, TblStg_AccPurnaJual as APJ where year(APJ.tanggal)=DimWkt.Tahun and

(28)

month(APJ.tanggal)=DimWkt.Bulan and day(APJ.tanggal)=DimWkt.Hari and APJ.nomor_customer=DimCust.nomor and APJ.kode_salesman=DimSales.kode and APJ.kode_accessories=DimAcc.kode and DimSales.ExpDate is null and

DimCust.ExpDate is null and DimAcc.ExpDate is null and APJ.batal=0 and

APJ.tglsimpan>(select LastETLDate from FilterTimeStamp where TableName='FactAccPurnaJual') group by WaktuID,SalesmanID,CustomerID,AccessoriesID order by WaktuID,SalesmanID,CustomerID,AccessoriesID else select WaktuID,SalesmanID,CustomerID,AccessoriesID, sum(APJ.jumlah) as TotalUnitAccPurnaJual, sum(APJ.hargajualakhir) as TotalRpAccPurnaJual, sum(APJ.hargajualakhir-APJ.hargapokok) as TotalRpLaba from DimWaktu as DimWkt, DimSalesman as DimSales, DimCustomer as DimCust, DimAccessories as DimAcc, TblStg_AccPurnaJual as APJ where year(APJ.tanggal)=DimWkt.Tahun and month(APJ.tanggal)=DimWkt.Bulan and day(APJ.tanggal)=DimWkt.Hari and APJ.nomor_customer=DimCust.nomor and APJ.kode_salesman=DimSales.kode and APJ.kode_accessories=DimAcc.kode and DimSales.ExpDate is null and

DimCust.ExpDate is null and DimAcc.ExpDate is null and APJ.batal=0

group by WaktuID,SalesmanID,CustomerID,AccessoriesID order by WaktuID,SalesmanID,CustomerID,AccessoriesID

Kemudian mentransformasikan ke FactAccessoriesPurnaJual sesuai dengan kolom yang telah ditentukan.

5. Update FilterTimeStamp, berisi query : exec ProcUpdateFilterTimeStamp ? dan Parameter : FactAccPurnaJual

(29)

6) Membuat cube menggunakan SQL Server 2000 Analysis Manager, sehingga dihasilkan tiga cube :

1. Cube Penjualan Aksesoris

2. Cube Penjualan Aksesoris Purna Jual 3. Cube Penjualan Kendaraan

7) Membuat login security terhadap user-user yang diperbolehkan mengakses database ‘OtoBITzOLAP’, yang merupakan hasil implementasi data warehouse di komputer server. Dengan demikian, user yang berhak dapat mengakses cube yang telah dibentuk.

8) Melatih user cara mengakses cube yang telah dibentuk menggunakan Microsoft Excel 2003. Langkah-langkahnya :

1. Membuka ‘Microsoft Excel 2003’.

2. Pilih ‘Data’ | ‘Pivot Table and Pivot Chart Report’. 3. Pilih ‘External Data Source’.

4. Pilih ‘Pivot Table’ atau ‘Pivot Chart report’ sesuai keinginan dan ‘Next’. 5. Pilih ‘Get Data’.

6. Pilih ‘OLAP Cubes’.

7. Double click ‘<New Data Source>’.

8. Isi nama data source sesuai keinginan, pilih OLAP Provider ‘Microsoft OLE DB Provider for Analysis Service 9.0’, pilih ‘Connect’ dan isi nama server serta user dan password yang telah diberikan oleh administrator dan ‘Next’. 9. Pilih database yang ingin diakses ‘OtoBITzOLAP’ dan ‘Finish’.

(30)

10. Pilih Cube apa yang ingin diakses.

11. Lakukan langkah 6 sampai 10 untuk membuat dua data source lainnya ‘Cube Penjualan Aksesoris’ dan ‘Cube Penjualan Aksesoris Purna Jual’.

12. Langkah 6 sampai 11 hanya dilakukan sekali saja. Untuk selanjutnya user hanya perlu melakukan langkah 1 sampai 5 kemudian langsung ke langkah 13 dan seterusnya.

13. Double salah satu dari tiga data source yang telah dibuat untuk diakses dan pilih ‘Next’ kemudian pilih ‘Layout’

14. Sesuaikan layout dengan kebutuhan. 15. Pilih ‘Ok’ kemudian ‘Finish’.

16. Tabel atau Chart sudah terbentuk, dapat pula mengubah tipe chart sesuai keinginan dan data juga dapat dipilih dan didrill-down sesuai kriteria tertentu.

(31)

Gambar L2 – Langkah 3 dan 4

(32)

Gambar L4 – Langkah 6, 7, dan 8

(33)

Gambar L6 – Langkah 10

(34)

Gambar L8 – Langkah 14

(35)
(36)

Bentuk-Bentuk Tampilan

Gambar L11 – Unit Kendaraan Terjual Berdasarkan Supervisor (Diagram Batang)

(37)

Gambar L13 – Unit Kendaraan Terjual Berdasarkan Customer (Grafik Lingkaran)

(38)

Gambar L15 – Unit Aksesoris Terjual Berdasarkan Tahun (Diagram Garis)

(39)

Gambar L17 – Unit Aksesoris Terjual vs Supervisor, Tahun (Diagram Batang)

Gambar

Gambar L1 – Langkah 1 dan 2
Gambar L2 – Langkah 3 dan 4
Gambar L4 – Langkah 6, 7, dan 8
Gambar L6 – Langkah 10
+7

Referensi

Dokumen terkait

Agar lebih mudah melihat cakupan jaringan penguat sinyal maka lingkaran cakupan setiap titik yang terdapat pada Contoh 1 dan Contoh 2 akan dikonversi ke dalam

Sikap adalah gejala internal yang berdimensi afektif berupa kecenderungan untuk mereaksi atau merespon (response tendency) dengan cara yang relative tetap tehadap objek orang,

Beban maksimum aktual komposisi 8% yang dihasilkan lebih kecil dari beban rencana yaitu 90,02 Kn dengan perbedaan sebesar 41,41 kN Pola retak dan keruntuhan yang terjadi pada

digunakan untuk mempermudah proses pembelajaran pembuatan pola rok. Media pembelajaran bisa berupa audio, audio visual, cetak dan lain sebagainya. Media yang akan

Hal ini dikarenakan kurangnya kemampuan dari sumber daya manusia pada suatu perusahaan, akan memiliki dampak kurang optimalnya kinerja perusahaan dalam mencapai

Hampir seluruh bagian tanaman karet menjadi sasaran infeksi dari sejumlah penyakit tanaman, mulai dari jamur akar, penyakit bidang sadap, jamur upas sampai pada

Indomobil Prima Niaga Aceh berusaha untuk memberitahu, mengajarkan dan mengajak masyarakat untuk senantiasa menjaga lingkungannya dari hal-hal yang dapat merusak

Ayat (4) “Pengaturan dan penjadwalan pemasangan iklan kampanye Pemilu sebagaimana dimaksud pada ayat (3) untuk setiap Peserta Pemilu diatur sepenuhnya oleh lembaga penyiaran