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 [OLAP_JNE].[dbo].[FilterTimeStamp] 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 [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 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 [OLAP_JNE].[dbo].FilterTimeStamp 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 [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 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 Last_ETL [OLAP_JNE].[dbo].[FilterTimeStamp]
L5 NamaTable = 'FaktaBranch') SELECT WaktuID, BranchID, COUNT (CNOTE_BRANCH_ID) AS TotalTransaction, sum(cast(cnote_amount_paymentasfloat)* cast(cnote_curc_rate AS INT)) AS TotalIncome [OLAP_JNE].[dbo].DimensiWaktuDimWaktu, [OLAP_JNE].[dbo].DimensiBranchDimBran, [OLTP_JNE].[dbo].CMS_CNOTE Cnote Cnote.CNOTE_BRANCH_ID = DimBran.BranchCode AND Cnote.CNOTE_DATE = DimWaktu.Tanggal AND Cnote.CNOTE_CRDATE > (SELECT Last_ETL [OLAP_JNE].[dbo].FilterTimeStamp 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
L6 [OLAP_JNE].[dbo].DimensiWaktu DimWaktu, [OLAP_JNE].[dbo].DimensiBranch DimBran, [OLTP_JNE].[dbo].CMS_CNOTE Cnote 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 [OLAP_JNE].[dbo].[FilterTimeStamp] 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 [OLAP_JNE].[dbo].DimensiWaktu DimWaktu, [OLAP_JNE].[dbo].DimensiService DimServ, [OLTP_JNE].[dbo].CMS_CNOTE Cnote Cnote.CNOTE_SERVICES_CODE = DimServ.ServiceCode AND Cnote.CNOTE_DATE = DimWaktu.Tanggal AND Cnote.CNOTE_CRDATE > (SELECT Last_ETL
L7 [OLAP_JNE].[dbo].FilterTimeStamp 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 [OLAP_JNE].[dbo].DimensiWaktu DimWaktu, [OLAP_JNE].[dbo].DimensiService DimServ, [OLTP_JNE].[dbo].CMS_CNOTE Cnote 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 [OLAP_JNE].[dbo].[FilterTimeStamp] NamaTable = 'FaktaReceive') SELECT WaktuID, CourierID, CheckerID, count(cnote_no) AS TotalReceive
L8 [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 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 [OLAP_JNE].[dbo].FilterTimeStamp NamaTable = 'FaktaReceive') GROUP BY WaktuID, CourierID, CheckerID ELSE SELECT WaktuID, CourierID, CheckerID, count(cnote_no) AS TotalReceive [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 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 SELECT [OLAP_JNE].[dbo].[FilterTimeStamp] NamaTable = 'FaktaPickOrder') WaktuID, CourierID, BranchID, PickupOrderID, count(dpickup_no) AS TotalOutstanding, count(mpickup_no) AS TotalPickUp [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 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 [OLAP_JNE].[dbo].FilterTimeStamp NamaTable = 'FaktaPickOrder') GROUP BY WaktuID, CourierID, BranchID,PickupOrderID ELSE SELECT WaktuID, CourierID, BranchID, PickupOrderID, count(dpickup_no) AS TotalOutstanding, count(mpickup_no) AS TotalPickUp [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 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