MODUL PRAKTIKUM JARINGAN SYARAF TIRUAN...Modul 7 : Jaringan Kompetitif/ Kohonen 28 Modul 8 :...

45
MODUL PRAKTIKUM JARINGAN SYARAF TIRUAN Dosen Pengampu : Nurul Khairina, S.Kom, M.Kom PROGRAM STUDI S1 TEKNIK INFORMATIKA FAKULTAS TEKNIK UNIVERSITAS MEDAN AREA 2019

Transcript of MODUL PRAKTIKUM JARINGAN SYARAF TIRUAN...Modul 7 : Jaringan Kompetitif/ Kohonen 28 Modul 8 :...

Page 1: MODUL PRAKTIKUM JARINGAN SYARAF TIRUAN...Modul 7 : Jaringan Kompetitif/ Kohonen 28 Modul 8 : Jaringan Self Organizing Feature Map (SOFM) 31 Modul 9 : Jaringan Hopfield 34 Modul 10

MODUL PRAKTIKUM

JARINGAN SYARAF TIRUAN

Dosen Pengampu :

Nurul Khairina, S.Kom, M.Kom

PROGRAM STUDI S1 TEKNIK INFORMATIKA

FAKULTAS TEKNIK

UNIVERSITAS MEDAN AREA

2019

Page 2: MODUL PRAKTIKUM JARINGAN SYARAF TIRUAN...Modul 7 : Jaringan Kompetitif/ Kohonen 28 Modul 8 : Jaringan Self Organizing Feature Map (SOFM) 31 Modul 9 : Jaringan Hopfield 34 Modul 10

1

KATA PENGANTAR

Alhamdulillah, segala puji bagi Allah SWT. Atas rahmat dan karunianya, Modul

Praktikum Jaringan Syaraf Tiruan ini dapat diselesaikan dengan baik. Modul ini terdiri

dari 10 pertemuan yaitu : pengenalan Matlab dengan matriks, vektor, skalar, program

Matlab dengan M-File, jaringan Hebb, Perceptron, Adaline, Backpropagation, jaringan

Kompetitif/ Kohonen, Self Organizing Feature Map (SOFM), Hopfield, dan Jarngan

Learning Vector Quantization (LVQ). Modul ini diharapkan dapat membantu mahasiswa

dalam memahami praktikum Jaringan Syaraf Tiruan yang akan dibangun dengan Matlab

2018b. Kritik dan saran yang membangun akan sangat diharapkan untuk perkembangan

modul praktikum ini.

Medan, 9 Oktober 2019

Nurul Khairina, S.Kom, M.Kom

Page 3: MODUL PRAKTIKUM JARINGAN SYARAF TIRUAN...Modul 7 : Jaringan Kompetitif/ Kohonen 28 Modul 8 : Jaringan Self Organizing Feature Map (SOFM) 31 Modul 9 : Jaringan Hopfield 34 Modul 10

2

DAFTAR ISI

Kata Pengantar 1

Daftar Isi 2

Modul 1 : Pengenalan Matlab dengan Matriks, Vektor, Skalar 3

Modul 2 : Program Matlab dengan M-File 10

Modul 3 : Jaringan Hebb 16

Modul 4 : Jaringan Perceptron 19

Modul 5 : Jaringan Adaline 23

Modul 6 : Jaringan Backpropagation 25

Modul 7 : Jaringan Kompetitif/ Kohonen 28

Modul 8 : Jaringan Self Organizing Feature Map (SOFM) 31

Modul 9 : Jaringan Hopfield 34

Modul 10 : Jaringan Learning Vector Quantization (LVQ) 40

Daftar Pustaka 42

Lampiran : Format Laporan Praktikum 43

Page 4: MODUL PRAKTIKUM JARINGAN SYARAF TIRUAN...Modul 7 : Jaringan Kompetitif/ Kohonen 28 Modul 8 : Jaringan Self Organizing Feature Map (SOFM) 31 Modul 9 : Jaringan Hopfield 34 Modul 10

3

MODUL 1

Pengenalan MATLAB dengan Matriks, Vektor, dan Skalar

Tujuan :

Mahasiswa diharapkan dapat mengenal Matlab melalui perintah-perintah sederhana

tentang matriks, vektor, dan skalar.

1. Tampilan Jendela Awal Matlab 2018b :

Berikut ini tampilan awal lembar kerja Matlab. Untuk menggunakan Matlab, seluruh

perintah dapat diketik di Command Window. Beberapa perintah yang ada di Matlab :

a. Enter : untuk melihat perintah yang kita inputkan

b. clc : untuk menghapus layar

c. Panah bawah : untuk melihat history perintah yang sudah pernah diketikkan

2. Matriks :

Matriks merupakan elemen dasar dalam Matlab, terdapat dua jenis matriks, yaitu

matriks yang dapat dibentuk sendiri dengan perintah-perintah yang ada di matlab, dan

juga matriks yang secara otomatis sudah dibentuk oleh matlab.

a. Matriks Umum :

Untuk membuat matriks umum yang kita inputkan sendiri, perintah bisa langsung

diketikkan di command window :

Page 5: MODUL PRAKTIKUM JARINGAN SYARAF TIRUAN...Modul 7 : Jaringan Kompetitif/ Kohonen 28 Modul 8 : Jaringan Self Organizing Feature Map (SOFM) 31 Modul 9 : Jaringan Hopfield 34 Modul 10

4

Perintah :

Hasil :

b. Matriks Kusus :

Untuk membuat matriks kusus, kita bisa menggunakan perintah-perintah kusus yang

ada pada Matlab.

1) Matriks Diagonal :

Perintah :

Hasil :

2) Matriks Identitas :

Perintah :

Hasil :

Page 6: MODUL PRAKTIKUM JARINGAN SYARAF TIRUAN...Modul 7 : Jaringan Kompetitif/ Kohonen 28 Modul 8 : Jaringan Self Organizing Feature Map (SOFM) 31 Modul 9 : Jaringan Hopfield 34 Modul 10

5

3) Matriks Random :

Perintah :

Hasil :

4) Matriks Nol :

Perintah :

Hasil :

5) Matriks Satuan :

Perintah :

Hasil :

3. Vektor :

Vektor merupakan bentuk matriks yang hanya terdiri dari sebuah kolom (vektor

kolom) atau sebuah baris (vektor baris).

