Professional Documents
Culture Documents
MATLAB
Oleh: TeamLabkomputerUMM
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
Menu
Directoryyang sedangaktif
Command window
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
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 pi eps NILAI Untukhasilapapun Perbandinganantarakelilinglingkarandengangaris tengahnya Bilanganterkecilsedemikianrupasehinggabila ditambahkanpadasatu,menghasilkanbilanganlebih besardarisatupadasuatukomputer
MATLAB
LABORATORIUMKOMPUTER
II.2OPERATOR
Padamatlab,operatordiklasifikasikanmenjaditigabagian,yaitu: a. OperatorAritmatika Operatoraritmatikadigunakanuntukmengerjakankomputasinumeric.
OPERATOR + * .*
/ ./ \ .\ ^ .^ :
MATLAB
LABORATORIUMKOMPUTER
c. OperatorLogika OPERATOR & KETERANGAN Akan menghasilkan nilai 1 jika kedua elemen yang bersesuaian memiliki nilaitruedan0untuklainnya | Akan bernilai 1 jika salah satu elemennyatrue ~ xor Komplendarielemenyangdiinputkan Akan bernilai 1 jika salah satu dari kedua elemen memiliki nilai berbeda danbernilainoljikasama
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
dapat bernilai sebarang, bahkan dapat juga negatif, seperti contohberikut: z=10:2:1 z= 108642 4.Memisahkanelemendengantitikkomamembuatelemen berada dalambarisyangberbeda,seperticontohberikut: y=[13579] y= 1 3 5 7 9 b. Menambahkanelemenarray x=[x12]%arraysebelumnya x=[x24]%menambahkan2elemendibelakang x= 1224 x=[1 2 x 3]%menambahkan dua elemen di depan, satudibelakang x= 1212243
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
00000 00000
Contoh:
Contoh:
MATLAB
LABORATORIUMKOMPUTER
10
4. MatriksBujurSangkarAjaib Matriks yang memiliki hasil jumlah yang sama pada elemenelemen baris,kolomdandiagonalnya. Bentukumum: >>magic(n)
Contoh:
5. MatriksAcak Matriks yang memiliki nilai acak berdasarkan distribusi statistic pada elemnnya. Bentukumum: >>rand(n,m)
Contoh:
MATLAB
LABORATORIUMKOMPUTER
11
Tandasemicolondigunakanuntukmemisahkanbarissatudenganyang lain.
III.3POLINOMIAL DiMatlab,sebuahpolinomialdiwakilkanolehsebuahvektor.Untukmenciptakan polynomial di Matlab, masukkan coefficient polynomial kedalam vector dalam orde yangmenurun. Misalkanpolynomialberikut:
4 3 2 s +3s 15s 2s+9
Matlab dapat menginterpretasikan sebuah panjang n+1 sebagai nth order polynomial. Jika polynomial missing pada coefficients, anda harus memasukkan nilainolkedalam tempatyangbersesuaian didalamvector.
Contoh:
4 s +1
ditulisdiMatlabsebagai: >>y=[10001]
MATLAB
LABORATORIUMKOMPUTER
12
Andadapatmencarinilaipolynomialmenggunakanfungsipolyval.
Andadapatmengekstrakakarpolynomial.
Contoh:
4 3 2 s +3s 15s 2s+9
MATLAB
LABORATORIUMKOMPUTER
13
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.
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
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
Matlab juga menyediakan dalam bentuk 3 dimensi, yaitu bar3. Misal grafikdiatasdisajikandalambar3,makakitaketikperintahberikut:
>>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.
COMMAND max(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
Mari kita praktekkan beberapa contoh untuk menambah pemahaman terhadapsintaksdiatas.Misalkanxialahdatatinggibadandari10orang, dan Aialahdataindeksprestasi(IP)dari4mahasiswadalam3semester.
Datatinggibadan(dalamcm) 175 177 173 165 160 170 174 177 168 170
DataIPmahasiswa Nama Agus Dedy Tanjung Vijay IPsem1 3,3 3,9 3,8 2,9 IPsem2 2,8 4,0 3,5 3,2 IPsem3 3,3 3,8 2,9 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
Kita bisa melihat bahwa max(x) menghitung tinggi maksimum dari 10 orang yang ada, max(A) menghitung IP tertinggi pada setiap semester, sedangkan max(A) menghitung IP tertinggi dari setiap mahasiswa.
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(...)
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
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
menghubungkan dua titik yang berdekatan. Command interp1 menggunakan algoritma khusus untuk interpolasi titiktitik data yang terpisah secara seragam. Untukcommandini,kitaharustambahkantandaasteris*didepannamametoda yangdiinginkan,misalkan interp(x,y,xx,*nearest). yy=interp1(x,y,xx)menghitungvektoryyyangpanjangnyasamadenganvektor xx. Dalam hal ini yyfungsi dari xxmerupakan interpolasi dari yfungsi dari x. Vektor xharus diurutkan secara ascending / descending interp1(x,y,xx,string) menghitung interpolasi 1dimensi stringmenunjukkan metode yang digunakan, yaitu:linearnearestsplinecubicinterpolasilinierinterpolasinearestneighbor interpolasi cubicspline interpolasi kubik, membutuhkan jarak pisah seragam padaxApabilastringtidakdituliskan, makadigunakan interpolasi linier.Untuk semua metode tersebut, xharus diurutkan ascending / descending.
interp1q(x,y,xx) bekerja seperti interp1namun lebih cepat untuk titiktitik data yangterpisahtakseragam.x,y,dan xxharusberupavektorkolom. Misalkankitamemilikidatatekananudaradalamsuaturuangtertutupyangdiukur padajamjamtertentusebagaiberikut: >>t=[02358.51012] >>pres=[66090040030050050300]
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:
MATLAB
LABORATORIUMKOMPUTER
27
5. Grafik Polar, mencetak fungsi perkalina sin dan cos dalam bentukpolar. >>t=0:.01:2*pi{Enter} >>polar(t,abs(sin(2*t).*cos(2*t))){Enter}
6. Grafik Stem, mencetak perkalian fungsi sin dengan eksponensial. >>x=0:0.1:4{Enter} >>y=sin(x.^2).*exp(x){Enter} >>stem(x,y){Enter} b. Grafik3D: 1. Grafik Mesh, mencetakbentukgrafik meshdari fungsi "peaks" yangtelahdisiapkandidalamMATLAB. >>z=peaks(25){Enter} >>figure(2)surf(z){Enter}
2. GrafikSurface,mencetakgrafikpermukaandarifungsi"peaks" dengan pola warna "jet" yang telah didefinisikan didalam MATLAB. >>z=peaks(25){Enter} >>surf(z){Enter} >>colormap(jet){Enter}
MATLAB
LABORATORIUMKOMPUTER
28
>>[px,py]=gradient(zz,.2,.2){Enter} >>quiver(x,y,px,py,2){Enter}
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