You are on page 1of 44

TUGAS BESAR

SISTEM KENDALI CERDAS



STUDI KASUS MENGENAI FUZZY LOGIC DAN JARINGAN SYARAF
TIRUAN

Oleh :
RIFKI YULIAN
0910953108

Dosen :
Heru Dibyo Laksono, MT





Jurusan Teknik Elektro
Fakultas Teknik
Universitas Andalas
Padang
2012

TUGAS BESAR
SISTEM KENDALI CERDAS

Logika fuzzy adalah suatu cara untuk memetakan suatu ruang input ke dalam
suatu ruang output. Skema logika fuzzy :

Antara input dan output terdapat suatu kotak hitam yang harus memetakan input
ke output yang sesuai. Misal :

Pemetaan input-output pada masalah produksi : diberikan data persediaan
barang, berapa jumlah barang yang harus diproduksi ?"
Ada beberapa cara/metode yang mampu bekerja di kotak hitam tersebut, misal :
sistem fizzy, jaringan syaraf tiruan, sistem linear, sistem pakar, persamaan
diferensial, dll.
Namun menurut Prof. Lotfi A. Zadeh, penemu teori logika fuzzy di tahun 1960-
an:

pada hampir semua kasus kita dapat menghasilkan suatu produk
tanpa menggunakan logika fuzzy, namun menggunakan fuzzy akan
lebih cepat dan lebih murah




ALASAN MENGGUNAKAN FUZZY
1. Konsep logika fuzzy mudah dimengerti
2. Logika fuzzy sangat fleksibel
3. Memiliki toleransi terhadap data-data yang tidak tepat
4. Dapat membangun dan mengaplikasikan pengalaman-pengalaman para
pakar secara langsung tanpa harus melalui proses pelatihan
5. Logika fuzzy didasarkan pada bahasa alami

APLIKASI LOGIKA FUZZY
1. Tahun 1990 pertama kali mesin cuci dengan logika fuzzy di Jepang
(Matsushita Electric Industrial Company). Sistem fuzzy digunakan untuk
menentukan putaran yang tepat secara otomatis berdasarkan jenis dan
banyaknya kotoran serta jumlah yang akan dicuci. Input yang digunakan :
seberapa kotor, jenis kotoran, banyaknya yang dicuci. Mesin ini
menggunakan sensor optik, mengeluarkan cahaya ke air dan mengukur
bagaimana cahaya tersebut sampai ke ujung lainnya. Makin kotor, maka
sum yang sampai makin redup. Sistem juga mampu menentukan jenis
kotoran tersebut daki/minyak.
2. Transmisi otomatis pada mobil Nissan, menghemat bensin 12 17 %
3. Kereta bawah tanah Sendai mengontrol pemberhentian otomatis pada area
tertentu
4. Ilmu kedokteran dan biologi, seperti sistem diagnosis kanker
5. Manajemen dan pengambilan keputusan, misal tata letak pabrik
berdasarkan logika fuzzy, pembuatan games berdasarkan logika fuzzy, dll.
6. Ilmu lingkungan, misal kendali kualitas air, prediksi cuaca.
7. Teknik, misal perancangan jaringan komputer, prediksi adanya gempa
bumi, dll.
8. dsb

HIMPUNAN DAN FUNGSI KEANGGOTAAN
HIMPUNAN TEGAS (CRISP)
= nilai keanggotaan suatu item x dalam suatu himpunan A, yang sering ditulis
dengan A[x], memiliki 2 kemungkinan, yaitu :
1, yang berarti bahwa item tersebut (x) anggota himpunan A
0, yang berarti bahwa, item tersebut (x) bukan anggota himpunan A
contoh :
- S = [1,2,3,4,5,6] adalah semesta, pembicaraan
A = [1,2,3]
B = [3,4,5]
Jadi :
Nilai keanggotaan 2 pada himpunm A A[2] = 1 karena 2 e A
Nilai keanggotaan 3 pada himpunm A A[3] = 1 karena 3 e A
Nilai keanggotaan 4 pada himpunm B A[4] = 0 karena 4 e A
Nilai keanggotaan 2 pada himpunm B A[2] = 0 karena 2 e B
Nilai keanggotaan 3 pada himpunm A A[3] = 1 karena 2 e B
- misal variabel umur dibagi menjadi 3 kategori, yaitu
MUDA umur < 35 tahun
PAROBAYA 35 s umur s 55 tahun
TUA umur > 55 tahun
Nilai keanggotaan secara grafis, himpunan MUDA, PAROBAYA, TUA :

usia 34 tahun maka dikatakan MUDA MUDA[34] = 1
usia 35 tahun maka dikatakan TIDAKMUDA MUDA[35] = 0
usia 35 tahun maka dikatakan PAROBAYA PAROBAYA[35] = 1
usia 34 tahun maka dikatakan TIDAKPAROBAYA PAROBAYA[34] = 0
usia 35 tahun kurang 1 hari maka dikatakan TIDAKPAROBAYA
PAROBAYA [35 th 1 hari] = 0
usia 35 tahun lebih 1 hari maka dikatakan TIDAKMUDA MUDA[35 th + 1
hari] = 0
Himpunan crisp untuk menyatakan umur bisa tidak adil karena adanya perubahan
kecil saja pada suatu nilai mengakibatkan perbedaan kategori yang cukup
signifikan.
HIMPUNAN FUZZY
Himpunan fuzzy digunakan untuk mengantisipasi hal tersebut diatas. Seseorang
dapat masuk dalam 2 himpunan yang berbeda, MUDA dan PAROBAYA,
PAROBAYA dan TUA, dsb. Seberapa besar eksistensinya dalam himpunan
tersebut dapat dilihat pada nilai/derajat keanggotaannya. Himpunan fuzzy untuk
variabel UMUR :

umur (th)
usia 40 tahun termasuk delam himpunan MUDA dengan MUDA[40] = 0,25
termasuk juga dalam himpunan PAROBAYA dengan PAROBAYA [40] = 0,5
usia 50 tahun termasuk dalam himpunan = TUA dengan TUA[50] = 0,25
termasuk juga dalam himpunan PAROBAYA dengan PAROBAYA [50] = 0,5







FUNGSI KEANGGOTAAN (Membership function)
= suatu kurva yang menunjukkan pemetaan titik-titik input data ke dalam
nilai/derajat yang memiliki interval antara 0 sampai 1.
Contoh grafik diatas adalah suatu fungsi keanggotaan untuk variabel UMUR yang
dibagi menjadi 3 kategori atau 3 himpunan fuzzy yaitu MUDA, PAROBAYA,
TUA, dimana dapat direpresentasikan sebagai berikut :

| |

>
< <
s

=
45
45 25
25
,
, 0
25 45
45
, 1
x
x
x
x
x MUDA | |

>
< <
s

=
65
65 45
45
,
, 1
45 65
45
, 0
x
x
x
x
x TUA

Himpunan crisp, nilai keanggotaan hanya 0 dan 1.
Himpunan fuzzy, derajat/nilai keanggotaan terletak pada rentang 0 sampai 1 sehingga
:
Bila x memiliki derajat keanggotaan fuzzy A [x] = 0 x bukan anggota himpunan A
Bila x memiliki derajat keanggotaan fuzzy A [x] = 1 x anggota penuh himpunan A
| |

s s
< <
s

=
55 45
65 45
45
,
,
45 55
55
35 45
35
, 0
x
x
x
x
x
x PAROBAYA

WATAK KEKABURAN
Perhatikan pernyataan dibawah ini
Mesin yang digunakan terus-menerus akan cepat panas
kita tidak dapat menentukan dengan tepat batasan terus-menerus, cepat, dan
panas
Jika air pancuran terlalu panas maka naikkan aliran air dingin perlahan-lahan
kita tidak dapat menentukan dengan tepat batasan terlalu panas, menaikkan,
air yang dingin, dan perlahan-lahan

Maka solusinya dengan menggunakan LOGIKA FUZZY (logika samar)

