BAB 4 IMPLEMENTASI DAN EVALUASI
4.1
Implementasi Sistem Untuk mengetahui nilai manfaat dari perancangan tools yang tertuang dalam
pembuatan Analytical CRM, maka perlu dilakukan implementasi. Untuk pelaksanaan implementasi, berikut akan dijelaskan arsitektur aplikasi Back-end (Data Mining) dan aplikasi
Front-end
(Cross-selling)
bagi
perusahaan
dagang
yang
ingin
mengimplementasikan aplikasi ini, sumber daya yang diperlukan baik dari segi perangkat keras, piranti lunak, maupun sumber daya manusia yang terkait serta cara penggunaan aplikasi ini.
4.1.1
Arsitektur Aplikasi Arsitektur untuk mengimplementasikan Aplikasi Back-end (Data Mining) dan
aplikasi Front-end(Cross-selling) menggunakan arsitektur client-server yang dapat dilihat pada Gambar 4.1.
89
Gambar 4.1 Arsitektur Aplikasi Back-end (Data Mining) dan aplikasi Front-end(Cross-selling)
90
91 4.1.2
Kebutuhan Sumber Daya Dalam mendukung perancangan aplikasi Analytical CRM ini, diperlukan
dukungan sumber daya yang memadai untuk memastikan aplikasi ini berfungsi secara optimal. Berikut ini diuraikan kebutuhan yang diperlukan baik dari segi teknologi maupun personil yang dianggap memegang peranan penting dalam menerapkan Analytical CRM.
4.1.2.1 Kebutuhan Perangkat Keras Berikut ini adalah spesifikasi minimum perangkat keras yang dibutuhkan untuk mengimplementasikan model Data Mining untuk aplikasi Cross-selling ini. Kecepatan dan cache memory processor sangat mempengaruhi kinerja. Tabel 4.1 Spesifikasi Perangkat Keras yang Dibutuhkan di Komputer Server
Perangkat Keras Processor
Kebutuhan Pentium IV 1 GHz atau lebih ( dianjurkan )
Memory (RAM)
512 MB atau lebih (dianjurkan)
Hard disk space
40 GB atau lebih ( dianjurkan )
Monitor
VGA dengan resolusi 800x600 Dibutuhkan bagi SQL Server graphical tools
Pointing device
Microsoft Mouse atau Compatible Mouse
CD-ROM drive
Tidak ada spesifikasi khusus (harus ada)
92 Tabel 4.2 Spesifikasi Perangkat Keras yang Dibutuhkan di Komputer Client
Perangkat Keras
Kebutuhan
Processor
Pentium III 800 MHz atau lebih ( dianjurkan )
Memory (RAM)
256 MB atau lebih ( dianjurkan )
Hard disk space
20 GB atau lebih ( dianjurkan )
Monitor
VGA dengan resolusi 800x600
Pointing device
Microsoft Mouse atau Compatible Mouse
CD-ROM drive
Tidak ada spesifikasi khusus (harus ada)
4.1.2.2 Kebutuhan Perangkat Lunak Perangkat lunak yang dibutuhkan untuk mengimplementasikan model Data Mining untuk Cross-selling ini dapat dilihat pada tabel berikut ini. Tabel 4.3 Spesifikasi Perangkat Lunak yang Dibutuhkan di Komputer Server
Perangkat Lunak Operating System Database
Kebutuhan Minimum Windows 2003 Server SQL Server 2005 Enterprise atau Developer Edition dan Analysis Services .NET Framework 2.0
Application
ASP .NET AJAX Framework RadarCube
93 Tabel 4.4 Spesifikasi Perangkat Lunak yang Dibutuhkan di Komputer Client
Perangkat Lunak Operating System Database
Application
Kebutuhan Minimum Windows 2000 Professional SQL Server 2005 Enterprise atau Developer Edition dan Analysis Services (hanya sebagai client connectivity tools) Web Browser seperti Windows Internet Explorer dan Mozilla Firefox
4.1.2.3 Kebutuhan Perangkat SDM Dalam mengoperasikan aplikasi ini tidak diperlukan adanya tambahan personil khusus sebagai end usernya, namun untuk pengembangan aplikasi dan pemeliharaannya, diperlukan seorang Database Administrator (DBA) untuk memaintenance basisdata yang merupakan fondasi dan kunci kesuksesan dari sebuah Analytical CRM.
4.1.3
Instalasi Aplikasi Aplikasi ini membutuhkan minimal satu komputer sebagai server yang
terkoneksi dengan server sistem berjalan untuk mengimplementasikan aplikasi Back-end dan Front-end serta beberapa software sudah harus tersedia pada komputer yang hendak diinstalasi aplikasi, sebagai berikut : 1.
SQL Server 2005 Standard, Developer, atau Enterprise Edition
2.
.NET Framework 2.0
3.
Microsoft Windows Server 2003 SP 1 / Microsoft Windows XP SP 2
4.
ASP .NET AJAX 2 Framework
5.
RadarCube Library
94 Berikut syarat-syarat yang harus dipenuhi sebelum mulai melakukan instalasi aplikasi : 1.
Pastikan komputer telah terinstalasi dengan Sistem Operasi Windows XP SP2 atau Windows Server 2003 SP1.
2.
Pastikan SQL Server 2005 telah terinstalasi ke dalam sistem operasi lengkap dengan Analysis Services.
3.
Pastikan .NET Framework 2.0 sudah terinstalasi ke dalam sistem operasi.
4.
Pastikan ASP .NET AJAX 2 Framework sudah terinstalasi ke dalam sistem operasi.
5.
Pastikan RadarCube Library sudah terinstalasi ke dalam sistem operasi.
Langkah-langkah dalam mengimplementasikan aplikasi ini adalah sebagai berikut : 1.
Copy satu folder "TEH" ke dalam harddisk di komputer tujuan.
2.
Buat sebuah virtual directory di Internet Information Services ( IIS ) dengan nama virtual directory "TEH".
3.
Persiapkan database yang dibutuhkan oleh aplikasi ini dengan menjalankan query berikut :
CREATE DATABASE TEHSuiteAuthentication -------------------------------------------------------------------------------------------------USE TEHSuiteAuthentication -------------------------------------------------------------------------------------------------CREATE DATABASE TEHSuite
95 -------------------------------------------------------------------------------------------------USE TEHSuite -------------------------------------------------------------------------------------------------CREATE TABLE dbo.Mapping ( SourceTable NVARCHAR ( 50 ), SourceField NVARCHAR ( 50 ), DestTable NVARCHAR ( 50 ), DestField NVARCHAR ( 50 ), PRIMARY KEY ( DestTable , DestField ) ) -------------------------------------------------------------------------------------------------CREATE TABLE dbo.FilterTimeStampTransform ( Last_Transform_Process_Date DATETIME NOT NULL, Table_Name NVARCHAR ( 50 ) NOT NULL, PRIMARY KEY ( Last_Transform_Process_Date ) ) -------------------------------------------------------------------------------------------------CREATE TRIGGER dbo.MappingInsertTrigger ON dbo.Mapping WITH ENCRYPTION INSTEAD OF INSERT AS
96 DECLARE @DestTable NVARCHAR ( 50 ) DECLARE @DestField NVARCHAR ( 50 )
SET @DestTable = ( SELECT DestTable FROM INSERTED ) SET @DestField = ( SELECT DestField FROM INSERTED )
IF EXISTS ( SELECT SourceTable FROM dbo.Mapping WHERE DestTable = @DestTable AND DestField = @DestField ) BEGIN DELETE FROM dbo.Mapping WHERE DestTable = @DestTable AND DestField = @DestField END INSERT INTO dbo.Mapping SELECT SourceTable , SourceField ,DestTable , DestField FROM INSERTED -------------------------------------------------------------------------------------------------CREATE PROCEDURE dbo.GetDateFieldForDimTime AS SELECT SourceField AS DateField FROM dbo.Mapping WHERE DestTable = 'DimTime' --------------------------------------------------------------------------------------------------
97 CREATE PROCEDURE dbo.PrepareOLAPDatabase AS IF OBJECT_ID ( 'dbo.FactSales' ) IS NOT NULL DROP TABLE dbo.FactSales IF OBJECT_ID ( 'dbo.DimCustomer' ) IS NOT NULL DROP TABLE dbo.DimCustomer IF OBJECT_ID ( 'dbo.DimPromotion' ) IS NOT NULL DROP TABLE dbo.DimPromotion IF OBJECT_ID ( 'dbo.DimTime' ) IS NOT NULL DROP TABLE dbo.DimTime IF OBJECT_ID ( 'dbo.DimBranch' ) IS NOT NULL DROP TABLE dbo.DimBranch IF OBJECT_ID ( 'dbo.DimCity' ) IS NOT NULL DROP TABLE dbo.DimCity IF OBJECT_ID ( 'dbo.DimCountry' ) IS NOT NULL DROP TABLE dbo.DimCountry IF OBJECT_ID ( 'dbo.DimContinent' ) IS NOT NULL DROP TABLE dbo.DimContinent IF OBJECT_ID ( 'dbo.DimProduct' ) IS NOT NULL DROP TABLE dbo.DimProduct IF OBJECT_ID ( 'dbo.DimCategory' ) IS NOT NULL DROP TABLE dbo.DimCategory IF OBJECT_ID ( 'dbo.DimSupplier' ) IS NOT NULL DROP TABLE dbo.DimSupplier
98 IF OBJECT_ID ( 'dbo.FactTemporary' ) IS NOT NULL DROP TABLE FactTemporary TRUNCATE TABLE dbo.Mapping TRUNCATE TABLE dbo.FilterTimeStampTransform -------------------------------------------------------------------------------------------------CREATE PROCEDURE dbo.AddMapping @SourceTable NVARCHAR ( 50 ), @SourceField NVARCHAR ( MAX ), @DestTable NVARCHAR ( 50 ), @DestField NVARCHAR ( 50 ) AS BEGIN TRAN INSERT INTO dbo.Mapping VALUES ( @SourceTable , @SourceField , @DestTable , @DestField ) IF @@ERROR <> 0 ROLLBACK TRAN ELSE COMMIT TRAN -------------------------------------------------------------------------------------------------CREATE PROCEDURE dbo.GetSourceTables AS SELECT DISTINCT SourceTable FROM dbo.Mapping WHERE SourceTable IS NOT NULL
99 -------------------------------------------------------------------------------------------------CREATE PROCEDURE dbo.GetSourceTableFromDestTable @DestTable NVARCHAR ( 50 ) AS SELECT DISTINCT SourceTable FROM dbo.Mapping WHERE SourceTable IS NOT NULL AND DestTable = @DestTable -------------------------------------------------------------------------------------------------CREATE PROCEDURE dbo.GetSources ALTER PROCEDURE dbo.GetSources AS SELECT DISTINCT SourceTable, SourceField FROM dbo.Mapping WHERE SourceTable IS NOT NULL ORDER BY SourceTable, SourceField -------------------------------------------------------------------------------------------------CREATE PROCEDURE dbo.GetSourceFieldByTable @SourceTable nvarchar ( 50 ) AS SELECT DISTINCT SourceField FROM dbo.Mapping WHERE SourceTable = @SourceTable ORDER BY SourceField --------------------------------------------------------------------------------------------------
100 CREATE PROCEDURE dbo.GetDestinationTables AS SELECT DestTable FROM ( SELECT DISTINCT DestTable FROM dbo.Mapping WHERE DestTable IS NOT NULL ) AS A ORDER BY CASE DestTable WHEN 'DimSupplier' THEN 1 WHEN 'DimCategory' THEN 2 WHEN 'DimProduct' THEN 3 WHEN 'DimTime' THEN 4 WHEN 'DimContinent' THEN 5 WHEN 'DimCountry' THEN 6 WHEN 'DimCity' THEN 7 WHEN 'DimBranch' THEN 8 WHEN 'DimCustomer' THEN 9 WHEN 'DimPromotion' THEN 10 WHEN 'FactSales' THEN 11 END -------------------------------------------------------------------------------------------------CREATE PROCEDURE dbo.GetDestinations AS
101 SELECT DISTINCT DestTable, DestField FROM dbo.Mapping WHERE DestTable IS NOT NULL ORDER BY DestTable, DestField -------------------------------------------------------------------------------------------------CREATE PROCEDURE dbo.GetDestinationFieldByDestinationTable @DestTable NVARCHAR ( 50 ) AS SELECT DISTINCT DestField FROM dbo.Mapping WHERE DestTable = @DestTable ORDER BY DestField -------------------------------------------------------------------------------------------------CREATE PROCEDURE dbo.GetSourceFieldByDestination @DestTable NVARCHAR ( 50 ), @DestField NVARCHAR ( 50 ) AS SELECT DISTINCT SourceField FROM dbo.Mapping WHERE DestTable = @DestTable AND DestField = @DestField -------------------------------------------------------------------------------------------------CREATE PROCEDURE dbo.GetFieldCountByTable @TableName NVARCHAR ( 50 ) AS SELECT COUNT ( DestField )
102 FROM dbo.Mapping WHERE DestTable = @TableName -------------------------------------------------------------------------------------------------CREATE PROCEDURE dbo.Proc_Update_FilterTimeStampTransform @TableName NVARCHAR ( 50 ) AS BEGIN IF EXISTS ( SELECT * FROM dbo.FilterTimeStampTransform WHERE Table_Name = @TableName ) BEGIN UPDATE dbo.FilterTimeStampTransform SET Last_Transform_Process_Date = getdate ( ) WHERE Table_Name = @TableName END ELSE BEGIN INSERT INTO dbo.FilterTimeStampTransform VALUES ( getdate ( ) , @TableName ) END END -------------------------------------------------------------------------------------------------CREATE PROCEDURE dbo.GetLastTransformDate @TableName NVARCHAR ( 50 ) AS
103 BEGIN DECLARE @Date DATETIME SET @Date = ( SELECT Last_Transform_Process_Date FROM dbo.FilterTimeStampTransform WHERE Table_Name = @TableName )
SELECT @Date END -------------------------------------------------------------------------------------------------CREATE PROCEDURE dbo.GetFactFormula AS SELECT SourceField FROM dbo.Mapping WHERE DestTable = 'FactSales' AND DestField = 'TotalSales' -------------------------------------------------------------------------------------------------CREATE PROCEDURE dbo.GetFactRequiredFields AS SELECT SourceField FROM dbo.Mapping WHERE DestTable = 'FactSales' AND DestField = 'RequiredFields' --------------------------------------------------------------------------------------------------
104 4.
Buka file "web.config" dan lihat di bagian
name=
"LocalSqlServer"
localhost\SQL2005;
Integrated
connectionString= Security=
True;
"Data Initial
Source= Catalog=
TEHSuite_Authentication"/>
Bagian ini perlu disesuaikan dengan komputer server tempat aplikasi ini. Berikut merupakan bagian yang perlu Anda perhatikan: a.
Data Source Bagian ini diiisi dengan nama server tempat database server berada. Nilai default-nya adalah localhost\SQL2005
b.
Integrated Security Bagian ini diisi dengan keterangan apakah user ingin membuka koneksi ke SQL Server dengan menggunakan user yang sedang aktif atau menggunakan login yang dibuka di SQL Server itu sendiri. Nilai default-nya adalah true.
c.
User ID dan Password Bagian ini tidak ada secara default. Apabila user memilih untuk menggunakan login di SQL Server, maka user harus menambahkan bagian tersebut.
105 Misalnya Anda ingin login dengan user "TEH" dan password "TEH", maka connectionString akan menjadi seperti ini:
name=
"LocalSqlServer"
connectionString=
"Data
Source=
localhost\SQL2005; User ID= TEH; Password= TEH; Initial Catalog= TEHSuite_Authentication"/>
5.
Instalasi telah selesai. a. User dapat menjalankan aplikasi dengan mengetikkan: http://Nama_Domain/TEH melalui web browser. b. Untuk Administrasi website dapat dilakukan dengan mengetikkan url berikut ke dalam web browser Anda : http://localhost/asp.netwebadminfiles/default.aspx?applicationPhysicalPath= <Path
fisikal
ke
folder
aplikasi
termasuk
folder
aplikasi
itu
sendiri>&applicationUrl=/TEH Keterangan mengenai administrasi ini dapat Anda lihat di situs MSDN Microsoft: http://msdn2.microsoft.com/en-us/library/yy40ytx0(vs.80).aspx
106 4.1.4
Cara Penggunaan Aplikasi Tampilan Layar Home (gambar 4.2) merupakan tampilan pertama pada saat
aplikasi dijalankan. Pada layar ini, ditampilkan informasi singkat tentang CRM yang menjadi dasar tujuan pembuatan aplikasi ini, terdapat juga link about dan login yang masing-masing mengarah ke halaman about yang berisi informasi tim pembuat aplikasi ini dan halaman login dimana user diminta memasukkan username dan password untuk mengakses aplikasi ini lebih dalam. Sebagai tambahan, tim TEH-Suite juga menyediakan links yang mengarah ke beberapa website yang bisa membantu user bila ingin mencari informasi lebih lanjut berhubungan dengan aplikasi ini.
107
Gambar 4.2 Layar Home
108
Gambar 4.3 Layar About
Gambar 4.4 di bawah ini menampilkan layar login yang bisa diakses user tertentu dengan memasukkan username dan password tertentu.
Gambar 4.4 Layar Login
109 Langkah-langkah pemakaian aplikasi pada tampilan layar login ini sebagai berikut : 1.
Terlebih dahulu user diminta memasukkan User Name dan Password. User Name dan Password digunakan untuk mencegah pemakaian oleh pihak yang tidak berhak.
2.
Setelah user memasukkan User Name dan Password, user dapat memilih tombol Authenticate Me.
3.
Bila User Name dan Password benar, maka akan dilanjutkan ke halaman berikutnya.
4.
User Name yang memiliki role sebagai IT Staff maka halaman berikut yang akan ditampilkan adalah layar aplikasi Back-end sedangkan bila User Name yang dimasukkan memiliki role sebagai manager maka user akan masuk ke halaman Front-end.
Berikut urutan pemakaian aplikasi untuk masing-masing jenis tampilan berdasarkan role Back-end dan Front-end : 4.1.4.1 Aplikasi Back-end Aplikasi Back-end merupakan bagian aplikasi yang bisa diakses oleh user yang memiliki role sebagai IT Staff. Berikut urutan tampilan yang diakses dalam aplikasi Back-end ini : 1.
Layar DSN Pada layar DSN ini, user diminta untuk mengisi nama DSN lalu memilih tombol Connect untuk menghubungkan user dengan database yang hendak diakses.
110
Gambar 4.5 Layar DSN
2.
Layar Konfirmasi DSN Layar konfirmasi DSN ini menampilkan informasi DSN berupa nama DSN yang sebelumnya telah dimasukkan user pada layar DSN, nama database dan data source untuk memastikan apakah DSN yang ditampilkan oleh aplikasi telah sesuai dengan keinginan user. Tombol Previous dapat dipilih apabila ternyata DSN yang ditampilkan tidak sesuai dengan keinginan user dan user akan kembali ke layar DSN. Namun bila DSN yang ditampilkan sesuai maka user dapat memilih tombol Continue untuk melanjutkan ke proses berikutnya.
111
Gambar 4.6 Layar Konfirmasi DSN
3.
Layar Konfirmasi Tabel di OLTP Layar ini menampilkan tabel-tabel yang ada dalam database yang telah terhubung dengan DSN inputan user untuk memastikan apakah tabel-tabel yang ditampilkan sesuai dengan database yang user maksud sebelumnya. Tombol Previous dapat dipilih apabila ternyata tabel-tabel yang ditampilkan tidak sesuai dengan keinginan user dan user akan kembali ke layar konfirmasi DSN. Namun bila tabel-tabel yang ditampilkan sesuai maka user dapat memilih tombol Continue untuk melanjutkan ke proses berikutnya.
112
Gambar 4.7 Layar Konfirmasi Tabel
113 4.
Layar Mapping Pada proses Mapping, aplikasi akan mengambil data dari database sumber melalui beberapa tahap pengumpulan informasi sebagai berikut : a. Layar DimBranch Pada layar ini, user diminta untuk menentukan field apa saja yang akan dimapping ke tabel DimBranch dengan memilih nama tabel dan field pada dropdown list. User juga dapat memilih apakah user merasa perlu melakukan mapping pada BranchName dan/atau CityID dengan
memberikan tanda
check pada checkbox bertulisan Branch Name dan City ID. Namun bila user merasa tidak membutuhkan tabel DimBranch sama sekali maka user dapat memberikan tanda check pada checkbox bertulisan Do Not Map This Table. Untuk melanjutkan ke proses berikutnya, user dapat memilih tombol Continue. Apabila tidak maka user dapat memilih tombol Previous.
114
Gambar 4.8 Layar DimBranch
b. Layar DimContinent Pada layar ini, user diminta untuk menentukan field apa saja yang akan dimapping ke tabel DimContinent dengan memilih nama tabel dan field pada dropdown list. User dapat melakukan mapping pada ContinentName dengan memberikan tanda check pada checkbox bertulisan Continent Name. Namun bila user merasa tidak membutuhkan tabel DimContinent sama sekali maka user dapat memberikan tanda check pada checkbox bertulisan Do Not Map This Table. Untuk melanjutkan ke proses berikutnya, user dapat memilih tombol Continue. Apabila tidak maka user dapat memilih tombol Previous.
115
Gambar 4.9 Layar DimContinent
c. Layar DimCountry Pada layar ini, user diminta untuk menentukan field apa saja yang akan dimapping ke tabel DimCountry dengan memilih nama tabel dan field pada dropdown list. User juga dapat memilih apakah user merasa perlu melakukan mapping pada CountryName dan/atau ContinentID maka user dapat memberikan tanda check pada checkbox bertulisan Country Name dan Continent ID. Namun bila user merasa tidak membutuhkan tabel DimCountry sama sekali maka user dapat memberikan tanda check pada checkbox bertulisan Do Not Map This Table. Untuk melanjutkan ke proses berikutnya, user dapat
116 memilih tombol Continue. Apabila tidak maka user dapat memilih tombol Previous.
Gambar 4.10 Layar DimCountry
d. Layar DimCity Pada layar ini, user diminta untuk menentukan field apa saja yang akan dimapping ke tabel DimCity dengan memilih nama tabel dan field pada dropdown list. Di bagian ini user juga dapat memilih apakah user merasa perlu melakukan mapping pada CityName dan/atau CountryID maka user dapat memberikan tanda check pada checkbox bertulisan City Name dan Country ID. Namun bila user merasa tidak membutuhkan tabel DimCity sama sekali maka user dapat memberikan tanda check pada checkbox bertulisan Do Not
117 Map This Table. Untuk melanjutkan ke proses berikutnya, user dapat memilih tombol Continue. Apabila tidak maka user dapat memilih tombol Previous.
Gambar 4.11 Layar DimCity
e. Layar DimCustomer Pada layar ini, user diminta untuk menentukan field apa saja yang akan dimapping ke tabel DimCustomer dengan memilih nama tabel dan field pada dropdown list. User juga dapat memilih apakah user merasa perlu melakukan mapping pada field tertentu maka user dapat memberikan tanda check pada checkbox bertulisan Customer Name, Customer Email, Customer Phone, Customer Mobile, Company Name, dan City ID.
118 Namun bila user merasa tidak membutuhkan tabel DimCustomer sama sekali maka user dapat memberikan tanda check pada checkbox bertulisan Do Not Map This Table. Untuk melanjutkan ke proses berikutnya, user dapat memilih tombol Continue. Apabila tidak maka user dapat memilih tombol Previous.
Gambar 4.12 Layar DimCustomer
f. Layar DimProduct Pada layar ini, user diminta untuk menentukan field apa saja yang akan dimapping ke tabel DimProduct dengan memilih nama tabel dan field pada dropdown list. Pada bagian ini user juga dapat memilih apakah user merasa perlu melakukan mapping pada field tertentu maka user dapat memberikan
119 tanda check pada checkbox bertulisan Product Name, Product Price, Product Merk, Category ID, dan Supplier ID. Namun bila user merasa tidak membutuhkan tabel DimProduct sama sekali maka user dapat memberikan tanda check pada checkbox bertulisan Do Not Map This Table. Untuk melanjutkan ke proses berikutnya, user dapat memilih tombol Continue. Apabila tidak maka user dapat memilih tombol Previous.
Gambar 4.13 Layar DimProduct
g. Layar DimCategory Pada layar ini, user diminta untuk menentukan field apa saja yang akan dimapping ke tabel DimCategory dengan memilih nama tabel dan field pada
120 dropdown list. User dapat melakukan mapping pada CategoryName dengan memberikan tanda check pada checkbox bertulisan Category Name. Namun bila user merasa tidak membutuhkan tabel DimCategory sama sekali maka user dapat memberikan tanda check pada checkbox bertulisan Do Not Map This Table. Untuk melanjutkan ke proses berikutnya, user dapat memilih tombol Continue. Apabila tidak maka user dapat memilih tombol Previous.
Gambar 4.14 Layar DimCategory
h. Layar DimPromotion Pada layar ini, user diminta untuk menentukan field apa saja yang akan dimapping ke tabel DimPromotion dengan memilih nama tabel dan field pada dropdown list. User juga dapat memilih apakah user merasa perlu melakukan