• Tidak ada hasil yang ditemukan

PREDIKSI INDEKS PRESTASI MAHASISWA TAHUN PERTAMA MENGGUNAKAN METODE BACKPROPAGATION

N/A
N/A
Protected

Academic year: 2019

Membagikan "PREDIKSI INDEKS PRESTASI MAHASISWA TAHUN PERTAMA MENGGUNAKAN METODE BACKPROPAGATION"

Copied!
133
0
0

Teks penuh

(1)

SKRIPSI

Diajukan Untuk Memenuhi Salah Satu Syarat

Memperoleh Gelar Sarjana Teknik

Program Studi Teknik Informatika

Oleh:

Dian Ambar Kusuma

NIM : 045314040

JURUSAN TEKNIK INFORMATIKA

FAKULTAS SAINS DAN TEKNOLOGI

UNIVERSITAS SANATA DHARMA

YOGYAKARTA

(2)

A THESIS

Presented as Partial Fulfillment of the Requirements

To Obtain Informatics Engineering Degree

In Informatics Engineering Department

by:

Dian Ambar Kusuma

NIM : 045314040

INFORMATICS ENGINEERING STUDY PROGRAM

INFORMATICS ENGINEERING DEPARTMENT FACULTY

OF SAINS AND TECHNOLOGY

SANATA DHARMA UNIVERSITY

YOGYAKARTA

2008

(3)
(4)
(5)

Dalam Segala perkara,Tuhan punya rencana

Yang lebih besar dari semua yang ter pikirkan

Apapun yang Kau perbuat tak ada maksud jahat,

S’bab itu kulakukan semua denganMu Tuhan

Kutakakan menyerah pada apapun juga,

Sebelum ku coba semua yang kubisa

Tetapi ku berserah kepada kehendak-Mu,

Hatiku percaya Tuhan punya ReNcaNa

(6)

pRoblemku KECIL, kaRena YESUSku BeSaR;

bebaNku RiNgaN, kaRena YESUSku KuaT;

HiduPku menjaDi beRkat, kaRenaYESUSku ajaib daN DasYat

Janganlah kamu menjadi serupa dengan dunia, tetapi berubahlah oleh

pembaharuan budimu, sehingga kamu dapat membedakan manakan kehendak

Allah:apa yang baik, yang berkenan kepada allah dan yang sempurna (Roma 12:2)

Bersukacitalah dalam pengharapan, sabarlah dalam kesesakan,dan bertekunlah

dalam doa! (Roma 12:12)

Jikalau kamu tinggal di dalam Aku dan firman-Ku tinggal di dalam kamu,

mintalah apa saja yang kamu kehendaki, dan kamu akan menerimanya (Yoh 15:7)

(7)

manusia.

Dalam skripsi ini dibuat prediksi indeks prestasi mahasiswa baru (dengan

studi kasus Teknik Informatika di USD) menggunakan metode Backpropagation

dan untuk implementasi menggunakan bahasa pemprograman Matlab. Input yang

digunakan adalah nilai ujian masuk dan target yang digunakan adalah indeks

prestasi semester pertama, yang data diambil secara real dari BAPSI USD. Data

dari BAPSI tersebut akan dibagi menjadi dua yaitu 70% untuk proses training

atau pelatihan jaringan dan 30% untuk menguji tingkat akurasi jaringan atau bisa

disebut sebagai proses testing.

Hasil dari percobaan yang dilakukan menunjukkan bahwa untuk

mendapatkan keakuratan yang cukup baik dalam proses pelatihan dan pengujian

adalah dengan menggunakan 2 buah hiiden layer dengan dengan jumah neuron

pada hidden layer ke-1 sebanyak 20 neuron dan jumah neuron pada hidden layer

ke-2 sebanyak 15 neuron, laju pemahaman 0,01 dan galat 0.01.

(8)

In this final report we are going to predict GPA of new student

(Information Engineering case study at Sanata Dharma University) using

Backpropagation method and for the implementation using Matlab language

program. The input is the value of entering test and the target is GPA of first

semester from BABSI Sanata Dharma University (real data). The data from

BABSI and then was divided into two categories, 70% for training process or

network training and 30% for analyzing network accuracy level or we often call it

testing process.

The result of the research show that in order to get good accuracy in the training

process and testing were using 2 piece hidden layer with 20 neurons and 15

neurons, learing rate 0,01 and galat 0,01

(9)

menyelesaikan skripsi ini dengan judul “PREDIKSI INDEKS PRESTASI

MAHASISWA TAHUN PERTAMA MENGGUNAKAN METODE

BACKPROPAGATION (STUDI KASUS PROGRAM STUDI TEKNIK

INFORMATIKA USD)”.

Dorongan serta nasihat dari berbagai pihak sangat membantu sampai

tersusunnya skripsi ini. Untuk itu, saya ingin mengucapkan terima kasih kepada :

1. Tuhan Yesus Kristus yang telah menyertai penulis selama pembuatan skripsi

ini.

2. Orang tua penulis yang telah memberi dukungan kepada penulis baik

spiritual maupun material dalam penyelesaian skripsi ini.

3. My Lovely Brother Grahono Suryaning Condro yang selalu memberika spirit

kepada penulis pada saat penulis sedang butuh pendorong untuk tetap

semangat dalam menyelesaikan studi ini. Semoga kakakku mendapatkan apa

yang diinginkan.

4. My Big Family yang mungkin tidak dapat penulis sebutkan satu persatu tapi

yang jelas buat semuanya penulis sangat bersyukur punya keluarga yang

sangat support dalam pendidikan.

5. Ibu Agnes Maria Polina, S.Kom., M.Sc., selaku Dosen Pembimbing

Akademik Angkatan 2004 Jurusan Teknik Informatika Fakultas Sains dan

Teknologi Universitas Sanata Dharma Yogyakarta.

(10)

pengarahan selama penulisan skripsi ini.

7. Teman dan sahabat sejatiku SuseK ☺ terimakasih atas persahabatan yang telah terjalin selama kuliah dan terimakasih karena sudah mau aku repotin....

you’re my best friend. Good LucK for you ‘n semangat.

8. Buat teman-teman terbaikku Dini, Nciz, Monic, Hylda dan Debby yang

selalu siap mendengar keluh-kesahku dan selalu menemani penulis buat

refreshing saat penulis merasa jenuh. Thanks for all ‘n suKses juga buat

kalian semua.

9. Semua temen-teman seangkatan Teknik Informatika 2004 yang tidak bisa

penulis sebutkan satu persatu yang telah mendukung penulis dalam

menyelesaikan penulisan skripsi ini. Terimaksih buat semua pertemanan

yang boleh terjalin selama kuliah.

10. Teman-teman satu bimbingan yang dapat menghibur saat penulis merasa

butuh penghiburan antara lain Agnes,Tammy,Ina dan Vera.

11. Saudara seiman yang telah dipertemukan dalam keadaan tidak sengaja yaitu

mbak Dian,mbak Diana yang begitu luar biasa memberi semangat dan

pengertian bahwa tangan Tuhan tidak akan jauh dari kita. Thanks ya sis...

12. Teman-teman satu pelayanan Paduan Suara Inovatif di GKI Gejayan Ruth,

Kak Echie, dan Kak Viilian. Gbu all

(11)

semuanya yang telah memberi dukungan dan doa kepada penulis dalam

menyelesaikan skripsi ini.

Akhirnya skripsi ini terselesaikan, disadari bahwa skripsi ini jauh dari

sempurna. Untuk itu penulis dengan rendah hati mengharapkan kritik dan saran

yang dapat memberikan kesempurnaan pada penulisan skripsi ini. Akhir kata,

semoga skripsi ini dapat bermanfaat bagi penulis, juga pihak yang membutuhkan.

Yogyakarta, 30 Agustus 2008

Penulis

(12)
(13)
(14)

HALAMAN JUDUL ... ii

HALAMAN PERSETUJUAN PEMBIMBING... iii

HALAMAN PENGESAHAN... iv

MOTTO ... vi

ABSTRAK ... vii

ABSTRACT ... viii

KATA PENGANTAR... ix

HALAMAN KEASLIAN KARYA... xii

LEMBAR PERNYATAAN... xiii

DAFTAR ISI ... xiv

DAFTAR TABEL... xvii

DAFTAR GAMBAR ... xviii

DAFTAR GRAFIK... xix

DAFTAR LAMPIRAN... xx

BAB I PENDAHULUAN... 1

1.1.Latar Belakang Masalah ... 1

1.2.Rumusan Masalah ... 2

1.3.Batasan Masalah ... 2

1.4.Tujuan dan Manfaat Penuliasan ... 3

1.5.Metode Penulisan ... 4

(15)

2.1.1. Pengertian Jaringan syaraf Tiruan... 6

2.2. Backpropagation ... 6

2.2.1. Arsitektur Jaringan Backpropagation... 6

2.2.2. Pelatihan Standart Backpropgation ... 7

2.2.3. Algoritma Backpropagation ... 8

BAB III ANALISA DAN PERANCANGAN ... 11

3.1. Analisa Sistem ... 11

3.1.1. Analisa Masalah ... 11

3.1.2. Analisa Kebutuhan ... 12

3.1.3. Analisa Data ... 12

3.2. Perancangan Antar Muka/Desain Output ... 16

3.2.1. Tampilan Utama... 16

3.2.2. Tampilan Menu Pengujian ... 19

3.2.3. Tampilan Menu Prediksi ... 20

3.3. Perancangan Model Jaringan Srayaf Tiruan ... 21

3.3.1. Menetapkan Masukan ... 21