VARIABEL LINGUISTIK
- Variabel linguistik = sebuah variabel yang memiliki nilai berupa kata-kata
dalam bahasa alamiah bukan angka.
- Mengapa menggunakan kata/kalimat daripada angka ? karena peranan
linguistik memang kurang spesifik dibandingkan angka, namun informasi
yang disampaikan lebih informatif.
Contoh, jika "KECEPATAN" adalah variabel linguistik, maka nilai
linguistik untuk variabel kecepaten adalah, misalnya LAMBAT,
SEDANG, CEPAT. Hal ini sesuai dengan kebiasaan manusia sehari-
huri dalam menilai sesuatu, misalnya : Ia mengendarai mobil dengan
cepat, tanpa memberikan nilai berapa kecepatannya.
- Setiap variabel linguistic berkaitan dengen sebuah fungsi keanggotaan.
- Menurut Wang (1997) definisi formal dari variabel linguistik diberikan
sebagai berikut. Sebuah variabel linguistik dikarakteristik oleh (X, T(x),
U, M), dimana :
X : Nama variabel (variabel linguistik) yang menjadi objek
T(x) : Himpunan semua istilah (nilai-nilai) linguistik yang terkait
dengan (nama) variabel (X) yang menggambarkan objek
tersebut
U : Domain fisik aktual/ruang lingkup dimana variabel linguistik X
mengambil nilai-nilai kuantitatifnya/nilai numeric (crisp)
himpunan semesta
M : Suatu aturan semantik yang menghubungkon setiap nilai
linguistik dalam T dengan suatu himpunan fuzzy dalam U.

Dari contoh diatas, maka diperoleh:
X = kecepatan
U = [0 , 100] maksudnya domain/ruang lingkup kecepatan misal dari 0 sampai
100 km/jam
T(kecepatan) = {lambat, sedang, cepat} maksudnya variabel kecepatan terbagi
menjadi 3 himpunan fuzzy yaitu lambat, sedang, cepat
Maka M untuk setiap X, M(x) adalah: M(lambat), M(sedang), M(cepat)
M(lambat) = himpunan fuzzynya kecepatan dibawah 40 Km/jam dengan fungsi
keanggotaan
lambat

M(sedang) = himpunan fuzzynya kecepatan mendekati 55 Km/jam dengan
fungi keanggotaan
sedang
M(cepat) = himpunan fiizzynya. kecepatan diatas 70 Km/Jam dengan fungsi
keanggotaan
cepat
Gambar grafik fungsi keanggotaamya sebagai berikut :

Grafik fungsi keanggotaan kecepatan

Sehingga himpunan fuzzy untuk.
M(lambat) = {(0,1), (1,1),(2,1), , (40,1), , (47,0.533), , (55,0),(56,0)...
(100,0)}
M(sedang) = {(0,0), (1,0),(2,0), , (40,0), , (47,0.533), , (55,1),(56,0.933)...
(100,0)}
M(cepat) = {(0,0), (1,1),(2,1), , (40,1), , (47,0), , (55,0),(56,0.866)...
(100,1)}

OPERASI DASAR HIMPUNAN FUZZY (Operator Zadeh)
Digunakan untuk mengkombinasi dan memodifikasi himpunan fuzzy. Nilai
keanggotaan sebagai hasil dari operasi 2 himpunan disebut fire strength atau a
predikat.
Operator Operasi Fungsi Keanggotaan
AND Intersection
(AB)
(x) = min [A(x), B(x)]
OR Union
(AB)
(x) = min [A(x), B(x)]
NOT Complement
A
(x) = 1 - A(x)

Contoh :
- U = {1,2,3,4,5,6}
A = {(1,0), (2,0,2), (3,0,6), (4,0,9), (5,1), (6,0,8)}
B = {(1,0,8), (2,1), (3,0,7), (4,0,4), (5,0,1), (6,0)}

Maka o predikat untuk :
A
c
= {(1,1), (2,0,8), (3,0,3), (4,0,1), (5,0), (6,0,2)}
B
c
= {(1,0.2), (2,0), (3,0.3), (4,0.6), (5,0.9), (6,1)}
AB = {(1,0), (2,0.2), (3,0.6), (4,0.4), (5,0.1), (6,0)}
AB = {(1,0.8), (2,1), (3,0.7), (4,0.9), (5,1), (6,0.8)}

