Lanjutan dari  artikel sebelumnya Data Mining: Algoritma Forecast untuk Meramal Permintaan Pencukur Bulu di Toserba Waljinah (bag. 1)


Data merupakan komponen penting dalam peramalan. Berikut adalah kriteria yang dapat digunakan sebagai patokan agar data layak digunakan dalam peramalan.
  1. Data harus dapat dipercaya dan akurat. Data yang diseleksi berasal dari sumber yang dapat dipercaya dengan memperhatikan keakuratan.
  2. Data harus relevan. Data harus mewakili keadaan.
  3. Data harus konsisten.
  4. Data harus secara berkala.
Pada umumnya, ada dua tipe data yang penting untuk peramal. Pertama adalah data yang dipilih pada titik tunggal suatu waktu, misal satu jam, satu hari, satu minggu, satu bulan, dan sebaginya. Kedua adalah observasi data dari waktu ke waktu.

A. Pengenalan Pola Data Runtun Waktu
Salah satu aspek yang paling penting dalam penyeleksian metode peramalan yang sesuai untuk data runtun waktu adalah untuk mempertimbangkan perbedaan tipe pola data. Ada empat tipe umum : stasioner/konstan, trend, seasonal/musiman, dan seasonal trend/tren musiman, cekidot tangkapan layar aplikasi SAP berikut:

Ketika data observasi berubah-ubah di sekitar tingkatan atau rata-rata yang konstan disebut pola stasioner. Sebagai contoh penjualan produk tiap bulan suatu produk tidak meningkat atau menurun secara konsisten pada suatu waktu dapat dipertimbangkan sebagai pola stasioner.

Ketika data observasi naik atau menurun pada perluasan periode suatu waktu disebut pola trend.
Pola seasonal trend ditandai dengan adanya fluktuasi bergelombang data yang terjadi di sekitar garis trend.

Ketika observasi dipengaruhi oleh faktor musiman disebut pola seasonal yang ditandai dengan adanya pola perubahan yang berulang secara otomatis dari tahun ke tahun. Untuk runtun tiap bulan, ukuran variabel komponen seasonal runtun tiap Januari, tiap Februari, dan seterusnya. Untuk runtun tiap kwartal ada bagian empat musim, satu untuk masing-masing kwartal. Sebagai contoh adalah pola data pembelian buku baru pada tahun ajaran baru.

B. Penyelidikan Pola Data Dengan Analisis Autokorelasi
Observasi pada periode waktu yang berbeda sering berhubungan atau berkorelasi. Ukuran yang digunakan dalam korelasi adalah koefisien autokorelasi. Autokorelasi adalah korelasi antara suatu variabel satu atau lebih periode sebelumnya dengan dirinya sendiri.
Pola data, termasuk komponen seperti tren dan musiman, dapat dipelajari menggunakan autokorelasi. Koefisien autokorelasi dari variabel perbedaan waktu sebelumnya digunakan untuk identifikasi pola data runtun waktu.
Persamaan 3.1 adalah rumus untuk menghitung koefisien autokorelasi (rk) antara
observasi Yt dan Yt-k dengan k periode terpisah.

dimana :
rk = koefisien autokorelasi untuk k dari lag
Y = mean dari data observasi
Yt = observasi pada periode waktu t
Yt-k = observasi k
periode waktu sebelumnya atau periode waktu t-k

Contoh 1
Perkin Kendel adalah seorang analis Outbord Masine Corparation. Dia selalu merasa bahwa penjualannya adalah musiman. Perkin mengumpulkan data ditunjukkan di Tabel 1.1 untuk penjualan dari Outbard Marine cooporation dan beberapa plot itu sebagai grafik ditunjukkan pada Gambar 3-13.

Tabel 1 Data Penjualan untuk Outboard Marine tahun 1984-1996.

Waktu tKwartalData original YtY lagged pada periode pertama Yt-1Y lagged pada periode kedua Yt-2
11 1984147
22 1984251147
33 1984273251147
44 1984249273251
51 1985139249273
62 1985221139249
73 1985260221139
84 1985259260221

Konsep autokorelasi diilustrasikan data Contoh 1 pada Tabel 1. Diketahui bahwa variabel Yt-1 dan Yt-2 adalah mewakili nilai sebenarnya Y pada lag satu dan dua periode sebelumnya.