3.3.2. Variabel Keluaran ... 21

3.3.3. Arsitektur Jaringan ... 22

3.3.4. Membangun Jaringan ... 23

(16)

BAB IV IMPLEMENTASI DAN ANALISA... 28

4.1. Implementasi Program ... 28

4.2. Hasil Implementasi ... 48

4.2.1. Capture-capture Hasil... 48

4.2.1.1.Menu Utama... 48

4.2.1.2.Menu Pengujian ... 50

4.2.1.3.Menu Prediksi ... 51

4.3. Analisa Pelatihan Jaringan... 51

4.4. Pembahasan... 52

4.5. Analisa Hasil... 58

4.6. Kelebihan Sistem ... 58

4.7. Kekurangan Sistem ... 58

BAB V KESIMPULAN DAN SARAN... 58

5.1. Kesimpulan ... 60

5.2. Saran ... 61

DAFTAR PUSTAKA ... 62

LAMPIRAN ... L1

(17)

3.1 Tabel Kamus Mata Tes 12

3.2 Tabel Field Data Bapsi 13

3.3 Tabel Variabel Masukkan 21

3.4 Tabel Variabel Keluaran 21

4.1 Tabel pengujian dengan 1 hidden layer dan jumlah

neuron yang beda

53

4.2 Tebel pengujian dengan 1 hidden layer dan laju

pemahaman yang beda

54

4.3 Tabel pengujian dengan dua lapisan tersembunyi 55

4.4 Tabel inputan yang sama dengan tahun yang beda 56

4.5 Perbandingan IP dari tahun yang beda dan input sama

dengan IP JST

57

4.6 Perbandingan prosentase untuk data pelatihan 57

(18)

Gambar Keterangan Halaman

2.1 Arsitektur Jaringan Backpropagation 7

3.1 Tampilan Menu Utama 16

3.2 Tampilan Menu Pengujian 19

3.3 Tampilan Manu Prediksi 20

3.4 Arsitektur Jaringan 22

3.5 Flowchart Training Data 24

3.6 Flowchart Testing Data 26

4.1 Tampilan Aplikasi Menu Utama 48

4.2 Grafk Pembelajaran 49

4.3 Tampilan Kesimpulan hasil pelatihan 49

4.4 Tampilan Aplikasi Menu Pengujian 50

4.5 Tampilan Kesimpulan hasil pengujian 50

4.6 Tampilan Aplikasi Menu Prediksi 51

(19)

Grafik Keterangan Halaman

4.1 Pengujian dengan jumlah neuron tiap hidden layer beda 54

4.2 Pengujian dengan nilai laju pemahaman beda 55

4.3 Pengujian dengan dua hiddean layer 56

(20)

Lampiran 2 : Data Perbandingan target dengan output jaringan

Lampiran 3 : Contoh Perhitungan Manual

Lampiran 4 : Listing Program

Lampiran 5 : Surat Ijin Ambil Data ke BAPSI

(21)

1.1.Latar Belakang Masalah

Salah satu masalah yang sering sekali muncul dan sering terjadi di Teknik

Informatika Universitas Sanata Dharma adalah hasil Indeks Prestasi di tahun

pertama. Jika hal ini selalu diabaikan, dapat menyebabkan turunnya nilai

akreditasi dari jurusan Teknik Informatika itu sendiri. Untuk itu alangkah lebih

baik jika dalam proses awal penerimaan mahasiswa baru dilakukan seleksi lebih

ketat dengan melakukan prediksi terhadap setiap mahasiswa baru yang

memasukkan datanya sebagai calon mahasiswa di Teknik Informatika.

Masalah yang biasanya muncul saat hendak melakukan prediksi adalah

inputan apa saja yang akan menjadi bahan pertimbangan sehingga menghasilkan

nilai prediksi optimal. Karena setiap inputan yang hendak digunakan akan sangat

berpengaruh, maka dalam mengambil contoh harus dilakukan pertimbangan

matang. Sejauh ini inputan yang dapat dilakukan dalam prediksi Indeks Prestasi

seorang calon mahasiswa baru hanyalah hasil test masuk secara reguler saja. Hal

ini diambil karena di Teknik Informatika sendiri, seorang calon mahasiswa tidak

diwajibkan untuk menyerahkan nilai-nilai raport waktu SMA maupun hasil NEM

waktu lulus SMA (dapat dilihat dari tabel yang telah di dapat dari pihak BAPSI

ada di lampiran).

(22)

1.2.Rumusan Masalah

Dari latar belakang di atas dapat dirumuskan sebagai berikut:

Bagaimana membangun sebuah aplikasi Jaringan Syaraf Tiruan yang dapat

membantu manghasilkan prediksi sebuah Indeks Prestasi di tahun pertama

berdasarkan inputan nilai hasil test masuk dengan menggunakan metode

Backpropagation?

1.3.Batasan Masalah

Dalam prediksi indeks prestasi mahasiswa baru dengan jaringan syaraf tiruan

yang menggunakan metode backpropagation ini dilakukan beberapa batasan

masalah antar lain sebagai berikut:

• Prediksi hanya dilakukan untuk calon mahasiswa yang masuk melalui test

atau regular(tidak untuk calon mahasiswa yang masuk melalui jalur prestasi

atau yang lainnya).

• Inputan hanya berdasar data test masuk mahasiswa yang biasa digunakan

(faktor luar selain sisi akademik tidak menjadi pertimbangan). Inputannya ada

lima macam yaitu Penalaran Verbal, Kemampuan Numerik, Penalaran

Mekanik, Hubungan Ruang, Bahasa Inggris.

• Dalam melakukan prediksi ini metode jaringan syaraf tiruan yang digunakan

hanya metode Backpropagation.

• Data penelitian yang bisa didapatkan dari pihak Bapsi dan yang dapat

(23)

• Data untuk training atau pelatihan sebesar 70% awal dari data tiap tahun yang

sudah digabung menjadi satu dan untuk data testing atau pengujian sebesarr

30% setelah data training.

• Untuk jumlah hidden layer hanya dibatasi maksimum 2 layar.

• Untuk tiap hidden layernya maksimun neuronnya dibatasi hanya 40 neuron.

• Untuk maksimum epoch hanya dibatasi maksimum 8000 epoch.

• Untuk jenis fungsi aktivasi yang nantinya digunakan adalah fungsi sigmoid

biner (logsig).

• Bahasa pemrograman yang digunakan adalah Matlab versi 7.0 di bawah

system operasi Windows.

• Penyimpanan data tidak dilakukan menggunakan database. Data yang

digunakan adalah data dalam bentuk text atau .txt. Data yang di dapat dari

BAPSI USD dalam bentuk excel dapat langsung di lakukan save as terlebih

dahulu menjadi bentuk text.

1.4.Tujuan dan Manfaat Penulisan

Beberapa hal yang menjadi tujuan dari pembuatan program Bantu untuk

prediksi Indeks Prestasi awal semester antara lain :

• Merancang sistem Jaringan Syaraf Tiruan untuk memberikan prediksi

keputusan tetang Indeks Prestasi tahun pertama kepada calon Mahasiswa Baru

yang mendaftar sebagai mahasiswa teknik informatika.

Sedangkan manfaat yang akan diperoleh dari penulisan skripsi ini adalah

(24)

Teknik Informatika Universitas Sanata Dharma adalah mahasiswa/mahasiswi

yang berkualitas dan diharapkan nantinya saat lulus dapat bersaing dengan

masyarakat di luar Universitas Sanata Dharma.

1.5.Metodologi Penulisan

• Mengambil data secara real di BAPSI USD, lalu menentukan faktor-faktor

yang sangat mempengaruhi dalam proses prediksi dan nantinya akan dijadikan

inputan.

• Studi pustaka tentang prediksi dengan jaringan syaraf tiruan yang

menggunakan metode Backpropagation.

• Implementasi prediksi Indeks Prentasi dengan Jaringan Syaraf Tiruan

menggunakan metode Backpropagation dalam suatu program Matlab versi

7.0.

1.6.Sistematika Penulisan

Dalam penulisan skripsi ini akan dibagi menjadi 5 bagian yaitu:

BAB I Pendahuluan

Pendahuluan di sini dimaksudkan sebagai pengantar sebelum memasuki isi dari

penulisan yang sesungguhnya. Pada bab ini meliputi latar belakang masalah yang

mana akan menjelaskan masalah apa yang terjadi dan alasan timbulnya masalah,

batasan masalah akan menjelaskan batasan-batasan yang akan diselesaikan dalam

(25)

yang diangkat dan manfaat atau keuntungan yang akan dicapai dari penelitian ini,

rumusan masalah, metodologi penelitian,dan sistematika penulisan.

BAB II Landasan Teori

Berisi teori-teori yang menjelaskan tentang Jaringan Syaraf Tiruan, metode

Backpropagation dan teori yang berkaitan dengan pembuatan Tugas Akhir ini.

BAB III Analisis dan Perancangan Sistem

Berisi tentang analisa sistem yang terdiri dari analisa masalah, analisakebutuhan,

dan analisa data yang digunakan yaitu nilai test masuk pada tahun 2003-2007

sebagai input pada jaringan syaraf tiruan. Kemudian dilanjutkan dengan

perancangan system dan perancangan interface (desain output).

BAB IV Implementasi dan Analisa

Bagian ini akan membahas bagaimana sebagai penulis mengubah rancangan yang

sudah ditulis sebelumnya ke penerapan yang sesungguhnya. Kemudian akan

dilanjutkan dengan jawaban atas rumusan masalah yang telah dikemukakan pada