- Misal derajat keanggotaan 27 tahun pada himpunan MUDA adalah 0.6
(MUDA[27] = 0.6)
Derajat keanggotaan Rp. 2 juta pada himpunan penghasilan TINGGI
adalah 0.8
(GAJIT1NGGI[2juta] = 0.8) maka o predikat untuk usia MUDA dan
berpenghasilan TINGGI :
(MUDA GAJITINGGI = min (MUDA[27], GAJITINGGI[2juta])
= min (0.6, 0.8) = 0.6
PENALARAN MONOTON
ATURAN (RULE) IF-THEN FUZZY
- Aturan IF-THEN fuzzy adalah penyataan IF-THEN dimana beberapa kata-
kata dalam pernyataan tersebut ditentulcm oleh fungsi keanggotaan.
- Aturan produksi fuzzy adalah relax; fuzzy antara dua proposisi fuzzy.
Aturan tersebut dinyatakan dalam bentuk:

IF (proposisi fuzzy 1) THEN (proposisi fuzzy 2)

Disebut antecedes/premix Disebut consequent/kesimpulan

- Proposisi fuzzy adalah memiliki derajat kebenaran yang dinyatakan dalam
suatu bilangan dalam bentuk interval [0, 1], dimana benar dinyatakan oleh
nilai 1 dan salah dinyatakan oleh nilai 0.
- Premis dari aturan fuzzy dapat memiliki lebih dari satu bagian (premis1,
premis2, ...dst), semua bagian dari premix dihitung socam simultan dan
diselesaikan untuk sebuah nilai tunggal dengan penggunakan operator
fuzzy dalam himpunan fuzzy.

IF premis 1 AND premis 2 THEN kesimpulan 1 AND kesimpulan 2

Dimana : AND adalah operator fuzzy
Premis 1 dan premis 2 berupa variabel masukan
Kesimpulan 1 dan kesimpulan 2 berupa variabel keluaran

Contoh:
IF permintaan turun AND persediaan banyak THEN produksi barang berkurang
IF permintaan naik AND persediaan sedikit THEN produksi barang bertambah

Dimana :
Permintaan, persediaan : variabel masukan
produksi barang : variabel keluaran
Turun, naik : kategori himpunan fuzzy dari permintaan
Banyak, sedikit : kategori himpunan fuzzy dari persediaan
Berkurang, bertambah : kategon himpunan fuzzy dari produksi barang

FUNGSI IMPLIKASI
TAHAPAN MEMBANGUN SISTEM FUZZY
Tahapan membangun sistem fuzzy tergantung metode yang digunakan, karena
banyak teori/metode untuk membangun sistem fuzzy. Namun secara garis besar
dapat disimpulkan sebagai berikut:
Sistem Fuzzy





Fuzzifikasi
= mengambil masukan nilai crisp dan menentukan derajat dimana nilai-nilai
tersebut menjadi anggota dan setiap himpunan fuzzy yang sesuai membuat
fungsi keanggotaan
Contoh : masukan crisp 75 derajat ditransformasikan sebagai panas dalam bentuk
fuzzy dengan derajat keanggotaan 0.80.

Inferensi
- mengaplikasikan aturan pada masukan fuzzy yang dihasilkan dalam proses
fuzzyfikasi
- mengevalussi tiap aturan dengan masukan yang dihasilkan dari proses
fuzzyfikasi dengan mengevaluasi hubungan atau derajat keanggotaan
anteceden/premis setiap aturan.
- Derajat keanggotaan/nilai kebenaran dan premis digunakan untuk menentukan
nilai kebenaran bagian consequent/kesimpulan
Proses penentuan Output Crisp Tergantung teori/metode yang digunakan.



Output
crisp
Input
crisp
Fuzzifikasi Inferensi
Proses
penentuan
output crisp
METODE INFERENSI FUZZY
METODE ISUKAMOTO
Suatu perusahaan makanan kaleng akan memproduksi makanan jenis ABC. Dan
data 1 bulan terakhir, permintaan terbesar mencapai 5000 kemasan/hari, dan
permintaan terkecil, sampai 1000 kemasan/hari.
Persediaan barang di gudang terbanyak sampai 600 kemasan/hari, dan terkecil
pernah 100 kemasan/hari.
Dengan segala keterbatasannya, sampai saat ini, perusahaan baru mampu
memproduksi barang maksimum 7000 kemasan/hari, serta demi efisiensi mesin
dan SDM perusahaan memproduksi paling tidak 2000 kemasan.

Apabila proses produksi perusahaan tersebut menggunakan 4 aturan fuzzy :
R1 : IF permintaan turun AND persediaan banyak THEN produksi barang
berkurang
R2 : IF permintaan turun AND persediaan sedikit THEN produksi barang
berkurang
R3 : IF permintaan naik AND persediaan banyak THEN produksi barang
bertambah
R4 : IF permintaan naik AND persediaan sedikit THEN produksi barang
bertambah
Berapa kemasan maimmn jenis ABC yang harus diproduksi, jika jumlah
permintaan sebanyak 4000 kemasan dan persediaan di gudang masih 300
kemasan?
Solusi :
FUZZIFIKASI membuat fungsi keanggotaan
Ada 3 variabel fuzzy yang akan dimodelkan, yaitu :
1. PERMINTAAN
Terdiri atas 2 himpunan fuzzy yaitu NAIK dan TURUN





| |
5000
5000 1000
1000
, 0
1000 5000
5000
, 1
min
>
< <
s

=
x
x
x
x
x taanTURUN per

| |
5000
5000 1000
1000
, 1
1000 5000
1000
, 0
min
>
< <
s

=
x
x
x
x
x taanNAIK per



2. PERSEDIAAN
Terdiri atas 2 himpunan fuzzy yaitu SEDIKIT dan BANYAK

| |
600
600 100
1000
, 0
100 600
600
, 1
>
< <
s

=
y
x
y
y
x SEDIKIT persediaan
| |
600
600 100
1000
, 1
100 600
100
, 0
>
< <
s

=
y
x
y
Y
x BANYAK persediaan




Derajat/nilai
keanggotaan :
permintaan
TURUN[4000]
= (5000 4000)/4000
= 0,25
permintaan
NAIK[4000]
= (4000 1000)/4000
= 0,75
Derajat/nilai
keanggotaan :
permintaan
SEDIKIT[300]
= (600 300)/5000
= 0,6

persediaan
BANYAK[300]
= (300 100)/500
= 0,4

3. PRODUKSI BARANG
Terdiri atas 2 himpunan fuzzy yaitu BERKURANG dan BERTAMBAH

| |
7000
7000 2000
2000
, 0
2000 7000
700
, 1
>
< <
s

=
z
z
z
z
z RKURANG produksiBE
| |
7000
700 2000
2000
,
, 1
2000 7000
2000
, 0
>
< <
s

=
z
z
z
z
x RTAMBAH produksiBE

MENENTUKAN OUTPUT CRISP
Pada metode TSUKAMOTO untuk menentukan output crisp menggunakan rata-
rata berbobot yaitu


4 3 2 1
4 4 3 3 2 2 1 1
o o o o
o o o o
+ + +
+ + +
=
z z z z
z


6 , 0 4 , 0 25 , 0 25 , 0
5000 * 6 , 0 4000 * 4 , 0 5750 * 25 , 0 5750 * 25 , 0
+ + +
+ + +
=
= 7475/1,5 = 4983
Jadi jumlah makanan kaleng yang harus diproduksi 4983 kemasan
TAKAGI-SUGENO FUZZY METHOD
(TS METHOD)
Pada bagian ini, dasar model fuzzy Sugeno yang diimplementasikan ke
dalam sistem saraf-fuzzy. Model fuzzy Sugeno diusulkan oleh Takagi, Sugeno,
dan Kang dalam upaya untuk memformalkan pendekatan sistem untuk
menghasilkan aturan-aturan fuzzy (fuzzy rules) dari set data input-output. Model
fuzzy Sugeno juga dikenal sebagai Sugeno-Takagi model. Sebuah fuzzy rules
yang khas di model fuzzy Sugeno memiliki format :
IF x is A and y is B THEN z = f(x, y),

di mana AB adalah fuzzy set sebagai anteseden; Z = f (x, y) adalah fungsi tegas
(crisp function) sebagai akibat. Biasanya f (x, y) adalah polinomial dalam variabel
input x dan y, tetapi bisa jadi fungsi-fungsi lain yang dapat dengan tepat
menggambarkan output dari output sistem dalam wilayah fuzzy yang ditentukan
oleh anteseden aturan (antecedent of rule). Ketika f (x, y) adalah polinomial orde
pertama, kita memiliki orde pertama model fuzzy Sugeno. Bila f adalah konstan,
kita kemudian memiliki model fuzzy Sugeno orde nol, yang dapat dilihat juga
sebagai kasus khusus dari FIS Mamdani dimana konsekuensi/akibat setiap aturan
ditentukan oleh fuzzy singleton, atau kasus khusus model fuzzy Tsukamoto di
mana konsekuensi setiap aturan ditetapkan oleh fungsi keanggotaan (Mf =
membership function) dari fungsi langkah terpusat saat konstan. Selain itu, model
fuzzy Sugeno orde nol secara fungsional setara dengan jaringan fungsi basis radial
dibawah kendala/paksaan kecil tertentu.
Dua bagian pertama dari proses inferensi fuzzy, fuzzifying input dan
applying operator fuzzy, adalah persis sama. Perbedaan utama antara Mamdani
dan Sugeno adalah bahwa fungsi keanggotaan output Sugeno adalah linier atau
konstan. Aturan khas dalam model fuzzy Sugeno memiliki bentuk :

IF Input 1 = x AND Input 2 = y, THEN Output is z = ax + by + c.
Untuk model Sugeno orde nol, tingkat output z adalah konstan (a = b = 0).
Tingkat output z
i
setiap aturan dibebani oleh kekuatan penembakan w
i
aturan.
Sebagai contoh, untuk aturan AND dengan input 1 = x dan Input 2 = y, kekuatan
penembakan adalah :
)) ( ), ( (
2 1
y F x F AndMethod w
i
= ,

di mana F
1, 2
( ) adalah fungsi keanggotaan untuk Input 1 dan 2. Output akhir dari
sistem adalah rata-rata berbeban dari semua aturan output, yang dihitung sebagai :

=
=
=
N
i
i
i
N
i
i
w
z w
output Final
1
1
_

Aturan Sugeno beroperasi seperti ditunjukkan pada Gambar. 6.6.



Gambar 6.7 menunjukkan fuzzy tiping model dikembangkan pada bagian
sebelumnya dari panduan ini yang diadaptasi untuk digunakan sebagai sistem
Sugeno. Untungnya, hal ini kasus yang sering terjadi bahwa fungsi singleton
output benar-benar cukup untuk kebutuhan dari masalah yang diberikan. Sebagai
contoh, sistem tippersg.fis adalah representasi tipe Sugeno dari model tipping
yang sekarang familiar (Gambar 6.7).

- a = readfis(tippersg);
gensurf(a)
Perintah di atas memberikan pandangan permukaan model tipping fuzzy
sebagaimana ditunjukkan pada Gambar. 6.8.

Cara termudah untuk memvisualisasikan sistem orde pertama Sugeno
adalah memikirkan setiap aturan sebagai definisi lokasi dari "moving singleton",
yaitu singleton output spikes bisa bergerak berputar dengan cara linear dalam
ruang output, tergantung pada apa inputnya. Hal ini juga cenderung untuk
membuat sistem notasi sangat kompak dan efisien. Orde lebih tinggi dari model
fuzzy Sugeno mungkin, tapi mereka memperkenalkan kompleksitas yang
signifikan dengan keunggulan yang jelas sedikit. Model fuzzy Sugeno memiliki
output fungsi keanggotaan lebih besar dari orde pertama yang tidak didukung oleh
Toolbox Fuzzy Logic.
Karena ketergantungan linear setiap aturan pada variabel input dari sistem,
metode Sugeno sangat ideal untuk bertindak sebagai pengawas interpolasi
kontroler linier berganda yang akan diterapkan, masing-masing, yang berbeda
kondisi operasi dari sistem nonlinier dinamis. Sebagai contoh, kinerja pesawat
terbang dapat berubah secara dramatis dengan ketinggian dan Mach nomor.
Pengendali linier, meskipun mudah untuk menghitung dan cocok untuk setiap
diberikan kondisi penerbangan, harus diperbarui secara teratur dan lancar untuk
mengikuti dengan negara perubahan kendaraan penerbangan. Sebuah FIS Sugeno
adalah sangat baik cocok untuk tugas lancar interpolasi linier keuntungan yang
akan diterapkan di seluruh ruang input, yang merupakan keuntungan alami dan
efisien penjadwal. Demikian pula, sebuah sistem Sugeno cocok untuk pemodelan
sistem nonlinear dengan interpolasi antara model linier berganda.
Karena merupakan representasi yang lebih kompak dan komputasi yang efisien
daripada sistem Mamdani, sistem Sugeno cocok untuk penggunaan adaptif teknik
untuk membangun model fuzzy. Teknik ini dapat adaptif digunakan untuk
menyesuaikan fungsi keanggotaan sehingga sistem fuzzy terbaik model data.
Comparison Between Sugeno and
Mamdani Method
Perbedaan utama antara Mamdani dan Sugeno adalah bahwa fungsi
keanggotaan output Sugeno adalah linier atau konstan. Juga perbedaan terletak
pada konsekuensi/akibat dari aturan fuzzy mereka, sehingga prosedur agregasi
mereka dan prosedur defuzzification dengan cocok berbeda. Jumlah input fuzzy
set dan aturan fuzzy dibutuhkan oleh sistem fuzzy Sugeno tergantung pada jumlah
dan lokasi dari ekstrem fungsi untuk didekati. Dalam Metode sugeno, sejumlah
besar aturan fuzzy harus digunakan untuk memperkirakan periodik atau fungsi
osilator yang tinggi. Konfigurasi minimal TS sistem fuzzy dapat dikurangi dan
menjadi lebih kecil dibandingkan dengan Mamdani system fuzzy jika fuzzy set
input nontrapezoidal atau nontriangular digunakan. Pengendali Sugeno biasanya
memiliki parameter jauh lebih diatur dalam konsekuensi/akibat aturan dan jumlah
parameter tumbuh secara eksponensial dengan peningkatan jumlah variabel input.
Hasil matematika jauh lebih sedikit ada untuk pengendali fuzzy TS daripada
untuk pengendali Mamdani fuzzy, terutama terhadap stabilitas sistem kontrol TS
fuzzy. Mamdani mudah untuk membentuk dibandingkan dengan Metode Sugeno.
Advantages of Sugeno and Mamdani
Method
Keuntungan dari Metode Sugeno

- Komputasi yang efisien.
- Bekerja dengan baik dengan teknik linier (misalnya, PID kontrol)
- Bekerja dengan baik dengan optimasi dan teknik adaptif.
- Menjamin kelangsungan permukaan output.
- Cocok untuk analisis matematika.

Keuntungan dari Metode Mamdani

- intuitif.
- Memperluas penerimaan (acceptance).
- Cocok untuk input manusia.

Sistem inferensi fuzzy adalah alat pemodelan yang paling penting
berdasarkan fuzzy set teori. FIS dibangun oleh pakar domain dan digunakan
dalam control otomatis , analisa keputusan, dan berbagai sistem pakar lainnya.


1. Studi Kasus Mengenai Fuzzy Logic Menggunakan Toolbox Fuzzy
Pada Matlab

Rancang sebuah Fuzzy Inference System untuk kasus penentuan bonus pegawai
restoran berdasarkan pelayanan dan masakan yang disajikan dengan
menggunakan rule Mamdani dengan logika yang tepat.

Penyelesaian :

Langkah pertama adalah buka program Matlab. Arahkan Current Directory pada
posisi folder yang tepat.


Pada Command Window ketik fuzzy, maka akan muncul jendela berikut ini.


Secara default Matlab menyediakan satu masukan, satu keluaran dan satu rule
bertipe Mamdani. Karena diminta untuk membuat dua masukan yaitu pelayanan
dan masakan, klik: edit Add Variable Klik input. Tambahkan pelayanan
dan masakan sebagai variabel masukan. Beri nama yang sesuai untuk output,
yaitu bonus.


Langkah berikutnya adalah dengan membuat fungsi keanggotaan (membership
function) untuk input, yaitu pelayanan terlebih dahulu, double klik pada masukan
pelayanan, maka akan muncul jendela baru untuk mengatur fungsi keanggotaan.
Yang perlu diatur adalah nama fungsi keanggotaan, range dan tipe-nya. Nama
fungsi keanggotaan pada FIS berupa ciri verbal seperti baik, rata-rata atau buruk.
Range menyatakan jangkauan angka misalnya lima menyatakan paling baik, nol
menyatakan paling buruk, berarti antara dua dan tiga adalah rata-rata. Agar lebih
cepat, gunakan tipe z, gauss dan s untuk berturut-turut pada fungsi buruk, rata-rata
dan baik.


Dengan cara yang sama dengan langkah keempat, dibuat untuk masukan masakan.
Untuk mudahnya gunakan nama fungsi masakan tidak enak, rata-rata dan enak.
Range gunakan jangkauan yang sama untuk pelayanan.


Berikutnya dirancang fungsi keanggotaan pada variabel keluaran, yaitu bonus.
Akan dikategorikan bonus menjadi banyak, rata-rata dan sedikit. Untuk
memudahkan, gunakan range penjumlahan dua masukan yaitu sepuluh. Gunakan
fungsi sederhana yaitu fungsi segitiga. Atur nama fungsi serta tipenya sehingga
menghasilkan gambar sebagai berikut.


Jika telah selesai, maka terakhir dibuat logika pada rule. Close terlebih dahulu
Membership Function Editor. Double klik pada bagian tengah FIS editor. Isikan
logika yang sesuai, yaitu skenario terbaik, terburuk dan rata-rata.


Untuk melihat apakah sesuai dengan yang diharapkan, klik: view surface,
perhatikan apakah sudah sesuai dengan keinginan.


Untuk mengatur kecenderungan kita apakah memberi bonus baik atau tidak, dapat
kita lakukan dengan mengklik: view rules. Untuk mengatur kecenderungannya
dapat kita lakukan dengan menggeser garis tengah berwarna merah untuk tiap
fungsi keanggotaan.


Satu engine FIS telah berhasil dibuat. Untuk menyimpan dapat dilakukan dengan
mengklik: file export. Ada dua pilihan yang tersedia, yaitu to Workspace dan to
File. Bila dipilih to workspace maka hanya akan muncul pada Matlab saat aktif
sekarang saja. Bila di-shutdown, data akan hilang. Sebaiknya dipilih to file agar
lebih permanen. Setelah diklik to file, beri nama, misalnya bonus. File fuzzy akan
tersimpan dengan ekstensi fis.

Berikutnya kita akan menguji fuzzy yang telah dibuat. Kembali ke command
window, ketik: fis=readfis(bonus) lalu enter maka Matlab akan meload engine
FIS yang kita miliki, yaitu bonus.fis. Berarti variabelnya diberi nama fis.

>> fis=readfis(bonus)

Berikut pengujian misalnya pelayanan buruk, yaitu 1 sedangkan masakannya pun
tidak enak. Instruksi yang diperlukan adalah evalfis.

>> out = evalfis([1 1],fis)

out =

3.2863

Hasil defuzzifikasi, dengan variabel out, adalah 3,2863 yang jika dibandingkan
dengan skala 10 masih dibilang buruk.

>> out = evalfis([5 5],fis)

out =

7.3379

JARINGAN SYARAF TIRUAN

Jaringan syaraf adalah merupakan salah satu representasi buatan dari otak manusia
yang selalu mencoba untuk mensimulasikan proses pembelajaran pada otak manusia
tersebut. Istilah buatan disini digunakan karena jaringan syaraf ini diimplementasikan
dengan menggunakan program komputer yang mampu menyelesaikan sejumlah proses
perhitungan selama proses pembelajaran.
3.1 GAMBARAN UMUM JARINGAN SYARAF TIRUAN
3.1.1 Jaringan Syaraf Secara Biologis
Otak manusia berisi berjuta-juta sel syaraf yang bertugas untuk memproses
informasi. Tiap-tiap sel bekerja seperti suatu prosesor sederhana. Masing-masing sel
tersebut saling berinteraksi sehingga mendukung kemampuan kerja otak manusia.




Sel-1
(Neuron-1)
Sel-2
(Neuron-2)
Inti Sel
(Neucleus)
Axon
Dendrit
Synapsis
Dendrit



Gambar 3.1 Susunan syaraf manusia.
Gambar diatas menunjukkan susunan syaraf pada manusia. Setiap sel syaraf (neuron)
akan memiliki satu inti sel, inti sel ini nanti yang akan bertukan untuk melakukan
pemrosesan informasi. Informasi yang datang akan diterima oleh dendrit. Selain
menerima informasi, dendrit juga menyertai axon sebagai keluaran dari suatu
pemrosesan informasi. Informasi hasil olahan ini akan menjadi masukan bagi neuron lain
yang mana antar dendrit kedua sel tersebut dipertemukan dengan synapsis. Informasi
yang dikirimkan antar neuron ini berupa rangsangan yang dilewatkan melalui dendrit.
Informasi yang datang dan diterima oleh dendrit akan dijumlahkan dan dikirim melalui
axon ke dendrit akhir yang bersentuhan dengan dendrit dari neuron yang lain. Informasi
ini akan diterima oleh neuron lain jika memenuhi batasan tertentu, yang sering dikenal
dengan nama nilai ambang (threshold). Pada kasus ini, neuron tersebut dikatakan
teraktivasi. Hubungan antar neuron terjadi secara adaptif, artinya struktur hubungan
tersebut terjadi secara dinamis. Otak manusia selalu memiliki kemampuan untuk belajar
dengan melakukan adaptasi.
3.1.2 SEJARAH
Mulai dari ditemukannya, jaringan syaraf tiruan telah mengalami tahap-
tahap perkembangan, antara lain:
Pada tahun 1940-an, para ilmuwan menemukan bahwa psikologi dari otak sama
dengan mode pemrosesan yang dilakukan oleh peralatan komputer.
Pada tahun 1943, McCulloch dan Pitts merancang model formal yang pertama
kali sebagai perhitungan dasar neuron.
Pada tahun 1949, Hebb menyatakan bahwa informasi dapat disimpan dalam
koneksi-koneksi dan mengusulkan adanya skema pembelajaran untuk
memperbaiki koneksi-koneksi antar neuron tersebut.
Pada tahun 1954, Farley dan Clark mensetup model-model untuk relasi adaptif
stimulus-respon dalam jaringan random.
Pada tahun 1958, Rosenblatt mengembangkan kosep dasar tentang perceptron
untuk klasifikasi pola.
Pada tahun 1960, Widrow dan Hoff mengembangkan ADALINE untuk kendali
adaptif dan pencocokan pola yang dilatih dengan aturan pembelajaran Least
Mean Square (LMS).
Pada tahun 1974, Werbos memperkenalkan algoritma backpropagation untuk
melatih perceptron dengan banyak lapisan.
Pada tahun 1975, Little dan Shaw menggambarkan jaringan syaraf dengan
menggunakan model probabilistik.
Pada tahun 1982, Kohonen mengembangkan metode pembelajaran jaringan
syaraf yang tidak terawasi (unsupervised learning) untuk pemetaan.
Pada tahun 1982, Grossberg mengembangkan teori jaringan yang diinspirasi
oleh perkembangan psikologi. Bersama Carpenter, mereka mengenalkan
sejumlah arsitektur jaringan, antara lain: Adaptive Resonance Theory (ART),
ART2, dan ART3.
Pada tahun 1982, Hopfield mengembangkan jaringan syaraf reccurent yang
dapat digunakan untuk menyimpan informasi dan optimasi.
Pada tahun 1985, algoritma pembelajaran dengan menggunakan mesin
Boltzmann yang menggunakan model jaringan syaraf probabilistik mulai
dikembangkan.
Pada tahun 1987, Kosko mengembangkan jaringan Adaptive Bidirectional
Associative Memory (BAM).
Pada tahun 1988, mulai dikembangkan fungsi radial basis.

3.1.3 KOMPONEN JARINGAN SYARAF
Ada beberapa tipe jaringan syaraf, namun demikian, hampir semuanya
memiliki komponen-komponen yang sama. Seperti halnya otak manusia, jaringan syaraf
juga terdiri-dari beberapa neuron, dan ada hubungan antara neuron-neuron tersebut.
Neuron-neuron tersebut akan mentransformasikan informasi yang diterima melalui
sambungan keluarnya menuju ke neuron-neuron yang lain. Pada jaringan syaraf,
hubungan ini dikenal dengan nama bobot. Informasi tersebut disimpan pada suatu nilai
tertentu pada bobot tersebut. Gambar 3.2 menunjukkan struktur neuron pada jaringan
syaraf.



Fungsi aktivasi

Output
bobot
bobot
Input dari
neuron-
neuron
yang lain
Output ke
neuron-
neuron
yang lain



Gambar 3.2 Struktur neuron jaringan syaraf.
Jika kita lihat, neuron buatan ini sebenarnya mirip dengan sel neuron biologis. Neuron-
neuron buatan tersebut bekerja dengan cara yang sama pula dengan neuron-neuron
biologis. Informasi (disebut dengan: input) akan dikirim ke neuron dengan bobot
kedatangan tertentu. Input ini akan diproses oleh suatu fungsi perambatan yang akan
menjumlahkan nilai-nilai semua bobot yang yanag datang. Hasil penjumlahan ini
kemudian akan dibandingkan dengan suatu nilai ambang (threshold) tertentu melalui
fungsi aktivasi setiap neuron. Apabila input tersebut melewati suatu nilai ambang
tertentu, maka neuron tersebut akan diaktifkan, tapi kalau tidak, maka neuron tersebut
tidak akan diaktifkan. Apabila neuron tersebut diaktifkan, maka neuron tersebut akan
mengirimkan output melalui bobot-bobot outputnya ke semua neuron yang
berhubungan dengannya. Demikian seterusnya.
Pada jaringan syaraf, neuron-neuron akan dikumpulkan dalam lapisan-lapisan (layer)
yang disebut dengan lapisan neuron (neuron layers). Biasanya neuron-neuron pada satu
lapisan akan dihubungkan dengan lapisan-lapisan sebelum dan sesudahnya (kecuali
lapisan input dan lapisan output). Informasi yang diberikan pada jaringan syaraf akan
dirambatkan lapisan ke lapisan, mulai dari lapisan input sampai ke lapisan output
melalui lapisan yang lainnya, yang sering dikenal dengan nama lapisan tersembunyi
(hidden layer). Tergantung pada algoritma pembelajarannya, bisa jadi informasi
tersebut akan dirambatkan secara mundur pada jaringan. Gambar 3.3 menunjukkan
jaringan syaraf dengan 3 lapisan.









Nilai input
Neuron-neuron pada
lapisan input
Neuron-neuron pada
lapisan tersembunyi
Neuron-neuron pada
lapisan output
Nilai output


Gambar 3.3 Jaringan syaraf dengan 3 lapisan.
Gambar 3.3 bukanlah struktur umum jaringan syaraf. Beberapa jaringan syaraf ada juga
yang tidak memiliki lapisan tersembunyi, dan ada juga jaringan syaraf dimana neuron-
neuronnya disusun dalam bentuk matriks.
3.1.4 ARSITEKTUR JARINGAN
Seperti telah dijelaskan sebelumnya bahwa neuron-neuron
dikelompokkan dalan lapisan-lapisan. Umumnya, neuron-neuron yang terletak
pada lapisan yang sama akan memiliki keadaan yang sama. Faktor terpenting
dalam menentukan kelakuan suatu neuron adalah fungsi aktivasi dan pola
bobotnya. Pada setiap lapisan yang sama, neuron-neuron akan memiliki fungsi
aktivasi yang sama. Apabila neuron-neuron dalam suatu lapisan (misalkan lapisan
tersembunyi) akan dihubungkan dengan neuron-neuron pada lapisan yang lain
(misalkan lapisan output), maka setiap neuron pada lapisan tersebut (misalkan
lapisan tersembunyi) juga harus dihubungkan dengan setiap lapisan pada lapisan
lainnya (misalkan lapisan output).
Ada beberapa arsitektur jaringan syaraf, antara lain:
a) Jaringan 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 (Gambar
3.4). Pada Gambar 3.4 tersebut, lapisan input memiliki 3 neuron, yaitu X
1
, X
2
dan
X
3
. Sedangkan pada lapisan output memiliki 2 neuron yaitu Y
1
dan Y
2
. Neuron-
neuron pada kedua lapisan saling berhubungan. Seberapa besar hubungan antara 2
neuron ditentukan oleh bobot yang bersesuaian. Semua unit input akan
dihubungkan dengan setiap unit output.





Nilai input
Lapisan Input
Matriks bobot
Lapisan Output
w
11

X
1
X
2
X
3

Y
1
Y
2

w
12

w
21

w
22

w
31
w
32








Gambar 3.4 Jaringan syaraf dengan lapisan tunggal.
b) Jaringan dengan banyak lapisan (multilayer net)
Jaringan dengan banyak lapisan memiliki 1 atau lebih lapisan yang terletak
diantara lapisan input dan lapisan output (memiliki 1 atau lebih lapisan
tersembunyi), seperti terlihat pada Gambar 3.5. Umumnya, ada lapisan bobot-
bobot yang terletak antara 2 lapisan yang bersebelahan. Jaringan dengan banyak
lapisan ini dapat menyelesaikan permasalahan yang lebih sulit daripada lapisan
dengan lapisan tunggal, tentu saja dengan pembelajaran yang lebih rumit. Namun
demikian, pada banyak kasus, pembelajaran pada jaringan dengan banyak lapisan
ini lebih sukses dalam menyelesaikan masalah.