Page 7: MODUL PRAKTIKUM JARINGAN SYARAF TIRUAN...Modul 7 : Jaringan Kompetitif/ Kohonen 28 Modul 8 : Jaringan Self Organizing Feature Map (SOFM) 31 Modul 9 : Jaringan Hopfield 34 Modul 10

6

Contoh 1 :

Perintah :

Hasil :

Contoh 2 :

Perintah :

Hasil :

4. Operasi Skalar :

Terdapat beberapa perintah Matlab dalam operasi skalar, antara lain :

Operator Keterangan

+ Penjumlahan skalar

- Pengurangan skalar

* Perkalian skalar

/ Pembagian skalar

^ Pangkat

mod (m,n) Modulo antara m dan n

fix (n) Pembulatan terdekat n ke arah 0

floor (n) Pembulatan terdekat ke arah - ∞

ceil (n) Pembulatan terdekat ke arah + ∞

round (n) Pembulatan n ke bilangan terdekat

Page 8: MODUL PRAKTIKUM JARINGAN SYARAF TIRUAN...Modul 7 : Jaringan Kompetitif/ Kohonen 28 Modul 8 : Jaringan Self Organizing Feature Map (SOFM) 31 Modul 9 : Jaringan Hopfield 34 Modul 10

7

Contoh :

Perintah membentuk matriks A :

Hasil :

Perintah membentuk matriks C :

Hasil :

Perintah A + C :

Hasil :

Perintah A - C :

Hasil :

Perintah A * C :

Page 9: MODUL PRAKTIKUM JARINGAN SYARAF TIRUAN...Modul 7 : Jaringan Kompetitif/ Kohonen 28 Modul 8 : Jaringan Self Organizing Feature Map (SOFM) 31 Modul 9 : Jaringan Hopfield 34 Modul 10

8

Perintah Mod :

Hasil :

5. Manipulasi Matriks :

Manipulasi matriks terdiri dari dua perintah, yaitu transpose matriks dan mencari

invers matriks.

a. Transpose Matriks

Perintah :

Hasil :

Perintah Transpose Matriks :

Hasil :

b. Ordo Matriks :

Perintah :

Hasil :

Page 10: MODUL PRAKTIKUM JARINGAN SYARAF TIRUAN...Modul 7 : Jaringan Kompetitif/ Kohonen 28 Modul 8 : Jaringan Self Organizing Feature Map (SOFM) 31 Modul 9 : Jaringan Hopfield 34 Modul 10

9

c. Invers Matriks

Perintah :

Hasil :

Tugas :

Terdapat matriks X dan Y sebagai berikut :

𝑋 = [−1 23 0

] 𝑌 = [2 −25 7

]

Hitung :

a. X + Y

b. X - 2Y

c. X T

d. 2X + Y -1

Page 11: MODUL PRAKTIKUM JARINGAN SYARAF TIRUAN...Modul 7 : Jaringan Kompetitif/ Kohonen 28 Modul 8 : Jaringan Self Organizing Feature Map (SOFM) 31 Modul 9 : Jaringan Hopfield 34 Modul 10

10

MODUL 2

Program MATLAB dengan M-FILE

Tujuan :

Mahasiswa diharapkan dapat membuat program sederhana dengan M-File pada Matlab.

1. M – File / Script :

M – File merupakan jendela kusus untuk menuliskan script program yang dapat

dijalankan di command window matlab. M-File dapat dibuka melalui menu New – Script,

seperti pada gambar dibawah ini :

Contoh 1 :

Perintah :

function cekmatriks clc a = input ('masukkan matriks A = '); b = input ('masukkan matriks B = ');

if isequal(a,b) disp('kedua matriks sama')

else disp('kedua matriks tidak sama') end

Page 12: MODUL PRAKTIKUM JARINGAN SYARAF TIRUAN...Modul 7 : Jaringan Kompetitif/ Kohonen 28 Modul 8 : Jaringan Self Organizing Feature Map (SOFM) 31 Modul 9 : Jaringan Hopfield 34 Modul 10

11

Hasil :

Contoh 2 :

Perintah :

function pangkatmatriks clc a = input('masukkan matriks A = '); k = input('masukkan pangkat matriks = ');

[m,n] = size(a);

if m == n

ak = a^k; disp('ak = ')

disp(ak) else disp('matriks bukan bujur sangkar') end

Hasil :

2. Statement Perulangan :

a. Perulangan For :

Perintah :

function pangkatmatriksfor clc a = input('masukkan matriks A = '); k = input('masukkan pangkat matriks = '); [m,n] = size(a);

Page 13: MODUL PRAKTIKUM JARINGAN SYARAF TIRUAN...Modul 7 : Jaringan Kompetitif/ Kohonen 28 Modul 8 : Jaringan Self Organizing Feature Map (SOFM) 31 Modul 9 : Jaringan Hopfield 34 Modul 10

12

if m == n for i = 1:k ak = a^i; fprintf('a^%d = \n',i) disp(ak) end

else disp('matriks bukan bujur sangkat'); end

Hasil :

b. Perulangan While :

Perintah :

function suku clc n = input('masukkan jumlah suku : '); i = 1; sum = 0;

while i <= n sum = sum + 1/i; i = i + 1; end

disp('Total : ') disp(sum)

Hasil :

Page 14: MODUL PRAKTIKUM JARINGAN SYARAF TIRUAN...Modul 7 : Jaringan Kompetitif/ Kohonen 28 Modul 8 : Jaringan Self Organizing Feature Map (SOFM) 31 Modul 9 : Jaringan Hopfield 34 Modul 10

13

3. Grafik

Selain untuk pemrograman yang telah dipaparkan sebelumnya, MATLAB juga

memiliki beberapa perintah untuk membangun grafik.

a. Grafik dengan Command Window :

Lakukan uji coba membangun grafik trigonometri sinus dengan mengetikkan

perintah dibawah ini pada command window Matlab.

Contoh 1 :

Perintah :

>> x = [ 0 : 0.1 : 10 ];

>> y = sin(x);

>> plot(x,y)

Hasil :

Contoh 2 :

Perintah :

>> x = [ 0 : 0.1 : 10 ];

>> y = sin(x);

>> plot(x,y), xlabel (‘x’), ylabel(‘cos(x)’);

