Anda di halaman 1dari 200

Konsep Dasar

Pengantar
as Kecerdasan Komputasional

Rezania A. Azdy
Sekilas Kecerdasan Komputasional

Kecerdasan komputasional membahas tentang pendekatan komputasi yang meniru


kemampuan biologis manusia seperti berfikir, belajar dan menalar dalam
lingkungan ketidakpastian. Kecerdasan komputasional yang dibahas terdiri dari tiga
paradigma utama yaitu Neural Network System, Fuzzy Logic dan Genetic Algorithm.
Definisi

• Intelligence?
• Kemampuan untuk memahami
• Kemampuan untuk memahami dan mengambil keuntungan dari pengalaman
• Kemampuan untuk menafsirkan
• Memiliki kapasitas untuk berpikir dan mencari sebab/alasan

• Can computer be intelligence?


• Pada pertengahan tahun 1900an, Alan Turing mengenalkan Turing test.
Definisi

• Artificial Intelligence?
• Sebuah study tentang bagaimana membuat komputer dapat melakukan sesuatu yang dapat
dilakukan dengan lebih baik oleh manusia [IEEE Neural Networks Council of 1996]
Apa itu Computational Intelligence?

• Merupakan salah satu cabang AI


• Definisi 1: study mengenai mekanisme adaptif untuk memungkinkan atau
memfasilitasi perilaku cerdas dalam lingkungan yanga kompleks dan selalu
berubah.
• Definisi 2: Sebuah sistem dikatakan cerdas secara komputasional jika sistem tsb
hanya mengolah data numerik dan memiliki komponen pengenalan pola, serta
tidak memerlukan pengetahuan seperti pada AI.
Apa itu Computational Intelligence?

• Menggunakan mekanisme cara kerja otak --> strategi bottom-up


• Yang termasuk dalam CI: jaringan saraf tiruan, komputasi evolusioner, dan sistem
fuzzy.
Jaringan Saraf Tiruan

• Diilhami oleh struktur jaringan saraf biologi.

• Jaringan otak manusia disusun tidak kurang dari 1013 neuron yang masing2
terhubung oleh sekitar 1015 dendrite.
• Dendrite adalah penyampain sinyal dari neuron tsb ke neuron lain yang
terhubung dengannya (keluaran --> axon, penerima --> synapse)
Jaringan Saraf Tiruan

• Kumpulan dari neuron dibuat sebagai jaringan yang berfungsi sebagai alat
komputasi.
• Jumlah neuron dan struktur jaringan pada setiap kasus berbeda.
Algoritma Genetika

• Merupakan metode adaptif yang biasa digunakan untuk memecahkan suatu


pencarian nilai dalam kasus optimasi.
• Algoritma didasari pada proses genetik pada makhluk hidup
→ teori evolusi → seleksi alam
• Penerapan algoritma genetika memerlukan:
1. Operasi evolusi yang melibatkan proses seleksi
2. Operasi genetika yang melibatkan operator pindah silang dan mutasi
Sistem Fuzzy

• Sebuah pendekatan yang berdasar pada "degree of truth"


• Pada fuzzy, 0 dan 1 merupakan nilai ekstrim kebenaran.
Logika Fuzzy

Konsep
as dasar Fuzzy, Himpunan Klasik, Himpunan Fuzzy,
Komponen Fuzzy

Rezania A. Azdy
Pengantar

• Logika fuzzy dikembangkan pertama kali melalui tulisannya oleh ilmuwan


Amerika Serikat yang bernama Lotfi A. Zadeh pada tahun 1965 tentang teori
himpunan fuzzy.
• Logika fuzzy banyak diterapkan pada produk elektronik buatan Jepang seperti
mesin cuci, AC, dll.
• Logika fuzzy umumnya diterapkan pada permasalahan yang mengandung
ketidakpastian (uncertainty) maupun ketidaktepatan (imprecise).
• Logika fuzzy menjembatani bahasa mesin yang presisi (precision) dengan bahasa
manusia yang menekankan pada makna/arti (significance).
• Logika fuzzy dikembangkan berdasar pada bahasa manusia (bahasa alami).
Pengantar

Professor Zadeh beralasan bahwa


manusia tidak memerlukan masukan
informasi numerik yang tepat, namun
mereka mampu memiliki kontrol
adaptif yang tinggi. Jika umpan balik
controller dapat diprogram untuk
menerima masukan bising maupun
tidak tepat, maka mereka (controller)
akan lebih efektif dan lebih mudah
untuk diterapkan.
Pengantar

• Bagaimana permasalahan yang mengandung ketidakpastian?

• Contoh 1:
Seseorang dikatakan TINGGI jika tinggi badannya lebih dari 1,7 meter.
Bagaimana dengan orang yang memiliki tinggi 1,69999 meter?

• Contoh 2:
Kecepatan berkendara dikatakan PELAN ketika kecepatannya dibawah 20 km/jam.
Bagaimana dengan kendaraan yang dipacu dengan kecepatan 20,0001km/jam?
Pengantar

• Bagaimana permasalahan yang mengandung ketidakpastian?

• Contoh 1:
Seseorang dikatakan TINGGI jika tinggi badannya lebih dari 1,7 meter.
Bagaimana dengan orang yang memiliki tinggi 1,69999 meter?
Persepsi manusia: agak tinggi, kurang tinggi sedikit
• Contoh 2:
Kecepatan berkendara dikatakan PELAN ketika kecepatannya dibawah 20 km/jam.
Bagaimana dengan kendaraan yang dipacu dengan kecepatan 20,0001 km/jam?

Persepsi manusia: sedikit pelan, agak pelan


Pengantar
Konsep Dasar

• Logika fuzzy digunakan untuk menggambarkan ketidakjelasan (kabur/samar).


• Logika fuzzy menerapkan teori himpunan fuzzy yang mengkalibrasi ketidakjelasan.
• Logika fuzzy didasarkan pada gagasan bahwa segala sesuatunya memiliki nilai
derajat.
• Logika fuzzy merupakan peningkatan dari logika Boolean yang mengenalkan
konsep kebenaran sebagian.
Alasan Menggunakan Fuzzy

• Mudah dimengerti dengan konsep matematika yang sederhana.


• Sangat fleksibel.
• Memiliki toleransi terhadap data yang tidak tepat.
• Mampu memodelkan fungsi nonlinear yang sangat kompleks.
• Dapat menerapkan pengalaman pakar secara langsung tanpa proses pelatihan.
• Dapat dikombinasikan dengan teknik kendali secara konvensional.
• Didasarkan pada bahasa alami.
Himpunan

• Himpunan fuzzy merupakan perluasan dari himpunan crisp (himpunan klasik).


Himpunan Klasik (Crisp Set)

• Himpunan klasik adalah himpunan yang selama ini dipelajari, dimana pada
himpunan klasik keanggotaan suatu unsur didalam himpunan dinyatakan secara
tegas.
• Untuk sembarang himpunan A, unsur x adalah anggota himpunan A apabila x
terdapat atau terdefinisi didalam A.
• Contoh:
A = {1,2,3,4,5}, maka 5 ∈ A, tetapi 7 ∉ A.
Himpunan Klasik (Crisp Set)

• Fungsi karakteristik (χ), mendefinisikan apakan suatu unsur dari semesta


pembicaraan merupakan anggota suatu himpunan atau bukan.

• Contoh 1:
Misalkan S = {1, 2, 3, 4, 5, 6} dan A ⊆ S dimana A = {1, 2, 5}. Maka:
A = {(1,1), (2,1), (3,0), (4,0), (5,1), (6,0)}

Ket:
(2,1) berarti χA(2) = 1 2 merupakan unsur dari S yang merupakan anggota A
(4,0) berarti χA(4) = 0 4 merupakan unsur dari S yang bukan anggota A
Himpunan Klasik (Crisp Set)

• Contoh 2:
Misalkan S = {x|0≤x≤10, x∈R }, A ⊆ S, dan A = {x|5≤x≤8, x∈R}. Maka:
χA(6) = 0;
χA(4,8) = 0;
χA(7) = 1;
χA(8,654) = 1

Grafik Fungsi Karakteristik A = {x|5≤x≤8, x∈R}


Himpunan Fuzzy

• Didalam himpunan fuzzy, keanggotaan suatu unsur didalam himpunan dinyatakan


dengan derajat keanggotaan (membership values) yang nilainya berada didalam
rentang [0, 1].
• Derajat keanggotaan ditentukan dengan fungsi keanggotaan:

• Arti:
1. jika μA(x) = 1, maka x adalah anggota penuh dari himpunan A
2. jika μA(x) = 0, maka x bukan anggota himpunan A
3. jika μA(x) = p , dengan 0 < μ < 1, maka x adalah anggota himpunan A dengan
derajat keanggotaan sebesar p
Himpunan Fuzzy

• Perbedaan himpunan fuzzy dengan himpunan klasik:

S S
b A b A

a aa

Crisp set: Fuzzy set:


- batas himpunan tegas - batas himpunan kabur
-b∉ A - b ∈ A dengan μA(b) = μ
Himpunan Fuzzy

• Perbedaan himpunan fuzzy dengan himpunan klasik:

Gambar Himpunan Klasik Penentuan Umur Gambar Himpunan Fuzzy Penentuan Umur

μMUDA(34) = 1, mk orang tsb MUDA μMUDA(40) = 0.25 dan μPAROBAYA(40) = 0.5


μMUDA(40) = 0, mk orang tsb TIDAK MUDA μTUA(50) = 0.25 dan μPAROBAYA(50) = 0.5
μTUA(40) = 0, mk orang tsb TIDAK TUA
Himpunan Fuzzy

• Himpunan fuzzy memiliki dua atribut:


1. Linguistik: penamaan grup yang mewakili kondisinya dengan menggunakan
bahasa alami.
2. Numerik: nilai yang menunjukkan ukuran variabel fuzzy.
Komponen Sistem Fuzzy

• Variabel fuzzy: variabel yang akan dibahas dalam sistem fuzzy.


Contoh: umur, kecepatan, dsb.
• Himpunan fuzzy: suatu grup yang mewakili suatu kondisi/keadaan tertentu dalam suatu variabel fuzzy.
Contoh: panas, muda, tinggi, dsb.
• Semesta pembicaraan: keseluruhan nilai yang boleh dioperasikan dalam suatu variabel fuzzy.
Contoh: semesta pembicaraan var. umur: [0, ∞]
semesta pembicaraan var. temperatur: [0, 40]
• Domain: keseluruhan nilai yang diizinkan dalam semesta pembicaraan dan boleh dioperasikan dalam
suatu himpunan fuzzy.
Contoh: MUDA = [0 45]
DINGIN = [0 20]
Logika Fuzzy

Fungsi
as Keang gotaan Himpunan Fuzzy, Operasi
Himpunan Fuzzy

Rezania A. Azdy
Fungsi Keanggotaan

• Fungsi keanggotaan (membership function) merupakan suatu kurva yang