Tabel 2 Perhitungan koefisien autokorelasi pada lag 1 untuk data pada Tabel 1

Waktu(t) Yt Yt-1 (Yt-Y) (Yt-1-Y) (Yt-Y)2 (Yt-Y)(Yt-1-Y)
1147--136,37-18.595,52-
2251147-32,37-136,371.047,524.413,52
3273251-10,37-32,37107,44335,48
4249273-34,37-10,371.180,98356,21
5139249-144,37-34,3720.841,364.961,17
6221139-62,37-144,373.889,449.003,4
7260221-23,37-62,37545,941.457,19
8259260-24,37-23,37593,67569,31
9140259-143,37-24,3720.553,633.493,15
10245140-38,37-143,371.471,95.500,27
1129824514,63-38,37214,17-561,46
122872983,6314,6313,2153,19
13168287-115,373,6313.309,17-419,31
1432216838,63-115,371.492,63-4.457,1
15393322109,6338,6312.019,754.235,69
16404393120,63109,6314.552,7113.225,73
17259404-24,37120,63593,67-2.939,31
18401259117,63-24,3713.837,9-2.866,21
19464401180,63117,6332.628,8621.248,88
20479464195,63180,6338.272,935.338,38
21264479-19,37195,63375,02-3.788,54
22402264118,63-19,3714.074,17-2.297,4
23411402127,63118,6316.290,615.141,88
24385411101,63127,6310.329,612.972,1
25232385-51,37101,632.638,4-5.220,5
2630923225,63-51,37657,13-1.316,73
2731030926,6325,63709,4682,77
282933109,6326,6392,83256,61
29205293-78,379,636.141,13-755,02
30234205-49,37-78,372.436,943.868,54
312852341,63-49,372,67-80,69
32258285-25,371,63643,4-41,46
33193258-90,37-25,378.165,92.292,15
34263193-20,37-90,37414,751.840,33
352922638,63-20,3774,56-175,85
3631529231,638,631.000,75273,15
37178315-105,3731,6311.101,86-3.333,19
38274178-9,37-105,3787,71986,79
3929527411,63-9,37135,36-108,96
402862952,6311,636,9430,65
41190286-93,372,638.717,1-245,98
42263190-20,37-93,37414,751.901,42
4331826334,63-20,371.199,56-705,35
4430531821,6334,63468,06749,31
45242305-41,3721,631.711,1-894,92
4631824234,63-41,371.199,56-1.432,67
4732931845,6334,632.082,521.580,54
4833832954,6345,632.984,942.493,23
49232338-51,3754,632.638,4-2.806,33
502852321,63-51,372,67-83,96
512912857,631,6358,2912,48
52281291-2,377,635,6-18,06
Total14.735292.624,06114.724,5




Tabel 2 menunjukkan perhitungan untuk menghitung koefisien korelasi lag 1.
Koefisien korelasi lag 1 (r1) atau autokorelasi antara Yt dan Yt-1 dihitung menggunakan total dari Tabel 3-2 dengan persamaan.






 Korelogram atau fungsi autokorelasi adalah grafik autokorelasi untuk lag yang bervariasi pada suatu waktu.
Koefisien autokorelasi pada waktu lag yang berbeda dapat digunakan untuk menjawab pertanyaan berikut tentang runtun waktu.
  1. Apakah data acak?
  2. Apakah data memiliki tren (nonstasioner)?
  3. Apakah data stasioner?
  4. Apakah data musiman?

Jika runtun acak, autokorelasi antara Yt dan Yt-2 untuk semua lag k adalah mendekati nol. Nilai berturut-turut dari runtun waktu tidak terhubung dengan lainnya.
Jika runtun waktu tren, pengamatan berturut-turut korelasinya tinggi, dan koefisien autokorelasi signifikan berbeda dari nol untuk beberapa lag waktu yang pertama dan kemudian berangsur-angsur turun mendekati nol. Koefisien autokorelasi untuk lag waktu 1 seringnya sangat besar (mendekati 1). Koefisien autokorelasi untuk lag 2 juga akan membesar. Namun, itu tidak akan sebesar lag 1.
Jika data memiliki pola musiman, signifikan koefisien autokorelasi akan terjadi pada lag waktu musiman atau perkalian lag musiman. Lag musiman ada 4 untuk seperempat data dan 12 untuk data bulanan.

