panduan matlab untuk teknik kimia

45
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 :

Upload: harrisons

Post on 15-Dec-2014

248 views

Category:

Documents


14 download

TRANSCRIPT

Page 1: Panduan Matlab Untuk Teknik Kimia

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 file–file 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.

Page 2: Panduan Matlab Untuk Teknik Kimia

- 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).

Page 3: Panduan Matlab Untuk Teknik Kimia

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 :

Page 4: Panduan Matlab Untuk Teknik Kimia

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

= equal <> not equal < less than <= less than or equal > greater than >= greater than or equal AND and OR or

NOT not

== equal ~= not equal < less than <= less than or equal > greater than >= greater than or equal & and | or

~ not

Page 5: Panduan Matlab Untuk Teknik Kimia

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 = [ 1 2 3 4 5 6 7 8 9 ]

a =

  1 2 3 4 5 6 7 8 9

 

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 2 4 6 8 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 4 5 6 7 8 9 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 6 8 10 12 14 16 18 20

Page 6: Panduan Matlab Untuk Teknik Kimia

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

Page 7: Panduan Matlab Untuk Teknik Kimia

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 Perintah di MATLAB

f = xn

f’ = nxn-1

f = x^n

diff(f) atau diff(f,x)

g = a cos(at+b)

g’ = a cos(at+b)

g = a*cos(a*t+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))

 

Page 8: Panduan Matlab Untuk Teknik Kimia

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')

 

Page 9: Panduan Matlab Untuk Teknik Kimia

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

 

 

Page 10: Panduan Matlab Untuk Teknik Kimia

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.}

Page 11: Panduan Matlab Untuk Teknik Kimia

2.3.2. Aljabar Linear

Dalam Matlab terdapat juga fasilitas yang dapat digunakan untuk operasi dasar

Aljabar. Hal ini dapat diilustrasikan menurut contoh–contoh 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 2

3 4

» F = [2 3 ; 4 5]

F =

2 3

4 5

Page 12: Panduan Matlab Untuk Teknik Kimia

» G=E.*F

G =

2 6

12 20

 

Fungsi–fungsi 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

Page 13: Panduan Matlab Untuk Teknik Kimia

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.

Page 14: Panduan Matlab Untuk Teknik Kimia

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

Page 15: Panduan Matlab Untuk Teknik Kimia

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).

Page 16: Panduan Matlab Untuk Teknik Kimia

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]

[ 0, 32/45+1/180*12589^(1/2), 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 6 7

» B = [1 2 3]

B =

1 2 3

» A - B

ans =

4 4 4

Page 17: Panduan Matlab Untuk Teknik Kimia

» A + B

ans =

6 8 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 2 3

4 5 6

7 8 9

10 11 12

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

D =

1 3

2 4

5 7

» 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)

Page 18: Panduan Matlab Untuk Teknik Kimia

Sama halnya dengan perkalian dan pembagian matriks, pemangkatan elementer juga

berlaku untuk setiap elemen suatu vektor/matriks.

Contoh :

» A = [1 2 3]

A =

1 2 3

» B = [4 5 6]

B =

4 5 6

» 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 4 9 (1^2 2^2 3^2)

» B.^A

ans =

4 25 216 (4^1 5^2 6^3)

Page 19: Panduan Matlab Untuk Teknik Kimia

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 2 3

» 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 1 1 1 1

1 1 1 1 1

1 1 1 1 1

1 1 1 1 1

1 1 1 1 1

Page 20: Panduan Matlab Untuk Teknik Kimia

» b = 2*ones(5)

b =

2 2 2 2 2

2 2 2 2 2

2 2 2 2 2

2 2 2 2 2

2 2 2 2 2

» b = 2+ones(5)

b =

3 3 3 3 3

3 3 3 3 3

3 3 3 3 3

3 3 3 3 3

3 3 3 3 3

» a = zeros(4)

a =

0 0 0 0

0 0 0 0

0 0 0 0

0 0 0 0

» zeros(4,3)

ans =

0 0 0

0 0 0

0 0 0

0 0 0

Page 21: Panduan Matlab Untuk Teknik Kimia

» zeros (4,1)

ans =

0

0

0

0

» C = 1:10

C =

1 2 3 4 5 6 7 8 9 10

» D = 1:2:10

D =

1 3 5 7 9

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 4 7 10

Page 22: Panduan Matlab Untuk Teknik Kimia

>> for j=1:4,

v(j) = j;

end

>> v

v =

1 2 3 4

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 3 2

2 2 1

3 1 3

>> B = A;

>> for j=2:3,

A(j,:) = A(j,:) - A(j-1,:)

end

A =

1 3 2

1 -1 -1

3 1 3

Page 23: Panduan Matlab Untuk Teknik Kimia

A =

1 3 2

1 -1 -1

2 2 4

2.4 Pemrograman pada Matlab

Hampir seluruh operasi Matlab dilaksanakan melalui script, yatu urutan perintah-

perintah 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 kata-

kata 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,

Page 24: Panduan Matlab Untuk Teknik Kimia

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 : Menghitung perkalian matriks dengan nama file: contoh1.m

A = [1 2 3 ; 4 5 6]

B = [2 3;4 5;6 7]

C = A*B

>>contoh1

A =

1 2 3

4 5 6

B =

2 3

4 5

6 7

C =

28 34

64 79

Page 25: Panduan Matlab Untuk Teknik Kimia

Script dapat menerima masukan melalui input dari keyboard, tetapi tidak dapat

menerima masukan berupa argumen, karena itu script hanya digunakan untuk program-

program 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

Page 26: Panduan Matlab Untuk Teknik Kimia

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 “feval”dapat 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 file-

file 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

Page 27: Panduan Matlab Untuk Teknik Kimia

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. Variabel-

variabel 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

Page 28: Panduan Matlab Untuk Teknik Kimia

>>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 :

Page 29: Panduan Matlab Untuk Teknik Kimia

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).

Page 30: Panduan Matlab Untuk Teknik Kimia

% 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

Page 31: Panduan Matlab Untuk Teknik Kimia

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 :

Page 32: Panduan Matlab Untuk Teknik Kimia

% Program : test.m

for i = 1:10

for j = 1:2:10

A(i,j) = (i+j);

end

end

A

» test

A =

2 0 4 0 6 0 8 0 10

3 0 5 0 7 0 9 0 11

4 0 6 0 8 0 10 0 12

5 0 7 0 9 0 11 0 13

6 0 8 0 10 0 12 0 14

7 0 9 0 11 0 13 0 15

8 0 10 0 12 0 14 0 16

9 0 11 0 13 0 15 0 17

10 0 12 0 14 0 16 0 18

11 0 13 0 15 0 17 0 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.

Page 33: Panduan Matlab Untuk Teknik Kimia

% 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

Page 34: Panduan Matlab Untuk Teknik Kimia

» 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