Nilai input
Lapisan Input
Matriks bobot
pertama
Lapisan Tersembunyi
Nilai output
v
11

X
1
X
2
X
3

Z
1
Z
2

v
12

v
21

v
22

v
31
v
32

Matriks bobot kedua
Lapisan Output
Y
w
1
w
2

Gambar 3.5 Jaringan syaraf dengan banyak lapisan.

c) Jaringan dengan lapisan kompetitif (competitive layer net)
Umumnya, hubungan antar neuron pada lapisan kompetitif ini tidak diperlihatkan pada
diagram arsitektur. Gambar 3.6 menunjukkan salah satu contoh arsitektur jaringan
dengan lapisan kompetitif yang memiliki bobot -q.






Gambar 3.6 Jaringan syaraf dengan lapisan kompetitif.

3.2 FUNGSI AKTIVASI
Ada beberapa fungsi aktivasi yang sering digunakan dalam jaringan syaraf
tiruan, antara lain:
a. Fungsi Undak Biner (Hard Limit)
Jaringan dengan lapisan tunggal sering menggunakan fungsi undak (step function)
untuk mengkonversikan input dari suatu variabel yang bernilai kontinu ke suatu
output biner (0 atau 1) (Gambar 3.7).
Fungsi undak biner (hard limit) dirumuskan sebagai:

