Penentuan Beasiswa Menggunakan Jaringan Syaraf Tiruan Pada Matlab

Table of Contents
Kali ini, saya akan menjabarkan sebuah metode yang cukup familier bagi sobat blogger. Metode familier tersebut adalah jaringan syaraf tiruan (JST). Tentunya, menguasai metode JST menjadi syarat wajib untuk mata kuliah Artificial Intelligent atau kecerdasan buatan. Bagi saya, JST itu metode yang unik dan menarik, karena seolah-olah kita membuat sebuah mekanisme bagaimana sebuah computer mampu mengambil keputusan layaknya makhluk hidup, yaitu dengan memanfaaatkan pola berpikir jaringan syaraf. Mari, kita telusuri JST lebih jauh.. 

Jaringan syaraf tiruan adalah system pemroses informasi dengan karakteristik dan performa yang mendekati  jaringan syaraf biologis. JST memiliki beberapa asumsi dasar antara lain : 
  • Pemrosesan informasi terletak pada sejumlah komponen yang dinamakan neuron
  • Sinyal merambat antara satu neuron ke neuron-neuron lainnya melalui jalur penghubung
  • Tiap jalur penghubung memiliki bobot dan mengalikan besar nilai sinyal yang masuk (jenis neuron tertentu, seperti pada JST Backpropagation)
  • Tiap neuron menerapkan fungsi aktivasi yang menjumlahkan semua masukan untuk menentukan sinyal keluaran. 

Sebagaimana yang saya ketahui, JST memiliki berbagai macam jenis yang berbeda, JST Perceptron, LVQ, Backpropagation dll. Namun, yang sangat popular dewasa ini adalah backpropagation karena memiliki kelebihan tersendiri. Bahkan, JST sempat vakum belasan tahun lamanya akibat belum ditemukannya metode backpropagation. Begitu pentingkah metode backpro? Saya harap teman-teman mencari tahu sendiri karena saya tidak akan membahas algoritma backpro yang panjang dan rumit itu. Pun dengan teori JST yang lain, silakan mencari referensi yang lebih detail untuk membahasnya. 

Saya akan mencoba bereksperimen untuk mencoba implementasi jaringan syaraf tiruan pada studi kasus penentuan beasiswa. Saya akan mengajak teman-teman mencoba toolbox JST yang telah tersedia pada Matlab, agar proses berjalan mudah dan simple tanpa membuat source code JST satu persatu. 

Metode JST pasti membutuhkan data training dan target dari training. Masih ingatkan, bahwa JST terbagi menjadi supervised yang membutuhkan target atau unsupervised yang tanpa target? Saya lebih tertarik untuk memakai metode supervised JST karena studi kasus kita membutuhkan pelatihan yang menargetkan JST memiliki mekanisme untuk memutuskan beasiswa berdasarkan target pengalaman sebelumnya. Jadi, JST jenis supervised yang kita gunakan adalah backpropagation.

Berikut ini akan saya sajikan data pelatihan yang akan digunakan untuk training backpro. Saran saya, untuk implementasi nyata, gunakan data training yang berjumlah banyak (big data) agar pengalaman JST juga akan semakin banyak. Contoh data berikut adalah mahasiswa yang memperoleh beasiswa berdasarkan tingkat kemiskinan dan IPK, akan dijadikan sebagai data training. 

Rancangan Data pada Excel
Data training diatas merupakan data kasar yang belum dipilah antara input dan target. Oleh karenanya, data tersebut akan saya pindahkan pada notepad menjadi dua file training, yaitu file data input dan file data target, yang keduanya harus saya simpan dalam ekstensi .dat, agar dapat dikenali oleh Matlab. Perhatikan, bahwa data yang saya pindah dalam notepad tersebut haruslah dilakukan transpose (baris menjadi kolom dan kolom menjadi baris). Seperti gambar berikut : 

datatrain,dat
target.dat

Simpan kedua file .dat tersebut ke dalam sebuah folder yang menjadi directory projek Matlab kita.

Buka Command Window Matlab dan load kedua file diatas agar dikenali sebagai variabel aktif dan dapat difungsikan untuk mendukung proses selanjutnya.




Tahap persiapan selesai, kita lanjutkan untuk proses JST pada Matlab berdasarkan input datatrain.dat dan target target.dat, ketikkan nntool pada command window untuk menampilkan jendela tool JST Matlab. Maka muncul jendela berikut : 


Klik import sesuai petunjuk arah panah. Import disini bertujuan untuk mengambil data input dan data target. 

Klik datatrain lalu pada kolom Destination, pilih Import As : Input Data. Lanjutkan dengan klik import. Begitu pula dengan target, klik target lalu pilih Target Data kemudian Import. Pilih close untuk kembali pada jendela utama : 


Pilih new untuk melakukan proses training baru pada JST. Lantas tampil jendela training berikut : 


Nama default training JST adalah network1, tidak perlu diganti walaupun dapat diganti sesuai keinginan kita. Sesuai petunjuk anak panah, cocokkan Input data dan Target data sesuai yang di import tadi. Klik create, lalu klik close untuk kembali pada jendela utama. 


Pada jendela utama, muncul nama network1, klik open untuk melanjutkan proses pelatihan. Muncul jendela berikut :

