39
ANALISIS DAN PERANCANGAN SISTEM
3.1 Analisis
3.1.1 Riwayat Perusahaan
PT Pondok Pujian Sejahtera, pengelola Toko Pondok Pujian adalah perseroan yang bergerak dalam bidang distribusi audio visual, yang antara lain menjual berbagai jenis kaset, CD Audio, Video CD dan DVD rohani. Perusahaan ini didirikan pada tanggal 1 Juli 1998 dengan Akte Pendirian no.1 tgl 1 Juli 1998 dan ketetapan Pengadilan Negeri Jakarta Barat tanggal 19 Juni 1998 No. 010/PDT.CN/1998/PN.JKT.BAR.
PT Pondok Pujian Sejahtera dikelola oleh satu manajemen yang sama dengan PT Stora Adhiswara (Maranatha), yang merupakan pemasok dari produk-produk yang ada, dimana Pondok Pujian hanya khusus menangani masalah pemasaran dan penjualan produk audio video yang dihasilkan oleh Maranatha sebagai supplier utama disamping supplier yang lain. Kedua perusahaan ini memiliki kantor pusat yang sama yang berkedudukan di Puri Sentra Niaga Blok T2 No. 10, Jl. Puri Agung Indah, Kembangan, Jakarta Barat 11610. Hingga saat ini, PT Pondok Pujian Sejahtera masih terus mengembangkan usahanya. Pada tahap awal, perusahaan ini hanya menjalankan bisnisnya di seputar Jakarta, akan tetapi saat ini Pondok Pujian telah melebarkan usahanya ke luar daerah Jakarta dan telah mencakup lebih dari 200 toko yang tersebar di seluruh wilayah Indonesia.
3.1.2 Visi dan Misi Perusahaan Visi Perusahaan
Visi perusahaan dari PT Pondok Pujian Sejahtera adalah melayani Tuhan dalam puji-pujian rohani supaya menjadi berkat bagi siapapun.
Misi Perusahaan
Misi dari perusahaan PT Pondok Pujian Sejahtera adalah membuka jaringan untuk penyediaan lagu rohani yang tersebar di seluruh Indonesia sehingga mudah didapat oleh siapapun.
3.1.3 Struktur Organisasi
Gambar 3. 1 Struktur Organisasi PT Pondok Pujian Sejahtera (Sumber : Akte Pendirian no.1 tgl 1 Juli 1998 )
Berdasarkan Akte Pendirian no.1 tgl 1 Juli 1998, PT Pondok Pujian Sejahtera dikepalai oleh seorang Dewan Komisaris yang dibantu seorang Direktur Utama yang membawahi 4 (empat) departemen operasional yaitu : • Departemen Operasional
• Departemen Pemasaran
• Departemen Pembelian dan Penjualan • Departemen Keuangan dan Akuntansi
3.1.4 Tugas dan Wewenang
Tugas dan wewenang dari setiap bagian organisasi PT Pondok Pujian Sejahtera adalah:
• Komisaris
1. Melakukan negosiasi, observasi dan riset serta menentukan kemungkinan pembukaan cabang baru.
2. Melakukan otorisasi dan menanda tangani cek dan giro.
3. Melakukan kontrol terhadap kemajuan pada keseluruhan perusahaan. • Direktur Utama
1. Melihat dan meneliti kebenaran dari laporan keuangan (neraca dan laba rugi).
2. Mengurus perpajakan SSP + SPT Masa PPn, PPh 21/23/26 serta SSP + SPT Masa badan PPh 25.
3. Melihat laporan dari setiap departemen dan melakukan pengambilan keputusan untuk memajukan perusahaan.
• Direktur Operasional
1. Menentukan jenis-jenis produk yang dijual PT Pondok Pujian Sejahtera. 2. Menyetujui produk kaset, CD, VCD, dan lainnya yang akan dijual di
toko.
3. Menangani penyediaan stok produk.
4. Memonitor kegiatan operasional dari keseluruhan toko secara periodik. 5. Mengatur pengeluaran harian yang berhubungan dengan kegiatan perusahaan.
• Direktur Pemasaran
1. Mengadakan observasi dan meriset untuk kemungkinan membuka cabang baru.
2. Mengatur desain dan interior dari cabang baru.
3. Mengatur semua keperluan cabang baru untuk siap ditempati. 4. Melakukan promosi untuk meningkatkan penjualan.
• Direktur Pembelian dan Penjualan
1. Menganalisis dan menangani masalah yang timbul dalam pembelian. 2. Memeriksa kebenaran dari laporan pembelian dan penjualan barang. • Direktur Keuangan dan Akuntansi
1. Memeriksa laporan keuangan dari Manajer Keuangan dan Akuntansi. 2. Melakukan koordinasi dengan bagian operasional, pembelian dan
penjualan.
• Manajer Personalia (HRD)
2. Melakukan pembayaran gaji bulanan. 3. Memberi pelatihan kepada pegawai.
4. Memberi pengarahan kepada karyawan toko. 5. Memantau kegiatan kerja karyawan.
• Manajer Humas
o Hubungan dengan Bank
1. Mengurus penagihan kartu kredit. 2. Memantau transaksi kartu debit. 3. Menghitung rasio bunga yang khusus. 4. Memantau simpanan di deposito. o Hubungan dengan pengelola gedung
1. Membayar uang perawatan, peminjaman dan uang pelayanan toko. 2. Membahas masalah biaya sewa dan perbedaan kurs.
3. Menyelesaikan masalah keluhan toko dengan pengelola mal. o Hubungan dengan pembeli
1. Menjaga hubungan dengan pembeli. 2. Memberi perhatian dari keluhan pembeli. 3. Mengurus member card.
• Manajer Pembelian dan Penjualan
1. Menerima order dari toko Pondok Pujian.
2. Membuat PO ke pemasok atas persetujuan Direktur Operasional. 3. Mengatur pengiriman barang ke Pondok Pujian.
• Manajer Keuangan dan Akutansi 1. Mengkoordinasi kegiatan staf akuntan.
2. Membuat, melaporkan dan menyimpulkan laporan keuangan (neraca dan laba rugi).
3. Menangani kas kecil toko (modal).
4. Mencocokan tagihan pemasok dengan pembukuan kantor. 5. Memeriksa mutasi rekening koran setiap saat.
6. Memeriksa setoran tunai di bank setiap saat. 7. Mencocokan setoran kartu kredit di bank.
8. Menyiapkan giro untuk pembayaran ke pemasok. 9. Melaporkan arus kas perusahaan tiap bulan. • Manajer Internal Audit atau Control
1. Menilai prosedur dan menilai hal-hal yang berhubungan, sebagai berikut: • Memberi pendapat efisiensi atau kelayakan prosedur .
• Mengembangkan dan memperbaiki prosedur.
• Ide-ide seperti pembuatan standar atau metode yang baik.
2. Analisis data yang dihasilkan sistem akuntansi guna membuktikan bahwa laporan-laporan yang dihasilkan adalah benar.
3. Mengadakan perlindungan untuk menghindari penggelapan, ketidakjujuran atau kecurangan.
4. Memeriksa kekayaan perusahaan. 5. Meneliti transaksi dengan pihak luar.
• Chief Supervisor
1. Melakukan kontrol pada kegiatan-kegiatan operasional harian. 2. Mengepalai beberapa supervisor.
• Supervisor dan SPG
1. Membantu pelanggan untuk mencari barang yang ingin dibeli. 2. Melakukan promosi barang-barang baru.
3. Memberikan informasi mengenai barang yang ditawarkan.
4. Melakukan pemeliharaan terhadap toko dan barang-barang yang ada dalam toko.
• Kasir
1. Melakukan pemasukkan (input) kode barang. 2. Mengurus pembayaran dari pelanggan. 3. Membungkus barang yang dibeli. • Staf Pemesanan
1. Melakukan kontrol terhadap stok barang.
2. Menghitung jumlah barang yang dikirim dari pemasok.
3. Memeriksa kerusakan pada barang yang terjadi pada saat pengiriman. • Staf Keuangan dan Akuntansi
1. Mencatat data penjualan.
2. Melakukan kegiatan-kegiatan accounting yang diperlukan. 3. Membantu penyusunan laporan keuangan.
4. Mencatat daftar inventori.
3.1.5 Prosedur yang Sedang Berjalan
PT Pondok Pujian Sejahtera memiliki jaringan toko yang tersebar di wilayah Indonesia dimana seluruhnya terhubung ke satu pusat di Jakarta. Keseluruhan jaringan toko tersebut dibagi menjadi enam jenis kerjasama yaitu pusat, gabungan Matahari (PKP), gabungan Matahari (NonPKP), gabungan Hero, gabungan kerjasama dan setoran cash, dan pribadi. Di mana pada kerjasama pusat dan pribadi, toko – toko tersebut adalah toko milik PT Pondok Pujian Sejahtera sendiri dan pada kerjasama yang lain, toko – toko tersebut merupakan toko yang terbentuk dari kerjasama PT Pondok Pujian Sejahtera dengan mitra kerjasamanya antara lain Matahari, Hero, dan mitra kerja yang lainnya.
PT Pondok Pujian Sejahtera memiliki beberapa supplier di samping supplier utama dalam pengadaan produk – produknya. Sebagai supplier utama adalah PT Stora Adhiswara ( Maranatha ), yang dikelola oleh pihak yang sama dengan PT Pondok Pujian Sejahtera, namun keduanya berdiri sebagai dua perusahaan yang berbeda, dimana PT Stora Adhiswara menangani masalah produksi dan PT Pondok Pujian Sejahtera menangani masalah penjualan.
Barang-barang yang dipesan dari supplier akan disimpan gudang PT Pondok Pujian Sejahtera dan ketika ada permintaan barang dari toko, stok ini baru dikirimkan ke toko bersangkutan. Untuk pengiriman ke toko-toko yang berada di Jawa, Pondok Pujian memiliki staf khusus yang menanganinya, namun untuk pengiriman ke toko di luar pulau Jawa, Pondok Pujian akan menggunakan layanan jasa kurir.
karyawan yang bekerja ditoko bersangkutan. Untuk pengontrolnya, setelah satu bulan akan dilakukan stock opname oleh staf akuntan.
Dalam penyebaran informasi ke konsumen, Pondok Pujian tidak terlalu banyak melakukan pengiklanan ke media-media yang ada, namun ada kalanya Pondok Pujian mengiklankan produk baru mereka melalui media cetak.
Pada PT Pondok Pujian Sejahtera terdapat dua buah prosedur utama, yaitu proses pembelian dan penjualan :
1. Penjualan
Untuk proses penjualan dimulai dengan calon pembeli yang langsung datang ke toko untuk memilih barang yang diinginkan yang dilayani oleh SPG (Sales Promotion Girl), calon pembeli langsung datang ke kasir dengan membawa barang yang telah dipilih. Kasir memasukkan kode barang ke dalam komputer lokal. Kemudian kasir menanyakan keanggotaan pembeli (member card), untuk mendapatkan fasilitas diskon. Kasir memberitahukan total tagihan yang harus dibayar pembeli dan pembeli menentukan jenis pembayarannya. Jenis pembayaran dapat dilakukan dengan tiga cara yaitu dengan tunai, kartu kredit atau kartu debit. Sebagai bukti dari pembelian dan pembayaran, kasir menyerahkan struk pembelian kepada pembeli.
Setelah proses tersebut usai, kasir menyerahkan barang yang telah terbungkus kepada pembeli. Data transaksi yang tersimpan pada komputer lokal ditarik ke perusahaan secara periodik. Order stok dilakukan apabila persediaan stok pada masing-masing toko tersebut menipis.
Pondok Admin Toko Konsumen
Gambar 3. 2 Flowchart Penjualan
2. Pembelian
Untuk proses pembelian PT Pondok Pujian Sejahtera kepada supplier, terdapat dua kemungkinan yang menyebabkan proses pembelian itu terjadi. Yang pertama pembelian terhadap barang yang baru. Dimulai dengan adanya penawaran harga dan barang baru oleh supplier kepada direktur operasional PT Pondok Pujian Sejahtera. Jika barang baru yang ditawarkan merupakan barang baru yang banyak dicari oleh pasar, maka direktur operasional akan mempertimbangkan pemesanan untuk barang
(Pondok.exe) Input Penjualan
Struk Belanja Struk Belanja (Customer copy) Struk Belanja (Pondok.exe) Transfer Data Upload (Pondok.exe) Transfer Data Download
tersebut dan selanjutnya akan dilakukan negosiasi terhadap penawaran harga dari supplier. Setelah didapatkan kesepakatan harga, maka akan dilakukan pemesanan terhadap barang tersebut oleh manajer pembelian dan penjualan. Setelah barang baru tersebut datang, akan masuk gudang PT Pondok Pujian Sejahtera dan akan langsung dibagi ke toko – toko sejumlah keputusan dari direktur operasional dari analisis terhadap daya jual yang dimiliki masing – masing toko.
Kemungkinan kedua adalah jika stok barang di gudang PT Pondok Pujian Sejahtera mulai menipis, maka akan dilakukan pemesanan kepada supplier. Manajer penjualan dan pembelian akan membuat surat order pembelian kepada supplier dan mengirimkan surat tersebut melalui fax. Rangkap dari surat order pembelian tersebut akan diberikan pada staf pemesanan. Kemudian setelah barang dari supplier datang, akan diperiksa oleh staf pemesanan apakah sesuai dengan permintaan dan setelah selesai pemeriksaan akan dilaporkan hasilnya kepada staf akuntan.
Jika stok barang di suatu toko habis, maka karyawan toko akan memesan sejumlah stok barang kepada PT Pondok Pujian Sejahtera dengan menginput permintaan stok barang dalam aplikasi dan di buat order pembelian dan dikirimkan melalui fax kepada manajer penjualan dan pembelian PT Pondok Pujian Sejahtera yang selanjutnya diinput kembali untuk dibuat bukti pengeluaran barang yang akan diberikan staf pemesanan untuk dicek apakah barang yang diminta ada atau tidak. Jika barang ada, akan langsung disiapkan sejumlah yang diminta. Terutama
untuk permintaan toko kerjasama, jumlah permintaan mereka akan dianalisis menurut kemampuan daya jual mereka, jika dirasa jumlah permintaan mereka lebih besar dari kemampuan daya jual mereka, jumlah barang yang akan diberikan hanya secukupnya sesuai daya jual toko tersebut.
Setelah selesai pengecekan ketersediaan barang di gudang, bukti pengeluaran barang tadi akan dikembalikan kepada staf akuntan untuk selanjutnya dibuat invoice yang sekaligus berfungsi sebagai surat jalan untuk dikirimkan ke toko yang bersangkutan bersamaan dengan barang.
Setelah barang dikirimkan ke masing – masing toko, barang tersebut akan diperiksa kembali oleh toko yang bersangkutan sesuai dengan surat jalan yang diterima, dan jika terdapat beberapa barang yang cacat atau terkirim dengan jumlah yang lebih besar dari yang tercantum di surat jalan, barang tersebut akan dikembalikan ke PT Pondok Pujian Sejahtera melalui proses retur pembelian. Retur pembelian dapat juga digunakan untuk pengembalian barang yang tidak laku, cacat, dan tidak pada event-nya.
Toko Pondok Marketing Pondok Gudang
Gambar 3. 3 Flowchart Pembelian
(Pondok.exe) Input Permintaan Pembelian Input Permintaan Pembelian Bukti Pengeluaran Barang Periksa stok vs perminta an Pengam bilan barang Invoice (Surat Jalan) Pengirim an barang Periksa dan terima barang
Barang dalam perjalanan
Staff Pemesanan ACC
fax
Staff Akutansi
Berikut merupakan data flow diagram dari sistem penjualan dan pembelian yang berjalan pada PT Pondok Pujian Sejahtera :
Pelanggan
Rincian_Belanja
Membeli_Barang
Sistem Informasi Penjualan pada
PT Pondok Pujian Sejahtera
Manager Akuntansi &
Keuangan
Laporan_Penjualan
Gambar 3. 5 Data Flow Diagram (Diagram Nol)
3.1..6 Permasalahan yang dihadapi
Setelah dilakukan survey dan pengamatan pada PT Pondok Pujian Sejahtera, masalah yang sedang dihadapi oleh perusahaan antara lain :
1. Pembuatan laporan bulanan yang ditujukan kepada pihak eksekutif memakan waktu hingga tiga hari, sedangkan pihak eksekutif membutuhkan laporan tersebut saat itu juga.
2. Pihak eksekutif belum dapat mengakses secara langsung informasi yang diinginkan. Mereka harus meminta staf untuk menyediakan informasi
yang dibutuhkan terlebih dahulu, sedangkan penyediaan dan pencarian informasi tersebut memakan waktu hingga tiga hari.
3. Pihak eksekutif kesulitan dalam menganalisis informasi yang ada, karena informasi yang disajikan dalam laporan tidak mempunyai sudut pandang yang multidimensi atau tidak fleksibel.
4. Permintaan pihak eksekutif terhadap informasi mengenai laporan penjualan, pembelian, dan retur pembelian tidak dapat disediakan sewaktu-waktu saat laporan tersebut dibutuhkan.
3.1.7 Usulan Pemecahan Masalah
Dari permasalahan yang dihadapi oleh PT Pondok Pujian Sejahtera, maka diusulkan pemecahan masalah berupa data warehouse. Dimana data warehouse tersebut dapat diakses langsung oleh para eksekutif perusahaan dan dapat menghasilkan suatu laporan akurat yang dapat dilihat dari sudut pandang multidimensi sesuai kebutuhan dan proses dihasilkannya laporan tidak memerlukan waktu yang lama.
Dengan penggunaan data warehouse, laporan dapat dibuat sesuai jangka waktu yang dibutuhkan, yaitu dapat dibuat secara tahunan, bulanan, ataupun harian.
3.2 Perancangan
Berdasarkan kutipan dalam Connolly dan Begg (2005, p1187), menurut Kimball 9 tahapan membangun data warehouse, yang dikenal dengan Nine-step Methodology, meliputi :
3.2.1 Memilih Proses (Choosing the process)
Gambar 3. 6 ER Model dari PT Pondok Pujian Sejahtera
Proses dari PT Pondok Pujian Sejahtera yang akan digunakan dalam perancangan data warehouse adalah sebagai berikut :
a. Penjualan
Proses penjualan didefinisikan sebagai proses penjualan langsung dari toko-toko Pondok Pujian ke customer.
Dokumen yang ada meliputi : struk penjualan.
Data yang ada meliputi : toko, member, barang, tipe barang, karyawan, transaksi penjualan.
b. Pembelian
Proses pembelian didefinisikan sebagai proses pembelian barang kepada supplier oleh PT Pondok Pujian Sejahtera.
Dokumen yang ada meliputi : bukti pengeluaran barang, order pembelian.
Data yang ada meliputi : toko, barang, tipe barang, transaksi pembelian, supplier, tipe kerjasama.
Dalam proses pembelian ada proses pengiriman dimana proses pengiriman didefinisikan sebagai proses penyaluran barang yang diterima dari supplier oleh PT Pondok Pujian Sejahtera ke masing – masing toko.
Dokumen yang ada meliputi : surat jalan.
Data yang ada meliputi : toko, barang, tipe barang, supplier. c. Retur Pembelian
Proses retur pembelian didefinisikan sebagai proses di mana toko mengembalikan barang ke PT Pondok Pujian Sejahtera atau jika memungkinkan akan dikembalikan kepada supplier.
Dokumen yang ada meliputi : formulir retur pembelian.
Data yang ada meliputi : toko, barang, tipe barang, karyawan, supplier, transaksi retur pembelian.
3.2.2 Memilih Grain (Choosing the grain)
Grain merupakan data dari calon fakta yang dapat dianalisis. Memilih grain berarti memutuskan apa yang direpresentasikan oleh record dari tabel fakta. Grain dalam perancangan data warehouse ini meliputi :
Analisis pada penjualan meliputi barang dan tipe barang apa yang banyak laku terjual (best seller), omset penjualan toko, perbandingan jenis pembayaran yang digunakan oleh customer. b. Pembelian
Analisis pada pembelian meliputi sejarah pembelian kepada supplier, barang dan jenis barang apa yang banyak dipesan ke supplier.
c. Retur Pembelian
Analisis pada retur pembelian meliputi barang dan jenis barang apa yang banyak diretur, toko mana yang sering melakukan retur.
3.2.3 Identifikasi dan Penyesuaian Dimensi (Identifying and conforming the dimensions)
Berikut ditampilkan hubungan dimensi dengan grain dari fakta dalam bentuk matriks :
a. Penjualan
Tabel 3. 1 Tabel Grain vs Dimensi pada Penjualan
Grain Dimension
Best Seller Omset Penjualan Perbandingan jenis pembayaran Waktu X X X Toko X X Propinsi X X Kota X X Member X Barang X X
Tipe Barang X X Group Barang X X Jenis Pembayaran X Tipe Kerjasama X X b. Pembelian
Tabel 3. 2 Tabel Grain vs Dimensi pada Pembelian
Grain Dimension Sejarah Pembelian Waktu X Propinsi X Kota X Barang X Tipe Barang X Group Barang X Supplier X Tipe Supplier X c. Retur Pembelian
Tabel 3. 3 Tabel Grain vs Dimensi pada Retur Pembelian
Grain Dimension Sejarah Retur Waktu X Toko X Propinsi X Kota X Barang X Tipe Barang X
Group Barang X
Alasan X
Supplier X
Tipe Supplier X
3.2.4 Memilih Fakta (Choosing the Fact)
Penentuan measure dilakukan pada tahap keempat ini. Masing – masing fakta memiliki data yang dapat dihitung, untuk selanjutnya ditampilkan dalam bentuk laporan, grafik atau berbagai macam diagram. a. Penjualan meliputi Qty (kuantitas jual), HargaJual, Diskon. b. Pembelian meliputi Qty (kuantitas beli), HargaAwal. c. Retur pembelian meliputi Qty (kuantitas retur), HargaAwal.
3.2.5 Menyimpan Pre-Calculation pada Tabel Fakta (Storing pre-calculation in the fact-table)
Kalkulasi awal yang dapat dilakukan, untuk selanjutnya disimpan dalam tabel fakta yaitu :
a. Penjualan meliputi :
• Diskon yang merupakan jumlah dari (Diskon dikali HargaJual).
• JumlahJual yang merupakan jumlah dari (Qty (kuantitas jual)).
• TotalJual yang merupakan jumlah dari (Qty (kuantitas jual) dikali HargaJual) dikurangi (Diskon dikali Qty (kuantitas jual) dikali HargaJual).
b. Pembelian meliputi :
• JumlahBeli yang merupakan jumlah dari (Qty (kuantitas beli)).
• TotalBeli yang merupakan jumlah dari (Qty (kuantitas beli) dikali HargaAwal).
c. Retur Pembelian meliputi :
• JumlahReturBeli yang merupakan jumlah dari (Qty (kuantitas retur pembelian)).
• TotalReturBeli yang merupakan jumlah dari (Qty (kuantitas retur pembelian) dikali HargaAwal).
3.2.6 Rounding Out the Dimension Table a. Tabel Rounding Out Dimension
Tabel 3. 4 Tabel Rounding Out Dimension
Dimensi Field Deskripsi Hirarki
Waktu Tahun Bulan Hari
Laporan dapat dilihat secara ad-hoc ( harian ), per bulan, atau per tahun.
Tahun Bulan Hari Toko Toko
JenisKerjasama
Laporan dapat dilihat berdasarkan toko yang diklasifikasikan dalam beberapa jenis kerjasama.
JenisKerjasama Toko
Toko Propinsi
Kota
Laporan dapat dilihat berdasarkan toko, propinsi, dan kota.
Propinsi Kota Toko Barang Barang
GroupBarang
Laporan dapat dilihat berdasarkan dari barang yang dikelompokkan ke dalam group barang.
GroupBarang Barang
Barang TipeBarang
Laporan dapat dilihat berdasarkan dari barang yang dikelompokkan ke dalam tipebarang. TipeBarang Barang Supplier Supplier TipeSupplier
Laporan dapat dilihat berdasarkan supplier dan tipesupplier
TipeSupplier Supplier
b. Daftar tabel – tabel dimensi i. Dimensi Waktu
Tabel 3. 5 Tabel Dimensi Waktu
Atribut Tipe data Panjang
WaktuID int 4
Tahun int 4
Bulan int 4
Hari int 4
ii. Dimensi Toko
Tabel 3. 6 Tabel Dimensi Toko
TokoID int 4 TipeKerjasamaID int 4 KotaID int 4 KodeToko varchar 5 NamaToko varchar 25 ExpiredDate datetime 8
iii. Dimensi Propinsi
Tabel 3. 7 Tabel Dimensi Propinsi
Atribut Tipe data Panjang
PropinsiID int 4
KodePropinsi varchar 5
NamaPropinsi varchar 50
ExpiredDate datetime 8
iv. Dimensi Kota
Tabel 3. 8 Tabel Dimensi Kota
Atribut Tipe data Panjang
KotaID int 4
PropinsiID int 4
KodeKota varchar 5
NamaKota varchar 50
v. Dimensi Barang
Tabel 3. 9 Tabel Dimensi Barang
Atribut Tipe data Panjang
BarangID int 4 GroupBarangID int 4 TipeBarangID int 4 KodeBarang varchar 20 NamaBarang varchar 50 ExpiredDate datetime 8
vi. Dimensi Tipe Barang
Tabel 3. 10 Tabel Dimensi Tipe Barang
Atribut Tipe data Panjang
TipeBarangID int 4
KodeTipeBarang varchar 5
NamaTipeBarang varchar 50
ExpiredDate datetime 8
vii. Dimensi Group Barang
Tabel 3. 11 Tabel Dimensi Group Barang
Atribut Tipe data Panjang
KodeGroupBarang varchar 5 NamaGroupBarang varchar 50
ExpiredDate datetime 8
viii. Dimensi Supplier
Tabel 3. 12 Tabel Dimensi Supplier
Atribut Tipe data Panjang
SupplierID int 4
TipeSupplierID int 4
KodeSupplier varchar 10
NamaSupplier varchar 50
ExpiredDate datetime 8
ix. Dimensi Tipe Supplier
Tabel 3. 13 Tabel Dimensi Tipe Supplier
Atribut Tipe data Panjang
TipeSupplierID int 4
KodeTipeSupplier varchar 5
TipeSupplier varchar 50
ExpiredDate datetime 8
x. Dimensi Jenis Pembayaran
Atribut Tipe data Panjang
JenisPembayaranID int 4
KodeJenisPembayaran varchar 5
NamaJenisPembayaran varchar 20
ExpiredDate datetime 8
xi. Dimensi Tipe Kerjasama
Tabel 3. 15 Tabel Dimensi JenisKerjasama
Atribut Tipe data Panjang
TipeKerjasamaID int 4
KodeTipeKerjasama varchar 5 NamaTipeKerjasama varchar 50
ExpiredDate datetime 8
xii. Dimensi Alasan
Tabel 3. 16 Tabel Dimensi Alasan
Atribut Tipe data Panjang
AlasanID int 4
KodeAlasan varchar 5
Alasan varchar 50
ExpiredDate datetime 8
Tabel 3. 17 Tabel Dimensi Member
Atribut Tipe data Panjang
MemberID int 4
KodeMember varchar 10
NamaMember varchar 50
ExpiredDate datetime 8
c. Perancangan Skema Bintang
Dalam perancangan ini, dihasilkan tiga skema bintang, yaitu: 3. Skema bintang penjualan
4. Skema bintang pembelian 5. Skema bintang retur pembelian
DimTipeKerjasama PK TipeKerjasamaID KodeTipeKerjasama NamaTipeKerjasama ExpiredDate DimToko PK TokoID KodeToko NamaToko FK1 KotaID FK2 TipeKerjasamaID ExpiredDate DimKota PK KotaID KodeKota NamaKota FK1 PropinsiID ExpiredDate DimPropinsi PK PropinsiID KodePropinsi NamaPropinsi ExpiredDate DimTipeBarang PK TipeBarangID KodeTipeBarang NamTipeBarang ExpiredDate DimBarang PK BarangID KodeBarang NamaBarang FK1 GroupBarangID FK2 TipeBarangID ExpiredDate DimGroupBarang PK GroupBarangID KodeGroupBarang NamaGroupBarang ExpiredDate DimTipeSupplier PK TipeSupplierID KodeTipeSupplier TipeSupplier ExpiredDate DimSupplier PK SupplierID KodeSupplier NamaSupplier FK1 TipeSupplierID ExpiredDate DimAlasan PK AlasanID KodeAlasan Alasan ExpiredDate DimWaktu PK WaktuID Tahun Bulan Hari FaktaReturPembelian FK1 WaktuID FK5 TokoID FK4 BarangID FK3 SupplierID FK2 AlasanID JumlahReturBeli TotalReturBeli
3.2.7 Memilih durasi dari basis data (Choosing the duration of the database)
Tabel 3. 18 Tabel Durasi Basis Data
Nama Aplikasi Database Database ada sejak tahun Data yang masuk ke Data Warehouse Data Dalam Data Warehouse Pondok PondokPujian 2002 2002 4 tahun Bulan
Januari – Oktober 2006
10 bulan
3.2.8 Melacak perubahan dari dimensi secara perlahan (Tracking slowly changing dimensions)
Perubahan dimensi dapat ditanggulangi dengan tiga macam cara, yaitu mengganti secara langsung pada tabel dimensi, pembentukan record baru untuk setiap perubahan baru, dan perubahan data yang membentuk kolom baru yang berbeda. Dalam perancangan ini dipilih cara kedua yaitu jika ada perubahan data, maka data baru akan dimasukkan sebagai record baru dan record lama tetap ada dan tidak dihapus. Dalam analisis yang dilakukan, kemungkinan terjadinya perubahan data adalah pada nama – nama yang ada di dalam tabel dimensi. Sebagai contoh, nama propinsi, yang saat ini sudah berganti seperti Daerah Istimewa Aceh menjadi Nangroe Aceh Darrusalam. Nama member, jika ternyata ada kesalahan dalam memasukkan nama member, dan lain sebagainya.
3.2.9 Memutuskan prioritas dan mode dari query (Deciding the query priorities and the query modes)
Dalam tahap ini dibahas mengenai proses Extract, Transformation and Load (ETL), backup yang dilakukan secara berkala dan keamanan atau security penggunaan laporan serta analisis kapasitas media penyimpanan dan pertumbuhan data, termasuk keterangan pelaku dan jangka waktu atau jadwal proses.
a. Proses Extract, Transformation and Load (ETL)
Tabel 3. 19 Tabel Keterangan ETL
Pelaku ETL Dilakukan setiap Keterangan Bagian IT 1 bulan sekali ETL dilakukan oleh
staf IT.
b. Proses Backup
Tabel 3. 20 Tabel Keterangan Backup
Pelaku Backup Dilakukan setiap Keterangan Bagian IT Akhir bulan sebelum
proses ETL dilakukan.
Backup data
warehouse dilakukan untuk menanggulangi proses ETL yang gagal.
c. Penggunaan Laporan atau Kebutuhan Informasi
Tabel 3. 21 Tabel Kebutuhan Informasi
User Informasi
Komisaris Komisaris membutuhkan informasi untuk menentukan segala sesuatu yang berhubungan dengan perusahaan.
Direktur Utama Informasi digunakan untuk pemeriksaan pengambilan keputusan setiap departemen untuk memajukan perusahaan.
Direktur Operasional Informasi penjualan digunakan untuk penentuan jenis produk yang dijual.
Direktur Pemasaran Informasi digunakan untuk menganalisis dan mengambil keputusan kemungkinan dibukanya cabang atau toko baru.
Direktur Pembelian dan Penjualan
Informasi pembelian dan penjualan digunakan untuk pengambilan keputusan dalam proses pembelian dan penjualan.
Direktur Keuangan dan Akuntansi
Informasi digunakan untuk melakukan koordinasi dengan bagian operasional, pembelian dan penjualan. Manager Internal
Audit/Control
Informasi digunakan untuk pemeriksaan bahwa laporan yang dihasilkan sistem akuntansi adalah benar.
d. Analisis Kapasitas Media Penyimpanan
Di dalam pengolahan data, kapasitas media penyimpanan menjadi salah satu aspek yang signifikan dan perlu untuk dipertimbangkan. Proses insert, update dan delete pada aplikasi OLTP akan mempengaruhi pertumbuhan data secara terus menerus. Demikian halnya dalam perancangan data warehouse, perlu juga dilakukan analisis pertumbuhan data untuk mendapatkan perkiraan kapasitas media penyimpanan yang memadai untuk menampung data dalam beberapa tahun ke depan. Rumus yang akan digunakan untuk perhitungan kebutuhan penyimpanan record dalam SQL Server 2000 (SQL Server Books Online) adalah :
a. Num_Row = Jumlah Baris / Jumlah Record b. Num_Col = Jumlah Kolom dalam tabel
c. Fixed_Data_Size = Jumlah bytes yang dibutuhkan oleh semua kolom sesuai dengan tipe datanya masing-masing d. Null Bitmap = Bit status null kolom = 2 + ((Num_Col + 7)
/ 8)
e. Row_Size = Fixed_Data_Size + Null_Bitmap + 4 Nilai 4 merepresentasikan data row header f. Rows_Per_Page = 8096 / (Row_Size+2) g. Num_of_Pages = Num_Row / Rows_Per_Page h. Num_of_Bytes = 8192 × Num_of_Pages
i. Num_of_Kbytes = 8192 / 1024 × Num_of_Pages = 8 × Num_of_Pages
Analisis perkiraan kapasitas media penyimpanan data pada data warehouse PT Pondok Pujian Sejahtera adalah seperti berikut ini, dimana ‘n’ merupakan variabel tahun. Perkiraan ini dibatasi hanya untuk 5 tahun mendatang. Berikut adalah perhitungan pertumbuhan data untuk fakta penjualan, fakta pembelian, dan fakta retur pembelian dengan tingkat pertumbuhan masing-masing adalah 10%.
Rn = R × (n + (1+i)n) R = jumlah record
n = tahun
i = persentase pertumbuhan record per tahun
1. Record Fakta Penjualan
Asumsi jumlah record data untuk tahun ini diperkirakan adalah 335709 record. Jumlah tersebut didasarkan pada asumsi bahwa rata-rata setiap bulan terjadi 14000 transaksi dimana tiap transaksi terdiri atas 2 record sehingga jumlah record untuk satu tahun adalah 14000 x 2 x 12 yaitu 336000 record. Maka dapat dihitung jumlah record sampai pada tahun ke-5 :
R5 = 335709 × (5 + (1+0,1)5)
= 2219208
Maka kisaran media penyimpanan yang dibutuhkan dalam jangka waktu 5 tahun adalah :
• Num_Row = 2219208 • Num_Col = 8 • Fixed_Data_Size = 4 + 4 + 4 + 4 + 4 + 4 + 4 + 17 = 45 bytes • Null Bitmap = 2 + ((8 + 7) / 8) = 4 • Row_Size = 45 + 4 + 4 = 53 bytes • Rows_Per_Page = 8096 / (53 + 2) = 147 rows • Num_of_Pages = 2219208 / 147 = 15097 pages • Num_of_Bytes = 8192 × 15097 = 123674624 bytes • Num_of_Kbytes = 8192 / 1024 × 15097 = 8 × 15097 = 120776 Kbytes
• Num_of_Mbytes (Tabel Size) = 117,945 Mbytes
2. Record Fakta Pembelian
Asumsi jumlah record data untuk tahun ini diperkirakan adalah 86031 record. Jumlah tersebut didasarkan pada asumsi bahwa rata-rata setiap bulan terjadi 480 transaksi dimana tiap transaksi terdiri atas 15 record sehingga jumlah record untuk satu tahun adalah 478 x 15 x 12 yaitu 86040 record. Maka dapat dihitung jumlah record sampai pada tahun ke-5 :
= 568709
Jumlah record FaktaPembelian pada tahun ke-5 = 568709
Maka kisaran media penyimpanan yang dibutuhkan dalam jangka waktu 5 tahun adalah :
• Num_Row = 568709 • Num_Col = 5 • Fixed_Data_Size = 4 + 4 + 4 + 4 + 17 = 33 bytes • Null Bitmap = 2 + ((5 + 7) / 8) = 4 • Row_Size = 33 + 4 + 4 = 41 bytes • Rows_Per_Page = 8096 / (41 + 2) = 188 rows • Num_of_Pages = 568709 / 188 = 3025 pages • Num_of_Bytes = 8192 × 3025 = 24780800 bytes • Num_of_Kbytes = 8192 / 1024 × 3025 = 8 × 3025 = 24200 Kbytes
• Num_of_Mbytes (Tabel Size) = 23,633 Mbytes 3. Record Fakta Retur Pembelian
Asumsi jumlah record data untuk tahun ini diperkirakan adalah 110007 record. Jumlah tersebut didasarkan pada asumsi bahwa rata-rata setiap bulan terjadi 611 transaksi dimana tiap transaksi terdiri atas 15 record sehingga jumlah record untuk satu tahun adalah 611 x 15 x 12 yaitu 109980 record. Maka dapat dihitung jumlah record sampai pada tahun ke-5 :
R5 = 110007 × (5 + (1+0,1)5)
= 727202
Jumlah record FaktaReturPembelian pada tahun ke-5 = 727202 Kisaran media penyimpanan yang dibutuhkan dalam jangka waktu 5 tahun adalah :
• Num_Row = 727202 • Num_Col = 7 • Fixed_Data_Size = 4 + 4 + 4 + 4 + 4 + 4 + 17 = 41 bytes • Null Bitmap = 2 + ((7 + 7) / 8) = 4 • Row_Size = 41 + 4 + 4 = 49 bytes • Rows_Per_Page = 8096 / (49 + 2) = 159 rows • Num_of_Pages = 727202 / 159 = 4574 pages • Num_of_Bytes = 8192 × 4574 = 37470208 bytes • Num_of_Kbytes = 8192 / 1024 × 4574 = 8 × 4574 = 36592 Kbytes
• Num_of_Mbytes (Tabel Size) = 35,734 Mbytes
Berikut adalah perhitungan untuk dimensi yang mengalami pertumbuhan data (kecuali dimensi waktu) :
Rn = R × (1+i)n R = jumlah record
n = tahun
1. Dimensi Waktu
R5 = 1460 + 365 + 365 + 365 + 365 + 365
= 3285
Jumlah record DimWaktu pada tahun ke-5 = 3285
Kisaran media penyimpanan yang dibutuhkan dalam jangka waktu 5 tahun adalah :
• Num_Row = 3285 • Num_Col = 4 • Fixed_Data_Size = 4 + 4 + 4 + 4 = 16 bytes • Null Bitmap = 2 + ((4+ 7) / 8) = 3 • Row_Size = 16 + 4 + 4 = 24 bytes • Rows_Per_Page = 8096 / (24 + 2) = 311 rows • Num_of_Pages = 3285 / 311 = 11 pages • Num_of_Bytes = 8192 × 11 = 90112 bytes • Num_of_Kbytes = 8192 / 1024 × 11 = 8 × 11 = 88 Kbytes 2. Dimensi Toko R5 = 376 × (1+0.03)5 = 436
Jumlah record DimToko pada tahun ke-5 = 436
Kisaran media penyimpanan yang dibutuhkan dalam jangka waktu 5 tahun adalah :
• Num_Row = 436 • Num_Col = 6 • Fixed_Data_Size = 4 + 4 + 4 +5 + 25 +8 = 50 bytes • Null Bitmap = 2 + ((6 + 7) / 8) = 4 • Row_Size = 50 + 4 + 4 = 58 bytes • Rows_Per_Page = 8096 / (58 + 2) = 135 rows • Num_of_Pages = 436 / 135 = 3 pages • Num_of_Bytes = 8192 × 3 = 24576 bytes • Num_of_Kbytes = 8192 / 1024 × 3 = 8 × 3 = 24 Kbytes 3. Dimensi Kota R5 = 82 × (1+0.01)5 = 86
Jumlah record DimKota pada tahun ke-5 = 86
Kisaran media penyimpanan yang dibutuhkan dalam jangka waktu 5 tahun adalah :
• Num_Row = 86 • Num_Col = 5 • Fixed_Data_Size = 4 + 4 + 5 + 50 + 8 = 71 bytes • Null Bitmap = 2 + ((5 + 7) / 8) = 4 • Row_Size = 50 + 4 + 4 = 58 bytes
• Rows_Per_Page = 8096 / (58 + 2) = 135 rows • Num_of_Pages = 86 / 135 = 0,637 pages • Num_of_Bytes = 8192 × 0,637 = 5218,304 bytes • Num_of_Kbytes = 8192 / 1024 × 0,637 = 8 × 0,637 = 5,096 Kbytes 4. Dimensi Barang R5 = 7929 × (1+0.01)5 = 8333
Jumlah record DimBarang pada tahun ke-5 = 8333
Kisaran media penyimpanan yang dibutuhkan dalam jangka waktu 5 tahun adalah :
• Num_Row = 8333 • Num_Col = 6 • Fixed_Data_Size = 4 + 4 + 4 + 20 + 50 + 8 = 90 bytes • Null Bitmap = 2 + ((6 + 7) / 8) = 4 • Row_Size = 90 + 4 + 4 = 98 bytes • Rows_Per_Page = 8096 / (98 + 2) = 81 rows • Num_of_Pages = 8333 / 81 = 103 pages • Num_of_Bytes = 8192 × 103= 843776 bytes • Num_of_Kbytes = 8192 / 1024 × 103= 8 × 103 = 824 Kbytes 5. Dimensi Supplier
R5 = 55 × (1+0.03)5
= 64
Jumlah record DimSupplier pada tahun ke-5 = 64
Kisaran media penyimpanan yang dibutuhkan dalam jangka waktu 5 tahun adalah :
• Num_Row = 64 • Num_Col = 5 • Fixed_Data_Size = 4 + 4 + 10 + 50 + 8 = 76 bytes • Null Bitmap = 2 + ((5 + 7) / 8) = 4 • Row_Size = 76 + 4 + 4 = 84 bytes • Rows_Per_Page = 8096 / (84 + 2) = 94 rows • Num_of_Pages = 64 / 94 = 0,681 pages • Num_of_Bytes = 8192 × 0,681 = 5578,752 bytes • Num_of_Kbytes = 8192 / 1024 × 0,681 = 8 × 0,681 = 5,448 Kbytes 6. Dimensi Member R5 = 58758 × (1+0.01)5 = 61755
Jumlah record DimBarang pada tahun ke-5 = 61755
Kisaran media penyimpanan yang dibutuhkan dalam jangka waktu 5 tahun adalah :
• Num_Col = 4 • Fixed_Data_Size = 4 + 10 + 50 + 8 = 72 bytes • Null Bitmap = 2 + ((4 + 7) / 8) = 3 • Row_Size = 72 + 3 + 4 = 79 bytes • Rows_Per_Page = 8096 / (79 + 2) = 100 rows • Num_of_Pages = 61755 / 100 = 618 pages • Num_of_Bytes = 8192 × 618= 5062656 bytes • Num_of_Kbytes = 8192 / 1024 × 618= 8 × 618 = 4944 Kbytes
Tabel 3. 22 Analisis Kapasitas Media Penyimpanan untuk Tabel Fakta
Nama Tabel Besar Record (Bytes) Jumlah Current Record Jumlah Record Sampai 5 Tahun ke Depan Jumlah Bytes (Mbytes) FaktaPenjualan 53 335709 2219208 117,945 FaktaPembelian 41 86031 568709 23,633 FaktaReturPembelian 49 110007 727202 35,734
Tabel 3. 23 Analisis Kapasitas Media Penyimpanan untuk Tabel Dimensi
Nama Tabel Besar Record (Bytes) Jumlah Current Record Jumlah Record Sampai 5 Tahun ke Depan Jumlah Bytes (Kbytes) DimWaktu 24 1460 3285 88 DimToko 58 376 436 24 DimPropinsi 74 24 24 1,792 DimKota 58 82 86 5,096 DimBarang 98 7929 8333 824 DimTipeBarang 74 12 12 0,896 DimGroupBarang 74 18 18 1,344 DimSupplier 76 55 64 5,448 DimTipeSupplier 74 2 2 0,152 DimJenisPembayaran 34 3 3 0,104 DimTipeKerjasama 74 6 6 0,648 DimAlasan 74 4 4 0,432 DimMember 79 58758 61755 4944
Berdasarkan hasil analisis kapasitas media penyimpanan data, dapat diperkirakan kebutuhan kapasitas penyimpanan data untuk data warehouse PT Pondok Pujian Sejahtera adalah minimal sekitar 183,07 Mbytes untuk jangka waktu lima tahun. Oleh karena itu, diperlukan dukungan perangkat keras yang memenuhi
kapasitas penyimpanan untuk menyimpan data yang diperlukan. e. Analisis Pertumbuhan Data
Analisis perkiraan pertumbuhan data pada data warehouse PT Pondok Pujian Sejahtera adalah sebagai berikut :
Tabel 3. 24 Tabel Analisis Pertumbuhan Data
Nama Tabel Besar Record (Bytes) Jumlah Current Record Jumlah Bytes (Kbytes) Jumlah Tumbuh Record Jumlah Tumbuh (Kbytes) Tumbuh % FaktaPenjualan 53 335709 120776 33571 12077,6 10 FaktaPembelian 41 86031 24200 8603 2420 10 FaktaReturPembelian 49 110007 36592 11001 3659,2 10 DimWaktu 24 1460 88 365 88 100 DimToko 58 376 24 11 0,72 3 DimPropinsi 74 24 1,792 0 0 0 DimKota 58 82 5,096 1 0,05 1 DimBarang 98 7929 824 79 8,24 1 DimTipeBarang 74 12 0,896 0 0 0 DimGroupBarang 74 18 1,344 0 0 0 DimSupplier 76 55 5,448 2 0,163 3 DimTipeSupplier 74 2 0,152 0 0 0 DimJenisPembayaran 34 3 0,104 0 0 0 DimTipeKerjasama 74 6 0,648 0 0 0 DimAlasan 74 4 0,432 0 0 0 DimMember 79 58758 4944 588 49,44 1
f. Pemilihan Indeks
Dalam perancangan data warehouse PT Pondok Pujian Sejahtera, index yang digunakan dalam tabel dimensi adalah clustered index, sedangkan untuk tabel fakta menggunakan nonclustered index.
Tabel 3. 25Tabel Pemilihan Indeks
Tabel Nama Indeks Field Cluster /
Non Cluster DimWaktu Waktu_index WaktuID Cluster DimToko Toko_index TokoID Cluster DimPropinsi Propinsi_index PropinsiID Cluster DimKota Kota_index KotaID Cluster DimBarang Barang_index BarangID Cluster DimTipeBarang TipeBarang_index TipeBarangID Cluster DimGroupBarang GroupBarang_index GroupBarangID Cluster DimSupplier Supplier_index SupplierID Cluster DimTipeSupplier TipeSupplier_index TipeSupplierID Cluster DimJenisPembayaran JenisPembayaran_index JenisPembayaranID Cluster DimTipeKerjasama TipeKerjasama_index TipeKerjasamaID Cluster DimAlasan Alasan_index AlasanID Cluster DimMember Member_index MemberID Cluster FaktaPenjualan Penjualan_index WaktuID,
BarangID,
JenisPembayaranID,
Non Cluster
MemberID, TokoID
FaktaPembelian Pembelian_index WaktuID, BarangID,
SupplierID
Non Cluster
FaktaReturPembelian ReturBeli_index WaktuID, TokoID BarangID, SupplierID, AlasanID Non Cluster
Rumus yang akan digunakan untuk perhitungan ukuran tabel dalam SQL Server 2000 (SQL Server Books Online) adalah:
1. Menghitung kapasitas yang digunakan untuk menyimpan data.
2. Menghitung kapasitas yang digunakan untuk menyimpan clustered index. 3. Menghitung kapasitas yang digunakan untuk menyimpan nonclustered
index.
4. Menghitung nilai-nilai yang telah dihitung di atas.
Menghitung kapasitas yang digunakan untuk menyimpan indeks clustered: a. Definisi dari index clustered dapat berupa fixed length dan variable
length kolom.
Jumlah kolom dalam index key = Num_CKey_Cols
Jumlah variable length kolom dalam index key = Num_Variable_CKey_Cols
Ukuran maksimum dari variable length kolom key = Max_Var_CKey_Size
b. Index Null Bitmap (CIndex_Null_Bitmap) = 2 + (( Num_CKey_Cols + 7) / 8 )
c. Jika terdapat variable length kolom dalam index, maka dihitung berapa kapasitas yang digunakan untuk menyimpan kolom di dalam baris index: Total size of variable length columns (Variable_CKey_Size) = 2 +
(Num_Variable_CKey_Cols x 2) + Max_Var_CKey_Size
Jika tidak terdapat variable length kolom, maka Variable_CKey_Size = 0. d. Menghitung ukuran baris index:
Total index row size (CIndex_Row_Size) = Fixed_CKey_Size + Variable_CKey_Size + CIndex_Null_Bitmap + 1 + 8
e. Menghitung jumlah baris index per page (8096 byte per page):
Number of index rows per page (CIndex_Rows_Per_Page) = ( 8096 ) / (CIndex_Row_Size + 2)
f. Menghitung jumlah pages yang dibutuhkan untuk menyimpan semua baris index pada setiap level dari index.
Number of pages (level 0) (Num_Pages_CLevel_0) = (Data_Space_Used / 8192) / CIndex_Rows_Per_Page
Number of pages (level 1) (Num_Pages_CLevel_1) = Num_Pages_CLevel_0 / CIndex_Rows_Per_Page
Perhitungan terus dilakukan sampai level n (Num_Pages_CLevel_n) sama dengan satu (index root page).
Menghitung jumlah page yang dibutuhkan untuk menyimpan setiap level dari index:
Total number of pages (Num_CIndex_Pages) = Num_Pages_CLevel_0 + Num_Pages_CLevel_1 +
Num_Pages_CLevel_2 + ... + Num_Pages_CLevel_n g. Menghitung ukuran index clustered (8192 byte per page): Clustered index size (bytes) = 8192 x Num_CIndex_Pages
Menghitung kapasitas yang digunakan untuk menyimpan indeks nonclustered: a. Ukuran tergantung pada tipe data dan panjangnya.
Jumlah kolom dalam index key = Num_Key_Cols
Jumlah semua fixed length kolom key (byte) = Fixed_Key_Size Jumlah variable length kolom dalam index key =
Num_Variable_Key_Cols
Ukuran maksimum dari variable length kolom key = Max_Var_Key_Size b. Menghitung null bitmap jika dalam tabel terdapat fixed length kolom :
Index_Null_Bitmap = 2 + (( Num_Key_Cols + 7) / 8 )
c. Menghitung kapasitas jika terdapat variable length kolom dalam tabel : Total size of variable-length columns (Variable_Data_Size) = 2 +
(Num_Variable_Cols x 2) + Max_Var_Size
Jika tidak terdapat variable length kolom, Variable_Data_Size = 0. d. Menghitung ukuran baris :
Index_Row_Size = Fixed_Data_Size + Variable_Data_Size + Null_Bitmap + 4
e. Menghitung jumlah baris per page (8096 byte per page):
Number of rows per page (Index_Rows_Per_Page) = ( 8096 ) / (Index_Row_Size + 2)
f. Jika terdapat clustered index di dalam tabel, maka menghitung free rows per page didasarkan pada Fill Factor. Jika tidak ada clustered index yang dibuat, maka Fill Factor = 100
Number of free rows per page (Free_Rows_Per_Page) = 8096 x ((100 - Fill_Factor) / 100) / (Index_Row_Size + 2)
g. Menghitung jumlah page yang dibutuhkan untuk menyimpan semua baris:
Number of pages (Index_Num_Pages) = Index_Num_Rows / (Rows_Per_Page - Free_Rows_Per_Page)
h. Menghitung kapasitas yang dibutuhkan untuk menyimpan data dalam tabel (8192 byte per page) : Table size (bytes) = 8192 x Num_Pages
Tabel 3. 26 Tabel Penghitungan Indeks Clustered
Nama Tabel Num_
CKey_ Cols Fixed_ CKey_ Size Cindex_ Null_ Bitmap CIndex_ Row_ Size CIndex_ Rows_ Per_ Page Num_ CIndex_ Pages
Clustered index size
(bytes) DimWaktu 4 16 3 38 202 0, 1 819, 2 DimToko 6 40 4 97 82 0, 04 327, 68 DimPropinsi 4 12 3 89 89 0, 003 24, 58 DimKota 5 32 4 112 71 0, 01 81, 92 DimBarang 6 40 4 137 58 2 16384 DimTipeBarang 4 12 3 89 89 0, 001 8, 192 DimGroupBarang 4 12 3 89 89 0, 002 16, 384 DimSupplier 5 32 4 117 68 0, 01 81, 92 DimTipeSupplier 4 12 3 89 89 0, 0002 1, 6384 DimJenisPembayaran 4 12 3 59 133 0, 0001 0, 8192 DimTipeKerjasama 4 12 3 89 89 0, 001 8, 192 DimAlasan 4 12 3 89 89 0, 001 8, 192 DimMember 4 12 3 94 84 7 57344 Jumlah 75106,718
Berikut perhitungan tabel fakta dengan menggunakan nonclustered index : a. Fakta Penjualan 1. Num_Key_Cols = 8 Fixed_Key_Size = 45 Num_Variable_Key_Cols = 0 Max_Var_Key_Size = 0 2. Index_Null_Bitmap = 2 + (( 8 + 7) / 8) = 4 3. Variable_Data_Size = 2 + (0x2) + 0 = 2 4. Index_Row_Size = 45 + 2 + 4 + 4 = 55 5. Index_Rows_Per_Page = 8096 / (55 + 2) = 142 6. Free_Rows_Per_Page = 8096 x ((100-100)/100) / 57 = 0 7. Index_Num_Page = 2219208 / (142 - 0) = 15628
8. Nonclustered index size (bytes) = 8192 x Num_Index_Pages = 8192 x 15628 = 128024576 bytes = 122, 094 MB b. Fakta Pembelian 1. Num_Key_Cols = 5 Fixed_Key_Size = 33 Num_Variable_Key_Cols = 0 Max_Var_Key_Size = 0 2. Index_Null_Bitmap = 2 + (( 5 + 7) / 8) = 4 3. Variable_Data_Size = 2 + (0x2) + 0 = 2 4. Index_Row_Size = 33 + 2 + 4 + 4 = 43
5. Index_Rows_Per_Page = 8096 / (43 + 2) = 180
6. Free_Rows_Per_Page = 8096 x ((100-100)/100) / 45 = 0 7. Index_Num_Page = 568709 / (180 - 0) = 3160
8. Nonclustered index size (bytes) = 8192 x Num_Index_Pages = 8192 x 3160
= 25886720 bytes = 24, 688 MB
c. Fakta Retur Pembelian 1. Num_Key_Cols = 7 Fixed_Key_Size = 41 Num_Variable_Key_Cols = 0 Max_Var_Key_Size = 0 2. Index_Null_Bitmap = 2 + (( 7 + 7) / 8) = 4 3. Variable_Data_Size = 2 + (0x2) + 0 = 2 4. Index_Row_Size = 41 + 2 + 4 + 4 = 51 5. Index_Rows_Per_Page = 8096 / (51 + 2) = 153 6. Free_Rows_Per_Page = 8096 x ((100-100)/100) / 45 = 0 7. Index_Num_Page = 727202 / (153 - 0) = 4753
8. Nonclustered index size (bytes) = 8192 x Num_Index_Pages = 8192 x 4753
Kalkulasi ukuran tabel
Total table size (bytes) = Data_Space_Used + Clustered index size + Nonclustered index size + ...n
Total table size (bytes) = 183, 07 MB + 75106, 718 bytes + 183, 915 MB
= 367, 057 MB
3.2.10 Metadata
Metadata menyangkut tabel pada data warehouse yang mencakup nama database sumber, nama tabel data warehouse itu sendiri beserta deskripsinya. Metadata juga memuat informasi yang mencakup rincian tabel, mengenai nama field, tipe field, ukuran field dan field yang menjadi field kunci. Berikut merupakan metadata dari data warehouse PT Pondok Pujian Sejahtera :
DBMS : SQL Server Nama Database : PondokPujian Nama Tabel : DimWaktu
Deskripsi Tabel : Tabel dimensi waktu
Tabel 3. 27 Tabel Metadata DimWaktu
Sumber Data
Field Tipe Ukuran Keterangan
Field Tipe Ukuran Tabel Transformasi
WaktuID int 4 Surrogate key WaktuID int 4 DimWaktu create saat proses ETL dengan menambah 1 tahun dari hari saat proses ETL dilakukan
Tahun int 4 Tahun int 4 create saat proses ETL dengan
menambah 1 tahun dari hari saat proses ETL dilakukan
Bulan int 4 Bulan int 4 create saat proses ETL dengan
menambah 1 tahun dari hari saat proses ETL dilakukan
Hari int 4 Hari int 4 create saat proses ETL dengan
menambah 1 tahun dari hari saat proses ETL dilakukan
DBMS : SQL Server Nama Database : PondokPujian Nama Tabel : DimToko
Deskripsi Tabel : Tabel dimensi toko
Tabel 3. 28 Tabel Metadata DimToko
Sumber Data
Field Tipe Ukuran Keterangan
Field Tipe Ukuran Tabel
Transfor masi
TokoID int 4 Surrogate key TokoID int 4 DimToko create
KotaID int 4 Foreign key KotaID int 4 DimKota copy
TipeKerjasamaID int 4 Foreign key TipeKerjasamaID int 4 DimTipeKerjasama copy
KodeToko varchar 5 Application key KodeToko varchar 5 MsToko copy
NamaToko varchar 25 NamaToko varchar 25 MsToko copy
DBMS : SQL Server Nama Database : PondokPujian Nama Tabel : DimPropinsi
Deskripsi Tabel : Tabel dimensi propinsi
Tabel 3. 29 Tabel Metadata DimPropinsi
Sumber Data
Field Tipe Ukuran Keterangan
Field Tipe Ukuran Tabel
Transformasi
PropinsiID int 4 Surrogate key Propinsi ID int 4 DimPropinsi create
KodePropinsi varchar 5 Application key KodePropinsi varchar 5 MsPropinsi copy
NamaPropinsi varchar 50 NamaPropinsi varchar 50 MsPropinsi copy
DBMS : SQL Server Nama Database : PondokPujian Nama Tabel : DimKota
Deskripsi Tabel : Tabel dimensi kota
Tabel 3. 30 Tabel Metadata DimKota
Sumber Data
Field Tipe Ukuran Keterangan
Field Tipe Ukuran Tabel
Transformasi
KotaID int 4 Surrogate key KotaID int 4 DimKota create
PropinsiID int 4 Foreign key PropinsiID int 4 DimPropinsi copy
KodeKota varchar 5 Application key KodeKota varchar 5 MsKota copy
NamaKota varchar 50 NamaKota varchar 50 MsKota copy
DBMS : SQL Server Nama Database : PondokPujian Nama Tabel : DimBarang
Deskripsi Tabel : Tabel dimensi barang
Tabel 3. 31 Tabel Metadata DimBarang
Sumber Data
Field Tipe Ukuran Keterangan
Field Tipe Ukuran Tabel
Transformasi
BarangID int 4 Surrogate key BarangID int 4 DimBarang create
TipeBarangID int 4 Foreign key TipeBarangID int 4 DimTipeBarang copy
GroupBarangID int 4 Foreign key GroupBarangID int 4 DimGroupBarang copy
KodeBarang varchar 20 Application key KodeBarang varchar 20 MsBarang copy
NamaBarang varchar 50 NamaBarang varchar 50 MsBarang copy
DBMS : SQL Server Nama Database : PondokPujian Nama Tabel : DimTipeBarang
Deskripsi Tabel : Tabel dimensi tipe barang
Tabel 3. 32 Tabel Metadata DimTipeBarang
Sumber Data
Field Tipe Ukuran Keterangan
Field Tipe Ukuran Tabel Transformasi
TipeBarangID int 4 Surrogate key TipeBarangID int 4 Dim
TipeBarang
create
KodeTipeBarang varchar 5 Application key KodeTipeBarang varchar 5 Ms
TipeBarang
copy
NamaTipeBarang varchar 50 TipeBarang varchar 50 Ms
TipeBarang
copy
ExpiredDate datetime 8 ExpiredDate datetime 8 Dim
TipeBarang
DBMS : SQL Server Nama Database : PondokPujian Nama Tabel : DimGroupBarang
Deskripsi Tabel : Tabel dimensi group barang
Tabel 3. 33 Tabel Metadata DimGroupBarang
Sumber Data
Field Tipe Ukuran Keterangan
Field Tipe Ukuran Tabel Transformasi
GroupBarangID int 4 Surrogate
key
GroupBarangID int 4 Dim
GroupBarang
create
KodeGroupBarang varchar 5 Application key
KodeGroupBarang varchar 5 Ms
GroupBarang
copy
NamaGroupBarang varchar 50 GroupBarang varchar 50 Ms
GroupBarang
copy
ExpiredDate datetime 8 ExpiredDate datetime 8 Dim
GroupBarang
DBMS : SQL Server Nama Database : PondokPujian Nama Tabel : DimSupplier
Deskripsi Tabel : Tabel dimensi supplier
Tabel 3. 34 Tabel Metadata DimSupplier
Sumber Data
Field Tipe Ukuran Keterangan
Field Tipe Ukuran Tabel
Transformasi
SupplierID int 4 Surrogate key SupplierID int 4 DimSupplier create
TipeSupplierID int 4 Foreign key TipeSupplierID int 4 DimTipeSupplier copy KodeSupplier varchar 10 Application key KodeSupplier varchar 10 MsSupplier copy
NamaSupplier varchar 50 NamaSupplier varchar 50 MsSupplier copy
DBMS : SQL Server Nama Database : PondokPujian Nama Tabel : DimTipeSupplier
Deskripsi Tabel : Tabel dimensi tipe supplier
Tabel 3. 35 Tabel Metadata DimTipeSupplier
Sumber Data
Field Tipe Ukuran Keterangan
Field Tipe Ukuran Tabel
Transformasi
TipeSupplierID int 4 Surrogate
key
TipeSupplierID int 4 DimTipeSupplier create
KodeTipeSupplier varchar 5 Application key
KodeTipeSupplier varchar 5 MsTipeSupplier copy
TipeSupplier varchar 50 TipeSupplier varchar 50 MsTipeSupplier copy
DBMS : SQL Server Nama Database : PondokPujian Nama Tabel : DimJenisPembayaran
Deskripsi Tabel : Tabel dimensi jenis pembayaran yang dilakukan pelanggan di toko.
Tabel 3. 36 Tabel Metadata DimJenisPembayaran
Sumber Data
Field Tipe Ukuran Keterangan
Field Tipe Ukuran Tabel Transformasi
Jenis
PembayaranID
int 4 Surrogate key Jenis
PembayaranID int 4 DimJenis Pembayaran create KodeJenis Pembayaran
varchar 5 Application key KodeJenis Pembayaran varchar 5 MsJenis Pembayaran copy NamaJenis Pembayaran
varchar 10 Jenis Pembayaran varchar 10 MsJenis
Pembayaran
copy
ExpiredDate datetime 8 ExpiredDate datetime 8 DimJenis
Pembayaran
DBMS : SQL Server Nama Database : PondokPujian Nama Tabel : DimTipeKerjasama
Deskripsi Tabel : Tabel dimensi tipe kerjasama perusahaan dengan pihak lain.
Tabel 3. 37 Tabel Metadata DimTipeKerjasama
Sumber Data
Field Tipe Ukuran Keterangan
Field Tipe Ukuran Tabel
Transformasi
TipeKerjasamaID int 4 Surrogate key
TipeKerjasamaID int 4 DimTipeKerjasama create
KodeTipeKerjasama varchar 5 Application key
KodeTipeKerjasama varchar 5 MsTipeKerjasama copy
NamaTipeKerjasama varchar 50 TipeKerjasama varchar 50 MsTipeKerjasama copy
DBMS : SQL Server Nama Database : PondokPujian Nama Tabel : DimAlasan
Deskripsi Tabel : Tabel dimensi alasan barang diretur
Tabel 3. 38 Tabel Metadata DimAlasan
Sumber Data
Field Tipe Ukuran Keterangan
Field Tipe Ukuran Tabel
Transformasi
AlasanID int 4 Surrogate key AlasanID int 4 DimAlasan create
KodeAlasan varchar 5 Application key KodeAlasan varchar 5 MsAlasan copy
Alasan varchar 50 Alasan varchar 50 MsAlasan copy
DBMS : SQL Server Nama Database : PondokPujian Nama Tabel : DimMember
Deskripsi Tabel : Tabel dimensi member
Tabel 3. 39 Tabel Metadata DimMember
Sumber Data
Field Tipe Ukuran Keterangan
Field Tipe Ukuran Tabel
Transformasi
MemberID int 4 Surrogate key MemberID int 4 DimMember create
KodeMember varchar 10 Application key KodeMember varchar 10 MsMember copy
NamaMember varchar 50 NamaMember varchar 50 MsMember copy
DBMS : SQL Server Nama Database : PondokPujian Nama Tabel : FaktaPenjualan Deskripsi Tabel : Tabel Fakta Penjualan
Tabel 3. 40 Tabel Metadata FaktaPenjualan
Sumber Data
Field Tipe Ukuran Keterangan
Field Tipe Ukuran Tabel
Transformasi
WaktuID int 4 Foreign key WaktuID int 4 DimWaktu copy WaktuID di mana
DimWaktu.hari = day(TrPenjualanHead.tangg al) dan DimWaktu.bulan = month(TrPenjualanHead.tan ggal) dan DimWaktu.tahun = year(TrPenjualanHead.tangg al)
TokoID int 4 Foreign key TokoID int 4 DimToko copy TokoID di mana
DimToko.KodeToko = TrPenjualanHead.KodeToko dan ExpiredDate null
BarangID int 4 Foreign key BarangID int 4 DimBarang copy BarangID di mana DimBarang.KodeBarang = TrPenjualanDetail.KodeBar ang dan ExpiredDate null
MemberID int 4 Foreign key MemberID int 4 DimMembe
r
copy MemberID di mana DimMember.KodeMember =TrPenjualanHead.Kode Member dan ExpiredDate null
Jenis Pembayara nID
int 4 Foreign key Jenis
Pembayaran ID int 4 DimJenis Pembayaran copy JenisPembayaranID di mana DimJenisPembayaran. KodeJenisPembayaran = TrPenjualanHead.KodeJenis Pembayaran dan ExpiredDate null
Diskon int 4 sum (diskon *
hargajual)
int 4 calculate
JumlahJual int 4 sum(qty) int 4 calculate
TotalJual numeric 17 sum((qty *
hargajual)-(diskon * qty * hargajual))
DBMS : SQL Server Nama Database : PondokPujian Nama Tabel : FaktaPembelian Deskripsi Tabel : Tabel Fakta Pembelian
Tabel 3. 41 Tabel Metadata FaktaPembelian
Sumber Data
Field Tipe Ukuran Keterangan
Field Tipe Ukuran Tabel
Transformasi
WaktuID int 4 Foreign key WaktuID int 4 DimWaktu copy WaktuID di mana
DimWaktu.hari=day(TrPembelianHe ad.tanggal) hari dan DimWaktu.bulan=month(TrPembelia nHead.tanggal) dan DimWaktu.tahun=year(TrPembelian Head.tanggal)
BarangID int 4 Foreign key BarangID int 4 DimBarang copy BarangID di mana DimBarang.KodeBarang =
TrPembelianDetail.KodeBarang dan ExpiredDate null
SupplierID int 4 Foreign key SupplierID int 4 DimSupplier copy SupplierID di mana DimSupplier.KodeSupplier = TrPembelianHead.KodeSuplier dan ExpiredDate null
JumlahBeli int 4 sum(qty) int 4 TrBeliDetail calculate
TotalBeli num eric 17 sum(qty * hargaawal) numer ic 17 TrBeliDetail calculate
DBMS : SQL Server Nama Database : PondokPujian Nama Tabel : FaktaReturPembelian
Deskripsi Tabel : Tabel Fakta Retur Pembelian
Tabel 3. 42 Tabel Metadata FaktaReturPembelian
Sumber Data
Field Tipe Ukuran Keterangan
Field Tipe Ukuran Tabel
Transformasi
WaktuID int 4 Foreign key WaktuID int 4 DimWaktu copy WaktuID di mana
DimWaktu.hari = day(TrReturPembelian Head.tanggal) dan DimWaktu.bulan = month(TrReturPembeli anHead.tanggal) dan DimWaktu.tahun = year(TrReturPembelian Head.tanggal)
TokoID int 4 Foreign key TokoID int 4 DimToko copy TokoID di mana DimToko.KodeToko = TrReturPembelianHead .KodeToko dan
ExpiredDate null
BarangID int 4 Foreign key BarangID int 4 DimBarang copy BarangID di mana
DimBarang.KodeBaran g =
TrReturPembelianDetai l.KodeBarang dan ExpiredDate null
SupplierID int 4 Foreign key SupplierID int 4 DimSupplier copy SupplierID di
mana
DimSupplier.KodeSup plier =
TrReturPembelianHead .Kode Suplier dan ExpiredDate null
AlasanID int 4 Foreign key AlasanID int 4 DimAlasan copy AlasanID di mana
DimAlasan.KodeAlasa n =
TrReturPembelianDetai l.KodeAlasan dan ExpiredDate null
JumlahReturBeli int 4 sum(qty) int 4 calculate
TotalReturBeli numeric 17 sum(qty*
hargaawal)