Anda di halaman 1dari 34

BAB II

MATLAB
Matlab merupakan singkatan dari Matrix Laboratory. Software ini merupakan
hasil pengembangan

proyek software berbasis komputasi matriks : LINPACK dan

EISPACK. Pertama sekali Matlab ditulis dalam bahasa Fortran oleh Cleve Moler dan
versi Matlab sekarang ditulis dalam bahasa C oleh MathWorks.
Matlab merupakan sebuah software yang mengintegrasikan analisa numerik,
komputasi matriks, pemrosesan sinyal dan grafik dimana permasalahan dan solusinya
diekspresikan dalam bentuk notasi matematika. Penggunaannya meliputi :
-

Komputasi Matematika

Pengembangan Algoritma

Pemodelan dan Simulasi

Analisis, Eksplorasi dan Visualisasi Data

Grafik
Saat ini Matlab merupakan salah satu software yang populer digunakan dalam

penelitian berbagai bidang yang memanfaatkan matematika sebagai alat bantu. Dalam
dunia pendidikan, Matlab digunakan sebagai alat bantu untuk perkuliahan tingkat lanjut
Matematika, Teknik dan Sains.
2.1 Fitur/Fasilitas Matlab
Sebagai suatu sistem yang lengkap, Matlab menawarkan bermacam fasilitas
diantaranya :
-

Sebagai software aplikasi yang berbasis pada operasi matriks, maka Matlab
memberikan suatu kemudahan dalam penyelesaian suatu masalah

Fasilitas Toolbox yang lengkap. Toolbox adalah kumpulan file Matlab (M-file,
berekstensi *.m) , dimana filefile tersebut merupakan fungsi yang dibuat untuk
menyelesaikan suatu masalah tertentu dalam bidang tertentu pula. Terdapat lebih
dari 25 Toolbox, diantaranya : statistics toolbox untuk bidang statistik, kemudian
Partial Differential Equation Toolbox untuk persamaan diferensial parsial, dan
lain-lain.

Fasilitas Simulink, suatu sistem interaktif untuk memodelkan dan mensimulasi


suatu fenomena nonlinear secara grafik

Pemrograman di Matlab dapat di konversi ke bahasa pemrograman C dan Fortran.

2.2 Bekerja dengan Matlab


Untuk memanggil Matlab, klik ikon :

Jika tidak tersedia, panggilah melalui Start Menu Window atau melalui Windows Explorer
pada folder C:\Matlab\bin.
Tampilan awal Matlab adalah Matlab Command Window, seperti gambar berikut
ini :

Matlab Command Window digunakan untuk melakukan semua operasi yang


berkaitan dengan Matlab. Dalam window tersebut terdapat double prompt ( >> )
dengan kursor yang berkedip disampingnya . Double prompt digunakan sebagai tempat
untuk menuliskan perintah. Persamaan matematika biasa bisa langsung kita kerjakan
disini, seperti kita menggunakan kalkulator.
Sebagai contoh ketiklah >>pwd

kemudian tekan tombol enter, maka tampak

lokasi direktori aktif (lokasi direktori dimana kita bekerja saat ini).

Cobalah ketik >>helpwin

kemudian tekan tekan tombol enter, maka akan

tampak :Matlab Help Window, yang merupakan window bantuan untuk fungsi fungsi
yang ada di Matlab.

Dalam Matlab untuk membuat suatu fungsi yang akan disimpan dalam bentuk file
berekstensi M (biasa dilakukan untuk pemrograman) digunakan fasilitas Matlab editor.
Pemanggilan Matlab Editor dapat dilakukan dengan mengetikan >>edit kemudian tekan
tombol enter, akan tampil window berikut :

Cara lain yang biasa dilakukan untuk pemanggilan Matlab editor dilakukan dari
menu file.
Untuk mengubah direktori gunakan perintah >>cd (seperti perintah dos). Cara
lain bisa dilakukan dengan meng klik ikon path browser yang terletak di atas Matlab
Command Menu.

Akan muncul window berikut:

2.3 Perintah-Perintah Dasar pada Matlab


Operator pada Matlab dapat dilihat pada tabel berikut :
Conditional & Logical Operators
=
<>
<
<=
>
>=
AND
OR

NOT

equal
not equal
less than
less than or equal
greater than
greater than or equal
and
or

not

==
~=
<
<=
>
>=
&
|

