ANALISIS DAN PERANCANGAN SISTEM
3.2 Analisis Sistem
Pengembangan sistem pada penelitian ini dilakukan dalam beberapa tahap. Tahapan pertama adalah mengumpulkan data yang selanjutnya digunakan dalam proses pelatihan, validasi dan pengujian model. Tahap selanjutnya adalah pre-processing yang terdiri dari proses data selection yaitu memilih atribut data yang dibutuhkan, proses data cleaning untuk mengatasi data outlier, dan proses normalization untuk penskalaan data.
Dataset selanjutnya dibagi menjadi data training, data validation, dan data testing.
Model dibangun dan dilatih menggunakan data training, kemudian divalidasi menggunakan data validation untuk melihat performa dari model sebelum diuji menggunakan data testing. Hasil pengujian menggunakan data testing akan menghasilkan output berupa prediksi tingkat inflasi dan visualisasi. Arsitektur umum dapat dilihat pada Gambar 3.1.
Gambar 3.1 Arsitektur Umum
2.2.1 Input
Dataset sebagai data input pada sistem adalah dataset history tingkat inflasi nasional perbulan (year on year) di Indonesia dari tahun 2003 hingga 2021 dalam bentuk file CSV. Dataset dibagi menjadi tiga bagian yaitu data Januari 2003 โ Desember 2018 sebagai data training, data Januari 2019 โ Desember 2019 sebagai data validation dan data Januari 2020 โ Desember 2020 sebagai data testing sebagaimana terlihat pada Tabel 3.1.
Tabel 3.2 Pembagian Dataset
Data Training Data Validation Data Testing Januari 2003 โ melakukan pre-processing terdapat beberapa tahapan, yaitu sebagai berikut:
2.2.2.1 Data Selection
Pemilihan atribut data yang dibutuhkan untuk selanjutnya digunakan dalam proses pelatihan dan pengujian model dilakukan pada bagian ini. Atribut periode dan tingkat inflasi dipilih untuk digunakan pada tahapan selanjutnya.
2.2.2.2 Data Cleaning
Deteksi data outlier (pencilan) dilakukan pada bagian ini. Data outlier akan turut mempengaruhi performa model yang berujung dengan berkurangnya akurasi hasil prediksi. Deteksi outlier dilakukan dengan menggunakan metode Z-score yang diuraikan pada persamaan 3.1.
๐ =
๐ฅโ ยตฯ (3.1)
Dengan ketentuan sebagai berikut :
๐
= Z-score (nilai baku)๐ฅ
= nilai yang diamatiยต
= rata-rata dataฯ
= standar deviasi dataZ-score atau nilai baku adalah ukuran yang menentukan jarak suatu data yang diamati terhadap rata-rata populasi data dalam satuan standar deviasinya. Z-score dapat digunakan untuk menentukan apakah data tergolong outlier atau bukan. Umumnya apabila nilai Z-score kurang dari โ3 atau lebih dari +3 maka data tersebut tergolong data outlier.
Berikut cara kerja metode Z-score dalam melakukan deteksi data outlier.
Misalkan terdapat 12 baris data sebagaimana terlihat pada Tabel 3.3.
Tabel 3.3 Contoh Data dengan Outlier Inflasi
Yang pertama dilakukan adalah menghitung nilai rata dari data. Nilai Dengan ketentuan sebagai berikut :
ฤ = nilai rata-rata (mean) A = data
n = jumlah data
Perhitungan nilai rata-rata diuraikan sebagai berikut :
= 8,81+8,12+7,4+7,42+7,84+8,33+9,06+17,89+18,38+8,17+8,44+9,02 12
= 9,90
Selanjutnya adalah menghitung standar deviasi dari populasi data. Nilai standar deviasi sebagaimana terlihat pada Tabel 3.3 dapat dihitung dengan menggunakan metode standar deviasi tunggal yang diuraikan pada persamaan 3.3.
๐ = โโ๐๐=1(๐ด๐โ ฤ)2
๐โ1 (3.3)
Dengan ketentuan sebagai berikut : ฤ = nilai rata-rata (mean) Ai = data ke-i
n = jumlah data
Perhitungan nilai standar deviasi diuraikan sebagai berikut :
= โ(8,81-9,90)2+ (8,12-9,90)2+ (7,4-9,90)2+ โฏ + (9,02-9,90)2 12-1
= 3,71
Setelah nilai rata-rata dan nilai standar deviasi didapatkan, kemudian dilakukan perhitungan untuk menentukan nilai Z-score dari masing-masing data sebagaimana terlihat pada Tabel 3.1 dengan menggunakan rumus pada persamaan 3.1. Perhitungan untuk menentukan nilai Z-score dilakukan sebagai berikut :
- Nilai Z-score data p1 apakah suatu data termasuk data outlier adalah -2 dan +2 atau -2,5 dan +2,5. Ketika menggunakan nilai Z-score -2 dan +2, maka data p8 dan p9 dengan nilai z-score 2,15 dan 2,29 akan dikenali sebagai data outlier. Nilai Z-score dari data pada Tabel 3.3 sebagaimana terlihat pada Tabel 3.4.
Tabel 3.4 Nilai Z-score Data dengan Outlier
Pada penelitian ini penulis menghapus data yang terdeteksi sebagai data outlier.
Nilai Z-score yang digunakan untuk menentukan data termasuk outlier atau bukan adalah 2,5. Data outlier yang terdeteksi pada dataset yang digunakan pada penelitian ini sebagaimana terlihat pada Tabel 3.5.
Tabel 3.5 Data Outlier pada Dataset periode Inflasi
Setelah proses cleaning selesai data inflasi pada periode Oktober 2005 โ September 2006 tidak akan diikutsertakan dalam proses pre-processing, learning process dan prediction process untuk mencegah penurunan performa dari model prediksi yang akan dibangun.
2.2.2.3 Data Transformation
Pada tahap ini dilakukan normalisasi data untuk mempercepat model dalam proses pembelajaran dengan membuat skala data dalam rentang nilai yang sama. Selanjutnya dilakukan transformasi data menjadi series to supervised learning sebelum masuk ke tahapan learning dan prediction. Adapun tahapan-tahapan tersebut antara lain :
2.2.2.3.1 Normalisasi Data
Data tingkat inflasi memiliki range nilai yang berbeda. Akibatnya proses pembelajaran yang akan dilakukan model menjadi lebih lama dan lebih sulit. Untuk mengatasi masalah itu dilakukan normalisasi data menggunakan metode MinMax Scaler. Skala data setelah melalui tahapan ini akan berada pada range 0 dan 1. Persamaan normalisasi metode MinMax diuraikan pada persamaan 3.4.
๐๐ ๐ = ๐โ ๐๐๐๐
๐๐๐๐ฅโ ๐๐๐๐ ๐ฅ (๐ท โ ๐ถ) + ๐ถ (3.4)
Dengan ketentuan sebagai berikut : ๐๐ ๐ = data setelah dinormalisasi
Berikut cara kerja metode MinMax Scaler dalam melakukan normalisasi data.
Misalkan terdapat 12 baris data sebagaimana terlihat pada Tabel 3.6.
Table 3.6 Data Percobaan Sebelum Normalisasi
Yang pertama dilakukan adalah menentukan nilai minimum dan nilai maksimum dari data. Nilai minimum pada data Tabel 3.5 adalah 7,4 dan nilai maksimum adalah 9,06. Selanjutnya adalah menghitung nilai normalisasi dari masing-masing data dengan menggunakan metode MinMax Scaler yang diuraikan pada persamaan 3.4. Nilai C dan D adalah range dari data setelah dinormalisasi. Pada penelitian ini, nilai data setelah dinormalisasi akan berada di antara 0 hingga 1. Dengan nilai C = 0, dan nilai D = 1. Perhitungan untuk menentukan nilai setelah proses normalisasi dilakukan sebagai berikut :
- Nilai setelah normalisasi data p1 Xsc-p1 = ๐๐1โ ๐๐๐๐
โฆ
โฆ
- Nilai setelah normalisasi data p12
Xsc-p12 = ๐๐12โ ๐๐๐๐
Nilai dari data pada Tabel 3.6 setelah dinormalisasi sebagaimana terlihat pada Tabel 3.7.
Table 3.7 Data Percobaan Setelah Normalisasi Inflasi
Pada dataset yang digunakan di penelitian ini dilakukan hal yang sama seperti proses normalisasi dengan menggunakan MinMax Scaler yang persamaannya diuraikan pada persamaan 3.4. Data sebelum normalisasi sebagaimana terlihat pada Tabel 3.8 dan data sesudah normalisasi sebagaimana terlihat pada Tabel 3.9.
Tabel 3.8 Dataset Inflasi Sebelum Normalisasi
Tabel 3.9 Dataset Inflasi Setelah Normalisasi periode Inflasi
2.2.2.3.2 Series to Supervised
Permasalahan prediksi dengan data time series harus diatur kembali menjadi supervised learning sebelum masuk ke tahapan learning process, dengan menjadikan input dan output ke dalam sebuah sequences (Brownlee, 2018). Metode series to supervised learning digunakan untuk menjadikan nilai sebelumnya (previous time step) menjadi variabel input dan menggunakan nilai berikutnya (next time step) menjadi variabel output. Pada penelitian ini digunakan one-to-one model yang artinya setiap satu input value akan menghasilkan satu output value sebagaimana terlihat pada Tabel 3.8.
Tabel 3.10 Series to Supervised Time
Pada penelitian ini hanya menggunakan 1 variabel, yaitu tingkat inflasi perbulan. Data tingkat inflasi di bulan Januari digunakan sebagai input untuk memprediksi tingkat inflasi di bulan Februari. Data hasil prediksi tingkat inflasi pada bulan Februari dievaluasi dengan data aktual pada bulan tersebut untuk melihat kinerja dari model.
2.2.3 Learning Process
Proses pelatihan dan validasi pada model dilakukan pada tahap ini. Model akan terlebih dahulu dilatih menggunakan data training untuk mempelajari pola data. Selanjutnya model divalidasi menggunakan data validation untuk melihat kinerja model dalam melakukan prediksi apakah terjadi overfitting atau underfitting.
Ketika pada model yang telah dibangun terjadi overfitting atau underfitting maka pada model akan dilakukan hyperparameter tuning seperti mengubah jumlah epoch, neuron, batch size dan learning rate guna mencapai loss terbaik dan model yang valid. Selain dengan hyperparameter tuning, memperbaharui arsitektur model juga dapat dilakukan dengan mengubah jumlah hidden layer atau activation function yang digunakan.
2.2.3.1 GRU Layer
Pada penelitian ini GRU model yang dibangun memiliki 2 hidden layer yang disusun secara bertingkat atau biasa disebut dengan stacked GRU. Pada masing-masing hidden layer terdapat jumlah neuron dan fungsi aktivasi yang sama. Model GRU disusun secara stacked agar model yang dibangun dapat mempelajari pola dari data lebih dalam lagi, sehingga dapat meningkatkan keberhasilan model ketika melakukan prediksi.
Layer terakhir yang digunakan adalah Layer Dense yang menghasilkan output dari proses pelatihan dengan jumlah cell units 1 yaitu output tingkat inflasi nasional pada bulan selanjutnya. Arsitektur model dapat dilihat pada Gambar 3.2.
Penjelasan model stacked GRU pada Gambar 3.2 adalah sebagai berikut :
1. Masing-masing dataset yang telah dibagi menjadi data training, data validation dan data testing selanjutnya dibagi kembali menjadi data input (x) dan data target (y). Data input (x) yang akan diproses pada GRU cell yang semula berbentuk array dua dimensi akan direshape menjadi array tiga dimensi. Sementara data target (y) yang semula berbentuk array dua dimensi tidak diubah. Data input yang akan diolah di GRU layer harus dalam bentuk tiga dimensi yang terdiri dari :
a. Samples, yaitu jumlah sampel data, dengan satu sequence berarti satu sampel.
b. Time steps, yaitu nilai observasi pada sampel data, dengan satu time steps berarti satu observasi pada sampel.
c. Features, yaitu jumlah observasi data pada setiap time steps.
Pada penelitian ini jumlah sampel yang akan dilatih adalah 180 dan divalidasi sebanyak 12, jumlah time step 1 dan features 1 yaitu tingkat inflasi perbulan.
2. Hidden Layer GRU pertama, yang terdiri dari 128 unit hidden neuron dengan fungsi aktivasi tanh. Pada layer GRU, satu input squence tiap time step diproses menghasilkan satu nilai dalam bentuk array dua dimensi. Karena pada layer selanjutnya terdapat layer GRU kedua, di mana input yang digunakan pada layer GRU kedua tersebut adalah output dari layer GRU pertama, maka output yang dihasilkan oleh layer GRU pertama harus direshape kembali menjadi array tiga dimensi. Dengan mengubah nilai parameter return_sequence menjadi True pada layer GRU pertama, output dari layer tersebut akan otomatis direshape menjadi bentuk array tiga dimensi.
3. Hidden Layer GRU kedua, mirip dengan hidden layer GRU pertama yang terdiri dari 128 unit hidden neuron dengan fungsi aktivasi tanh yang akan menerima input dalam bentuk sequence dari hidden layer GRU sebelumnya.
Perbedaannya adalah pada layer ini parameter return_sequence diubah menjadi False, bukan True. Dengan mengubah parameter tersebut, output yang dihasilkan pada layer ini akan berbentuk default yaitu array dua dimensi. Hal ini dilakukan karena pada layer berikutnya adalah Dense layer. Pada Dense layer nilai inputnya tidak berbentuk array tiga dimensi.
4. Dense Layer, merupakan layer yang sepenuhnya terhubung (fully connected) dengan layer GRU kedua yang terdiri dari satu unit hidden neuron.
5. Output, merupakan hasil akhir dari proses pelatihan, validasi dan testing model berupa hasil prediksi tingkat inflasi pada bulan selanjutnya.
2.2.3.2 Hyperparameter Tuning
Dalam menentukan jumlah epoch, penulis menerapkan metode early stopping dengan callback function yang bertujuan untuk menghentikan proses pembelajaran yang dilakukan model ketika suatu kondisi terpenuhi. Kondisi yang ditentukan adalah apabila minimum loss model tidak semakin kecil dalam 20 epoch beruntun terakhir maka proses pembelajaran oleh model akan dihentikan. Hal ini dapat diatur dengan menentukan parameter pada early stopping yaitu monitor dengan nilai min dan patience dengan nilai 20.
2.2.4 Prediction Process
Proses prediksi dilakukan untuk melihat tingkat keberhasilan model yang telah dilatih dan divalidasi menggunakan data training dan data validation. Model GRU yang telah memiliki knowledge base dari proses learning akan melakukan prediksi dengan menggunakan data testing yang telah melalui tahapan pre-processing dan belum pernah
ditemui model sebelumnya. Hasil prediksi akan dievaluasi menggunakan metode Mean Absolute Percentage Error (MAPE).
2.2.5 Output
Output yang dihasilkan setelah dilakukan pengaplikasian sistem adalah skor dan grafik loss model dari proses training, validation dan testing, serta output berupa hasil prediksi tingkat inflasi nasional pada bulan selanjutnya yang digambarkan dalam sebuah grafik dan tabel.