BAB 2 LANDASAN TEORI
2.1
Jaringan Syaraf Biologi Jaringan syaraf adalah merupakan salah satu representasi buatan dari otak
manusia yang selalu mencoba untuk mensimulasikan proses pembelajaran pada otak manusia tersebut. Istilah buatan di sini digunakan karena jaringan syaraf ini diimplementasikan
dengan
menggunakan
program
komputer
yang
mampu
menyelesaikan sejumlah proses pembelajaran (Fausett, 1994). Otak manusia memiliki struktur yang sangat kompleks dan memiliki kemampuan yang luar biasa. Otak manusia terdiri dari neuron-neuron dan penghubung yang disebut sinapsis. Neuron bekerja berdasarkan sinyal yang diberikan neuron lain dan meneruskannya pada neuron lainnya. Diperkirakan manusia memiliki 1011 neuron. Masing-masing neuron saling berhubungan dengan jumlah hubungan tersebut mencapai 104 buah per neuron. Jadi jumlah koneksi untuk setiap neuron adalah 1015 buah. Neuronneuron tersebut dapat bekerja secara paralel dengan kecepatan luar biasa. Dengan jumlah yang begitu banyak, maka otak manusia mampu mengenali pola, melakukan perhitungan, serta mengontrol organ-organ tubuh dengan baik. Neuron memiliki 3 komponen utama, yaitu dendrit, badan sel (soma) dan akson. Dendrit berfungsi menerima sinyal informasi dari satu atau beberapa neuron yang terhubung. Sinyal yang diterima oleh dendrit diteruskan ke badan sel. Jika total sinyal yang diterima oleh badan sel cukup kuat untuk mengaktifkan sebuah neuron, maka neuron tersebut akan mengirimkan sinyal ke semua neuron terhubung melalui akson. Jadi semua neuron
7 hanya memiliki dua kemungkinan yaitu mengirimkan sinyal kepada neuron lain atau tidak.
Gambar 2.1 Sel Saraf Biologi Sumber: http://belajaripaterpadu.blogspot.com/
2. 2
Jaringan Syaraf Tiruan
2. 2. 1 Definisi Artificial Neural Network (Jaringan Syaraf Tiruan/ANN) adalah sebuah bentuk perhitungan yang meniru bentuk jaringan syaraf pada makhluk hidup. Sama seperti pada jaringan syaraf asli, jaringan syaraf tiruan memiliki neuron untuk memproses input/output. Karena itulah, pada sebagian besar kasus, ANN merupakan sistem yang adaptif, karena struktur sistemnya dapat berubah seiring dengan berubahnya informasi internal ataupun eksternal yang diproses pada saat learning phase (tahap pembelajaran). Pembuatan sistem ANN dimaksudkan agar komputer dapat mengenali suatu pola, bentuk, atau struktur tertentu karena komputer tidak mempunyai intelegensia, meskipun
8 pada kenyataannya, sebuah komputer dapat melakukan operasi, misalnya mengenali wajah manusia, dalam waktu yang jauh lebih singkat daripada manusia. Beberapa definisi tentang jaringan saraf tiruan adalah sebagai berikut. •
Hecht-Nielsend (1988) mendefinisikan sistem saraf buatan sebagai berikut. "Suatu neural network (NN), adalah suatu struktur pemroses informasi yang terdistribusi dan bekerja secara paralel, yang terdiri atas elemen pemroses (yang memiliki memori lokal dan beroperasi dengan informasi lokal) yang diinterkoneksi bersama dengan alur sinyal searah yang disebut koneksi. Setiap elemen pemroses memiliki koneksi keluaran tunggal yang bercabang (fan out) ke sejumlah koneksi kolateral yang diinginkan (setiap koneksi membawa sinyal yang sama dari keluaran elemen pemroses tersebut). Keluaran dari elemen pemroses tersebut dapat merupakan sembarang jenis persamaan matematis yang diinginkan. Seluruh proses yang berlangsung pada setiap elemen pemroses harus benar-benar dilakukan secara lokal, yaitu keluaran hanya bergantung pada nilai masukan pada saat itu yang diperoleh melalui koneksi dan nilai yang tersimpan dalam memori lokal".
•
Menurut Zurada, J.M. (1992), Introduction To Artificial Neural Systems, Boston: PWS Publishing Company, mendefinisikan sebagai berikut. “Sistem saraf tiruan atau jaringan saraf tiruan adalah sistem selular fisik yang dapat memperoleh, menyimpan dan menggunakan pengetahuan yang didapatkan dari pengalaman”.
•
Menurut Haykin, S. (1994), Neural Networks: A Comprehensive Foundation, NY, Macmillan, mendefinisikan jaringan saraf sebagai berikut: “Sebuah jaringan saraf adalah sebuah prosesor yang terdistribusi paralel dan mempuyai
9 kecenderungan untuk menyimpan pengetahuan yang didapatkannya dari pengalaman dan membuatnya tetap tersedia untuk digunakan. Hal ini menyerupai kerja otak dalam dua hal yaitu pengetahuan diperoleh oleh jaringan melalui suatu proses belajar dan kekuatan hubungan antar sel saraf yang dikenal dengan bobot sinapsis digunakan untuk menyimpan pengetahuan. •
DARPA Neural Network Study (1988, AFCEA International Press, halaman 60) mendefinisikan jaringan syaraf buatan sebagai berikut. “Sebuah jaringan syaraf adalah sebuah sistem yang dibentuk dari sejumlah elemen pemroses sederhana yang bekerja secara paralel, yang fungsinya ditentukan oleh stuktur jaringan, kekuatan hubungan, dan pegolahan dilakukan pada komputasi elemen atau nodes”
Biasanya, sebuah model neuron untuk ANN terdiri atas tiga bagian berikut. 1)Synapsis (Jalur Penghubung) antara neuron yang masing-masing memiliki weight (bobot). Tiap Synapsis memiliki indeks tertentu untuk menunjukkan input mana yang akan diproses menjadi output. 2)Summing Unit untuk menghitung total input. 3)Activation Function (Fungsi Aktivasi) untuk membatasi output.
10
Gambar 2.2 Jaringan Syaraf Sederhana Sumber: http://www.wikipedia.org
Arsitektur ANN dapat dibedakan menjadi 3 macam sebagai berikut. 1) Jaringan syaraf dengan lapisan tunggal (single layer net). Jaringan dengan lapisan tunggal hanya memiliki satu lapisan dengan bobot-bobot terhubung. Jaringan ini hanya menerima input kemudian secara langsung akan mengolahnya menjadi output tanpa harus melalui lapisan tersembunyi. Dengan kata lain, ciri-ciri dari arsitektur syaraf dengan lapisan tunggal adalah hanya terdiri dari satu lapisan input dan satu lapisan output, tanpa lapisan tersembunyi.
Gambar 2.3 Jaringan Syaraf Tiruan Satu Layer Sumber: http://www.informaworld.com
11
2) Jaringan syaraf dengan banyak lapisan (multi layer net). Jaringan dengan banyak lapisan memiliki satu atau lebih lapisan yang terletak di antara lapisan input dan lapisan output (memiliki satu atau lebih lapisan tersembunyi). Umumnya, ada lapisan bobot-bobot yang terletak di antara 2 lapisan yang bersebelahan. Jaringan dengan banyak lapisan ini dapat menyelesaikan permasalahan yang lebih sulit daripada jaringan dengan lapisan tunggal, tentu saja dengan pembelajaran yang lebih rumit.
Gambar 2.4 Jaringan Syaraf Tiruan Multi Layer Sumber: http://www.odec.ca/projects/2006/stag6m2/img/fig1.gif
3) Jaringan syaraf dengan lapisan kompetitif (competitive layer) Arsitektur ini memiliki bentuk berbeda dari kedua arsitektur lainnya, di mana antar neuron saling dihubungkan. Jaringan ini sering disebut feedback loop karena unit output ada yang memberikan informasi terhadap unit masukan.
12 Struktur arsitektur dari neural network pada umumnya terdiri dari 3 layer yang menjadi ciri khas dari sistem ini yaitu •
Input layer Merupakan data yang kita masukkan sebagai data training pada sistem ANN.Banyaknya jumlah node pada input layer tergantung pada jumlah data input yang telah kita masukkan kedalam sistem
•
Hidden Layer Jumlah
node
pada
hidden
layer
sangat
bervariasi
tergantung
penggunaaannya.Semakin banyak hidden layer yang digunakan semakin baik hasilnya, tetapi training yang dibutuhkan juga semakin lama.Jumlah node yang yang terlalu sedikit
menyebabkan jaringan tidak cukup
fleksibel untuk mempelajari data dan jika jumlah hidden node terlalu besar akan terjadi overfitting. Dan menurut Saludin Muis, tingkat ketelitian yang dihasilkan cukup memadai jika memakai 1 lapis hidden layer. 1 input layer dan 1 output layer. •
Output Layer Banyaknya node pada output layer tergantung pada sistem ANN itu sendiri.Data output juga termasuk dari data training yang sebelumnya telah diberikan.
13
Gambar 2.5 Jaringan Syaraf Tiruan Competitive Layer Sumber: Neuro-Fuzzy Integrasi Sistem Fuzzy & Jaringan Syaraf,2010 Beberapa fungsi aktivasi yang sering digunakan dalam ANN adalah. 1) Fungsi undak biner (hard limit) Jaringan dengan lapisan tunggal sering menggunakan fungsi undak (step function) untuk mengkonversikan input dari suatu varuabel yang bernilai kontinu ke suatu output biner (0 atau 1). Fungsi undak biner (hard limit) dirumuskan sebagai (Demuth, 1998): y = 0, jika x < 0 y = 1, jika x ≥ 0
Gambar 2.6 Jaringan Syaraf Tiruan Hard Limit Sumber: Neuro-Fuzzy Integrasi Sistem Fuzzy & Jaringan Syaraf, 2010
14 2) Fungsi bipolar (symmetric hard limit) Fungsi bipolar hampir sama dengan fungsi undak biner, hanya saja output yang dihasilkan berupa 1, 0, atau -1. Fungsi Symmetric Hard Limit dirumuskan sebagai berikut (Demuth, 1998): y = 1, jika x ≥ 0 y = -1, jika x < 0
Gambar 2.7 Jaringan Syaraf Tiruan Symmetric Hard Limit Sumber: Neuro-Fuzzy Integrasi Sistem Fuzzy & Jaringan Syaraf, 2010 3) Fungsi linear (identitas) Fungsi linear memiliki nilai output yang sama dengan nilai inputnya. Fungsi linear dirumuskan sebagai (Demuth, 1998): y=x
15
Gambar 2.8 Jaringan Syaraf Tiruan Linear Sumber: Neuro-Fuzzy Integrasi Sistem Fuzzy & Jaringan Syaraf, 2010 4) Fungsi saturating linear Fungsi ini akan bernilai 0 jika inputnya kurang dari -0,5 dan akan bernilai 1 jika inputnya lebih dari 0,5. Sedangkan jika nilai input terletak di antara -0,5 dan 0,5, maka outputnya akan bernilai sama dengan nilai input ditambah 0,5. Fungsi saturating linear dirumuskan sebagai (Demuth, 1998): y = 1, jika x ≥ 0,5 y = x + 0,5, jika − 0,5 ≤ x ≤ 0,5 y = 0, jika x ≤ −0,5
Gambar 2.9 Jaringan Syaraf Tiruan Saturating Linear Sumber: Neuro-Fuzzy Integrasi Sistem Fuzzy & Jaringan Syaraf, 2010 5) Fungsi symmetric saturating linear Fungsi ini akan bernilai -1 jika inputnya kurang dari -1,dan akan bernilai 1
16 jika inputnya lebih dari 1. Sedangkan jika nilai input terletak antara -1 dan 1, maka outputnya akan bernilai sama dengan nilai inputnya. Fungsi symmetric saturating linear dirumuskan sebagai (Demuth, 1998): y = 1, jika x ≥ 1 y = x, jika − 1 ≤ x ≤ 1 y = -1, jika x ≤ −1
Gambar 2.10 Jaringan Syaraf Tiruan Symmetric Saturating Linear Sumber: Neuro-Fuzzy Integrasi Sistem Fuzzy & Jaringan Syaraf, 2010 6) Fungsi sigmoid biner Fungsi ini digunakan untuk jaringan syaraf yang dilatih dengan menggunakan metode backpropagation. Fungsi sigmoid biner memiliki nilai pada range 0 sampai 1. Oleh karena itu,fungsi ini sering digunakan untuk jaringan syaraf yang membutuhkan nilai output yang terletak pada interval 0 sampai 1. Namun, fungsi ini bisa juga digunakan oleh jaringan syaraf yang nilai outputnya 0 atau 1. Fungsi sigmoid biner dirumuskan sebagai (Demuth, 1998):
y = f ( x) =
1 dengan f ' ( x ) = σf ( x )[1 − f ( x )] 1 + e −σx
17
Gambar 2.11 Jaringan Syaraf Tiruan Sigmoid Biner Sumber: Neuro-Fuzzy Integrasi Sistem Fuzzy & Jaringan Syaraf, 2010 7) Fungsi sigmoid bipolar Fungsi sigmoid bipolar hampir sama dengan fungsi sigmoid biner, hanya saja output dari fungsi ini memiliki range antara -1 sampai 1. Fungsi sigmoid bipolar dirumuskan sebagai (Demuth, 1998):
y = f ( x) =
1 − e− x σ f ' ( x ) = [1 + f ( x )][1 − f ( x )] − x dengan 1+ e 2
Gambar 2.12 Jaringan Syaraf Tiruan Sigmoid Bipolar Sumber: Neuro-Fuzzy Integrasi Sistem Fuzzy & Jaringan Syaraf, 2010 Algoritma pembelajaran Salah satu bagian terpenting dari konsep jaringan syaraf tiruan adalah proses pembelajaran. Tujuan utama dari proses ini adalah melakukan pengaturan terhadap bobot-bobot yang ada pada jaringan syaraf, hingga didapat bobot akhir yang tepat sesuai dengan pola data yang dilatih. Selama proses pembelajaran, akan terjadi perbaikan
18 bobot-bobot berdasarkan algoritma tertentu. Nilai bobot akan bertambah jika informasi yang diberikan ke neuron yang bersangkutan tersampaikan. Begitu pula sebaliknya, jika informasi tidak disampaikan oleh suatu neuron ke neuron yang lain, maka nilai bobot yang menghubungkan keduanya akan dikurangi. Pada saat pembelajaran dilakukan pada input yang berbeda, nilai bobot akan diubah secara dinamis hingga mencapai nilai yang cukup seimbang. Apabila nilai ini telah tercapai, berarti tiap-tiap input telah berhubungan dengan output yang diharapkan. Pada dasarnya ada dua metode pembelajaran, yaitu metode pembelajaran terawasi (supervised learning) dan metode pembelajaran yang tidak terawasi (unsupervised learning). 1) Pembelajaran terawasi (supervised learning) Metode pembelajaran pada jaringan syaraf disebut terawasi jika output yang diharapkan telah diketahui sebelumnya. Misalkan jaringan syaraf akan digunakan untuk mengenali pasangan pola, misalkan pada sebuah operasi logika matematika AND. Pada proses pembelajaran, satu pola input akan diberikan ke satu neuron pada lapisan input. Pola ini akan dirambatkan ke sepanjang jaringan syaraf hingga sampai ke neuron pada lapisan output. Lapisan output ini akan membangkitkan pola output yang nantinya akan dicocokkan dengan pola output targetnya. Apabila terjadi perbedaan antara pola output hasil pembelajaran dengan pola target, maka akan muncul error. Apabila nilai error ini masih cukup besar, berarti perlu dilakukan lebih banyak pembelajaran lagi. Modelmodel pembelajaran yang menggunakan supervised learning di antaranya adalah Backpropagation, Bidirective Associative Memory (BAM), dan Hopfield. 2) Pembelajaran tak terawasi (unsupervised learning) Metode pembelajaran yang tak terawasi tidak memerlukan target output. Pada
19 metode ini, tidak dapat ditentukan hasil yang seperti apakah yang diharapkan selama proses pembelajaran. Selama proses pembelajaran, nilai bobot disusun dalam suatu range tertentu tergantung pada nilai input yang diberikan. Tujuan pembelajaran ini adalah mengelompokkan unit-unit yang hampir sama dalam suatu area tertentu. Pembelajaran ini biasanya sangat cocok untuk pengelompokan (klasifikasi) pola. Modelmodel pembelajaran yang menggunakan unsupervised learning di antaranya adalah Adaptive Resonance Theory (ART) dan Competitive. Beberapa contoh jaringan sederhana AND, OR, dan NOT dapat dijelaskan sebagai berikut •
Jaringan sederhana AND Tabel 2.1 Operasi AND X1
X2
Y
1
1
1
1
0
1
0
1
0
0
0
0
Dari tabel diatas terlihat ada dua input (X1 dan X2) dan satu output (Y) dengan bobot yang sesuai untuk w1 adalah 1 dan w2 adalah 1 sehingga diperoleh nilai threshold yang sesuai dengan tabel adalah 2. Arsitektur jaringan sederhana untuk kasus tersebut seperti pada gambar berikut
X1 1 Y
20 1 X2 Threshold(Y) = 2 Contoh program jaringan sederhananya adalah #include
Main() { Int w1, w2, x1, x2, O; W1 = 1; w2 = 1; Cout << “X1= “; Cin >> x1; Cout << “x2 = “; Cin >> x2; O = x1 *w1 + x2 *w2; If(o >= 2) Cout << “output AND = 1” << endl; Else Cout << “output AND = 0” << endl; }
•
Jaringan sederhana OR Tabel 2.2 Operasi OR X1
X2
Y
1
1
1
1
0
1
0
1
1
0
0
0
Dari tabel diatas terdapat 2 input ( X1 dan X2) dan satu output (Y) dengan bobot yang sesuai untuk w1 adalah 2 dan w2 adalah 2 sehingga
21 diperoleh nilai threshold yang sesuai dengan tabel adalah 2. Arsitektur jaringan sederhana untuk kasus OR seperti berikut
X1
2 Y 2
X2 Treshold (Y) = 2 Contoh program jaringan sederhana operasi OR
#include Main() { Int w1, w2, x1, x2, O; W1 = 1; w2 = 1; Cout << “X1= “; Cin >> x1; Cout << “x2 = “; Cin >> x2; O = x1 *w1 + x2 *w2; If(o >= 2) Cout << “output OR = 1” << endl; Else Cout << “output OR = 0” << endl; }
•
Jaringan sederhana NOT Tabel 2.3 Operasi NOT X1
Y
0
1
1
0
22 Dari tabel diatas terlihat ada satu input (X) dan satu output (Y) dengan bobot yang sesuai untuk w adalah -1 sehingga dapat diperoleh nilai threshold yang sesuai dengan tabel adalah 0.5. Arsitektur jaringan sederhananya sebagai berikut -1 X
Y Threshold (Y) = - 0.5
Contoh program jaringan sederhana operasi NOT #include Main() { Int w1, x1, O; W1 = -1; Cout << “X1= “; Cin >> x1; O = x1 *w1 If(o >= - 0.5) Cout << “output NOT = 1” << endl; Else Cout << “output NOT = 0” << endl; }
2. 3
Backpropagation
2. 3. 1 Definisi Backpropagation merupakan algoritma pembelajaran yang terawasi dan biasanya digunakan oleh perceptron dengan banyak lapisan untuk mengubah bobot-bobot yang terhubung dengan neuron-neuron yang ada pada lapisan tersembunyinya. Algoritma backpropagation menggunakan error output untuk mengubah nilai bobot-bobotnya dalam arah mundur (backward). Untuk mendapatkan nilai error ini, tahap perambatan
23 maju (forward propagation) harus dikerjakan terlebih dahulu. Pada saat perambatan maju, neuron-neuron diaktifkan dengan menggunakan fungsi aktivasi yang dapat dideferensiasikan, seperti sigmoid (Fausett, 1994).
Algoritma Backpropagation (Fausett, 1994) 1)Inisialisasi bobot (ambil bobot awal dengan nilai random yang cukup kecil). 2)Tetapkan: Maksimum Epoch, Target Error, dan Learning Rate (α). 3)Inisialisasi: Epoch = 0. 4)Selama (Epoch < Maksimum Epoch) dan (MSE (Mean Squared Error) < Target Error), kerjakan langkah-langkah berikut. a)Epoch = Epoch + 1 b)Untuk tiap-tiap pasangan elemen yang akan dilakukan pembelajaran, kerjakan:
Feedforward 1. Tiap-tiap unit input (Xi, i = 1, 2, 3, …, n) menerima sinyal xi dan meneruskan sinyal tersebut ke semua unit pada lapisan yang ada di atasnya (lapisan tersembunyi). 2. Tiap-tiap unit pada suatu lapisan tersembunyi (Zi, j = 1, 2, 3, …, p) menjumlahkan sinyal-sinyal input terbobot: n
z_inj = b1j +
∑ i =1
xivij
Gunakan fungsi aktivasi untuk menghitung sinyal outputnya:zj = f(z_inj) dan kirimkan sinyal tersebut ke semua unit di lapisan atasnya (unit-unit output). Langkah ini dilakukan sebanyak jumlah lapisan tersembunyi.
24 3. Tiap-tiap unit output (Yk, k = 1, 2, 3, …, m) menjumlahkan sinyal-sinyal input terbobot. p
y_in = b2k +
∑ i =1
ziwij
gunakan fungsi aktivasi untuk menghitung sinyal outputnya: yk = f(y_ink) dan kirimkan sinyal tersebut ke semua unit di lapisan atasnya (unit-unit output).
Backpropagation 4. Tiap-tiap unit output (Yk, k = 1, 2, 3, …, m) menerima target pola yang berhubungan dengan pola input pembelajaran, hitung informasi errornya: δ2k = (tk – yk) f `(y_ink) φ2jk = δk - zj β2k = δk kemudian hitung koreksi bobot (yang nantinya akan digunakan untuk memperbaiki nilai wjk) ∆wjk = α φjk kemudian hitung koreksi bobot (yang akan digunakan untuk memperbaiki nilai wjk) ∆b2k = α βk Langkah ke 4 juga dilakukan sebanyak jumlah lapisan tersembunyi, yaitu menghitung informasi error dari suatu lapisan tersembunyi ke lapisan tersembunyi sebelumnya.
25 5. Tiap-tiap unit tersembunyi (Zj, j = 1, 2, 3, ..., p) menjumlahkan delta inputnya (dari unit-unit yang berada pada lapisan di atasnya): m
δ_inj =
∑ k =1
δkwjk
kalikan nilai ini dengan turunan dari fungsi aktivasinya untuk menghitung informasi error: δ1j = δ_inj f `(z_inj) φ1ij = δj xj β1j = δ1j kemudian hitung koreksi bobot (yang nantinya akan digunakan untuk memperbaiki nilai vij): ∆vij = α φ1ij hitung juga koreksi bias (yang akan digunakan untuk memperbaiki nilai b1j): ∆b1j = α φ1j 6. Tiap-tiap unit output (Yk, k = 1, 2, 3, ..., m) memperbaiki bias dan bobotnya (j = 0, 1, 2, 3, ..., p): wjk(baru) = wjk(lama) + ∆wjk b2k(baru) = b2k(lama) + ∆b2k Tiap-tiap unit tersembunyi (Zj, j = 1, 2, 3, …,p) memperbaiki bias dan bobotnya (i = 0, 1, 2, 3, …, n): vij(baru) = vij(lama) + ∆vij b1j(baru) = b1j(lama) + ∆b1j c)Hitung MSE (Mean Squared Error). Fungsi ini mengambil rata-rata kuadrat error yang terjadi antara output jaringan
26 dan target.MSE digunakan tiap satu epoch pelatihan, dengan menghitung seluruh pola output actual dari tiap pola input untuk dihitung selisinya dengan pola output yang diinginkan.Jika nilai MSE
error yang diinginkan maka jaringan dianggap sudah
mengenali pola tetapi jika belum jaringan terus dilatih dan dihitung kembali setiap epochnya sampai nilai MSE ≤ error yang diinginkan.Rumus menghitung nilai MSE adalah : MSE = Dimana yt = nilai target keluaran yang diinginkan = nilai keluaran actual N = banyak output 1)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 di mana 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) (Fausett, 1994). 2)Inisialisasi bobot awal dengan metode Nguyen-Widrow Metode Nguyen-Widrow akan menginisialisasi bobot-bobot lapisan dengan nilai antara -0.5 sampai 0,5. Sedangkan bobot-bobot dari lapisan input ke lapisan tersembunyi
27 dirancang sedemikian rupa sehingga dapat meningkatkan proses pembelajaran.
Parameter α merupakan laju pembelajaran yang menentukan kecepatan iterasi. Nilai α terletak antara 0 dan 1 (0 ≤ α ≤ 1). Semakin besar harga α, semakin sedikit iterasi yang dipakai. Tetapi, jika harga α terlalu besar, maka akan merusak pola yang sudah benar sehingga pemahaman menjadi lambat. Setelah pelatihan selesai dilakukan, jaringan dapat digunakan untuk pengenalan pola. Dalam hal ini, hanya Propagasi Maju yang dipakai untuk menentukan keluaran jaringan. Apabila fungsi aktivasi yang dipakai bukan sigmoid biner, maka langkah-langkahnya harus disesuaikan.
28
Flowchart Algoritma Backpropagation
Gambar 2.13 flowchart backpropagation
29 2. 4
Penyakit Obesitas
2. 4. 1 Definisi Obesitas Obesitas atau kegemukan adalah suatu kondisi kelebihan berat badan yang dialami manusia sebagai akibat dari penimbunan lemak tubuh yang berlebihan. Setiap orang memerlukan sejumlah lemak tubuh untuk menyimpan energi sebagai penyekat panas, penyerap guncangan dan fungsi lainnya. Rata-rata dikehidupan nyata wanita memiliki lemak tubuh yang lebih banyak dibandingkan pria. Perbandingan yang normal antara lemak tubuh dengan berat badan adalah sekitar 25-30% pada wanita sedangkan pria 18-23%. Wanita dengan lemak tubuh lebih dari 30% dan pria dengan lemak tubuh lebih dari 25% dianggap mengalami obesitas. Seseorang yang memiliki berat badan 20% lebih tinggi dari nilai tengah kisaran berat badannya yang normal dianggap mengalami obesitas. Obesitas digolongkan menjadi 3 kelompok: •
Obesitas ringan : kelebihan berat badan 20-40%
•
Obesitas sedang : kelebihan berat badan 41-100%
•
Obesitas berat : kelebihan berat badan > 100%
2. 4. 1. 1 Kriteria dan klasifikasi Obesitas •
Antropemetri berdasarkan Indeks Massa Tubuh(IMT)/Body Mass Index (BMI)
Tabel 2.4 Klasifikasi Obesitas
BMI
Klasifikasi
< 18.5
berat badan di bawah normal
30
18.5–24.9
normal
25.0–29.9
normal tinggi
30.0–34.9
Obesitas tingkat 1
35.0–39.9
Obesitas tingkat 2
≥ 40.0
Obesitas tingkat 3
Rumus
di mana
adalah
berat badan dalam satuan metrik kilogram
dan adalah tinggi badan dalam meter. Jenis dan beratnya latihan serta jumlah pembatasan kalori pada setiap penderita berbedabeda disesuaikan dengan keadaan penderita. 1. Penderita
dengan
resiko
kesehatan
rendah
menjalani
diet
sedang(1200-1500 kalori/hari untuk wanita sedangkan pria 14002000) 2. Penderita dengan resiko kesehatan menengah menjalan diet rendah kaloru sekitar 800-1200 untuk wanita dan 1000-1400 kalori/hari untuk pria •
Berdasarkan lemak dalam tubuh pada lingkar pinggang IMT merupakan salah satu cara positif serta menjadi sebuah indicator untuk obesitas tetapi dengan IMT saja tidak cukup untuk menghitung detailnya pada tubuh oleh karena itu ada metode lain yang menunjang perhitungan obesitas yaitu dengan metode pengukuran lingkar pinggang.
31 Untuk parameter penentuan obesitas merupakan suatu hal yang paling sulit dilakukan karena perbedaan bentuk tubuh setiap etnis terhadap IMT maupun
lingkar
Federation(IDF)
pinggang. mengeluarkan
Sehingga kriteria
International ukuran
lingkar
Diabetes pinggang
berdasarkan etnis(Alberti, 2005) Tabel 2.5 Kriteria ukuran pinggang berdasarkan etnis Negara / grup etnis Eropa
Lingkar pinggang(cm) Pria > 94 Wanita > 80
Asia Selatan
Pria > 90
Berdasarkan China, Melayu
Wanita > 80
dan Asia India China
Pria > 90 Wanita >80
Jepang
Pria > 90 Wanita >80
Amerika Tengah dan Selatan
Gunakan rekomendasi Asia hingga tersedia data specifik
Sub- Saharan Afrika
Gunakan data eropa hingga tersedia data specifik
Timur Tengah
Gunakan data eropa hingga tersedia data specifik
32 •
Berdasarkan pengukuran lingkar lengan atas Tabel 2.6 Pengukuran Lingkar Lengan
•
Lingkar Lengan Atas(cm)
Kriteria
25 - 28
Normal
28,5 – 34,5
Obesitas
35 – 39
Obesitas berat
>39
Obesitas Sangat Berat
Berdasarkan Bentuk tubuh dan ciri fisik
Gynoid(Bentuk Peer) Lemak disimpan didaerah sekitar pinggul dan bokong. Tipe ini biasanya cenderung dimiliki oleh kaum wanita.
Apple Shape(Android) Lemak tersimpan dan tertumpuk didaerah sekitar perut dan biasanya cenderung terdapat pada kaum pria.
Ovid(Bentuk kotak buah) Lemak terdapat diseluruh badan dan biasanya terdapat pada orang-orang gemuk secara genetik.
33
Gambar 2.14 Bentuk Tubuh •
Berdasarkan pengukuran lingkar paha Tabel 2.7 Pengukuran Lingkar Paha
•
Lingkar Paha(cm)
Kriteria
30-40
Normal
41-50
Obesitas
51-60
Obesitas berat
>60
Obesitas sangat berat
Berdasarkan lingkar perut dan pinggul Tabel 2.8 Lingkar Perut dan Pinggul Jenis Kelamin
Ukuran Normal(cm)
Ukuran Obesitas(cm)
Wanita
< 80
>81
Pria
< 90
>90
34
•
Berdasarkan Lingkar perut Atas Tabel 2.9 Lingkar Perut Atas Lingkar
Kriteria
Perut Atas < 80
Optimal
81- 90
Normal
>90
Obesitas
2. 4. 2 Definisi dan Jenis-Jenis Penyakit Obesitas Penyakit
kelebihan
berat
badan
atau
obesitas
adalah
istilah
untuk
menggambarkan manusia yang mengonsumsi kalori lebih banyak dari yang diperlukan oleh tubuh. Penyebab terjadinya ketidakseimbangan antara asupan dan pembakaran kalori.Terjadinya obesitas menurut Peter J. Brown melibatkan beberapa faktor: 1) Biologik(genetik, fisiologik) Obesitas cenderung diturunkan sehingga diduga memiliki penyebab biologik dan asupan makanan yang nutrisi nya tidak sesuai untuk tubuh. 2) Lingkungan/Budaya Faktor lingkungan juga mendukung dalam penyakit obesitas.Pola gaya hidup juga memegang peranan sehingga dapat merubah pola hidup dan aktivitas
35
Jenis-jenis penyakit yang dapat disebabkan oleh obesitas adalah 1. Diabetes Kelainan metabolis yang disebabkan oleh banyak factor dengan simtoma berupa hiperglisemia kronis dan gangguan metabolism karbohidrat,lemak dan protein
2. Hipertensi Peningkatan tekanan darah secara kronis dengan jangka waktu yang lama
3. Stroke Suatu kondisi yang terjadi ketika pasokan darah kesuatu bagian otak tiba-tiba terganggu.Dalam jaringan otak,kurangnya aliran darah menyebabkan serangkaian reaksi biokimia yang dapat mematikan sel-sel saraf di otak.
4. Serangan Jantung Terhentinya aliran darah meskipun hanya sesaat yang menuju ke jantung dan mengakibatkan sebagian sel jantung menjadi mati.
5. Gagal Jantung Pemberhentian sirkulasi normal darah dikarenakan kegagalan dari ventrikel jantung untuk berkonstraksi secara efektif.
6. Kanker Penyakit yang ditandai dengan kelainan sirklus sel khas yang menimbulkan kemampuan sel untuk tumbuh tidak terkendali,menyerang jaringan biologis serta bermigrasi ke jaringan tubuh yang lain melalui sirkulasi darah
36 2.5
Software Software (piranti lunak) adalah kumpulan program komputer dan data terkait
yang menyediakan instruksi kerja ke komputer beserta cara penanganan instruksi tersebut. Dengan kata lain, piranti lunak adalah kumpulan sejumlah program, prosedur, algoritma, dan dokumentasi.
Dalam pembuatan sebuah piranti lunak, terdapat 3 prinsip dasar sebagai berikut: 1)Determine users' skill levels (tentukan tingkat kemampuan pengguna) Pembagian tingkat kemampuan pengguna adalah hal yang penting, karena tidak semua pengguna dapat memahami cara kerja piranti lunak dalam sekali pakai. Biasanya tingkat kemampuan pengguna dibedakan menjadi tiga macam. a)Novice or first-time users Pengguna pada tingkat ini adalah pengguna yang pengetahuan mengenai penggunaan atau konsep piranti lunaknya rendah atau tidak ada. Untuk pengguna tingkat ini, penting untuk membatasi kata-kata yang digunakan dalam program agar dapat cepat dipahami. Jumlah langkah penggunaan piranti lunak juga harus sesedikit mungkin agar pengguna dapat melakukan tugas sederhana tanpa masalah. Jika diperlukan, dapat dibuat panduan penggunaan program. b)Knowledgeable intermittent users Pengguna pada tingkat ini memiliki pengetahuan mengenai penggunaan dan konsep piranti lunak yang bervariasi dan wawasan luas konsep antar muka, namun masih kesulitan untuk menentukan struktur menu atau lokasi fitur tertentu. Untuk mengurangi beban pada memori pengguna, sebaiknya dibuat struktur menu, penggunaan istilah yang konsisten, dan desain antar muka yang tampak dengan jelas.
37 c)Expert frequent users Pengguna pada tingkat ini sudah mempunyai pengetahuan yang tinggi mengenai konsep pekerjaan dan konsep antar muka. Pengguna tingkat ini mencari cara pintas (shortcut) untuk menyelesaikan pekerjaan mereka lebih cepat. Pengguna pada tingkat ini juga menginginkan waktu respon program yang singkat, umpan balik (feedback) yang pendek dan tidak mengalihkan perhatian, dan penggunaan cara singkat ataupun penggunaan macro yang dapat mengerjakan beberapa perintah sekaligus.
2)Identify the tasks (kenali tugas yang akan dilakukan) Setelah mengenali jenis pengguna, pembuat piranti lunak perlu mengenali jenis tugas yang akan dikerjakan. Untuk langkah ini, diperlukan pemahaman mengenai frekuensi pekerjaan tertentu beserta urutannya, beserta tugas apa saja yang tersedia untuk dikerjakan. Sebaiknya aksi yang dapat dilakukan dikelompokkan menjadi pekerjaanpekerjaan yang tidak terlalu kecil, agar pengguna tidak perlu melakukan terlalu banyak aksi untuk pekerjaan tingkat tinggi. Terdapat 8 prinsip dasar untuk desain sebuah sistem yang disebut 8 Golden Rules of interface design (Shneiderman, 1998:72-73) yang dapat diaplikasikan ke sebagian besar sistem interaktif. Kedelapan prinsip ini adalah sebagai berikut. a) Strive for consistency (berusaha mencapai konsistensi) Konsisten dalam kesamaan terminologi dalam membuat menu, tampilan, jenis hutuf, dan help screen. Selain itu konsisten dalam warna, kapitalitas, dan tampilan adalah juga penting.
38 b) Cater to universal usability Memungkinkan frequent users menggunakan shortcuts. Setelah para users mulai tanggap dalam mengakses sebuah situs, maka users akan menginginkan shortcutshortcut yang mempercepat geraknya dalam pengaksesan situs tersebut. c) Offer informative feedback (berikan umpan balik yang informatif) Untuk setiap operator action, beberapa di antaranya harus mempunyai sistem feedback. Untuk setiap tindakan yang sering dan sederhana, maka respon yang diberikan juga sederhana, tetapi jika tindakan yang dilakukan jarang dan termasuk dalam major actions, maka respon juga harus lebih substansial. d) Design dialogs to yield closure (rancang dialog untuk keadaan akhir sukses) Bertujuan untuk membuat seorang user merasa aman dalam melakukan sebuah tindakan dengan memberikan gambaran hasil akhir dari suatu pilihan, serta pemberian banyak option kepada user sehingga dapat ikut mempengaruhi hasil akhir. e) Prevent errors (cegah kesalahan) Suatu program harus dirancang agar kesalahan yang dibuat seorang user dapat ditekan seminimal mungkin, dan pesan kesalahan yang dimunculkan harus dapat dimengerti oleh user awam. f) Permit easy reversal of actions (mengijinkan pembalikan aksi dengan mudah) Tindakan harus dapat dibalikkan menjadi keadaan sebelumnya sehingga membuat user merasa aman karena ia tahu bahwa kesalahan yang dibuat dapat diperbaiki.
39 g) Support internal locus of control (dukung pemakai menguasai sistem) Membuat user merasa memegang kendali atas site tersebut. Kesulitan user dalam menavigasi situs atau dalam mendapatkan data yang diinginkan akan menimbulkan rasa tidak puas. h) Reduce short-term memory load (kurangi beban memori jangka pendek) Manusia hanya dapat mengingat tujuh info ditambah atau dikurang dua info pada suatu waktu. Batasan ini berarti suatu program harus dibuat sesederhana mungkin sehingga tidak membuat seorang pengguna bingung karena terlalu banyak informasi. 3)Prevent errors (mencegah kesalahan) Pencegahan kesalahan adalah hal yang sangat penting dalam pembuatan piranti lunak, bagian ini memerlukan bagian tersendiri. Bahkan seorang analis berpengalaman melakukan kesalahan di hampir setengah spreadsheet yang mereka gunakan, bahkan saat spreadsheet tersebut digunakan untuk menggunakan keputusan bisnis penting (Panko, 2008). Salah satu langkah yang umum dilakukan pada tahap ini adalah memberi pesan error yang informatif, dalam artian memberikan umpan balik ke pemakai berupa kesalahan yang terjadi dalam bahasa yang mudah dimengerti beserta cara penanggulangannya, jika memang kesalahan tersebut dapat diperbaiki oleh pengguna. Cara yang lebih efektif adalah dengan membuat program sedemikian rupa sehingga kemungkinan terjadi kesalahan diminimalisir atau ditiadakan.
40 2.6
Perancangan Program Simulasi
2.6.1
Definisi Rekayasa Piranti Lunak Rekayasa Piranti Lunak (Software Development) adalah suatu disiplin ilmu yang
membahas semua aspek produksi perangkat lunak, mulai dari tahap awal yaitu analisis kebutuhan pengguna, menentukan spesifikasi dari kebutuhan pengguna, disain, pengkodean, pengujian sampai pemeliharaan sistem setelah digunakan. (O’Brien, 1999). Istilah ini juga mengacu kepada pengkodean dan pemeliharaan source code sebuah program, namun dengan cakupan yang lebih luas, yaitu mengikutsertakan semua hal yang terlibat mulai dari tahapan konsep program yang ingin dibuat, sampai kepada tahap manifestasi program tersebut dengan proses yang terencana dan terstruktur. Istilah Software development dapat meliputi penelitian, pengembangan, pembuatan prototipe, modifikasi, pemakaian ulang, pengkodean ulang, pemeliharaan, atau semua aktivitas lain yang menghasilkan produk piranti lunak. Pembuatan piranti lunak dilakukan untuk bermacam-macam tujuan. Tiga tujuan yang paling umum adalah memenuhi kriteria spesifik yang diperlukan untuk keperluan bisnis/pelanggan, agar piranti lunak tersebut dapat memenuhi kebutuhan pengguna potensial (potential user), dan penggunaan pribadi. Software development process (proses pembuatan software) adalah sebuah struktur yang menekankan pada pembuatan sebuah produk piranti lunak. Ada beberapa model yang dipakai untuk proses tersebut, yang masing-masing menjelaskan pendekatan kepada tugas atau aktivitas yang dilakukan dalam proses tersebut. Salah satu model yang cukup dikenal dalam dunia rekayasa perangkat lunak adalah The Waterfall Model. Ada 5 tahapan utama dalam The Waterfall Model. Disebut waterfall (berarti air terjun) karena memang diagram tahapan prosesnya mirip dengan air
41 terjun yang bertingkat. Tahapan-tahapan dalam The Waterfall Model secara ringkas adalah sebagai berikut. •Tahap investigasi dilakukan untuk menentukan apakah terjadi suatu masalah atau adakah peluang suatu sistem informasi dikembangkan. Pada tahapan ini studi kelayakan dilakukan untuk menentukan apakah sistem informasi yang dikembangkan merupakan solusi yang layak •Tahap analisis bertujuan untuk mencari kebutuhan pengguna dan organisasi serta menganalisa kondisi yang ada (sebelum diterapkan sistem informasi yang baru). •Tahap disain bertujuan menentukan spesifikasi detil dari komponen-komponen sistem informasi (manusia, hardware, software, network, dan data) dan produk-produk informasi yang sesuai dengan hasil tahap analisis. •Tahap implementasi merupakan tahapan untuk mendapatkan atau mengembangkan hardware dan software (pengkodean program), melakukan pengujian, pelatihan dan perpindahan ke sistem baru. •Tahapan perawatan (maintenance) dilakukan ketika sistem informasi sudah dioperasikan. Pada tahapan ini dilakukan monitoring proses, evaluasi dan perubahan (perbaikan) bila diperlukan.