menunjukkan pemetaan titik-titik input data kedalam nilai keanggotaannya
(derajat keanggotaan) yang memiliki interval 0 sampai 1.
• Salah satu cara yang dapat digunakan untuk mendapatkan nilai keanggotaan
adalah dengan melalui pendekatan fungsi.
• Fungsi yang dapat digunakan:
1. Representasi Linier
2. Representasi Kurva Segitiga
3. Representasi Kurva Trapesium
4. Representasi Kurva Bentuk Bahu
5. Representasi Kurva-S
6. Representasi Kurva Bentuk Lonceng (Bell Curve)
Fungsi Keanggotaan - Linier

• Pemetaan input ke derajat keanggotaannya digambarkan sebagai suatu garis


lurus.
• Jenis fungsi linier:
1. Linier naik: kenaikan himpunan dimulai pada nilai domain yang memiliki derajat
keanggotaan nol bergerak ke kanan menuju ke nilai domain yang memiliki derajat
keanggotaan yang lebih tinggi.
2. Linier turun: garis lurus dimulai dari nilai domain dengan derajat keanggotaan tertinggi
(pada sisi kiri), bergerak ke kanan menuju ke nilai domain yang memiliki derajat keanggotaan
yang lebih rendah.
Fungsi keanggotaan: Fungsi keanggotaan:

Linier Naik Linier Turun


Fungsi Keanggotaan - Linier

• Contoh:
Jawab:
Diketahui fungsi keanggotaan PANAS pada variabel
temperatur ruangan seperti gambar berikut: Fungsi linier naik:

μPANAS(32) = (32-25)/(35-25)
= 7/10
= 0.7

Hitunglah derajat keanggotaan untuk suhu 32o!


Fungsi Keanggotaan - Segitiga

• Kurva segitiga pada dasarnya merupakan gabungan antara 2 garis linier.


Fungsi Keanggotaan - Trapesium

• Contoh:
Jawab:
Diketahui fungsi keanggotaan untuk suhu yang
termasuk dalam himpunan NORMAL seperti Fungsi segitiga:
terlihat pada gambar berikut:

μNORMAL(23) = (23-15)/(25-15)
= 8/10
= 0.8

Hitunglah derajat keanggotaan untuk suhu 23o!


Fungsi Keanggotaan - Trapesium

• Pada dasarnya hampir mirip dengan kurva segitiga, hanya saja terdapat beberapa
titik yang memiliki nilai keanggotaan 1.
Fungsi Keanggotaan - Trapesium

• Contoh:
Jawab:
Diketahui fungsi keanggotaan untuk suhu yang
termasuk dalam himpunan NORMAL seperti Fungsi segitiga:
terlihat pada gambar berikut:

μNORMAL(32) = (35-32)/(35-27)
= 3/8
= 0.375

Hitunglah derajat keanggotaan untuk suhu 32o!


Fungsi Keanggotaan - Bentuk Bahu

• Fungsi keanggotaan berada didaerah terletak di ditengah variabel yang


direpresentasikan dalam bentuk segitiga pada sisi kanan dan kirinya akan naik-
turun, tetapi terkadang salah satu sisi dari variabel tsb tidak mengalami
perubahan.
Fungsi Keanggotaan - Bentuk Bahu

• Kasus:
Sebuah mesin menerapkan logika fuzzy untuk mendeteksi temperatur dengan 3
himpunan sbb.:
DINGIN = {0..28}
NORMAL = {25..35}
PANAS = {33...}

(Grafik) Fungsi keanggotaan:


Fungsi Keanggotaan - S (Sigmoid)

• Mencerminkan kenaikan dan penurunan secara tidak linier.


• Terdapat 2 jenis:
1. Kurva-S Pertumbuhan.
2. Kurva-S Penyusutan.
Fungsi Keanggotaan - S (Sigmoid)

1. Kurva-S Pertumbuhan.
• Bergerak dari sisi paling kiri dengan derajat keanggotaan nol hingga ke sisi kanan dengan
derajat keanggotaan yang lebih tinggi. Fungsi keanggotaannya akan bertumpu pada 50%
nilai keanggotaannya yang disebut dengan titik infleksi.
Fungsi Keanggotaan - S (Sigmoid)

2. Kurva-S Penyusutan.
• Merupakan kebalikan dari Kurva-S Pertumbuhan.
Fungsi Keanggotaan - Bentuk Lonceng

• Mencerminkan kenaikan dan penurunan secara tidak linier.


• Berdasarkan gradiennya, kurva bentuk lonceng ini terbagi menjadi tiga jenis,
yaitu:
1. Kurva Pi,
2. Kurva Beta,
3. Kurva Gauss.
Fungsi Keanggotaan - Bentuk Lonceng

1. Kurva Pi (π) : Kurva π berbentuk lonceng dengan derajat keanggotaan 1 terletak


pada pusat dengan domain γ dan lebar kurva β.
Fungsi Keanggotaan - Bentuk Lonceng

2. Kurva Beta (β) : Sama seperti kurva π, namun lebih rapat.


Fungsi Keanggotaan - Bentuk Lonceng

3. Kurva Gauss : kurva Gauss menggunakan γ untuk menunjukkan nilai domain


pada pusat kurva, dan k untuk menunjukkan nilai lebar kurva.
Operasi Himpunan Fuzzy

• Operasi didefinisikan secara khusus untuk mengkombinasi atau memodifikasi


himpunan fuzzy.
• Fire strength (α-predikat) adalah nilai keanggotaan sebagai hasil operasi 2
himpunan fuzzy.
• Operator dasar himpunan fuzzy:
1. AND
2. OR
3. NOT
Operasi Himpunan Fuzzy - AND

• Operasi ini berhubungan dengan operasi intersection pada himpunan klasik.


• α-predikat diperoleh dengan mengambil nilai keanggotaan terkecil antar elemen
pada himpunan yang bersangkutan.

• Contoh:
A = {1.0, 0.2, 0.75}
B = {0.2, 0.45, 0.50}
A ∩ B = {min(1.0, 0.2), min(0.2, 0.45), min(0.75, 0.50)}
= {0.2, 0.2, 0.5}
Operasi Himpunan Fuzzy - OR

• Operasi ini berhubungan dengan operasi union pada himpunan klasik.


• α-predikat diperoleh dengan mengambil nilai keanggotaan terbesar antar elemen
pada himpunan yang bersangkutan.

• Contoh:
A = {1.0, 0.2, 0.75}
B = {0.2, 0.45, 0.50}
A ∪ B = {max(1.0, 0.2), max(0.2, 0.45), max(0.75, 0.50)}
= {1.0, 0.45, 0.75}
Operasi Himpunan Fuzzy - NOT

• Operasi ini berhubungan dengan operasi komplemen pada himpunan klasik.


• α-predikat diperoleh dengan mengurangkan nilai keanggotaan elemen pada
himpunan yang bersangkutan dari 1.

• Contoh:
A = {1.0, 0.2, 0.75}
Ac = {1 - 1.0, 1 - 0.2, 1 - 0.75}
= {0, 0.8, 0.25}
Contoh Kasus

1. Diketahui nilai keanggotaan umur 27 pada himpunan usia MUDA adalah 0.6,
dan nilai keanggotaan 2 juta pada himpunan penghasilan TINGGI adalah 0.8.
Maka α-predikat untuk usia himpunan usia MUDA dan penghasilan TINGGI
adalah:
μMUDA(27) = 0.6
μTINGGI(2juta) = 0.8
μMUDA ∩ μTINGGI = min(μMUDA(27), μTINGGI(2juta))
= min(0.6, 0.8)
= 0.6

2. Misal nilai keanggotaan umur 27 pada himpunan usia MUDA adalah 0.6,
maka α-predikat untuk usia tersebut pada himpunan tidak muda adalah:
μMUDAc (27) = 1 - μMUDA(27)
= 1 - 0.6
= 0.4
Contoh Kasus

3. Sebuah pabrik kue kering memproduksi kue setiap harinya dengan permintaan
dari distributor yang tidak menentu. Permintaan tertinggi mencapai angka 500
toples/hari dan permintaan terkecil adalah 100 toples/hari. Persediaan kue
kering di gudang juga bervariasi, yaitu persediaan terkecil adalah 10 toples/hari
dan persediaan terbanyak adalah 60 toples/hari.
a. Gambarkan fungsi keanggotaan yang sesuai untuk permintaan dan persediaan kue kering.
b. Bagaimana nilai keanggotaan untuk permintaan 400 toples kue kering?
Jawab:
Variabel Himpunan Domain
Permintaan Naik [500 ∞]
Turun [0 100]
Persediaan Banyak [60 ∞]
Sedikit [0 10]
Contoh Kasus

a. Fungsi keanggotaan

Permintaan
Contoh Kasus

Persediaan
Contoh Kasus

b. Permintaan

Permintaan 400 toples kue kering?


μNAIK(400)= (400-100)/400 = 300/400 = 0.75
μTURUN(400) = (500-400)/400 = 100/400 = 0.25
Contoh Kasus

4. Sebuah perusahaan akan membuat aplikasi untuk mengukur kompetensi karyawannya


berdasarkan lama bekerja dan penilaian dari atasan. Kategori penilaian untuk kriteria
tersebut diperlihatkan pada Tabel 1 dan Tabel 2.
Tabel 1 Tabel 2
Lama Bekerja Kategori Nilai Kategori
2 - 10 Cukup 0 - 50 Cukup
15 - ... Lama 60 - 80 Baik
85 - 100 Baik Sekali

a. Gambarkan fungsi keanggotaan yang sesuai untuk permasalahan diatas!


b. Tentukan nilai keanggotaan untuk kategori LAMA bagi karyawan yang telah bekerja
selama 8 tahun dan nilai BAIK untuk karyawan yang memeroleh nilai 82 dari
atasannya!
Contoh Kasus

Jawab:
a. Lama Bekerja Nilai Atasan
Contoh Kasus

b. μLAMA(8) = 0
μBAIK(82) = (85-82)/(85-80) = 3/5 = 0.6

μLAMA(8) ∩ μBAIK(82) = min(μLAMA(8), μBAIK(82))


= min(0, 0.6)
=0
Logika Fuzzy

Proses
as Sistem Fuzzy, Metode Tsukamoto

Rezania A. Azdy
Proses Sistem Fuzzy

• Komponen proses yang


terdapat dalam sistem
fuzzy adalah:
1. Fuzzification
2. Inference
3. Defuzzification
Proses Sistem Fuzzy - Fuzzification

• Proses dimana masukan (input) yang nilai kebenarannya bersifat pasti (crisp)
dikonversi ke bentuk fuzzy input yang berupa nilai linguistik yang semantiknya
ditentukan berdasarkan fungsi keanggotaan.
• Contoh:
1. Suhu 20o dikonversi menjadi HANGAT dengan derajat keanggotaan 0.7.
2. Kecepatan 50 km/jam dikonversi menjadi CEPAT dengan derajat keanggotaan 0.1.
Proses Sistem Fuzzy - Inference

• Proses penalaran dengan memperhitungkan semua aturan yang ada dalam basis
pengetahuan.
• Secara sintaks, aturan fuzzy dituliskan:
IF antecendent THEN consequent
• Aturan fuzzy yang umum digunakan:
1. model Tsukamoto
2. model Mamdani
3. model Sugeno
Proses Sistem Fuzzy - Inference

