L1 LAMPIRAN
Lampiran 1 : Wawancara User Requirement 1. Bergerak dibidang apakah PT. Jalur Nugraha Ekakurir (JNE)? JNE bergerak di bidang kurir ekspres dan logistik 2. Berapa lama pengiriman menggunakan PT. Jalur Nugraha Ekakurir (JNE) sampai tempat tujuan? Untuk lamanya pengiriman barang bisa ditentukan dengan service yang dipilih sebagai berikut: a. SS (Super Day Service) barang sampai tujuan pada hari yang sama. b. YES (Yakin Esok Sampai) barang sampai tujuan dalam 1 hari pengriman. c. REG (Reguler/Pengiriman Biasa) barang sampai tujuan dalam 2-3 hari. d. OKE (Ongkos Kirim Ekonomis) barang sampai tujuan dalam 5 hari. 3. Apa visi dan misi yang dimiliki oleh PT. Jalur Nugraha Ekakurir (JNE)? Visi dari PT. Jalur Nugraha Ekakurir (JNE) adalah menjadi perusahaan kelas dunia di bidang jasa logistik dan distribusi yang melayani kebutuhan seluruh lapisan masyarakat dan menjadi tuan rumah di negeri sendiri. Misinya adalah memberi pengalaman terbaik kepada pelanggan secara konsisten 4. Apakah PT. Jalur Nugraha Ekakurir (JNE) telah memiliki divisi IT? Jika iya, masalah apa yang ditangani oleh divisi IT? Kita sudah memiliki divisi IT, masalah yang ditangani sekarang adalah masalah dalam melihat laporan sistem disribusi pengiriman yang ada belum bisa melihat faktor kegagalan dalam sub proses distribusi pengiriman, disamping kegagalan masalah lain seperti tidak akuratnya waktu pengiriman dan kesalahan pengiriman
L2 dari sistem yang berjalan juga belum bisa dianalisa dengan menggunakan sistem yang ada. 5. Apakah sistem data sudah sudah terkomputerisasi? Jika iya, software apa yang digunakan? Sudah terkomputerisasi namun masih ada beberapa bagian yang masih secara manual (excel, pdf, dan lain-lain). Database yang digunakan adalah oracle dengan platform linux 6. Apakah PT. Jalur Nugraha Ekakurir (JNE) telah menerapkan penggunaan BI? Belum. 7. Bagaimana proses bisnis yang ada pada PT. Jalur Nugraha Ekakurir (JNE)? Customer menyerahkan barang kepada customer service atau menelepon customer service, lalu customer service akan menyerahkan resi sebagai bukti penerimaan barang. Setelah itu bagian traffic akan mengatur jadwal untuk melakukan pick up barang customer yang akan dikirim. Pengambilan barang akan diambil oleh bagian courier pick up. Setelah barang diterima maka akan langsung masuk bagian checker untuk segera dimanifest. Setelah barang masuk daftar manifest maka barang akan disortir berdasarkan tujuannya. Setelah itu barang akan langsung dikirim ke tempat tujuan masing-masing. Sesampainya di tujuannya, barang akan langsung dimanifest ulang untuk mencegah adanya kehilangan barang atau barang yang salah tujuan. Setelah proses manifest selesai maka, barang langsung dikirim ke customer penerima sesuai dengan alamat yang tertera pada barang.
L3 Lampiran 2 : Query Fakta 1. Query Fakta Manifest IF EXISTS (SELECT
Last_ETL
FROM
[OLAP_JNE].[dbo].[FilterTimeStamp]
WHERE
NamaTable = 'FaktaManifest')
SELECT distinct WaktuID, BranchID, TypeID, SUM(cast(MFCNOTE_WEIGHT as numeric(10,2))) AS TotalActWeight, SUM(ceiling(cast(MFCNOTE_WEIGHT as FLOAT))) AS TotalCosttocostWeight, count(CNOTE_MANIFEST_NO) as TotalManifest FROM [OLAP_JNE].[dbo].DimensiWaktu DimWaktu, [OLAP_JNE].[dbo].DimensiType DimTyp, [OLAP_JNE].[dbo].DimensiBranch DimBran, [OLTP_JNE].[dbo].CMS_CNOTE Cnote, [OLTP_JNE].[dbo].CMS_MFCNOTE mf WHERE DimTyp.TypeCode=Cnote.CNOTE_MANIFEST_NO and DimBran.BranchCode=Cnote.CNOTE_BRANCH_ID and DimWaktu.Tanggal=mf.MFCNOTE_MAN_DATE AND Cnote.CNOTE_CRDATE > (SELECT
Last_ETL
FROM
[OLAP_JNE].[dbo].FilterTimeStamp
WHERE
NamaTable = 'FaktaManifest')
L4 GROUP BY WaktuID, BranchID,TypeID ELSE
SELECT distinct WaktuID, BranchID, TypeID, SUM(cast(MFCNOTE_WEIGHT as numeric(10,2))) AS TotalActWeight, SUM(ceiling(cast(MFCNOTE_WEIGHT as FLOAT))) AS TotalCosttocostWeight, count(CNOTE_MANIFEST_NO) as TotalManifest FROM [OLAP_JNE].[dbo].DimensiWaktu DimWaktu, [OLAP_JNE].[dbo].DimensiType DimTyp, [OLAP_JNE].[dbo].DimensiBranch DimBran, [OLTP_JNE].[dbo].CMS_CNOTE Cnote, [OLTP_JNE].[dbo].CMS_MFCNOTE mf WHERE DimTyp.TypeCode=Cnote.CNOTE_MANIFEST_NO and DimBran.BranchCode=Cnote.CNOTE_BRANCH_ID and DimWaktu.Tanggal=mf.MFCNOTE_MAN_DATE GROUP BY WaktuID, BranchID,TypeID
2. Query Fakta Branch IF EXISTS ( SELECT FROM
Last_ETL [OLAP_JNE].[dbo].[FilterTimeStamp]
L5 WHERE NamaTable = 'FaktaBranch')
SELECT WaktuID, BranchID, COUNT (CNOTE_BRANCH_ID) AS TotalTransaction, sum(cast(CNOTE_AMOUNT_PAYMENTASFLOAT)* cast(CNOTE_CURC_RATE AS INT)) AS TotalIncome FROM [OLAP_JNE].[dbo].DimensiWaktuDimWaktu, [OLAP_JNE].[dbo].DimensiBranchDimBran, [OLTP_JNE].[dbo].CMS_CNOTE Cnote WHERE Cnote.CNOTE_BRANCH_ID = DimBran.BranchCode AND Cnote.CNOTE_DATE = DimWaktu.Tanggal AND Cnote.CNOTE_CRDATE > (SELECT
Last_ETL
FROM
[OLAP_JNE].[dbo].FilterTimeStamp
WHERE
NamaTable = 'FaktaBranch')
GROUP BY WaktuID, BranchID ELSE
SELECT WaktuID, BranchID, COUNT (CNOTE_BRANCH_ID) AS TotalTransaction, sum (cast (CNOTE_AMOUNT_PAYMENT AS FLOAT)* cast (CNOTE_CURC_RATE AS INT)) AS TotalIncome FROM
L6 [OLAP_JNE].[dbo].DimensiWaktu DimWaktu, [OLAP_JNE].[dbo].DimensiBranch DimBran, [OLTP_JNE].[dbo].CMS_CNOTE Cnote WHERE Cnote.CNOTE_BRANCH_ID = DimBran.BranchCode AND Cnote.CNOTE_DATE = DimWaktu.Tanggal GROUP BY WaktuID, BranchID
3. Query Fakta Service IF EXISTS (SELECT Last_ETL FROM [OLAP_JNE].[dbo].[FilterTimeStamp] WHERE NamaTable = 'FaktaService')
SELECT WaktuID, ServiceID, COUNT (CNOTE_SERVICES_CODE) AS TotalService, sum (cast (CNOTE_AMOUNT_PAYMENT AS FLOAT) * cast (CNOTE_CURC_RATE AS INT)) AS TotalIncome FROM [OLAP_JNE].[dbo].DimensiWaktu DimWaktu, [OLAP_JNE].[dbo].DimensiService DimServ, [OLTP_JNE].[dbo].CMS_CNOTE Cnote WHERE Cnote.CNOTE_SERVICES_CODE = DimServ.ServiceCode AND Cnote.CNOTE_DATE = DimWaktu.Tanggal AND Cnote.CNOTE_CRDATE > (SELECT
Last_ETL
L7 FROM
[OLAP_JNE].[dbo].FilterTimeStamp
WHERE
NamaTable = 'FaktaService')
GROUP BY WaktuID, ServiceID ELSE
SELECT WaktuID, ServiceID, COUNT(CNOTE_SERVICES_CODE) AS TotalService, sum(cast(CNOTE_AMOUNT_PAYMENT AS FLOAT)* cast(CNOTE_CURC_RATE AS INT)) AS TotalIncome FROM [OLAP_JNE].[dbo].DimensiWaktu DimWaktu, [OLAP_JNE].[dbo].DimensiService DimServ, [OLTP_JNE].[dbo].CMS_CNOTE Cnote WHERE Cnote.CNOTE_SERVICES_CODE = DimServ.ServiceCode AND Cnote.CNOTE_DATE = DimWaktu.Tanggal GROUP BY WaktuID, ServiceID
4. Query Fakta Receive IF EXISTS (SELECT Last_ETL FROM [OLAP_JNE].[dbo].[FilterTimeStamp] WHERE NamaTable = 'FaktaReceive')
SELECT WaktuID, CourierID, CheckerID, count(CNOTE_NO) AS TotalReceive
L8 FROM [OLAP_JNE].[dbo].DimensiWaktu DimWaktu, [OLAP_JNE].[dbo].DimensiCourier DimCou, [OLAP_JNE].[dbo].DimensiChecker DimChe, [OLTP_JNE].[dbo].CMS_MRCNOTE mr, [OLTP_JNE].[dbo].CMS_CNOTE Cnote, [OLTP_JNE].[dbo].CMS_DRCNOTE dr WHERE Cnote.CNOTE_NO = dr.DRCNOTE_CNOTE_NO and dr.DRCNOTE_NO = mr.MRCNOTE_NO and mr.MRCNOTE_COURIER_ID = DimCou.CourierCode and mr.MRCNOTE_USER_ID = DimChe.CheckerCode AND Cnote.CNOTE_DATE = DimWaktu.Tanggal AND Cnote.CNOTE_CRDATE >( SELECT
Last_ETL
FROM
[OLAP_JNE].[dbo].FilterTimeStamp
WHERE
NamaTable = 'FaktaReceive')
GROUP BY WaktuID, CourierID, CheckerID ELSE
SELECT WaktuID, CourierID, CheckerID, count(CNOTE_NO) AS TotalReceive FROM [OLAP_JNE].[dbo].DimensiWaktu DimWaktu,
L9 [OLAP_JNE].[dbo].DimensiCourier DimCou, [OLAP_JNE].[dbo].DimensiChecker DimChe, [OLTP_JNE].[dbo].CMS_MRCNOTE mr, [OLTP_JNE].[dbo].CMS_CNOTE Cnote, [OLTP_JNE].[dbo].CMS_DRCNOTE dr WHERE Cnote.CNOTE_NO = dr.DRCNOTE_CNOTE_NO and dr.DRCNOTE_NO = mr.MRCNOTE_NO and mr.MRCNOTE_COURIER_ID = DimCou.CourierCode and mr.MRCNOTE_USER_ID = DimChe.CheckerCode AND Cnote.CNOTE_DATE = DimWaktu.Tanggal GROUP BY WaktuID, CourierID, CheckerID
5. Query Fakta Pick Order IF EXISTS (SELECT Last_ETL FROM
[OLAP_JNE].[dbo].[FilterTimeStamp]
WHERE
NamaTable = 'FaktaPickOrder')
SELECT
WaktuID, CourierID, BranchID, PickupOrderID,
count(DPICKUP_NO) AS TotalOutstanding, count(MPICKUP_NO) AS TotalPickUp FROM [OLAP_JNE].[dbo].DimensiWaktu DimWaktu, [OLAP_JNE].[dbo].DimensiCourier DimCou, [OLAP_JNE].[dbo].DimensiBranch DimBran,
L10 [OLAP_JNE].[dbo].DimensiPickupOrder DimPick, [OLTP_JNE].[dbo].CMS_MPICKUP mp, [OLTP_JNE].[dbo].CMS_DPICKUP DP WHERE mp.MPICKUP_BRANCH = DimBran.BranchCode and mp.MPICKUP_COURIER_ID = DimCou.CourierCode and mp.MPICKUP_NO = DP.DPICKUP_NO and DP.DPICKUP_REFNO = DimPick.PickupOrderCode and mp.MPICKUP_DATE = DimWaktu.Tanggal and mp.MPICKUP_DATE >( SELECT
Last_ETL
FROM
[OLAP_JNE].[dbo].FilterTimeStamp
WHERE
NamaTable = 'FaktaPickOrder')
GROUP BY WaktuID, CourierID, BranchID,PickupOrderID ELSE
SELECT WaktuID, CourierID, BranchID, PickupOrderID, count(DPICKUP_NO) AS TotalOutstanding, count(MPICKUP_NO) AS TotalPickUp FROM [OLAP_JNE].[dbo].DimensiWaktu DimWaktu, [OLAP_JNE].[dbo].DimensiCourier DimCou, [OLAP_JNE].[dbo].DimensiBranch DimBran, [OLAP_JNE].[dbo].DimensiPickupOrder DimPick,
L11 [OLTP_JNE].[dbo].CMS_MPICKUP mp, [OLTP_JNE].[dbo].CMS_DPICKUP DP WHERE mp.MPICKUP_BRANCH = DimBran.BranchCode and mp.MPICKUP_COURIER_ID = DimCou.CourierCode and mp.MPICKUP_NO = DP.DPICKUP_NO and DP.DPICKUP_REFNO = DimPick.PickupOrderCode and mp.MPICKUP_DATE = DimWaktu.Tanggal GROUP BY WaktuID, CourierID, BranchID, PickupOrderID
Lampiran 3 : Implementasi Sistem 1. Dimensi Branch
Gambar 1 Pembuatan Dimensi Branch
L12 2. Dimensi Checker
Gambar 2 Pembuatan Dimensi Checker
3. Dimensi Cnote
Gambar 3 Pembuatan Dimensi Cnote
L13 4. Dimensi Courier
Gambar 4 Pembuatan Dimensi Courier
5. Dimensi Pickuporder
Gambar 5 Pembuatan Dimensi Pickorder
L14 6. Dimensi Service
Gambar 6 Pembuatan Dimensi Service
7. Dimensi Type
Gambar 7 Pembuatan Dimensi Type
L15 8. Dimensi Waktu
Gambar 8 Pembuatan Dimensi Waktu
9. Fakta Branch
Gambar 9 Pembuatan Fakta Branch
L16 10. Fakta Manifest
Gambar 10 Pembuatan Fakta Manifest
11. Fakta PickOrder
Gambar 11 Pembuatan Fakta PickOrder
L17 12. Fakta Receive
Gambar 12 Pembuatan Fakta Receive
13. Fakta Service
Gambar 13 Pembuatan Fakta Service
L18 14. Branch Cube
Gambar 14 Pembuatan Cube Branch
15. Manifest Cube
Gambar 15 Pembuatan Cube Manifest
L19 16. PickOrder Cube
Gambar 16 Pembuatan Cube PickOrder
17. Receive Cube
Gambar 18 Pembuatan Cube Receive
L20 18. Service Cube
Gambar 18 Pembuatan Cube Service
19. Forecast Service
Gambar 19 Pembuatan Forecast Service
L21 20. Forecast Branch
Gambar 20 Pembuatan Forecast Branch