>
s
=
0 x jika , 1
0 x jika , 0
y





Gambar 3.7 Fungsi aktivasi: Undak Biner (hard limit).
0
1
y
x
A
1
A
m

A
i
A
j

-q
-q
-q
-q
-q
-q
1
1
1
1
b. Fungsi Bipolar (Symetric Hard Limit)
Fungsi bipolar sebenarnya hampir sama dengan fungsi undak biner, hanya
saja output yang dihasilkan berupa 1, 0 atau 1 (Gambar 3.8).
Fungsi Symetric Hard Limit dirumuskan sebagai:

<
=
>
=
0 x jika , 1
0 x jika , 0
0 x jika , 1
y







Gambar 3.8 Fungsi aktivasi: Bipolar (symetric hard limit).
c. Fungsi Linear (identitas)
Fungsi linear memiliki nilai output yang sama dengan nilai inputnya (Gambar
3.9).
Fungsi linear dirumuskan sebagai:
x y =






Gambar 3.9 Fungsi aktivasi: Linear (identitas).
d. Fungsi Saturating Linear
Fungsi ini akan bernilai 0 jika inputnya kurang dari , dan akan bernilai
1 jika inputnya lebih dari . Sedangkan jika nilai input terletak antara dan
0
1
y
x
-1
0
1
y
x
-1
-1 1
, maka outpunya akan bernilai sama dengan nilai input ditambah (Gambar
3.10).
Fungsi saturating linear dirumuskan sebagai:

s
s s +
>
=
5 , 0 x jika ; 0
5 , 0 x 5 , 0 jika ; 5 , 0 x
5 , 0 x jika ; 1
y






Gambar 3.10 Fungsi aktivasi: Saturating Linear
e. Fungsi Symetric Saturating Linear
Fungsi ini akan bernilai -1 jika inputnya kurang dari 1, dan akan bernilai
1 jika inputnya lebih dari 1. Sedangkan jika nilai input terletak antara 1 dan 1,
maka outpunya akan bernilai sama dengan nilai inputnya (Gambar 3.11).
Fungsi symetric saturating linear dirumuskan sebagai:

s
s s
>
=
1 ; 1
1 1 ;
1 ; 1
x jika
x jika x
x jika
y








Gambar 3.11 Fungsi aktivasi: Symetric Saturating Linear.
0
1
y
x -0,5 0,5
0
1
y
x -1 1
-1

Proses Pembelajaran
Ada beberapa metode untuk proses pembelajaran pada jaringan saraf tiruan ini,
diantaranya
1. Pembelajaran Terawasi (Supervised Learning)
satu neuron pada lapisan input. Pola ini akan dirambatkan disepanjang jaringan saraf
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 output hasil pembelajaran dengan pola target, maka disini akan muncul
error. Apabila error ini masih cukup besar, mengindikasikan bahwa masih perlu
dilakukan lebih banyak pembelajaran lagi.
Perceptron
Perceptron termasuk kedalam salah satu bentuk Jaringan Syaraf Tiruan yang sederhana.
Perceptron biasanya digunakan untuk mengklasifikasikan suatu tipe pola tertentu yang
sering dikenal dengan istilah pemisahan secara linear. Pada dasarnya perceptron pada
Jaringan Syaraf dengan satu lapisan memiliki bobot yang bisa diatur dan suatu nilai
ambang. Algoritma yang digunakan oleh aturan perceptron ini akan mengatur parameter-
parameter bebasnya melalui proses pembelajaran. Fungsi aktivasi dibuat sedemikian rupa
sehingga terjadi pembatasan antara daerah positif dan daerah negatif. Perceptron dapat
dilihat di gambar berikut

Gambar 1.6 Bentuk Perceptron
Metoda Backpropagation
Perambatan galat mundur (Backpropagation) adalah sebuah metode sistematik untuk
pelatihan multiplayer jaringan saraf tiruan. Metode ini memiliki dasar matematis yang
kuat, obyektif dan algoritma ini mendapatkan bentuk persamaan dan nilai koefisien dalam
formula dengan meminimalkan jumlah kuadrat galat error melalui model yang
dikembangkan (training set)
1. Dimulai dengan lapisan masukan, hitung keluaran dari setiap elemen pemroses melalui
lapisan luar.
2. Hitung kesalahan pada lapisan luar yang merupakan selisih antara data aktual dan
target.
3. Transformasikan kesalahan tersebut pada kesalahan yang sesuai di sisi masukan
elemen
pemroses.
4. Propagasi balik kesalahan-kesalahan ini pada keluaran setiap elemen pemroses ke
kesalahan yang terdapat pada masukan. Ulangi proses ini sampai masukan tercapai.
5. Ubah seluruh bobot dengan menggunakan kesalahan pada sisi masukan elemen dan
luaran elemen pemroses yang terhubung.
Arsitektur Jaringan Metode Backpropagation
Jaringan saraf terdiri dari 3 lapisan, yaitu lapisan masukan/input terdiri atas variabel
masukan unit sel saraf, lapisan tersembunyi terdiri atas 10 unit sel saraf, dan lapisan
keluaran/output terdiri atas 2 sel saraf. Lapisan masukan digunakan untuk menampung 13
variabel yaitu X1 sampai dengan X13, sedangkan 2 lapisan keluaran digunakan untuk
mempresentasikan pengelompokan pola, nilai 00 untuk Gangguan Stress, nilai 01 untuk
Gangguan Fobia, nilai 10 untuk Gangguan Obsesif kompulsif, dan nilai 11 untuk
Gangguan Panik

