PENYALURAN KREDIT BERDASARKAN PREDIKSI PENJUALAN SEPEDA MOTOR DI DIY DENGAN MENGGUNAKAN
BACKPROPAGATION
Skripsi
Diajukan untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Sains
Program Studi Ilmu Komputer
Oleh:
Anastasia Kristi Astuti NIM : 023124064
PROGRAM STUDI ILMU KOMPUTER JURUSAN MATEMATIKA FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
UNIVERSITAS SANATA DHARMA 2007
PERNYATAAN KEASLIAN KARYA
Saya menyatakan dengan sesungguhnya bahwa skripsi yang saya tulis ini tidak memuat karya atau bagian karya orang lain, kecuali yang telah disebutkan dalam kutipan dan daftar pustaka sebagaimana layaknya karya ilmiah.
Yogyakarta, 14 Maret 2007 Penulis
Seberapapun Besarnya Kesulitan yang Dihadapi,
Tetaplah Kuat dan Berjuang untuk Orang – orang
yang Kita Sayangi.
Mereka Semua Mendoakan Kita untuk Memperoleh
yang Terbaik...
Untuk Itu, Berjuang dan Berusahalah
Untuk Mencapai yang Terbaik,
Agar Kita Dapat Membahagiakan Mereka
dan Diri Kita Sendiri.
- AnKA-
Karya ini kupersembahkan untuk:
JC, Bunda Maria dan Santo Yusuf
Mama dan Papa Tercinta
Mas Toto, Mbak Iin & Mas Doni, Mbak Titi
Dek’ Ranu – Keponakanku tersayang
Daru – Sahabat dan Penyemangatku
ABSTRAK
PENYALURAN KREDIT BERDASARKAN PREDIKSI PENJUALAN SEPEDA MOTOR DI DIY DENGAN MENGGUNAKAN
BACKPROPAGATION
( Studi Kasus : PT. Adira Dinamika Multifinance untuk Honda )
Jaringan Syaraf Tiruan adalah sistem pemroses informasi yang memiliki karakteristik mirip dengan jaringan syaraf biologi. Jaringan Syaraf Tiruan memiliki berbagai macam metode di dalam pembelajarannya, yang dapat diaplikasikan ke dalam berbagai bidang. Salah satu aplikasi yang dapat dibuat dengan menggunakan Jaringan Syaraf Tiruan adalah aplikasi dalam bidang peramalan.
Dalam skripsi ini dibuat program untuk memprediksi jumlah peminat pembelian sepeda motor di DIY secara kredit melalui PT. Adira Dinamika Multifinance dengan menggunakan salah satu metode yang terdapat pada mata kuliah Jaringan Syaraf Tiruan, yaitu metode Backpropagation dan menggunakan software Matlab 6.5.
Dari pengujian – pengujian didapatkan hasil terbaik (rerata error testing terkecil), yaitu : fungsi pelatihan menggunakan algoritma Levenberg-Marquardt (trainlm), pembagian data training dan testing dengan menggunakan tahun ganjil sebagai data training dan tahun genap sebagai data testing, jumlah unit masukan : 12, arsitektur jaringan : 12−4−2−1. Pengujian menggunakan data Dealer ABC Motor di Kotamadya Yogyakarta dengan periode tahun 2001-2005. Dari hasil prediksi yang didapat, maka dapat disimpulkan bahwa prediksi minat pembeli sepeda motor untuk Dealer ABC Motor dengan menggunakan jasa PT. Adira Dinamika Multifinance pada periode tahun 2001 – 2005 mengalami peningkatan di bulan Maret dan November tahun 2006.
ABSTRACT
CREDIT DISTRIBUTION BASED ON SELLING PREDICTION OF MOTORCYCLE IN DIY USING BACKPROPAGATION METHOD
(Case Study: PT. Adira Dinamika Multifinance for Honda)
Artificial Neural Network is an information processing system which has a similar characteristic with biological neural network. Artificial Neural Network has various method of learning, which can be applied to a lot of work field. One of the fields is forecasting.
In these thesis is made for predicting a sum of person who wants to buy motorcycle which use PT. Adira Dinamika Multifinance services. The thesis use one of the methods in Artificial Neural Network subject that is Backpropagation, and using Matlab 6.5 software.
From the research, there are several best result: training function using Levenberg-Marquardt algorithm (trainlm), distribution of odd years as training data and even years as testing data, input unit: 12, network architecture: 12-4-2-1. The research data is taken from ABC Motor Dealer in central DIY at the years of 2001 until 2005. From the prediction result, the conclusion that can be obtained is there is an increasing interest in buying motor cycle at ABC motor dealer using PT. Adira Dinamika Multifinance services in the March and November 2006.
KATA PENGANTAR
Puji Syukur kepada Tuhan Yang Maha Esa atas berkat, rahmat dan karunia-Nya sehingga penulis dapat menyelesaikan skripsi yang berjudul “ Penyaluran Kredit Berdasarkan Prediksi Penjualan Sepeda Motor di DIY dengan Menggunakan Backpropagation ” sebagai salah satu syarat memperoleh gelar Sarjana Sains (S.Si.) di Fakultas MIPA, program studi Ilmu Komputer Universitas Sanata Dharma Yogyakarta.
Selama penelitian sampai pada penyusunan skripsi ini, penulis banyak mendapat bantuan dari berbagai pihak. Pada kesempatan ini, penulis ingin menyampaikan banyak ucapan terima kasih kepada :
1. Tuhan Yesus beserta Bunda Maria dan Santo Yusuf yang selalu setia membantu dan mendampingiku.
2. Ibu P.H. Prima Rosa, S.Si., M.Sc. selaku Kepala Program Studi Ilmu Komputer Sanata Dharma dan Dosen Pembimbing Akademik.
3. Bapak Drs. Jong Jek Siang, M.Sc., selaku Dosen Pembimbing Skripsi. Trima kasih atas segala perhatian dan bimbingannya.
4. Bapak Y. Joko Nugroho, S.Si dan bapak Eko Hari, S.Si, M.Kom selaku Dosen Penguji.
5. Mas Tukijo dan Ibu Linda... Trima kasih atas bantuannya. Kompak selalu ya... 6. Mama dan Papa tercinta, trima kasih atas dukungan, doa dan kasih
7. Kakak-kakakku : mas Toto, mbak Iin, mas Doni dan mbak Titi, yang selalu memberi semangat dan mengingatkan penulis untuk segera menyelesaikan skripsi ini & berkumpul kembali dengan keluarga tercinta di Pondok Gede. 8. Adek Ranu, keponakanku tersayang. Cerita-cerita tentangmu membuat
semangat penulis menjadi bertambah.
9. Sahabatku tersayang disaat suka maupun duka, Daru. Thanks for all... 10. Playgroup SC yang selalu ceria : Daru, Hendi, Tina, Anel dan Mbak Kris. 11. Teman-teman seperjuanganku di IKOM Universitas Sanata Dharma angkatan
2002 dan mas Nunu IKOM’00... Ciayoo...
12. Teman-teman kost Benteng Takeshi : Alam, mbak Icha, Titien, Kristin, mbak Keny, mbak Ria, Veni, Neldi, Aya, Nana, Pipiet, Astu...Ceria kalian sangat menghibur penulis. Kapan kita ke Pasar Klewer naik Pramex???
13. Eyang Warno&Harjo, Rm. Bass, Mbak Eny & Om Mono, trima kasih atas dukungan dan doanya. Risky PBI’00, thanks untuk abstract – nya ya...
14. Gank KC & PKK Girl’s on PL-2 Servatius... Friendship Forever.
Penulis menyadari bahwa masih banyak kekurangan dalam penyusunan skripsi ini. Penulis memohon kritik dan saran yang akan sangat berarti bagi penulis. Penulis memiliki harapan yang sangat besar, semoga skripsi ini dapat bermanfaat bagi pembaca dan perkembangan ilmu pengetahuan.
Yogyakarta, Maret 2007
Penulis,
DAFTAR ISI
HALAMAN JUDUL ... HALAMAN PERSETUJUAN ... HALAMAN PENGESAHAN ... PERNYATAAN KEASLIAN KARYA ... MOTTO ... HALAMAN PERSEMBAHAN ... ABSTRAK ... ABSTRACT ... KATA PENGANTAR ... DAFTAR ISI ... DAFTAR GAMBAR ... DAFTAR TABEL ... BAB I PENDAHULUAN ... A. Latar Belakang Masalah ... B. Rumusan Masalah ... C. Batasan Masalah ... D. Tujuan Penulisan ... E. Manfaat Penulisan ... F. Metodologi Penelitian ... G. Sistematika Penulisan ... BAB II LANDASAN TEORI ... A. Jaringan Syaraf Biologi ... B. Jaringan Syaraf Tiruan ... C. Backpropagation ... 1. Arsitektur Backpropagation ... 2. Fungsi Aktivasi ... 1 1 2 3 3 3 4 4 6 6 7 7 8 9 i ii iii iv v vi vii viii ix xi xv xvii
3. Pre – Processing (Normalisasi Data) ... 4. Konstruksi Jaringan ... 5. Inisialisasi Bobot Awal Secara Random ... 6. Pelatihan ... 7. Kuadrat Rata – rata Kesalahan (MSE) ... 8. Simulasi ... 9. Post – Processing (Denormalisasi Data) ... D. Prediksi ... BAB III PERANCANGAN SISTEM ... A. Perancangan Umum ... B. Perancangan Antar Muka ... 1. Training, Testing dan Prediksi ... 2. Training, Testing dan Prediksi dengan Metode 5 ... 3. Perancangan Form Jumlah Unit Hidden Layer ... 4. Perancangan Form Masukan Data Baru ...
5. Perancangan Form Pengubahan Data ... C. Perancangan Proses ... 1. Proses Pengambilan Data Input dan Target Training ... 2. Proses Normalisasi Data Training (Pre-Processing Data) ... 3. Proses Training ... 4. Proses Pengambilan Data Input dan Target Testing ... 5. Proses Normalisasi Data Testing ... 6. Proses Testing dan Prediksi ... 7. Proses Denormalisasi Data Prediksi (Post-Processing Data) ... BAB IV IMPLEMENTASI DAN PEMBAHASAN... A. Implementasi... 1. Implementasi Sistem ... a. Pembagian Data Input dan Target Training ... b. Proses Normalisasi Data Training (Pre-Processing Data) ...
9 10 10 11 15 16 16 16 18 18 19 19 29 31 30 32 33 34 35 36 36 37 37 37 39 39 39 39 41
c. Proses Training ... d. Proses Pengambilan Data Input dan Target Testing ... e. Proses Normalisasi Data Testing ... f. Proses Testing dan Prediksi ... g. Proses Denormalisasi Data Prediksi (Post-Processing Data) .. 2. Implementasi Antar Muka ... a. Implementasi Antar Muka Training, Testing dan Prediksi... b. Implementasi Antar Muka Training, Testing dan Prediksi
dengan Metode 5 ... c. Implementasi Jumlah Unit 1 dan 2 Hidden Layer ... d. Implementasi Antar Muka Masukan Data Baru ... e. Implementasi Antar Muka Pengubahan Data ... B. Pembahasan... 1. Menentukan Fungsi Pelatihan yang Tercepat ... 2. Menentukan Jumlah Unit Masukan dan Metode Pembagian Data
Training dan Testing... a. Pembagian data training dan testing dengan menggunakan
metode 1 ... b. Pembagian data training dan testing dengan menggunakan
metode 2 ... c. Pembagian data training dan testing dengan menggunakan
metode 3 ... d. Pembagian data training dan testing dengan menggunakan
metode 4 ... e. Pembagian data training dan testing dengan menggunakan
metode 5 ... f. Pembagian data training dan testing dengan menggunakan
metode 6 ... 3. Menentukan Jumlah Unit Lapisan Tersembunyi... a. Pengujian Satu Hidden Layer Terhadap Rerata Error Testing .. b. Pengujian Dua Hidden Layer Terhadap Rerata Error Testing ....
42 43 43 44 44 45 46 47 48 49 50 51 52 55 56 57 59 60 61 62 64 65 66
4. Pengujian Banyak Iterasi Terhadap MSE dan Rerata Error Testing 5. Pengujian Target Error Terhadap Banyak Iterasi... 6. Pengamatan Hasil Prediksi ... BAB V PENUTUP ... A. Kesimpulan ... B. Saran... DAFTAR PUSTAKA ... 68 70 73 74 74 75 76
DAFTAR GAMBAR
Gambar 2.1 Neuron Biologi ... Gambar 2.2 Arsitektur Backpropagation ... Gambar 3.1 Bagan Alir Program Penyaluran Kredit Berdasarkan Prediksi Penjualan Sepeda Motor di DIY dengan
Menggunakan Backpropagation... Gambar 3.2 Perancangan Form Training, Testing dan Prediksi dengan Metode 1 Gambar 3.3 Perancangan Form Training, Testing dan Prediksi dengan Metode 5 Gambar 3.4 Perancangan Form Jumlah Unit 1 Hidden Layer ... Gambar 3.5 Perancangan Form Jumlah Unit 2 Hidden Layer ... Gambar 3.6 Perancangan Form Masukan Data Baru ... Gambar 3.7 Perancangan Form Pengubahan Data ... Gambar 4.1 Hasil Implementasi Training, Testing dan Prediksi dengan Metode 1 Gambar 4.2 Hasil Implementasi Training, Testing dan Prediksi dengan Metode 5 Gambar 4.3 Hasil Implementasi Jumlah Unit 1 Hidden Layer ... Gambar 4.4 Hasil Implementasi Jumlah Unit 2 Hidden Layer ... Gambar 4.5 Hasil Implementasi Masukan Data Baru ... Gambar 4.6 Hasil Implementasi Pengubahan Data ... Gambar 4.7 Urutan Pengujian dan Pengamatan Hasil Prediksi ... Gambar 4.8 Pengujian Fungsi Pelatihan dengan dengan Arsitektur 12 − 10 − 1
Gambar 4.9 Pengujian Fungsi Pelatihan dengan dengan Arsitektur
12 − 3 − 4 − 1 ... Gambar 4.10 Pengujian Unit Masukan dengan Menggunakan Metode 1 ... Gambar 4.11 Pengujian Unit Masukan dengan Menggunakan Metode 2 ... Gambar 4.12 Pengujian Unit Masukan dengan Menggunakan Metode 3 ... Gambar 4.13 Pengujian Unit Masukan dengan Menggunakan Metode 4 ... Gambar 4.14 Pengujian Unit Masukan dengan Menggunakan Metode 5 ... Gambar 4.15 Pengujian Unit Masukan dengan Menggunakan Metode 6 ... Gambar 4.16 Pengujian Unit Masukan dengan Menggunakan Metode 1-6 ... Gambar 4.17 Pengujian Satu Hidden Layer Terhadap Rerata Error Testing...
6 8 18 29 30 31 31 32 33 46 47 48 48 49 50 52 53 55 57 58 60 60 62 63 64 64
Gambar 4.18 Satu Hidden Layer dengan Rerata Error Testing Terkecil ... Gambar 4.19 Pengujian Dua Hidden Layer Terhadap Rerata Error Testing ... Gambar 4.20 Dua Hidden Layer dengan Rerata Error Testing Terkecil ... Gambar 4.21 Pengujian Banyak Iterasi Terhadap MSE ... Gambar 4.22 Pengujian Banyak Iterasi Terhadap Rerata Error Testing ... Gambar 4.23 Pengujian Target Error Terhadap Banyak Iterasi ... Gambar 4.24 Pengujian Target Error Terhadap Banyak Rerata Error Testing ...
66 67 68 69 70 72 72
DAFTAR TABEL
Tabel 3.1 Data Penjualan Sepeda Motor di Dealer ABC Motor ... Tabel 3.2 Data Training dengan Menggunakan Metode 1 ... Tabel 3.3 Data Testing dengan Menggunakan Metode 1 ... Tabel 3.4 Data Training dengan Menggunakan Metode 2 ... Tabel 3.5 Data Testing dengan Menggunakan Metode 2 ... Tabel 3.6 Data Training dengan Menggunakan Metode 3 ... Tabel 3.7 Data Testing dengan Menggunakan Metode 3 ... Tabel 3.8 Data Training dengan Menggunakan Metode 4 ... Tabel 3.9 Data Testing dengan Menggunakan Metode 4 ... Tabel 3.10 Data Training dengan Menggunakan Metode 5 ... Tabel 3.11 Data Testing dengan Menggunakan Metode 5 ... Tabel 3.12 Data Training dengan Menggunakan Metode 6 ... Tabel 3.13 Data Testing dengan Menggunakan Metode 6 ... Tabel 3.14 Data Sebelum dan Sesudah Dilakukan Normalisasi ... Tabel 4.1 Hasil Pengujian Fungsi Pelatihan dengan Arsitektur 12 − 10 − 1 ... Tabel 4.2 Hasil Pengujian Fungsi Pelatihan dengan Arsitektur 12 − 3 − 4 − 1 ... Tabel 4.3 Hasil Pengujian Unit Masukan dengan Menggunakan Metode 1... Tabel 4.4 Hasil Pengujian Unit Masukan dengan Menggunakan Metode 2... Tabel 4.5 Hasil Pengujian Unit Masukan dengan Menggunakan Metode 3... Tabel 4.6 Hasil Pengujian Unit Masukan dengan Menggunakan Metode 4... Tabel 4.7 Hasil Pengujian Unit Masukan dengan Menggunakan Metode 5... Tabel 4.8 Hasil Pengujian Unit Masukan dengan Menggunakan Metode 6... Tabel 4.9 Hasil Pengujian Banyak Iterasi Terhadap MSE dan Rerata Error Testing ... Tabel 4.10 Hasil Pengujian Target Error terhadap Banyak Iterasi dan Rerata Error
Testing ... Tabel 4.11 Hasil Prediksi Data ABC Motor untuk Tahun 2006 ...
22 22 23 23 24 24 25 25 26 26 27 27 28 35 53 54 56 58 59 60 61 63 69 71 73
BAB I PENDAHULUAN
A. Latar Belakang Masalah
Perkiraan jumlah stok barang yang laku terjual seringkali menjadi masalah sebuah perusahaan dalam memperkirakan jumlah penjualan di masa yang akan datang, apakah akan mengalami kenaikan penjualan atau bahkan akan mengalami penurunan penjualan. Permasalahan tersebut ada ketika sebuah perusahaan ingin mengetahui apakah perlu menambah upaya – upaya dalam mempromosikan barang – barang yang dijual, supaya dapat mengalami peningkatan penjualan barang yang ditawarkan oleh perusahaan tersebut. Dengan tidak adanya kepastian besarnya jumlah barang yang laku terjual, maka sebuah perusahaan tidak dapat mengetahui berapa besar biaya yang kira – kira harus dikeluarkan untuk membayar biaya promosi.
Permasalahan di atas dapat diatasi dengan membuat sebuah perangkat lunak yang dapat memprediksi jumlah penjualan barang di bulan atau di masa yang akan datang. Perangkat lunak yang dibuat menggunakan metode Backpropagation dari mata kuliah Jaringan Syaraf Tiruan. Backpropagation melatih jaringan untuk mendapatkan keseimbangan antara kemampuan jaringan untuk mengenali pola yang digunakan selama pelatihan serta kemampuan jaringan untuk memberikan respon yang benar terhadap pola masukan yang serupa ( tapi tidak sama ) dengan pola yang dipakai selama pelatihan. Pola yang dimaksud disini adalah pola kejadian yang ada di masa yang lampau. Dalam penggunaan metode
Backpropagation data – data yang ada terlebih dahulu dilakukan proses pelatihan, setelah itu dilakukan proses pengujian dan kemudian akan didapatkan hasil prediksi jumlah penjualan barang di bulan atau di masa yang akan datang. Data – data yang akan digunakan, diambil dari data – data PT. Adira Dinamika Multifinance Jakarta untuk wilayah Daerah Istimewa Yogyakarta (DIY).
Dengan adanya perangkat lunak yang akan dibuat, dapat memberikan bantuan kepada perusahaan yang bergerak di bidang penyaluran kredit atau dapat juga digunakan untuk perusahaan yang bergerak di bidang penjualan barang, di dalam menentukan langkah – langkah yang harus diambil untuk meningkatkan minat konsumen. Langkah – langkah itu dapat berupa usaha untuk meningkatkan promosi ataupun pemberian diskon terhadap barang – barang yang ada (bagi perusahaan yang bergerak di bidang penjualan barang).
B. Rumusan Masalah
Pokok permasalahan yang akan dibahas dalam skripsi ini dapat ditulis dengan beberapa pertanyaan berikut :
1. Bagaimana proses pelatihan, pengujian dan prediksi dengan metode Backpropagation dilakukan.
2. Bagaimana implementasi metode backpropagation untuk prediksi jumlah penjualan barang di PT. Adira Dinamika Multifinance.
C. Batasan Masalah
Dalam skripsi ini dilakukan beberapa batasan sebagai berikut :
1. Data – data jumlah barang yang digunakan adalah data – data dealer ABC Motor selama lima tahun terakhir (2001 – 2005)
2. Program dikhususkan untuk Dealer yang bergabung pada awal tahun (bulan Januari) selama beberapa periode (1 periode = 12 bulan)
3. Program dibuat dengan menggunakan software Matlab 6.5
4. Dalam pembuatan database digunakan bahasa pemrograman MySQL dan ODBC
D. Tujuan Penulisan
Penulisan skripsi ini bertujuan untuk :
1. Mengamati seberapa besar pengaruh komponen – komponen penyusun Backpropagation (fungsi pelatihan, jumlah hidden layer, banyak iterasi dan target error) di dalam proses training dan testing.
2. Memperkirakan jumlah penjualan barang di masa yang akan datang dengan menggunakan metode Backpropagation pada Jaringan Syaraf Tiruan.
E. Manfaat Penulisan
Manfaat yang diharapkan dalam penulisan skripsi ini adalah :
1. Memberikan sumbangan kepada perusahaan yang bergerak di bidang penjualan barang untuk memprediksikan jumlah penjualan barang di bulan atau di masa yang akan datang.
2. Dapat melihat perkembangan minat penduduk di masing – masing kabupaten untuk wilayah Yogyakarta dalam hal pembelian motor Honda secara kredit melalui PT. Adira Dinamika Multifinance (untuk kedepannya, apakah semakin tinggi minatnya atau bahkan semakin menurun).
F. Metodologi Penelitian
Metodologi yang digunakan dalam pembuatan tugas akhir ini adalah :
1. Studi pustaka tentang penerapan metode Backpropagation di dalam proses pelatihan, proses pengujian dan prediksi (peramalan).
2. Perancangan dan implementasi metode Backpropagation untuk sebuah peramalan (forecasting) dalam suatu program.
3. Jalankan program dengan cara mengisi data – data sebagai input untuk melihat hasil training, hasil testing dan hasil prediksi dengan menggunakan program yang sudah dibuat.
4. Analisis tingkat minat pemakaian kredit untuk sepeda motor di wilayah DIY.
G. Sistematika Penulisan
Sistematika penulisan tugas akhir terdiri dari lima bab dengan urutan sebagai berikut :
BAB I PENDAHULUAN
Menjelaskan uraian mengenai hal-hal yang menjadi dasar dalam pembahasan skripsi ini. Uraian tersebut mengenai latar belakang
masalah, rumusan masalah, batasan masalah, tujuan penulisan, manfaat penulisan, metodologi penulisan dan sistematika penulisan
BAB II LANDASAN TEORI
Memberikan penjelasan secara singkat beberapa dasar pengetahuan yang menjadi dasar dan dibahas bagaimana cara mengolah data-data input dengan melakukan proses pelatihan dan pengujian.
BAB III PERANCANGAN SISTEM
Bab ini berisi tentang rancangan program yang akan digunakan di dalam implementasi.
BAB IV IMPLEMENTASI DAN PEMBAHASAN
Bab ini berisi tentang implementasi dari rancangan sistem yang telah dibuat, serta mengimplementasikan desain ke dalam pemrograman sesungguhnya, serta berisi tentang analisis kerja program yang telah dibuat.
BAB V PENUTUP
Bab ini berisi tentang kesimpulan dari analisis dan saran dari hasil analisis serta pembahasan masalah berdasarkan pada hasil yang didapat secara keseluruhan.
BAB II LANDASAN TEORI
A. Jaringan Syaraf Biologi
Di dalam jaringan syaraf biologi terdapat sebuah bagian, yang sering disebut sebagai neuron. Neuron memiliki 3 komponen penting, yaitu : dendrit, soma dan axon. Dendrit menerima sinyal dari neuron lain. Sinyal tersebut berupa impuls elektrik yang dikirim melalui celah sinaptik melalui proses kimiawi. Sinyal tersebut dimodifikasi (diperkuat / diperlemah) di celah sinaptik. Berikutnya, soma menjumlahkan semua sinyal-sinyal yang masuk. Kalau jumlahan tersebut cukup kuat dan melebihi batas ambang (threshold), maka sinyal trsebut akan diyetruskan ke sel lain melalui axon. Frekuensi penerusan sinyal berbeda-beda antara satu sel dengan yang lain.
B. Jaringan Syaraf Tiruan
Jaringan Syaraf Tiruan (JST) adalah sistem pemroses informasi yang memiliki karakteristik mirip dengan jaringan syaraf biologi. JST dibentuk sebagai generalisasi model matematika dari jaringan syaraf biologi, dengan asumsi : • Pemrosesan informasi terjadi pada banyak elemen sederhana (neuron). • Sinyal dikirimkan diantara neuron-neuron melalui penghubung-penghubung. • Penghubung antar neuron memiliki bobot yang akan memperkuat atau
memperlemah sinyal.
• Untuk menentukan output, setiap neuron menggunakan fungsi aktivasi (biasanya bukan fungsi liner) yang dikenakan pada jumlahan input yang diterima. Besarnya output ini selanjutnya dibandingkan dengan suatu batas ambang.
JST ditentukan oleh 3 hal :
• Pola hubungan antar neuron (disebut arsitektur jaringan)
• Metode untuk menentukan bobot penghubung (disebut metode training /
learning / algoritma)
• Fungsi aktivasi
C. Backpropagation
Backpropagation melatih jaringan untuk mendapatkan kesimbangan antara kemampuan jaringan untuk mengenali pola yang digunakan selama pelatihan serta kemampuan jaringan untuk memeberikan respon yang benar terhadap pola
masukan yang serupa (tapi tidak sama) dengan pola yang dipakai selama pelatihan.
1. Arsitektur Backpropagation
Backpropagation memiliki beberapa unit yang ada dalam satu atau lebih layar tersembunyi. Gambar 2.2 adalah arsitektur backpropagation dengan n buah masukan (ditambah sebuah bias), sebuah layar tersembunyi yang terdiri dari p unit (ditambah sebuah bias), serta m buah unit keluaran.
Gambar 2.2 Arsitektur backpropagation
vji merupakan bobot garis dari unit masukan xi ke unit layar tersembunyi zj (vj0
merupakan bobot garis yang menghubungkan bias di unit masukan ke unit layar tersembunyi zj). wkj merupakan bobot dari unit layar tersembunyi zj ke unit
keluaran yk (wk0 merupakan bobot dari bias di layar tersembunyi ke unit keluaran
2. Fungsi aktivasi
Dalam program yang akan dibuat, menggunakan fungsi aktivasi logsig (sigmoid biner). net e net f − + = 1 1 ) (
Fungsi sigmoid biner memiliki bentuk serupa dengan sigmoid bipolar, hanya rangenya adalah [0,1].
3. Pre – Processing (Normalisasi Data)
Jika ingin menggunakan fungsi aktivasi sigmoid (biner), data harus ditransformasikan dulu karena range keluaran fungsi aktivasi sigmoid adalah [0,1]. Data bisa diransformasikan ke interval [0,1]. Tapi akan lebih baik jika ditransformasikan ke interval yang lebih kecil, misal pada interval [0.1, 0.9]. Ini mengingat fungsi sigmoid merupakan fungsi asimtotik yang nilainya tidak pernah mencapai 0 ataupun 1.
Jika a adalah data minimum dan b adalah data maksimum, transformasi linier yang dipakai untuk mentransformasikan data ke interval [0.1, 0.9] adalah :
x’ = 0.8
(
)
+0.1 − − a b a x4. Konstruksi Jaringan
Arsitektur jaringan yang sering digunakan oleh algoritma backpropagation adalah jaringan feedforward dengan banyak lapisan. Untuk membangun suatu jaringan feedforward digunakan instruksi newff.
Fungsi :
net = newff(PR,[S1 S2 ... SN1],{TF1 TF2 ... TFN1},BTF,BLF,PF)
PR : matriks berukuran Rx2 yang berisi nilai minimum dan maksimum, dengan R adalah jumlah variabel input.
Si : jumlah neuron pada lapisan ke-i, dengan i = 1,2,...,N1
TFi : fungsi aktivasi pada lapisan ke-i, dengan i = 1,2,...,N1; (default:tansig) BTF : fungsi pelatihan jaringan (default:traingdx)
BLF : fungsi pelatihan untuk bobot (default:learngdm) PF : fungsi kinerja(default:mse)
Fungsi aktivasi Tfi harus merupakan fungsi yang dapat dideferensialkan, seperti tansig, logsig atau purelin. Fungsi pelatihan BTF dapat digunakan fungsi – fungsi pelatihan untuk backpropagation, seperti trainlm, trainbfg, trainrp, atau traingd. Fungsi kinerja bisa digunakan fungsi kinerja yang dapat dideferensialkan, seperti mse atau msereg.
5. Inisialisasi Bobot Awal Secara Random
Pemilihan bobot awal sangat mempengaruhi jaringan syaraf dalam mencapai minimum global (atau mungkin hanya lokal saja) terhadap nilai error, serta cepat tidaknya proses pelatihan menuju kekonvergenan. Apabila nilai bobot awal terlalu
besar, maka input ke setiap lapisan tersembunyi atau lapisan output akan jatuh pada daerah dimana turunan fungsi sigmoidnya akan sangat kecil. Sebaliknya, apabila nilai bobot awal terlalu kecil, maka input ke setiap lapisan tersembunyi atau lapisan output akan sangat kecil, yang akan menyebabkan proses pelatihan akan berjalan sangat lambat. Biasanya bobot awal diinisialisasi secara random dengan nilai antara -0.5 sampai 0.5 (atau -1 sampai 1, atau interval yang lainnya).
6. Pelatihan
Metode belajar yang digunakan adalah metode belajar terbimbing (supervised learning). Pelatihan dengan jaringan backpropagation with
delta-bar-delta terdiri dari tiga fase. Fase pertama adalah fase maju. Pola masukan dihitung maju mulai dari layar masukan hingga layar keluaran menggunkan fungsi aktivasi yang ditentukan. Fase kedua adalah fase mundur. Selisih antara keluaran jaringan dengan target yang diinginkan merupakan kesalahan yang terjadi. Kesalahan tersebut dipropagasikan mundur, dimulai dari garis yang berhubungan langsung dengan unit-unit di layar keluaran. Fase ketiga adalah modifikasi bobot untuk menurunkan kesalahan yang terjadi.
• Fase I : Propagasi Maju
Selama propagasi maju, sinyal masukan (= xi) dipropagasikan ke layar
tersembunyi menggunakan fungsi aktivasi yang ditentukan. Keluaran dari setiap unit layar tersembunyi (= zj) tersebut selanjutnya dipropagasikan maju lagi ke
layar tersembunyi di atasnya menggunakan fungsi yang ditentukan. Demikian seterusnya hingga menghasilkan keluaran jaringan (= yk).
Berikutnya, keluaran jaringan (= yk) dibandingkan dengan target yang harus
dicapai (= tk). Selisih tk-yk adalah kesalahan yang terjadi. Jika kesalahan ini lebih
kecil dari batas toleransi yang ditentukan, maka iterasi dihentikan. Akan tetapi apabila kesalahan masih lebih besar dari batas toleransinya, maka bobot setiap garis dalam jaringan akan dimodifikasi untuk mengurangi kesalahan yang terjadi. • Fase II : Propagasi Mundur
Berdasarkan kesalahan tk-yk, dihitung faktor k (k = 1,2,...,m) yang dipakai
untuk mendistribusikan kesalahan di unit yk ke semua unit tersembunyi yang
terhubung langsung dengan yk. k juga dipakai untuk mengubah bobot garis yang
berhubungan langsung dengan unit keluaran.
Dengan cara yang sama, dihitung faktor j di setiap unit di layar tersembunyi
sebagai dasar perubahan bobot semua garis yang berasal dari unit tersembunyi di layar di bawahnya. Demikian seterusnya hingga semua faktor di unit tersembunyi yang berhubungan langsung dengan unit masukan dihitung.
• Fase III : Perubahan Bobot
Setelah semua faktor dihitung, bobot semua garis dimodifikasi bersamaan. Perubahan suatu garis didasarkan atas faktor neuron di layar atasnya. Sebagai contoh, perubahan bobot garis yang menuju ke layar keluaran didasarkan atas k
yang ada di unit keluaran.
Ketiga fase tersebut diulang-ulang terus hingga kondisi penghentian dipenuhi. Umumnya kondisi penghentian yang sering dipakai adalah jumlah iterasi atau kesalahan. Iterasi akan dihentikan jika jumlah iterasi yang dilakukan sudah
melebihi jumlah maksimum iterasi yang ditetapkan, atau jika kesalahan yang terjadi sudah lebih kecil dari batas toleransi yang diijinkan.
Algoritma pelatihan untuk jaringan dengan satu layar tersembunyi (dengan fungsi aktivasi sigmoid biner) adalah sebagai berikut :
Langkah 0 : Inisialisasi semua bobot dengan bilangan acak kecil.
Langkah 1 : Jika kondisi penghentian belum terpenuhi, lakukan langkah 2-9 Langkah 2 : Untuk setiap pasang data pelatihan, lakukan langkah 3-8
Fase I : Propagasi maju
Langkah 3 : Tiap unit masukan menerima sinyal dan meneruskannya ke unit
tersembunyi di atasnya.
Langkah 4 : Hitung semua keluaran di unit tersembunyi zj ( j = 1,2,...,p )
z_netj = = + n i i j j j zv v 1 0 zj = f(z_netj) = 1+e−z+netj 1
Langkah 5 : Hitung semua keluaran jaringan di unit yk (k = 1,2,...,m) y_netk = = + p j kj j k zw w 1 0 yk = f(y_netk) = 1+e−y+netk 1
Fase II : Propagasi mundur
Langkah 6 : Hitung faktor unit keluaran berdasarkan kesalahan di setiap
unit keluaran yk(k = 1,2,...,m)
k merupakan unit kesalahan yang akan dipakai dalam perubahan bobot layar
di bawahnya (langkah 7).
Hitung suku perubahan bobot wkj (yang akan dipakai nanti untuk merubah
bobot wkj ) dengan laju percepatan .
wkj = k zj ; k = 1,2,...,m ; j = 0,1,...,p
Langkah 7 : Hitung faktor unit tersembunyi berdasarkan kesalahan di setiap
unit tersembunyi zj (j = 1,2,...,p) _netj = = m k kj kw 1 δ
Faktor unit tersembunyi :
j =
δ
_netjf'(
z_netj)
=δ
_netjzj(
1−zj)
Hitung suku perubahan bobot vji (yang akan dipakai nanti untuk merubah
bobot vji).
vji = j xi ; j = 1,2,...,p ; i = 0,1,...,n
Fase III : Perubahan bobot
Langkah 8 : Hitung semua perubahan bobot
Perubahan bobot garis yang menuju ke unit keluaran :
kj kj
kj baru w lama w
w ( )= ( )+∆ (k = 1,2,...,m ; j = 0,1,...,p) Perubahan bobot garis yang menuju ke unit tersembunyi :
ji ji
ji baru v lama v
v( )= ( )+∆ (j = 1,2,...,p ; i = 0,1,...,n)
Setelah pelatihan selesai dilakukan, jaringan dapat dipakai untuk pengenalan pola. Dalam hal ini, hanya propagasi maju ( langkah 4 dan 5 ) saja yang dipakai untuk menentukan keluaran jaringan.
Apabila fungsi aktivasi yang dipakai bukan sigmoid biner, maka langkah 4 dan 5 harus disesuaikan. Demikian juga turunannya pada langkah 6 dan7.
Dalam matlab pembelajaran dilakukan dengan menggunakan fungsi train. Misal : net = train(net,pn,tn)
pn = vektor input ; tn = vektor target ; net = jaringan yang sudah dikonstruksi
7. Kuadrat Rata – rata Kesalahan (MSE)
MSE merupakan singkatan dari Mean Squared Error. Fungsi mse dalam Matlab adalah fungsi kinerja yang dihasilkan jaringan. Fungsi mse mengukur kinerja jaringan sesuai kuadrat rata – rata kesalahan (Mean Squared Error). MSE dipakai untuk mengukur kinerja jaringan supervised learning, yang memiliki pasangan input jaringan dan target,
{p1,t1},{p2,t2},...,{pQ,tQ}
Dimana pQ adalah sebuah input jaringan , tQ targetnya dan Q adalah cacah
seluruh input. Dalam pembelajaran jaringan, setiap input akan menghasilkan output yang dibandingkan dengan target. Error dihitung sebagai selisih antara target dan output.
SSE = Σ(Output yang diharapkan – Output jaringan)2 MSE =
enOutput JumlahElem
SSE
Yang paling sering digunakan adalah MSE, fungsi ini akan mengambil rata – rata kuadrat error yang terjadi antara output jaringan dan target.
8. Simulasi
Dalam matlab simulasi dilakukan dengan menggunakan fungsi sim.
Misal : a = sim(net,pn) ;pn = vektor input ; net = jaringan yang sudah dikonstruksi
9. Post – Processing (Denormalisasi Data)
Post-processing data mencakup beberapa proses yang diterapkan pada output Neural Network. Seperti halnya pre-processing, post-processing sepenuhnya bergantung pada simulasi jaringan dan termasuk mendeteksi kapan parameter melampaui jangkauan yang dapat diterima. Pada saat melakukan post-processing data terhadap hasil output sistem dilakukan proses perubahan data sehingga data output dapat dibaca oleh user, ini disebut sebagai proses denormalisasi. Terkadang post-processing hanya merupakan kebalikan dari pre-processing. Rumus yang digunakan pada post-processing yaitu :
Nilai baru =
(
outputJST) (
Value Value)
minValue8 . 0 min max 1 . 0 × − + −
Dengan nilai baru adalah nilai yang telah didenormalisasi, output JST adalah output yang dihasilkan berdasarkan proses prediksi, minValue adalah nilai minimum data dan maxValue adalah nilai maksimum data.
D. Prediksi
Prediksi merupakan salah satu kegiatan matematis terlampau dalam bisnis, dan telah dilakukan bertahun – tahun sebelum penguasaan komputer dengan menggunakan kalkulator meja. Dengan adanya penggunaan komputer, maka para
pemrediksi (prediktor) dapat membuat perhitungan secara lebih cepat, akurat dan mudah (Wibowo,2003).
Fakta – fakta dasar yang ada dalam proses prediksi yang dilakukan pemrediksi adalah sebagai berikut :
• Prediksi adalah proyeksi dari masa lalu, sehingga dasar untuk memperkirakan apa yang akan terjadi pada masa yang akan datang adalah dengan melihat masa lampau. Hal ini merupakan alasan mengapa data sangat penting dalam menentukan prediksi, dan data ini akan memberikan data hipotesis.
• Seluruh prediksi terdiri dari keputusan semi terstruktur, keputusan tersebut didasarkan oleh beberapa variabel yang dapat diukur dengan mudah dan variabel – variabel yang tidak dapat diukur.
• Tidak ada teknik prediksi atau peramalan yang sempurna. Dalam proses prediksi tidak diharapkan untuk memprediksi masa depan dengan tingkat akurasi 100 %.
• Peramalan tidak dapat dilakukan untuk jangka panjang, karena terbukti kurang akurat dan kerapkali meleset jauh dari yang diharapkan. Dapat saja peramalan yang telah dilakukan dapat menjadi tidak berguna. Sehingga, peramalan jangka panjang tidak dapat meramalkan dengan baik perkembangan dan situasi di masa mendatang yang penuh dengan ketidakpastian.
BAB III
PERANCANGAN SISTEM
A. Perancangan Umum
Bagan alir (flowchart) Program “Penyaluran Kredit Berdasarkan Prediksi Penjualan Sepeda Motor di DIY dengan menggunakan Backpropagation” dapat dilihat pada gambar 3.1.
Gambar 3.1 Bagan Alir Program Penyaluran Kredit Berdasarkan Prediksi
B. Perancangan Antar Muka
Perancangan antar muka untuk program “ Penyaluran Kredit Sepeda Motor di DIY dengan Menggunakan Backpropagation” ini antara lain berisi perancangan antar muka ‘training, testing dan prediksi’, perancangan antar muka jumlah unit hidden layer, perancangan antar muka masukan data baru dan perancangan antar muka pengubahan data.
1. Training, Testing dan Prediksi
Di dalam pembagian data training dan data testing digunakan 5 (lima) metode, yaitu :
• Metode 1
- Data training = sisa seluruh data yang tidak digunakan oleh data testing, pengambilan data training dimulai dari tahun awal.
- Data testing = jumlah unit masukan + 6, pengambilan data testing dihitung dari data terakhir pada tahun terakhir.
- Terdapat perbedaan pembagian data training dan data testing untuk jumlah unit masukan yang berbeda – beda.
• Metode 2
- Data training = seluruh data yang memiliki bulan ganjil, pengambilan data training dimulai dari tahun awal sampai dengan tahun akhir.
- Data testing = seluruh data yang memiliki bulan genap, pengambilan data testing dimulai dari tahun awal sampai dengan tahun akhir.
- Pembagian data training dan data testing adalah sama untuk jumlah unit masukan yang berbeda – beda.
• Metode 3
- Data training = setengah dari jumlah seluruh data, pengambilan data training dimulai dari tahun awal sampai dengan tahun batas pengambilan. - Data testing = setengah dari jumlah seluruh data, pengambilan data testing
dimulai dari tahun batas pengambilan sampai dengan tahun akhir.
- Pembagian data training dan data testing adalah sama untuk jumlah unit masukan yang berbeda – beda.
• Metode 4
- Data training = data yang memiliki tahun ganjil, pengambilan data training dimulai dari tahun awal ganjil sampai dengan tahun akhir ganjil.
- Data testing = data yang memiliki tahun genap, pengambilan data testing dimulai dari tahun awal genap sampai dengan tahun akhir genap.
- Pembagian data training dan data testing adalah sama untuk jumlah unit masukan yang berbeda – beda.
• Metode 5
- Data training = data yang digunakan berdasarkan pemilihan tahun secara acak. Pengambilan data training dimulai dari tahun awal yang sudah dipilih secara acak sampai dengan tahun akhir yang sudah dipilih secara acak.
- Data testing = data yang digunakan berdasarkan pemilihan tahun secara acak. Pengambilan data testing dimulai dari tahun awal yang sudah dipilih
secara acak sampai dengan tahun akhir yang sudah dipilih secara acak, dengan catatan bahwa tahun yang sudah digunakan untuk data training tidak dapat digunakan kembali untuk data testing.
- Pembagian data training dan data testing adalah sama untuk jumlah unit masukan yang berbeda – beda.
• Metode 6
- Data training = data yang digunakan berdasarkan pengambilan data secara urut setiap 6 (enam) bulan. Pengambilan data training dimulai dari bulan paling awal pada tahun awal dan dilakukan secara bergantian dengan data testing setiap 6 (enam) bulan.
- Data testing = data yang digunakan berdasarkan pengambilan data secara urut setiap 6 (enam) bulan. Pengambilan data testing dimulai dari bulan ketujuh pada tahun awal dan dilakukan secara bergantian dengan data training setiap 6 (enam) bulan.
- Pembagian data training dan data testing adalah sama untuk jumlah unit masukan yang berbeda – beda.
Contoh penggunaan metode 1 sampai 6 pada pengambilan data training dan data testing di Dealer ABC Motor dengan periode tahun 2001-2005 yang terdapat di wilayah Kotamadya Yogyakarta akan diterangkan di bawah ini.
Tabel 3.1 Data Penjualan Sepeda Motor di Dealer ABC Motor
Tahun Bulan ( Januari – Desember ) 1 1 7 7 0 0 2001 1 2 0 0 0 2 0 1 0 0 0 0 2002 0 0 0 2 16 15 27 39 21 26 13 26 2003 25 30 24 27 28 45 24 12 18 13 26 18 2004 28 12 27 20 14 14 15 15 9 5 8 6 2005 8 19 10 10 8 6 • Metode 1
Contoh pembagian data training dan testing dengan metode 1 menggunakan jumlah unit masukan = 12. Pembagian data training dengan metode 1 tampak pada tabel 3.2 dan pembagian data testing dengan metode 1 tampak pada tabel 3.3.
Tabel 3.2 Data Training dengan Menggunakan Metode 1 No Bln-Thn Data No Bln-Thn Data No Bln-Thn Data
1 01-01 1 15 03-02 0 29 05-03 13 2 02-01 1 16 04-02 0 30 06-03 26 3 03-01 7 17 05-02 0 31 07-03 25 4 04-01 7 18 06-02 0 32 08-03 30 5 05-01 0 19 07-02 0 33 09-03 24 6 06-01 0 20 08-02 0 34 10-03 27 7 07-01 1 21 09-02 0 35 11-03 28 8 08-01 2 22 10-02 2 36 12-03 45 9 09-01 0 23 11-02 13 37 01-04 24 10 10-01 0 24 12-02 15 38 02-04 12 11 11-01 0 25 01-03 27 39 03-04 18 12 12-01 2 26 02-03 39 40 04-04 13 13 01-02 0 27 03-03 21 41 05-04 26 14 02-02 1 28 04-03 26 42 06-04 18
Tabel 3.3 Data Testing dengan Menggunakan Metode 1 No Bln-Thn Data No Bln-Thn Data No Bln-Thn Data
1 07-04 28 7 01-05 15 13 07-05 8 2 08-04 12 8 02-05 15 14 08-05 19 3 09-04 27 9 03-05 9 15 09-05 10 4 10-04 20 10 04-05 5 16 10-05 10 5 11-04 14 11 05-05 8 17 11-05 8 6 12-04 14 12 06-05 6 18 12-05 6 • Metode 2
Pembagian data training dengan metode 2 tampak pada tabel 3.4 dan pembagian data testing dengan metode 2 tampak pada tabel 3.5.
Tabel 3.4 Data Training dengan Menggunakan Metode 2 No Bln-Thn Data No Bln-Thn Data No Bln-Thn Data
1 01-01 1 11 11-01 0 21 09-02 26 2 02-01 7 12 12-01 16 22 10-02 28 3 03-01 0 13 01-02 27 23 11-02 27 4 04-01 1 14 02-02 21 24 12-02 14 5 05-01 0 15 03-02 13 25 01-03 15 6 06-01 0 16 04-02 25 26 02-03 9 7 07-01 0 17 05-02 24 27 03-03 8 8 08-01 0 18 06-02 28 28 04-03 8 9 09-01 0 19 07-02 24 29 05-03 10 10 10-01 0 20 08-02 18 30 06-03 8
Tabel 3.5 Data Testing dengan Menggunakan Metode 2 No Bln-Thn Data No Bln-Thn Data No Bln-Thn Data
1 07-03 1 11 05-04 2 21 03-05 18 2 08-03 7 12 06-04 15 22 04-05 12 3 09-03 0 13 07-04 39 23 05-05 20 4 10-03 2 14 08-04 26 24 06-05 14 5 11-03 0 15 09-04 26 25 07-05 15 6 12-03 2 16 10-04 30 26 08-05 5 7 01-04 1 17 11-04 27 27 09-05 6 8 02-04 0 18 12-04 45 28 10-05 19 9 03-04 0 19 01-05 12 29 11-05 10 10 04-04 0 20 02-05 13 30 12-05 6 • Metode 3
Pembagian data training dengan metode 3 tampak pada tabel 3.6 dan pembagian data testing dengan metode 3 tampak pada tabel 3.7.
Tabel 3.6 Data Training dengan Menggunakan Metode 3 No Bln-Thn Data No Bln-Thn Data No Bln-Thn Data
1 01-01 1 11 11-01 0 21 09-02 0 2 02-01 1 12 12-01 2 22 10-02 2 3 03-01 7 13 01-02 0 23 11-02 13 4 04-01 7 14 02-02 1 24 12-02 15 5 05-01 0 15 03-02 0 25 01-03 27 6 06-01 0 16 04-02 0 26 02-03 39 7 07-01 1 17 05-02 0 27 03-03 21 8 08-01 2 18 06-02 0 28 04-03 26 9 09-01 0 19 07-02 0 29 05-03 13 10 10-01 0 20 08-02 0 30 06-03 26
Tabel 3.7 Data Testing dengan Menggunakan Metode 3 No Bln-Thn Data No Bln-Thn Data No Bln-Thn Data
1 07-03 25 11 05-04 26 21 03-05 9 2 08-03 30 12 06-04 18 22 04-05 5 3 09-03 24 13 07-04 28 23 05-05 8 4 10-03 27 14 08-04 12 24 06-05 6 5 11-03 28 15 09-04 27 25 07-05 8 6 12-03 45 16 10-04 20 26 08-05 19 7 01-04 24 17 11-04 14 27 09-05 10 8 02-04 12 18 12-04 14 28 10-05 10 9 03-04 18 19 01-05 15 29 11-05 8 10 04-04 13 20 02-05 15 30 12-05 6 • Metode 4
Pembagian data training dengan metode 4 tampak pada tabel 3.8 dan pembagian data testing dengan metode 4 tampak pada tabel 3.9.
Tabel 3.8 Data Training dengan Menggunakan Metode 4 No Bln-Thn Data No Bln-Thn Data No Bln-Thn Data
1 01-01 1 13 01-02 27 25 01-03 15 2 02-01 1 14 02-02 39 26 02-03 15 3 03-01 7 15 03-02 21 27 03-03 9 4 04-01 7 16 04-02 26 28 04-03 5 5 05-01 0 17 05-02 13 29 05-03 8 6 06-01 0 18 06-02 26 30 06-03 6 7 07-01 1 19 07-02 25 31 07-03 8 8 08-01 2 20 08-02 30 32 08-03 19 9 09-01 0 21 09-02 24 33 09-03 10 10 10-01 0 22 10-02 27 34 10-03 10 11 11-01 0 23 11-02 28 35 11-03 8 12 12-01 2 24 12-02 45 36 12-03 6
Tabel 3.9 Data Testing dengan Menggunakan Metode 4 No Bln-Thn Data No Bln-Thn Data No Bln-Thn Data
1 01-04 0 9 09-04 0 17 05-05 26 2 02-04 1 10 10-04 2 18 06-05 18 3 03-04 0 11 11-04 16 19 07-05 28 4 04-04 0 12 12-04 15 20 08-05 12 5 05-04 0 13 01-05 24 21 09-05 27 6 06-04 0 14 02-05 12 22 10-05 20 7 07-04 0 15 03-05 18 23 11-05 14 8 08-04 0 16 04-05 13 24 12-05 14 • Metode 5
Contoh pembagian data training dengan pengambilan tahun secara acak : 2001, 2003, 2004 dan pembagian data testing dengan pengambilan tahun secara acak : 2002, 2005.
Pembagian data training dengan metode 5 tampak pada tabel 3.10 dan pembagian data testing dengan metode 5 tampak pada tabel 3.11.
Tabel 3.10 Data Training dengan Menggunakan Metode 5 No Bln-Thn Data No Bln-Thn Data No Bln-Thn Data
1 01-01 1 13 01-02 27 25 01-03 24 2 02-01 1 14 02-02 39 26 02-03 12 3 03-01 7 15 03-02 21 27 03-03 18 4 04-01 7 16 04-02 26 28 04-03 13 5 05-01 0 17 05-02 13 29 05-03 26 6 06-01 0 18 06-02 26 30 06-03 18 7 07-01 1 19 07-02 25 31 07-03 28 8 08-01 2 20 08-02 30 32 08-03 12 9 09-01 0 21 09-02 24 33 09-03 27 10 10-01 0 22 10-02 27 34 10-03 20 11 11-01 0 23 11-02 28 35 11-03 14 12 12-01 2 24 12-02 45 36 12-03 14
Tabel 3.11 Data Testing dengan Menggunakan Metode 5 No Bln-Thn Data No Bln-Thn Data No Bln-Thn Data
1 01-04 0 9 09-04 0 17 05-05 8 2 02-04 1 10 10-04 2 18 06-05 6 3 03-04 0 11 11-04 16 19 07-05 8 4 04-04 0 12 12-04 15 20 08-05 19 5 05-04 0 13 01-05 15 21 09-05 10 6 06-04 0 14 02-05 15 22 10-05 10 7 07-04 0 15 03-05 9 23 11-05 8 8 08-04 0 16 04-05 5 24 12-05 6 • Metode 6
Pembagian data training dengan metode 6 tampak pada tabel 3.12 dan pembagian data testing dengan metode 6 tampak pada tabel 3.13.
Tabel 3.12 Data Training dengan Menggunakan Metode 6 No Bln-Thn Data No Bln-Thn Data No Bln-Thn Data
1 07-03 1 11 05-04 0 21 03-05 18 2 08-03 1 12 06-04 0 22 04-05 13 3 09-03 7 13 07-04 27 23 05-05 26 4 10-03 7 14 08-04 39 24 06-05 18 5 11-03 0 15 09-04 21 25 07-05 15 6 12-03 0 16 10-04 26 26 08-05 15 7 01-04 0 17 11-04 13 27 09-05 9 8 02-04 1 18 12-04 26 28 10-05 5 9 03-04 0 19 01-05 24 29 11-05 8 10 04-04 0 20 02-05 12 30 12-05 6
Tabel 3.13 Data Testing dengan Menggunakan Metode 6 No Bln-Thn Data No Bln-Thn Data No Bln-Thn Data
1 07-03 1 11 05-04 16 21 03-05 27 2 08-03 2 12 06-04 15 22 04-05 20 3 09-03 0 13 07-04 25 23 05-05 14 4 10-03 0 14 08-04 30 24 06-05 14 5 11-03 0 15 09-04 24 25 07-05 8 6 12-03 2 16 10-04 27 26 08-05 19 7 01-04 0 17 11-04 28 27 09-05 10 8 02-04 0 18 12-04 45 28 10-05 10 9 03-04 0 19 01-05 28 29 11-05 8 10 04-04 2 20 02-05 12 30 12-05 6
Antar muka Training, Testing dan Prediksi merupakan antar muka yang berfungsi sebagai tempat untuk melakukan proses training, testing dan prediksi. Antar Muka Training, Testing dan Prediksi dengan Metode 1, 2, 3, 4 dan 6 memiliki tampilan yang sama, perbedaan terletak pada penggunaan rumus di dalam implementasi program. Kabupaten, nama dealer, tahun awal dan tahun akhir yang digunakan berdasarkan pilihan dari user. Pada antar muka Training, Testing dan Prediksi terdapat popupmenu kabupaten/kotamadya, nama dealer,
tahun awal dan tahun akhir yang berfungsi untuk memilih kabupaten/kotamadya,
nama dealer, tahun awal dan tahun akhir, tombol jumlah data yang berfungsi untuk menampilkan jumlah seluruh data dari tahun awal sampai dengan tahun akhir, tombol input hidden layer yang berfungsi untuk menuju ke form jumlah unit 1 atau 2 hidden layer, sesuai dengan jumlah hidden layer yang telah diinputkan sebelumnya, tombol training data yang berfungsi untuk menjalankan proses training, tombol hasil prediksi yang berfungsi untuk menampilkan nilai hasil prediksi, popupmenu bulan yang berfungsi untuk memilih bulan yang akan
diprediksi, popupmenu fungsi pelatihan yang berfungsi untuk memilih fungsi pelatihan, tombol back yang berfungsi untuk kembali ke antar muka metode pengolahan data dan tombol exit yang berfungsi untuk menampilkan Pesan Keluar. Contoh perancangan antar muka Training, Testing dan Prediksi dengan Metode 1 dapat dilihat pada gambar 3.2.
Gambar 3.2 Perancangan Antar Muka Training, Testing dan Prediksi dengan
Metode 1
2. Training, Testing dan Prediksi dengan Metode 5
Antar muka Training, Testing dan Prediksi dengan Metode 5 merupakan antar muka yang berfungsi sebagai tempat untuk melakukan proses training, testing dan prediksi. Kabupaten, nama dealer, tahun awal dan tahun akhir yang akan digunakan, berdasarkan pilihan dari user. Pada antar muka Training, Testing dan Prediksi dengan Menggunakan Metode 5 terdapat popupmenu kabupaten/kotamadya dan nama dealer yang berfungsi untuk memilih
kabupaten/kotamadya dan nama dealer, tombol input hidden layer yang berfungsi untuk menuju ke form jumlah unit 1 atau 2 hidden layer, sesuai dengan jumlah hidden layer yang telah diinputkan sebelumnya, popupmenu tahun training yang berfungsi untuk memasukkan urutan tahun yang akan dijadikan sebagai data training, popupmenu tahun testing yang berfungsi untuk memasukkan urutan tahun yang akan dijadikan sebagai data testing, tombol training data yang berfungsi untuk menjalankan proses training, tombol hasil prediksi yang berfungsi untuk menampilkan nilai hasil prediksi, popupmenu bulan yang berfungsi untuk memilih bulan yang akan diprediksi, tombol back yang berfungsi untuk kembali ke antar muka metode pengolahan data dan tombol exit yang berfungsi untuk menampilkan Pesan Keluar. Perancangan antar muka Training, Testing dan Prediksi dengan Metode 5 dapat dilihat pada gambar 3.3.
Gambar 3.3 Perancangan Antar Muka Training, Testing dan Prediksi dengan
3. Jumlah Unit Hidden Layer
Antar muka Jumlah Unit Hidden Layer merupakan antar muka yang berfungsi sebagai tempat untuk memasukkan jumlah unit hidden layer. Pada antar muka Jumlah Unit Hidden Layer terdapat tombol ambil data hidden layer yang berfungsi untuk mengambil data berupa jumlah unit hidden layer yang akan digunakan di dalam proses training. Perancangan antar muka Jumlah Unit Hidden Layer dapat dilihat pada gambar 3.4 dan 3.5.
Gambar 3.4 Perancangan Antar Muka Jumlah Unit 1 Hidden Layer
Gambar 3.5 Perancangan Antar Muka Jumlah Unit 2 Hidden Layer
4. Masukan Data Baru
Antar muka Masukan Data Baru merupakan form yang berfungsi sebagai tempat untuk memasukkan data kode dealer, nama dealer, nama kabupaten, kode kabupaten, tahun dan jumlah sepeda motor dari bulan Januari sampai Desember.
Pada antar muka Masukan Data Baru terdapat popupmenu nama kabupaten yang berfungsi untuk memilih nama kabupaten, tombol save yang berfungsi untuk menyimpan data-data, tombol change yang berfungsi untuk menampilkan antar muka Pengubahan Data, listbox jumlah motor untuk bulan Januari-Desember yang berfungsi untuk menampilkan data-data yang sudah disimpan (nama dealer, tahun dan jumlah sepeda motor untuk bulan Januari sampai Desember), tombol
menu pilihan yang berfungsi untuk menampilkan antar muka Menu Pilihan dan tombol exit yang berfungsi untuk menampilkan antar muka Pesan Keluar.
Perancangan antar muka Masukan Data Baru dapat dilihat pada gambar 3.6.
Gambar 3.6 Perancangan Antar Muka Masukan Data Baru
5. Pengubahan Data
Antar muka Pengubahan Data merupakan antar muka yang berfungsi sebagai tempat untuk melakukan pengubahan data-data yang sudah tersimpan di
dalam database. Pada antar muka Pengubahan Data terdapat popupmenu nama
kabupaten yang berfungsi untuk memilih nama kabupaten, tombol save yang
berfungsi untuk menyimpan data-data, tombol menu pilihan yang berfungsi untuk menampilkan antar muka Menu Pilihan dan tombol exit yang berfungsi untuk menampilkan Pesan Keluar. Selain itu pada antar muka Pengubahan Data terdapat tempat masukan (edit) untuk kode dealer, nama dealer, kode kabupaten, tahun dan jumlah sepeda motor dari bulan Januari sampai Desember. Perancangan antar muka Pengubahan Data dapat dilihat pada gambar 3.7.
Gambar 3.7 Perancangan Antar Muka Pengubahan Data
C. Perancangan Proses
Proses yang akan dilakukan di dalam Program Penyaluran Kredit Berdasarkan Prediksi Penjualan Sepeda Motor di DIY dengan menggunakan Backpropagation meliputi : proses pengambilan data input dan target training, proses normalisasi data input dan target training, proses training, proses pengambilan data input dan target testing, proses normalisasi data input dan target testing, proses testing dan prediksi, proses denormalisasi data.
1. Proses Pengambilan Data Input dan Target Training
Data yang telah terkumpul dibagi menjadi data training dan data testing. Di dalam pembagian data training dan data testing digunakan 5 (lima) metode (Lihat halaman 19-28 pada BAB III). Dari data training yang ada kemudian dikelompokkan menjadi data input dan target sesuai dengan jumlah unit input data.
Contoh pengelompokan data training menjadi data input (x1-x12) dan target (t)
dengan jumlah unit masukan = 12 (pengelompokan menggunakan data metode 4, lihat halaman 25 pada BAB III) :
x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 t 1 1 7 7 0 0 1 2 0 0 0 2 27 1 7 7 0 0 1 2 0 0 0 2 27 39 7 7 0 0 1 2 0 0 0 2 27 39 21 7 0 0 1 2 0 0 0 2 27 39 21 26 0 0 1 2 0 0 0 2 27 39 21 26 13 0 1 2 0 0 0 2 27 39 21 26 13 26 1 2 0 0 0 2 27 39 21 26 13 26 25 2 0 0 0 2 27 39 21 26 13 26 25 30 0 0 0 2 27 39 21 26 13 26 25 30 24 0 0 2 27 39 21 26 13 26 25 30 24 27 0 2 27 39 21 26 13 26 25 30 24 27 28 2 27 39 21 26 13 26 25 30 24 27 28 45 27 39 21 26 13 26 25 30 24 27 28 45 15 39 21 26 13 26 25 30 24 27 28 45 15 15 21 26 13 26 25 30 24 27 28 45 15 15 9 26 13 26 25 30 24 27 28 45 15 15 9 5 13 26 25 30 24 27 28 45 15 15 9 5 8 26 25 30 24 27 28 45 15 15 9 5 8 6 25 30 24 27 28 45 15 15 9 5 8 6 8 30 24 27 28 45 15 15 9 5 8 6 8 19 24 27 28 45 15 15 9 5 8 6 8 19 10 27 28 45 15 15 9 5 8 6 8 19 10 10 28 45 15 15 9 5 8 6 8 19 10 10 8 45 15 15 9 5 8 6 8 19 10 10 8 6
2. Proses Normalisasi Data Training (Pre-Processing Data)
Sebelum dilakukan proses training, maka dilakukan penskalaan pada data input dan target terlebih dahulu sedemikian sehingga data – data input dan target tersebut masuk ke dalam suatu range tertentu. Proses ini dikenal dengan nama
normalisasi data.
Sebelum data – data input dan target yang digunakan diimplementasikan ke dalam proses training, terlebih dahulu dilakukan proses pre-processing data berupa scaling atau normalisasi data.
Rumus yang digunakan untuk menormalisasi data dengan a sebagai data minimum dan b sebagai data maksimum.:
x’ = 0.8
(
)
+0.1 − − a b a xContoh data sebelum dan sesudah dilakukan normalisasi tampak pada tabel 3.14.
Tabel 3.14 Data Sebelum dan Sesudah Dilakukan Normalisasi
No Data Bulan Sebelum Normalisasi Sesudah Normalisasi
1 Januari 1 0.1286 2 Februari 7 0.3000 3 Maret 0 0.1000 4 April 1 0.1286 5 Mei 0 0.1000 6 Juni 0 0.1000 7 Juli 0 0.1000 8 Agustus 0 0.1000 9 September 0 0.1000 10 Oktober 0 0.1000 11 November 0 0.1000 12 Desember 16 0.5571
3. Proses Training
Setelah dilakukan proses normalisasi data training, selanjutnya dilakukan proses training. Urutan proses training yang akan dilakukan meliputi :
• Penginisialisasian bobot dan bias awal.
• Set jumlah iterasi, nilai target error dan nilai learning rate
• Lakukan proses feedforward pada backpropagation, selama nilai error training ≤ nilai target error.
• Hitung perubahan bobot. • Hitung nilai keluaran training • Hitung nilai error training
4. Proses Pengambilan Data Input dan Target Testing
Dari data testing yang ada (lihat halaman 25 pada BAB III), kelompokkan menjadi data input dan target sesuai dengan jumlah unit input data.
Contoh pengelompokan data testing menjadi data input (x1-x12) dan target (t)
dengan jumlah unit masukan = 12 :
x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 t 0 1 0 0 0 0 0 0 0 2 16 15 24 1 0 0 0 0 0 0 0 2 16 15 24 12 0 0 0 0 0 0 0 2 16 15 24 12 18 0 0 0 0 0 0 2 16 15 24 12 18 13 0 0 0 0 0 2 16 15 24 12 18 13 26 0 0 0 0 2 16 15 24 12 18 13 26 18 0 0 0 2 16 15 24 12 18 13 26 18 28 0 0 2 16 15 24 12 18 13 26 18 28 12 0 2 16 15 24 12 18 13 26 18 28 12 27 2 16 15 24 12 18 13 26 18 28 12 27 20 16 15 24 12 18 13 26 18 28 12 27 20 14 15 24 12 18 13 26 18 28 12 27 20 14 14
5. Proses Normalisasi Data Testing
Sebelum dilakukan proses testing, maka dilakukan penskalaan pada data input dan target terlebih dahulu sedemikian sehingga data – data input dan target tersebut masuk ke dalam suatu range tertentu. Proses ini dikenal dengan nama
normalisasi data. Tata cara untuk melakukan normalisasi data testing sama seperti
cara untuk menormalisasi data training.
6. Proses Testing dan Prediksi
Setelah dilakukan proses normalisasi data testing, selanjutnya dilakukan proses testing dan prediksi. Urutan proses testing dan prediksi yang akan dilakukan meliputi :
• Ambil bobot akhir data training • Hitung nilai keluaran testing
• Hitung nilai error testing dan rerata error testing • Ambil data prediksi
• Normalisasi data prediksi • Hitung nilai keluaran prediksi
7. Proses Denormalisasi Data Prediksi (Post-Processing Data)
Post-processing data mencakup beberapa proses yang diterapkan pada output Neural Network. Seperti halnya pre-processing, post-processing sepenuhnya bergantung pada simulasi jaringan dan termasuk mendeteksi kapan
parameter melampaui jangkauan yang dapat diterima. Pada saat melakukan post-processing data terhadap hasil output sistem dilakukan proses perubahan data sehingga data output dapat dibaca oleh user, ini disebut sebagai proses
denormalisasi. Terkadang post-processing hanya merupakan kebalikan dari
pre-processing. Rumus yang digunakan pada post-processing yaitu :
Nilai baru =
(
outputJST) (
Value Value)
minValue8 . 0 min max 1 . 0 × − + −
Dengan nilai baru adalah nilai yang telah didenormalisasi, output JST adalah output yang dihasilkan berdasarkan proses prediksi, minValue adalah nilai minimum data dan maxValue adalah nilai maksimum data.
BAB IV
IMPLEMENTASI DAN PEMBAHASAN
A. Implementasi
Implementasi pada pembuatan Program Penyaluran Kredit Berdasarkan Prediksi Penjualan Sepeda Motor di DIY dengan Menggunakan Backpropagation ini antara lain Implementasi Sistem dan Implementasi Antar Muka. Di dalam Implementasi Sistem dan Implementasi Antar Muka digunakan software Matlab 6.5.
1. Implementasi Sistem
Pada implementasi sistem ini, dilakukan beberapa langkah sebelum mengimplementasikan rancangan antar muka. Langkah – langkah tersebut antara lain (contoh pengambilan data input dan target training dan testing menggunakan metode 4):
a. Proses Pengambilan Data Input dan Target Training
indek_tahun_baru=1; indek_ambil_tahun=1; reset_data1=1; for kr=1:total_data if(indek_ambil_tahun <= total_data) dt_input_sem(indek_tahun_baru) = nilai_baru(indek_ambil_tahun); if(reset_data1<=12) indek_ambil_tahun=indek_ambil_tahun+1; reset_data1=reset_data1+1; end if(reset_data1==13) reset_data1=1; indek_ambil_tahun=indek_ambil_tahun+12; end indek_tahun_baru=indek_tahun_baru+1; end end
Perintah untuk mengambil input data training berdasarkan array 1 dimensi. Proses pengambilan input data training dengan alur algoritma sebagai berikut :
• Untuk pengambilan data training berdasarkan pada tahun-tahun ganjil maka pengambilan data dimulai dari 1-12, kemudian dilanjutkan 25-36, 49-60 dan seterusnya.
• Bentuk inisialisasi nilai-nilai yang akan digunakan sebagai pengolahan data yang akan dicari sebagai input data training. Inisialisasi nilai-nilai yang dipakai indek_tahun yang diset 1, indek_ambil_tahun yang diset 1, dan reset_data1 yang diset 1.
• Mencari data yang akan digunakan sebagai pengisi elemen-elemen matrik yang dimaksudkan, dengan melakukan pencarian dengan perintah perulangan sebanyak total data.
• Melakukan pengecekan apakah nilai pada indek_ambil_tahun kurang dari atau sama dengan total data. Jika syarat masih terpenuhi maka akan melanjutkan tugas berikutnya.
• Melakukan pengecekan apakah nilai reset_data1 bernilai kurang dari atau sama dengan 12. Jika terpenuhi maka nilai indek_ambil_tahun hasilnya akan diakumulasikan kembali dengan penjumlahan bernilai 1. Sedangkan nilai reset_data1 akan diakumulasikan dengan penjumlahan bernilai 1.
• Melakukan pengecekan apakah nilai reset_data1 bernilai kurang dari atau sama dengan 13. Jika terpenuhi maka nilai indek_ambil_tahun hasilnya akan dikumulasikan kembali dengan penjumlahan bernilai 12. Sedangkan nilai reset_data1 akan diset ulang menjadi bernilai 1.
for ba=1:jumlah_data_training
ambil_input(ba)=dt_input_sem(ba); end
Perintah untuk mengambil data training berdasarkan array 1 dimensi yang diperoleh dari matrik dt_input_sem. Perintah dibawah ini hanya digunakan untuk memindahkan isi matrik dari nilai_baru untuk dipindahkan ke dalam suatu matrik dengan nama variabel baru yang diberi nama ambil input. Dapat ditarik kesimpulan bahwa matrik ambil_input sama dengan matrik dt_input_sem
nil_baru=1;
for br=1:(jumlah_data_training - (jumlah_unit_masukkan)) for kl=1:jumlah_unit_masukkan if(br==1) ambil_input2(br,kl)=ambil_input(1,kl); else ambil_input2(br,kl)=ambil_input(1,(kl+nil_baru)); end end
if(br>1 && br< jumlah_data_training-(jumlah_unit_masukkan)) nil_baru=nil_baru + 1;
end end
Perintah untuk mengubah array 1 dimensi(bentukan sementara) menjadi array 2 dimensi(pola)
for j=1:(jumlah_data_training-(jumlah_unit_masukkan))
data_target(j)=ambil_input(j+(jumlah_unit_masukkan)); end
Perintah untuk mencari target training
b. Proses Normalisasi Data Training (Pre-Processing Data)
cp=(0.8*(p-a)/(b-a))+0.1; ct=(0.8*(t-a)/(b-a))+0.1;
Perintah untuk menormalisasi data dengan a sebagai nilai minimum dan b sebagai nilai maksimum.
c. Proses Training
net=newff(minmax(cp),[layer1,1],{'logsig','logsig','purelin'},fs_pelatihan);
Perintah konstruksi jaringan Backpropagation.
bobot_awal_input=net.IW{1,1}; bobot_awal_bias_input=net.b{1}; bobot_awal_lapisan1=net.LW{2,1}; bobot_awal_bias_lapisan1=net.b{2};
Perintah untuk mengeset bobot2 awal.
net.trainParam.epochs=iterasi; net.trainParam.goal=target_error; net.trainParam.lr=nil_lr;
net.trainParam.show=25;
Perintah untuk mengeset nilai dari jumlah iterasi (epochs), target error dan learning rate.
tic;
net2 = train(net,cp,ct); net=init(net);
nil_wkt = toc;
Perintah untuk menghitung nilai net dan menampilkan waktu pada proses training.
bobot_akhir_input=net2.IW{1,1}; bobot_akhir_bias_input=net2.b{1}; bobot_akhir_lapisan=net2.LW{2,1}; bobot_akhir_bias_lapisan=net2.b{2};
Melihat bobot akhir input, lapisan dan bias
x = sim(net2,cp); nilai_net = net2; net2=init(net2); clear net;