L1
LAMPIRAN-LAMPIRAN
Lampiran A. Database Code A.1 Tabel DimCustomer CREATE TABLE [dbo].[DimCustomer] ( [CustomerId] [varchar] (20) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL , [CustomerType] [varchar] (10) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL , [CustomerName] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ) ON [PRIMARY] GO ALTER TABLE [dbo].[DimCustomer] WITH NOCHECK ADD CONSTRAINT [PK__DimCustomer__1BFD2C07] CLUSTERED ( [CustomerId] ) ON [PRIMARY] GO
PRIMARY
CREATE INDEX [DimCustomer_CustomerType_Idx] [dbo].[DimCustomer]([CustomerType]) ON [PRIMARY] GO
KEY
ON
A.2 Tabel DimOutlet CREATE TABLE [dbo].[DimOutlet] ( [OutletId] [varchar] (10) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL , [OutletName] [varchar] (20) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ) ON [PRIMARY] GO ALTER TABLE [dbo].[DimOutlet] WITH NOCHECK ADD CONSTRAINT [PK__DimOutlet__1DE57479] PRIMARY KEY CLUSTERED ( [OutletId] ) ON [PRIMARY] GO CREATE INDEX [DimOulet_OutletName_Idx] ON [dbo].[DimOutlet]([OutletName]) ON [PRIMARY] GO
L2 A.3 Tabel DimProduct CREATE TABLE [dbo].[DimProduct] ( [ProductId] [varchar] (20) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL , [Brand] [varchar] (10) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL , [ProductLine] [varchar] (10) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL , [Item] [varchar] (30) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ) ON [PRIMARY] GO ALTER TABLE [dbo].[DimProduct] WITH NOCHECK ADD CONSTRAINT [PK__DimProduct__1A14E395] CLUSTERED ( [ProductId] ) ON [PRIMARY] GO
PRIMARY
KEY
CREATE INDEX [DimProduct_Brand_Idx] ON [dbo].[DimProduct]([Brand]) ON [PRIMARY] GO A.4 Tabel DimSalesPerson CREATE TABLE [dbo].[DimSalesPerson] ( [SalesPersonId] [varchar] (10) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL , [SalesPersonName] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ) ON [PRIMARY] GO ALTER TABLE [dbo].[DimSalesPerson] WITH NOCHECK ADD CONSTRAINT [PK__DimSalesPerson__1FCDBCEB] PRIMARY CLUSTERED ( [SalesPersonId] ) ON [PRIMARY] GO CREATE INDEX [DimSalesPerson_SalesPersonName_Idx] [dbo].[DimSalesPerson]([SalesPersonName]) ON [PRIMARY] GO
KEY
ON
L3 A.5 Tabel DimTime CREATE TABLE [dbo].[DimTime] ( [TimeId] [smalldatetime] NOT NULL , [Years] [int] NOT NULL , [Months] [int] NOT NULL , [Weeks] [int] NOT NULL , [Dates] [int] NOT NULL ) ON [PRIMARY] GO ALTER TABLE [dbo].[DimTime] WITH NOCHECK ADD CONSTRAINT [PK__DimTime__182C9B23] PRIMARY KEY CLUSTERED ( [TimeId] ) ON [PRIMARY] GO CREATE INDEX [DimTime_Months_Idx] ON [dbo].[DimTime]([Months]) ON [PRIMARY] GO A.6 Tabel FactInventory CREATE TABLE [dbo].[FactInventory] ( [TimeId] [smalldatetime] NOT NULL , [ProductId] [varchar] (20) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL , [OutletId] [varchar] (10) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL , [GoodCurrStock] [int] NULL , [StockIn] [int] NULL , [StockOut] [int] NULL ) ON [PRIMARY] GO ALTER TABLE [dbo].[FactInventory] ADD CONSTRAINT [FK__FactInven__Outle__46E78A0C] FOREIGN KEY ( [OutletId] ) REFERENCES [dbo].[DimOutlet] ( [OutletId] ), CONSTRAINT [FK__FactInven__Produ__45F365D3] FOREIGN KEY ( [ProductId] ) REFERENCES [dbo].[DimProduct] ( [ProductId]
L4 ), CONSTRAINT [FK__FactInven__TimeI__44FF419A] FOREIGN KEY ( [TimeId] ) REFERENCES [dbo].[DimTime] ( [TimeId] ) GO CREATE INDEX [FactInventory_OutletId_Idx] ON [dbo].[ FactInventory]([OutletId]) ON [PRIMARY] GO CREATE INDEX [FactInventory_ProductId_Idx] ON [dbo].[ FactInventory]([ProductId]) ON [PRIMARY] GO CREATE INDEX [FactInventory_TimeId_Idx] ON [dbo].[ FactInventory]([TimeId]) ON [PRIMARY] GO
A.7 Tabel FactPayment CREATE TABLE [dbo].[FactPayment] ( [TimeId] [smalldatetime] NOT NULL , [OutletId] [varchar] (10) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL , [CustomerId] [varchar] (20) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL , [EarlyAR] [money] NULL , [PayedAR] [money] NULL , [unPayedAR] [money] NULL ) ON [PRIMARY] GO ALTER TABLE [dbo].[FactPayment] ADD FOREIGN KEY ( [CustomerId] ) REFERENCES [dbo].[DimCustomer] ( [CustomerId] ), FOREIGN KEY ( [OutletId] ) REFERENCES [dbo].[DimOutlet] ( [OutletId] ),
L5 CONSTRAINT [FK__FactPayme__TimeI__2704CA5F] FOREIGN KEY ( [TimeId] ) REFERENCES [dbo].[DimTime] ( [TimeId] ) GO CREATE INDEX [FactPayment_OutletId_Idx] ON [dbo].[ FactPayment]([OutletId]) ON [PRIMARY] GO CREATE INDEX [FactPayment_CustomerId_Idx] ON [dbo].[ FactPayment]([CustomerId]) ON [PRIMARY] GO CREATE INDEX [FactPayment_TimeId_Idx] ON [dbo].[ FactPayment]([TimeId]) ON [PRIMARY] GO A.8 Tabel FactSales CREATE TABLE [dbo].[FactSales] ( [TimeId] [smalldatetime] NOT NULL , [ProductId] [varchar] (20) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL , [OutletId] [varchar] (10) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL , [CustomerId] [varchar] (20) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL , [SalesPersonId] [varchar] (10) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL , [SellPrice] [money] NULL , [TotalSales] [decimal](10, 0) NULL , [TotalRevenue] [money] NULL , [TotalProfit] [money] NULL ) ON [PRIMARY] GO ALTER TABLE [dbo].[FactSales] ADD CONSTRAINT [FK__FactSales__Custo__4BAC3F29] FOREIGN KEY ( [CustomerId] ) REFERENCES [dbo].[DimCustomer] ( [CustomerId] ), CONSTRAINT [FK__FactSales__Outle__4AB81AF0] FOREIGN KEY ( [OutletId]
L6 ) REFERENCES [dbo].[DimOutlet] ( [OutletId] ), CONSTRAINT [FK__FactSales__Produ__49C3F6B7] FOREIGN KEY ( [ProductId] ) REFERENCES [dbo].[DimProduct] ( [ProductId] ), CONSTRAINT [FK__FactSales__Sales__4CA06362] FOREIGN KEY ( [SalesPersonId] ) REFERENCES [dbo].[DimSalesPerson] ( [SalesPersonId] ), CONSTRAINT [FK__FactSales__TimeI__48CFD27E] FOREIGN KEY ( [TimeId] ) REFERENCES [dbo].[DimTime] ( [TimeId] ) GO CREATE INDEX [FactSales_OutletId_Idx] ON [dbo].[ FactSales]([OutletId]) ON [PRIMARY] GO CREATE INDEX [FactSales_CustomerId_Idx] ON [dbo].[ FactSales]([CustomerId]) ON [PRIMARY] GO CREATE INDEX [FactSales_TimeId_Idx] ON [dbo].[ FactSales]([TimeId]) ON [PRIMARY] GO CREATE INDEX [FactSales_OutletId_Idx] ON [dbo].[ FactSales]([OutletId]) ON [PRIMARY] GO CREATE INDEX [FactSales_ProductId_Idx] ON [dbo].[ FactSales]([ProductId]) ON [PRIMARY] GO A.9 Tabel FactSalesReturn CREATE TABLE [dbo].[FactSalesReturn] ( [TimeId] [smalldatetime] NOT NULL , [ProductId] [varchar] (20) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL , [OutletId] [varchar] (10) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
L7 [CustomerId] [varchar] (20) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL , [SalesPersonId] [varchar] (10) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL , [TotalSalesReturn] [decimal](18, 0) NULL ) ON [PRIMARY] GO ALTER TABLE [dbo].[FactSalesReturn] ADD CONSTRAINT [FK_FactSalesReturn_DimCustomer] FOREIGN KEY ( [CustomerId] ) REFERENCES [dbo].[DimCustomer] ( [CustomerId] ), CONSTRAINT [FK_FactSalesReturn_DimOutlet] FOREIGN KEY ( [OutletId] ) REFERENCES [dbo].[DimOutlet] ( [OutletId] ), CONSTRAINT [FK_FactSalesReturn_DimProduct] FOREIGN KEY ( [ProductId] ) REFERENCES [dbo].[DimProduct] ( [ProductId] ), CONSTRAINT [FK_FactSalesReturn_DimSalesPerson] FOREIGN KEY ( [SalesPersonId] ) REFERENCES [dbo].[DimSalesPerson] ( [SalesPersonId] ), CONSTRAINT [FK_FactSalesReturn_DimTime] FOREIGN KEY ( [TimeId] ) REFERENCES [dbo].[DimTime] ( [TimeId] ) GO CREATE INDEX [FactSalesR_OutletId_Idx] ON [dbo].[ FactSalesReturn]([OutletId]) ON [PRIMARY] GO CREATE INDEX [FactSalesR_CustomerId_Idx] ON [dbo].[ FactSalesReturn]([CustomerId]) ON [PRIMARY]
L8 GO CREATE INDEX [FactSalesR_TimeId_Idx] ON [dbo].[ FactSalesReturn]([TimeId]) ON [PRIMARY] GO CREATE INDEX [FactSalesR_OutletId_Idx] ON [dbo].[ FactSalesReturn]([OutletId]) ON [PRIMARY] GO CREATE INDEX [FactSalesR_ProductId_Idx] ON [dbo].[ FactSalesReturn]([ProductId]) ON [PRIMARY] GO A.10 Tabel Login CREATE TABLE [dbo].[Login] ( [UserId] [char] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL , [Password] [char] (6) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL , [Name] [char] (20) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [Akses] [int] NOT NULL , [Position] [char] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ) ON [PRIMARY] GO ALTER TABLE [dbo].[Login] WITH NOCHECK ADD CONSTRAINT [PK_User] PRIMARY KEY CLUSTERED ( [UserId] ) ON [PRIMARY] GO A.11 Tabel TempCustomer CREATE TABLE [dbo].[TempCustomer] ( [SourceCustomerID] [varchar] (20) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [CustomerType] [varchar] (10) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [CustomerName] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [DestCustomerId] [varchar] (20) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ) ON [PRIMARY] GO A.12 Tabel TempOutlet CREATE TABLE [dbo].[TempOutlet] ( [SourceOutletId] [varchar] (10) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
L9 [OutletName] [varchar] (20) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [DestOutletId] [varchar] (10) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ) ON [PRIMARY] GO A.13 Tabel TempProduct CREATE TABLE [dbo].[TempProduct] ( [SourceProductId] [varchar] (20) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [Brand] [varchar] (10) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [ProductLine] [varchar] (10) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [Item] [varchar] (10) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [DestProductId] [varchar] (20) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ) ON [PRIMARY] GO A.14 Tabel TempSalesPerson CREATE TABLE [dbo].[TempSalesPerson] ( [SourceSalesPersonId] [varchar] (10) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [SalesPersonName] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [DestSalesPersonId] [varchar] (10) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ) ON [PRIMARY] GO A.15 Tabel TempTime CREATE TABLE [dbo].[TempTime] ( [SourceTimeId] [smalldatetime] NULL , [Years] [int] NULL , [Months] [int] NULL , [Weeks] [int] NULL , [Dates] [int] NULL , [DestTimeId] [smalldatetime] NULL ) ON [PRIMARY] GO A.16 Tabel TempFactInventory CREATE TABLE [dbo].[TempFactInventory] ( [SourceTimeId] [smalldatetime] NULL ,
L10 [SourceProductId] [varchar] (20) COLLATE NULL , [SourceOutletId] [varchar] (10) COLLATE NULL , [GoodCurrStock] [int] NULL , [StockIn] [int] NULL , [StockOut] [int] NULL , [DestTimeId] [smalldatetime] NULL , [DestProductId] [varchar] (20) COLLATE NULL , [DestOutletId] [varchar] (10) COLLATE NULL ) ON [PRIMARY] GO
SQL_Latin1_General_CP1_CI_AS SQL_Latin1_General_CP1_CI_AS
SQL_Latin1_General_CP1_CI_AS SQL_Latin1_General_CP1_CI_AS
A.17 Tabel TempFactPayment CREATE TABLE [dbo].[TempFactPayment] ( [SourceTimeId] [smalldatetime] NULL , [SourceOutletId] [varchar] (10) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [SourceCustomerId] [varchar] (20) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [EarlyAR] [money] NULL , [PayedAR] [money] NULL , [unPayedAR] [money] NULL , [DestTimeId] [smalldatetime] NULL , [DestOutletId] [varchar] (10) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [DestCustomerId] [varchar] (20) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ) ON [PRIMARY] GO A.18 Tabel TempFactSales CREATE TABLE [dbo].[TempFactSales] ( [SourceTimeId] [smalldatetime] NULL , [SourceProductId] [varchar] (20) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [SourceOutletId] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [SourceCustomerId] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [SourceSalesPersonId] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [SellPrice] [money] NULL , [TotalSales] [decimal](18, 0) NULL ,
L11 [TotalRevenue] [money] NULL , [TotalProfit] [money] NULL , [DestTimeId] [smalldatetime] NULL , [DestProductId] [varchar] (20) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [DestOutletId] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [DestCustomerId] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [DestSalesPersonId] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ) ON [PRIMARY] GO A.19 Tabel TempFactSalesReturn CREATE TABLE [dbo].[TempFactSalesReturn] ( [SourceTimeId] [smalldatetime] NULL , [SourceProductId] [varchar] (20) COLLATE NULL , [SourceOutletId] [varchar] (10) COLLATE NULL , [SourceCustomerId] [varchar] SQL_Latin1_General_CP1_CI_AS NULL , [SourceSalesPersonId] [varchar] SQL_Latin1_General_CP1_CI_AS NULL , [TotalSalesReturn] [decimal](18, 0) NULL , [DestTimeId] [smalldatetime] NULL , [DestProductId] [varchar] (20) COLLATE NULL , [DestOutletId] [varchar] (10) COLLATE NULL , [DestCustomerId] [varchar] (20) COLLATE NULL , [DestSalesPersonId] [varchar] SQL_Latin1_General_CP1_CI_AS NULL ) ON [PRIMARY] GO
SQL_Latin1_General_CP1_CI_AS SQL_Latin1_General_CP1_CI_AS (20) (10)
COLLATE COLLATE
SQL_Latin1_General_CP1_CI_AS SQL_Latin1_General_CP1_CI_AS SQL_Latin1_General_CP1_CI_AS (10)
A.20 Stored Procedure Cek_Old_Pass SET QUOTED_IDENTIFIER ON GO SET ANSI_NULLS OFF GO CREATE proc Cek_Old_Pass(@user char(10), @oldPass char(6)) as select * from Login where [Password]=@oldPass and UserId=@user
COLLATE
L12 return 0 GO SET QUOTED_IDENTIFIER OFF GO SET ANSI_NULLS ON GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Cek_Old_Pass]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) drop procedure [dbo].[Cek_Old_Pass] GO A.21 Stored Procedure Login_Error SET QUOTED_IDENTIFIER ON GO SET ANSI_NULLS OFF GO CREATE proc Login_Error(@akses int, @user char(10)) as update Login set Akses=@akses WHERE UserId=@user return 0 GO SET QUOTED_IDENTIFIER OFF GO SET ANSI_NULLS ON GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Login_Error]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) drop procedure [dbo].[Login_Error] GO A.22 Stored Procedure Login_Pass SET QUOTED_IDENTIFIER OFF GO SET ANSI_NULLS OFF GO CREATE proc Login_Pass(@ID char(10)) as select * from Login where UserId=@ID GO SET QUOTED_IDENTIFIER OFF GO SET ANSI_NULLS ON GO
L13 if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Login_Pass]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) drop procedure [dbo].[Login_Pass] GO A.23 Stored Procedure Update_Pass SET QUOTED_IDENTIFIER ON GO SET ANSI_NULLS OFF GO CREATE proc Update_Pass(@user char(10), @oldPass char(6), @newPass char(6)) as Update Login set [Password]=@newPass where [Password]=@oldPass and UserId=@user return 0 GO SET QUOTED_IDENTIFIER OFF GO SET ANSI_NULLS ON GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Update_Pass]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) drop procedure [dbo].[Update_Pass] GO A.24 Stored Procedure User_Add SET QUOTED_IDENTIFIER OFF GO SET ANSI_NULLS OFF GO CREATE proc User_Add(@ID char(10), @pass char(6),@name char(20),@position char(50)) as INSERT INTO Login (UserId, [Password], [Name],Akses,Position) Values (@ID, @pass,@name, 3,@position) return 0 GO SET QUOTED_IDENTIFIER OFF GO SET ANSI_NULLS ON GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[User_Add]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) drop procedure [dbo].[User_Add] GO
L14 Lampiran B. Data Transformation Service (DTS) B.1 DimCustomer
B.2
DimOutlet
B.3
DimProduct
B.4
DimSalesPerson
L15 B.5
DimTime
B.6
FactInventory
B.7
FactPayment
B.8
FactSales
L16 B.9
FactSalesReturn
L17 Lampiran C. Perancangan Prototype Aplikasi Data Warehouse C.1 Menu Utama
Layar ini digunakan untuk menampilkan menu yang tersedia dalam data warehouse. Pada menu File terdapat submenu untuk Connect, Disconnect, Login, Upload Data, Logout, dan Exit. Connect harus dilakukan terlebih dahulu untuk koneksi ke data warehouse. User harus melakukan Login terlebih dahulu sebelum menggunakan sistem aplikasi data warehouse ini. Menu Upload Data digunakan untuk meng-upload data operasional ke dalam data warehouse. Menu Query terdiri dari submenu Inventory, Sales, SalesReturn, dan Payment. Menu ini digunakan untuk menampilkan data berdasarkan kebutuhan user. Menu Pivot terdiri dari submenu Inventory, Sales, SalesReturn, dan Payment. Menu ini digunakan untuk menampilkan data per cube. Menu Graph terdiri dari submenu Inventory, Sales, SalesReturn, dan Payment. Menu ini digunakan untuk menampilkan data dalam bentuk grafik. Menu Maintenance terdiri dari submenu Add User dan Change Password, dan menu About yang digunakan untuk menampilkan data tentang perancang aplikasi data warehouse ini.
L18 C.2
Login
Layar Login digunakan untuk melakukan autentifikasi terhadap user yang berhak mengakses data warehouse. Jika user gagal melakukan login sebanyak hak akses yang tersisa, maka user tersebut tidak dapat mengakses sistem ini. Untuk bisa mengakses aplikasi kembali, maka user tersebut harus menghubungi pihak administrator.
L19 C.3
Query
Layar ini digunakan untuk menampilkan data ke dalam flexgrid sesuai dengan kebutuhan user melalui pilihan berupa checkbox yang tersedia pada listbox fakta dan tab dimensi. Tombol Execute digunakan untuk melakukan eksekusi terhadap syntax SQL yang tercipta dari pilihan user. Tombol Clear digunakan untuk menghapus pilihan user. Tombol Close digunakan untuk menutup layar Query, dan tombol Advanced Query digunakan untuk menuju ke layar Advanced Query.
L20 C.4
Pivot
Close
Layar ini digunakan untuk menampilkan data pada cube sesuai dengan pivot tabel yang dipilih user. Tombol Close pada masing-masing pivot table digunakan untuk menutup layar ini.
L21 C.5
Advanced Query
Layar ini digunakan untuk menampilkan data ke dalam flexgrid sesuai syntax SQL yang dibuat oleh user pada textbox yang tersedia. Disediakan gambar hubungan antar tabel yang dapat membantu user dalam menciptakan syntax SQL. Tombol Execute digunakan untuk melakukan eksekusi terhadap syntax SQL. Tombol Clear digunakan untuk menghapus syntax SQL. Tombol Close digunakan untuk menutup layar Advanced Query.
L22 C.6
Graph
Layar ini digunakan untuk menampilkan data ke dalam bentuk grafik. Tombol Close digunakan untuk menutup layar ini.
L23 C.7
Upload Data
Layar ini digunakan untuk meng-upload data operasional ke dalam data warehouse. User dapat memilih fakta-fakta apa saja yang datanya ingin di-upload. Label proses loading menunjukkan proses transformasi data yang sedang dilakukan, dan loading bar untuk menunjukkan sejauh mana proses tersebut berjalan. Tombol Update digunakan untuk melakukan proses transformasi dan tombol Close untuk menutup layar ini.
L24 C.8
Add User
Layar ini digunakan untuk menambah user baru. Hanya administrator yang mempunyai kuasa untuk melakukannya. Tombol OK digunakan untuk menambahkan data user baru tersebut ke dalam database. Tombol Cancel digunakan untuk membatalkan proses dan juga untuk menutup layar ini. C.9
Change Password
L25 Layar ini digunakan untuk melakukan perubahan password user yang login saat itu. Tombol OK digunakan untuk mengubah password baru ke dalam database. Tombol Cancel digunakan untuk membatalkan proses dan juga untuk menutup layar ini. C.10
About
Layar ini menampilkan informasi mengenai para perancang program aplikasi data warehouse ini. C.11
Pesan
Layar ini menampilkan pesan sukses atau error dari setiap proses yang dilakukan. Informasi yang ditampilkan sesuai dengan proses yang sedang dilakukan. Misalnya untuk pesan sukses login ”Login Success”.
L26 Lampiran D. Perancangan Layar Aplikasi Data Warehouse D.1 Menu Utama
D.2
Login
L27 D.3
Query Inventory
D.4
Query Sales
L28 D.5
Query SalesReturn
D.6
Query Payment
L29 D.7
Advanced Query
D.8
Pivot Inventory
L30 D.9
Pivot Sales
D.10 Pivot SalesReturn
L31 D.11
Pivot Payment
D.12
Graph Inventory
L32 D.13
Graph Sales
D.14
Graph SalesReturn
L33 D.15
Graph Payment
D.16
Upload Data Warehouse
L34 D.17
Add User
D.18
Change Password
L35 D.19
About
D.20
Pesan Koneksi Sukses
D.21
Pesan Koneksi Gagal
D.22
Pesan Kesalahan Password
L36 D.23
Pesan Hak Akses Diblok
D.24
Pesan Tidak Punya Hak Akses
D.25
Pesan Data Harus Lengkap
D.26
Pesan Login Sukses
D.27
Pesan Logout Sukses
L37 D.28
Pesan Konfirmasi Password
D.29
Pesan Penambahan Data User Baru Sukses
D.30
Pesan Data User Telah Ada
D.31
Pesan Update Password Sukses
L38 Lampiran E. Spesifikasi Proses Aplikasi Data Warehouse E.1 Modul Layar Utama Tampilkan Layar Utama Menu File aktif Menu Query tidak aktif Menu Pivot Table tidak aktif Menu Graph tidak aktif Menu Maintenance tidak aktif Menu About aktif Akhir Modul E.2
Modul File Pilih menu File Submenu Connect aktif Submenu Disconnect tidak aktif Submenu Login tidak aktif Submenu Upload Data tidak aktif Submenu Logout tidak aktif Submenu Exit aktif Akhir Modul
E.3
Modul Connect Pilih submenu Connect Jika koneksi sukses Tampilkan pesan Koneksi Sukses Submenu Connect tidak aktif Submenu Disconnect tidak aktif Submenu Login aktif Submenu Upload Data tidak aktif Submenu Logout tidak aktif Submenu Exit aktif Akhir Jika Akhir Modul
E.4
Modul Login Pilih submenu Login Masukkan data UserId Masukkan data Password Jika tombol OK ditekan Buka file Login Jika data yang dimasukkan ada di database Tampilkan pesan Login Sukses Menu File aktif Submenu Upload Data aktif Submenu Logout aktif Menu Query aktif
L39 Menu Pivot Table aktif Menu Maintenance aktif Menu About aktif Akhir Jika Jika data yang dimasukkan tidak ada di database Tampilkan pesan Login Gagal Akhir Jika Akhir Jika Jika tombol Cancel ditekan Tutup layar Login Akhir Jika Akhir Modul E.5
Modul Upload Data Pilih submenu Upload Data Tampilkan layar Upload Data Masukkan data yang ingin diupload Jika tombol Update ditekan Buka file (.dts) Lakukan proses transformasi data Akhir Jika Tutup file (.dts) Jika tombol Close ditekan Tutup layar Upload Data Warehouse Kembali ke layar utama Akhir Jika Akhir Modul
E.6
Modul Logout Pilih submenu Logout Tampilkan pesan untuk konfirmasi Logout Jika tombol OK ditekan Tutup file Login Menu File aktif Submenu Disconnect aktif Submenu Logout tidak aktif Menu Query tidak aktif Menu Pivot Table tidak aktif Menu Maintenance tidak aktif Menu About aktif Akhir Jika Akhir Modul
E.7
Modul Disconnect Pilih submenu Disconnect Tampilkan pesan konfirmasi Disconnect
L40 Jika tombol OK ditekan Kembali ke Modul Layar Utama Akhir Jika Akhir Modul E.8
Modul Exit Tutup database Keluar dari program aplikasi Akhir Modul
E.9
Modul Query Pilih menu Query Jika submenu Inventory Tampilkan layar Query Inventory Tombol Execute tidak aktif Tombol Clear tidak aktif Tombol Close aktif Tombol Advanced Query aktif Jika data di FactInventory atau di Dimension dipilih Data yang dipilih ditampung di Syntax SQL Tombol Execute aktif Tombol Clear aktif Jika tombol Execute ditekan Buka file FactInventory Tampilkan data di grid yang tersedia Akhir Jika Jika tombol Clear ditekan Hapus data yang dipilih di FactInventory Hapus data yang dipilih di Dimension Hapus data di Syntax SQL Hapus data di grid Akhir Jika Tutup file FactInventory Akhir Jika Jika tombol Close ditekan Tutup layar submenu Inventory Akhir Jika Jika tombol Advanced Query ditekan Panggil modul Advanced Query Akhir Jika Akhir Jika Jika submenu Sales Tampilkan layar Query Sales Tombol Execute tidak aktif Tombol Clear tidak aktif Tombol Close aktif
L41 Tombol Advanced Query aktif Jika data di FactSales atau di Dimension dipilih Data yang dipilih ditampung di Syntax SQL Tombol Execute aktif Tombol Clear aktif Jika tombol Execute ditekan Buka file FactSales Tampilkan data di grid yang tersedia Akhir Jika Jika tombol Clear ditekan Hapus data yang dipilih di FactSales Hapus data yang dipilih di Dimension Hapus data di Syntax SQL Hapus data di grid Akhir Jika Tutup file FactSales Akhir Jika Jika tombol Close ditekan Tutup layar submenu Sales Akhir Jika Jika tombol Advanced Query ditekan Panggil modul Advanced Query Akhir Jika Akhir Jika Jika submenu SalesReturn Tampilkan layar Query SalesReturn Tombol Execute tidak aktif Tombol Clear tidak aktif Tombol Close aktif Tombol Advanced Query aktif Jika data di FactSalesReturn atau di Dimension dipili Data yang dipilih ditampung di Syntax SQL Tombol Execute aktif Tombol Clear aktif Jika tombol Execute ditekan Buka file FactSalesReturn Tampilkan data di grid yang tersedia Akhir Jika Jika tombol Clear ditekan Hapus data yang dipilih di FactSalesReturn Hapus data yang dipilih di Dimension Hapus data di Syntax SQL Hapus data di grid Akhir Jika Tutup file FactSalesReturn Akhir Jika
L42 Jika tombol Close ditekan Tutup layar submenu SalesReturn Akhir Jika Jika tombol Advanced Query ditekan Panggil modul Advanced Query Akhir Jika Akhir Jika Jika submenu Payment Tampilkan layar Query Payment Tombol Execute tidak aktif Tombol Clear tidak aktif Tombol Close aktif Tombol Advanced Query aktif Jika data di FactPayment atau di Dimension dipilih Data yang dipilih ditampung di Syntax SQL Tombol Execute aktif Tombol Clear aktif Jika tombol Execute ditekan Buka file FactPayment Tampilkan data di grid yang tersedia Akhir Jika Jika tombol Clear ditekan Hapus data yang dipilih di FactPayment Hapus data yang dipilih di Dimension Hapus data di Syntax SQL Hapus data di grid Akhir Jika Tutup file FactPayment Akhir Jika Jika tombol Close ditekan Tutup layar submenu Payment Akhir Jika Jika tombol Advanced Query ditekan Panggil modul Advanced Query Akhir Jika Akhir Jika Akhir Modul E.10
Modul Advanced Query Tampilkan layar Advanced Query Tombol Execute tidak aktif Tombol Clear tidak aktif Tombol Close aktif Jika Syntax SQL dimasukkan Tombol Execute aktif Tombol Clear aktif
L43 Jika tombol Execute ditekan Buka database Jika Syntax SQL benar Tampilkan data di grid Selain itu Tampilkan pesan Syntax SQL Error Akhir Jika Akhir Jika Jika tombol Clear ditekan Hapus Syntax SQL Hapus data di grid Akhir Jika Tutup database Akhir Jika Jika tombol Close ditekan Tutup layar Advanced Query Akhir Jika Akhir modul E.11
Modul Pivot Table Pilih menu Pivot Table Jika submenu Inventory Tampilkan layar Pivot Inventory Jika tombol Close ditekan Tutup layar Pivot Inventory Akhir Jika Akhir Jika Jika submenu Sales Tampilkan layar Pivot Sales Jika tombol Close ditekan Tutup layar Pivot Sales Akhir Jika Akhir Jika Jika submenu SalesReturn Tampilkan layar Pivot SalesReturn Jika tombol Close ditekan Tutup layar Pivot SalesReturn Akhir Jika Akhir Jika Jika submenu Payment Tampilkan layar Pivot Payment Jika tombol Close ditekan Tutup layar Pivot Payment Akhir Jika Akhir Jika Akhir Modul
L44 E.12
Modul Graph Pilih menu Graph Jika submenu Inventory Tampilkan layar Graph Inventory Jika tombol Close ditekan Tutup layar Graph Inventory Akhir Jika Akhir Jika Jika submenu Sales Tampilkan layar Graph Sales Jika tombol Close ditekan Tutup layar Graph Sales Akhir Jika Akhir Jika Jika submenu SalesReturn Tampilkan layar Graph SalesReturn Jika tombol Close ditekan Tutup layar Graph SalesReturn Akhir Jika Akhir Jika Jika submenu Payment Tampilkan layar Graph Payment Jika tombol Close ditekan Tutup layar Graph Payment Akhir Jika Akhir Jika Akhir Modul
E.13
Modul Maintenance Pilih menu Maintenance Jika submenu Add User dipilih Panggil modul Add User Akhir Jika Jika submenu Change Password dipilih Panggil modul Change Password Akhir Jika Akhir Modul
E.14
Modul Add User Tampilkan layar Add User Masukkan data user baru Jika tombol OK ditekan Buka file Login Jika panjang UserId >10 Tampilkan pesan Maksimal karakter 10 Selain itu jika panjang Password <> 6
L45 Tampilkan pesan Panjang Password harus 6 karakter Selain itu jika konfirmasi password tidak sama Tampilkan pesan Kesalahan Password Selain itu jika user sudah ada di database Tampilkan pesan User Sudah Ada di database Selain itu Masukkan data user baru ke database Akhir Jika Akhir Jika Akhir Jika Akhir Jika Akhir Jika Tutup file Login Akhir Jika Jika tombol Cancel ditekan Tutup layar Add User Akhir Jika Akhir Modul E.15
Modul Change Password Tampilkan layar Change Password Masukkan data Jika tombol OK ditekan Buka file Login Jika OldPassword tidak sesuai dengan database Tampilkan pesan Kesalahan Password Lama Selain itu jika konfirmasi password tidak sama Tampilkan pesan Kesalahan Password Baru Selain itu Data berhasil di update Tampilkan pesan Password Berhasil di update Akhir Jika Akhir Jika Akhir Jika Tutup file Login Akhir Jika Jika tombol Cancel ditekan Tutup layar Change Password Akhir Jika Akhir Modul
E.16
Modul About Pilih menu About Pilih submenu Designer Tampilkan layar Designer Akhir modul
L46 Lampiran F. Questionnair Kuisioner Evaluasi Program Aplikasi Data Warehouse PT. ECS Technology
Petunjuk pengisian : Silang jawaban Anda pada tempat yang telah disediakan ! 1. Apakah program aplikasi ini mudah dimengerti ? o Mudah o Biasa o Sulit
2. Apakah program aplikasi ini mudah digunakan ? o Mudah o Biasa o Sulit
3. Kesulitan apa yang Anda hadapi saat menggunakan aplikasi ini ? o Belum terbiasa o Perintah yang kurang jelas o Fungsi-fungsi yang sulit dimengerti o Tidak ada kesulitan
4. Menurut Anda, bagaimana tampilan program aplikasi ini ? o Menarik o Cukup o Kurang
5. Menurut Anda, apakah data yang dihasilkan dapat dipertanggungjawabkan kebenarannya ? o Ya o Kurang o Tidak tahu
L47
6. Apa yang membuat Anda tertarik dengan program aplikasi ini? o Tampilan layar yang menarik o Informasi yang dihasilkan o Keduanya benar
7. Apakah program aplikasi ini meringankan tugas Anda ? o Ya o Cukup o Tidak tahu
8. Saran dan kritik Anda untuk program aplikasi ini : .......................................................................................................................................... .......................................................................................................................................... .......................................................................................................................................... .......................................................................................................................................... ..........................................................................................................................................