Gambar 1.7 Arsitektur Jaringan Backpropagation
Keterangan :
X = Masukan (input).
J = 1 s/d n (n = 10).
V = Bobot pada lapisan tersembunyi.
W = Bobot pada lapisan keluaran.
n = Jumlah unit pengolah pada lapisan tersembunyi.
b = Bias pada lapisan tersembunyi dan lapisan keluaran.
k = Jumlah unit pengolah pada lapisan keluaran.
Y = Keluaran hasil.
Tujuan dari perubahan bobot untuk setiap lapisan, bukan merupakan hal yang sangat
penting. Perhitungan kesalahan merupakan pengukuran bagaimana jaringan dapat belajar
dengan baik. Kesalahan pada keluaran dari jaringan merupakan selisih antara keluaran
aktual (current output) dan keluaran target (desired output).
Langkah berikutnya adalah menghitung nilai SSE (Sum Square Error) yang merupakan
hasil penjumlahan nilai kuadrat error neuron1 dan neuron2 pada lapisan output tiap data,
dimana hasil penjumlahan keseluruhan nilai SSE akan digunakan untuk menghitung nilai
RMSE (Root Mean Square Error) tiap iterasi
Sum Square Error (SSE). SEE dihitung sebagai berikut :
1. Hitung lapisan prediksi atau keluaran model untuk masukan pertama.
2. Hitung selisih antara nilai luar prediksi dan nilai target atau sinyal latihan untuk setiap
keluaran.
3. Kuadratkan setiap keluaran kemudian hitung seluruhnya. Ini merupakan kuadrat
kesalahan untuk contoh lain.
SSE =
1
( ( ))
N
if j i
i
D f X


Root Mean Square Error (RMS Error). Dihitung sebagai berikut :
1. Hitung SSE.
2. Hasilnya dibagi dengan perkalian antara banyaknya data pada latihan dan banyaknya
luaran, kemudian diakarkan.
RMSE =
*
SSE
N K

RMSE = Root Mean Square Error
SSE = Sum Square Error
N = Banyaknya data pada latihan
K = Banyaknya luaran.
























2. Studi Kasus Mengenai Aplikasi Jaringan Syaraf Tiruan Pada Matlab

Pada studi kasus ini akan dibahas penggunaan Jaringan Syaraf Tiruan pada
permasalahan pengenalan pola sidik jari manusia. Sistem pengenalan identitas
dengan sidik jari saat sekarang ini merupakan teknologi pengenalan pola yang
banyak dipakai oleh industri biometrik pada saat ini. Sistem tersebut masih
mempunyai kelemahan, dimana user harus menempelkan jari pada bidang sensor
secara lurus, sehingga seringkali dijumpai user berulang kali mengalami
kegagalan akses. Untuk menangani permasalahan tersebut kita akan mencoba
merancang suatu sistem pengenalan pola yang lebih cerdas, yaitu sistem tersebut
dapat mengenali pola sidik jari meskipun user menempatkan posisi jarinya secara
sembarang pada bidang sensor. Perkembangan algoritma kecerdasan buatan
(artificial inteligent) yang semakin handal akan dicoba untuk studi ini yaitu
dengan menggunakan algoritma feed forward backpropagation.




Tahap ke-1 (Image Acquisition) : adalah proses mendapatkan data image.
Pengambilan data dilakukan dengan metode ink rolled (tinta diteteskan pada
permukaan stam pad kemudian jari yang telah dikenai tinta dicapkan ke kertas
dari ujung bawah kuku sampai pangkal jari). Setelah itu kertas di scan
menggunakan scanner canon. Karena pengambilan image diambil secara
langsung maka sering terjadi trial and error.
Tahap ke-2 (Image Preprocessing) : Pada tahap ini image diberi proses lain
seperti penghilangan noise/derau, penajaman image, pemotongan image, dll.
Program yang dipergunakan untuk memfilter image yaitu Program Adobe
Photoshop dan Microsoft Office Picture Manager. Keluaran dari tahap ini adalah
image tersegmentasi yang akan digunakan untuk proses selanjutnya dalam
penelitian. Image tersegmentasi adalah image yang sudah dipisahkan dari image
awal.
Tahap ke-3 (Feature Extraction) : Di tahap ini, image akan diekstrak untuk
mendapatkan nilai-nilai yang merepresentasikan ciri spesifik dari image tersebut.
Image dari tahap ke-2 akan diperkecil ukuran pixelnya karena jumlah datanya
yang terlalu besar untuk dijadikan input, sehingga image diperkecil menjadi 8x8
pixel. Image ini dipilih karena masih dapat mewakili ciri citra asli, sesuai dengan
rumus level maksimum dekomposisi yang dibatasi oleh persamaan yang
berkorelasi (Kanata, 2008:7). Image ini akan diubah menjadi citra biner yang
disimpan dalam matriks dengan nilai 0 (hitam) dan 1 (putih). Proses perubahan
citra menggunakan MATLAB ver.7.1. dengan menggunakan perintah :

Imdat =imread('sampel1(input).jpg');
imgray=rgb2gray(imdat);
imbw =im2bw(imgray)

Data yang dihasilkan (imbw) disimpan dalam file .dat

Tahap ke-4 (Image Recognition) :
Di tahap ini, vektor ciri image akan diklasifikasikan. Keluaran dari tahap ini
adalah klasifikasi image, yang kemudian dapat secara langsung untuk mengenali
suatu image. Metode yang digunakan adalah propagasi umpan balik berbasis
jaringan syaraf tiruan.
Diagram alir (flowchart) pengenalan pola sidik jari dengan propagasi umpan balik
berbasis jaringan syaraf tiruan dapat dijelaskan pada gambar berikut:

Propagasi Umpan Balik Berbasis Jaringan Syaraf Tiruan Dengan
Menggunakan Toolbox MATLAB ver.7.1

Proses Pelatihan (Training)
1) Sebelum melakukan simulasi (running) pada command window matlab,
terlebih dahulu dibuat instruksi-instruksi (syntax) dalam M-file editor. Dan
untuk menghapus semua data dan syntax pada command window dituliskan
instruksi clear, yang diakhiri dengan tanda titik koma (seperti: clear;).
2) Masukan data input dan target.
Pada penelitian ini, JST didesain dan dilatih untuk mengenali 4 pola sidik jari.
Masing masing pola diwakili oleh nilai Boolean kisi 12x64. Yang terdiri dari
768 vektor input dan 12 vektor target. Masing-masing vektor output mewakili
karakteristik sebuah sampel. Sebagai contoh, sampel 1 diwakili oleh target 1
(untuk alasan kemudahan, karena sampel 1 adalah sampel yang diambil pertama
kali).













3) Data-data yang diperoleh disimpan dalam file .dat lalu dimuat ke M-File.

% Data input & target
P = load ('sampel semua.dat');
T = load ('target.dat');

4) Proses awal sebelum dilakukan pelatihan, data input dan target harus
dinormalisasi. Proses normalisasi dapat dilakukan dengan bantuan mean dan
deviasi standar. Fungsi prestd akan membawa data ke bentuk normal dengan
mean = 0 dan deviasi standar = 1.

% Preprocessing
[pn,meanp,stdp,tn,meant,stdt] = prestd(P,T);

5) Membangun jaringan dengan algoritma propagasi umpan balik berbasis
jaringan syaraf tiruan, instruksi yang digunakan newff.