• Contoh aturan fuzzy:


IF x adalah rendah AND y adalah tinggi THEN z = medium

dengan:
• x dan y : variabel input yang didapat dari user
• z : variabel output
• rendah : fungsi keanggotaan untuk x
• tinggi : fungsi keanggotaan untuk y
• medium : fungsi keanggotaan untuk z

• Contoh:
IF permintaan turun AND persediaan banyak THEN produksi barang = berkurang
Proses Sistem Fuzzy - Defuzzification

• Proses mengubah fuzzy output menjadi nilai pasti (crisp) berdasarkan fungsi
keanggotaan yang telah ditentukan.
• Metode defuzzification yang umum digunakan:
1. Centroid method
2. Height method
3. First (or Last) Maxima
4. Mean-Max method
5. Weighted Average
Proses Sistem Fuzzy - Defuzzification

1. Centroid method
Metode ini menghitung nilai crisp menggunakan rumus:

dengan:
y = nilai crisp
μR(y) = derajat keanggotaan dari y
Proses Sistem Fuzzy - Defuzzification

2. Height method
• Hanya bisa dipakai untuk fungsi keanggotaan yang derajat keanggotaannya 1 pada
suatu nilai crisp tunggal dan 0 pada semua nilai crisp yang lain (singleton).
Proses Sistem Fuzzy - Defuzzification

3. First (or Last) Maxima


• Merupakan generalisasi dari height method untuk kasus dimana fungsi
keanggotaan output memiliki lebih dari satu nilai maksimum. Sehingga nilai crisp
yang digunakan adalah salah satu dari nilai yang dihasilkan dari maksimum
pertama atau maksimum terakhir.
Proses Sistem Fuzzy - Defuzzification

4. Mean-Max method
Perhitungan nilai crisp metode ini menggunakan rumus:

dengan:
m = nilai crisp yang paling kecil
M = nilai crisp yang paling besar
Proses Sistem Fuzzy - Defuzzification

5. Weighted Average
Perhitungan nilai crisp metode ini menggunakan rumus:

dengan:
y = nilai crisp
μ(y) = derajat keanggotaan dari y
Metode Tsukamoto

• Pada metode ini, setiap konsekuen


pada aturan fuzzy yang berbentuk IF
THEN harus direpresentasikan dengan
suatu himpunan fuzzy dengan
keanggotaan yang monoton. Sehingga
hasilnya, output hasil inferensi dari
setiap aturan diberikan secara tegas
(crisp) berdasarkan α-predikat. Hasil
akhirnya diperoleh dengan
menggunakan rata-rata terbobot.
Studi Kasus 1

Sebuah pabrik kue kering memproduksi kue setiap harinya dengan permintaan dari
distributor yang tidak menentu. Permintaan tertinggi mencapai angka 500
toples/hari dan permintaan terkecil adalah 100 toples/hari. Persediaan kue kering
di gudang juga bervariasi, yaitu antara 10 - 60 toples/hari.
Dengan segala keterbatasannya, hingga saat ini pabrik baru dapat memproduksi
kue kering hingga 700 toples/hari, dan demi efisiensi mesin dan SDM maka tiap
hari diharapkan pabrik dapat memproduksi paling tidak 200 toples/hari.

Berapa topless kue kering yang harus diproduksi jika jumlah permintaan sebanyak
400 toples dan persediaan yang ada di gudang masih 30 toples?
Studi Kasus 1 - Solusi