equal
not equal
less than
less than or equal
greater than
greater than or equal
and
or

not

Operator yang lainnya yang umum dipakai adalah : + - * ^ .^ / \ .

Untuk mendapatkan toolbox symbolic math (simbol matematika), diperoleh dari


Matlab Demos, pilih Toolboxes, pilih Symbolic Math (kotak sebelah kiri), kemudian
Introduction (kotak sebelah kanan).
Jika akan membuat suatu yang sederhana, misalnya vektor, masukkan setiap
elemen vektor yang dipisahkan dengan spasi di antara dua kurung siku, dan set sebagai
suatu variabel tertentu.
Contoh:
a=[123456789]
a=
1

Apabila diinginkan hasil dari sebuah vektor dengan elemen antara 0 dan 20
dengan kenaikan 2, yang akan menghasilkan suatu vektor waktu, maka dapat digunakan
perintah sebagai berikut:
t = 0:2:20
t=
0

10

12

14

16

18

20

Memanipulasi vektor biasanya lebih mudah daripada membuatnya. Apabila akan


menambahkan 2 untuk setiap elemen dalam vektor a, persamaan untuk hal tersebut
adalah:
b = a+2
b=
3

10

11

Jika kita ingin menjumlahkan dua vektor yang sama panjangnya, cukup
menjumlahkan dua vektor tersebut, seperti yang tampak di bawah ini:
c = a+b
c=
4

10

12

14

16

18

20

Selain operasi penjumlahan vektor, di dalam MATLAB juga terdapat beberapa standar
fungsi seperti sin, cos, log, exp, sqrt dan masih banyak lagi yang lain. Konstanta yang
biasanya digunakan adalah pi, dan I atau j untuk akar dari 1 (imajiner). Untuk
menentukan beberapa fungsi yang digunakan, ketik help nama fungsi pada MATLAB
Command Window.
sin(pi/4)
ans =
0.7071
Untuk membuat plot dari suatu fungsi, missal fungsi sin, MATLAB menyediakan juga
fasilitasnya, pertama-tama buat batas intervalnya dengan menggunakan vektor waktu.
Tanda ; digunakan untuk tidak melihat semua nilainya. Kemudian menghitung nilai sin
pada tiap-tiap titik.
Contoh:
t = 0:0.25:7;
y=sin(t);
plot(t,y)
Akan muncul suatu window yang berisi plot pendekatan satu periode dari gelombang
sinus.
2.3.1 Kalkulus
Operasi dasar pada kalkulus: diferensial, limit, integrasi, penjumlahan, dan lain-lain.
Untuk menghitung diferensial dari suatu fungsi
f(x) = sin ax,
dapat digunakan perintah diff(f):
syms a x
f=sin(a*x)
df=diff(f) % turunan pertama dari fungsi f
dfa=diff(f,a) % turunan pertama dari fungsi f terhadap a
dfa

Untuk menghitung turunan kedua terhadap x dan a


diff(f,2) % turunan kedua dari fungsi f
diff(f,x,2) % turunan kedua dari fungsi f terhadap x
diff(f,a,2) % turunan kedua dari fungsi f terhadap a
Fungsi Matematika
f=x

Perintah di MATLAB
f = x^n

f = nxn-1
g = a cos(at+b)

diff(f) atau diff(f,x)


g = a*cos(a*t+b)

g = a cos(at+b)

diff(g) atau diff(g,t)

Pendefenisian a, x, b, n, t di matlab dengan menggunakan perintah syms.


Turunan dari suatu fungsi dapat dinotasikan dengan matrik :
syms a x
A = [cos(a*x),sin(a*x);-sin(a*x),cos(a*x)]
dy=diff(A)
Perhitungan matrik Jacobian

syms r t f
x = r*cos(t)*cos(f); y = r*cos(t)*sin(f); z = r*sin(t);
J = jacobian([x; y; z], [r t f])
detJ = simple(det(J))
Tabel diferensial dan Jacobian.

Limit dari suatu fungsi f(x), dituliskan sebagai f(x) didefinisikan sebagai:

Selanjutnya untuk perintah di Matlab adalah :


syms h n x
dc=limit( (cos(x+h)-cos(x))/h,h,0)
limit( (1 + x/n)^n,n,inf )
Untuk penulisan fungsi-fungsi limit di bawah ini,

dapat ditulis dalam MATLAB:


limit(1/x,x,0) % Ekuivalen dengan limit(1/x)
limit(1/x,x,0,'left')
limit(1/x,x,0,'right')

Untuk mengintegralkan fungsi f digunakan perintah int(f)

Integrasi dengan konstanta real dari suatu fungsi, misalnya funsi eksponensial dengan k
suatu konstanta, sebagai berikut:

dapat dihitung dengan menuliskan perintah sebagai berikut:


syms x
k = sym(1/sqrt(2));
f = exp(-(k*x)^2);
ezplot(f) % plot untuk fungsi f

Apabila fungsinya berbentuk sebagai berikut,

maka dapat dituliskan sebagai:


syms k x;
f=exp(-(k*x)^2);
int(f,x,-inf,inf)
Suatu integral tidak dapat ditentukan hasilnya apabila integral tersebut konvergen.
Apabila kita ingin menghitung jumlah dari suatu deret, dan hasilnya dinyatakan
secara simbolik (bukan numerik). Maka dapat digunakan perintah symsum.
Contoh: Diketahui suatu barisan yang tak berhingga:

Maka operasi dalam Matlab adalah:


syms x k
s1 = symsum(1/k^2,1,inf)
s2=symsum(x^k,k,0,inf)
Toolbox Symbolic Math Toolbox untuk fungsi ezplot(f) menghasilkan suatu plot
dari f(x) sebagai berikut:

ezplot(f,[a b]) % {Akan menghasilkan suatu grafik dari f(x) pada interval a < x < b.}

2.3.2. Aljabar Linear


Dalam Matlab terdapat juga fasilitas yang dapat digunakan untuk operasi dasar
Aljabar. Hal ini dapat diilustrasikan menurut contohcontoh di bawah ini.
Diberikan transformasi menghasilkan perputaran dengan sudut t, dengan statemen
sebagai berikut:
syms t;
G=[cos(t) sin(t); -sin(t) cos(t)]
Menghasilkan transformasi matriks:
G=
[ cos(t), sin(t)]
[ -sin(t), cos(t)]
Mengalikan suatu matriks G dengan dirinya sendiri dengan menggunakan perintah:
A=G*G
Menghasilkan matriks :
A=
[ cos(t)^2-sin(t)^2, 2*cos(t)*sin(t)]
[ -2*cos(t)*sin(t), cos(t)^2-sin(t)^2]
Pilihan lain untuk manipulasi matriks yaitu dapat mengalikan tiap-tiap elemen dari dua
matriks dengan menggunakan operator .* (ordo dari matriks harus sama).
Contoh :
E = [ 1 2 ; 3 4]
E=
1

F = [2 3 ; 4 5]
F=
2

G=E.*F
G=
2

12

20

Fungsifungsi dalam matriks A tersebut dapat disederhanakan dengan perintah:


A=simple(A)
Hasil penyederhanaan dari matriks A adalah
A=
[ cos(2*t), sin(2*t)]
[ -sin(2*t), cos(2*t)]
Jika diberikan perputarannya adalah matrik ortogonal, maka transposnya merupakan
invers dari matriks tersebut.
I=G'*G
Dengan G. = invers dari G, maka menghasilkan matriks identitas sebagai berikut:
I=
[ cos(t)^2+sin(t)^2,
[

0]

0, cos(t)^2+sin(t)^2]

Dengan cara yang sama matrik I dapat disederhanakan dengan perintah :


I = simple(I)
Maka diperoleh,
I=
[ 1, 0]
[ 0, 1]
Untuk menurunkan 3 x 3 dari suatu matriks Hilbert, dapat menggunakan perintah :
H=hilb(3)
H=
1.0000

0.5000

0.3333

0.5000

0.3333

0.2500

0.3333

0.2500

0.2000

Elemen elemen dari matriks H tersebut dapat juga dijadikan bentuk rasional dengan
matriks simbolik sebagai berikut:
H=sym(H)
H=
[

1, 1/2, 1/3]

[ 1/2, 1/3, 1/4]


[ 1/3, 1/4, 1/5]
Mencari Invers dan determinan suatu matriks, dengan menggunakan perintah inv
inv(H)
ans =
[

9, -36,

30]

[ -36, 192, -180]