Apakah data musiman?
Jika sebuah rangkaian data adalah musiman, sebuah pola dari kalender menggambarkan dirinya lebih dari sebuah fakta. Penelitian dalam beberapa posisi untuk membedakan periode musim yang cenderung berhubungan. Jika kuartil data dalam pola semusim di analisa. Kuartil pertama cenderung kelihatan sama, kuartil kedua cenderung kelihatan sama dan ketiga keempat dan sebuah koefisien autokorolasi signifikan akan tampak diwaktu ketinggalan 4. Jika dengan data bulanan dianalisa, koefisien autokorolasi signifikan akan tampak diwaktu dalam 12 bulan. Seperti Januari akan berhubungan dengan Januari yang lainya. Febuary akan berhubungan dengan Februari lainnya begitu juga keempat. Contoh 1 telah dibahas sebuah rangkaian data musiman.

Langkah-langkah untuk menghasilkan grafik diatas yaitu sebagai berikut:
1. Install Java JDK dan atur variable JAVA_HOME dengan mengikuti langkah ditulisan berikut (Cara Install JDK (Java SE Development Kit 8u66) di Windows 10)
2. Install Notepad++ untuk keperluan penyuntingan kode sumber dengan mengikuti langkah ditulisan berikut (Cara Install Notepad++ di Windows 10)
3. Install Apache Tomcat dan atur variable CATALINA_HOME dengan mengikuti langkah ditulisan berikut (Cara Install Apache Tomcat 8.0.29 di Windows 10)
4. Buka direktori C:\apache-tomcat-8.0.29\webapps, hapus semua folder kecuali folder ROOT berikut:


5. Lalu buka folder ROOT, hapus semua berkas dan sisakan folder WEB-INF, serta hapus semua berkas yang berada di dalam folder WEB-INF:

6. Buka program Notepad++, lalu salin listing program berikut, simpan dengan nama Penjualan.java kedalam direktori C:\apache-tomcat-8.0.29\webapps\ROOT\WEB-INF\classes:

@javax.websocket.server.ServerEndpoint("/penjualan")
public class Penjualan {

    @javax.websocket.OnOpen
    public void ketikaTerhubung(javax.websocket.Session koneksi) throws Exception {
  koneksi.getBasicRemote().sendText(
   "[{\"kuantitas\":147}," + "{\"kuantitas\":251}," + "{\"kuantitas\":273},"
   + "{\"kuantitas\":249}," + "{\"kuantitas\":139}," + "{\"kuantitas\":221},"
   + "{\"kuantitas\":260}," + "{\"kuantitas\":259}," + "{\"kuantitas\":140},"
   + "{\"kuantitas\":245}," + "{\"kuantitas\":298}," + "{\"kuantitas\":287},"
   + "{\"kuantitas\":168}," + "{\"kuantitas\":322}," + "{\"kuantitas\":393},"
   + "{\"kuantitas\":404}," + "{\"kuantitas\":259}," + "{\"kuantitas\":401},"
   + "{\"kuantitas\":464}," + "{\"kuantitas\":479}," + "{\"kuantitas\":264},"
   + "{\"kuantitas\":402}," + "{\"kuantitas\":411}," + "{\"kuantitas\":385},"
   + "{\"kuantitas\":232}," + "{\"kuantitas\":309}," + "{\"kuantitas\":310},"
   + "{\"kuantitas\":293}," + "{\"kuantitas\":205}," + "{\"kuantitas\":234},"
   + "{\"kuantitas\":285}," + "{\"kuantitas\":258}," + "{\"kuantitas\":193},"
   + "{\"kuantitas\":263}," + "{\"kuantitas\":292}," + "{\"kuantitas\":315},"
   + "{\"kuantitas\":178}," + "{\"kuantitas\":274}," + "{\"kuantitas\":295},"
   + "{\"kuantitas\":286}," + "{\"kuantitas\":190}," + "{\"kuantitas\":263},"
   + "{\"kuantitas\":318}," + "{\"kuantitas\":305}," + "{\"kuantitas\":242},"
   + "{\"kuantitas\":318}," + "{\"kuantitas\":329}," + "{\"kuantitas\":338},"
   + "{\"kuantitas\":232}," + "{\"kuantitas\":285}," + "{\"kuantitas\":291},"
   + "{\"kuantitas\":281}]"
  );
    }

}