Aturan yang dapat diterapkan pada proses produksi pabrik tersebut adalah:
[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;
Studi Kasus 1 - Solusi

Permintaan Persediaan

μTURUN (400) = (500-400)/400 = 1/4 = 0.25 μSEDIKIT(30) = (60-30)/50= 30/50 = 0.6


μNAIK (400) = (400-100)/400 = 3/4 = 0.75 μBANYAK(30) = (30-10)/50= 20/50 = 0.4
Studi Kasus 1 - Solusi

Produksi

Next:
• Mencari nilai z untuk setiap aturan dengan menggunakan fungsi MIN pada aplikasi fungsi
implikasinya!
Studi Kasus 1 - Solusi

[R1] IF permintaan TURUN and persediaan BANYAK [R2] IF permintaan TURUN and persediaan SEDIKIT

THEN produksi barang BERKURANG; THEN produksi barang BERKURANG;

α-predikat1 = μTURUN(400)∩μBANYAK(30) α-predikat2 = μTURUN(400)∩μSEDIKIT(30)


= min(μTURUN(400)∩μBANYAK(30)) = min(μTURUN(400)∩μSEDIKIT(30))
= min(0.25, 0.4) = min(0.25, 0.6)
= 0.25 = 0.25

Lihat himpunan produksi barang BERKURANG: Lihat himpunan produksi barang BERKURANG:
μBERKURANG(z) = (700-z)/500 μBERKURANG(z) = (700-z)/500
0.25 = (700-z)/500 0.25 = (700-z)/500
⇔ z1 = 575 ⇔ z2 = 575
Studi Kasus 1 - Solusi

[R3] IF permintaan NAIK and persediaan BANYAK [R4] IF permintaan NAIK and persediaan SEDIKIT

THEN produksi barang BERTAMBAH; THEN produksi barang BERTAMBAH;

α-predikat3 = μNAIK(400)∩μBANYAK(30) α-predikat4 = μNAIK(400)∩μSEDIKIT(30)


= min(μNAIK(400)∩μBANYAK(30)) = min(μNAIK(400)∩μSEDIKIT(30))
= min(0.75, 0.4) = min(0.75, 0.6)
= 0.4 = 0.6

Lihat himpunan produksi barang BERTAMBAH: Lihat himpunan produksi barang BERTAMBAH:
μBERTAMBAH(z) = (z-200)/500 μBERTAMBAH(z) = (z-200)/500
0.4 = (z-200)/500 0.6 = (z-200)/500
⇔ z3 = 400 ⇔ z4 = 500
Studi Kasus 1 - Solusi

• Jadi nilai z:

• Sehingga banyaknya kue kering yang harus diproduksi adalah 498 toples.
Studi Kasus 2

• Untuk permasalahan pada Studi Kasus 1, berapa banyak kue kering


yang harus diproduksi jika jumlah permintaan = 500 toples dan
banyaknya persediaan di gudang adalah 75 toples?
Studi Kasus 2 - Solusi

[R1] IF permintaan TURUN and persediaan BANYAK [R2] IF permintaan TURUN and persediaan SEDIKIT

THEN produksi barang BERKURANG; THEN produksi barang BERKURANG;

α-predikat1 = μTURUN∩μBANYAK α-predikat2 = μTURUN∩μSEDIKIT


= min(μTURUN(500)∩μBANYAK(75)) = min(μTURUN(500)∩μSEDIKIT(75))
= min(0, 1) = min(0, 0)
=0 =0

Lihat himpunan produksi barang BERKURANG: Lihat himpunan produksi barang BERKURANG:
μBERKURANG(z) = (700-z)/500 μBERKURANG(z) = (700-z)/500
0 = (700-z)/500 0 = (700-z)/500
⇔ z1 = 700 ⇔ z2 = 700
Studi Kasus 2 - Solusi

[R3] IF permintaan NAIK and persediaan BANYAK [R4] IF permintaan NAIK and persediaan SEDIKIT

THEN produksi barang BERTAMBAH; THEN produksi barang BERTAMBAH;

α-predikat3 = μNAIK∩μBANYAK α-predikat4 = μNAIK∩μSEDIKIT


= min(μNAIK(500)∩μBANYAK(75)) = min(μNAIK(500)∩μSEDIKIT(75))
= min(1, 1) = min(1, 0)
=1 =0

Lihat himpunan produksi barang BERTAMBAH: Lihat himpunan produksi barang BERTAMBAH:
μBERTAMBAH(z) = (z-200)/500 μBERTAMBAH(z) = (z-200)/500
1 = (z-200)/500 0 = (z-200)/500
⇔ z3 = 700 ⇔ z4 = 200
Nilai z = ?
Logika Fuzzy

Metode
as Mamdani

Rezania A. Azdy
Metode Mamdani

• Sering dikenal dengan metode Max-Min.


• Tahapan metode Mamdani:
1. Pembentukkan himpunan fuzzy, variabel input dan variabel output dibagimenjadi
satu atau lebih himpunan fuzzy.
2. Aplikasi fungsi implikasi (aturan), dengan fungsi implikasi yang digunakan adalah
fungsi min.
3. Komposisi aturan, yaitu inferensi yang diperoleh dari kumpulan dan korelasi antar
aturan.
a. Metode Max (Maximum)
b. Metode Additive
c. Metode Probabilistik R
4. Penegasan (defuzzy), dengan input berupa himpunan fuzzy yang diperoleh dari
komposisi aturan fuzzy, dan menghasilkan output berupa suatu bilangan pada
himpunan fuzzy tersebut.
Metode Max (Maximum) (2)

Proses defuzzifikasi:
Metode Max (Maximum) (1)

• Solusi himpunan fuzzy diperoleh dari nilai maksimum aturan.


• Hasilnya digunakan untuk memodifikasi daerah fuzzy, dan mengaplikasikannya ke output
dengan menggunakan operator OR.
• Jika semua proposisi telah dievaluasi, maka output akan berisi suatu himpunan fuzzy
yang merefleksikan kontribusi dari tiap-tiap proposisi.
• Contoh:
IF biaya produksi is RENDAH and
permintaan is NAIK THEN
produksi barang is BERTAMBAH
Studi Kasus 1 - Menggunakan Metode Mamdani

• Dari R1, α-predikat1 = 0.25


• Dari R2, α-predikat2 = 0.25
• Dari R3, α-predikat3 = 0.4
• Dari R4, α-predikat4 = 0.6
x
Studi Kasus 1 - Menggunakan Metode Mamdani

700 700

Komposisi antar aturan (mencari nilai a1 dan a2):


(a1-200)/500 = 0,25 --> a1 = 325
(a2-200)/500 = 0,60 --> a2 = 500

Jadi fungsi keanggotaan untuk hasil komposisi:


Studi Kasus 1 - Menggunakan Metode Mamdani

Proses defuzzy
Menghitung momen dan Luas daerah:

z
325 500 700
325

Menghitung luas daerah (A1 - A3):


Studi Kasus 1 - Menggunakan Metode Mamdani

Menghitung z menggunakan metode centroid:

Jadi jumlah kue kering yang harus diproduksi adalah 424.8 toples.
Logika Fuzzy

Implementasi
as Logika Fuzzy pada Java

Rezania A. Azdy
Implementasi

• Pada pembahasan ini, implementasi sistem fuzzy yang telah dipelajari akan
diterapkan ke dalam bahasa pemrograman, yaitu bahasa Java.
• Sistem fuzzy yang akan diterapkan menggunakan metode Tsukamoto dengan
studi kasus yang telah dipelajari pada Pertemuan 4.
Implementasi - Persiapan

• Buatlah 5 kelas dengan nama dan peruntukan sebagai berikut:


1. Permintaan.java : untuk pengkodean variabel Permintaan
2. Persediaan.java : untuk pengkodean variabel Persediaan
3. Produksi.java : untuk pengkodean variabel Produksi
4. Rules.java : untuk pengkodean aturan yang digunakan
5. mainFrame.java : untuk program utama
Implementasi - Permintaan.java

• Pada kelas Permintaan.java, tambahkan


variabel dan metode yang digunakan
untuk mengirimkan dan mengambil nilai
permintaan.

• Nilai titik1, titik2, dan titik3 sesuai


dengan batasan yang ditentukan pada
Studi Kasus.
Implementasi - Permintaan.java

• Kemudian tambahkan 2 metode


yang dapat memberikan
kembalian berupa hasil fuzifikasi
permintaan dalam himpunan
Permintaan Naik maupun
Permintaan Turun.
Implementasi - Persediaan.java

• Pada kelas Persediaan.java, tambahkan


variabel dan metode yang digunakan
untuk mengirimkan dan mengambil nilai
persediaan.

• Nilai titik1, titik2, dan titik3 sesuai


dengan batasan yang ditentukan pada
Studi Kasus.
Implementasi - Persediaan.java

• Kemudian tambahkan 2 metode


yang dapat memberikan
kembalian berupa hasil fuzifikasi
persediaan dalam himpunan
Persediaan Banyak maupun
Persediaan Sedikit.
Implementasi - Produksi.java

• Pada kelas Produksi.java, tambahkan


variabel dan metode yang digunakan
untuk mengirimkan dan mengambil nilai
produksi.

• Nilai titik1, titik2, dan titik3 sesuai


dengan batasan yang ditentukan pada
Studi Kasus.
Implementasi - Produksi.java

• Kemudian tambahkan 2 metode


yang dapat memberikan
kembalian berupa hasil fuzifikasi
produksi dalam himpunan
Produksi Berkurang maupun
Produksi Bertambah.
Implementasi - Produksi.java

• Kemudian tambahkan 2 metode


lagi yang dapat memberikan
kembalian berupa hasil proses
defuzifikasi produksi dalam
himpunan Produksi Berkurang
maupun Produksi Bertambah.
Logika Fuzzy

Implementasi
as Logika Fuzzy pada Java (Lanjutan)

Rezania A. Azdy
Implementasi - Rules.java

• Pada kelas Rules.java, tambahkan


variabel dan buat objek dari kelas-kelas
yang telah dibuat sebelumnya.
Implementasi - Rules.java

• Kemudian buat metode


yang dapat menghitung
nilai alpha predikat
berdasarkan rules yang ada,
dan metode yang
digunakan untuk
memperoleh nilai z dari
alpha predikat tersebut.
Implementasi - Rules.java

• Kemudian tambahkan metode


yang memberikan nilai kembalian
berupa hasil proses defuzifikasi
dari nilai z yang diperoleh
sebelumnya.
Implementasi - mainFrame.java

• Pada kelas mainFrame.java, deklarasikan


komponen-komponen yang akan
digunakan/dibuat ke dalam Frame
program.
Implementasi - mainFrame.java

• Kemudian buat sebuah konstruktor untuk menampilkan jendela program sesuai dengan
pengaturan yang telah dibuat.
Implementasi - mainFrame.java

• Tambahkan metode untuk


penangan aksi tombol “Hitung”,
dan metode untuk menjalankan
program utama.
Algoritma Genetika

Konsep
as Dasar Algoritma Genetika

Rezania A. Azdy
Pengantar

• Algoritma genetika adalah algoritma pencarian heuristik yang didasarkan atas


mekanisme evolusi biologis.
• Keberagaman pada evolusi biologis adalah variasi dari kromosom antar individu yang
akan mempengaruhi laju reproduksi dan tingkat kemampuan organisme untuk tetap
hidup.
• Kondisi yang mempengaruhi proses evolusi:
1. Kemampuan organisme untuk melakukan reproduksi.
2. Keberadaan populasi organisme yang bisa melakukan reproduksi.
3. Keberagaman organisme dalam suatu populasi.
4. Perbedaan kemampuan untuk bertahan hidup.
• Individu yang lebih kuat (fit) akan memiliki tingkat bertahan hidup dan tingkat
reproduksi yang lebih tinggi dibandingkan dengan individu yang kurang fit. Pada kurun
waktu tertentu, populasi secara keseluruhan akan lebih banyak memuat individu yang
fit.
Genetika Alamiah

• Dalam ilmu biologi, sekumpulan individu yang sama hidup, bereproduksi, dan
mati dalam suatu area yang disebut populasi. Jika anggota-anggota populasi
(individu) terpisah (misalkan karena bencana alam), maka individu-individu
tersebut membentuk beberapa populasi yang terpisah.
• Dalam waktu cukup lama, mungkin saja akan terjadi proses pembentukan spesies
baru (speciation). Dalam hal ini terjadi perubahan hereditas secara bertahap dan
membentuk ciri-ciri baru pada spesies tersebut.
• Hereditas adalah sebuah konsep yang menyatakan bahwa sifat-sifat individu
dapat dikodekan dengan cara tertentu sehingga sifat tersebut dapat diturunkan
kepada generasi berikutnya. Bagaimana informasi yang dapat diturunkan ini
disimpan dalam suatu individu?
Genetika Alamiah

• Setiap individu dari suatu spesies membawa sebuah genome yang berisi beberapa kromosom
dalam bentuk molekul DNA. Setiap kromosom berisi sejumlah gen, dimana unit hereditas dan
pengkodean informasi diperlukan untuk membangun dan menjaga suatu individu.
• Masing-masing gen bisa memiliki beberapa setting, sebagai contoh gen yang mengkodekan warna
mata manusia. Manusia dapat memiliki warna mata berbeda-beda: coklat, hitam, biru, hijau, dan
sebagainya.
• Selanjutnya, genome yang lengkap dari suatu individu dengan semua setting-nya disebut
genotype.
• Suatu individu dengan semua sifat-sifatnya dikenal dengan istilah phenotype.
Genetika Alamiah

• Konsep penting dalam teori evolusi adalah fitness dan selection untuk proses
reproduksi.
• Pada sexual reproduction, kromosom dari dua individu orangtua dikombinasikan
untuk menghasilkan individu baru, yaitu kromosom pada individu baru berisi
beberapa gen yang diambil dari orangtua pertama dan beberapa gen lainnya yang
diambil dari orangtua kedua (disebut dengan crossover/pindah silang).
• Kesalahan pengkopia gen dikenal dengan istilah mutation (mutasi).
Struktur Umum Algoritma Genetika

• Pada algoritma ini, teknik pencarian dilakukan sekaligus atas sejumlah solusi yang mungkin yang
dikenal dengan istilah populasi.
• Individu yang terdapat dalam satu populasi disebut dengan istilah kromosom.
• Populasi awal dibangu secara acak, sedangkan populasi berikutnya merupakan hasil evolusi
kromosom-kromosom melalui iterasi yang disebut dengan generasi.
• Pada setiap generasi, kromosom akan melalui proses evaluasi dengan menggunakan alat ukur
yang disebut dengan fungsi fitness. Nilai fitness pada kromosom akan menunjukkan kualitas
kromosom dalam populasi tersebut.
• Generasi berikutnya dikenal dengan istilah anak (offspring) terbentuk dari dua kromosom
generasi sekarang yang bertindak sebagai induk (parent) dengan menggunakan operator
penyilangan (crossover).
• Selain operator penyilangan, suatu kromosom dapat juga dimodifikasi dengan menggunakan
operator mutasi.
Struktur Umum Algoritma Genetika

• Populasi generasi yang baru dibentuk dengan cara menyeleksi nilai fitness dari
kromosom induk (parent) dan nilai fitness dari kromosom anak (offspring), serta
menolak kromosom-kromosom yang lainnya sehingga ukuran populasi (jumlah
kromosom dalam suatu populasi) kontan.
• Setelah melalui beberapa generasi, maka algoritma ini akan menghasilkan
kromosom terbaik.
Siklus Algoritma Genetika
Komponen Algoritma Genetika

1. Teknik Penyandian
2. Prosedur Inisialisasi
3. Fungsi Evaluasi
4. Seleksi
5. Operator Genetika
6. Penentuan Parameter
Komponen Algoritma Genetika
Teknik Penyandian

• Teknik penyandian meliputi penyandian gen dari kromosom. Gen merupakan


bagian dari kromosom, dan satu gen biasanya mewakili satu variabel.
• Gen dapat direpresentasikan dalam bentuk: string bit, pohon, array bilangan real,
daftar aturan, elemen permutasi, elemen program, atau representasi lainnya
yang dapat diimplementasikan untuk operator genetika.
• Contoh:
• String bit : 1011, 111000, dst
• Bilangan real : 65.64, 70.00, dst.
• Elemen permutasi : E2, E5, dst.
• Daftar aturan : R1, R2, R3, dst.
• Elemen program : pemrograman genetika
Komponen Algoritma Genetika
Prosedur Inisialisasi

• Ukuran populasi tergantung pada masalah yang akan dipecahkan dan jenis
operator genetika yang akan diimplementasikan.
• Setelah ukuran populasi ditentukan, bangkitkan sejumlah kromosom (sesuai
dengan ukuran populasi) untuk dijadikan anggota populasi awal.
• Populasi terdiri dari sejumlah kromosom yang merepresentasikan solusi yang
diinginkan.
Komponen Algoritma Genetika
Fungsi Evaluasi

• Evaluasi kromosom dapat dilakukan dengan cara:


1. Evaluasi fungsi objektif.
2. Konversi fungsi objektif ke dalam nilai fitness.
• Dengan kata lain, fungsi fitness diturunkan dari fungsi objektif dengan nilai yang
tidak negatif. Jika fungsi objektif memiliki nilai negatif, maka perlu ditambahkan
konstanta C agar nilai fitness yang terbentuk menjadi tidak negatif.
Komponen Algoritma Genetika
Seleksi

• Seleksi bertujuan untuk memberikan kesempatan reproduksi yang lebih besar


bagi anggota populasi yang paling fit.
• Metode seleksi dari induk yang dapat digunakan:
1. Rank-based fitness assignment.
2. Roulette-wheel selection.
3. Stochastic universal sampling.
4. Local selection.
5. Truncation selection.
6. Tournament selection.
Komponen Algoritma Genetika
Seleksi - Roulette wheel Selection

String Nilai Fitness


S1 10
S2 5
S3 7
S4 5
S5 9
Jumlah 36
Komponen Algoritma Genetika
Seleksi - Roulette wheel Selection
Komponen Algoritma Genetika
Operator Genetika

• Terdapat 2 operator genetika:


1. Operator pindah silang (crossover), digunakan untuk mengkombinasikan dua kromosom
induk berdasarkan nilai probabilitas crossover-nya untuk menghasilkan offspring.
a. Crossover satu titik.
b. Crossover banyak titik.
c. Crossover seragam.
2. Operator mutasi, digunakan untuk mengubah sejumlah gen berdasar nilai probabilitas
mutasinya untuk menghasilkan kromosom baru.
a. Mutasi pada tingkat kromosom.
b. Mutasi pada tingkat gen.
c. Mutasi pada tingkat bit.
Komponen Algoritma Genetika
Operator Genetika - Operator Crossover

• Crossover Satu Titik

• Crossover Banyak Titik

• Crossover Pola Seragam


Komponen Algoritma Genetika
Operator Genetika - Operator Mutasi

• Mutasi pada Tingkat Kromosom

• Mutasi pada Tingkat Gen

• Mutasi pada Tingkat Bit


Elitisme

• Karena seleksi dilakukan secara acak, maka tidak ada jaminan bahwa individu
dengan nilai tertinggilah yang akan selalu terpilih.
• Adanya kemungkinan individu dengan nilai fitness tertinggi tersebut rusak
dikarenakan proses crossover yang dilaluinya.
• Untuk menjaga individu dengan nilai fitness tertinggi tetap utuh (tidak hilang
selama evolusi), perlu dibuat copy/salinan individu tersebut.
Penggantian Populasi

• Prosedur penggantian populasi:


1. Mengganti individu dengan nilai fitness terkecil.
2. Mengganti individu yang paling tua.
3. Membandingkan anak dengan induknya, apabila anak memiliki nilai fitness yang lebih
tinggi dari induknya.
Kriteria Penghentian

1. Memberikan batasan jumlah iterasi, apabila batasan iterasi telah dicapai


dengan nilai fitness tertinggi sebagai solusi.
2. Memberikan batasan waktu proses algoritma genetika.
3. Menghitung kegagalan penggantian anggota populasi yang terjadi secara
berurutan sampai jumlah tertentu.
Algoritma Genetika

Studi
as Kasus Algoritma Genetika (1)

Rezania A. Azdy
Studi Kasus 1

• Gunakan algoritma genetika untuk mencari nilai a, b, c, dan d yang


memenuhi persamaan a + 2b + 3c + 4d = 30.
Studi Kasus 1 - Penyelesaian

1. Pembentukan Kromosom. 2. Inisialisasi.


Persoalan yang ditemui adalah mencari nilai a, Misal ditentukan jumlah populasi adalah 6 (1
b, c, dan d sehingga variabel a, b, c, dan d populasi terdiri dari 6 kromosom). Proses
dapat dijadikan gen yang membentuk inisialisasi dilakukan dengan memberi nilai awal
kromosom (1 kromosom terdiri dari 4 gen). untuk gen secara acak (sesuai dengan batasan
Batasan nilai untuk a, b, c, dan d adalah 0 yang diberikan).
sampai 30. 2.
Maka:
Kromosom[1] = [a b c d] = [12 05 03 08]
Kromosom[2] = [02 01 08 03]
Kromosom[3] = [10 04 03 04]
Kromosom[4] = [20 01 10 06]
Kromosom[5] = [01 04 03 09]
Kromosom[6] = [20 05 07 01]
Studi Kasus 1 - Penyelesaian

3. Evaluasi Kromosom.
Nilai variabel (a, b, c, d) yang dicari adalah yang nilainya memenuhi persamaan a + 2b + 3c + 4d = 30.
Sehingga fungsi objektif yang dapat digunakan untuk memperoleh solusi adalah:
fungsi_objektif(Kromosom[i]) = | a + 2b + 3c + 4d - 30 |
Menghitung fungsi objektif dari kromosom pada langkah 2:
fungsi_objektif(Kromosom[1]) = | 12 + 2*5 + 3*3 + 4*8 - 30 | = 33
fungsi_objektif(Kromosom[2]) = | 2 + 2*1 +3*8 + 4*3 - 30 | = 10
fungsi_objektif(Kromosom[3]) = | 10 + 2*4 +3*3 + 4*4 - 30 | =13
fungsi_objektif(Kromosom[4]) = | 20 + 2*1 +3*10 + 4*6 - 30 | =46
fungsi_objektif(Kromosom[5]) = | 1 + 2*4 +3*3 + 4*9 - 30 | = 24
fungsi_objektif(Kromosom[6]) = | 20 + 2*5 +3*7 + 4*1 - 30 | = 25

Dengan rata-rata fungsi objektifnya adalah: = (33 + 10 + 13 + 46 + 24 + 25) / 6 = 25.167


Studi Kasus 1 - Penyelesaian

3. Evaluasi Kromosom.
Nilai variabel (a, b, c, d) yang dicari adalah yang nilainya memenuhi persamaan a + 2b + 3c + 4d = 30.
Sehingga fungsi objektif yang dapat digunakan untuk memperoleh solusi adalah:
fungsi_objektif(Kromosom[i]) = | a + 2b + 3c + 4d - 30 |
Menghitung fungsi objektif dari kromosom pada langkah 2:
fungsi_objektif(Kromosom[1]) = | 12 + 2*5 + 3*3 + 4*8 - 30 | = 33
fungsi_objektif(Kromosom[2]) = | 2 + 2*1 +3*8 + 4*3 - 30 | = 10
fungsi_objektif(Kromosom[3]) = | 10 + 2*4 +3*3 + 4*4 - 30 | =13
fungsi_objektif(Kromosom[4]) = | 20 + 2*1 +3*10 + 4*6 - 30 | =46
fungsi_objektif(Kromosom[5]) = | 1 + 2*4 +3*3 + 4*9 - 30 | = 24
fungsi_objektif(Kromosom[6]) = | 20 + 2*5 +3*7 + 4*1 - 30 | = 25

Dengan rata-rata fungsi objektifnya adalah: = (33 + 10 + 13 + 46 + 24 + 25) / 6 = 25.167


Studi Kasus 1 - Penyelesaian

4. Seleksi Kromosom.
Proses seleksi dilakukan untuk memilih kromosom dengan nilai fitness tertinggi yang dapat melakukan reproduksi
untuk menghasilkan turunan (offspring). Nilai fitness diperoleh dari fungsi fitness yang dapat diturunkan dari
fungsi objektif. Kromosom yang memiliki fungsi objektif kecil mempunyai kemungkinan terpilih yang
besar/mempunyai nilai probabilitas yang tinggi. Maka fungsi fitness yang dapat digunakan:
fungsi_fitness(Kromosom[i]) = 1/(fungsi_objektif[i] + 1*)
*) fungsi objektif ditambahkan dengan 1 untuk menghindari kesalahan pembagian 0