Hasil :

Page 15: MODUL PRAKTIKUM JARINGAN SYARAF TIRUAN...Modul 7 : Jaringan Kompetitif/ Kohonen 28 Modul 8 : Jaringan Self Organizing Feature Map (SOFM) 31 Modul 9 : Jaringan Hopfield 34 Modul 10

14

b. Grafik dengan M-File :

Lakukan ujicoba membangun grafik dengan mengetikkan perintah dibawah ini pada

M-File/Script Matlab.

Perintah :

function grafik x = -5:0.02:5; p1 = [ 1 2 -5]; p2 = [ 1 0 0]; y1 = polyval (p1,x); y2 = polyval (p2,x); figure(1) subplot(1,1,1) plot(x, y1, x, y2);

Hasil :

Page 16: MODUL PRAKTIKUM JARINGAN SYARAF TIRUAN...Modul 7 : Jaringan Kompetitif/ Kohonen 28 Modul 8 : Jaringan Self Organizing Feature Map (SOFM) 31 Modul 9 : Jaringan Hopfield 34 Modul 10

15

Tugas :

1. Buatlah program dibawah ini dengan M-File / Script :

a. Volume Lingkaran

b. Volume Tabung

2. Buatlah fungsi pada M-File/ Script dengan menggunakan perulangan for atau while

untuk menampilkan bilangan prima antara 1 sampai dengan 1000.

3. Buatlah grafik fungsi ini dengan Command Window :

a. y = x3

b. Cosinus untuk sudut trigonometri dari 0º - 360º

Page 17: MODUL PRAKTIKUM JARINGAN SYARAF TIRUAN...Modul 7 : Jaringan Kompetitif/ Kohonen 28 Modul 8 : Jaringan Self Organizing Feature Map (SOFM) 31 Modul 9 : Jaringan Hopfield 34 Modul 10

16

MODUL 3

Jaringan Hebb

Tujuan :

Mahasiswa diharapkan dapat membuat program jaringan Hebb pada Matlab.

1. Memberikan Input pada Jaringan :

Jaringan menerima input dan target berupa matriks, input dan target dapat

berbentuk biner maupun bipolar. Pada Matlab, perintah memberikan input, target, bobot

awal dan bias awal dapat dilakukan dengan perintah :

x = [1 -1 1 -1 ; 1 1 -1 -1]; %input

t = [1 -1 -1 -1]; %target

w = [0 0]; %bobot

b = 0; %bias

2. Melakukan perhitungan bobot dan bias :

Pada proses pelatihan jaringan Hebb, input akan diproses sehingga dapat

menghasilkan output yang akan sama dengan target. Perubahan bobot dan bias pada

jaringan Hebb dapat dilakukan dengan perintah :

w(j) = w(j) + t(i) * x(j,i); %proses perubahan bobot

b = b + t(i); %proses perubahan bias

3. Program Jaringan Hebb dengan M-File / Script :

Lakukan uji coba program jaringan Hebb berikut ini yang dapat diketikkan pada M-

File/Script :

Perintah :

function Hebb

clc

x = [1 -1 1 -1 ; 1 1 -1 -1]; %input

t = [1 -1 -1 -1]; %target fungsi logika AND

w = [0 0]; %bobot

b = 0; %bias

for i = 1 : 4

for j = 1 : 2

w(j) = w(j) + t(i) * x(j,i); %proses perubahan bobot

end

b = b + t(i);

end

Page 18: MODUL PRAKTIKUM JARINGAN SYARAF TIRUAN...Modul 7 : Jaringan Kompetitif/ Kohonen 28 Modul 8 : Jaringan Self Organizing Feature Map (SOFM) 31 Modul 9 : Jaringan Hopfield 34 Modul 10

17

disp('Bobot Baru :');

disp(w);

disp('Bias Baru : ');

disp(b);

plot(x(1,1), x(2,1), 'or', 'MarkerSize',20,'MarkerFaceColor',

[0 0 1]);hold on;

plot(x(1,2), x(2,2), 'or', 'MarkerSize',20,'MarkerFaceColor',

[1 0 0]);hold on;

plot(x(1,3), x(2,3), 'or', 'MarkerSize',20,'MarkerFaceColor',

[1 0 0]);hold on;

plot(x(1,4), x(2,4), 'or', 'MarkerSize',20,'MarkerFaceColor',

[1 0 0]);hold on;

m = -(w(1)/ w(2));

c = -b/w(2);

x1 = linspace(-2,2,100);

x2 = m*x1 + c;

plot(x2, x1, 'r');

axis([-2 2 -2 2]);

Hasil :

Bobot dan Bias Baru :

Visualisasi hasil pelatihan dengan grafik :

Page 19: MODUL PRAKTIKUM JARINGAN SYARAF TIRUAN...Modul 7 : Jaringan Kompetitif/ Kohonen 28 Modul 8 : Jaringan Self Organizing Feature Map (SOFM) 31 Modul 9 : Jaringan Hopfield 34 Modul 10

18

Tugas :

Lakukan pelatihan pengenalan pola dengan jaringan Hebb, dimana :

a. input x1 dan x2 biner dan target bipolar untuk fungsi logika OR

b. input x1 dan x2 bipolar dan target biner untuk fungsi logika XOR

c. input x1 dan x2 biner dan target bipolar untuk fungsi logika NAND

Dari hasil pelatihan, tuliskan bobot baru, bias baru beserta visualisasi hasil pelatihannya

dalam grafik.

Page 20: MODUL PRAKTIKUM JARINGAN SYARAF TIRUAN...Modul 7 : Jaringan Kompetitif/ Kohonen 28 Modul 8 : Jaringan Self Organizing Feature Map (SOFM) 31 Modul 9 : Jaringan Hopfield 34 Modul 10

19

MODUL 4

Jaringan Perceptron

Tujuan :

Mahasiswa diharapkan dapat membuat program jaringan Perceptron pada Matlab.

1. Membentuk Jaringan Perceptron :

Jaringan Perceptron baru, dapat dibentuk dari perintah :

net = newp([0 1 ; 0 1], 1);

2. Melakukan Pengaturan Bobot dan Bias :

Dalam pelatihan jaringan perceptron, pengaturan bobot dan bias dapat dilakukan

dengan perintah :

net.IW{1, 1} = bobot;