% Membangun jaringan dengan propagasi umpan balik berbasis
jaringan syaraf
tiruan
net = newff(minmax(pn),[10 5 1],{'tansig' 'logsig'
'purelin'},'traingdm')
6) Melihat bobot awal input, lapisan dan bias.

% Melihat bobot-bobot awal input, lapisan,dan bias
BobotAwal_Input = net.IW{1,1}
BobotAwal_Bias_Input = net.b{1,1}
BobotAwal_Lapisan1 = net.LW{2,1}
BobotAwal_Bias_Lapisan1 = net.b{2,1}
BobotAwal_Lapisan2 = net.LW{3,2}
BobotAwal_Bias_Lapisan2 = net.b{3,1}
7) Seting maksimum epoh, target error, learning rate, momentum dan epoh show.

% Set max epoh, target error, learning rate,momentum dan epoh show
net.trainParam.epochs = 30000;
net.trainParam.goal = 1e-3;
net.trainParam.lr = 0.5;
net.trainParam.mc = 0.7;
net.trainParam.show = 250;

8) Melakukan pembelajaran/pelatihan terhadap data input dan target.

% Melakukan pembelajaran
[net,tr] = train(net,pn,tn); pause

9) Melihat bobot akhir input, lapisan.

% Melihat bobot akhir input, lapisan, dan bias
BobotAkhir_Input = net.IW{1,1}
BobotAkhir_Bias_Input = net.b{1,1}
BobotAkhir_Lapisan1 = net.LW{2,1}
BobotAkhir_Bias_Lapisan1 = net.b{2,1}
BobotAkhir_Lapisan2 = net.LW{3,2}
BobotAkhir_Bias_Lapisan2 = net.b{3,1}

10) Melakukan simulasi dan hasilnya didenormalisasi pada data aslinya.

% Melakukan simulasi
an = sim(net,pn)
a = poststd(an,meant,stdt)
H = [(1:size(P,2))' a']
sprintf('%2d %5.2f\n',H')

11) Melakukan evaluasi terhadap output jaringan, yaitu data hasil pelatihan dengan
target.

%Melakukan evaluasi terhadap output jaringan
[m1,a1,r1]=postreg(a,T)

12) Menampilkan hasil pelatihan dalam bentuk grafik.

%Menampilkan hasil pelatihan dalam bentuk grafik.
plot([1:size(P,2)]',T,'bo',[1:size(P,2)]',a','r*')
title('Pengujian dengan data training: Target(o), output (*)')
xlabel('data ke-');ylabel('Target');pause

Proses Tes (Testing )
1) Masukan data input dan target. Data-data yang diperoleh disimpan dalam file
.dat lalu dimuat ke M-File.

% Data input & target
P = load ('sampel1(input).dat');
T = load ('sampel1(target).dat');

2) Melakukan simulasi jaringan.

% Simulasi jaringan
Qn = trastd(Q,meanp,stdp)
bn = sim(net,Qn)
b = poststd(bn,meant,stdt)

3) Menampilkan hasil perbandingan antara target yang didapat melalui metode
propagasi umpan balik dengan target yang diinginkan dalam bentuk grafik.

%grafik
[b' TQ'];
plot(b,'b-*')
hold
plot(TQ,'r-o')

Proses Pengenalan Pola Sidik Jari
Menampilkan hasil dari proses testing, apakah target dikenali atau tidak.

disp('---------------------------------------------------------');
disp(' Data sidik jari ');
disp('---------------------------------------------------------');
y=b';
x=sum(y)/4;
disp(['target yang didapat algoritma propagasi umpan balik
berbasis jaringan syaraf tiruan = ' num2str(x)]);
a=TQ';
b=sum(a)/4;
disp(['target yang diinginkan = 'num2str(b)]);
c=b-x;
e=c;
disp(['besar error = 'num2str(e)]);
if e>0.01
disp(' Kesimpulan : target tidak dikenali ');
elseif e<=0.01
disp(' Kesimpulan : target dikenali ');
end;

HASIL PENGENALAN POLA SIDIK JARI

Untuk mengenali pola sidik jari menggunakan propagasi umpan balik berbasis
jaringan syaraf tiruan terdapat 4 tahapan yaitu image acquisition, image
preprocessing, image feature extraction dan image recognition.
Setelah dilakukan pengambilan sampel sidik jari pada tahapan image acquisition
dengan metode ink rolled. Kemudian pada tahapan image preproccessing, image
yang didapat kemudian difilter dan dicrop dengan program Adobe Photoshop
(pada ukuran dimensi 508x508 pixel) agar mempermudah dalam mengidentifikasi
karakteristik dari masing-masing sampel. Kemudian pada tahapan image feature
extraction, Hasil image preprocessing akan diperkecil ukuran pixelnya karena
jumlah datanya yang terlalu besar untuk dijadikan input, sehingga image
diperkecil menjadi 8x8 pixel. Image ini dipilih karena masih dapat mewakili ciri
citra asli, sesuai dengan rumus level maksimum dekomposisi yang dibatasi oleh
persamaan yang berkorelasi (Kanata, 2008:7).
Pada tahapan image recognition, diperoleh :
- Hasil Proses Pelatihan (Training )
Karena bobot awal training adalah random maka saat dilakukan training
lagi (tanpa adanya perubahan konstruksi JST) akan didapat bobot training yang
berbeda, sehingga hasil yang didapat pun akan berbeda pula. Dibawah ini hasil
dari beberapa percobaan training:


Dari hasil percobaan di atas maka hasil dari percobaan ke- 10 yang akan
ditampilkan pada grafik di bawah ini :



Grafik diatas menunjukkan bahwa mse didapat pada epoch ke- 108 dari 30000
epoch yang ditentukan di awal, dengan nilai mse senilai 0.000982435 dari 0.001
yang ditentukan.


Grafik diatas menunjukkan perbandingan target yang diinginkan (T) dengan
target hasil pelatihan algoritma propagasi umpan balik (H).


Hasil dari perbandingan target yang diinginkan (T) dengan target hasil pelatihan
propagasi umpan balik berbasis jaringan syaraf tiruan (H).


Untuk menganalisa hasil tabel diatas, dapat dilakukan analisis regresi. Pada
MATLAB menyediakan fungsi postreg untuk melakukan evaluasi ini. Dan hasil
yang didapat adalah :

>> m1 = 0.9964
Penjelasan : m adalah gradient garis hasil regresi linear. Apabila output jaringan
tepat sama dengan targetnya, maka gradient ini akan bernilai 1. Dari hasil m yang
didapat oleh MATLAB maka output jaringan hampir tepat sama dengan
targetnya.

>> a1 = 0.0100
Penjelasan : a adalah titik perpotongan dengan sumbu y. Apabila output jaringan
tepat sama dengan targetnya, maka perpotongan dengan sumbu y ini akan bernilai
0. Dari hasil a yang didapat oleh MATLAB maka output jaringan hampir tepat
sama dengan targetnya.

>> r1 = 0.9995
Penjelasan : r adalah koefisien korelasi antara output jaringan dan target. Apabila
output jaringan tepat sama dengan targetnya, maka koefisien korelasi ini akan
bernilai 1. Dari hasil r yang didapat oleh MATLAB maka output jaringan hampir
tepat sama dengan targetnya.

Dari hasil pelatihan diatas, dapat disimpulkan bahwa pada proses pelatihan
(training) output jaringan hampir tepat sama dengan targetnya.









- Hasil Proses Testing



Hasil uji propagasi umpan balik berbasis jaringan syaraf tiruan

Pada proses testing diatas, JST dilatih dalam 2 kondisi yaitu :

a) JST di uji untuk mengenali pola sidik jari dari berbagai sudut.
b) JST di uji untuk mengenali pola sidik jari dengan mengganti target yang
seharusnya dengan target dari input yang lain. Contoh : data pada sampel 1
hanya akan mengenali output dengan target 1, maka jika input nya sesuai
dengan output maka sistem akan mengenali, tetapi apabila input nya tidak
sesuai dengan output maka sistem tidak akan mengenali pola tersebut.

Dari hasil pengujian didapatkan bahwa dari 28 pengujian , sistem berhasil
mengidentifikasi sidik jari tanpa terdapat suatu kesalahan.

You might also like