Maka nilai fitness untuk setiap kromosom:


fitness[1] = 1/(fungsi_objektif[1] + 1) = 1/(33+1) = 1/34 = 0.0294
fitness[2] = 1/(fungsi_objektif[2] + 1) = 1/(10+1) = 1/11= 0.0909
fitness[3] = 1/(fungsi_objektif[3] + 1) = 1/(13+1) = 1/14= 0.0714
fitness[4] = 1/(fungsi_objektif[4] + 1) = 1/(46+1) = 1/47= 0.0212
fitness[5] = 1/(fungsi_objektif[5] + 1) = 1/(24+1) = 1/25= 0.0400
fitness[6] = 1/(fungsi_objektif[6] + 1) = 1/(25+1) = 1/26= 0.0385
total_fitness = 0.0294 + 0.0909 + 0.0714 + 0.0212 + 0.0400 + 0.0385 = 0.2914
Studi Kasus 1 - Penyelesaian

Dari nilai fitness dapat ditentukan probabilitas/kemungkinan sebuah kromosom dipilih untuk
diteruskan ke generasi berikutnya. Probabilitas:
P[i] = fitness[i]/total_fitness

Maka probabilitas setiap kromosom untuk terpilih adalah:


P[1] = fitness[1]/total_fitness = 0.0294/0.2914 = 0.1009
P[2] = fitness[2]/total_fitness = 0.0909/0.2914 = 0.3119
P[3] = fitness[3]/total_fitness = 0.0714/0.2914 = 0.2450
P[4] = fitness[4]/total_fitness = 0.0212/0.2914 = 0.0728
P[5] = fitness[5]/total_fitness = 0.0400/0.2914 = 0.1373
P[6] = fitness[6]/total_fitness = 0.0385/0.2914 = 0.1321

Dari nilai probabilitas dapat dilihat bahwa kromosom 2 mempunyai kemungkinan untuk dipilih pada
generasi berikutnya lebih besar dari kromosom yang lain.
Studi Kasus 1 - Penyelesaian

Untuk proses seleksi, akan digunakan metode roulette wheel. Sehingga untuk memudahkan pengelompokkan
dapat dicari kumulatif probabilitasnya terlebih dahulu.
C[1] = 0.1009
C[2] = 0.1009 + 0.3119 = 0.4128
C[3] = 0.4128 + 0.2450 = 0.6578
C[4] = 0.6578 + 0.0728 = 0.7306
C[5] = 0.7306 + 0.1373 = 0.8679
C[6] = 0.8679 + 0.1321 = 1
Proses seleksi roulette wheel dilakukan dengan membangkitkan nilai acak dengan rentang 0 sampai 1.
Pembangkitan dilakukan sebanyak jumlah kromosom dalam satu populasi.
Acak[1] = 0.201 --> Kromosom 2
Acak[2] = 0.284 --> Kromosom 2
Acak[3] = 0.009 --> Kromosom 1
Acak[4] = 0.822 --> Kromosom 5
Acak[5] = 0.398 --> Kromosom 2
Acak[6] = 0.501 --> Kromosom 3
Studi Kasus 1 - Penyelesaian

Dari bilangan acak yang telah dibangkitkan, maka populasi kromosom baru hasil proses seleksi adalah:
Kromosom[1] = Kromosom[2] = [02 01 08 03]
Kromosom[2] = Kromosom[2] = [02 01 08 03]
Kromosom[3] = Kromosom[1] = [12 05 03 08]
Kromosom[4] = Kromosom[5] = [01 04 03 09]
Kromosom[5] = Kromosom[2] = [02 01 08 03]
Kromosom[6] = Kromosom[3] = [10 04 03 04]
Algoritma Genetika

Studi
as Kasus Algoritma Genetika (1 - Lanjutan)

Rezania A. Azdy
Studi Kasus 1 - Penyelesaian

5. Crossover
Metode yang digunakan untuk proses crossover adalah one-cut point (Crossover Satu Titik).
Kromosom yang akan dijadikan induk (mengalami crossover) dipilih secara acak dan jumlahnya dipengaruhi oleh
parameter crossover_rate (ρc).

Misal ditentukan ρc = 25%, maka kromosom yang akan mengalami crossover adalah kromosom yang nilai acaknya
tidak lebih dari ρc atau banyaknya crossover tidak lebih dari ρc.
Pembangkitan nilai acak untuk setiap kromosom:
Acak[1] = 0.191
Acak[2] = 0.259
Acak[3] = 0.760
Acak[4] = 0.006
Acak[5] = 0.159
Acak[6] = 0.340
Studi Kasus 1 - Penyelesaian

Dari bilangan acak yang dibangkitkan sebelumnya, maka kromosom yang akan mengalami crossover adalah
Kromosom[1], Kromosom[4], dan Kromosom[5].