[ 30, -180, 180]
det(H)
ans =
1/2160
Dapat juga menggunakan tanda \ untuk menyelesaikan sistem persamaan linier.
Jika diberikan b=[1 1 1]
b = [1 1 1]';
x = H\b % untuk menyelesaikan Hx = b
x=
[ 3]
[ -24]
[ 30]
Ketiga hasil diatas yaitu invers, determinan, dan penyelesaian sistem persamaan linier
merupakan nilai eksak.

Sebaliknya dengan menggunakan digit (16), perintah yang digunakan adalah:


V = vpa(hilb(3))
V=
[

1., .5000000000000000, .3333333333333333]

[.5000000000000000, .3333333333333333, .2500000000000000]


[.3333333333333333, .2500000000000000, .2000000000000000]
Sedangkan Invers, determinan dan penyelesaian persamaan matrik V adalah sebagai
berikut :
inv(V)
ans =
[ 9.000000000000032, -36.00000000000000, 30.00000000000000]
[-36.00000000000039, 192.0000000000000, -180.0000000000019]
[ 30.00000000000035, -180.0000000000019, 180.0000000000019]
det(V)
ans =
.46296292962958e-3
V\b
ans =
[ 3.000000000000041]
[-24.00000000000021]
[ 30.00000000000019]
Untuk contoh matriks H diatas merupakan matrik non singular, karena det(H) <> 0. Bila
ingin menjadikan matrik H singular maka harus mencari salah satu elemen dari matrik H
tersebut supaya det(H)=0.
Contoh:
syms s
H(1,1) = s

H=
[ s, 1/2, 1/3]
[ 1/2, 1/3, 1/4]
[ 1/3, 1/4, 1/5]
Z=det(H)
Z=
1/240*s-1/270
sol=solve(Z)
sol =
8/9
H=subs(H,s,sol)
H=
[ 8/9, 1/2, 1/3]
[ 1/2, 1/3, 1/4]
[ 1/3, 1/4, 1/5]
Sehingga diperoleh matriks H yang singular dengan det=0.
det(H)
ans =
0
inv(H)
??? Error using ==> sym/inv
Error, (in inverse) singular matrix
Hal ini terjadi karena matrik H nya singular.
Nilai eigen dari suatu matriks A dapat dihitung dengan perintah : E = eig(A).
Atau jika ingin menghitung nilai eigen dan vektor eigen dapat menggunakan perintah
[V,E] = eig(A).

Untuk contoh matriks H terakhir, merupakan matriks yang singular, maka salah satu nilai
eigennya 0, statemen:
[T,E] = eig(H) menghasilkan matrik T dan matrik E, dimana kolom dari matrik T
merupakan vektor eigen dari matrik H, dan element diagonal dari matrik E merupakan
nilai eigen dari matrik H.
Hasil dari statement diatas:
T=
[ 1, 28/153+2/153*12589^(1/2), 28/153-2/153*12589^(1/2) ]
[ -4,

1,

1]

[10/3,92/255-1/255*12589^(1/2),292/255+1/255*12589^(1/2)]
E=
[ 0,

0,

[ 0, 32/45+1/180*12589^(1/2),
[ 0,

0]
0]

, 292/255+1/255*12589^(1/2)]

Penjumlahan dan pengurangan vektor dan matriks adalah penjumlahan masing-masing


elemennya. Pada Matlab, operasi penjumlahan dan pengurangan ditandai dengan tanda
plus (+) dan tanda minus (-).
Contoh :
A = [5 6 7]
A=
5

B = [1 2 3]
B=
1

A- B
ans =
4

A+ B
ans =
6

10

Syarat penjumlahan dan pengurangan adalah dimensi kedua vektor atau matriks harus
sama. Pada perkalian vektor dan matriks dilakukan menurut persamaan :
C = AB

cik = aij.bij

Syarat perkalian vektor dan matriks adalah jumlah baris vektor/matriks pertama harus
sama dengan jumlah kolom vektor/matriks kedua.
Contoh :
C = [1 2 3;4 5 6;7 8 9;10 11 12]
C=
1

10

11 12

D = [1 3;2 4; 5 7]
D=
1

C*D
ans =
20

32

44

74

68 116
92 158
Pada pembagian matriks, terdapat dua macam :
-

pembagian kiri : x = A\B diartika sebagai penyelesaian A*x = B

pembagian kanan : x = A/B diartikan sebagai x = A*inv(B)

Sama halnya dengan perkalian dan pembagian matriks, pemangkatan elementer juga
berlaku untuk setiap elemen suatu vektor/matriks.
Contoh :
A = [1 2 3]
A=
1