net.b{1} = bias;

3. Menghitung F(net)/ Output Jaringan :

Pada akhir pelatihan, terdapat f(net) yang dapat menentukan output dari pelatihan,

f(net) dapat dilakukan dengan perintah :

a = sim(net, p);

4. Program Jaringan Perceptron dengan M-File/Script :

Lakukan uji coba membangun jaringan perceptron dengan mengetikkan perintah

berikut pada M-File/Script Matlab :

Perintah :

function perceptron

p1 = [1 ; 1]; %input p2 = [1 ; 0]; p3 = [0 ; 1]; p4 = [0 ; 0]; t1 = 1; %target t2 = 0; t3 = 0; t4 = 0;

p = [p1 p2 p3 p4]; t = [t1 t2 t3 t4];

Page 21: MODUL PRAKTIKUM JARINGAN SYARAF TIRUAN...Modul 7 : Jaringan Kompetitif/ Kohonen 28 Modul 8 : Jaringan Self Organizing Feature Map (SOFM) 31 Modul 9 : Jaringan Hopfield 34 Modul 10

20

net = newp([0 1 ; 0 1], 1); %pembentukan jaringan perceptron bobot = [-1 1]; net.IW{1, 1} = bobot; bias = [1]; net.b{1} = bias;

a = sim(net, p); %menghitung f(net)