Proses crossover dilakukan dengan memasangkan setiap induk yang terpilih:


Kromosom[1] >< Kromosom[4]
Kromosom[4] >< Kromosom[5]
Kromosom[5] >< Kromosom[1]

Setelah memperoleh induk, selanjutnya menentukan posisi crossover dengan membangkitkan bilangan acak
dengan rentang 1 sampai (panjang kromosom - 1). Sehingga dalam kasus ini bilangan acak yang dibangkitkan
adalah 1 sampai 4 - 1 atau [1..3].

Posisi cut-point crossover dipilih menggunakan bilangan acak yang dibangkitkan sebanyak proses crossover yang
dilakukan:
Cut[1] = 1
Cut[2] = 1
Cut[3] = 2
Studi Kasus 1 - Penyelesaian

Proses crossover yang dilakukan menghasilkan kromosom baru turunannya yang disebut dengan
offspring.

Dengan demikian, populasi kromosom


setelah mengalami crossover adalah:

Kromosom[1] = [02 04 03 09]


Kromosom[2] = [02 01 08 03]
Kromosom[3] = [12 05 03 08]
Kromosom[4] = [01 01 08 03]
Kromosom[5] = [02 01 08 03]
Kromosom[6] = [10 04 03 04]
Studi Kasus 1 - Penyelesaian

6. Mutasi
Jumlah kromosom yang mengalami mutasi dalam satu populasi ditentukan dengan mutation rate (ρm).
Proses mutasi dilakukan dengan cara mengganti satu gen yang terpilih secara acak dengan nilai baru yang
diperoleh secara acak. Adapun langkah dalam melakukan mutasi adalah:
1. Hitung panjang total gen yang ada dalam satu populasi.
2. total_gen = jumlah gen dalam kromosom * jumlah populasi = 4 * 6 = 24
3. Memilih posisi gen yang mengalami mutasi dengan membangkitkan nilai acak integer dengan rentang 1
sampai total_gen [1..24], dan memilih gen yang (jumlah) bilangan acaknya tidak lebih dari mutation rate
(ρm).
4. Misal mutation_rate = 10%, maka terdapat 10% dari total gen yang mengalami mutasi.
5. Jadi jumlah mutasi = 10/100 * 24 = 2.4
Studi Kasus 1 - Penyelesaian

Bilangan acak yang dibangkitkan untuk setiap gen:


Gen[1] = 13 Gen[7] = 05 Gen[13] = 20 Gen[19] = 09
Gen[2] = 03 Gen[8] = 12 Gen[14] = 17 Gen[20] = 22
Gen[3] = 11 Gen[9] = 24 Gen[15] = 14 Gen[21] = 19
Gen[4] = 18 Gen[10] = 07 Gen[16] = 08 Gen[22] = 04
Gen[5] = 06 Gen[11] = 10 Gen[17] = 23 Gen[23] = 21
Gen[6] = 16 Gen[12] = 02 Gen[18] = 01 Gen[24] = 15

Dari bilangan acak yang dibangkitkan untuk setiap gen, terpilih posisi gen 12 dan 18 yang mengalami mutasi.
Dengan demikian, yang akan mengalami mutasi adalah kromosom ke 3 gen nomor 4, dan kromosom ke 5 gen
nomor 2. Maka nilai gen tersebut diganti dengan bilangan acak dengan rentang 0 sampai 30.

Acak[gen[12]] = 2
Acak[gen[18]] = 5
Studi Kasus 1 - Penyelesaian

Kromosom setelah mengalami proses mutasi adalah:


Kromosom[1] = [02 04 03 09]
Kromosom[2] = [02 01 08 03]
Kromosom[3] = [12 05 03 02]
Kromosom[4] = [01 01 08 03]
Kromosom[5] = [02 05 08 03]
Kromosom[6] = [10 04 03 04]

Setelah proses mutasi selesai, maka algoritma telah menyelesaikan satu generasi (iterasi).

Fungsi objektif setelah satu generasi adalah:


fungsi_objektif(Kromosom[1]) = | 2+ 2*4 + 3*3 + 4*9 - 30 | = 25
fungsi_objektif(Kromosom[2]) = | 2 + 2*1 +3*8 + 4*3 - 30 | = 10
fungsi_objektif(Kromosom[3]) = | 12 + 2*5 +3*3 + 4*2 - 30 | = 9
fungsi_objektif(Kromosom[4]) = | 1+ 2*1 +3*8+ 4*3 - 30 | = 9
fungsi_objektif(Kromosom[5]) = | 2 + 2*5 +3*8 + 4*3 - 30 | = 18
fungsi_objektif(Kromosom[6]) = | 10 + 2*4 +3*3 + 4*4 - 30 | = 13
Studi Kasus 1 - Penyelesaian

Rata-rata fungsi objektif (dari kromosom yang baru) = (25 +10 + 9 + 9 + 18 + 13) / 6 = 84 / 6 = 14
Dari perhitungan rata-rata fungsi objektif diatas dapat dilihat, bahwa setelah satu generasi fungsi objektifnya
menurun dibandingkan rata-rata fungsi objektif sebelum mengalami proses crossover dan mutasi. Hal ini
menunjukkan bahwa kromosom yang dihasilkan pada populasi baru lebih baik dari kromosom generasi
sebelumnya. Maka kromosom pada generasi selanjutnya adalah:

Kromosom[1] = [02 04 03 09]


Kromosom[2] = [02 01 08 03]
Kromosom[3] = [12 05 03 02]
Kromosom[4] = [01 01 08 03]
Kromosom[5] = [02 05 08 03]
Kromosom[6] = [10 04 03 04]

Kemudian kromosom ini akan mengalami proses yang sama dengan generasi sebelumnya hingga ditemui
kriteria penghentian algoritma.
Studi Kasus 1 - Penyelesaian

Setelah 50 generasi, dihasilkan kromosom yang terbaik adalah:


Kromosom = [07 05 03 01]

Jika nilai gen dimasukkan kedalam nilai variabel, maka a = 7, b = 5, c = 3, dan d = 1.


Sehingga memenuhi persamaan a + 2b + 3c + 4d = 30.
Bukti:
a + 2b + 3c + 4d = 30
⇔ 7 + 2*5 + 3*3 + 4*1 = 30
⇔ 7 + 10 + 9 + 4 = 30
⇔ 30 = 30
Studi Kasus 1 - Penyelesaian

Dari pencarian solusi menggunakan algoritma genetika, maka ditemukan nilai variabel:
a=7
b=5
c=3
d=1
Algoritma Genetika

Studi
as Kasus Algoritma Genetika (2)

Rezania A. Azdy
Studi Kasus 2

• Terdapat 5 buah kota yang akan dilalui A


seorang salesman, yaitu kota A, B, C, D, 9 7
dan E. Perjalanan dimulai dari kota A
8
dan berakhir kembali di kota A dengan E B

jarak antar kota diperlihatkan pada 3 2

gambar disamping. 7
6
• Tentukan urutan kota mana saja yang 9 5

dapat dilalui salesman untuk


m e m p e ro l e h j a ra k ya n g m i n i m a l
4 C
meng gunakan algoritma genetika D

dengan crossover rate 25% dan


mutation rate 20%.
Studi Kasus 2 - Penyelesaian

Inisialisasi
Misalkan ukuran populasi dalam satu generasi adalah 6 (1 populasi terdiri dari 6 kromosom). Proses inisialisasi
dilakukan dengan memberi nilai awal untuk gen secara acak pada tiap kromosom.

Maka:
Kromosom[1] = [B D E C]
Kromosom[2] = [D B E C]
Kromosom[3] = [C B D E]
Kromosom[4] = [E B C D]
Kromosom[5] = [E C B D]
Kromosom[6] = [C D E B]
Studi Kasus 2 - Penyelesaian

Evaluasi Kromosom
Berikutnya akan dihitung nilai fitness dari tiap kromosom yang telah dibangkitkan. Nilai fitness diperoleh dari
total jarak yang ditempuh dengan menelusuri lintasan kota pada kromosom:
Fitness[1] = AB+BD+DE+EC+CA = 7 + 2 + 6 + 3 + 5 = 23
Fitness[2] = AD+DB+BE+EC+CA = 9 + 2 + 8 + 3 + 5 = 27
Fitness[3] = AC+CB+BD+DE+EA = 5 + 7 + 2 + 6 + 9 = 29
Fitness[4] = AE+EB+BC+CD+DA = 9 + 8 + 7 + 4 + 9 = 37
Fitness[5] = AE+EC+CB+BD+DA = 9 + 3 + 7 + 2 + 9 = 30
Fitness[6] = AC+CD+DE+EB+BA = 5 + 4 + 6 + 8 + 7 = 30
Studi Kasus 2 - Penyelesaian

Seleksi Kromosom (1)


Oleh karena pada persoalan TSP yang diinginkan yaitu kromosom dengan fitness yang lebih kecil akan
mempunyai probabilitas untuk terpilih kembali lebih besar maka digunakan inverse (kebalikannya).

Q[i] = 1/Fitness (i)


Q[1] = 1/23 = 0,043
Q[2] = 1/27 = 0,037
Q[3] = 1/29 = 0,034
Q[4] = 1/37 = 0,027
Q[5] = 1/30 = 0,033
Q[6] = 1/30 = 0,033

Total = 0,043+0,037+0,034+0,027+0,033+0,033= 0,207


Studi Kasus 2 - Penyelesaian

Seleksi Kromosom (2)


Dari probabilitas di atas dapat terlihat bahwa
kromosom ke-1 mempunyai fitness paling kecil
Untuk mencari probabilitas kita menggunakan mempunyai probabilitas untuk terpilih pada generasi
rumus berikut : selanjutnya lebih besar dari kromosom lainnya.
P[i] = Q[i]/Total Untuk proses seleksi kita menggunakan rouletewheel,
P[1] = 0,043/0,207 = 0,208 untuk itu kita terlebih dahulu mencari nilai kumulatif
P[2] = 0,037/0,207 = 0,179 dari probabilitasnya.
P[3] = 0,034/0,207 = 0,164
P[4] = 0,027/0,207 = 0,130 C[1] = 0,208
P[5] = 0,033/0,207 = 0,159 C[2] = 0,028+0,179 = 0,387
P[6] = 0,033/0,207 = 0,159 C[3] = 0,387+0,164 = 0,551
C[4] = 0,551+0,130 = 0,681
C[5] = 0,681+0,159 = 0,840
C[6] = 0,840+0,159 = 1
Studi Kasus 2 - Penyelesaian

Seleksi Kromosom (3)

Proses roulete-wheel adalah membangkitkan nilai Setelah itu, populasi baru akan terbentuk yaitu :
acak R antara 0-1. Roulete-wheel diputar sebanyak Kromosom[1] = [K2] = [D B E C]
jumlah kromosom yaitu 6 kali (membangkitkan Kromosom[2] = [K1] = [B D E C]
bilangan acak R). Kromosom[3] = [K3] = [C B D E]
R[1] = 0,314 → K2 Kromosom[4] = [K5] = [E C B D]
R[2] = 0,111 → K1 Kromosom[5] = [K4] = [E B C D]
R[3] = 0,342 → K3 Kromosom[6] = [K6] = [C D E B]
R[4] = 0,743 → K5
R[5] = 0,521 → K4
R[6] = 0,911 → K6
Studi Kasus 2 - Penyelesaian