BAB I.

BAB V Kesimpulan dan Saran

Pada bab ini akan berisi tentang jawaban secara singkat dari rumusan masalah dan

(26)

2.1.Jaringan Syaraf Tiruan

2.1.1.Pengertian Jaringan Syaraf Tiruan

Jaringan syaraf tiruan yang sering disingkat sebagai JST adalah sebuah

paradigma pemrosesan suatu informasi yang terinspirasi dari system sel pada

biologi, yang mana mempunyai cara kerja seperti otak dalam memproses suatu

informasi. Salah satu metode yang ada pada Jaringan syaraf tiruan adalah

Backpropagation, yang mana metode ini nantinya akan digunakan pada penulisan

skripsi.

2.2.Backpropagation

2.2.1. Arsitektur Jaringan Backpropagation

Pada metode Backpropagation terdapat layar tersembunyi (hidden layer)

yang terletak diantara unit input dan unit output. Sedangkan di setiap layar

memiliki sebuah bias. Untuk modifikasi bobotnya menggunakan aturan Delta.

Dapat digambarkan arsitektur dari Backpropagation adalah sebagai berikut :

(27)

Gambar 2.1 Arsitektur Jaringan Backpropagation x 1 Y1 x n xi

Yk Ym

z

1

z

p

1 zj

1 wmp wkp w1p wmj wkj w1j wm1 wk1 w10 w11 wm0 wk0 vpn v1n vjn vpi

vj0 vj1 vji

v10 v

11 v1i

vp1

vp0

2.2.2.Pelatihan Standart Backpropagation

Pelatihan Backpropagation terdiri dari 3 fase yaitu:

• Fase I : Propagasi maju

Saat propagasi maju, sinyal masukkan (xi) dipropagasikan ke layar

tersembunyi menggunakan fungsi aktivasi yang telah ditetapkan sebelumnya.

Kemudian keluaran dari setiap unit layar tersembunyi (zj) tersebut dipropagasi

maju lagi ke layar tersembunyi di atasnya menggunakan fungsi aktivasi t\yang

tealh ditetapkan pula. Dilakukan terus hingga memperoleh hasil keluaran

jaringan (yk).

Selanjutnya,keluaran jaringan tersebut dibandingkan dengan target yang

harusnya dicapai (tk). Maka selisih antara target dan keluaran jaringan (tk - yk)

merupakan sebuah kesalahan yang terjadi (error). Apabila kesalahan yang

dihasilkan lebih besar dari toleransi kesalahan yang sudah ditetapkan

sebelumnya, maka bobot setiap garis pada jaringan akan dilakukan modifikasi

(28)

dihasilkan lebih kecil dari toleransi kesalahan yang ditetapkan, maka iterasi

sudah dapat dihentikan.

• Fase II : Propagasi mundur

Berdasarkan kesalahan (tk-yk), dihitung faktor δk (k = 1,2,...,m) layar keluaran.

δk nantinya akan dipakai sebagai dasar perubahan atau pada saat melakukan

modifikasi yang akan dilakukan pada fase III.

Dengan cara yang sama, hitung faktor δj untuk setiap layar di bawahnya sampai

semua bobot termodifikasi.

• Fase III : Perubahan bobot

Pada fase ini intinya adalah melakukan modifikasi bobot berdasarkan faktor

kesalahan δk yang telah dilakukan pada fase sebelumnya.

Ketiga fase tersebut akan terus diulang-ulang sampai kondisi penghentian telah

dipenuhi. Untuk kriteria penghentian iterasi adalah sebagai berikut :

• Kesalahan keluaran < batas toleransi yang diberikan

• Jumlah epoch > maksimun iterasi yang ditetapkan

• Penurunan kesalahan terlalu kecil

2.2.3. Algoritma Backpropagation

Untuk algoritma pelatihan standart pada Backpropagation adalah sebagai

berikut:

0. Inisialisasi semua bobot dengan bilingan random kecil

1. Jika kondisi penghentian belum terpenuhi, lakukan langkah 2-9

(29)

3. setiap unit masukkan menerima sinyal dan meneruskannya ke unit tersembunyi

di atasnya

4. Hitung semua keluaran di unit tersembunyi zj (j = 1,2,...,p)

z_net j =

1 n jo i i

v

x

=

+

v

ji

_

1

1

z netj

e

+

zj = f (z_net j ) =

5. Hitung semua keluaran jaringan di unit yk (k = 1,....,m)

y_net k =

1 p

ko j k j

j

w

z

=

+

w

_

1

1

+

e

y netk

yk = f (y_net k ) =

6. Hitung factor unit keluaran berdasarkan kesalahan di setiap unit keluaran

yk (k = 1,…,m)

=

7. Hitung suku perubahan bobot Δwkj (yang akan dipakai nanti untuk merubah

bobot wkj) dengan laju percapatan α

(k = 1, ... ,m ; j = 0, ... , p )

8. Hitung kesalahan unit tersembunyi berdasarkan kesalahan di setiap unit

tersembunyi zj (j = 1,…,p)

Factor kesalahan unit tersembunyi :

=

(

) (

' _

k tk yk f y netk

δ = −

)

(

tkyk

) (

yk 1− yk

)

kj k j

w

α δ

z

Δ

=

1 _ m j k k net w

δ

δ

=

=

k j

(

)

_

'

_

j

net f

j

z net

j

_

(

1

)

(30)

Hitung suku perubahan bobot Δ vji

;

Δ =

v

ji

α δ

j

x

i

j = 1, 2, ... , p ; i = 0, 1, ... ,n

9. Hitung semua perubahan bobot

Perubahan bobot garis yang menuju ke unit keluaran

wk j(baru)=wk j(lama)+ Δwk j

(k = 1, 2, ... ,m ; j = 0, 1, ... , p)

Perubahan bobot garis yang menuju ke unit tersembunyi

(j = 1, 2, ... , p; i = 0, 1, ... , n)

(

)

(

)

j i j i

(31)

3.1.Analisa Sistem

3.1.1.Analisa Masalah

Alasan dari pembuatan program bantu ini adalah untuk mendapatkan atau

proses penyaringan calon-calon mahasiswa teknik informatika yang cukup

berkualitas. Dengan demikian diharapkan dengan program bantu ini mahasiswa

yang diterima pada program studi teknik informatika dapat memperoleh hasil

indeks prestasi di tahun pertama yang cukup memuaskan. Dengan program bantu

ini saat dilakukan prediksi Indeks Prestasi dengan inputan nilai-nilai test masuk

dan ternyata hasilnya di rasa tidak begitu baik calon mahasiswa tersebut otomatis

akan ditolak masuk program studi teknik informatika dan calon mahasiswa

tersebut dapat mencobanya kembali pada test gelombang berikutnya dengan

pilihan yang sama ataupun berubah pikiran dengan memilih program studi yang

lain. Hal ini dilakukan dengan harapan mengurangi jumlah mahasiswa yang

masuk di program studi teknik informatika ini dengan alasan kesasaran ataupun

diterimanya di sini. Dengan alasan semacam itu terkesan program studi teknik

informatika adalah program studi buangan, oleh karena itu dengan range nilai

yang telah ditetapkan oleh pihak jurusan maka dengan program bantu ini

diharapkan semoga dapat memecahkan masalah-masalah yang sering terjadi di

program studi teknik informatika. Masalah yang sering ditemukan antara lain:

• Nilai indeks prestasi pada tahun pertama yang jelek.

(32)

• Dengan indeks prestasi yang jelek maka mahasiswa akan terhambat dalam

menempuh mata kuliah di semester berikutnya karena terbatasnya mata kuliah

yang boleh diambil jika indeks prestasi yang diperoleh jelek

3.1.2.Analisa Kebutuhan

• Program bantu ini dirasa perlu karena banyak mahasiswa di program studi

teknik informatika yang sudah diterima dan di tahun pertama kuliah

memperoleh nilai indeks prestasi yang jelek.

• Program bantu ini dibuat untuk menjaring calon mahasiswa pada program studi

teknik informatika yang benar-benar minat masuk pada program studi ini.

3.1.3.Analisa Data

Dalam sistem bantu ini data yang dibutuhkan di bagi menjadi 3 :

• Data mentah

Data mentah di sini adalah data yang dibutuhkan dalam proses pelatihan,

pengujian, maupun nantinya melakukan prediksi. Sebelum data mentah ini

masuk ke dalam proses-proses tersebut, data mentah yang didapat dilakukan

proses transformasi terlebih dahulu agar range yang di dapat sama seperti

fungsi sigmoid biner. Data mentah ini didapatkan dari pihak BAPSI.

Sedangkan data yang dapat diperoleh dari pihak BAPSI adalah sebagai berikut:

Kamus Mata Tes

Tabel 3.1 Kamus Mata Tes

Kode Mata Tes

11 Penalaran Verbal

12 Kemampuan Numerik

(33)

14 Hubungan Ruang

15 Bahasa Inggris

Tabel 3.2 Field Data Bapsi

Field Keterangan

Nomor Nomor Pendaftaran

Namacln Nama Calon

pil1 Pilihan 1

pil2 Pilihan 2

pil3 Pilihan 3

kd_sex

kd_kawin Kode kawin (Belum kawin,nikah,sudah menikah)

kd_warga Warga negara

kd_agama Agama

Alamatpos Alamat kontak lewat pos

Almtcln Alamat calon

Kotmpcln Kota asal calon

Thnsttb Tahun sttb Jumsttb Jum sttb

Jummtsttb Jumlah mata pelajaran sttb

Jumnem Jumlah nem