7. salin juga listing html berikut, simpan dengan nama index.html ke dalam direktori C:\apache-tomcat-8.0.29\webapps\ROOT\ :
<!DOCTYPE html>
<html lang="jv" ng-app="penjualan">
 <head>
  <meta charset="utf-8"></meta>
  <title>Pengenalan Pola Data</title>
  <link rel="stylesheet" href="//cdn.rawgit.com/novus/nvd3/v1.8.1/build/nv.d3.css">
 </head>
 <body ng-controller="jualCtrl as jc">
  <nvd3 options="jc.opsibaris" data="jc.databaris" api="jc.apibaris" config="{deepWatchDataDepth: 0}"></nvd3>
  <nvd3 options="jc.opsikorelasi" data="jc.datakorel" api="jc.apikorel" config="{deepWatchDataDepth: 0}"></nvd3>
  <script src="//ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script>
  <script src="//d3js.org/d3.v3.min.js"></script>
  <script src="//cdn.rawgit.com/novus/nvd3/v1.8.1/build/nv.d3.min.js"></script>
  <script src="//cdnjs.cloudflare.com/ajax/libs/angular-nvd3/1.0.4/angular-nvd3.min.js"></script>
  <script language="javascript" type="text/javascript">
   angular.module('penjualan', ['nvd3'])
   .controller('jualCtrl', function(){
    self = this;
    //dokumentasi tersedia di http://krispo.github.io/angular-nvd3/#/quickstart
    self.opsibaris = {
     chart: {
      type: 'lineChart',
      height: 400,
      margin : { top: 5, right: 20, bottom: 40, left: 60 },
      x: function(d){ return d.kwartal; },
      y: function(d){ return d.penjualan; },
      xAxis: { axisLabel: 'kwartal' },
      yAxis: { axisLabel: 'Penjualan', tickFormat: function(d){ return d3.format('.2f')(d); }}
     }
    };
    self.databaris = [{key: 'Penjualan',values:[],color: '#2ca02c'}];    
    self.opsikorelasi = {
     chart: {
      type: 'discreteBarChart',
      height: 400,
      margin : { top: 40, right: 20, bottom: 40, left: 60 },
      x: function(d){ return d.label; },
      y: function(d){ return d.kuantitas; },
      xAxis: { axisLabel: 'Lag ke' },
      yAxis: { axisLabel: 'Autocorrelation', tickFormat: function(d){ return d3.format('.2f')(d); }}
     }
    };
    self.datakorel = [{key: "",values:[]}];
    //dokumentasi tersedia di https://developer.mozilla.org/en-US/docs/Web/API/WebSockets_API
    var koneksi = new WebSocket("ws://127.0.0.1:8080/penjualan");
    koneksi.onmessage = function(kontenDariServer) {
     //menyiapkan data untuk grafik penjualan
     var larikData = JSON.parse(kontenDariServer.data).map(function(nilai, indeks, larik){
       self.databaris[0].values.push({kwartal: indeks+1, penjualan: nilai.kuantitas});
       return nilai.kuantitas;
      }
     );
     //menyiapkan data untuk grafik autocorrelation
     for (i=1; i<larikData.length;i++){
      var sumOfr1 = larikData.map(function(value, indeks, larik){
       var sebelum = larik[indeks-i];
       if(typeof(sebelum) === 'undefined') return 0;
       return (value - larik.jumlah()/larik.length)*(sebelum - larik.jumlah()/larik.length);
      }).jumlah();
      self.datakorel[0].values.push({ label: i , kuantitas: sumOfr1/larikData.variasi() });
     }
     self.apibaris.update();
     self.apikorel.update();
    };
    Array.prototype.jumlah = function() {
     return this.reduce(function(a,b){return a+b;});
    };
    Array.prototype.variasi = function(){
     return this.map(function(value,indeks,larik){
      return Math.pow(value - larik.jumlah()/larik.length,2);
     }).jumlah();
    };
   });
  </script>
 </body>