Crossover (1)
Pindah silang pada TSP dapat diimplementasikan dengan skema order crossover. Pada skema ini, satu bagian
kromosom dipertukarkan dengan tetap menjaga urutan kota yang bukan bagian dari kromosom tersebut.
Kromosom yang dijadikan induk dipilih secara acak dan jumlah kromosom yang dicrossover dipengaruhi oleh
parameter crossover probability (ρc). Pertama kita bangkitkan bilangan acak R sebanyak jumlah populasi yaitu
6 kali.

R[1] = 0,451
R[2] = 0,211
R[3] = 0,302
R[4] = 0,877
R[5] = 0,771
R[6] = 0,131

Kromosom ke-k yang dipilih sebagai induk jika R[k] < ρc. Maka yang akan dijadikan induk adalah kromosom[2],
kromosom[3], dan kromosom[6].
Studi Kasus 2 - Penyelesaian

Crossover (2)
Setelah melakukan pemilihan induk, proses selanjutnya adalah menentukan posisi crossover. Hal tersebut
dilakukan dengan membangkitkan bilangan acak antara 1 sampai dengan panjang kromosom-1.

Dalam kasus ini bilangan acaknya adalah antara 1-3 (karena ukuran kromosom = 4). Misal diperoleh bilangan
acaknya 1, maka gen yang ke-1 pada kromosom induk pertama diambil kemudian ditukar dengan gen pada
kromosom induk kedua yang belum ada pada induk pertama dengan tetap memperhatikan urutannya.

Bilangan acak untuk 3 kromosom induk yang akan di-crossover :


C[2] = 2
C[3] = 1
C[6] = 2
Studi Kasus 2 - Penyelesaian

Crossover (3)
Proses crossover :
Kromosom[2] = Kromosom[2] >< Kromosom[3] = [B D E C] >< [C B D E] = [B D D E]
Kromosom[3] = Kromosom[3] >< Kromosom[6] = [C B D E] >< [C D E B] = [C D E B]
Kromosom[6] = Kromosom[6] >< Kromosom[2] = [C D E B] >< [B D E C] = [C D B E]

Populasi setelah di-crossover :


Kromosom[1] = [D B E C]
Kromosom[2] = [B D D E]
Kromosom[3] = [C D E B]
Kromosom[4] = [E C B D]
Kromosom[5] = [E B C D]
Kromosom[6] = [C D B E]
Studi Kasus 2 - Penyelesaian

Mutasi (1)
Pada kasus TSP ini skema mutasi yang digunakan adalah swapping mutation. Jumlah kromosom yang
mengalami mutasi dalam satu populasi ditentukan oleh parameter mutation rate(ρm). Proses mutasi dilakukan
dengan cara menukar gen yang dipilih secara acak dengan gen sesudahnya. Jika gen tersebut berada di akhir
kromosom, maka ditukar dengan gen yang pertama.

Pertama kita hitung dulu panjang total gen yang ada pada satu populasi:
Panjang total gen = jumlah gen dalam 1 kromosom * jumlah Kromosom
=4*6
= 24

Untuk memilih posisi gen yang mengalami mutasi dilakukan dengan membangkitkan bilangan acak antara 1 –
Panjang total gen yaitu 1- 24. Misal kita tentukan ρm = 20 %, maka jumlah gen yang akan dimutasi adalah =
20/100*24 = 4,8 = 5.
Studi Kasus 2 - Penyelesaian

Mutasi (2)
Bilangan acak yang dibangkitkan untuk setiap gen:
Gen[1] = 13 Gen[7] = 05 Gen[13] = 20 Gen[19] = 09
Gen[2] = 11 Gen[8] = 12 Gen[14] = 17 Gen[20] = 01
Gen[3] = 03 Gen[9] = 24 Gen[15] = 14 Gen[21] = 19
Gen[4] = 18 Gen[10] = 02 Gen[16] = 08 Gen[22] = 15
Gen[5] = 06 Gen[11] = 10 Gen[17] = 23 Gen[23] = 21
Gen[6] = 16 Gen[12] = 07 Gen[18] = 22 Gen[24] = 04

5 buah posisi gen yang akan dimutasi, setelah diacak adalah posisi 3,7,10,20,24.
Studi Kasus 2 - Penyelesaian

Mutasi (3)

Proses mutasi : Proses algoritma genetik untuk 1 generasi telah selesai. Maka nilai
Kromosom[1] = [D B C E] fitness setelah 1 generasi adalah:
Kromosom[2] = [B D E C] Fitness[1] = AD+DB+BC+CE+EA = 9 + 2 + 7 + 3 + 9 = 30
Kromosom[3] = [C E D B] Fitness[2] = AB+BD+DE+EC+CA = 7 + 2 + 6 + 3 + 5 = 23
Kromosom[4] = [E C B D] Fitness[3] = AC+CE+ED+DB+BA = 5 + 3 + 6 + 2 + 7 = 23
Kromosom[5] = [D B C E] Fitness[4] = AE+EC+CB+BD+DA = 9 + 3 + 7 + 2 + 9 = 30
Kromosom[6] = [E D B C] Fitness[5] = AD+DB+BC+CE+EA = 9 + 2 + 7 + 3 + 9 = 30
Fitness[6] = AE+ED+DB+BC+CA = 9 + 6 + 2 + 7 + 5 = 29
Studi Kasus 2 - Penyelesaian

Setelah 1 generasi terlihat bahwa nilai fitness terkecil tidak berubah. Sehingga jika perhitungan
dilanjutkan hingga ke generasi ke-N maka diyakinkan bahwa nilai fitness yang terendah tetap tidak
akan berubah.

Sehingga solusi permasalahan diatas mengenai rute yang dipilih terdapat pada kromosom 2 (B, D, E,
C) dan kromosom 3 (C, E, D, B).
Jaringan Syaraf Tiruan

Konsep
as Dasar Jaringan Syaraf Tiruan

Rezania A. Azdy
Definisi

• Jaringan syaraf merupakan salah satu representasi buatan dari otak manusia yang
selalu mencoba untuk mensimulasikan proses pembelajaran pada otak manusia
tsb.
• Disebut buatan karena jaringan syaraf diimplementasikan dengan menggunakan
program komputer yang mampu menyelesaiakn sejumlah proses perhitungan.
• Menurut Alexander dan Morton:
JST adalah prosesor tersebar paralel (paralel distributed processor) yang sangat besar yang
memiliki kecenderungan untuk menyimpan pengetahuan yang bersifat pengalaman dan
membuatnya siap untuk digunakan. JST menyerupai otak manusia dalam dua hal, yaitu:
1. Pengetahuan diperoleh jaringan melalui proses belajar;
2. Kekuatan hubungan antar sel syaraf (Neuron) yang dikenal sebagai bobot-bobot sinaptik
digunakan untuk menyimpan pengetahuan.
Jaringan Syaraf Alami

• Otak manusia berisi berjuta-juta sel


syaraf yang bertugas untuk
memroses informasi.
• Tiap sel bekerja seperti sebuah
prosesor sederhana.
• Masing-masing sel tsb berinteraksi
sehingga mendukung kemampuan
kerja otak manusia.
Jaringan Syaraf Tiruan

• JST mengambil prinsip kerja neuron biologis


manusia.
• Analogi cara kerja JST sama dengan cara kerja
jaringan syaraf alami.
• Suatu impuls input (x1, x2 dan x3) akan
diteruskan dengan membawa nilai bobot
tertentu (w1j, w2j, dan w3j). Semua sinyal input
diproses dan dijumlahkan untuk menghasilkan
nilai u.
• Hasil penjumlahan selanjutnya dibandingkan
dengan nilai ambang melalui suatu fungsi
transfer S(u). Neuron hanya akan
menghasilkan output ketika input melewati
suatu nilai ambang (threshold) tertentu.
Implementasi JST

Jaringan syaraf tiruan dapat dimanfaatkan untuk:


1. Classification
2. Clustering
3. Forecasting
4. Pattern recognition
5. Signal processing
Komponen JST (1)

Meskipun terdapat berbagai tipe JST, pada umumnya seluruh tipe ini memiliki
kompoenen yang sama.

No Komponen Arti
1 Neuron Unit pemrosesan informasi yang merupakan dasar dari operasi JST
2 Input Informasi yang dikirim ke neuron dengan bobot kedatangan tertentu.
3 Bobot Sekumpulan sinapsis (jalur hubungan), dimana masing2 sinapsis memiliki bobot atau kekuatan hubungan.

4 adder Fungsi perambatan yang menjumlahkan sinyal input yang telah diberi bobot oleh sinapsis neuron yang
sesuai.
5 Fungsi Hasil penjumlahan akan dibandingkan dengan nilai ambang tertentu (threshold) melalui fungsi aktivasi.
aktivasi Apabila input tsb melewati nilai threshold, maka neuron diaktifkan, jika tidak maka neuron tidak akan aktif.
Apabila neuron aktif, maka neuron akan mengirimkan output ke semua neuron yang berhubungan
dengannya.
Komponen JST (2)

Struktur Neuron Jaringan Syaraf


Komponen JST (3)

• Pada jaringan syaraf, neuron dikumpulkan dalam lapisan yang disebut dengan
lapisan neuron (neuron layers).
• Neuron pada suatu lapisan akan dihubungkan dengan lapisan sebelum dan
sesudahnya (kecuali lapisan input dan lapisan output).
• Informasi akan dirambatkan lapisan ke lapisan, mulai dari lapisan input hingga
lapisan output melalui lapisan lainnya yang disebut dengan lapisan tersembunyi
(hidden layer).
• Informasi akan dirambatkan sesuai dengan algoritma pembelajarannya.
Komponen JST (4)

Jaringan Syaraf dengan 3 Lapisan


Arsitektur JST (1)

• Faktor terpenting dalam menentukan kelakuan suatu neuron adalah fungsi


aktivasi dan bobotnya.
• Pada setiap lapisan yang sama, neuron akan memiliki fungsi aktivasi yang sama.
• Jika neuron dalam suatu lapisan akan dihubungkan dengan neuron pada lapisan
lain, maka setiap neuron pada lapisan itu juga harus dihubungkan dengan setiap
neuron di lapisan lainnya.
• Arsitektur jaringan syaraf:
1. Jaringan dengan lapisan tunggal (single layer net)
2. Jaringan dengan banyak lapisan (multilayer net)
3. Jaringan dengan lapisan kompetitif (competitive layer net)
Arsitektur JST (2)

1. Jaringan dengan lapisan tunggal (single layer net)


Arsitektur JST (3)

2. Jaringan dengan banyak lapisan (multilayer net)


Arsitektur JST (4)

3. Jaringan dengan lapisan kompetitif (competitive layer net)


Fungsi Aktivasi (1)