Jummtnem Jumlah mata pelajaran nem nama_ortu Nama orang tua

pend_ortu Pendidikan orang tua Telepon Telepon

kd_sekolah Sekolah asal

(34)

Sedangkan banyaknya record yang dapat diperoleh dari pihak BAPSI adalah

350 record, dengan rincian sebagai berikut :

61 mahasiswa angkatan 2003

56 mahasiswa angkatan 2004

83 mahasiswa angkatan 2005

85 mahasiswa angkatan 2006

65 mahasiswa angkatan 2007

Data transformasi dapat diperoleh dengan cara sebagai berikut:

Jika a adalah data minimum dan b adalah data maksimum, maka proses

transformasi datanya adalah

x’=(0.8(xa) (ba))+0.1

Untuk mengembalikan nilai transformasi tersebut agar nilai prediksi indeks

prestasi tersebut tidak lagi berada pada range 0 sampai dengan 1 melainkan

menjadi nilai indeks prestasi yang sesungguhnya dengan range 0-4. Adapun

rumus untuk mengembalikan nilai transformasi tersebut adalah sebagai

berikut:

x=(((x’-0.1)(b-a))/0.8)+a

• Data training

Setelah mendapatkan data mentah dan telah ditransformasi, diambil 70 persen

pertama untuk setiap data per tahunnya dari jumlah data yang sudah lengkap

(terdapat nilai indeks prestasi di awal semester) akan digunakan sebagai data

(35)

• Data testing

Sisa data mentah dari data training yang telah ditransformasi dalam hal ini

sebesar 30 persen data berikutnya dari data trainining akan digunakan sebagai

data testing.

Data yang sudah tergolong sebagai masukkan secara berurutan adalah sebagai

berikut :

• Nilai test masuk Penalaran Verbal, yang akan disimpan sebagai variabel X1

• Nilai test masuk Kemampuan Numerik, yang akan disimpan sebagai variabel

X2

• Nilai test masuk Panalaran Mekanik, yang akan disimpan sebagai variabel X3

• Nilai test masuk Hubungan Ruang, yang akan disimpan sebagai variabel X4

• Nilai test masuk Bahasa Inggris, yang akan disimpan sebagai variabel X5

Dalam pengolahan, data yang di dapat dari pihak Bapsi berupa data excel

untuk itu data tersebut di save as terlebih dahulu ke dalam bentuk teks atau .txt. Di

sini tidak menggunakan database karena dirasa akan mengalami kesulitan pada

saat melakukan implementasi. Hal semacam ini dipilih karena bahasa

pemrograman yang akan digunakan pada proses implementasi adalah bahasa

Matlab. Sedangkan untuk bahasa Matlab cukup susah jika akan menerapkan

database di dalamnya. Bahasa pemrograman Matlab lebih cocok jika data yang

ada dibuat dalam bentuk matrik dan kemudian data yang sudah dibentuk dalam

(36)

3.2.Perancangan Antar Muka / Desain Output

3.2.1.Tampilan Utama

Menu Utama

Menu Utama

PENERAPAN JARINGAN SYARAF TIRUAN TERHADAP PREDIKSI INDEKS PRESTASI MAHASISWA DI TEKNIK INFORMATIKA

UNIVERSITAS SANATA DHARMA YOGYAKARTA

PELATIHAN

Data Input & Target BROWSE

Jumlah Layar tersembunyi 1

Jumlah Node Layr ke- 1 INPUT

Laju Pemahaan

Kriteria Penghentian

BERSIH PROSES DATA PELATIHAN

KELUAT PENGUJIAN

Batas Error/Targe Error

Max Epoch

HASIL PROSES PELATIHAN

Besar Prosentase Data Pelatihan yang Dikenali

PREDIKSI

Gambar 3.1 Tampilan Menu Utama

Saat program bantu ini jadi nantinya untuk tampilan utamanya semacam di

atas. User dapat langsung mengisi semua data yang dibutuhkan untuk proses

pelatihan sesuai tempat inputan yang sudah di siapkan. Pelatihan dilakukan

berdasarkan dengan data inputan yang mana data tersebut adalah data dari

nilai-nilai test masuk mahasiswa tahun ajaran baru. Sedangkan untuk data output

adalah sebuah target dan yang dimaksud di sini adalah nilai indeks prestasi dari

seorang mahasiswa pada tahun ajaran baru atau pada tahun pertama. Untuk data

input dan data target nantinya akan berupa sebuah matrik dengan aturan

banyaknya data yang ada di kali jumlah inputan atau output. Karena dilakukan

(37)

Sedangkan untuk jumlah node pada tiap hidden layer juga disiapkan combo box

yang mana nilai dari combo box jumlah node ini akan menyesuaikan dengan

combo box dari hidden layar, user dipersilahkan mengisi sesuai dari jumlah node

di layer tersembunyi paling dekat dengan inputan. Untuk jumlah node satu sama

yang lain user dapat melakukan dengan menekan input. Ada beberapa hal yang

cukup berpengaruh pada hasil pelatihan nantinya dan diantara adalah

• Jumlah hidden layer yang digunakan beserta jumlah node pada tiap hidden

layer tersebut

• Batas maksimum epoch

• Batas maksimum error

• Nilai laju pemahaman yang hendak digunakan pada pelatihan tersebut

• Nilai-nilai bobot awal dengan bilangan random terkecil baik terhadap layar

tersembunyi maupun layar keluaran

Pada menu utama untuk group box pelatihan ini terdapat dua buah button

yaitu

• Proses Data Pelatihan : button ini digunakan untuk melakukan proses dari

pelatihan sesuai dengan data yang telah diisikan oleh user pada form

utama tersebut. Pada saat user menekan button ini maka output yang akan

dihasilkan dari button ini adalah sebuah grafik yang akan muncul secara

terpisah dari form menu utama ini dan akan muncul besar prosentase pada

group box hasil proses pelatihan yang mana menunjukkan seberapa besar

jaringan dikenalin untuk mendekati max error atau target error yang telah

(38)

terdapat tiga buah button yang berada di bawah group box tersebut yaitu

button prediksi, pengujian dan keluar. Adapun fungsi dari buttonnya

masing-masing adalah :

o Button prediksi digunakan untuk menuju ke tampilan form baru dengan

nama menu prediksi yang mana pada menu ini user dapat langsung

melakukan proses prediksi jika hasil dari proses pelatihan yang

dilakukan dirasa sudah cukup memuaskan atau maksimal.

o Button pengujian digunakan untuk menuju ke tampilan form baru yang

namanya adalah menu pelatihan di mana form ini akan melakukan

pengujian dengan data baru selain data pelatihan sebelumnya untuk

melihat seberapa besar data dalam mengenali jaringan yang dibentuk.

o Button keluar digunakan untuk menutup dari aplikasi tersesbut.

• Button bersih digunakan jika user hendak mengubah data yang sudah

(39)

3.2.2.Tampilan Menu Pengujian

Menu Pengujian

Menu Pengujian

PENERAPAN JARINGAN SYARAF TIRUAN TERHADAP PREDIKSI INDEKS PRESTASI MAHASISWA DI TEKNIK INFORMATIKA

UNIVERSITAS SANATA DHARMA YOGYAKARTA

PENGUJIAN

Data Input & Target BROWSE

KELUAR PROSES PENGUJIAN DATA

KEMBALI BERSIH

PREDIKSI

Gambar 3.2 Tampilan Menu Pengujian

Pada form yang di beri nama menu pengujian ini akan melakukan proses

pengenalan ulang pada jaringan yang sudah digunakan pada data pelatihan dengan

memasukkan data input dan data target baru di luar data pelatihan. Hal ini

dilakukan dengan tujuan agar mengetahui seberapa besar jaringan dikenali dengan

data baru ini. Output dari proses pengujian data ini akan di bawah sebelah button

proses pengujian data. Saat output yang dihasilkan sudah di rasa cukup mengenali

jaringan tersebut maka user dapat meneruskan dengan melakukan proses prediksi

itu sendiri. Tetapi jika user merasa belum puas dan ingin mengubah jaringan maka

(40)

3.2.3.Tampilan Menu Prediksi

Menu Prediksi

Menu Prediksi

PENERAPAN JARINGAN SYARAF TIRUAN TERHADAP PREDIKSI INDEKS PRESTASI MAHASISWA DI TEKNIK INFORMATIKA

UNIVERSITAS SANATA DHARMA YOGYAKARTA

NILAI TEST MASUK

Penilaian Verbal

Kemampuan Numerik

KELUAR PREDIKSI INDEKS PRESTASI

BERSIH Bahasa Inggris Hubungan Ruang Penalaran Mekanik

Gambar 3.3 Tampilan Menu Prediksi

Menu ini adalah menu utama atau tujuan dibuatnya program Bantu ini. Saat

menu prediksi dipilih akan keluar sebuah tampilan yang tidak berbeda dengan

menu-menu sebelumnya yaitu sebuah form. Tetapi yang membedakan adalah

form ini di isi berdasar nilai test masuk yang baru saja didapatkan lain halnya

dengan dua menu sebelumnya dalam bentuk matrik. Pada menu prediksi akan ada

tiga buah button yaitu yang pertama tombol prediksi indeks prestasi berfungsi

untuk menilai apakah calon mahasiswa ini nantinya masuk ke dalam kategori

mahasiswa yang berprestasi, tidak berprestasi atau tidak dikenal oleh jaringan.

Untuk menentukannya akan dibuat sebuah range yang menunjukkan

(41)

pembersih dari text field yang telah diisi oleh user, hal ini bertujuan agar user