</html>

8. buka command prompt, lalu masukkan perintah: cd C:\apache-tomcat-8.0.29\webapps\ROOT\WEB-INF\classes, sehingga direktori kerja command prompt telah berganti ke direktori tersebut


9. Lalu jalankan perintah: javac -cp "C:\apache-tomcat-8.0.29\lib\*" Penjualan.java sehingga isi direktori dan sub-direktori dari folder webapps menjadi seperti berikut:


10. Lalu jalankan tomcat dengan berpindah ke direktori ../bin, dan memasukkan perintah startup.bat:

11. Buka browser anda, dan ketikkan alamat web http://127.0.0.1:8080 kedalam address bar berikut:
Adapun alasan pemilihan teknologi, hanya mencoba mengikuti teknologi yang dipilih oleh Korea Advanced Institute of Science and Technology berikut https://github.com/gs1oliot/oliot-epcis/blob/master/pom.xml dengan jurnalnya Oliot EPCIS: New EPC information service and challenges towards the Internet of Things, EPCIS versi open source lainnya yaitu fosstrak, versi komersil proprietary ada SAP Object Event Repository, EPCIS itu sederhananya adalah framework datawarehouse internasional, hanya bisa melakukan capture dan query, capture itu insert, dan query itu select, Kalau ingin ikut diskusi tentang Oliot EPCIS di grup facebook berikut: Oliot, tapi pakai google translate yag :v.

Sebenarnya SAP sendiri sudah komplit paket peramalannya, tapi ya apa harus bergantung terus terhadap bangsa lain?
Lanjutan artikel di Data Mining: Serumit apa forecast metode Holt-Winters ala SAP R/3.
Daftar Pustaka:
  1. F. Gorunescu, Data Mining: Concepts, Models and Techniques. Berlin: Springer, 2011.
  2. J. Han, M. Kamber and J. Pei, Data Mining: Concepts and Techniques. Amsterdam: Elsevier/Morgan Kaufmann, 2012.
  3. jurnalakuntansikeuangan.com, 'Akuntansi Persediaan: Sistim Periodik Vs Perpetual | Jurnal Akuntansi Keuangan', 2015. [Online]. Available: http://datacomlink.blogspot.co.id/2015/12/akuntansi-persediaan-sistim-periodik-vs-perpetual.html. [Accessed: 02- Dec- 2015].
  4. A. Kanda, 'Forecasting', Department of Mechanical Engineering, Indian Institue of Technology Delhi, 2003.
  5. U. Küsters, B. McCullough and M. Bell, 'Forecasting software: Past, present and future', International Journal of Forecasting, vol. 22, no. 3, pp. 599-615, 2006.
  6. B. Mellor, Data Analytics and Optimization Track, 1st ed. Columbus: Department of Integrated Systems Engineering, Ohio State University, 2015.
  7. K. King, Master of Engineering Student Handbook, 1st ed. Ithaca, NY: School of Operations Research and Information Engineering, Cornell University, 2015, pp. 8-10.
  8. U. Muawanah and F. Poernawati, Konsep Dasar Akuntansi dan Pelaporan Keuangan Jilid 2 untuk SMK. Jakarta: Direktorat Pembinaan Sekolah Menengah Kejuruan, Direktorat Jenderal Manajemen Pendidikan Dasar dan Menengah, Departemen Pendidikan Nasional, 2008.
  9. M. North, Data mining for the masses. Global Text Project, 2012.
  10. S. Makridakis, The Forecasting accuracy of major time series methods. Chichester: Wiley, 1984.
  11. C. Renfro, "Econometric software: The first fifty years in perspective", JOURNAL OF ECONOMIC AND SOCIAL MEASUREMENT., vol. 29, pp. 9-108, 2004.
  12. Help.sap.com, 'Forecast Formulas - Sales & Operations Planning (LO-LIS-PLN) - SAP Library', 2015. [Online]. Available: http://help.sap.com/saphelp_470/helpdata/en/a5/6320e843a211d189410000e829fbbd/content.htm. [Accessed: 05- Dec- 2015]. 

Reactions:

You Might Also Like:

Berikan Komentar Sembunyikan Komentar

Hello, how may we help you? Just send us a message now to get assistance.

Facebook Messenger ×