• Fungsi aktivasi mendefinisikan nilai output dari suatu neuron dalam level aktivasi
tertentu berdasarkan nilai output pengkombinasi linier ui.
• Fungsi aktivasi yang sering digunakan pada JST:
1. Fungsi undak biner
2. Fungsi linear
3. Fungsi sigmoid biner
4. Fungsi sigmoid bipolar
Fungsi Aktivasi (2)

1. Fungsi undak biner


Fungsi Aktivasi (3)

2. Fungsi linear
Fungsi Aktivasi (4)

3. Fungsi sigmoid biner


Fungsi Aktivasi (5)

4. Fungsi sigmoid bipolar


Proses Pembelajaran

• Definisi belajar menurut JST:


Belajar adalah suatu proses dimana parameter-parameter bebas JST diadaptasikan
melalui suatu proses perangsangan berkelanjutan oleh lingkungan dimana jaringan berada.
Jenis belajar ditentukan oleh pola dimana pengubahan parameter dilakukan.

• Sehingga dalam proses belajar terdapat kejadian sbb.:


1. JST dirangsang oleh lingkungan
2. JST mengubah dirinya sebagai hasil rangsangan ini
3. JST memberikan respon dengan cara yang baru kepada lingkungan, disebabkan perubahan
yang terjadi dalam struktur internalnya sendiri.
Proses Pembelajaran

• Taksonomi proses belajar

• Jenis proses pembelajaran:


1. Pembelajaran terawasi (supervised learning)
2. Pembelajaran tidak terawasi (unsupervised learning)
Proses Pembelajaran - dengan Pengawasan

• Sering disebut juga dengan active learning.


• Proses pembelajaran memerlukan "guru".
• Dikatakan terawasi jika output yang diharapkan telah diketahui sebelumnya.
• Metode supervised-learning:
1. Hebbian
2. Perceptron
3. ADALINE
4. Boltzman
5. Hopfield
6. Backpropagation
Proses Pembelajaran - tanpa Pengawasan

• Sering disebut juga dengan self-organized learning.


• Tidak ada sekumpulan input-output atau fungsi tertentu untuk dipelajari oleh
jaringan.
• Metode unsupervised learning:
1. Competitive
2. Hebbian
3. Kohonen
4. Learning Vector Quantization (LVQ)
5. Neocognitron
Jaringan Syaraf Tiruan

Perceptron
as

Rezania A. Azdy
Perceptron

Perceptron termasuk salah satu bentuk jaringan syaraf yang


sederhana. Perceptron biasa digunakan untuk
mengklasifikasikan suatu tipe pola tertentu yang sering dikenal
dengan pemisahan secara linear.

Pemisahan secara linear atau yang sering disebut dengan linear


classifier menggunakan karakteristik objek untuk Klasifikasi Secara Linear
mengidentifikasi kelas/grup objek tersebut berada berdasarkan
nilai kombinasi linear dari karakteristik objek.

kombinasi linear merupakan penjumlahan hasil kali himpunan pasangan


berurutan (contoh vektor dengan bilangan skalar, yang juga
*)
menghasilkan vektor)
Perceptron

• Misal v adalah vektor (v1, v2, v3), dan a adalah skalar (a1, a2, a3), maka .
Dalam komputasi, linear classifer didefinisikan sebagai algoritma yang (pada
bidang 2 dimensi) dapat menemukan garis yang dapat memisahkan beberapa
kelas. Sehingga objek-objek yang berada pada sisi garis yang sama maka objek
tersebut berada pada satu kelas.
Perceptron

• Perceptron dapat merepresentasikan fungsi logika


AND, OR, dan NOT, tapi tidak seluruh fungsi logika
Boolean. Perhatikan tabel fungsi logika berikut:

• Jika tabel diatas digambarkan menggunakan grafik,


dengan titik hitam melambangkan 1, dan titik putih
melambangkan 0, maka grafik tersebut terlihat
seperti disamping.

• Fungsi AND dikatakan linearly separable karena


terdapat sebuah hyperlane yang memisahkan titik Klasifikasi untuk Fungsi AND dan OR
angka 1 dengan titik angka 0.
Perceptron
Pembelajaran pada Perceptron
(Algoritma Single Layer Perceptron)

Single layer perceptron memiliki bobot yang dapat diatur dan nilai threshold.
Pelatihan pada perceptron ini dilakukan dengan mengubah nilai bobot sehingga
sesuai dengan kebutuhan yang dilakukan dengan membandingkan keluaran dengan
nilai target (output yang telah diperkirakan).

Istilah:
• x : Input • α : Learning rate/laju pemahaman (LR)
• b : bias • w : Bobot
• Target (T) : Output yang diprediksi • Ø : Nilai threshold
• y_in : Luaran proses pembelajaran • Epoh : Tahapan pembelajaran/iterasi
• y : Fungsi aktivasi y = f(y_in)
Pembelajaran pada Perceptron
(Algoritma Single Layer Perceptron)

Langkah 1:
a. Menyiapkan data set pembelajaran.
b. Inisialisasi semua bobot dan bias.
(untuk mudahnya set semua bobot awal dan bobot bias sama dengan nol)
c. Tentukan learning rate (0 < α ≤ 1)
(untuk mudahnya set LR sama dengan 1)
Pembelajaran pada Perceptron
(Algoritma Single Layer Perceptron)

Langkah 2:
Hitung y_in berdasarkan input, bobot, dan bias:
y _ in  b   xi wi
i

Hitung y = f(y_in) berdasarkan fungsi aktivasi (cth: menggunakan fungsi undak biner dengan threshold)

Jika y = target, maka :


wi(baru) = wi(lama).b(baru)
b(baru) = b(lama)
Jika y ≠ target, maka :
wi(baru) = wi(lama) + α * t * xi
b(baru) = b(lama) + α * t
Pembelajaran pada Perceptron
(Algoritma Single Layer Perceptron)

Langkah 3:
Kembali ke langkah 2 untuk menghitung data selanjutnya dengan bobot baru.

Langkah 4:
Berhenti jika bobot tetap untuk semua data atau iterasi maksimal epoh terpenuhi.
Jaringan Syaraf Tiruan

Backpropagation
as

Rezania A. Azdy
Backpropagation

• Algoritma pembelajaran Backpropagation (BP) sering disebut juga dengan


propagasi balik yang merupakan algoritma pembelajaran terawasi (supervised
learning) yang sering digunakan oleh perceptron dengan banyak lapisan untuk
mengubah bobot-bobot neuron yang terdapat pada lapisan tersembunyinya
(hidden layer).
• Algoritma BP menggunakan tahap perambatan maju (forward propagation) untuk
mendapatkan error, dan menggunakan error output tersebut untuk mengubah
nilai bobotnya dalam arah mundur (backward).
Backpropagation

• Pada saat perambatan maju (forward propagation), neuron diaktifkan dengan


fungsi aktivasi sigmoid:

• Arsitektur jaringan backpropagation terlihat seperti pada Gambar berikut:


Backpropagation

• Cara kerja algoritma BP sama seperti cara kerja Perceptron, yaitu


mengoreksi bobot jika luaran yang dihasilkan tidak sesuai dengan
luaran yang diharapkan sehingga respon neuron berikutnya
diharapkan akan lebih mendekati luaran yang benar. Selain itu, BP
memiliki kemampuan untuk memperbaiki bobot pada lapisan hidden
layer.
Backpropagation

Cara kerja algoritma BP secara sederhana:


• Ketika jaringan diberikan pola data pelatihan (data masukan dan luarannya) maka pola
tersebut akan diteruskan ke hidden layer untuk diteruskan kembali ke lapisan output.
Kemudian lapisan output akan memberikan tanggapan yang disebut dengan luaran
jaringan. Ketika luaran jaringan tidak sama dengan luaran yang diharapkan maka luaran
akan menyebar mundur (bakward) ke hidden layer dan diteruskan kembali ke lapisan
input.
• Setiap perubahan bobot yang terjadi dapat mengurangi error. Siklus setiap perubahan
bobot (epoch) dilakukan pada setiap set pelatihan hingga kondisi berhenti dicapai, yaitu
bila mencapai jumlah epoch yang diinginkan atau hingga sebuah nilai ambang yang
ditetapkan terlampaui. Algoritma pelatihan jaringan propagasi balik terdiri dari 3 tahapan
yaitu :
1. Tahap umpan maju (feedforward)
2. Tahap umpan mundur (bakcward propagation)
3. Tahap pengupdate-an bobot dan bias
Backpropagation - Algoritma

0. Inisialisasi bobot dan bias (ambil nilai bobot awal dengan nilai random yang kecil dengan kisaran -1
hingga 1), konstanta learning rate, dan maksimal epoh (bisa juga toleransi error atau nilai bobot
sebagai kondisi berhenti).

1. Selama kondisi berhenti belum tercapai, lakukan langkah 2 - 9.

2. Untuk setiap pasangan pola pelatihan, lakukan langkah 3 - 8.


Backpropagation - Algoritma

Tahap 1: Feedforward

3. Setiap input xi (dari unit ke-1 hingga unit ke-n) mengirimkan sinyal input ke setiap input yang berada
pada hidden layer.

4. Setiap unit di hidden layer zj (dari unit ke-1 hingga ke-n) dikalikan dengan bobotnya dan
ditambahkan dengan biasnya:

dan menggunakan fungsi aktivasi untuk menghitung sinyal output dari hidden unit yang
bersangkutan:
Backpropagation - Algoritma

5. Setiap unit output yk (dari unit ke-1 hingga ke-p) akan menjumlahkan sinyal input yang telah
berbobot termasuk biasnya:

dan menggunakan fungsi aktivasi untuk menghitung sinyal output dari unit output yang
bersangkutan:
Backpropagation - Algoritma

Tahap 2: Backward propagation

6. Setiap unit output (yk) menerima pola target tk sesuai dengan pola pelatihan yang telah diberikan,
dan menghitung koreksi error lapisan output (δk):

Hitung suku perubahan bobot wkj (yang akan digunakan untuk mengubah wjk):

Hitung perubahan bias:


Backpropagation - Algoritma

7. Setiap unit di hidden layer menjumlahkan input delta yang telah berbobot (yang dihasilkan pada
Langkah 6):

Kemudian dilakukan perhitungan koreksi error:

Koreksi bobot vji:

Koreksi bias vj0:


Backpropagation - Algoritma

Tahap 3: Pembaruan bobot dan bias

8. Setiap unit output memperbaharui bias dan bobotnya:

Setiap unit hidden layer memperbaharui bias dan bobotnya:

9. Uji kondisi berhenti. Jika kondisi berhenti terpenuhi, maka pelatihan jaringan dapat dihentikan
Backpropagation - Algoritma

Setelah pelatihan jaringan selesai, jaringan yang mengimplementasikan BP


dianggap telah pintar sehingga apabila jaringan menerima suatu input maka
jaringan dapat menghasilkan output seperti yang diharapkan. Cara jaringan
mendapatkan output adalah dengan mengimplementasikan metode BP sama
seperti pada proses pembelajaran tetapi hanya pada tahapan feedforward saja.

Anda mungkin juga menyukai