tidak perlu keluar terlebih dahulu jika hendak melakukan prediksi lagi terhadap

mahasiswa lainnya dan button yang ketiga adalah button keluar yang mempunyai

fungsi untuk keluar dari menu prediksi ini sekaligus keluar dari aplikasi.

3.3.Perancangan Model Jaringan Syaraf Tiruan

Perancangan Model Jaringan Syaraf Tiruan dibagi menjadi 3:

3.3.1.Menetapkan Masukan

Tabel 3.3 Variabel Masukan

Kode data Keterangan Variabel masukkan

PN Nilai test Penalaran Verbal X1

KN Nilai test Kemampuan Numerik X2

PM Nilai test Penalaran Mekanik X3

HR Nilai test Hubungan Ruang X4

BI Nilai test Bahasa Inggris X5

3.3.2.Variabel Keluaran

Output yang akan dihasilkan adalah nilai IP awal semester untuk mahasiswa

baru.

Tabel 3.4 Variabel Keluaran

Kode Keterangan Variabel target

(42)

3.3.3.Arsitektur Jaringan

Dalam penulisan skripsi ini arsitektuk Jaringan Syaraf Tiruan yang akan

digunakan adalah 5-1 di mana artinya adalah

• Mempunyai 5 neuron untuk layer input

Neuron di sini menyatakan himpunan unit-unit yang dihubungkan dengan

layer tersembunyi dengan jalur koneksi di mana jalur-jalur tersebut memiliki

bobot yang berbeda-beda.

• Mempunyai 1 neuron untuk layer output

Neuron di sini menyatakan unit yang menjadi target dari sebuah jaringan.

Sedangkan untuk banyaknya layer tersembunyi dan node pada layer

tersembunyi tersebut dilakukan cara coba-coba. Adapun gambarannya

arsitekturnya adalah sebagai berikut :

X1

TARGET

X5 X4 X3 X2

Zj Z1

.

.

.

.

PN

KN

PM

HR

BI

Y 1

1

(43)

3.3.4.Membangun Jaringan

Jaringan syaraf tiruan dengan menggunakan Backpropagation

diinisialisasikan dengan perintah newff. Sintaknya:

net=newff(PR,[S1 S2 ...SN], {TF1 TF2…TFN},BTF,BLF,PF)

Keterangan:

• PR adalah metriks berukuran RX2 yang berisi nilai maksimum dan

minimum deri elemen-elemen masukan

• SN adalah jumlah neuron dari layer ke-n

• TFN adalah fungsi aktivasi transfer dari layer ke-n (default:tansig.sigmoid

bipolar)

• BTF adalah fungsi training jaringan backpropagation (default:traingdx)

• BLF adalah fungsi perubahan bobot/bias (default:learngdm)

• PF adalah fungsi performa/kinerja(default:mse)

(44)

3.3.5.Bagan Alir Pelatihan/Training

S t a r t

D a t a ( s u d a h d i t r a n s f o r m a s i ) y a n g a k a n d i g u n a k a n t r a i n i n g

T e n t u k a n B o b o t a w a l d e n g a n b i l r a n d o m , t e n t u k a n t a r g e t e r r o r , t e n t u k a n m a x e p o c h , t e n t u k a n l a j u p e m a h a m a n (a)

H i t u n g k e l u a r a n u n i t t e r s e m b u n y i

H i t u n g u n i t yk d e n g a n m e n g g u n a k a n z j s e b a g a i i n p u t

H i t u n g f a k t o r k e s a l a h a n d a r i u n i t k e l u a r a n

H i t u n g s u k u p e r u b a h a n b o b o t

H i t u n g f a k t o r k e s a l a h a n u n i t t e r s e m b u n y i b e r d a s a r k a n

k e s a l a h a n d i s e t i a p u n i t t e r s e m b u n y i

H i t u n g s e m u a p e r u b a h a n b o b o t

E p o c h < = M a x E p o c h

E p o c h + = 1

H it u n g b e s a r e r r o r

E r r o r < t a r g e t E r r o r

S im p a n b o b o t a k h i r

Y

Y

T

T

E N D

(45)

Penjelasan:

Awalnya data real yang didapat dari pihak bapsi di save terlebih dahulu ke

dalam bentuk teks atau .txt, dan data tersebut diambil 70% dari data tsetiap

tahunnya. Kemudian pada program matlab data tersebut di lakukan proses

transformasi yang mana proses ini diakukan dengan tujuan memperkecil nilai data

yang berada pada range 0 sampai dengan 1 dan memudahkan jaringan dalam hal

mengenali pola data. Setelah diperoleh data dengan nilai kecil maka akan

dibentuk jaringan saat jaringan sudah terbentuk program akan menentukan bobot

random dengan nilai kecil dan melengkapi dengan parameter-parameter yang

dibutuhkan untuk proses pelatihan antara lain learing rate, kriteria penghentian.

Kemudian dilakukan perhitungan output dari unit tiap lapisan tersembunyi yang

ada. Jika masih terdpat lapisan tersembunyi berikutnya dilakukan hal yang sama

dengan output lapisan tersembunyi yang pertama sebagai inputnya. Tetapi jika

sudah tidak terdapat lapisan tersembunyi lagi maka hitung unit Yk dengan Zj atau

output lapisan tersembunyi yang terakhir sebagai input. Lalu hitung faktor

kesalahan atau error dari unit keluaran. Setelah diketahui error dari unit keluaran

maka dilakukan perhitungan suku perubahan bobot. Sealain menghitung error

dari unit keluaran juga dilakukan perhitungan faktor kesalahan atau error di setiap

unit di lapisan tersembunyi. Seperti pada unit keluaran juga dilakukan perhitungan

unutk semua perubahan bobot. Setelah selesai pada perhitungan perubahan bobot

maka akan dilakukan perulangan yang mana jika epoch lebih kecih sama dengan

maksimum epoch yang diperbolehkan maka epoch akan bertambah satu dan

(46)

galat/target error yang diberikan maka bobot tersebut akan disimpan untuk

digunakan pada proses pengujian atau proses prediksi nantinya.

3.3.6.Bagan Alir Testing

START

Load tabel hasil belajar

Input data testing

Algoritma BP

Output

Ulang?

END T

Y

(47)

Penjelasan:

Pada flowchart proses testing di atas dapat dilihat bahwa untuk awalnya

proses akan mengambil jaringan beserta bobot yang didapatkan dari proses

training atau proses pembelajaran. Setelah proses pengambilan selesai maka akan

di masukkan data testing itu sendiri yang berupa teks kemudian data tersebut

diolah menggunakan jaringan yang sudah ada dan akan dihasilkan output jaringan.

Jika data testing masih ada maka proses akan diulangi sampai data terakhir pada

data testing tersebut.

3.3.7.Pelatihan Jaringan

Pada awalnya jaringan diatur secara acak. Kemudian data dimasukkan ke

jaringan syaraf tiruan untuk dilakukan proses pembelajaran atau pelatihan

jaringan. Ketika data dimasukkan maka jaringan syaraf akan belajar dengan cara

mengubah parameter-parameter sehingga dapat mendekati dengan pola masukkan.

Setelah semua data untuk proses pelatihan sudah dimasukkan jaringan akan

mengenal dan mengidentifikasi pola data tersebut sehingga pola pelatihan yang

terbentuk nantinya dapat digunakan untuk proses prediksi atau peramalan. Output

yang dihasilkan oleh jaringan akan dibandingkan dengan target data yang

(48)

Bab ini adalah bab yang membahas tentang pemrograman dan analisa dari

program tersebut dan pembahasan.

Data yang di dapat dari pihak Bapsi adalah data dalam bentuk exel.

Sebelum data tersebut diolah maka data di save as terlebuh dahulu ke dalam

bentuk teks atau dengan ekstensi .txt dan di sini data yang disimpan dalam bentuk

teks ini harus di beri nama data hal ini karena sudah di default dalam program.

Handles gunanya untuk gui, memanggil komponen-komponen pada gui itu

sendiri. Global gunanya untuk membuat variabel sesuai kebutuhan pada function

tersebut.

4.1. Implementasi Program

Penelitian ini akan membandingkan hasil antara output yang dihasilkan

oleh jaringan syaraf tiruan menggunakan metode backpropagation dengan target

yang sebenarnya. Perancangan jaringan yang sudah dibentuk akan

diimplementasikan dalam bahasa pemrograman Matlab. Dibawah ini akan

dijelaskan beberapa listing program yang terkai dengan pelatihan,pengujian dan

prediksi indeks prestasi menggunakan jaringan syaraf tiruan dengan metode

backpropagation.

Saat user hendak memasukkan data yang akan diolah, terlebih dahulu user

akan diperikan sebuah peringatan bahwa data yang diolah harus berupa teks

dengan ekstensi txt. Untuk listing program pesan tersebut adalah sebagai berikut:

(49)

msgbox('Data yang dimasukkan berupa data text','Perhatian', 'warn');

uiwait;

potongan listing program diatas akan memberikan action saat user menekan

button browse.

Setelah user mengerti dan menjalankan peringatan tersebut yaitu

memasukkan data berupa teks maka data tersebut akan di olah. Sedangkan untuk

pengolahan data tersebut akan dilakukan dengan listing program berikut:

global input_training

[input,path]=uigetfile('*.txt','Pilih file text'); if isequal(input,0)

msgbox('Isi dahulu data input','Perhatian','warn') return;

end

set(handles.tr_input,'String',input); set(handles.tr_input,'Userdata',input); %PROSES IMPORT DATA dari data bentuk teks rawData1 = importdata(input);