B = [4 5 6]
B=
4

A*B'
ans =
32

(perkalian vektor biasa)

A.*B
ans =
4

10

18

(perkalian elementer)

A./B
ans =
0.2500

0.4000

0.5000

(pembagian elementer)

A.^2
ans =
1

(1^2 2^2 3^2)

B.^A
ans =
4

25 216

(4^1 5^2 6^3)

Operasi fungsional pada Matlab dapat diaplikasikan pada vektor dan/atau matriks.
Misalnya jika x = [1 2 3] dan y = x2 + 2x + 4, maka persamaan y(x) dapat dievaluasi
secara vektor.
x = [1 2 3]
x=
1

y = x.^2 + 2*x + 4
y=
7

12

19

Beberapa fungsi bawaan dapat juga diaplikasikan secara vektor dan matriks
misalnya sinus, cosinus, exponen, logaritma dan sebagainya. Pemahaman tentang operasi
pada vektor dan matriks ini sangat membantu menyelesaikan masalah menggunakan
Matlab, karena beberapa kegiatan iteratif diganti dengan hanya sebuah atau beberapa
buah perintah Matlab.
Pada Matlab, membentuk suatu vektor/matriks sangat sederhana sekali. Selain itu
ada beberapa trik yang dapat dipergunakan dalam pembuatan suatu vektor atau matriks,
contohnya dapat dilihat pada perintah-perintah berikut :
b = ones
b=
1
b = ones(5)
b=
1

b = 2*ones(5)
b=
2

b = 2+ones(5)
b=
3

a = zeros(4)
a=
0

zeros(4,3)
ans =
0

zeros (4,1)
ans =
0
0
0
0
C = 1:10
C=
1

10

D = 1:2:10
D=
1

Jika membuat loop pada vektor/matriks dapat dilakukan dengan cara sebagai berikut :
>> for j=1:4,
j
end
j=
1
j=
2
j=
3
j=
4
v = 1:3:10
v=
1

10

>> for j=1:4,


v(j) = j;
end
>> v
v=
1