disp(‘f(net) :');

disp(a);

Hasil :

Dari hasil pelatihan ini, dapat dilihat bahwa f(net) belum sama dengan target,

sehingga dilakukan perubahan bobot pada tahap selanjutnya.

5. Mengubah Bobot Pola P1 pada Perceptron :

Pada perceptron, setelah melakukan perhitungan f(net), maka dilakukanlah perubahan

bobot pada setiap pola yang ada, berikut ini perintah yang dapat diketikkan :

Perintah :

function perceptronubahbobot %mengubah bobot pola p1 p1 = [1 ; 1]; %input p2 = [1 ; 0]; p3 = [0 ; 1]; p4 = [0 ; 0]; t1 = 1; %target t2 = 0; t3 = 0; t4 = 0;

p = [p1 p2 p3 p4]; t = [t1 t2 t3 t4];

net = newp([0 1 ; 0 1], 1); %pembentukan jaringan perceptron bobot = [-1 1]; net.IW{1, 1} = bobot; bias = [1]; net.b{1} = bias;

%a = sim(net, p); %menghitung f(net) %disp(a);

Page 22: MODUL PRAKTIKUM JARINGAN SYARAF TIRUAN...Modul 7 : Jaringan Kompetitif/ Kohonen 28 Modul 8 : Jaringan Self Organizing Feature Map (SOFM) 31 Modul 9 : Jaringan Hopfield 34 Modul 10

21

%proses ubah bobot pola p1 disp('pola p1 : ') a1 = sim(net,p1) e1 = t1 - a1 dW = learnp(bobot, p1, [], [], [], [], e1, [], [], [], [],

[]) bobot = bobot + dW

Hasil :

6. Pelatihan Jaringan Perceptron :

Melakukan perubahan bobot dan mencari bobot optimal, dapat digunakan perintah

sim dan learnp. Namun untuk mempermudah proses pelatihan perceptron, Matlabh

menyediakan perintah kusus, yaitu :

net = train (net, p, t)

Perintah :

function trainperceptron

net = newp([0 1 ; 0 1], 1); %pembentukan jaringan perceptron net.IW{1, 1} = [-1 1]; net.b{1} = 1;

p = [[1 ; 1] [1 ; 0] [0 ; 1] [0 ; 0]]; t = [1 1 1 0]; net = train(net, p, t);

Page 23: MODUL PRAKTIKUM JARINGAN SYARAF TIRUAN...Modul 7 : Jaringan Kompetitif/ Kohonen 28 Modul 8 : Jaringan Self Organizing Feature Map (SOFM) 31 Modul 9 : Jaringan Hopfield 34 Modul 10

22

Hasil :

Tugas :

Dari program latihan No. 5 : “Mengubah Bobot Pola P1 pada Perceptron”, buatlah

program mengubah bobot untuk pola P2, P3, dan P4, serta tampilkan hasil perubahan

bobot yang diperoleh.

Page 24: MODUL PRAKTIKUM JARINGAN SYARAF TIRUAN...Modul 7 : Jaringan Kompetitif/ Kohonen 28 Modul 8 : Jaringan Self Organizing Feature Map (SOFM) 31 Modul 9 : Jaringan Hopfield 34 Modul 10

23

MODUL 5

Jaringan Adaline

Tujuan :

Mahasiswa diharapkan dapat membuat program jaringan Adaline pada Matlab.

1. Membentuk Jaringan Adaline :

Jaringan Adaline baru, dapat dibentuk dari perintah :

net = newlin([0 10 ; 0 10], 1)

net.IW(1,1) = [2 3]

net.b [1] = [-4]

2. Program Jaringan Adaline dengan M-File/Script :

Program :

function adaline

%pembentukan jaringan adeline

net = newlin([-1 1 ; -1 1], 1);

%input logika AND p = [[1 ; 1] [1 ; -1] [-1 ; 1] [-1 ; -1]]; t = [1 -1 -1 -

1]; net.IW{1, 1} = [2 3]; net.b{1} = -4; a = sim(net,p) net = train(net,p,t) %training disp(net.iw{1,1}) %perubahan bobot disp(net.b{1}) %perubahan bias a2 = sim(net,p) %ouput jaringan error = t - sim(net,p)

Hasil :

Bobot hasil iterasi :

Page 25: MODUL PRAKTIKUM JARINGAN SYARAF TIRUAN...Modul 7 : Jaringan Kompetitif/ Kohonen 28 Modul 8 : Jaringan Self Organizing Feature Map (SOFM) 31 Modul 9 : Jaringan Hopfield 34 Modul 10

24

Hasil pelatihan :

Output jaringan dan error :

Tugas :

1. Buatlah program Adaline untuk mengenali fungsi logika OR, tampilkan hasil

modifikasi bobot, hasil pelatihan, output jaringan dan error.

2. Buatlah program Adaline untuk mengenali fungsi logika XOR, tampilkan hasil

modifikasi bobot, hasil pelatihan, output jaringan dan error.

Page 26: MODUL PRAKTIKUM JARINGAN SYARAF TIRUAN...Modul 7 : Jaringan Kompetitif/ Kohonen 28 Modul 8 : Jaringan Self Organizing Feature Map (SOFM) 31 Modul 9 : Jaringan Hopfield 34 Modul 10

25

MODUL 6

Jaringan Backpropagation

Tujuan :

Mahasiswa diharapkan dapat membuat program jaringan Backpropagation pada Matlab.

1. Membentuk Jaringan Backpropagation :

Jaringan Backpropagation dapat dibentuk dari perintah :

Net = newff(PR, [S1 S2…N], {TF1 TF2…TFN}, BTF, BLF, PF)

2. Program Backpropagation dengan M-File/Script :

Program :

function backpropagation

p = [0.5; 1.3];

net = newff([-1 2; -1 2],[4,3,1]); %layer 2-4-3-1

%bobot unit masukan

net.IW{1,1} = [-1.3 0.7 ; 0.5 0 ; 1.3 -0.4; -0.1 1.2];

%bobot bias unit masukan

net.b{1} = [0.3 ; -0.1 ; -0.9 ; 0.5];

%bobot hidden layer 1

net.LW{2,1} = [0.4 0.3 -1 -0.3 ; 0.6 0 -0.6 -1.2 ; 0.4 -

0.3 0.2 0.9];

%bobot bias hidden layer 1

net.b{2} = [0.5 ; -1.3 ; -0.3];

%bobot hidden layer 2

net.LW{3,2} = [0.4 0.9 -0.1];

%bobot bias hidden layer 2

net.b{3} = [-1];

y = sim(net,p)

Hasil :

Page 27: MODUL PRAKTIKUM JARINGAN SYARAF TIRUAN...Modul 7 : Jaringan Kompetitif/ Kohonen 28 Modul 8 : Jaringan Self Organizing Feature Map (SOFM) 31 Modul 9 : Jaringan Hopfield 34 Modul 10

26

3. Program Backpropagation dengan Metode Penurunan Tercepat :

Program :

function trainbackpropagation p = [-1 -1 2 2 ; 0 5 0 5]; t = [-1 -1 1 1]; net = newff(minmax (p), [3,1], {'tansig', 'purelin'},

'traingd');

%backpropagation layer 2-3-1 net.IW{1,1}; net.b{1}; net.LW{2,1}; %bobot hidden layer net.b{2}; net = train(net,p,t);

Hasil :

Tugas :

Buatlah program Backpropagation untuk menghitung keluaran jaringan layer 2-4-3-1

dengan bobot dan bias seperti pada tabel dibawah ini :

Page 28: MODUL PRAKTIKUM JARINGAN SYARAF TIRUAN...Modul 7 : Jaringan Kompetitif/ Kohonen 28 Modul 8 : Jaringan Self Organizing Feature Map (SOFM) 31 Modul 9 : Jaringan Hopfield 34 Modul 10

27

Hidden

Layer 1

Unit

x1 x2 b

z1 -1.1 0.5 0.2

z2 0.4 0 -0.1

z2 1.2 -0.3 -0.7

z2 -0.1 1.1 0.4

Hidden

Layer 2

Dari Hidden Layer 1

z1 z2 z3 z4 b

v1 0.3 0.2 -1 -0.2 0.4

v2 0.5 0 -0.7 -1.2 -1.2

v2 0.3 -0.2 0.3 0.7 -0.2

Output Dari Hidden Layer 2

z1 z2 z3 b

y1 0.3 0.8 -0.2 -1

Page 29: MODUL PRAKTIKUM JARINGAN SYARAF TIRUAN...Modul 7 : Jaringan Kompetitif/ Kohonen 28 Modul 8 : Jaringan Self Organizing Feature Map (SOFM) 31 Modul 9 : Jaringan Hopfield 34 Modul 10

28

MODUL 7

Jaringan Kompetitif/ Kohonen

Tujuan :

Mahasiswa diharapkan dapat membuat program jaringan Jaringan Kompetitif (Kohonen)

pada Matlab.

1. Membentuk Jaringan Kompetitif :

Jaringan Kohonen dapat dibentuk dari perintah :

net = newc(PR, S, KLR, CLR)

2. Program Jaringan Kompetitif dengan Command Window :

Program :

>> p = [0.1985 0.3425 0.0124 0.2132 0.1045 0.2346 0.4241

0.0123 0.0014 0.0009 0.1876 0.4532 0.3241 0.3134;

0.1424 0.0100 0.1948 0.9325 0.6456 0.3456 0.4533

0.1425 0.3290 0.3246 0.0913 0.2452 0.2156 0.3214]

%pengelompokan 14 vektor kedalam 5 kelompok

%membentuk jaringan kompetitif

>> net = newc([0 1 ; 0 1], 5);

>> net.IW{1,1}

>> net.b{1}

>> net = train(net,p);

Hasil :

Page 30: MODUL PRAKTIKUM JARINGAN SYARAF TIRUAN...Modul 7 : Jaringan Kompetitif/ Kohonen 28 Modul 8 : Jaringan Self Organizing Feature Map (SOFM) 31 Modul 9 : Jaringan Hopfield 34 Modul 10

29

3. Program Jaringan Kohonen dengan Command Window :

Program Lanjutan :

>> b = sim(net,p)

>> ac = vec2ind(b)

>> net = init(net);

>> net.trainParam.epochs = 500 %pelatihan kohonen

>> net = train(net,p)

Hasil :

Page 31: MODUL PRAKTIKUM JARINGAN SYARAF TIRUAN...Modul 7 : Jaringan Kompetitif/ Kohonen 28 Modul 8 : Jaringan Self Organizing Feature Map (SOFM) 31 Modul 9 : Jaringan Hopfield 34 Modul 10

30

Tugas :

1. Lakukan pelatihan dengan jaringan kohonen sebanyak 500 epoch untuk membagi 30

vektor menjadi 6 kelompok. Data vektor terdiri dari bilangan positif diantara 0 dan 1.

2. Lakukan pelatihan dengan jaringan kohonen sebanyak 500 epoch untuk membagi 50

vektor menjadi 5 kelompok. Data vektor terdiri dari bilangan positif diantara 0 dan 1.

Page 32: MODUL PRAKTIKUM JARINGAN SYARAF TIRUAN...Modul 7 : Jaringan Kompetitif/ Kohonen 28 Modul 8 : Jaringan Self Organizing Feature Map (SOFM) 31 Modul 9 : Jaringan Hopfield 34 Modul 10

31

MODUL 8

Jaringan Self Organizing Feature Map (SOFM)

Tujuan :

Mahasiswa diharapkan dapat membuat program jaringan Jaringan Self Organizing

Feature Map (SOFM) pada Matlab.

1. Topologi Neuron dengan Command Window :

a. Gridtop

Perintah :

>> pos = gridtop(5,6)

>> plotsom (pos)

b. Hextop

Perintah :

>> pos = hextop(5,6)

>> plotsom (pos)

c. Randtop

Perintah :

>> pos = randtop(5,6)

>> plotsom (pos)

a. Gridtop

b. Hextop

c. Randtop

Page 33: MODUL PRAKTIKUM JARINGAN SYARAF TIRUAN...Modul 7 : Jaringan Kompetitif/ Kohonen 28 Modul 8 : Jaringan Self Organizing Feature Map (SOFM) 31 Modul 9 : Jaringan Hopfield 34 Modul 10

32

2. Jarak Euclidean dengan Command Window :

Program :

>> pos2 = [0 1 2 ; 0 1 2]

>> D2 = dist(pos2)

>> pos = gridtop(2,3)

>> d = boxdist(pos)

Hasil :

3. Jarak Manhattan dengan Command Window :

Program :

>> md = mandist(pos)

Hasil :

4. Membuat Jaringan SOFM dengan M-File/Script :

Program :

function SOFM p = [0.1 0.3 0.2 0.2 0.1 0.2 0.4 1.2 1.4 0.9 0.7 0.3 0.3

0.1; 0.4 0.1 0.8 0.5 0.6 0.5 0.4 0.1 0.3 0.3 0.9 0.2

0.1 0.3]; net = newsom([0 2 ; 0 1], [2 3]); plot(p(1, :), p(2,:),'.g','markersize',20) hold on plotsom(net.iw{1,1}, net.layers{1}.distances) hold off

%melatih jaringan selama 1000 epoch net.trainParam.epochs = 1000; net = train(net,p);

Page 34: MODUL PRAKTIKUM JARINGAN SYARAF TIRUAN...Modul 7 : Jaringan Kompetitif/ Kohonen 28 Modul 8 : Jaringan Self Organizing Feature Map (SOFM) 31 Modul 9 : Jaringan Hopfield 34 Modul 10

33

Hasil :

Tugas :

1. Gambarkan topologi 40 neuron (2 dimensi) dalam 5 baris dan 8 kolom. Gambarkan

dengan 3 topologi jaringan yang berbeda, yaitu gridtop, hextop, dan randtop.

2. Lakukan pelatihan 30 buah vektor dengan jaringan SOFM. Vektor dapat dibentuk

secara acak dengan rentang [0 1] ke dalam jaringan topologi heksagonal. Lakukan

pelatihan dengan 1000 epoch.

Page 35: MODUL PRAKTIKUM JARINGAN SYARAF TIRUAN...Modul 7 : Jaringan Kompetitif/ Kohonen 28 Modul 8 : Jaringan Self Organizing Feature Map (SOFM) 31 Modul 9 : Jaringan Hopfield 34 Modul 10

34

MODUL 9

Jaringan Hopfield

Tujuan :

Mahasiswa diharapkan dapat membuat program jaringan Jaringan Hopfield pada Matlab.

Program Hopfield :

function varargout = hopfieldNetwork(varargin)

% HOPFIELDNETWORK M-file for hopfieldNetwork.fig

% HOPFIELDNETWORK, by itself, creates a new HOPFIELDNETWORK or

raises the existing

% singleton*.

%

% H = HOPFIELDNETWORK returns the handle to a new HOPFIELDNETWORK

or the handle to

% the existing singleton*.

%

% HOPFIELDNETWORK('CALLBACK',hObject,eventData,handles,...) calls

the local

% function named CALLBACK in HOPFIELDNETWORK.M with the given

input arguments.

%

% HOPFIELDNETWORK('Property','Value',...) creates a new

HOPFIELDNETWORK or raises the

% existing singleton*. Starting from the left, property value

pairs are

% applied to the GUI before hopfieldNetwork_OpeningFunction gets

called. An

% unrecognized property name or invalid value makes property

application

% stop. All inputs are passed to hopfieldNetwork_OpeningFcn via

varargin.

%

% *See GUI Options on GUIDE's Tools menu. Choose "GUI allows

only one

% instance to run (singleton)".

%

% See also: GUIDE, GUIDATA, GUIHANDLES

% Copyright 2002-2003 The MathWorks, Inc.

% Edit the above text to modify the response to help hopfieldNetwork

% Last Modified by GUIDE v2.5 21-Jan-2007 15:45:38

% Begin initialization code - DO NOT EDIT

gui_Singleton = 1;

gui_State = struct('gui_Name', mfilename, ...

'gui_Singleton', gui_Singleton, ...

'gui_OpeningFcn', @hopfieldNetwork_OpeningFcn, ...

'gui_OutputFcn', @hopfieldNetwork_OutputFcn, ...

'gui_LayoutFcn', [] , ...

'gui_Callback', []);

Page 36: MODUL PRAKTIKUM JARINGAN SYARAF TIRUAN...Modul 7 : Jaringan Kompetitif/ Kohonen 28 Modul 8 : Jaringan Self Organizing Feature Map (SOFM) 31 Modul 9 : Jaringan Hopfield 34 Modul 10

35

if nargin && ischar(varargin{1})

gui_State.gui_Callback = str2func(varargin{1});

end

if nargout

[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});