[unused,name] = fileparts(input); newData1.(genvarname(name)) = rawData1;

% Create new variables in the base workspace from those fields.

vars = fieldnames(newData1); for i = 1:length(vars)

assignin('base', vars{i}, newData1.(vars{i})); end

%AKHIR PROSES IMPORT load(input);

input_training=load(input);

Keterangan :

• Pada fungsi browse ini pertama kali dibuat sebuah pendeklarasian variable

terlebih dahulu dengan variabel global yaitu input_training.

• Terdapat perintah uigetfile dimana perintah ini digunakan untuk membaca file

dengan format yang telah ditentukan dan dalam hal ini dalam bentuk text.

Isequal di sini untuk mengecek persamaan sebuah array apakah input yang

(50)

user belum melakukan proses browse dengan benar maka akan ada peringatan

yang dimunculkan dalam sebuah message box dengan pesan ”Isi dahulu data

input”.

• Tetapi jika user telah melakukan proses browse dengan benar maka data yang

telah di ambil melalui proses browse akan langsung di load.

• Untuk listing yang berwarna merah adalah listing yang berguna untuk

mengimport data dari data dengan ekstensi .txt.

Untuk proses penentuan berapa banyak jumlah layer tersembunyi yang

akan digunakan oleh user pada proses training atau pengujian ini maka dibuat

dengan cara menyediakan sebuah popupmenu dengan nilai dari 1 sampai 40. User

dapat memilih sesuai kehendak mereka, jika user telah memilih jumlah layer

tersembunyi sebanyak 1 layer atau 2 layer maka pada popupmenu untuk node tiap

layer akan menyesuaikan jumlahnya dengan jumlah popupmenu yang telah dipilih

pada layer tersembunyi. Maka program yang digunakan untuk melakukan perintah

tersebuat adalah sebagai berikut :

function pop_hidden_Callback(hObject, eventdata, handles) handles.p=get(handles.pop_hidden,'Value');

if handles.p==1

set(handles.pop_node,'String','1'); elseif handles.p==2

set(handles.pop_node,'String','1|2'); end

Keterangan :

• Dibuat sebuah variabel baru dengan nama p yang mana mempunyai fungsi

untuk mengambil nilai dari pop_hidden yaitu banyaknya user memilih jumlah

(51)

• Lalu dilakukan statement kontrol dengan menggunakan if. Yang mana nilai

dari varibel p akan sama dengan nilai pada popupmenu untuk node.

Untuk tools edit text yang ada pada sebelah pop_node digunakan untuk

mengisi berapa jumlah node yang akan digunakan untuk setiap layernya. Untuk

setiap jumlah node yang di masukkan di beri batasan yaitu tiap layernya

maksimum 40 node. Program yang digunakan untuk perintah tersebut adalah

sebagai berikut :

function tr_node_Callback(hObject, eventdata, handles) ns=get(handles.tr_node,'String');

n=str2num(ns); if n>=1 & n<41

ns=num2str(n);

set(handles.tr_node,'String',ns); else

