Bagi mahasiswa yang mengikuti mata kuliah saya, mohon diperhatikan tabel nilai pada diri saudara, apakah sudah puas atau masih kurang. Kalau misalnya kurang setuju, mohon segera menghadap saya untuk dikroscek dengan hasil ujian.
Revisi bisa saya terima paling lambat hari Sabtu, 13 Januari 2018, Pukul 12:00 WITA
Berikut tabel nilai hampir final dari mata ujian yang saya ampu.
Ayo segera ditindaklanjuti biar tidak ketinggalan kereta
10 January 2018
20 November 2017
Delta Learning Rule
Assalamu'alaikum.
Ketemu lagi dengan saya.....semoga netter semuanya dalam keadaan sehat walafiat dan selalu dalam lindungan-Nya. Amin ya robbal'alamin.
Langsung aja guys, kali ini akan dibahas masalah Delta Learning Rule, yang merupakan bagian dari expert system untuk pengambilan keputusan berdasarkan data-data yang sudah ada beserta target yang sudah ditentukan. Didalamnya terdapat proses learn untuk mencapai target yang telah ditentukan. Proses learn tersebut akan terus dilakukan sampai dengan jarak errors dengan target semakin kecil.
Delta learning rule ini hanya terdiri dari unit input dan unit output atau dalam istilah lain dikenal sebagai single layer.
Pada gambar 1. terlihat Jaringan Syaraf Tiruan Delta Learning Rule.
![]() |
| Gambar 1. Delta Learning Rule |
Pada jaringan ini digunakan topologi feedforward dengan metode supervised (terawasi). Jaringan feedforward adalah jaringan hubungan antar node yang tidak mempunyai perputaran (loop). Jaringan feedforward ini biasa akan merespon input dengan cepat.
Metode supervised adalah metode dimana suatu metode yang hasilnya sudah diketahui secara pasti yang mana hasil tersebut diberikan kepada jaringan pada saat terjadi proses pelatihan sehingga jaringan tersebut bisa menyesuaikan bobotnya untuk mencocokkan hasil pelatihannya dengan target.
Saat umpan maju (feedforward), setiap unit input (Xi)
akan menerima sinyal input dan akan menyebarkan sinyal tersebut pada tiap unit
output. Kemudian setiap unit output (Yj) juga akan menghitung
aktivasinya (yj) untuk menghasilkan respon terhadap input yang
diberikan jaringan.
Saat proses pelatihan (training), setiap unit output
membandingkan aktivasinya (yj) dengan nilai target (desired output)
untuk menentukan besarnya error. Perhitungan error tersebut digunakan untuk
menentukan stop condition.
Untuk selengkapnya, notasi-notasi yang akan digunakan pada algoritma pelatihan yaitu :
X Data
training untuk input
X
= (x1, …, xi, …, xn)
t Data
training untuk output (target/ desired output)
t
= (t1, …, tk, …, tm)
α Learning
rate, yaitu parameter yang mengontrol perubahan bobot selama pelatihan. Jika
learning rate besar, jaringan semakin cepat belajar, tetapi hasilnya kurang akurat. Learning rate biasanya dipilih antara 0 dan 1.
learning rate besar, jaringan semakin cepat belajar, tetapi hasilnya kurang akurat. Learning rate biasanya dipilih antara 0 dan 1.
Xi Unit input ke-i. untuk unit input, sinyal yang masuk dan
keluar pada suatu unit dilambangkan dengan variable yang sama, yaitu xi.
Yj Unit
output ke-j. sinyal input ke Yj dilambangkan y_inj.
sinyal output(aktivasi) untuk Yj
dilambangkan dengan yj.
dilambangkan dengan yj.
wij Bobot antara unit input ke-I dan unit output ke-j.
Emax Error maksimum untuk menentukan stop condition.
E Jumlah
error sekarang setiap putaran pelatihan.
Secara detail,
step-step pelatihan Delta Learning Rule adalah sebagai berikut :
Step 0. Inisialisasi α (learning rate) dan Emax.
Nilai Emax dan α harus lebih besar dari 0.
Step 1. Inisialisasi nilai bobot w dan error E diset 0.
Step 2. Jika stop condition masih belum terpenuhi, jalankan
step3-9.
Step 3. Untuk setiap data training, lakukan step 4-8.
Umpan Maju (feedforward):
Step 4. Setiap unit input (Xi,
i = 1,...,n) menerima sinyal input xi dan menyebarkan sinyal
tersebut pada seluruh unit pada unit output. Perlu diketahui bahwa input xi
yang dipakai di sini adalah input training data yang sudah diskalakan. Pertama,
input yang mungkin dipakai dalam sistem dicari nilai terendah dan tertingginya.
Kemudian, skala yang digunakan tergantung dari fungsi aktivasinya.
Jika yang dipakai adalah fungsi Sigmoid Biner yang mempunyai harga terendah = 0 dan harga tertinggi = 1, maka nilai input terendah juga dianggap = 0 dan nilai tertinggi dianggap = 1. Nilai-nilai diantaranya bervariasi antara 0 dan 1.
Sedangkan bila yang digunakan adalah fungsi Sigmoid Bipolar, maka range nilainya juga bervariasi mulai -1 sampai dengan 1.
Jika yang dipakai adalah fungsi Sigmoid Biner yang mempunyai harga terendah = 0 dan harga tertinggi = 1, maka nilai input terendah juga dianggap = 0 dan nilai tertinggi dianggap = 1. Nilai-nilai diantaranya bervariasi antara 0 dan 1.
Sedangkan bila yang digunakan adalah fungsi Sigmoid Bipolar, maka range nilainya juga bervariasi mulai -1 sampai dengan 1.
Step 5. Setiap unit output (Yj,
j = 1,...,m), akan menjumlahkan sinyal-sinyal input yang sudah berbobot,
termasuk biasnya,
dan memakai fungsi aktivasi yang
telah ditentukan untuk menghitung sinyal output dari unit output yang
bersangkutan
Pembaharuan Bobot (adjustment) dan Bias:
Step 6. Menghitung perubahan
bobot dari setiap unit input (Xi = 1,...,n) ke unit output (Yj,
j = 1,...,m).
Step 7. Setiap unit output (Yi, j
= 1,...,m) akan memperbaharui bias dan bobotnya dari setiap unit input (i =
1,...,n),
Perhitungan Total Error:
Step 8. Menghitung error dengan
menambahkan error yang sekarang ke variabel E.
Step 9. Memeriksa stop condition.
Jika E < Emax, maka
stop condition terpenuhi dan pelatihan selesai.
Jika E > Emax, maka
E diset 0 dan putaran pelatihan baru dimulai lagi dengan kembali ke step 3.
Pada tabel di atas, bahwa pada perhitungan w1*x1 dan w2*x2, nilai w1 dan w2 diambilkan dari nilai w1 baru dan w2 baru baris sebelumnya dari kolom sebelah kanan.
Contoh aplikasi Delta Learning Rule
Contoh aplikasi delta learning
rule pada fungsi logika AND
Pada gambar tersebut dapat dilihat
:
Bobot diinisialisasi dengan nilai
random (missal : w1 = 0.1; w2 = -0.2). Pada fungsi AND, inputnya adalah 00, 01, 10,
11 dan output yang diharapkan 0, 0, 0, 1. E (error) diinisialisasi 0. Ditentukan
α = 0.1 dan E max = 0.1.
Iterasi 1.
Input1
(x1)
|
Input2
(x2)
|
Target Output
(t)
|
W1*x1
|
W2*x2
|
y_in
|
Y(Output)
|
Weight error
(y-t)
|
W1 BARU
|
W2 BARU
|
0
|
0
|
0
|
0
|
0.
|
0
|
0.5
|
-0.5
|
0.1
|
-0.2
|
0
|
1
|
0
|
0
|
-0.2
|
-0.2
|
0.45
|
-0.45
|
0.1
|
-0.245
|
1
|
0
|
0
|
0.1
|
0
|
0.1
|
0.53
|
-0.53
|
0.047
|
-0.245
|
1
|
1
|
1
|
0.047
|
-0.245
|
-0.198
|
0.45
|
0.55
|
0.102
|
-0.19
|
Pada tabel di atas, bahwa pada perhitungan w1*x1 dan w2*x2, nilai w1 dan w2 diambilkan dari nilai w1 baru dan w2 baru baris sebelumnya dari kolom sebelah kanan.
Kemudian bobot diperbaharui
menjadi :
Pada
pasangan data training pertama :
w1 = w1 + α(y1-t1)x1
= 0.1 +0.1 x (-0.5) x 0 = 0.1
w2 = w2 + α(y2-t2)x2
= -0.2 +0.1 x (-0.5) x 0 = -0.2
Pada kasus ini, y1 dan y2 adalah Y (karena output hanya 1 yaitu Y)
Pada
pasangan data training kedua :
Nilai w1 dan w1 diambilkan dari hasil perhitungan pada pasangan training pertama
w1 = w1 + α(y1-t1)x1 = 0.1 +0.1 x (-0.45) x 0 = 0.1
Nilai w1 dan w1 diambilkan dari hasil perhitungan pada pasangan training pertama
w1 = w1 + α(y1-t1)x1 = 0.1 +0.1 x (-0.45) x 0 = 0.1
w2 = w2 + α(y2-t2)x2
= -0.2 +0.1 x (-0.45) x 1 = -0.245
Pada
pasangan data training ketiga :
Nilai w1 dan w1 diambilkan dari hasil perhitungan pada pasangan training kedua
Nilai w1 dan w1 diambilkan dari hasil perhitungan pada pasangan training kedua
w1 = w1 + α(y1-t1)x1
= 0.1 +0.1 x (-0.53) x 1 = 0.047
w2 = w2 + α(y2-t2)x2
= -0.245 +0.1 x (-0.53) x 0 = -0.245
Pada
pasangan data training keempat :
Nilai w1 dan w1 diambilkan dari hasil perhitungan pada pasangan training ketiga
Nilai w1 dan w1 diambilkan dari hasil perhitungan pada pasangan training ketiga
w1 = w1 + α(y1-t1)x1
= 0.047 +0.1 x (0.55) x 1 = 0.102
w2 = w2 + α(y2-t2)x2
= -0.245 +0.1 x (0.55) x 1 = -0.19
E = ½ ((-0.5)2
+ (-0.45)2 + (-0.53)2 + (0.55)2) = ½(0.5359) =
0.26795
Karena E>Emax maka dilanjutkan ke
iterasi kedua dan begitu seterusnya sampai Emax
E adalah Total
Error = 1/2((y1-t1)2 + (y2-t2)2
+ (y3-t3)2 + (y4-t4)2
Untuk file excel buat latihan berikut link nya :
Delta Learning Rule - Excel
Sekian dulu ya guy's, saya sudah ngantuk, lelah, mumet .......pokoke ma tidur .........
Semoga bisa membantu pembaca semua.
Terima kasih.
(sumber : dari Guru saya : Prof. DR.Ir. Kuswara Setiawan. MT. - Paradigma Sistem Cerdas)
10 November 2017
Lingkaran - drawOval - fillOval
Assalamu'alaikum
Sedangkan untuk oval atau elips, jari-jari rx tidak sama dengan jari-jari ry, sehingga dapat diilustrasikan seperti pad gambar 2.
Penjelasan di atas dapat diilustrasikan seperti pada gambar 4.
Untuk menunjukkan bagaimana perintah programnya, bisa dilihat sebagai berikut :
package penggunaanawt;
import java.awt.Graphics;
import java.awt.Color;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class Drawoval extends JPanel {
public void paint(Graphics g) {
{ g.setColor(Color.blue);
g.drawOval(100, 100, 50, 150);
}
}
public static void main(String[] args) {
JFrame frame = new JFrame();
frame.getContentPane().add(new Drawoval());
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(500,500);
frame.setVisible(true);
}}
Dari listing program di atas, dapat dijelaskan bahwa perintah g.drawOval(100, 100, 50, 150); menunjukkan bahwa oval akan dimulai pada pojok kiri atas (100,100) dengan diameter searah sumbu x = 50 dan diameter searah sumbu y = 150.
Guys, kali ini saya akan melanjutkan tentang grafik dasar. Akan dibahas tentang drawOval.
g.drawOval(x, y, dx, dy);
Lingkaran adalah sebuah gambar dengan titik pusat pada lokasi tertentu dan titik lainnya yang mengelilingi lingkaran dengan jarak yang sama dari titik pusat (jari-jari). Kalau dibuat dalam bentuk gambar dapat diilustrasikan pada gambar 1.
Sedangkan untuk oval atau elips, jari-jari rx tidak sama dengan jari-jari ry, sehingga dapat diilustrasikan seperti pad gambar 2.
![]() |
| Gambar 2. Oval atau Elips |
Pada komputer grafik dengan java, maka sebagai acuannya adalah bukan titik pusat, akan tetapi titik pojok kanan atas dari kotak lingkarannya. Sebagai ilustrasi dapat dilihat pada gambar 3.
![]() |
| Gambar 3. Oval dan acuan membuatnya |
Pada gambar 3. terlihat bahwa pojok kiri atas (lingkaran kuning) menjadi titik sentral untuk membuat oval. Dimana harus dimasukkan titik koordinat pada perintah g.drawOval(x, y, dx, dy);
Lalu apa arti dari dx, dy ?
dx adalah panjang garis searah sumbu x (diukur dari titik terjauh pada keliling oval sudut 0 derajat s/d sudut 180) atau disebut sebagai diameter sumbu x.
dy adalah panjang garis searah sumbu y (diukur dari titik terjauh pada keliling oval sudut 90 derajat s/d sudut 270) atau disebut sebagai diameter sumbu y.
Penjelasan di atas dapat diilustrasikan seperti pada gambar 4.
![]() |
| Gambar 4. dx dan dy |
Untuk menunjukkan bagaimana perintah programnya, bisa dilihat sebagai berikut :
package penggunaanawt;
import java.awt.Graphics;
import java.awt.Color;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class Drawoval extends JPanel {
public void paint(Graphics g) {
{ g.setColor(Color.blue);
g.drawOval(100, 100, 50, 150);
}
}
public static void main(String[] args) {
JFrame frame = new JFrame();
frame.getContentPane().add(new Drawoval());
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(500,500);
frame.setVisible(true);
}}
![]() |
| Gambar 6. Output running program dr listing di atas |
Gambar hasil running programnya pasti akan oval lonjong ke arah bawah, karena diameter searah sumbu y lebih panjang daripada diameter searah sumbu x.
Hasilnya dapat dilihat pada gambar 6.
Jadi tingkat kelonjongannya ke arah mana itu sangat bergantung dengan dx dan dy. Kalau nilai dx lebih besar daripada dy, maka oval akan lonjong ke kanan (mendatar), tetapi kalu dy lebih panjang dari pada dx nya, maka oval akan memanjang ke bawah.
Perintah terakhir kali ini adalah
g.fillOval(x, y, dx, dy);
Dimana perintah tersebut akan membentuk oval atau elips dengan arsiran didalamnya (bukan hanya frame atau rangka saja).
Sedangkan aturan yang dipakai sama persis dengan aturan pada g.drawOval(x, y, dx, dy); cuma berbeda efeknya. sebagai ilustrasi dapat dilihat pada gambar 7 perbedaan dari kedua perintah tersebut.
![]() |
| Gambar 7. Perbedaan drawOval dan fillOval |
Pada gambar 7 tersebut terlihat perbedaan pada arsirannya, pada perintah g.drawOval(100,100,150,50); diperoleh oval yang di bagian atas dengan tidak ada arsirannya, sedangkan perintah g.fillOval(100,160,150,50); diperoleh oval yang dibagian bawah (warna hijau),dimana terdapat arsirannya penuh warna hijau.
Sehingga dengan perintah itu semua saudara bisa membuat gambar muka dengan raut muka yang berbeda-beda ekspresinya. Misalnya coba buatlah program untuk tampilan seperti pada gambar 8.
![]() |
| Gambar 8. Untuk latihan |
Sekian ya....udah capek, udah lapar, udah ngantuk....udah....udah..... ya udahlah.....
Wassalamu'alaikum.
drawLine dan drawPolyline (Garis)
Assalamu'alaikum
Halo guys, kali ini masih berkisar tentang garis, tetapi untuk perintah :
Contoh listing program untuk membuat sebuah garis adalah sebagai berikut :
package penggunaanawt;
import java.awt.Color;
import java.awt.Graphics;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class Garis extends JPanel {
public void paint(Graphics g) {
g.setColor(Color.blue);
g.drawLine(50,50, 150, 50); // (x1,y1,x2,y2)
}
public static void main(String[] args) {
JFrame frame = new JFrame();
frame.getContentPane().add(new Garis());
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(500,400);
frame.setVisible(true);
}}
Dari listing program di atas, dapat ditampilkan hasil eksekusinya pada gambar 1.
Halo guys, kali ini masih berkisar tentang garis, tetapi untuk perintah :
- g.drawLine(x1,y1,x2,y2);
- g.drawPolyline(xs, ys, JumlahTitik);
Ok, mari kita mulai dari yang pertama :
1. g.drawLine(x1,y1,x2,y2);
Adalah perintah untuk membuat sebuah garis yang dimulai dari titik awal sampai dengan titik akhir.
Pada perintah g.drawLine(x1,y1,x2,y2); dapat dijelaskan bahwa ini adalah perintah asli untuk membuat garis. Koordinat (x1,y1) adalah titik awal garis dan (x2,y2) adalah titik akhir garis.
Contoh listing program untuk membuat sebuah garis adalah sebagai berikut :
package penggunaanawt;
import java.awt.Color;
import java.awt.Graphics;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class Garis extends JPanel {
public void paint(Graphics g) {
g.setColor(Color.blue);
g.drawLine(50,50, 150, 50); // (x1,y1,x2,y2)
}
public static void main(String[] args) {
JFrame frame = new JFrame();
frame.getContentPane().add(new Garis());
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(500,400);
frame.setVisible(true);
}}
Dari listing program di atas, dapat ditampilkan hasil eksekusinya pada gambar 1.
![]() |
| Gambar 1. Tampilan Hasil Program (garis warna biru) |
Sehingga arah garis dan panjang garis bisa dirubah dengan merubah koordinat-koordinat tersebut. Misalnya, bila sebuah garis akan dibuat dimulai dari titik (10,10) dan panjang garis tersebut adalah 200 ke arah bawah, maka dapat dijelaskan sebagai berikut :
- Arah garis ke bawah, berarti sumbu x tidak berubah (tetap, tidak bergerak kekanan ataupun ke kiri atau disebut tidak ada perubahan atau delta x=0. dimana delta x tersebut diperoleh dengan cara mengurangi nilai x2 dengan nilai x1), sedangkan sumbu y berubah sepanjang 200 (delta y=200). Karena delta =200, maka y2=y1+delta y
- Bahwa garis tersebut arahnya lurus ke bawah dengan panjang garis=200 (delta y)
Setelah itu, saudara-saudara bisa mencoba membuat gambar dengan menggunakan perintah tersebut, misalnya membuat gambar 2.
![]() |
| Gambar 2. Untuk latihan |
2. g.drawPolyline(xs, ys, JumlahTitik);
Adalah perintah membuat beberapa garis terus menerus bersambungan. Format perintahnya adalah sebagai berikut :
g.drawPolyline(xs, ys, JumlahTitik);
dimana :
(xs, ys) adalah koordinat titik-titik yang akan dirangkai garisnya.
JumlahTitik adalah banyaknya titik yang akan dibuat garisnya. Sebuah garis mempunyai 2 ujung, dimana ujung-ujung tersebut merupakan titik-titik yang disebutkan pada koordinat (xs, ys).
Nilai-nilai (xs, ys) diperoleh dari data tabel matrik titik yang harus dituliskan pada bagian sebelum perintah ini dituliskan.
Contoh listing program untuk perintah ini adalah sebagai berikut :
package penggunaanawt;
import java.awt.Graphics;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class PolyLine extends JPanel {
public void paint(Graphics g) {
int[] xs = {25, 75, 125, 85, 125, 75, 25, 65, 25};
int[] ys = {50, 90, 50, 100, 150, 110, 150, 100, 50};
g.drawPolyline(xs, ys, 9);
}
public static void main(String[] args) {
JFrame frame = new JFrame();
frame.getContentPane().add(new PolyLine());
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(200,200);
frame.setVisible(true);
}
}
Hasil keluaran dari listing tersebut dapat dilihat pada gambar 3.
![]() |
| Gambar 3. Keluaran dari listing program di atas |
Gambar 2, diperoleh dengan cara mengeksekusi listing program berikut :
int[] xs = {25, 75, 125, 85, 125, 75, 25, 65, 25};
int[] ys = {50, 90, 50, 100, 150, 110, 150, 100, 50};
g.drawPolyline(xs, ys, 9);
Terlihat ada 9 pasang koordinat, dimana 2 koordinat (awal dan akhir) mempunyai nilai yang sama (untuk garis yang tertutup).
Untuk latihan juga saudara bisa menggunakan gambar 2 sebagai acuan.
Subscribe to:
Posts (Atom)


