else

gui_mainfcn(gui_State, varargin{:});

end

% End initialization code - DO NOT EDIT

% --- Executes just before hopfieldNetwork is made visible.

function hopfieldNetwork_OpeningFcn(hObject, eventdata, handles,

varargin)

% This function has no output args, see OutputFcn.

% hObject handle to figure

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

% varargin command line arguments to hopfieldNetwork (see VARARGIN)

% Choose default command line output for hopfieldNetwork

handles.output = hObject;

N = str2num(get(handles.imageSize,'string'));

handles.W = [];

handles.hPatternsDisplay = [];

% Update handles structure

guidata(hObject, handles);

% UIWAIT makes hopfieldNetwork wait for user response (see UIRESUME)

% uiwait(handles.figure1);

% --- Outputs from this function are returned to the command line.

function varargout = hopfieldNetwork_OutputFcn(hObject, eventdata,

handles)

% varargout cell array for returning output args (see VARARGOUT);

% hObject handle to figure

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

% Get default command line output from handles structure

varargout{1} = handles.output;

% --- Executes on button press in reset.

function reset_Callback(hObject, eventdata, handles)

% cleans all data and enables the change of the number of neurons used

for n=1 : length(handles.hPatternsDisplay)

delete(handles.hPatternsDisplay(n));

