Setelah melakukan analisis dan desain sistem maka akan dilakukan implementasi sistem pada SQL Server 7.0 dan Borland Delphi 5. Untuk proses implementasi ini perlu dilakukan instalasi SQL Server 7.0 Database Server-Standar Edition, SQL Server 7.0 OLAP Services dan Borland Delphi 5. Langkah-langkah implementasi yang dilakukan sebagai berikut :
4.1. Pembuatan database pada SQL Server 7.0
Langkah pertama dalam implementasi sistem dimulai dari pembuatan database Toko_Santoso pada SQL Server 7.0 Enterprise Manager. Sebelum itu pastikan bahwa server dalam kondisi running.
Database dibuat dengan melakukan expand pada Microsoft SQL Servers, SQL Server Group, HOME. Kemudian klik kanan pada Databases dan pilih New Database seperti ditunjukkan pada Gambar 4.1.
Gambar 4.1. New Database 54
55
Selanjutnya akan muncul sebuah menu untuk menginputkan nama database yang akan dibuat. Ketikkan Toko_Santoso pada nama database (Name) dan setelah pengaturan pada panel General dan Transaction Log selesai klik button OK.
Gambar 4.2. Create New Database
Database Toko_Santoso telah selesai dibuat dan database ini memiliki diagram, tabel, view, store procedure dan lain sebagainya.
Gambar 4.3. Database Toko_Santoso
Langkah selanjutnya adalah membuat tabel sesuai dengan desain pada Entity Relationship Diagram. Klik kanan pada Tables, New Table dan ketikkan nama tabel yang akan dibuat. Akan ditampilkan sebuah lembar kerja untuk menentukan field-field pada tabel, tipe data dari masing-masing field dan primary key dari tabel tersebut. Sebagai contoh adalah tabel barang dengan field-field yang ada didalamnya seperti ditunjukkan pada Gambar 4.4.
57
Gambar 4.4. Contoh Tabel
4.2. Koneksi antara SQL Server 7.0 dengan Borland Delphi 5
Koneksi antara Borland Delphi 5 dengan SQL Server 7.0 dilakukan melalui komponen ADO Connection pada pallet ADO seperti pada Gambar 4.5.
Gambar 4.5. Komponen ADO Connection
Komponen ADO Connection di-drag pada form aplikasi kemudian pada properti Connection String dilakukan setting ke database Microsoft SQL Server seperti pada gambar 4.6. Pilih radio button Use Connection String kemudian klik button Build maka akan ditampilkan form baru seperti pada Gambar 4.7.
Gambar 4.6. Source of Connection
Gambar 4.7. Provider
Dalam pallet Provider ditampilkan beberapa program database yang dapat dikoneksikan dengan Delphi. Pilih Microsoft OLE DB Provider for SQL Server untuk koneksi ke SQL Server 7.0 kemudian klik button Next dan akan ditampilkan
59
form seperti pada Gambar 4.8. Pilih server Home dan database Toko_Santoso kemudian klik button Test Connection untuk melakukan tes pada koneksi yang baru saja dibuat, tekan button OK dan koneksi yang dilakukan selesai.
Gambar 4.8. Connection
4.3. Implementasi Cube pada OLAP Manager
4.3.1. Pembuatan database pada OLAP Manager
Untuk membuat multidimensional cube maka langkah pertama yang harus dilakukan adalah memastikan bahwa SQL Server OLAP Services telah terinstal dengan baik. Pilih menu Start, Programs, Microsoft SQL Server 7.0, OLAP Services, OLAP Manager untuk membuka aplikasi pembuatan cube.
Pada OLAP Manager, expand OLAP Servers dan HOME maka akan ditampilkan database yang ada seperti foodmart, northwind dan lain-lain. Klik kanan
Gambar 4.9. New OLAP Database
Gambar 4.10. Database Name
61
4.3.2. Pembuatan view pada SQL Server Enterprise Manager
View merupakan perintah select yang hasilnya akan disimpan dalam bentuk menyerupai tabel. Untuk membuat view, expand database Toko_Santoso lalu klik kanan pada views dan pilih menu new view. Akan ditampilkan sebuah aplikasi baru seperti pada Gambar 4.11. Ketikkan perintah Structured Query Language (SQL) pada tempat yang tersedia.
Gambar 4.11. New View
Setelah perintah SQL selesai maka klik pada tanda seru berwarna merah dan akan ditampilkan relasi antar tabel yang digunakan dalam query tersebut. Contoh view dapat dilihat pada Gambar 4.12.
Gambar 4.12. View Penjualan
View yang dibuat dalam sistem ini seperti view pembelian, view penjualan dan lain sebagainya akan digunakan sebagai tabel fakta (fact table) dalam pembuatan cube.
4.3.3. Pembuatan cube pada OLAP Manager
4.3.3.1. Cube Total Penjualan
Untuk membuat cube maka pada database Toko_Santoso yang telah dibuat, klik kanan pada Cubes kemudian pilih menu New Cube Editor (lihat Gambar 4.13.).
Pembuatan cube dapat memakai menu Wizard dengan mengikuti setiap langkah yang telah ditentukan oleh OLAP Manager atau menggunakan Editor. Setelah menu New Cube Editor dipilih, akan ditampilkan sebuah form Cube Editor dan cube dapat segera dibuat.
63
Gambar 4.13. New Cube
Pada form Cube Editor akan diminta pilihan tabel yang akan menjadi fact table/tabel fakta pada cube yang akan dibuat (lihat Gambar 4.14.). Untuk cube total penjualan ini pilih view penjualan sebagai fact table lalu klik button OK.
Gambar 4.14. Pilihan fact table
Langkah selanjutnya adalah menentukan dimensi, khusus dimensi waktu akan digunakan pilihan dimension manager yaitu dengan cara klik kanan pada folder Dimensions lalu pilih dimension manager (lihat Gambar 4.15.). Kemudian akan muncul sebuah tampilan wizard seperti pada Gambar 4.16.
Gambar 4.15. Dimension Manager
Gambar 4.16. New Dimension
Klik pada button New Dimension untuk membuat dimensi baru, kemudian pada dimension wizard pilih a single dimension table (star schema) dan klik Next untuk langkah selanjutnya seperti ditunjukkan pada Gambar 4.17.
65
Gambar 4.17. Dimension Wizard
Pada langkah berikutnya, pilih dari tabel atau view yang akan menjadi tabel dimensi. Pada cube ini digunakan tabel Master_Penjualan sebagai dimension table dan klik button Next untuk langkah selanjutnya (lihat Gambar 4.18.).
Gambar 4.18. Dimension Table
Gambar 4.19. Dimension Type
Pada Gambar 4.19 di atas ditunjukkan langkah berikutnya adalah memilih tipe dari dimensi yang ingin dibuat. Karena kita ingin membuat dimensi waktu maka pilih Time Dimension kemudian klik button Next untuk memilih level dari dimensi waktu tersebut seperti ditunjukkan pada Gambar 4.20.
Gambar 4.20. Time Dimension Level
67
Langkah terakhir dari pembuatan dimensi waktu adalah memberi nama dimensi tersebut dan memilih apakah dimensi ini dapat di-share penggunaannya dengan cube lain (lihat Gambar 4.21.). Klik button Finish dan dimensi waktu telah selesai dibuat, dimensi ini dapat dilihat pada tree sebelah kiri seperti ditunjukkan pada Gambar 4.22.
Gambar 4.21. Dimension Name
Gambar 4.22. Dimensi Waktu
Gambar 4.23. Insert Tables
Langkah selanjutnya adalah insert dimension table yang dilakukan dengan cara klik kanan pada tabel fakta Penjualan kemudian pilih Insert Tables seperti pada Gambar 4.23 di atas. Pilih tabel-tabel yang akan menjadi dimension table kemudian klik button Add (lihat Gambar 4.24.).
Gambar 4.24. Select Table
Langkah berikutnya adalah menentukan field-field yang akan menjadi dimensi. Klik kanan pada nama field kemudian pilih Insert as Dimension seperti pada Gambar 4.25. Pada Cube ini akan dipilih Kode_Customer dan Nama_Kategori sebagai dimensi. Untuk menentukan level maka klik kanan pada dimensi yang telah dibuat kemudian pilih new level (lihat Gambar 4.26.). Pilih field yang akan menjadi level seperti ditunjukkan pada Gambar 4.27.
69
Gambar 4.25. Insert as Dimension
Gambar 4.26. New Level
Gambar 4.27. Select Column
Gambar 4.28. Insert as Measure
Gambar 4.29. Dimensions and Measure
71
Setelah cube selesai dibuat maka tekan tanda bergambar disket pada panel atas kemudian akan ditampilkan sebuah kotak dialog untuk memasukkan nama cube yang akan disimpan. Ketikkan Cube_Total_Penjualan seperti ditunjukkan pada gambar 4.30.
Gambar 4.30. Save Cube
Setelah cube disimpan maka perlu dilakukan process cube dengan cara klik Tools, Process Cube dan akan ditampilkan wizard seperti pada Gambar 4.31. Klik button Next untuk langkah selanjutnya.
Gambar 4.31. Storage Design Wizard
Gambar 4.32. Type of Data Store
Gambar 4.33. Set Aggregation Option
73
Gambar 4.34. Process Cube
Langkah terakhir dari pemrosesan cube adalah pilih radio button Process now kemudian klik button Finish seperti pada Gambar 4.34. di atas dan proses akan ditampilkan seperti pada Gambar 4.35.
Gambar 4.35. Process Complete
Gambar 4.36. Preview Cube Data
Gambar 4.37. Cube Browser
4.3.3.2. Cube Keuntungan Penjualan
Cube ini akan menghasilkan sebuah informasi keuntungan dari tiap-tiap penjualan barang kepada beberapa customer pada periode waktu tertentu. Langkah- langkah pembuatan cube ini hampir sama dengan langkah-langkah pembuatan cube total penjualan yang telah dijelaskan sebelumnya dan perbedaannya terletak pada
75
fact table, dimension table, dimensions, dan measures yang ditentukan. Tampilan Cube Keuntungan Penjualan ini dapat dilihat pada Gambar 4.38.
Gambar 4.38. Cube Keuntungan Penjualan
Gambar 4.39. Cube Keuntungan Penjualan Preview
4.3.3.3. Cube Keuntungan per Barang
Cube ini akan menghasilkan sebuah informasi keuntungan dari tiap-tiap barang yang di-supply beberapa supplier pada periode waktu tertentu. Hal ini akan membantu pemilik untuk mengetahui untuk jenis barang yang sama misal untuk pipa air, supplier mana yang memberikan penawaran harga lebih baik sehingga untuk pembelian selanjutnya dapat dilakukan pada supplier yang tepat. Hal ini dapat meningkatkan keuntungan penjualan barang dan dapat memberikan harga yang bersaing bagi customer.
77
Gambar 4.40. Cube Keuntungan per Barang
Gambar 4.41. Cube Keuntungan per Barang
Gambar 4.42. Cube Total Pembelian
79
Gambar 4.43. Cube Total Pembelian Preview
4.4. Implementasi pada Borland Delphi 5
Implementasi pada Borland Delphi 5 dibagi menjadi dua bagian yaitu sistem OLTP pada menu penjualan dan pembelian untuk memasukkan data penjualan dan pembelian yang kemudian akan diolah dengan OLAP Manager untuk ditampilkan pada sistem OLAP yang ada yaitu berupa laporan-laporan yang akan membantu pemilik toko untuk lebih bijaksana dalam mengambil keputusan pengadaan barang. Daftar menu program dapat dilihat pada Tabel 4.1.
CancelClick - Menutup form pembelian dan menampilkan form utama DataSourceDetailDataChange - Menampilkan kode kategori sesuai nama kategori yang dipilih
- Menghitung subtotal dan total pembelian
- Menyimpan data pada memtable master dan memtable detail
checkdetail - Cek isi data pada Dbgrid detail pembelian
checkmaster - Cek kode supplier apakah sudah diisi data
InsertClick - Memasukkan data pada tabel master dan detail pembelian
FormClose - Pengecekan dilakukannya rollback transaksi
DBGrid1KeyDown - Pengecekan penekanan tombol pada Dbgrid
MemTableDetailNewRecord - Mengisi nilai awal jumlah barang, harga beli, harga jual
DBGrid1Enter - Membuat memtable dalam kondisi edit
SearchClick - Menampilkan form supplier
Penjualan FrmPenjualan FormShow - Menjalankan store procedure untuk generate kode penjualan
- Mengisi picklis DBgridpada kolom kode barang
DateTimePicker1Change - Mengisi tanggal transaksi
CancelClick - Menutup form pembelian dan menampilkan form utama
DataSourceDetailDataChange - Menghitung subtotal dan total pembelian
- Menyimpan data pada memtable master dan memtable detail
checkdetail - Cek isi data pada Dbgrid detail penjualan
checkmaster - Cek kode customer apakah sudah diisi data
InsertClick - Memasukkan data pada tabel master dan detail penjualan
81
Tabel 4.1. Menu Program (lanjutan)
FormClose - Pengecekan dilakukannya rollback transaksi
DBGrid1KeyDown - Pengecekan penekanan tombol pada Dbgrid
MemTableDetailNewRecord - Mengisi nilai awal jumlah barang, harga jual, discount, subtotal
DBGrid1Enter - Membuat memtable dalam kondisi edit
SearchClick - Menampilkan form customer
Stok FrmStok FilterClick - Menjalankan procedure EdtKode_BarangChange
EdtKode_BarangChange - Cek radio button dan membuat perintah query yang sesuai
AllDataClick - Perintah select * from Barang
ReportClick - Manampilkan laporan berdasarkan data pada form stok Laporan FrmLaporan CellGrid - Mengatur stringgrid
CellChart - Mengatur chart
TampilData - Menampilkan data
FormShow - Pengecekan tahun
LaporanPenjualanPerBarang1 - Menampilkan laporan penjualan per barang
Click
LaporanPenjualanPer - Menampilkan laporan penjualan per kategori barang
KategoriBarang1Click
LaporanPenjualanPer - Menampilkan laporan penjualan per customer dlm bulan tertentu
CustomerBulanan1Click
LaporanPenjualanper - Menampilkan laporan transaksi penjualan per customer harian
CustomerHarian1Click
LaporanKeuntungan - Menampilkan laporan keuntungan bulanan
Bulanan1Click
LaporanPenjualanper - Menampilkan laporan penjualan per barang harian
BarangHarian1Click
LaporanOLAP1Click - Menampilkan laporan cube multidimensional
83
4.4.1. Sistem OLTP
Pembuatan sistem OLTP ini meliputi pembuatan form aplikasi untuk memasukkan data penjualan dan pembelian. Untuk memulai aplikasi ini pertama- tama dibuat sebuah store procedure untuk men-generate kode penjualan secara otomatis berdasarkan tanggal transaksi dan no urut yang akan dimulai lagi dari no 1 setiap harinya.
Segmen Program 4.1. Store Procedure set_string_2
CREATE PROCEDURE [set_string_2] @input varchar(2), @hasil char(2) OUTPUT
AS
declare @panjang int
select @panjang = LEN(@input)
if @panjang < 2 begin
select @hasil = '0' + @input end
else begin
select @hasil = @input end
Segmen Program 4.2. Store Procedure set_string_3
CREATE PROCEDURE [set_string_3] @input varchar(3), @hasil char(3) OUTPUT
AS
declare @panjang int
select @panjang = LEN(@input)
if @panjang < 2 begin
select @hasil = '00' + @input end
else begin
if @panjang < 3 begin
select @hasil = '0' + @input end
else begin
select @hasil = @input end
end
declare @tanggal char(2) declare @bulan char(2) declare @tahun char(4) declare @nomer varchar(3)
select @tanggal = CAST(DAY(GETDATE()) AS varchar(2)) exec set_String_2 @tanggal,@tanggal OUTPUT
select @bulan = CAST(MONTH(GETDATE()) AS varchar(2)) exec set_String_2 @bulan,@bulan OUTPUT
select @tahun = CAST(YEAR(GETDATE()) AS varchar(4))
select @kode= 'JL' + @tanggal + @bulan + @tahun
select @count = COUNT(Kode_Penjualan) from Master_Penjualan where Kode_Penjualan like @kode+'%'
if @count = 0 begin
select @hasil = @kode + '001' end
else begin
select @temp = MAX(Kode_Penjualan) from Master_Penjualan where Kode_Penjualan like @kode+'%'
select @max = CAST(SUBSTRING(@temp,11,3) as int) + 1 select @nomer = CAST(@max as varchar(3))
exec set_string_3 @nomer,@nomer OUTPUT select @hasil = @kode + @nomer
end
Kode pembelian dimasukkan berdasarkan nomer nota/faktur pembelian dari supplier tetapi bila tidak ada nomer nota, kode pembelian dapat dibuat seperti halnya kode penjualan dengan store procedure pada Segmen Program 4.4.
Segmen Program 4.4. Store Procedure generate_kode_pembelian
CREATE PROCEDURE [generate_kode_pembelian] @hasil char(13) OUTPUT AS
declare @count int declare @max int
declare @temp char(13) declare @kode varchar(13) declare @tanggal char(2) declare @bulan char(2)
85
declare @tahun char(4) declare @nomer varchar(3)
select @tanggal = CAST(DAY(GETDATE()) AS varchar(2)) exec set_String_2 @tanggal,@tanggal OUTPUT
select @bulan = CAST(MONTH(GETDATE()) AS varchar(2)) exec set_String_2 @bulan,@bulan OUTPUT
select @tahun = CAST(YEAR(GETDATE()) AS varchar(4))
select @kode= 'BL' + @tanggal + @bulan + @tahun
select @count = COUNT(Kode_Pembelian) from Master_Pembelian where Kode_Pembelian like @kode+'%'
if @count = 0 begin
select @hasil = @kode + '001' end
else begin
select @temp = MAX(Kode_Pembelian) from Master_Pembelian where Kode_Pembelian like @kode+'%'
select @max = CAST(SUBSTRING(@temp,11,3) as int) + 1 select @nomer = CAST(@max as varchar(3))
exec set_string_3 @nomer,@nomer OUTPUT select @hasil = @kode + @nomer
end
4.4.2. Sistem OLAP
4.4.2.1. Grafik pada aplikasi Borland Delphi 5
Cube-cube yang telah dibuat sebelumnya digunakan untuk sistem OLAP pada implementasi Borland Delphi 5 yaitu untuk menampilkan laporan bagi kepentingan analisis user untuk mendukung pengambilan keputusan. Cube akan ditampilkan dalam bentuk tiga dimensi berupa chart dan user dapat memilih pilihan laporan yang diinginkan sesuai periode waktu yang ada.
Untuk mengambil informasi di dalam cube digunakan multidimensional query (MDX query). MDX query digunakan pada setiap program menu laporan klik, sebagai contoh adalah laporan penjualan per barang harian seperti pada Segmen Program 4.5.
columns, ' +
' ([Nama Kategori].[Nama Barang].members) on rows from Cube_Penjualan1 where Jumlah_Barang';
TampilData;
end;
end;
MDX query pada Segmen Program 4.5 bertujuan untuk menampilkan laporan penjualan per barang harian seperti ditunjukkan pada Gambar 4.44.
Gambar 4.44. Laporan Penjualan per Barang Harian
87
4.4.2.2. Pivot Table pada aplikasi Visual Basic 6.0
Aplikasi pada Visual Basic 6.0 digunakan untuk menampilkan OLAP cube dengan tampilan seperti pada Cube Browser. Penulis menggunakan komponen Pivot Table pada Visual Basic 6.0 karena komponen ini mendukung tampilan cube dengan fasilitas drop down. Bentuk file .exe dari aplikasi ini dapat diakses dari Delphi dengan program pada Segmen Program 4.6.
Segmen Program 4.6. Menampilkan File.exe
procedure TFrmLaporan.LaporanOLAP1Click(Sender: TObject);
begin
WinExec('D:\06.06.2004\LaporanOLAP.exe', SW_SHOWNORMAL);
end;
Aplikasi ini dibuat dengan menggunakan komponen Pivot Table pada Microsoft Office Web Components 9.0. Untuk menampilkan komponen ini pilih menu Project, Component lalu klik pada Microsoft Office Web Components 9.0 kemudian klik button OK seperti ditunjukkan pada Gambar 4.45.
Gambar 4.45. Komponen Pivot Table
Gambar 4.46. Form Laporan Penjualan
Pada form laporan penjualan klik pada Property Toolbox maka akan ditampilkan form seperti pada Gambar 4.47. Pilih Connection pada Data Source lalu klik Connection String untuk melakukan koneksi pada OLAP Manager. Pilih Microsoft OLE DB Provider for OLAP Services sebagai provider (lihat Gambar 4.48) lalu klik button Next untuk koneksi database pada OLAP Manager.
Gambar 4.47. Pivot Table Property Toolbox
89
Gambar 4.48. Data Source
Setelah database terkoneksi maka perlu di-drag field-field pada Pivot Table Field List untuk menentukan column area, row area, filter, data dan detail. Setelah selesai maka pivot table telah jadi dan untuk tampilan file .exe dapat dilihat pada Gambar 4.49.
Gambar 4.49. Laporan Total Penjualan