Paparan Refleksi Lokakarya program sekolah penggerak.pptx
OPTIMASI PEMMODELAN DAN SIMULASI
1. 1 | I r . S i h a r , M T . – F T I 3 2 5
TA.2013-2014 / Sm.5
FTI325 Pemodelan dan Simulasi (3 sks)
Dosen: Ir. Sihar, MT.
Program studi Teknik Informatika
Fak. Teknologi Informasi
Bandung – 2014
Referensi:
[1] Altiok, T., Melamed, B. (2007). Simulation Modeling and Analysis with ARENA.
Elsevier.
[2] Banks, J., J. S. Carson, II, and B. L. Nelson. (1996). Discrete-Event System Simulation,
Second Edition. Prentice Hall.
[3] Bratley, P., B. L. Fox, and L. E. Schrage. (1987). A Guide to Simulation, Second
Edition. Springer-Verlag.
[4] Law, A. M., and W. D. Kelton. (1991). Simulation Modeling and Analysis, Second
Edition. McGraw-Hill.
[5] Maria, A. (1997). "Introduction To Modeling And Simulation". Proceedings of the Winter
Simulation Conference. hal.7-13.
[6] Ptolemaeus, C. (2014). System Design, Modeling, and Simulation using Ptolemy II.
Ptolemy.org
[7] Singh, V.P. (2009). System Modeling and Simulation. New Age International Limited
Publisher.
MATLAB dan Terapannya
Untuk mendeklarasikan sebuah variabel a1 dengan nilai=1.5, dituliskan berikut ini:
>> a1=1.5 ↵
Simbol ‘↵’ artinya enter, dan translator akan menampilkan nama variabel dan isi dari
variabel tersebut. Bila setiap perintah diakhiri dengan simbol ‘;’, maka artinya translator
belum akan mengeksekusi statement tersebut, dan menginterpretasikan bahwa akan
muncul perintah selanjutnya yang berkaitan dengan statement tersebut.
Untuk memanggil var: a1 yang sebelumnya telah terdeklarasikan, dituliskan berikut ini:
>> a1 ↵
Untuk menghapus tampilan di layar komputer, dituliskan berikut ini:
>> clc ↵
Untuk me-reset semua variabel beserta isinya, dituliskan berikut ini:
>> clear all ↵
Untuk me-reset variabel a1 beserta isinya, dituliskan berikut ini:
>> clear a1 ↵
Untuk meng-kali-kan isi a1 dengan nilai 1.5, dituliskan berikut ini:
>> a1=2; ↵
>> a1∗1.5 ↵
2. 2 | I r . S i h a r , M T . – F T I 3 2 5
Untuk mem-bagi isi a1 dengan nilai 2.25 dan hasilnya ditampungkan ke var: A, dituliskan
berikut ini:
>> a1=3;
>> A=a1/2.25;
>> A ↵
Untuk mendapatkan nilai F(x), dimana: F(x) =
ࢄ
࢚
; dimana: t1←←←←1.25 dan X didapatkan
dengan metode input-value by end-user, dituliskan berikut ini:
>> t1=1.25;
>> Fx=X/t1;
>> X=input('Berapa X? > ');
>> Fx=X/t1;
>> Fx
Untuk mendapatkan deret bilangan dengan range: 0 s.d 20 dimana jarak antar-nilai=0.5
dan hasilnya disimpankan ke var: a1, dituliskan berikut ini:
>> a1=0:0.5:20;
>> a1 ↵
Misalkan: dituliskan kode/script Matlab sebagai berikut:
>> z=0.5;
>> (z-1)/z;
>> z ↵
maka, jika z di-loading (dipanggil), nilai yang akan ditampilkan adalah: 0.5 bukan hasil
dari:
(௭ିଵ)
௭
.
Agar nilai dapat ditampilkan, maka expression tersebut tampungkan terlebih dahulu ke
suatu variabel; misalkan ditampungkan kembali ke var: z. Maka selengkapnya kode/script
Matlab tersebut dituliskan sebagai berikut:
>> z=0.5;
>> z=(z-1)/z;
>> z ↵
Untuk menampilkan matriks A dengan ordo atau dimensi: 2x3 (2-baris;3-kolom):
A=ቂ
−1.2 0.25 0.2
3.1 1.2 0
ቃ
>> A=[-1.2 0.25 0.2;3.1 1.2 0];
>> A ↵
Untuk mengerjakan persoalan berikut:
A←
−1.2 0.9
−2.01 1.2
0.1 −1.1
൩ ; dimana matriks A terdiri dari 3-baris;2-kolom ⇒ A3x2
A←A+1;
Secara metode analitik, dikerjakan sebagai berikut:
A←
−1.2 + 1 0.9 + 1
−2.01 + 1 1.2 + 1
0.1 + 1 −1.1 + 1
൩ =
−0.2 1.9
−1.01 2.2
1.1 −0.1
൩
Dituliskan dalam script Matlab sebagai berikut:
>> A=[-1.2 0.9;-2.01 1.2;0.1 -1.1];
>> A=A+1;
>> A ↵
3. 3 | I r . S i h a r , M T . – F T I 3 2 5
Jika ditampilkan deret sebagai berikut:
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11.
Apabila indeks-awal di-set=0, maka bilangan 11 terposisi pada indeks ke-10. Dituliskan
dalam script Matlab sebagai berikut:
i=0;
x=1;
while (i<10)
x=x+1;
i=i+1;
end
Kode/script ini dituliskan dalam M-file, dengan cara/tahapan sebagai berikut:
i. Klik: FileNewM-file
ii. Pada window baru, ketikkan script di atas dan simpankan ke folder default Matlab
dengan nama: latihan01.m
iii. Klik icon PLAY / pada task-bar agar script tersebut ditampungkan ke main-memory
komputer sehingga siap untuk dijalankan/dieksekusi
iv. Pindah kembali ke main-window Matlab, dan ketikkan x dan i untuk memanggil isi
termutahir dari var: x dan i
Apabila diketahui sebuah fungsi: f(x)=x
2
-3x-18; maka untuk mendapatkan x1 dan x2 agar
f(x)=0 diselesaikan secara analitik sebagai berikut:
f(x)=0 ⇔ x2
-3x-18=0;
⇔ (x-6)(x+3)=0;
⇔ x1=6 ; x2=-3;
Dituliskan dalam script Matlab sebagai berikut:
>> solve('x^2-3*x-18=0') ↵
Apabila diketahui sebuah fungsi: z(t)=t
2
-3t-2; dan ingin dicarikan nilai t1 dan t2 untuk
z(t)=0 maka bisa diketahui dengan memenuhi kriteria D>0. D=Diskriminan=b2
-4.a.c (model
PFK: f(x)=ax
2
+bx+xc).
Secara analitik diselesaikan sebagai berikut:
z(t)=t
2
-3t-2;
a=1; b=-3; c=-2;
D = 9-4(1)(-2) = 9-(-8) = 17 ⇒ x1 dan x2 adalah eksis!
Cari dengan Rumus ABC: x1,2 =
ି±ඥ(మିସ..)
ଶ
t1 =
ି(ିଷ)ାඥ((ିଷమ)ିସ(ଵ)(ିଶ))
ଶ(ଵ)
=
(ଷା√ଵ)
ଶ
t2 =
ି(ିଷ)ିඥ((ିଷమ)ିସ(ଵ)(ିଶ))
ଶ(ଵ)
=
(ଷି√ଵ)
ଶ
Dituliskan dalam script Matlab sebagai berikut:
>> solve('t^2-3*t-2=0') ↵
Untuk menghapus var: t yang sebelumnya telah terdeklarasikan, dituliskan dalam script
Matlab sebagai berikut:
>> clear t ↵
4. 4 | I r . S i h a r , M T . – F T I 3 2 5
Seperti halnya yang berlaku umum pada seluruh script/bahasa-pemrograman bahwa untuk
menghitung nilai trigonometri sebuah sudut (θ) harus ditransformasikan terlebih dahulu
dalam bentuk radian (ω). Model analitiknya dituliskan sebagai berikut:
2π radian = 360o
; dimana: π = 3.14
⇔ 1o
=
ଶగ
ଷ
radian;
⇔ 1o
=
గ
ଵ଼ radian;
Misalkan, akan dicarikan nilai sin(30o
), maka: t←(30)(3.14/180); dan sin(30o
) = sin(t);
Dituliskan dalam script Matlab sebagai berikut:
>> t=30*(3.14/180);
>> sin(t) ↵
Hal yang sama berlaku juga untuk cos(60o
), dituliskan dalam script Matlab sebagai berikut:
>> x=60*(3.14/180);
>> cos(x) ↵
Dan hal yang sama berlaku juga untuk tan(45o
), dituliskan dalam script Matlab sebagai
berikut:
>> z=45*(3.14/180);
>> tan(z) ↵
Misalkan: var: t1 diisikan batas-bawah:1 dan batas-atas:30 dengan selang-seling nilai 0.15,
maka dituliskan dalam script Matlab sebagai berikut:
>> t1=1:0.15:30;
>> t1 ↵
Untuk membangkitkan nilai π=3.14, maka dituliskan dalam script Matlab adalah sebagai
berikut:
>> P1=pi;
>> P1 ↵
Misalkan: untuk menghitung luas-lingkaran dan volume-bola apabila masing-masing jari-
jari (radius)=5.25, dituliskan dalam script Matlab adalah sebagai berikut:
Rumus: Luas-lingkaran = Ll = π.r
2
Volume-bola = Vb =
ସ
ଷ
.π.r
3
>> r=5.25;
>> Ll=pi*(r.^2);
>> Ll ↵
>> Vb=(4/3)*pi*(r.^3);
>> Vb ↵
Untuk menampilkan kurva model kontinyu dimana var: x diisikan dengan batas-bawah=0
dan batas-atas=360 dengan selang-seling nilai=30, dan f(x)=sin(x); maka dapat dituliskan
dalam script Matlab sebagai berikut:
>> x=0:30:360;
>> fx=sin(x);
>> plot(x,fx) ↵
5. 5 | I r . S i h a r , M T . – F T I 3 2 5
Tampilannya ditunjukkan berikut ini:
Apabila kurva kontinyu tersebut dimodifikasi kembali sehingga tersajikan lebih cpmplex,
maka dituliskan kembali sebagai berikut:
>> x1=linspace(0,360);
>> fz=sin(x1);
>> plot(x1,fz) ↵
Tampilannya ditunjukkan berikut ini:
Jika akan dimodifikasikan kembali lebih ekstrim maka dituliskan sebagai berikut:
>> x1=linspace(0,360);
6. 6 | I r . S i h a r , M T . – F T I 3 2 5
>> fz1=sin(x1)+cos(90);
>> plot(x1,fz1) ↵
Tampilannya ditunjukkan berikut ini:
Salah satu contoh berikut ini menunjukkan model kurva kontinyu dengan metode
cosinusoidal:
>> t1=[-pi/2:0.001:pi/2];
>> x=2*cos(2*pi*t1);
>> plot(t1,x) ↵
Tampilannya ditunjukkan berikut ini:
7. 7 | I r . S i h a r , M T . – F T I 3 2 5
Contoh: -misalkan sebuah var: x ∈ {1,2,3,4,5,6,7,8,9,10}; maka dapat dituliskan dalam
script Matlab sebagai berikut:
>> x=1:1:10;
Dan f(x)=Sin(x) + Cos(x), maka jika dituliskan dalam script Matlab adalah sebagai berikut:
>> fx=sin(x)+cos(x);
Lalu, bagaimana apabila kedua fungsi ini akan dimodelkan dalan kurva kontinyu;
selengkapnya sebagai berikut:
>> x=1:1:10;
>> fx=sin(x)+cos(x);
>> plot(x,fx) ↵
Tampilannya ditunjukkan berikut ini:
Agar model kurva kontinyu tersebut lebih smooth (mengingat pada tampilan tersebut, line
yang dideskripsikan terlalu ‘kaku’), maka pada deret nilai var: x digunakan perintah
(method) berikut ini (selengkapnya):
>> x=linspace(1,10);
>> fx=sin(x)+cos(x);
>> plot(x,fx)
Tampilannya ditunjukkan berikut ini:
8. 8 | I r . S i h a r , M T . – F T I 3 2 5
Salah satu contoh berikut ini menunjukkan model kurva kontinyu dengan metode
sinusoidal:
>> t2=[-pi/2:0.001:pi/2];
>> y=2*sin(2*pi*t2);
>> plot(t2,y) ↵
Tampilannya ditunjukkan berikut ini:
Kelebihan Matlab dibandingkan aplikasi pemrograman lain adalah pada aspek simulasi,
animasi, dan grafis; misalkan dalam pemodelan kurva dan multimedia. Terlebih lagi dalam
pemodelan secara analitik dan membangun model matriks. Seperti ditunjukkan kembali
pada contoh berikut ini:
Apabila diketahui sebuah tabel berikut ini:
x f(x) x f(x)
1 16.836 11 -46.047
2 8.164 12 -167.694
3 -2.580 13 -865.943
4 -24.641 14 -631.329
5 -35.950 15 -1001.202
6 -90.685 16 -632.590
7 -77.372 17 -2854.642
8 -49.847 18 -3661.550
9 -173.974 19 -381.596
10 -156.852 20 -194.259
maka dapat dituliskan dalam script Matlab sebagai berikut:
>> x=[1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20];
>> fx=[16.836 8.164 -2.580 -24.641 -35.950 -90.685 -77.372 -49.847
-173.974 -156.852 -46.047 -167.694 -865.943 -631.329 -1001.202
-632.590 -2854.642 -3661.550 -381.596 -194.259];
>> plot(x,fx) ↵
9. 9 | I r . S i h a r , M T . – F T I 3 2 5
Tampilannya ditunjukkan berikut ini:
Contoh berikutnya ditunjukkan berikut ini:
f(t) = 15t – t
2
dan 0 ≤ t ≤ 20
t f(t) t f(t)
0 0 11 44
1 14 12 36
2 26 13 26
3 36 14 14
4 44 15 0
5 50 16 -16
6 54 17 -34
7 56 18 -54
8 56 19 -76
9 54 20 -100
10 50
apabila dimodelkan dengan Ms.Excel ditunjukkan berikut ini:
10. 10 | I r . S i h a r , M T . – F T I 3 2 5
Dan jika dituliskan dalam script Matlab sebagai berikut:
>> t=0:1:20;
>> ft=15*t-t.^2;
>> plot(t,ft)
Tampilannya ditunjukkan berikut ini:
Apabila dilakukan metode smoothing, dapat dituliskan sebagai berikut:
>> t=linspace(0,20);
>> ft=15*t-t.^2;
>> plot(t,ft)
Tampilannya ditunjukkan berikut ini:
Dapat disimpulkan bahwa model smoothing dipengaruhi oleh persamaan funggsi kuadrat
(PFK), atau dengan kata lain derajat pangkat 2.