end

handles.hPatternsDisplay = [];

set(handles.imageSize,'enable','on');

handles.W = [];

guidata(hObject, handles);

function imageSize_Callback(hObject, eventdata, handles)

Page 37: MODUL PRAKTIKUM JARINGAN SYARAF TIRUAN...Modul 7 : Jaringan Kompetitif/ Kohonen 28 Modul 8 : Jaringan Self Organizing Feature Map (SOFM) 31 Modul 9 : Jaringan Hopfield 34 Modul 10

36

% hObject handle to imageSize (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

num = get(hObject,'string');

n = str2num(num);

if isempty(n)

num = '32';

set(hObject,'string',num);

end

if n > 32

warndlg('It is strongly recomended NOT to work with networks

with more then 32^2 neurons!','!! Warning !!')

end

% --- Executes during object creation, after setting all properties.

function imageSize_CreateFcn(hObject, eventdata, handles)

% hObject handle to imageSize (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles empty - handles not created until after all CreateFcns

called

% Hint: edit controls usually have a white background on Windows.

% See ISPC and COMPUTER.

if ispc

set(hObject,'BackgroundColor','white');

else

set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor')

);

end

% --- Executes on button press in loadIm.

function loadIm_Callback(hObject, eventdata, handles)

[fName dirName] = uigetfile('*.bmp;*.tif;*.jpg;*.tiff');

if fName

set(handles.imageSize,'enable','off');

cd(dirName);

im = imread(fName);

N = str2num(get(handles.imageSize,'string'));

im = fixImage(im,N);

imagesc(im,'Parent',handles.neurons);

colormap('gray');

end

% --- Executes on button press in train.

function train_Callback(hObject, eventdata, handles)

Npattern = length(handles.hPatternsDisplay);

if Npattern > 9

msgbox('more then 10 paterns isn''t supported!','error');

return

end

im = getimage(handles.neurons);

N = get(handles.imageSize,'string');

N = str2num(N);

Page 38: MODUL PRAKTIKUM JARINGAN SYARAF TIRUAN...Modul 7 : Jaringan Kompetitif/ Kohonen 28 Modul 8 : Jaringan Self Organizing Feature Map (SOFM) 31 Modul 9 : Jaringan Hopfield 34 Modul 10

37

W = handles.W; %weights vector

avg = mean(im(:)); %removing the cross talk part

if ~isempty(W)

%W = W +( kron(im,im))/(N^2);

W = W + ( kron(im-avg,im-avg))/(N^2)/avg/(1-avg);

else

% W = kron(im,im)/(N^2);

W = ( kron(im-avg,im-avg))/(N^2)/avg/(1-avg);

end

% Erasing self weight

ind = 1:N^2;

f = find(mod(ind,N+1)==1);

W(ind(f),ind(f)) = 0;

handles.W = W;

% Placing the new pattern in the figure...

xStart = 0.01;

xEnd = 0.99;

height = 0.65;

width = 0.09;

xLength = xEnd-xStart;

xStep = xLength/10;

offset = 4-ceil(Npattern/2);

offset = max(offset,0);

y = 0.1;

if Npattern > 0

for n=1 : Npattern

x = xStart+(n+offset-1)*xStep;

h = handles.hPatternsDisplay(n);

set(h,'units','normalized');

set(h,'position',[x y width height]);

end

x = xStart+(n+offset)*xStep;

h = axes('units','normalized','position',[x y width height]);

handles.hPatternsDisplay(n+1) = h;

imagesc(im,'Parent',h);

else

x = xStart+(offset)*xStep;

h = axes('units','normalized','position',[x y width height]);

handles.hPatternsDisplay = h;

end

imagesc(im,'Parent',h);

set(h,

'YTick',[],'XTick',[],'XTickMode','manual','Parent',handles.learnedPat

erns);

guidata(hObject, handles);

% --- Executes on button press in addNoise.

function addNoise_Callback(hObject, eventdata, handles)

im = getimage(handles.neurons);

% N = get(handles.imageSize,'string');

% N = floor(str2num(N)/2)+1;

noisePercent = get( handles.noiseAmount, 'value' );

N = round( length(im(:))* noisePercent );

N = max(N,1); %minimum change one neuron

Page 39: MODUL PRAKTIKUM JARINGAN SYARAF TIRUAN...Modul 7 : Jaringan Kompetitif/ Kohonen 28 Modul 8 : Jaringan Self Organizing Feature Map (SOFM) 31 Modul 9 : Jaringan Hopfield 34 Modul 10

38

ind = ceil(rand(N,1)*length(im(:)));

% im(ind) = -1*im(ind); %!!!!

im(ind) = ~im(ind);

imagesc(im,'Parent',handles.neurons);

colormap('gray');

% --- Executes on button press in run.

function run_Callback(hObject, eventdata, handles)

im = getimage(handles.neurons);

[rows cols] = size(im);

if rows ~= cols

msgbox('I don''t support non square images','error');

return;

end

N = rows;

W = handles.W;

if isempty(W)

msgbox('No train data - doing nothing!','error');

return;

end

%figure; imagesc(W)

mat = repmat(im,N,N);

mat = mat.*W;

mat = im2col(mat,[N,N],'distinct');

networkResult = sum(mat);

networkResult = reshape(networkResult,N,N);

im = fixImage(networkResult,N);

imagesc(im,'Parent',handles.neurons);

% hObject handle to run (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

function im = fixImage(im,N)

% if isrgb(im)

if length( size(im) ) == 3

im = rgb2gray(im);

end

im = double(im);

m = min(im(:));

M = max(im(:));

im = (im-m)/(M-m); %normelizing the image

im = imresize(im,[N N],'bilinear');

%im = (im > 0.5)*2-1; %changing image values to -1 & 1

im = (im > 0.5); %changing image values to 0 & 1

% --- Executes on slider movement.

function noiseAmount_Callback(hObject, eventdata, handles)

% hObject handle to noiseAmount (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

percent = get(hObject,'value');

percent = round(percent*100);

set(handles.noisePercent,'string',num2str(percent));

Page 40: MODUL PRAKTIKUM JARINGAN SYARAF TIRUAN...Modul 7 : Jaringan Kompetitif/ Kohonen 28 Modul 8 : Jaringan Self Organizing Feature Map (SOFM) 31 Modul 9 : Jaringan Hopfield 34 Modul 10

39

% Hints: get(hObject,'Value') returns position of slider

% get(hObject,'Min') and get(hObject,'Max') to determine range

of slider

% --- Executes during object creation, after setting all properties.

function noiseAmount_CreateFcn(hObject, eventdata, handles)

% hObject handle to noiseAmount (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles empty - handles not created until after all CreateFcns

called

% Hint: slider controls usually have a light gray background, change

% 'usewhitebg' to 0 to use default. See ISPC and COMPUTER.

usewhitebg = 1;

if usewhitebg

set(hObject,'BackgroundColor',[.9 .9 .9]);

else

set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor')

);

end

Hasil :

Tugas :

Lakukan uji coba pengenalan 5 pola objek bebas dengan ukuran noise yang berbeda. Beri

kesimpulan apakah jaringan dapat mengenali pola dengan baik atau tidak.

Page 41: MODUL PRAKTIKUM JARINGAN SYARAF TIRUAN...Modul 7 : Jaringan Kompetitif/ Kohonen 28 Modul 8 : Jaringan Self Organizing Feature Map (SOFM) 31 Modul 9 : Jaringan Hopfield 34 Modul 10

40

MODUL 10

Jaringan Learning Vector Quantization (LVQ)

Tujuan :

Mahasiswa diharapkan dapat membuat program jaringan Jaringan Learning Vector

Quantization (LVQ) pada Matlab.

1. Membentuk Jaringan Kompetitif :

Jaringan Kohonen dapat dibentuk dari perintah :

net = newlvq(PR, S1, PC, LR, LF)

2. Program Jaringan LVQ dengan M-File/ Script :

Program :

function LVQ

p = [ -3 -1 -1 -2 0 1 1 -1 0 2 ; 1 0 -1 -2 1 -3 -3 0 0 -

1];

tc = [ 1 1 1 2 2 1 1 1 1 1];

colormap(hsv);

plotvec(p,tc)

title('input vectors');

xlabel('p(1)');

ylabel('p(2)');

T = ind2vec(tc);

targets = full(T);

net = newlvq(minmax(p), 4, [.6 .4]);

net.IW(1,1)

hold on

W1 = net.IW{1};

plot(W1 (1,1), W1(1,2),'ow');

title('input/weight vectors');

xlabel('p(1), W(1)');

ylabel('p(2), W(3)');

net.LW{2,1};

net.trainParam.epochs = 150;

net = train(net,p,T);

net.IW{1,1};

cla;

plotvec{p,tc)

hold on;

plotvec(net.IW{1,1}',vec2ind{net.LW{2,1}),'O')

Page 42: MODUL PRAKTIKUM JARINGAN SYARAF TIRUAN...Modul 7 : Jaringan Kompetitif/ Kohonen 28 Modul 8 : Jaringan Self Organizing Feature Map (SOFM) 31 Modul 9 : Jaringan Hopfield 34 Modul 10

41

y = sim(net,p);

yc = vec2ind(y)

Hasil :

Tugas :

Lakukan pengklasifikasian terhadap 25 vektor input, serta buatlah target masing-masing

inputan. Tampilkan bobot akhir yang diperoleh serta output jaringan. Berikanlah

kesimpulan apakah pengklasifikasian sudah sesuai dengan yang diharapkan.

Page 43: MODUL PRAKTIKUM JARINGAN SYARAF TIRUAN...Modul 7 : Jaringan Kompetitif/ Kohonen 28 Modul 8 : Jaringan Self Organizing Feature Map (SOFM) 31 Modul 9 : Jaringan Hopfield 34 Modul 10

42

DAFTAR PUSTAKA

Siang, Jong Jek. 2009. Jaringan Syaraf Tiruan & Pemrogramannya Menggunakan

MATLAB. Yogyakarta : Penerbit Andi

Sharif, Amer. 2011. Buku Penuntun Praktikum Jaringan Syaraf Tiruan. Medan :

Universitas Sumatera Utara

Kusumadewi, S. 2004. Membangun Jaringan Syaraf Tiruan (Menggunakan MATLAB

& Excel Link). Yogyakarta : Penerbit Graha Ilmu

Demuth, H. & Beale, M. 2009. Neural Network Toolbox For Use With MATLAB

User’s Guide, Natick: The MathWokrs Inc.

Page 44: MODUL PRAKTIKUM JARINGAN SYARAF TIRUAN...Modul 7 : Jaringan Kompetitif/ Kohonen 28 Modul 8 : Jaringan Self Organizing Feature Map (SOFM) 31 Modul 9 : Jaringan Hopfield 34 Modul 10

43

LAMPIRAN

FORMAT LAPORAN PRAKTIKUM

1. Sampul :

2. Format Laporan :

Sampul

Kata Pengantar

Daftar Isi

Hasil Praktikum

Daftar Pustaka

Page 45: MODUL PRAKTIKUM JARINGAN SYARAF TIRUAN...Modul 7 : Jaringan Kompetitif/ Kohonen 28 Modul 8 : Jaringan Self Organizing Feature Map (SOFM) 31 Modul 9 : Jaringan Hopfield 34 Modul 10

44

3. Hasil Praktikum :

Bagian ini terdiri atas soal tugas, program, hasil uji coba (screen shoot) dan

pembahasan.

4. Pengumpulan Laporan Praktikum :

Laporan Praktikum dikumpulkan dalam bentuk soft copy paling lama 1 minggu

setelah praktikum.

E-mail : [email protected]

Subject : Kelompok 1 - Laporan Praktikum JST Modul 1

Attachment : Laporan (PDF) dan file matlab ( .m)