Upload
muslih-udin
View
217
Download
0
Embed Size (px)
Citation preview
8/15/2019 APLIKOM 2016
1/45
Dosen Pengampu:
Sri Waluyo, Ph.D.
Diding Suhandy, Ph.D.
APLIKASI KOMPUTER
ABE612210(MATLAB PROGRAM)
JURUSAN TEKNIK PERTANIAN
UNIVERSITAS LAMPUNG
2014
8/15/2019 APLIKOM 2016
2/45
Pendahuluan
☺ General Objectie !
Setelah mengikti !e"kliahan# maha$i$%a &iha"a!kan memilikikemam!an men'ele$aikan !e"$alan!e"$alan !e"hitnganketeknikan &engan menggnakan !"g"am Matla*+
☺ Gra"in# !
Perkuliahan : 65% (dari total)ome!ork : "#%
$ui : %
'idterm&: &,5%
*inal test : &,5% Praktikum : +5% (dari total)
☺ P$licie% !
(1) Mengha&i"i min+ ,0- !e"teman kliah (Pe"at"an Aka&emik./)+
(2) Mengha&i"i 100- !"aktikm+
() Mennng tata nilai &an etika aka&emik+
8/15/2019 APLIKOM 2016
3/45
utline-ontrak PerkuliahanTemu Pertemuan
1 Pendahuluan (Kontrak Kuliah); Pengenalan Bahasa Pemrograman
2-3 Pengantar: Pengertian, Operasi aritmatik, Fungsi ritmatik, !asar operasi matrik
" Pengenalan Pemrograman dengan #$%B
&-' ariael dan Fungsi di dalam #$%B
* #id-$est +
lgoritma Flo. /hart
0 rra dan #atrik; #emuat graik, #en/etak hasil
1-12 %ogika: 4tatemen; Proses +terasi (%ooping) dan kendali: .hile or; i
13 #id-$est ++
1" #eng-upload dan menimpan data (eksternal)
1& 4u Program (Function)
1' Final $est
8/15/2019 APLIKOM 2016
4/45
Dasardasar '/01/2
Apa itu MATLAB?
o '/01/2 merupakan singkatan dari Matri3 Laboratory. Paket
perangkat lunak yang dikem4angkan seara khusus untuk data
data dengan 4asis operasi matrik.
o Dikem4angkan utamanya oleh le7e 'oler pada tahun&8#an.
o Diturunkan dari *909/ su4routines 1;P/ dan
8/15/2019 APLIKOM 2016
5/45
Dasardasar '/01/2
Kekuatano '/01/2 dapat 4er=ungsi se4agaimana kalkulator kon7ensional
ataupun se4agai 4ahasa pemrograman.
o '/01/2 mampu mengkom4inasikan antara perhitungan dan
gra=ik dengan sangat 4aik.
o
'/01/2 relati= mudah [email protected] '/01/2 merupakan 4ahasa interpreter 4ukan ompiled,
sehingga kesalahan dapat dengan mudah diselesaikan.
o '/01/2 4eker@a ukup epat untuk operasi matrik.
o '/01/2 memiliki elemenelemen o4@etoriented.
o Program yang ditulis dalam '/01/2 dapat dikon7ersi ke dalamkode melalui '/01/2 ompiler untuk e=isiensi yang le4ih 4aik.
8/15/2019 APLIKOM 2016
6/45
Dasardasar '/01/2
Kelemahan
o '/01/2 4ukanlah se4uah 4ahasa pemrograman untuk
penggunaan umum se4agaimana 4ahasa , AA, atau
*909/.
o '/01/2 diranang untuk perhitungan sainti=ik dan tidak terlalu
ook untuk aplikasi yang lain.
o '/01/2 merupakan 4ahasa interpreted 4ukan ompiled mode,
sehingga le4ih lam4at.
o Perintahperintah '/01/2 ke4anyakan khusus untuk digunakan
pada '/01/2.
8/15/2019 APLIKOM 2016
7/45
Dasardasar '/01/2
Kompetitor
o Salah satu kompetitor '/01/2 adalah 'athematia, program
komputasi sim4olik.
o '/01/2 le4ih sesuai untuk analisis numerikd an al@a4ar linear.
2iasanya digunakan oleh komunitas insinyur.
o 'athematia memiliki manipulasi sim4ol yang superior sehingga
ukup populer pada komunitas =isika!an.
o 2e4erapa kompetitor yang lain, misalnya: Sila4, BC ta7e,
9la4.
8/15/2019 APLIKOM 2016
8/45
Dasardasar '/01/2
Apa yang dapat dilakukan dengan MATLAB?o 'asalahmasalah yang dapat dinyatakan dalam 4entuk matrik
dimungkinkan dapat diselesaikan dengan '/01/2.
'anipulasi matrik
Sistem persamaan, ontoh: sirkuit elektronik
;nterpolasi dan kur7a =itting
;ntegral-di=erensial seara numerik persamaan di=erensial
Pengolahan: sinyal digital, itra digital =iltering.
Sistemsistem pengontrolan, 4aik dalam simulasi maupun
pengukuran
Sistemsistem komunikasi.
8/15/2019 APLIKOM 2016
9/45
Dasardasar '/01/2
Dimana dapat mengakses MATLAB?
• Pengem4ang '/01/2: 'athWorks ;n., melalui !e4site
mereka:
http: --!!!.math!orks.om
• elompokkelompok pengguna '/01/2.
omp.so=tsys.matla4
8/15/2019 APLIKOM 2016
10/45
*itur Dasar '/01/2
G"ak
Tl*3e$
O!e"a$iMat"ik
T"nan
4a"na
Pe"$+5ie"en$ial
K"7atting
+mn8ti
n
Integ"a$i
8/15/2019 APLIKOM 2016
11/45
o 2agaimana mem4uka program '/01/2E
lik dua kali (double):o Setelah ter4uka, tampilan menun@ukkan @endela@endela
pada '/01/2: ommand !indo!, ommand history,
Workspae, urrent diretory, elp 4ro!ser, dan tom4ol
Start.o Dimana menu elp dapat diperolehE
&) 'elalui prompt '/01/2:
help, look=or, help!in, helpdesk, demos
") 'elalui We4:
http:--!!!.math!orks.om-support
o)2agaimana menutup-keluar dari program '/01/2E
*itur Dasar '/01/2
http://www.mathworks.com/supporthttp://www.mathworks.com/support
8/15/2019 APLIKOM 2016
12/45Section – 1: Pendahuluan
1&2 Ta'(ilan )in"$* Pr$+le!Bagaimana 8a"an'a mem*ka !"g"am
MATLAB 9
Untk mem*ka !"g"am MATLAB &a!at &ilakkan &engan
menekan:klikMATLAB $h"t8t i8n &a kali+
Men tama &i &alam Matla*;
The
8/15/2019 APLIKOM 2016
13/45
Pro=il 'atla4 Windo!
Section – 1: Pendahuluan
'enu tool4ars
urrent diretory
Workspae
4ro!ser
ommand
historyommand !indo!
ommand editor
ASAR PEMROGRAMAN MATLA
8/15/2019 APLIKOM 2016
14/45
o 2iasanya selama mengoperasikan program '/01/2,
ada + 4uah @endela yang akti=, yaitu: Fendela perintah (ommand !indo!)
Fendela gam4ar
Fendela .m =ile
*itur Dasar '/01/2
8/15/2019 APLIKOM 2016
15/45
Fendela Workspae
o 1okasi dimana 7aria4el, array, dan matrik tersimpan.o Dapat digunakan utk melihat in=ormasi ttg 7aria4el, array,
dan matrik:
!ho, !hos G menampilkan da=tar 7aria4el yang
digunakan di dalam !orkspae dan in=ormasi detail sa7e G menyimpan 7aria4el7aria4el !orkspae pada
=ile H.mat
load G mengam4il 7aria4el7aria4el dari =ile H.mat
lear all G mem4ersihkan semua 7aria4el padamemori (!orkspae).
8/15/2019 APLIKOM 2016
16/45
Konvensi:
o Dia!ali dengan C9C*. ontoh: 9;&, tep"#&"
o Dapat 4erupa ampuran huru=, digit, dan garis 4a!ah
(underscores). ontoh: 7ektorI/
o ama 7aria4el 4ersi=at case sensitif , huru= 4esar dankeil 4er4eda. ontoh: /'/, nama, ama adalah tiga
4uah nama 7aria4el yang 4er4eda.
o 0idak le4ih pan@ang dari +& karakter
ama Jaria4el dan *ungsi
8/15/2019 APLIKOM 2016
17/45
o *ile=ile yang mengandung perintah '/01/2 yang
disimpan di dalam hard!are penyimpan(hardisk-=lashdisk) akan memiliki ekstensi (akhiran) m.
ontoh: 1atihan&.m.
o *ile=ile yang dimaksud termasuk, namun tidak di4atasi,
skrip m-file dan function m-file.o Cntuk memanggilnya dapat dilakukan dari ommon
Windo! dengan ara mengetikkan nama =ilenya. 1ihat
ontoh 4erikut:
>> Latihan1 ↵
ama *ile
8/15/2019 APLIKOM 2016
18/45
0ipetipe *ileo Skrip m=ile (7aria4el 4erlaku glo4al)
'isalkan se4uah =ile 4ernama latihan.m.
;si latihan.m adalah:
3?@!i:1,0C -kn7e"$i &e"aat ke "a&ian
a?$in(3)C -menghitng $in$ @ &e"aat
*?8$(3)C -menghitng 8$in$ @ &e"aat
&i$!(D$in(@!i:1,0)) -men8etak hea&e"
&i$!(a) -men8etak ha$il
8/15/2019 APLIKOM 2016
19/45
0ipetipe *ileo *ungsi m=ile (7aria4el 4erlaku lokal terkeuali @ika
dideklarasikan)ara penulisannya:
n8tin mean ? a7g(3)
- 3 a&alah mat"ik ma$kan &imana nilai "e"atan'a akan
- &ihitngC mean a&alah 7a"ia*el la"an:t!tC "e"ata- 3 a&alah mlahnilai(3):mlah&ata(3)
n ? $iFe(3) - men8a"i k"an mat"ik 3
. ? !"&(n) - mlah elemen 3
mean ? $m(3) : . - menghitng "e"ata
o mat=ile
o me3=ile
8/15/2019 APLIKOM 2016
20/45
o ! semua tulisan setelah tanda % (hingga akhir
4aris) dianggap se4agai komentar.
"ontoh: 3 K &:":8 % 3 K L& + 5 8 M
o # 4atas statemen, tidak tampil pada layar.
"ontoh: 3 K &:":8 y K ": % dua statemen padasatu 4aris.
o : pem4atas suatu rentang.
"ontoh: 3 K &:":8 % 3 K L&, +, 5, , 8 M
o $ melan@utkan statemen.
"ontoh: 3 K & + 5 N
8 M % 3 K L& + 5 8 M terpisah dalam " 4aris.
arakter husus
8/15/2019 APLIKOM 2016
21/45
o % mentranspose suatu matrik.
"ontoh: 3 K L&:":8M O % 3 diru4ah dari 7ektor 4aris
men@adi 7ektor kolom.
o & pem4atas suatu perintah.
"ontoh: 3 K L&:":8M , y K L&:8M % dua perintah pada4aris yg sama.
o H !ild ardQ
"ontoh: RR lear /H % menghapus seluruh 7aria4el
yang dia!ali dengan /.
arakter husus
8/15/2019 APLIKOM 2016
22/45
osie(3) % menampilkan ukuran array atau matrik 3.
o length(3) % menampilkan pan@ang array atau matrik 3.
o !hos % menampilkan isi !orkspaeQ.
o
lear % menghapus seluruh 7aria4el.o lear(3) % menghapus 7aria4el 3 sa@a.
o l % menghapus isi ommand !indo!.
o eye(m)% mem4uat matrik identitas m3m.
o eros(m) % mem4uat matrik 1 m3m.
o ones(m) % mem4uat matrik S/0C m3m.
*ungsi '/01/2 Populer
8/15/2019 APLIKOM 2016
23/45
o a4s(3) % nilai a4solut 3.
o e3p(3) % eksponensial 3.
o log(3) % logaritma 3 4asis .
o srt(3) % akar 4ilangan 3.o =i3(3) % pem4ulatan nilai 3 dengan mengenolkan
desimal.
o rem(3,y) % sisa setelah pem4agian 3-y.
o sin(3) % sine 4ilangan 3 3 dalam radian.
o aoth(3) % in7ers hiper4olik kotangen 3.
*ungsi 'atematika Dasar
dalam '/01/2
8/15/2019 APLIKOM 2016
24/45
Penulisan 'atrik di dalam
'/01/2o Data yang dioperasikan di dalam '/01/2 dinyatakan-
di4aa dalam 4entuk matrik.
o 2agaimana menuliskan se4uah matrikE
/ K L & " + ? 5 6 > 8 M mem4uat matrik / dengan ukuran + 3 +
o Selain dengan mengetikkan seara langsung nilainilai
elemen suatu matrik-7ektor, 4erikut ara lain mem4uat
matrik-7ektor seara otomatis:
/ K &:": / K a:4:
/ K linspae(&,,5) / K linspae(m,n,k)
8/15/2019 APLIKOM 2016
25/45
Penulisan 'atrik di dalam
'/01/2o 'atrik khusus:
'eros(n&m)& ones(n&m)& eye (n&m)
8/15/2019 APLIKOM 2016
26/45
Penulisan 'atrik di dalam
'/01/2
>> nums = 1:8
nums =
1 2 3 4 5 6 7
8
>> nums(1:2:5) = 10nums =
10 2 10 4 10 6
7 8
>> nums(2:3:8) = [13 916
>> nums2 = nums( [1 : 3
6 : 8 ] )
nums2 =
10 13 10 6 7 16
>> nums( [ 1 : 3 6 : 8 ] )= 12 : -2 : 2
nums =
12 10 8 4 9 6 4
2
;ndeksasi dengan otasi 0itik Dua
o Titik Dua 4iasa digunakan di dalam mem4uat 7ektor
untuk menentukan se4uah rentang uplikan (sequence)
dengan inter7al kenaikan yang reguler.
8/15/2019 APLIKOM 2016
27/45
Jisualisasi dan Bra=ik
arus selalu diingat 4ah!a '/01/2 seara
numerik didasarkan pada:- Se4uah =ungsi die7aluasi seara poin per poin
- Se4uah 7ektor di4uat untuk sum4usum4u tertentu
Perintahperintah Cmum di dalam mem4uat gra=ik• plot(3,y), plot(3,sin(3)) G mem4uat plot &D
• =igure, =igure(k) G mem4uat lokasi gam4ar
4aru
• hold on, hold o== G menahan-melepaskan
• mesh(3Ia3,yIa3,Imat) G menampilkan permukaan
8/15/2019 APLIKOM 2016
28/45
Jisualisasi dan Bra=ik
• ontour(Imat) G menampilkan se4agai
4agian atas peta.
• su4plot(+,",&) G menempatkan 4e4erapa
plot dalam se4uah gam4ar
• a3is(L3min 3ma3 ymin yma3M) G menentukan dimensi
sum4u
• title(Tnama gam4arO) G menamai gam4ar
• legend G mem4uat keterangan
gam4ar
• 3la4el yla4el la4el G mem4eri la4el pada sum4u
• grid on grid o== G mem4uat garisgaris pada
gam4ar
8/15/2019 APLIKOM 2016
29/45
Jisualisasi dan Bra=ik
Si'b$l )arna
Si'b$l ent- K-ra Si'b$l Penan"aNa'a
Pen"e
Na'a
Panjan#Nilai RG
k Bla8k 0 0 0 H − Sli& Pl$ $ign
" Re& 1 0 0 H − − 5a$he&
8/15/2019 APLIKOM 2016
30/45
Jisualisasi dan Bra=ik
"ontoh*contoh:
• 'em4uat plot =ungsi sin(3) pada rentang L#, "UM
• ode '/01/2
x = [0 : .1 : 2];
y = sin(x);
pl!(x"y)
!i!l#($sin(x)%)
xl&'#l($x%)
yl&'#l($y%)• ;ngat: Jaria4el =ungsi harus diletakkan di a!al, se4elum
pende=inisian =ungsi
0 1 2 3 4 5 6 7-1
-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
1sin(x)
x
y
8/15/2019 APLIKOM 2016
31/45
Jisualisasi dan Bra=ik
• Plot @uga dapat dio7erlap
• ode '/01/2
x = linsp&#(0"2pi"100); y = sin(x);
pl!(x"y); *l+ n
y = sin(2x)pl!(x"y", ,)
y = sin(3x)
pl!(x"y",,)
y = sin(4x)pl!(x"y",/,)
!i!l#(,sin(x),); xl&'#l(,x,); yl&'#l(,y,)0 1 2 3 4 5 6 7-1
-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
1sin(x)
x
y
8/15/2019 APLIKOM 2016
32/45
perasi Dasar pada 'atrik
• 0anda TKT menyatakan 4ah!a nilai hasil operasi padase4elah kanan K akan dialokasikan atau di4erikan pada
7aria4el di se4elah kiri K. assignment
• 0anda TO sangat penting meski pun 4ukan termasuk
kategori operator. Penulisan di akhir perintah(assignment), maka nilai masukan tidak akan
ditampilkan pada layar ommand !indo!.
• sie(/) G ukuran 7ektor
•sum(/) G pen@umlahan kolom suatu 7ektor
• sum(sum(/)) G pen@umlahan seluruh elemen
8/15/2019 APLIKOM 2016
33/45
perator /ritmatika
+perasi Matrik:
H perkalian
- pem4agian kanan
V
pem4agian kiri pangkat
T transpose dengan
kon@uget
+perasi Array:
.H perkalian
.- pem4agian kanan
.V
pem4agian kiri. pangkat
.T transpose dengan
kon@uget
perasi aritmatika untuk matrik identik dan 4entuk array:
A penam4ahan
pengurangan
8/15/2019 APLIKOM 2016
34/45
perator u4ungan
X kurang dari
R le4ih dari
XK kurang dari atau sama dengan
RK
le4ih dari atau sama denganKK sama dengan
YK tidak sama dengan
=ind (TkondisiO) G menari indeks elemenelemen suatumatrik yang memenuhi (satisfy ) kondisi.
8/15/2019 APLIKOM 2016
35/45
Jaria4el
• Seluruh 7aria4el adalah matrik. Skalar adalah matrik
4erukuran &3& 7ektor adalah matrik 4erukuran &3 atau
3&.
8/15/2019 APLIKOM 2016
36/45
1ogika
'/01/2 menyatakan 4enar dan salah dengan menggunakan4ilangan integer # dan &. 4enar K &, salah K #
Fika pada suatu titik di dalam perhitungan se4uah skalar 3
dinyatakan dengan se4uah nilai, kita dapat mem4uat pengu@ian
logika tertentu terhadap nilai terse4ut. 'isal:
3 KK " adalah 3 sama dengan "E
3 YK " adalah 3 tidak sama dengan "E
3 R " adalah 3 le4ih 4esar dari "E
3 X " adalah 3 le4ih keil dari "E
3 RK " adalah 3 le4ih 4esar di4andingkan atau sama dengan "E3 XK " adalah 3 le4ih keil di4andingkan atau sama dengan "E
Zang perlu mendapatkan perhatian adalah penanda untuk sama
dengan adalah KK.
8/15/2019 APLIKOM 2016
37/45
Struktur /liranendali
Dasar ,ikir
Perhatikan ontoh 4erikut:
'isalkan diinginkan untuk mem4uat gra=ik se4uah =ungsi
Cntuk rentang nilai 3 dari # hingga 5#.
2522 −+= x x y
8/15/2019 APLIKOM 2016
38/45
Struktur /liranendali
'/01/2 memiliki lima ara untuk kendali aliran suatu
program, yakni:
Loop
(&) =or : mengulang sekian kali se4uah atau
sekelompok statemen dalam lingkup
perintah
(") !hile : mengulang kelompok statemen dalam
lingkup perintah sepan@ang kondisi yang
terkandung di dalam 7aria4el kontrol
terpenuhi (true).
8/15/2019 APLIKOM 2016
39/45
Struktur /liranendali
Cntuk mengakhiri proses iterasi (looping ), digunakan TendO
se4agai pasangan statemen T=or O atau T!hileO.
Statement
(+) i= : melakukan perintah @ika syaratsyarat
terpenuhi
(?) s!ith : melakukan pemilihan kalang perintah"
dimana kondisi yang terpenuhi
(5) 4reak : mem4erhentikan eksekusi suatu kalang
8/15/2019 APLIKOM 2016
40/45
o Perintah =or loop mengulang sekelompok perintah
perintah di dalam loop se4anyak yang sdh ditetapkan.
o 2entuk umum =or loop
for indeks - start : increment : end (atau sebuah vektor)
perintah
end
.. /ika %increment’ tidak ditetapkan0dinyatakan maka MATLAB akan
mengasumsikan bah1a increment - 2 (nilai default increment )
.. indeks 3uga bisa berupa vektor
Kelebihan for loop: 3umlah perulangan dapat diketahui
Struktur /liranendali
8/15/2019 APLIKOM 2016
41/45
Struktur /liranendali
"ontoh:
3 K L M n K
=or i K & : n
3 K L3, i"M
end
Program ini akan
menghasilkan se4uah n
7ektor tertentu.
3 K L M
=or i K n : & : &
3 K L3, i"M
end
Perhatikan kode 4erikut:
=or i K &:m
=or @ K &:n
(i, @) K &-(iA@&)
end
end
Program akan menghasilkan dan
menetak pada layar komputer
se4uah matrik dengan ukuran m × n.
0anda titik koma di dalam statemen(4aris ketiga) digunakan untuk tidak
menampilkan hasil hitung =ungsi
pada layar hingga @umlah putaran
(kendali) terpenuhi. Pada akhir
program, kode memerintahkan untuk
menetak nilai terakhir (4aris 6).
8/15/2019 APLIKOM 2016
42/45
Struktur /liranendali
• Perintah !hile loop mengulang sekelompok
perintahperintah di dalam loop sepan@ang
kondisi yang digunakan masih terpenuhi.
• 2entuk umum !hile loop1hile kondisi (boolean statement)
perintah
end
8/15/2019 APLIKOM 2016
43/45
Struktur /liranendali
Se4agai ontoh: Diketahui nilai se4uah
4ilangan a. kode '/01/2 4erikut
diperintahkan untuk menghitung dan
menampilkan 4ilangan integer non
negati= terkeil n sehingga memenuhi
"n [ a:
n K # a K "5
!hile "n X a
n K n A &
endn
Se4uah perulangan tanpa 4atas mungkin
sa@a ter@adi. Fika ter@adi hal demikian
maka /nda perlu memasukkan perintah
4reak di dalam kalang.
!hile kondisi
%perintahperintah
4reak
end
8/15/2019 APLIKOM 2016
44/45
Struktur /liranendali
8lea"te"m ? 1 - men&eni$ikan nilai a%al te"m ?1$ ? te"mC - men&eni$ikan $ &engan nilai te"m
- menga%ali !ta"an menge$et 8a8ah !ta"an a%al &engan n ? 1n?1C
%hile te"m > 1e10 - menglang !e"intah2 hingga nilai te"m &i*a%ah 1e10
n?n1C - menam*ahkan nilai n te"kini &engan 1te"m?1:n2C - menghitng nilai te"m *a"$?$te"mC - menanm*ahkan $ &engan nilai te"m te"*a"
en& - akhi" &a"i !e"langan:kalang
!"int(D Sm ? -g n# $)
8/15/2019 APLIKOM 2016
45/45
'em4uat 0ampilan 0a4el
disp(T \) % 4aris kosong
disp(\\)
disp(\ k t 3 \)
disp(\\)
=or kK&: perintah menentukan t sebagai fungsi k
perintah menentukan x sebagai fungsi k
disp(sprint=(\%".#= %.+g %.e\, k, t(k), 3(k)))
end