Modul Matlab Umm
Modul Matlab Umm
MATLAB
Oleh:
TeamLabkomputerUMM
DIVISIPENDIDIKANDANPELATIHAN
LEMBAGAINFORMASIDANKOMUNIKASI
UNIVERSITASMUHAMMADIYAHMALANG
2011
BABI
PENGENALANMATLAB
I.1DEFINISIMATLAB
MATLAB (Matrix Laboratory) adalah bahasa tingkat tinggi dan interaktif yang
memungkinkan untuk melakukan komputasi secara intensif. MATLAB telah
berkembangmenjadisebuah environment pemrogramanyangcanggihyangberisi
fungsifungsi builtin untuk melakukan pengelolahan sinyal, aljabar linear dan
kalkulasi matematis lainnya. MATLAB juga berisi toolbox yang berisi fungsi
fungsitambahanuntukaplikasikhusus.PenggunaanMATLAB meliputi bidang
bidang:
MatematikadanKomputasi
PembentukanAlgorithm
AkuisisiData
Pemodelan,simulasidanPembuatanPrototype
AnalisisData,Explorasi,danVisualisasi
GrafikKeilmuandanBidangRekayasa
I.2MEMULAIMATLAB
SetelahmelakukaninstalasiMATLABpadaPC,perhatikaniconMATLABpada
tampilan desktop kemudian doubleclick pada icon tersebut. Selanjutnya akan
muncul tampilansepertipadagambarberikutini.
MATLAB
LABORATORIUMKOMPUTER
Memulai/
membuka
Mfile
Menu
Directoryyang
sedangaktif
Command
window
Daftar
variable
yangaktif
MATLAB
start
Gambar1.TampilanawalMATLAB
PadatampilanawalMATLAB,terlihatbeberapajendelayangmerupakanbagian
pentingdidalamMATLAB,antaralain:
a. Jendelaperintah(CommandWindow)
Padacommandwindow,semuaperintahmatlabdituliskandandiekskusi.
Kita dapat menuliskan perintah perhitungan sederhana, memanggil fungsi,
mencari informasitentangsebuah fungsidenganaturanpenulisannya(help),
demo program, dan sebagainya. Setiap penulisan perintah selalu diawali
dengan prompt >>. Misal, mencari nilai sin 750, maka pada command
windowkitadapatmengetikkan:
>>sin(30*pi/180)
ans=
0.5000
b. Jendelaruangkerja(Workspace)
JendelainiberisiinformasipenggunaanvariabeldidalammemoriMATLAB.
Misalkan kita akan menjumlahkan dua buah bilangan, maka pada command
windowkitadapatmengetikkan:
MATLAB
LABORATORIUMKOMPUTER
>>bilangan1=7
bilangan1=
7
>>bilangan2=9
bilangan2=
9
>>hasil=bilangan1+bilangan2
hasil=
16
Makapadaworkspaceakanmenampilkanvariableyangsedangdigunakan.
Gambar3.Tampilanworkspace
Untuk melihat variabel yang aktif saat ini, kita dapat menggunakan perintah
who.
>>who
Yourvariablesare:
bilangan1bilangan2hasil
c. Jendelahistory(CommandHistory)
Jendela ini berisi informasi tentang perintah yang pernah dituliskan
sebelumnya.Kitadapatmengambilkembaliperintahdenganmenekantombol
panah ke atas atau mengklik perintah pada jendela histori, kemudian
melakukancopypastekecommandwindow.
Gambar 3.Tampilancommandhistory
MATLAB
LABORATORIUMKOMPUTER
BABII
VARIABELDANOPERATOR
II.1VARIABEL
Sepertibahasapemrogramanlainnya,matlabpunmemilikivariabel,tetapidalam
penulisannya,variabeldidalammatlabtidakperludideklarasikan,karenamatlab
mampu mengenali tipe data dari variable dari isi variabel tersebut. Aturan
penulisan variabel pada matlab sama dengan aturan pada bahasa pemrograman
lainnya,yaitubersifacasesensitive,diawalidenganhurufdanselanjutanyaboleh
menggunakan gabungan huruf angka atau tanda garis bawah. Matlab mampu
mengenalisampai31karakterpertama,selanjutnyadiabaikan.
Contoh:
>>var_1=7.7
var_1=
7.7000
>>var2=[234]
var2=
234
Semuatipedatadimatlabmemilikibentukyangsama,yaituarray.Arrayminimal
berukuran0x0dandapatbertambahmenjadiarraynxmdimensidengansebarang
ukuran. Matlab mempunyai beberapa tipe data dasar (atau class), yaitu: logical,
char, numeric, cell, structure, java classes, function handles. Adapun variable
khususpadamatlab,yaitu:
VARIABEL
KHUSUS
ans
NILAI
Untukhasilapapun
pi
Perbandinganantarakelilinglingkarandengangaris
tengahnya
eps
Bilanganterkecilsedemikianrupasehinggabila
ditambahkanpadasatu,menghasilkanbilanganlebih
besardarisatupadasuatukomputer
MATLAB
LABORATORIUMKOMPUTER
flops
Jumlahoperasifloatingpoint
inf
Takberhingga,misalnya1/0
Nanataunan
Bukansuatubilangan,misalnya0/0
idanj
i=j=1
nargin
Jumlahargumeninputsuatufungsi
nargout
Jumlahargumenoutputsuatufungsi
realmin
Bilanganrealpositifterkecilyangdapatdigunakan
realmax
Bilanganrealpositifterbesaryangdapatdigunakan
II.2OPERATOR
Padamatlab,operatordiklasifikasikanmenjaditigabagian,yaitu:
a. OperatorAritmatika
Operatoraritmatikadigunakanuntukmengerjakankomputasinumeric.
OPERATOR
KETERANGAN
Penjumlahan
Pengurangan
Perkalian(aturanmatriks)
.*
Pembagiankanan(matriks)
./
Pembagiankanan(array)
Pembagiankiri(matriks)
.\
Pembagiankiri(array)
Perpangkatan(matriks)
.^
Perpangkatan(array)
Langkah
MATLAB
LABORATORIUMKOMPUTER
b. OperatorRelasional
Operator relasional digunakan untuk membandingkan operandoperand secara
kuantitatif.
OPERATOR
KETERANGAN
==
Samadengan
~=
Tidaksamadengan
<
Kurangdari
>
Lebihdari
<=
Kurangdarisamadengan
>=
Lebihdarisamadengan
c. OperatorLogika
OPERATOR
KETERANGAN
&
Komplendarielemenyangdiinputkan
xor
MATLAB
LABORATORIUMKOMPUTER
BABIII
ARRAY,MATRIKSDANPOLINOMIAL
III.1ARRAY
MATLAB menangani array secara intuitif. Untuk membuat array dalam
MATLAB, yang perlu dilakukan hanyalah mengetikkan kurung kotak kiri,
memasukkanelemenelemendengandipisahkanolehspasi ataukoma,kemudian
menutup array dengan kurung kotak kanan. Berikut ini akan diberikan beberapa
contohassignmentuntukarray:
a.Pengalamatanarray
Dalam MATLAB elemenelemen array diakses menggunkan
subcript misalnya x(1) adalah elemen pertama x, x(2) adalah
elemenkeduax,danseterusnya.
Contoh:
1.x=[246810]
dapaidilihatbahwax(1)=2,x(2)=4,x(3)=6,x(4)=8,
x(5)=10
x(4)%elemenkeempatx
ans=
8
2.x([135])=[0.20.50.7]
maka x(1)=0.1, x(3)=0.5, x(5)=0.7 dan x(i) untuk i=2,3,4
bernilai0.
3.nilaiarraydapatjugadiisikansebagaiberikut:
x=4:1:9
x=
456789
artinyabahwanilaiarrayyangdiisikandenganangkadari4
sampai 9 dengan penambahan 1 (default). Penambahan
MATLAB
LABORATORIUMKOMPUTER
c.Mengaksessebagianelemenarray
Dari contoh sebelumnya misalkan hanya diakses elemen ke 2
sampai keempat
y=x(2:4)
y=
212
MATLAB
LABORATORIUMKOMPUTER
d.Menghapuselemenarray
Dapatdilihatcontohberikut:
Menghapuselementerakhirdariarray
n=[13579]
n=
13579
n=n(1:length(n)1)
n=
1357
a.Menghapuselemenpadaindextertentu
Misalkanz=[12345]daningindihapuszpadaindex
ke2dan4maka:
z=[12345]
z=
12345
z([24])=[]
z=
135
III.2 MATRIKS
Matlab menggunakan matriks sebagai dasar komputasinya. Secara garis besar matlab
membagimatriksmenjadi2bagian,yaitu:
a. MatriksKhusus
1. MatriksNol
Matriksyangelemennyabilangannol
Bentuk umum:
>>zeros(n,m)
Contoh:
>>zeros(4,5)
MATLAB
LABORATORIUMKOMPUTER
ans=
00000
000
00
00000
00000
2. MatriksSatu
Matriksyangelemennyabilangansatu
Bentukumum:
>>ones(n,m)
Contoh:
>>ones(2,3)
ans=
111
111
3. NatriksIdentitas
Bentukumum:
>>eye(n)
Contoh:
>>eye(4)
ans=
1000
0100
0010
0001
MATLAB
LABORATORIUMKOMPUTER
10
4. MatriksBujurSangkarAjaib
Matriks yang memiliki hasil jumlah yang sama pada elemenelemen
baris,kolomdandiagonalnya.
Bentukumum:
>>magic(n)
Contoh:
>>magic(3)
ans=
816
357
492
5. MatriksAcak
Matriks yang memiliki nilai acak berdasarkan distribusi statistic pada
elemnnya.
Bentukumum:
>>rand(n,m)
Contoh:
>>rand(3,2)
ans=
0.95010.4860
0.23110.8913
0.60680.7621
MATLAB
LABORATORIUMKOMPUTER
11
b. Matriksyangdidefinisikanoleh User
Matlabjugamenyediakanbentukmatriksyangdidefinisikanoleh user.
Contoh:
>>S=[123789]
S=
123
789
Tandasemicolondigunakanuntukmemisahkanbarissatudenganyang
lain.
III.3POLINOMIAL
DiMatlab,sebuahpolinomialdiwakilkanolehsebuahvektor.Untukmenciptakan
polynomial di Matlab, masukkan coefficient polynomial kedalam vector dalam
orde yangmenurun.
Misalkanpolynomialberikut:
s4+3s315s22s+9
UntukmemasukkankedalamMatlab,masukkan:
>>x=[131529]
x=
131529
Contoh:
s4+1
ditulisdiMatlabsebagai:
>>y=[10001]
MATLAB
LABORATORIUMKOMPUTER
12
Andadapatmencarinilaipolynomialmenggunakanfungsipolyval.
Contoh:
untukmencarinilaipolynomialpadas=2,yaitu:
>>z=polyval([10001],2)
z=
17
Andadapatmengekstrakakarpolynomial.
Contoh:
s4+3s315s22s+9
Untukmencariakarpolynomial:
>>roots([131529])
ans=
5.5745
2.5836
0.7951
0.7860
JIkaandainginmengalikanhasil2polynomialslakukandenganconvolutiondari
coefficients.Fungsiconvdapatdigunakan.
>>x=[12]
>>y=[148]
>>z=conv(x,y)
z=
161616
MATLAB
LABORATORIUMKOMPUTER
13
Untukmembagi2polynomialsdapatdilakukandenganfungsideconv.Misalkanz
dibagi ydenganhasilx.
>>[xx,R]=deconv(z,y)
xx=
12
R=
0000
Jika anda ingin menambah 2 polinomial secara bersamaan dengan orde yang
sama, buatlah z=x+y akan berhasil (vectors x dan y harus mempunyai panjang
yangsama).Secaraumum,andadapatmendefinisikanfungsi polyadd.
>>z=polyadd(x,y)
x=
12
y=
148
z=
1510
MATLAB
LABORATORIUMKOMPUTER
14
BABIV
MFILEDANGRAFIK
IV.1PEMROGRAMANMFILE
Mfile merupakan sederetan perintah matlab yang dituliskan secara berurutan
sebagai sebuah file. Nama file yang tersimpan akan memiliki ekstensi .m yang
menandakan bahwa file yang dibuat adalah file matlab. Mfile dapat ditulis
sebagaisebuahscriptataudapatpuladitulissebagaisebuahfungsiyangmenerima
argumentataumasukanyangmenghasilkanoutput.
Contohscriptsederhanadarimatlab :
%menghitungakardari
%persamaankuadraty=ax^2+bx+c
clc
clear
a=input('masukkankonstantaa=')
b=input('masukkankonstantab=')
c=input('masukkankonstantac=')
x1=(b+sqrt(b^24*a*c))/(2*a)
x2=(bsqrt(b^24*a*c))/(2*a)
MATLAB
LABORATORIUMKOMPUTER
15
IV.2GRAFIK
Matlab mempunyai bermacammacam fungsiuntuk menampilkangrafik,dimana
setiap fungsi memiliki perbedaan dalam menskalakan garis sumbu. Setiap
menerima inputan dalam bentuk vector atau matriks, matlab akan menskalakan
secaraotomatis.
a. Plot
Fungsi plot digunakan untuk menggambar grafik 2D dengan skala linear
padakeduasumbunya.
Contoh:
>>x=10:10
>>y=x.^2
>>plot(x,y)
Hasilnyaakantampaksebagaiberikut:
b. Plot3
Fungsi plot3 digunakan untuk menampilkan grafik 3 dimensi. Plot3
memerlukan 3 argumen dengan bentuk plot3(x,y,z), dimana x, y, z
merupakan3bagianvectoryangsamapanjang.
Contoh:
>>t=0:pi/100:10*pi
>>plot3(sin(2*t),cos(2*t),t)
MATLAB
LABORATORIUMKOMPUTER
16
Hasilnyaakantampaksebagaiberikut:
c. Bar
Fungsi bar digunakan untuk menampilkan data yang berbentuk vector
maupun matriks. Grafik bar digunakan untuk menampilkan sekumpulan
data selama kurun waktu terentu dan cocok untuk menampilkan data
dalambentukdiskrit.
Contoh:
>> t=[10 30 21 52 34 67 12 23 90, 23, 45, 26 58 94 30
20]
>>bar(t)
>>gridon
Hasilnyaakantampaksebagaiberikut:
MATLAB
LABORATORIUMKOMPUTER
17
>>bar3(t)
MATLAB
LABORATORIUMKOMPUTER
18
BABV
STATEMENTKONTROL
Sama seperti bahasa pemrograman yang lain, matlab juga memiliki statemen
kontrol. Berikut adalah beberapa pembahasan statemen kontrol yang ada di
Matlab:
V.1IF,ELSEDANELSEIF
If merupakan statemen control yang digunakan untuk mengevaluasi ekspresi
logikadanmengekskusikelompokstatemenyangdidasarkanpadanilaiekspresi.
Penulisankontrolifelseadalahsebagaiberikut:
if<ekspresilogika>statementstatement
elseif<ekspresilogika>statementstatement
else<ekspresilogika>statementstatement
end
contoh:
V.2WHILE
While digunakan untuk melakukan proses perulangan selama kondisi ekspresi
terpenuhi.Begitukondisisudahtidakterpenuhilagi,makaprosesperulanganakan
langsungdihentikan.
Bentukumumdariwhileadalah :
while<ekspresi>
Statementstatement
end
MATLAB
LABORATORIUMKOMPUTER
19
contoh :
V.3FOR
For digunakan untuk melakukan proses perulangan selama kondisi ekspresi
terpenuhi. Perbedaannya dengan while adalah pada for jumlah perulangan dapat
diketahui,sedangkanpadawhilebergantungpadanilaiekspresi.
Bentukumumdariforadalah :
forindeks=nilaiawal:step:nilaiakhir
statementstatement
end
contoh:
V.4CONTINUEDANBREAK
Statemen continue dan break digunakan pada statemen kontrol for atau while.
Fungsi continu adalah melanjutkan ke iterasi berikutnya tanpa menjalankan
statemen yangadadi bawahkondisicontinu.Sedangkan break,digunakanuntuk
menghentikanprosesiterasitanpamelanjutkanperulangan.
MATLAB
LABORATORIUMKOMPUTER
20
Contoh:
MATLAB
LABORATORIUMKOMPUTER
21
BABVI
ANALISADATADANINTERPOLASI
VI.1ANALISADATA
Dalambabini,kitaakanbelajarbagaimanamenganalisisdanmemanipulasidata
mempergunakan MATLAB, terutama untuk perhitungan statistik: rentang data,
maksimum/minimum, ratarata, deviasi, jumlah kumulatif, dan sebagainya. Di
MATLABfungsifungsi statistiksemacaminitelahadadanbisadigunakansecara
fleksibel. Dalam penjelasan bab ini, x dany kita misalkan sebagai vector (baris
ataupunkolom),dan Adan Bsebagaimatriksmn.
a. MaksimumdanMinimum
Nilaimaksimumdanminimumdiperolehdengan commandberikutini :
COMMAND
max(x)
KETERANGAN
menghitungnilaimaksimumdarielemen
vektor x.Jikaxbernilaikompleksmaka
dihitungmax(abs(x))
max(A)
menghitungnilaimaksimumdarisetiapkolom
dimatriksAhasilnyaberupavektor1n
max(max(A))
menghitungnilaimaksimumdarielemen
matriksA
max(A,B)
menghitungmatriksberukuran samadengan A
dan Bdengan elemen berisi nilai terbesar di antara
elemen Adan Bpadaposisiyangsama
min(...)
samadengansintaksmax(...)diatas,tetapi
untukmencariminimum
MATLAB
LABORATORIUMKOMPUTER
22
Datatinggibadan(dalamcm)
175 177 173 165
DataIPmahasiswa
Nama
IPsem1
IPsem2
IPsem3
Agus
3,3
2,8
3,3
Dedy
3,9
4,0
3,8
Tanjung
3,8
3,5
2,9
Vijay
2,9
3,2
3,1
>>x=[175177173165160170174177168170]
>> A=[3.3 2.8 3.33.9 4.0 3.83.8 3.5 2.92.9 3.2
3.1]
>>max(x)
ans=
177
>>max(A),max(A)
ans=
3.90004.00003.8000
ans=
3.30004.00003.80003.2000
>>max(max(A))
ans=
4
MATLAB
LABORATORIUMKOMPUTER
23
Sementaraitu,max(max(A))menghitungIPtertinggiyangpernahdicapai
mahasiswaselama3semester.
b. Statistika
Sekarangkitaakanbelajarcommanduntukanalisisdatastatistik.
COMMAND
mean(x)
KETERANGAN
menghitungratarataaritmatikdarielemen
vektor x
mean(A)
menghitungratarataaritmatikdarielemen
setiapkolomdimatriksAhasilnyaberupavektor1n
median(...)
samasepertisintaksmean(...),tetapiuntuk
menghitungmedian(nilaitengah)samasepertisintaks
std(...)
mean(...),tetapiuntuk
menghitung deviasi standar (simpangan baku) sama
var(...)
sepertisintaksmean(...),tetapiuntuk
menghitungvariansi
Sebagai contoh, kita gunakan kembali data tinggi badan dan nilai IP
mahasiswasepertisebelumnya.
>>x=[175177173165160170174177168170]
>> A=[3.3 2.8 3.33.9 4.0 3.83.8 3.5 2.92.9 3.2
3.1]
>>rataan_IP_sem=mean(A)
rataan_IP_sem=
3.47503.37503.2750
>>rataan_IP_mhs=mean(A')
rataan_IP_mhs=
3.13333.90003.40003.0667
>>rataan_IP_total=mean(mean(A))
rataan_IP_total=
3.3750
MATLAB
LABORATORIUMKOMPUTER
24
>>nilai_tengah=median(x),deviasi=std(x),...
variansi=var(x)
nilai_tengah=
171.5000
deviasi=
5.4661
variansi=
29.8778
VI.2INTERPOLASI
Pada fungsi yang memiliki sejumlah titik terbatas, dimungkinkan untuk
menentukan titiktitik perantaranya dengan interpolasi. Cara termudah untuk
menghitungnya
ialah
dengan
menggunakan
interpolasi
linier
untuk
MATLAB
LABORATORIUMKOMPUTER
25
Sekarangkitainterpolasidenganbeberapametodedankitaplotpadasatugambar
sekaligus:
>>tt=linspace(0,12,100)
>>PP1=interp1(t,pres,tt,*linear)
>>PP2=interp1(t,pres,tt,*cubic)
>>PP3=interp1q(t,pres,tt)
>>figure
>>plot(t,pres,k*,tt,PP1,k,tt,PP2,k:,...
tt,PP3,k)
>>gridon
>>xlabel(waktu(jam)),ylabel(Pressure)
>>legend(data,linier,kubik,interp1q)
>>title(Perbandinganmetodeinterpolasi
MATLAB
LABORATORIUMKOMPUTER
26
BABVII
VISUALISASIDANFUNCTIONMFILE
VII.1VISUALISASI2DDAN3D
MATLABmemilikibeberapabentukgrafikyangdapatdibuatdenganmudahdan
cara penggunaannyapun sederhana. Berikut ini akan diberikan contohcontoh
untukmenampilkanberbagaigrafikberdasarkankategori:
a. Grafik2D:
1. Grafikgaris,mencetakgrafikchirp.
>>x=0:0.05:5{Enter}
>>y=sin(x.^2){Enter}
>>plot(x,y){Enter}
2. GrafikBatang(Bar),mencetakkurvaBELL.
>>x=2.9:0.2:2.9{Enter}
>>bar(x,exp(x.*x)){Enter}
3. GrafikTangga,mencetakGelombangsinusdalamgrafiktangga.
>>x=0:0.25:10{Enter}
>>stairs(x,sin(x)){Enter}
4. GrafikErrorBar,mencetakGrafikErrorBarpadafungsidengan
kesalahansecaraacak.
>>x=2:0.1:2{Enter}
>>y=erf(x){Enter}
>>e=rand(size(x))/10{Enter}
>>errorbar(x,y,e){Enter}
MATLAB
LABORATORIUMKOMPUTER
27
2. GrafikSurface,mencetakgrafikpermukaandarifungsi"peaks"
dengan pola warna "jet" yang telah didefinisikan didalam
MATLAB.
>>z=peaks(25){Enter}
>>surf(z){Enter}
>>colormap(jet){Enter}
3. GrafikContour,mencetakkonturdarifungsi"peaks".
>>z=peaks(25){Enter}
>>contour(z,16){Enter}
4. GrafikQuiver,mencetakpolaarahgerakansuatunilai.
>>x=2:.2:2y=1:.2:1{Enter}
>>[xx,yy]=meshgrid(x,y){Enter}
>>zz=xx.*exp(xx.^2yy.^2){Enter}
MATLAB
LABORATORIUMKOMPUTER
28
>>[px,py]=gradient(zz,.2,.2){Enter}
>>quiver(x,y,px,py,2){Enter}
VII.2FUNCTIONMFILE
Fungsiadalahmfileyangmenerimaargumentinputdanmenghasilkanargument
output.Fungsidapatdipanggillangsungdaricommandwindowataudarisuatum
fileyangberbeda.Aturanpenulisanfungsiadalahsebagaiberikut:
Fungsididalammatlabjikadisimpansecaradefaultakantersimpandengannama
yangsamadengannamafungsinya.
Contoh :
Jika kita akan menggunakan fungsi tersebut, maka pada command window kita
tuliskan :>>akar(1,8,2)
Makaakanmenghasilkanx1=1.1231x2=7.1231
MATLAB
LABORATORIUMKOMPUTER
29