Buka tab Train, pilih sub tab Training Info, jangan lupa sesuaikan Input dan target. Lanjutkan untuk Train Network. JST secara otomastis melakukan proses training. Proses training JST dapat terlihat melalui tampilan berikut : 


Proses training akan berhenti setelah pelatihan mencukupi. Keluarlah dari jendela Training, manuju jendela utama kembali : 


Dengan berakhirnya proses training JST, kita dapat menyimpan hasil training untuk kemudian diuji oleh data testing. Klik Export :


Pilih nama training JST,  (network1), klik Save. Simpan hasil training ditempat kedua file .dat berada. 


Keseluruhan proses training JST telah selesai. Saya simpan dengan nama jst.mat, namun variabel training tetap seperti pada proses, yaitu network1. Yuk, kita coba JST baru ini, bagaimana kita melakukan testing. Ikuti langkah berikut : 


Fungsi bawaan Matlab untuk testing JST adalah sim(nama_training,input). Hasil testing akan memberikan keputusan berupa output tertentu sesuai dengan target pelatihan. Pada gambar, input yang saya ujikan adalah datatrain, harusnya JST akan memberikan output sama persis dengan data target. Ternyata hasil JST memberikan keakurasian yang tinggi, yaitu nyaris 100 persen. 

Saya harap agar teman-teman dapat mengembangkan lebih baik dari sekadar apa yang saya bahas disini. Agar tampilan program terlihat lebih menarik, silakan teman-teman buat JST berbasis GUInya. 

Sampai disini dulu penjelasan saya, silakan ditanyakan apabila ada yang belum dimengerti. Semoga memberikan manfaat ya,... 


Salam Hangat 

9 comments

Terima kasih telah mampir di blog kami. Jika ingin menghubungi penulis, silakan kirim pesan via email di kitainformatika@gmail.com atau via WA di 087750503014. Jika mood penulis lagi baik, biasanya fast respon.
Comment Author Avatar
August 24, 2015 at 9:24 AM Delete
artikel nya bagus mas....
bisakah saya belajar dari mas tentang jaringan syaraf tiruan ?
Comment Author Avatar
August 24, 2015 at 2:55 PM Delete
Saya juga masih belajar mas, belum punya banyak ilmu... (^_^)
Comment Author Avatar
October 12, 2015 at 9:02 AM Delete
terimakasih atas pencerahannya..oya, utk melihat tingkat keakuratannya bagaimana y..??
Comment Author Avatar
October 14, 2015 at 4:53 AM Delete
bandingkan hasil JST dengan data rillnya mas, dalam kasus saya, hasil JST saya bandingkan dengan tabel perolehan beasiswa pada excel
Comment Author Avatar
September 4, 2016 at 6:58 AM Delete
Saya Ekli
Mau tanya, bagian akhir sebelum output gak harus purelin ya fungsi aktivasinya?
Comment Author Avatar
July 17, 2017 at 5:35 PM Delete
saya mau bertanya bagaimana membuat nilai-nilai pada setiap titik pada fuzzy (khususnya fuzzy mamdani) tanpa mereka-reka. ada ngak metode atau rumusnya, jika rentang pembicaraan 0 - 100 (pada sumbu x)

misalnya beberapa variabel berikut ini beserta intervalnya (maksudnya nilai intervalnya tidak dibuat sembaranganu, interval dibawah ini saya asumsikan saja) :
1. variabel PA
rendah : 0 - 50
sedang: 20 - 80
tinggi : 50 - 100

2. variabel PB
rendah : 0 - 40
cukup : 20 - 60
sedang: 40 - 80
tinggi : 60 - 100

3. variabel PC
rendah : 0 - 40
cukup : 20 - 60
sedang: 40 - 80
tinggi : 60 - 100

4. variabel PD
rendah : 0 - 50
sedang: 20 - 80
tinggi : 50 - 100

mohon bantuannya, jika berkenan diskusi ini bisa saya sampaikan lewat Whatshapp saya
081360608573
terimakasih mas.
Comment Author Avatar
July 18, 2017 at 12:43 PM Delete
Pertanyaan cerdas dan menarik dari pak amsar. Itu permasalahan yang terdapat dalam penentuan interval fuzzy. Kebanyakan dari kalangan IT hanya berfokus pada proses fuzzy logicnya dengan melakukan sembarang interval, jika ditanya bagaimana penentuan interval! tidak tahu, atau mengira-ngira. Karena ini masalah kualitatif dan subjektif, andaikan ada referensi sekalipun, pastinya juga subjektif.
Comment Author Avatar
August 29, 2017 at 7:35 AM Delete
maaf pak. utk melihat angka lain dari nama siswa lain gt bisa apa nggak ditentukan bahwa dia layak menerima beasiswa atau tdk?
Comment Author Avatar
January 14, 2018 at 8:46 AM Delete
Pak mau tanya, saya membuat prediksi beban puncak menggunakan input berupa data historis beban puncak dan jumlah penduduk 7 tahun ke belakang. Pada saat training menggunakan data 5 tahun sudah berhasil pak, namun pada saat di testing menggunakan 2 tahun berikutnya itu sangat jauh dari target pak. Itu bagaimana ya pak ? mungkin bapak tau solusinya, terimakasih