Tetapi harus diingat, pada contoh yang sederhana ini cara seperti ini tidak dianjurkan
digunakan karena kurang efesien.
Berikut ini sebuah contoh penggunaan for akan diberikan, dimana diinginkan
melakukan operasi pada setiap baris yang dimulai dari baris kedua dengan cara
mengurangkan nilainya terhadap baris sebelumnya dan dikanjutkan dengan baris
berikutnya. Sebuah perintah singkat dapat digunakan untuk mengatasi masalah ini.
Contoh :
>> A = [ [1 2 3]' [3 2 1]' [2 1 3]']
A=
1

>> B = A;
>> for j=2:3,
A(j,:) = A(j,:) - A(j-1,:)
end
A=
1

-1

-1

A=
1

-1

-1

2.4 Pemrograman pada Matlab


Hampir seluruh operasi Matlab dilaksanakan melalui script, yatu urutan perintahperintah yang dituliskan dalam bentuk teks. Seperti halnya script-script lainnya (misalnya
file-file berekstensi .bat di sistem operasi DOS), script Matlab juga harus dijalankan
dalam program Matlab sebagai lingkungannya. Script ini dapat berupa urutan perintah
seperti layaknya script-script lainnya, tetapi dapat juga merupakan sebuah fungsi atau
subrutin. Sebagai fungsi, script Matlab dapat menerima variabel dan menghasilkan suatu
besaran. Dengan demikian, pekerjaan dapat dipecah-pecah menjadi beberapa pekerjaan
kecil dan dilaksanakan dalam fungsi-fungsi tersebut sehingga penyelesaiannya menjadi
lebih mudah.
Berikut ini akan dipaparkan bagaimana membangun script dan fungsi,
menempatkannya dalam lingkungan operasi Matlab, mengeksekusinya, menangani
variabel-variabel yang terlibat di dalamnya, melewatkan variabel melalui fungsi dan
mengatur aliran program.
2.4.1 Membuat File program yang Dapat Dieksekusi pada Matlab
File script adalah sebuah file teks dan bisa dibuat menggunakan editor teks biasa
seperti notepad pada windows atau editor edit.exe pada DOS. Tetapi pada Matlab versi
5.x yang baru, editor khusus telah disediakan. Editor ini dilengkapi dengan pustaka katakata kunci Matlab yang berwarna lain sehingga memudahkan penyuntingan program.
Selain itu editor juga dilengkapi dengan pemandu pasangan kurung (bracket), fungsinya
menunjukkan pasangan kurung buka dan kurung tutup yang berkesesuaian. Ini penting
saat penyuntingan persamaan yang melibatkan kurung berlapis-lapis.
Untuk mengeksekusi script atau fungsi, tulislah nama fungsi tersebut pada
double promt (>>) atau dengan perkataan lain bahwa untuk membuat script biasa,
tulislah perintah-perintah Matlab dengan urutan yang benar pada Matlab editor, kemudian

untuk menjalankannya atau untuk melihart hasilnya, ketik nama file tersebut di Matlab
command. Jangan gunakan huruf kapital karena nama fungsi di Matlab diharuskan
menggunakan huruf non-kapital.
Beberapa catatan dapat diberikan di awal fungsi/script sebagai pesan untuk para
pengguna lain atau sebagai catatan untuk mengingatkan fungsi dan urutan kerja program
di kemudian hari. Catatan di awal program dapat digunakan sebagai catatan yang dapat
dimunculkan melalui perintah help. Catatan di badan program walaupun tidak dapat
keluar melalui perintah help, tetapi akan memudahkan dalam mengenali kembali alur
program yang telah dibuat.
Perhatikan contoh berikut :
% contoh1.m
A = [1 2 3 ; 4 5 6]
B = [2 3;4 5;6 7]
C = A*B

>>contoh1
A=
1

B=
2

C=
28

34

64

79

: Menghitung perkalian matriks dengan nama file: contoh1.m

Script dapat menerima masukan melalui input dari keyboard, tetapi tidak dapat
menerima masukan berupa argumen, karena itu script hanya digunakan untuk programprogram singkat atau program induk.
Penggunaan fungsi lebih fleksibel dibandingkan script biasa. Fungsi dapat
menerima masukan berupa argumen. Walaupun fungsi dapat menerima masukan dari
keyboard, tetapi pemogram biasanya tidak menempatkan pekerjaan ini dalam fungsi
kecuali ada tujuan khusus untuk itu.
Sebuah fungsi harus memiliki header yang ditandai dengan kata kunci function.
Pada header tersebut terdapat variabel output, nama fungsi dan variabel input. Nama
fungsi disini tidak selalu mencerminkan nama fungsi yang sebenarnya. Nama fungsi
sebenarnya adalah nama file .m yang berisi fungsi tersebut. Walaupun demikian, nama
fungsi pada header sebaiknya sama dengan nama file agar tidak membingungkan.
Perhatikan contoh berikut :
function R = contoh2(P,Q)
% contoh2.m : menghitung perkalian matriks
R = P*Q

A = [1 2 3;4 5 6];
B = [2 3;4 5;6 7];
C = contoh2(A,B)
C=
28

34

64

79

C=
28

34

64

79

Perhatikan bahwa nama variabel di dalam fungsi dan variabel pemanggil fungsi
tidak harus sama. Matlab membedakan variabel di luar fungsi dan variabel di dalam
fungsi. Variabel di dalam fungsi bersifat lokal dan hanya berlaku di dalam fungsi.
Selain melalui script dan fungsi, Matlab juga menyediakan fasilitas untuk
mengevaluasi suatu string sebagai hubungan (persamaan) matematik. Perintal eval
dapat menterjemahkan string menjadi suatu persamaan dan mengevaluasinya.
>> eval(cos(2*pi))
ans =
1
Perintah fevaldapat mengeksekusi suatu fungsi dengan nama string untuk variabel
masukan tertentu.
>> y = feval(sin,0.5*pi)
y=
1
2.4.2 Menempatkan m-file dalam Lingkungan Kerja Matlab
Lingkungan kerja Matlab memiliki alamat-alamat tertentu dalam harddisk yang
akan digunakan saat mencari suatu fungsi tertentu. Apabila file script/fungsi yang dibuat
berada di luar direktori kerja dan di luar alamat-alamat tersebut, maka Matlab akan
melaporkan bahwa file tersebut tidak ditemukan.
Mengapa hal ini menjadi suatu yang membingungkan, bukankah file-file tersebut
bisa ditempatkan bersama dengan file-file program Matlab yang lain? Jawabannya tentu
saja tidak! Menempatkan file-file program bersama file-file Matlab akan membuat filefile tersebut tidak tersusun dengan teratur dan akan menyulitkan pencarian dikemudian
hari. Untuk menghindari hal ini, tempatkan file-file kerja di dalam sebuah direktori
tertentu, kemudian daftarkan alamat direktori tersebut ke dalam daftar pencarian Matlab
(matlabpath).
Memasukkan alamat direktori kerja ke dalam alamat pencarian Matlab dapat
dilakukan melalui perintah menu : File Set Path , kemudian pilih direktori kerja
melalui Browse. Setelah selesai, jangan lupa File save path. Untuk mengetahui apakah

direktori kerja telah dikenali oleh Matlab, ubahlah direktori kerja Matlab dengan perintah
cd (misalnya ke direktori/matlab/bin) kemudian panggillah salah satu fungsi yang ada di
dalam direktori tersebut. Apabila fungsi tersebut dapat dieksekusi, maka Matlab telah
mengenali alamat direktori kerja tersebut.
2.4.3 Pengaturan Variabel
Penggunaan variabel dalam pemrograman penting untuk diperhatikan. Berikut ini
beberapa hal yang perlu diperhatikan.
2.4.3.1 Penamaan Variabel
Nama variabel penting untuk diperhatikan. Janganlah membuat nama variabel
cukup singkat sehingga sulit untuk dikenali. Sebaliknya jangan membuatnya terlalu
panjang sehingga akan memakan tempat.
Buatlah daftar variabel dan penjelasannya, khususnya variabel masukan dan
keluaran pada fungsi, agar orang lain dapat dengan mudah menggunakan fungsi ini. Perlu
diperhatikan bahwa Matlab membedakan huruf kapital dan huruf non-kapital dalam
penamaan variabel. Jadi Data akan berbeda dengan DATA dan data.
2.4.3.2 Variabel Lokal dan Variabel Global
Pada script, seperti halnya pada sistem Matlab, variabel yang dideklarasi/
didefenisikan bersifat global, artinya variabel tersebut tetap ada di dalam ruang kerja
(workspace) hingga dihapus (dengan clear) atau terhapus pada saat Matlab diterminasi.
Lain halnya variabel-variabel yang dideklarasikan di dalam fungsi. Variabelvariabel ini bersifat lokal dan tidak dapat diintervensi dari luar. Tetapi harus diingat,
variabel-variabel ini bukan bukan variabel-variabel input dan output fungsi. Untuk
memberi gambaran tentang variabel lokal ini perhatikan contoh berikut.
function a = contoh3(b)
% Contoh pemakaian variabel lokal dan variabel global
c=3
a=b+c

>>c = 5

% mula-mula c = 5

c=
5
>>b = 7
b=
7
>>a = contoh3(b)

% masuk fungsi contoh3

c=
3

% di dalam fungsi c = 3

a=
10
a=

% sudah diluar fungsi lagi!


10

>>c

% harga c di luar fungsi tetap = 5

c=
5
Setiap variabel menempati suatu ruang di memory sesuai dengan jenis variabel
tersebut. Semakin banyak variabel yang digunakan, maka semakin besar pula ruang
memory yang digunakan untuk variabel-variabel ini. Apabila masalah yang diselesaikan
melibatkan jumlah variabel yang cukup banyak, sebaiknya variabel-variabel yang sudah
tidak digunakan dihapus dengan perintah clear <nama_variabel> untuk memberi
tempat kepada variabel-variabel yang baru.
2.4.3.3 Melewatkan Variabel Melalui Fungsi
Seperti yang telah dijelaskan bahwa selain variabel input dan output, variabel di
dalam fungsi bersifat lokal. Kadangkala ada beberapa variabel yang diperlukan oleh
subrutin fungsi yang dipanggil oleh subrutin lainnya.
Sebagai ilustrasi, misalkan program utama memiliki variabel a, b, c dan d.
program utama memanggil fungsi sub1 dan fungsi ini memanggil fungsi sub2 lain.
Fungsi sub1 memerlukan variabel a, b dan c, sedangkan fungsi sub2 memerlukan variabel
c dan d. Ada 2 cara melewatkan variabel d menuju sub2 :

1. Dengan melewatkan variabel d pada fungsi sub1. namun ini akan sulit apabila fungsi
yang digunakan adalah fungsi-fungsi toolbox Matlab. Apabila terpaksa harus
menjalani langkah ini, sejumlah perintah-perintah di fungsi tersebut harus diubah,
terutama yang melaksanakan perintah feval.
% Program utama : main.m
A = 1;
B = 2;
C = 3;
D = 4;
E = sub1(A,B,C,D)
function y = sub1(a,b,c,d)
p = sub2(c,d)
y = a + b + p;
function q = sub2(m,n)
q = m + n;
>>main
E=
10
2. Dengan perintah global. Variabel yang bersifat global didefenisikan di program
utama, sehingga akan selalu bersifat global di setiap fungsi. Pada Matlab versi 5.x hal
ini tidak berlaku sepenuhnya. Variabel global didefenisikan di program utama, dan di
subrutin yang akan menerimanya saja, sehingga variabel tersebuttidak sepenuhnya
global di dalam fungsi lain. Hal ini menguntungkan untuk menghindari terjadinya
penggunaan nama variabel yang sama sehingga terjadi pergantian nilai (overwrite).

% Program utama : main.m


A = 1;
B = 2;
C = 3;
D = 4;
global D
E = sub1(A,B,C)
function y = sub1(a,b,c)
disp(D di sub1);
D=1
p = sub2(c)
y = a + b + p;
function q = sub2(m)
global D
q = m + D;
disp(D di sub2);
D
>>main
D di sub1
D=
1
D di sub2
D=
4
E=
10

2.5 Mengatur Alur Program


Sebagaimana bahasa pemrograman pada umumnya, Matlab juga memiliki
perintah-perintah untuk mengatur alur program. Ada beberapa perintah Matlab yang
dapat digunakan untuk mengatur alur program antara lain :
a. if else
Perintah ini adalah perintah klasik pemrograman. Identik dengan jika maka, perintah
ini dapat digunakan untuk menguji suatu kondisi tertentu. Sintaks dari perintah ini
diperlihatkan pada contoh berikut :
% Program : test.m
a = input(a = );
if a = = 0
disp(a sama dengan nol);
elseif a < 0
disp(a negatif);
else
disp(a positif);
end
>>test
a=4
a positif
>>test
a = -4
a negatif
>>test
a=0
a sama dengan nol
b. for
Perintah ini juga merupakan perintah klasik bahasa pemograman. Fungsi for adalah
untuk melakukan loop sejumlah urutan yang telah ditentukan. Sintaks dari perintah ini
diperlihatkan pada contoh berikut :

% Program : test.m
for i = 1:10
for j = 1:2:10
A(i,j) = (i+j);
end
end
A

test
A=
2

10

11

10

12

11

13

10

12

14

11

13

15

10

12

14

16

11

13

15

17

10

12

14

16

18

11

13

15

17

19

Urutan loop dapat sebuah vektor dengan bilangan-bilangan tertentu seperti contoh di atas:
untuk i urutan dari 1 sampai 10 dengan kenaikan 1, sedangkan untuk j sari sampai 10
dengan kenaikan 2. jika x = [1 1.3 5.4 2.3 5.5 7], maka for x = x akan memberikan
harga-harga x seperti setiap elemen dalam vektor x : x(1) = 1, x(3) = 5.4, dan seterusnya.
c. while
Perintah ini akan mengulang perintah-perintah yang diapitnya selama kondisi pengujinya
benar. Di dalam loop harus ada perintah-perintah yang membuat kondisi penguji menjadi
salah, karena kalau tidak loop akan berlangsung terus. Contoh dapat dilihat pada
perhitungan epsilon mesin Matlab.

% Program : epsilon.m
satu = inf;
eps = 1;
while satu > 1
eps = eps/2;

% nilai eps semakin lama semakin kecil

satu = 1 + eps;

% satu suatu saat akan sama dengan 1

end
eps = eps*2

epsilon
eps =
2.2204e-016
d. switch case otherwise
Perintah ini mengarahkan alur program melalui sejumlah pilihan. Perintah ini untuk
menggantikan perintah if elseif else yang bertumpuk.
Contoh :
% Program : pilihan.m
a = input('a = ');
switch a
case (0), disp('a nol')
case (1), disp('a satu')
otherwise
disp('a bukan nol atau satu');
end

pilihan
a=1
a satu
pilihan
a=0
a nol
pilihan
a = -3
a bukan nol atau satu
pilihan
a=4
a bukan nol atau satu

Anda mungkin juga menyukai