msgbox('Isi tiap layer dengan jumlah node maksimum 40); set(handles.tr_node,'String','');

end

Keterangan :

• Dibuat variabel baru dengan nama ns yang mana variabel ini digunakan untuk

mengambil nilai dari tr_node yang dimasukkan user dan berupa string.

• Dibuat pula variabel baru dengan nama n yang mana variabel ini untuk

menyimpan nilai dari variabel ns yang dibuat dari tipe string menjadi tipe

numerik.

• Kemudian dilakukan statemen kontrol menggunakan if. Yaitu jika n diantara

nilai 1 sampai dengan 40 maka nilai diterima tetapi jka nilai dari n tidak sesuai

syarat maka akan muncul message box yang berisi peringatan bahwa jumlah

(52)

Jika nilai masukkan dari node sudah tidak ada peringatan maka user dapat

memisahkan nilai tiap node untuk tiap layernya dengan menekan tombol input

lalu dapat mengisi banyaknya node untuk layer berikutnya juka user memilih

banyaknya layer tersembunyi lebih dari satu. Program yang digunkan pada button

input tersebut adalah sebagai berikut :

function bt_input_Callback(hObject, eventdata, handles) global jum_node_pertama

global jum_node_kedua B=[];

n=get(handles.pop_node,'Value'); if n==1

B(1,1)=str2num(get(handles.tr_node,'String')); jum_node_pertama=B(1,1);

elseif n==2

B(1,2)=str2num(get(handles.tr_node,'String')); jum_node_kedua=B(1,2);

end

set(handles.tr_node,'String','');

Keterangan :

• Dideklarasikan beberapa variabel yang nantinya akan digunakan untuk

menampung sebuah array sebagai nilai banyaknya node masukkan dari user.

Variabel global tersebut antara lain adalah jum_node_pertama dan

jum_node_kedua.

• Dideklarsikan juga sebuah array kosong dengan nama array B.

• Dibuat juga sebuah variabel baru dengan nama n yang berguna untuk

mengambil nilai dari pop_node.

• Dilakukan statemen kontrol dengan if, yaitu jika nilai n atau pop_node adalah

1 atau 2 maka akan dibentuk atau diletakkan pada array B dengan susunan

(53)

berupa nilai yang telah dirubah ke dalam bentuk numerik dari tr_node yaitu

jumlah node pada layer ke- yang diisi oleh user.

Untuk edit text pada laju pemahaman yang diberi nama tr_laju ini user

hanya dapat mengisi dengan nilai 1 ke bawah. Hal ini dilakukan karena laju

pemahaman diusahakan untuk di isi dengan nilai yang pas sehingga proses

pelatihan bisa menghasilkan output yang maksimal. Semakin besar nilai laju

pemahaman semakin kurang akurat hasil dari proses pelatihan, begitu juga

sebaliknya jika terlalu kecil maka proses pelatihan akan semakin lama. Untuk itu

diharapkan nilai dari laju pamahaman ini diperkirakan yang sesuai. Program untuk

memberi batasan ini adalah sebagai berikut :

function tr_laju_Callback(hObject, eventdata, handles) laju=get(handles.tr_laju,'String');

n=str2num(laju);

% nilai batas laju pemahaman n <=1 if n<=1

laju=num2str(n);

set(handles.tr_laju,'String',laju); else

msgbox('Isi nilai laju pemahaman di bawah 1'); set(handles.tr_laju,'String','');

end

Keterangan :

• Dibuat terlebih dahulu sebuah variable dengan nama laju, yang mana variable

ini berguna untuk mengambil nilai tari tr_laju sebagai nilai laju pemahaman

yang telah di isi oleh user.

• Kemudian dibuat sebuah variable baru lagi dengan nama n, yang mana

variable ini berguna untuk mengubah nilai laju dari string menjadi tipe

numeric sehingga nilai n nantinya dapat digunakan untuk melakukan statemen

(54)

• Statemen kontrol if, di mana jika nilai n lebih kecil dari 1 maka nilai tersebut

akan tertulis pada tr_laju tetapi jika nilai n tidak memenuhi maka akan muncul

message box atau pesan yang mengatakan bahwa user harus mengisi nilai laju

pemahaman dengan nilai di bawah 1.

Untuk kriteria penghentian dari proses pelatihan ini terdapat dua macam

yaitu batas error atau target error yang dikehendaki dan maksimal epoch dalam

proses pelatihan. Pada batas error dan target error ini dimaksudkan bahwa proses

pelatihan akan di hentikan jika error yang dihasilkan sudah berada di bawah error

dan target error ini. Program dari penghentian proses pelatihan untuk kriteria yang

pertama ini adalah sebagai berikut :

function tr_error_Callback(hObject, eventdata, handles) err=get(handles.tr_error,'String');

n=str2num(err);

% nilai batas epoch n antara 0.1 dan 0.001 if n>=0.001 & n<=0.1

err=num2str(n);

set(handles.tr_error,'String',err); else

msgbox('Isi nilai error dalam range 0.001 sampai 0.1'); set(handles.tr_error,'String','');

end

Keterangan :

• Dibuat variabel baru dengan nama err yang mana varibel ini berguna untuk

mengambil nilai dari tr_error.

• Varibel baru berikutnya yang terdapat pada fungsi ini adalah varibel n yang

mana varibel ini nantinya berguna untuk melakukan statemen kontrol ini tetapi

sebelum digunakan untuk melakukan perbandingan varibel ini diubah terlebih

(55)

• Statemen kontrol if di sini hampir sama gunanya seperti statemen if pada

fungsi-fungsi sebelumnya. Yaitu jika nilai n berada diantara 0.1 dan 0.001

maka nilai tersebut akan muncul dan diletakkan pada tr_error, tetapi jika

kondisi tersebut tidak terpenuhi maka akan muncul pesan error yang meminta

user agar mengisi nilai target error ini dengan nilai antar 0.1 sampai 0.001.

Sedangkan program untuk kriteria penghentian yang kedua adalah sebagai

berikut:

function tr_epoch_Callback(hObject, eventdata, handles) ep=get(handles.tr_epoch,'String');

n=str2double(ep); if n>=1 & n<=8000 ep=num2str(n);

set(handles.tr_epoch,'String',ep); else

msgbox('Isi nilai max epoch dengan nilai paling besar 8000');

set(handles.tr_epoch,'String',''); end

Keterangan :

• Dibuat variabel baru dengan nama ep yang mana varibel ini berguna untuk

mengambil nilai dari tr_epoch.

• Varibel baru berikutnya yang terdapat pada fungsi ini adalah varibel n yang

mana varibel ini nantinya berguna untuk melakukan statemen kontrol ini tetapi

sebelum digunakan untuk melakukan perbandingan varibel ini diubah terlebih

dahulu dari string menjadi double.

• Statemen kontrol if di sini hampir sama gunanya seperti statemen if pada

fungsi-fungsi sebelumnya. Yaitu jika nilai n berada diantara 1 dan 8000 maka

(56)

tersebut tidak terpenuhi maka akan muncul pesan error yang meminta user

agar mengisi nilai target error ini dengan nilai antar 1 sampai 8000.

Saat user telah mengisi semua data-data yang diperlukan pada proses

pelatihan ini pada panel Pelatihan itu sendiri tanpa ada pesan error yang

ditampilkan maka pihak user dapat langsung melakukan proses pelatihan itu

sendiri dengan menekan button proses data pelatihan yang telah disediakan.

Program untuk tombol proses tersebut adalah : pertama-tama melakukan

pendeklarasian variabel global yang terkait dalam pemrosesan dengan cara

sebagai berikut ini:

function btn_proses_training_Callback(hObject, eventdata, handles)

global input_training global jum_training global jum_node_pertama global jum_node_kedua global laju_pemahaman global galat

global max_epoch global neet

Setelah dirasa cukup dalam mendeklarasikan variable yang akan dibutuhkan maka

pada function ini akan melakukan perhitungan tentang berapa banyak data yang

akan digunakan untuk proses pelatihan ini dan selanjutnya menentukan input dan

targetnya. Adapun listingnya adalah sebagai berikut:

jum_training=round((70/100)*length(input_training)); input=input_training(1:jum_training,1:5)';

target=input_training(1:jum_training,6)'; I=(0.8*(input-0)/(10-0))+0.1;

(57)

Keterangan:

• Dibuat variable baru yang hanya digunakan pada function ini saja yaitu

jum_training yang berfungsi mengambil banyaknya data sebesar 70 persen

dari data yang ada.

• Untuk data input dilakukan katentuan diambil dari baris 1 sampai baris

sebanyak jum_training dengan kolom 1 sampai kolom ke lima.

• Demikian juga untuk data target dilakukan ketentuan yang sama seperti data

untuk inputnya yaitu diambil dari baris 1 sampai baris sebanyak jum_training

dengan kolom ke enam.

• Kemudian input dan target tersebut di tangkap pada variable baru yaitu I untuk

input dan T untuk target tetapi pada variable ini data sudah di transformasi

terlebih dahulu sehingga nilai pada range 0-1.

Setelah selesai melakukan pengaturan data untuk input dan data untuk targetnya,

maka dibuatlah dua buah array kosong yang kegunaannya dapat dilihat pada

listing berikut:

A=[]; B=[];

x=get(handles.pop_node,'Value'); if x==1

B(1,1)=jum_node_pertama; elseif x==2

B(1,1)=jum_node_pertama; B(1,2)=jum_node_kedua; end

u=get(handles.pop_hidden,'Value'); for n=1:u

A(1,n)=B(1,n); end

(58)

Keterangan :

• Ada variable baru dengan nama x yang digunakan untuk mengambil nilai pada

pop_node.

• Dibuat statement control yaitu jika nilai x==1 maka array B pada baris 1

kolom 1 akan di isi data yang diambil dari masukkan button input yatiu

jum_node_pertama. Demikian pula juka nilai x==2 maka dilakukan hal yang

sama jika nilai x==1 hanya saja akan ada data baru yang akan diletakkan pada

baris 1 kolom 2 yang diambil dari masukkan button input yatiu

jum_node_kedua.

• Ada variable baru dengan nama u yang digunakan untuk mengambil nilai pada

pop_ hidden.

• Lalu dibuat proses perulangan dari nilai awal adalah 1 sampai nilai u maka

array A akan di isi nilai sama seperti pada array B. Maka saat proses

perulangan itu diakhiri nilai array A pada kolom terakhir diberi nilai 1.

Setelah mengambil nilai banyaknya node yang dikehendaki pada tiap layer

tersembunyi kemudian dibuatlah sebuah bentuk jaringan. Adapun potongan listing

untuk pembentukkan jaringan adalah sebagai berikut ini:

if x==1

handles.net=newff(minmax(I),[A],{'logsig' 'logsig'},'traingdx');

elseif x==2

handles.net=newff(minmax(I),[A],{'logsig' 'logsig' 'logsig'},'traingdx');

(59)

Keterangan:

• Jika popnode==1 maka fungsi aktivasi hanya dua, karena fungsi aktivasi

hanya akan digunakan dari inputan ke layar tersembunyi dan terakhir dari

layer tersebunyi ke target.

• Jika popnode==2 maka fungsi aktivasi ada tiga, karena fungsi aktivasi yang

akan digunakan adalah dari inputan ke layar tersembunyi1, dari layer

tersembunyi1 ke layer tersembunyi2 dan terakhir dari layer tersebunyi2 ke

target.

• Newff adalah fungsi yang disediakan oleh matlab yang digunakan untuk

membentuk suatu jaringan dan fungsi aktivasinya adalah logsig dan di akhir di

beri fungsi pelatihan jaringan dengan nilai default yaitu traingdx.

Saat jaringan sudah terbentuk maka ditentukan bobot yang akan digunakan untuk

proses perhitungan nantinya dengan nilai random kecil. Untuk mengatur bobot

maka listingnya adalah sebagai berikut ini:

if n==1

BobotAwal_Input = handles.net.IW{1,1} BobotAwal_Bias_Input = handles.net.b{1,1} BobotAwal_Lapisan1 = handles.net.LW{2,1} BobotAwal_Bias_Lapisan1 = handles.net.b{2,1} elseif n==2

BobotAwal_Input = handles.net.IW{1,1} BobotAwal_Bias_Input = handles.net.b{1,1} BobotAwal_Lapisan1 = handles.net.LW{2,1} BobotAwal_Bias_Lapisan1 = handles.net.b{2,1} BobotAwal_Lapisan2 = handles.net.LW{3,2} BobotAwal_Bias_Lapisan2 = handles.net.b{3,1} end

Keterangan:

• Dalam membuat inisialisasi bobot dilkukan dengan menggunakan perintah

(60)

• Untuk net.IW{j,i}digunakan sebagai variable untuk menyimpan bobot dari

unit masukkan layer I ke unit tersembunyi (atau unit keluaran) layer j. tetapi

karena pada metode Backpropagation, unit masukkan hanya terhubung

dengan layer tersembunyi paling bawah maka bobotnya disimpan pada

net.IW{1,1}

• Untuk net.LW{k,j} digunakan untuk menyimpan bobot dari unit di layer

tersembunyu ke-j ke unit di layer tersembunyi ke-k.

• Sedangkan net.b digunakan untuk menyimpan bobot dari bias tiap layer.

Kemudian mengambil nilai laju pemahaman,mengambil nilai dari kriteria

penghentian yang dipilih. Untuk penggalan listingnya dapat dilihat sebagai

berikut:

% menentukan max learing rate/laju pemahaman lj=get(handles.tr_laju,'String');

laju_pemahaman=str2num(lj);

handles.net.trainparam.lr = laju_pemahaman; nil=get(handles.rd_error,'Value');

if nil==1

% menentukan max goal

er=get(handles.tr_error,'String'); galat=str2num(er);

handles.net.trainparam.goal = galat; handles.net.trainparam.epochs = 5000; else

% menentukan jumlah epoch max e=get(handles.tr_epoch,'String'); max_epoch=str2num(e);

handles.net.trainparam.epochs = max_epoch; handles.net.trainparam.goal = 0.01; end

% digunakan untuk menampilkan frekuensi perubahan error handles.net.trainparam.show = 200;

Setelah semua ditentukan dari mulai pembentukkan jaringan, penentuan bobot

(61)

Maka akan dilakukan proses pembelajaran dari jaringan. Adapun listingnya

adalah sebagai berikut:

% digunakan untuk melakukan proses pelatihan handles.net = train(handles.net,I,T);

Selesai melakukan proses pembelajaran jariangan dapat dilihat nilai-nilai bobot

akhirnya dengan listing sebagai berikut ini:

%Melihat bobot akhir if n==1

BobotAkhir_Input = handles.net.IW{1,1}; BobotAkhir_Bias_Input = handles.net.b{1,1}; BobotAkhir_Lapisan1 = handles.net.LW{2,1}; BobotAkhir_Bias_Lapisan1 = handles.net.b{2,1}; elseif n==2

BobotAkhir_Input = handles.net.IW{1,1} BobotAkhir_Bias_Input = handles.net.b{1,1} BobotAkhir_Lapisan1 = handles.net.LW{2,1} BobotAkhir_Bias_Lapisan1 = handles.net.b{2,1} BobotAkhir_Lapisan2 = handles.net.LW{3,2} BobotAkhir_Bias_Lapisan2 = handles.net.b{3,1} end

Untuk langkah selanjutnya dilakukan simulasi yang mana hal ini dilakukan untuk

mengetahui output dari jaringan.

[a,Pf,Af,e,perf] = sim(handles.net,I,[],[],T);

Keterangan:

• Untuk parameter masukkannya:

o handles.net : nama jaringan dalam perintah newff

o I : vector masukkan jaringan/input jaringan

o T : vector target jaringan.

• Untuk parameter hasilnya adalah:

o a : keluaran/output jaringan

(62)

o Af : kondisi akhir delay layer

o e : error jaringan = T-a

o perf : unjuk kerja dari jaringan/mse

Sebenarnya sampai dengan melakukan simulasi tersebut sudah cukup tapi dengan

hanya melihat grafik dikwatirkan nantinya user tidak terlalu memahani maka

dibuat hasil dalam bentuk prosesntase. Untuk listingnya dapat dilihat sebagai

berikut:

i=e.*e %nilai mse yang di dapat dari nilai kuadrat e kinerja=perf

hasil=0;

for n=1:length(i) if i(1,n)<=kinerja hasil=hasil+1; end

end

hasil=(hasil/length(i))*100; hasil=round(hasil)

set(handles.prosentase_pelatihan,'String',hasil);

Keterangan:

• Di buat variable baru yaitu i yang berguna untuk menghitung mse error tiap

error outputnya. Yaitu dengan cara error dikuadratkan. Hal ini harus dilakukan

karena perbandingan harus dilakukan dengan mse juga.

• Jika nilai i berada dibawah nilai dari kinerja/perf maka akan dilakukan

perhitungan jumlah. Untuk itu akan dihitung dalam bentuk prosentase dengan

cara hasil dari jumlah perhitungan dibagi banyaknya data I dan di kali 100%.

Saat user merasa kurang puas dengan hasil yang diperoleh dari proses

training tersebut maka user dapat melakukan proses ulang dengan nilai inputan

baru dengan melakukan pembersihan text field terlebih dahulu, adapun sintaks

(63)

function btn_reset1_Callback(hObject, eventdata, handles) set(handles.tr_input,'string','');

set(handles.pop_hidden,'value',1); set(handles.pop_node,'value',1); set(handles.tr_node,'string',''); set(handles.tr_node,'Enable','on'); set(handles.tr_laju,'string',''); set(handles.tr_laju,'Enable','on'); set(handles.tr_error,'string',''); set(handles.tr_epoch,'string',''); set(handles.rd_error,'Value',0); set(handles.rd_epoch,'Value',0);

set(handles.tr_epoch,'Visible','off'); set(handles.tr_error,'Visible','off');

set(handles.prosentase_pelatihan,'string',''); clear all;

Saat user ingin keluar dari menu aplikasi ini dapat langsung menekan

button keluar, yang mana listing yang digunakan adalah sebagai berikut:

function btn_exit1_Callback(hObject, eventdata, handles) exit = questdlg('Keluar dari Program?',...

'Keluar','Yes','No','Yes'); if strcmp(exit,'Yes')

delete(handles.menu_utama) end

clear all;

Keterangan:

Questdlg merupakan sebuah fungsi matlab yang berfungsi memanggil

kotak dialog modal yang berisi dua pushbutton, yaitu ya dan tidak. Jika kita

mengklik salah satu pushbutton, maka akan dibandingkan dengan fungsi strcmp().

Di sana terdapat syntax delete(handles.menu_utama) artinya saat user memilih

Yes maka menu_utama ini akan keluar.

Lain halnya jika user merasa cukup puas dengan hasil dari perolehan

pelatihan, maka user dapat pelakukan proses pengujian dengan data lain selain

(64)

hasil dari pelatihan ini sudah cukup membantu memberi gambaran bahwa jaringan

sudah dapat mengenali pola.

Syntaks browse yang digunakan sama seperti syntaks browse pada

menu_utama. Setelah user memasukkan data user dapat langsung menekan

tombol Pengujian Data untuk melakukan proses pengujian itu sendiri. Adapun

listing untuk proses pengujian adalah sebagai berikut:

jum_testing=(30/100)*length(input_testing); nil_awal=jum_training+1;

% data testing

input=input_testing(nil_awal:length(input_testing),1:5)'; target=input_testing(nil_awal:length(input_testing),6)'; Q=(0.8*(input-0)/(10-0))+0.1;

TQ=(0.8*(target-0)/(4-0))+0.1;

inputan=get(handles.tes_input,'String'); in=str2num(inputan);

[b,Pf,Af,e,perf] = sim(neet,Q,[],[],TQ); i=e.*e

kinerja=perf hasil1=0;

for n=1:length(i) if i(1,n)<=kinerja hasil1=hasil1+1; end

end

hasil1=(hasil1/length(i))*100; hasil1=round(hasil1)

set(handles.hasil_pengujian,'String',hasil1);

Keterangan:

• Seperti pada function- function sebelumnya dibuat terlebih dahulu beberapa

pendlekarasian variabel yang akan digunakan pada function

btn_proses_pengujian.

• Listing untuk proses testing ini pada dasarnya hampir sama seperti proses

(65)

o Data yang digunakan sebesar 30% dari jumlah data yang ada dan selain

data yang telah digunakan untuk proses training/pelatihan.

o Untuk melakukan simulasi atau melihat output jaringannya digunakan

dengan neet yang mana neet di sini adalah mengambil hasil jaringan dari

proses pelatihan sebelumnya.

Sejauh itu yang lain memiliki dasar yang sama seperti proses pelatihan.

Jika user telah marasa puas saat melakukan proses pelatihan pada menu

utama dan user merasa tidak perlu melakukan proses pengujian maka pada

tampilan menu utama user dapat langsung menekan button prediksi.

Untuk user dapat melakukan prediksi indeks prestasi dengan cara

memasukkan nilai-nilai test masuk, yang terdiri dari 5 macam test masuk. Nilai

test masuk ini dapat di isi dari range 0 sampai dengan 10. Setelah user mengisi

semua nilai test masuk maka user dapat melihat hasil prediksi indeks prestasinya

dengan menekan button prediksi indeks prestasi. Adapun listing yang ada di

dalam proses prediksi indeks prestasi adalah pertama-tama melakukan

pendeklarasian beberapa variabel sesuai kebutuhan,untuk cara pendeklarasian

sama seperti sebelum-sebelumnya. Dapat di lihat sebagai berikut ini:

global neet

Dari pendeklarasian variabel terlihat hanya satu saja karena pada proses prediksi

ini hanya akan mengambil nilai jaringan dari proses sebelumnya.

Kemudian dilakukan pengambilan data dari masukkan user yang telah dilakukan

melalui tampilan menu prediksi pada text field-text field yang telah di sediakan.

Untuk listing pengambilannya adalah sebagai berikut ini:

(66)

kn=get(handles.pr_output_numerik,'string'); pm=get(handles.pr_output_mekanik,'string'); hr=get(handles.pr_output_ruang,'string'); bi=get(handles.pr_output_inggris,'string'); %ubah string menjadi numerik

in1=str2num(pv); in2=str2num(kn); in3=str2num(pm); in4=str2num(hr); in5=str2num(bi);

%ubah ke dalam bentuk matriks inw=[in1;in2;in3;in4;in5]; inew=(0.8*(inw-0)/(10-0))+0.1;

Keterangan:

• Untuk proses pengambilan data dari text field dilakukan dengan menggunakan

fungsi get. Fungsi ini dapat dipadukan dengan fungsi koversi string ke

numeric atau sebaliknya, sesuai kebutuhan pengolahan datanya. Untuk syntaks

dasarnya adalah sbb :

X = get([NamaObjek] , [Property]);

• Karena data yang di ambil berupa string maka data di ubah dulu ke dalam

bentuk numerik dengan tujuan data yang diolah memang harus nuerik.

• Setelah semua data menjadi bentuk numerik kemudia dibuat dalam bentuk

matrik dengan ukuran 6x1, dan terakhir data dalam bentuk matrik tersebut

dilakukan proses transformasi.

Setelah data yang dimasukkan user untuk diketahui proses prediksinya sudah

melalui tahap-tahap sehingga data masukkan sudah dapat diproses uuntuk tahap

berikutnya. Unutk tahap selanjutnya adalah melakukan simulasi untuk mengetahui

output dari prediksi indeks prestasi. Adapun potongan listing untuk simulasinya

adalah sebagai berikut:

%simulasikan

Gambar

Tabel Keterangan
Grafik Keterangan
Gambar 2.1 Arsitektur Jaringan Backpropagation
Tabel 3.2 Field Data Bapsi
+7

Referensi

Dokumen terkait

Pengembangan Sistem Informasi Perwalian dan Monitoring Mahasiswa (Studi Kasus : Teknik Informatika Universitas Muhammadiyah Malang).. Proposal

Selanjutnya diambil nilai pre test untuk kelompok mahasiswa eksperimen, dan kelompok mahasiswa kontrol. Metode pengumpulan data yang akan digunakan adalah dengan metode tes

Hasil penelitian juga menemukan kelemahan-kelemahan seperti grup auditor internal belum terlibat dalam analisis dan penilaian risiko terhadap proses pemberian

3.2 Nilai keanekaragaman (H’) spesies lumut plot I-VI Tabel 3. Nilai keanekaragaman spsesies lumut yang terdapat pada plot I, IV, V, dan VI terdapat pada rentang 1-3 sehingga

Komunitas dikontraskan dengan masyarakat luas di negeri industri yang bercirikan berbagai gejala sosial seperti: alienasi (orang yang merasa terasing dalam lingkungannya, merasa

Hasil C4.5 menunjukkan bahwa mahasiswa yang nilai TOEFL yang belum mencukupi, mahasiswa yang jam belajarnya hanya sedikit, mahasiswa dengan latar belakang orang tua

Berdasarkan hasil pengujian dengan 409 data nilai mahasiswa tahun akademik 2008 dan 2009, parameter terbaik dari neural network untuk prediksi kelulusan yaitu dengan

mikrobiologi,penggolongan mikroorganisme (Prokariotik dan eukariotik),Bakteri, Fungi, Protozoa, algae, virus, metabolisme mikroorganisme, nutrisi dan kultivasi mikroorganisme,