You are on page 1of 87

MATLAB Terapan 1

1. Apa itu MATLAB

MATLAB merupakan bahasa pemrograman dengan performansi tinggi untuk


komputasi numerik dan visualisasi. Kombinasi kemampuan, fleksibilitas, reability
dan powerfull grafik membuat MATLAB menjadi program yang sangat cocok
digunakan untuk keteknikan. MATLAB merupakan suatu bahasa pemrograman
sederhana dengan fasilitas yang jauh lebih hebat dan lebih mudah digunakan dari
bahasa pemrograman lain, seperti BASIC, Pascal, atau PC, melalui kemampuan
grafisnya, MATLAB menyediakan banyak pilihan untuk visualisasi data. MATLAB
adalah suatu lingkungan untuk membuat aplikasi dimana anda dapat membuat
antarmuka grafis dan menyediakan pendekatan visual untuk menyelesaikan
program-program tertentu. Lebih dari itu MATLAB menyediakan sekelompok alat
penyelesaian masalah untuk problem-problem khusus, yang dinamakan Toolbox.
Sebagai contoh menyediakan Control System Toolbox, Signal Processing Toolbox,
Symbolix Math Toolbox dan bahkan anda dapat membuat toolbox sendiri..

MATLAB mengintegrasikan komputasi, visualisasi dan pemrograman dalam ruang


yang mudah digunakan dimana masalah dan solusi diekpresikan dalam notasi
matematika yang umum. MATLAB adalah sebuah sistem interaktif dimana elemen
dasar data berupa array yang tidak perlu definisi dimensi. Ini memberikan
kebebasan untuk menyelesaikan banyak masalah komputasi teknik, terutama yang
berkaitan rumus vektor dan matriks.

2. Bagaimana memulai MATLAB

Apabila telah diinstal MATLAB pada PC anda, maka untuk menjalankan MATLAB,
anda cukup klik double pada icon MATLAB. Beberapa saat kemudian muncul
command window dari MATLAB. Commond Window merupakan jendela utama
dimana penggunaannya untuk berkomunikasi dengan interpreter MATLAB. Tampilan
prompt interpreter MATLAB ( » ) menunjukkan bahwa MATLAB siap untuk

Ansar Suyuti - ikhlas kitta 1


menerima perintah dari pengguna. Adapun tampilan command window seperti
dibawah ini.

Cara termudah untuk menggambarkan MATLAB adalah menganggapnya sebagai


sebuah kalkulator. Seperti umumnya kalkulator biasa, MATLAB sanggup
mengerjakan perhitungan sederhana seperti penambahan, pengurangan, perkalian
dan pembagian. Seperti kalkulator sains, MATLAB dapat menangani bilangan
kompleks, akar dan pangkat, logaritma, operasi trigonometri seperti sinus, cosinus
dan tangen. Seperti kalkulator yang dapat diprogram, MATLAB dapat digunakan
untuk menyimpan dan memanggil data. Anda dapat membuat, menjalankan dan
menyimpan sederetan perintah untuk mengotomatisasi perhitungan suatu
persamaan penting; anda dapat melakukan perbandingan logika dan mengatur
urutan pelaksanaan perintah. Seperti kalkulator terbaik saat ini, MATLAB
memungkinkan anda untuk menggambarkan data dengan berbagai cara,
mengerjakan aljabar matriks, memanipuasi polinomial, mengintegralkan fungsi,
memanipulasi persamaan secara simbol, dll. Sesungguhnya MATLAB menyediakan
lebih banyak lagi fasilitas dan jauh lebih kompleks dari kalkulator manapun.
MATLAB adalah alat untuk melakukan perhitungan matematika.

Sebagai contoh, untuk menginput sebuah matrik 3x2, dapat diketik :


» A=[1 2;3 4;5 6]

Ansar Suyuti – ikhlas kitta 2


MATLAB Terapan 1

setelah ditekan Enter, maka respon MATLAB berupa hasil


A=

1 2
3 4
5 6

3. Ruang Kerja MATLAB

Ruang kerja MATLAB, merupakan kumpulan tool dan fasilitas dimana kita bekerja
dalam pemrograman MATLAB. Termasuk fasilitas untuk mengatur variabel dalam
ruang kerja dan untuk import dan eksport data, termasuk tool untuk
pengembangan. Perintah dan variabel yang telah dibuat, dikatakan tinggal dalam
ruang kerja MATLAB dan dapat dipanggil kapanpun anda menghendakinya.

Jika anda tidak dapat mengingat nama variabel, maka anda tinggal mengetik who:
» who
Your variables are:

Untuk memanggil perintah sebelumnya, MATLAB menggunakan tombol panah [↑ ↓]


pada keyboard anda, Sebagai alternatif mouse dapat digunakan bersama dengan
cip-bord untuk menghapus (cut), mengcopy (copy), mengeluarkan kembali (paste),
dan mengedit teks yang ada di prompt command.

4. Variabel

Pada program MATLAB, expresi tanpa nama variabel tetap diproses dan hasilnya
dengan nama variabel ans (singkatan answer). Tetapi untuk pemrograman dimana
beberapa konstanta dioperasikan, maka nama variabel mutlat ada. Variabel adalah
nama atau simbol yang digunakan untuk mewakili suatu nilai.

Ansar Suyuti - ikhlas kitta 3


Contoh 4-1:
» A=10;
» B=20;
» C=A*B

C=

200

Pada program contoh di atas, A B, dan C disebut dengan variabel. Variabel A


mewakili nilai 10 dan B mewakili nilai 20, sedangkan variabel C mewakili hasil
perhitungan, yang mana nilai yang diwakili dapat berubah tergantung dari nilai
variabel A dan B.

Aturan penulisan nama variabel MATLAB adalah :

1. Nama variabel dibedakan antara huruf kecil dan huruf kapital, contoh ; Jumlah,
jumlah, juMlah, jumlaH dan JUMLAH.

2. Panjang maksimal nama variabel adalah 31 karakter, dan karakter setelah


karakter ke-31 diabaikan.

3. Nama variabel harus diawali dengan huruf, diikuti dengan sembarang bilangan,
huruf, atau garis bawah. Karakter-karakter tanda baca tidak diperbolehkan
karena banyak diantaranya mempunyai arti tersendiri dalam MATLAB, contoh;
biaya_rata_rata, x25065.

4. Tidak menggunakan variabel khusus.

Beberapa variabel khusus pada MATLAB adalah :

ans hasil/jawaban untuk untuk statemen yang tidak nama variabel


eps bilangan terkecil sedemikian rupa sehingga bila ditambahkan
satu, menghasilkan bilangan lebih besar dari satu
i,j −1 atau simbol yang mewakili bilangan imajiner pada
bilangan kompleks
NaN atu nan bukan suatu bilangan/ hasil bukan numerik.
pi nilai dari bilangan π
realmax bilangan real positip terbesar
realmin bilangan real positif terkecil

Ansar Suyuti – ikhlas kitta 4


MATLAB Terapan 1

Variabel dalam ruang kerja MATLAB dapat dihapus dengan menggunakan perintah
clear.

» clear A

untuk menghapus variabel A

» clear B*

untuk menghapus semua variabel yang diawali dengan huruf B

» clear

untuk menghapus semua variabel diruang kerja

Syarat pemberian nama variabel numerik dan variabel string dalam MATLAB tidak
dibedakan. Tetapi penulisan konstanta variabel string harus diapit dengan tanda
apostrop tunggal ( ' ).

Contoh 4-2:

» c='Selamat'

c=

Selamat

» cd=[c,' datang']

cd =

Selamat datang

Ansar Suyuti - ikhlas kitta 5


5. Komentar

Jika program dibuat cukup panjang dan rumit, akan lebih baik bila di dalam
program diberi penjelasan seperlunya sehingga mereka yang membaca program
akan dapat mengerti maksud dari program dengan lebih jelas. Komentar pada
MATLAB berupa tanda persen (%), sehingga semua teks sesudah tanda persen (%)
dianggap sebagai statemen komentar

Contoh 5-1:

» A=[1 2;3 4]; % matriks A(2x2)


» B=[5 6 7;8 9 0]; %matriks B(2x3)
» Mat_C=A*B

Mat_C =

21 24 7
47 54 21

Kalimat matriks A(2x2) dan matriks B(2x3) setelah tanda % diabaikan/tidak


diproses oelh MATLAB.

Beberapa perintah dapat diletakkan pada baris yang sama jika dipisahkan dengan
koma ( , ) atau titik koma ( ; ). Tanda koma memberitahu MATLAB untuk
menampilkan hasil dan titik koma untuk tidak menampilkan hasil.

Contoh 5-2 :

» jml=10; harga=1000, bayar =jml*harga

harga =

1000

bayar =

10000

Ansar Suyuti – ikhlas kitta 6


MATLAB Terapan 1

Deretan tiga titik berfungsi sebagai tanda sambung/lanjutan statemen pada baris
berikutnya. Biasanya digunakan apabila sebuah statemen melebihi dari satu baris.

» harga=bayar/...
jml

harga =

1000

tetapi nama variabel tidak bisa dipisah menjadi dua baris

» bayar=jml*har...
ga
??? bayar=jml*harga
|
Missing operator, comma, or semi-colon.

Terlihat bahwa perintah yang diinput tidak dapat diproses oleh MATLAB

6. Bilangan Kompleks

Salah satu kelebihan MATLAB adalah bahwa ia tidak memerlukan penanganan


khusus untuk bilangan kompleks. Bagian imajiner ( −1 ) dalam MATLAB, diwakili
oleh variabel i atau j.

Contoh 6-1:

Carilah nilai V =Zc Cosh g + Sinh g/Zc,

Dimana : Zc= 200 + j300 dan g=0,02 + j1,5.

» Zc=200+300j;
» g=0.02+1.5j;
» V=Zc*cosh(g)+sinh(g)/Zc

V=

8.1672 +25.2172i

Ansar Suyuti - ikhlas kitta 7


Perubahan bentuk polar bilangan kompleks ke bentuk rectanguler-nya juga dapat
dilakukan ;

M < θ ≡ M .e jθ = a + bi

dengan bentuk polar diberikan oleh besarnya M dan sudut θ , sedangkan bentuk
rectanguler diberikan dengan a+bi. Hubungan antara bentuk-bentuk ini adalah:

M= (a 2 + b 2 )

θ = tan −1 (b / a )

a= M cos θ

b=M sin θ

Dalam MATAB, konversi antara bentuk polar dan rectanguler menggunakan fungsi-
fungsi real, imag dan angle.

Untuk merubah bentuk rectanguler ( V ) menjadi bentuk polar, maka dapat


dilakukan :

Contoh 6-2:
» Real_V=abs(V)

Real_V =

26.5068

» Sudut_V=angle(V)*180/pi

Sudut_V =

72.0542

Sedangkan untuk merubah polar ke rectanguler, maka dapat dilakukan :

Ansar Suyuti – ikhlas kitta 8


MATLAB Terapan 1

» P_V=Real_V*exp(j*Sudut_V*pi/180)

P_V =

8.1672 +25.2172i

» real_PV=real(P_V)

real_PV =

8.1672

» imaj_PV=imag(P_V)

imaj_PV =

25.2172

Fungsi abs menghitung besarnya bilangan kompleks atau harga mutlak dari
bilangan real, tergantung argumen apa yang diberikan. Fungsi angle menghitung
sudut bilangan kompleks dalam radian.

7. Menyimpan dan memanggil data

MATLAB dapat menyimpan dan memanggil data dari file. Pilihan Save Workspace
as... dalam menu File akan membuka kotak dialog untuk menyimpan semua
variabel yang ada. Mirip dengan itu, pilihan Load workspace as.. dari menu File
akan membuka kotak dialog untuk memanggil variabel yang telah disimpan
sebelumnya. Memanggil variabel yang bernama sama dengan variabel yang aktif
akan membuat isi variabel aktif ditimpa oleh isi variabel yang dipanggil dari file.

Jika menu File belum cukup bagi anda, MATLAB menyediakan dua perintah Save
dan load yang jauh lebih fleksibel. Perintah save membuat anda dapat menyimpan
satu atau lebih variabel dalam file format yang sesuai dengan pilihan anda.
» save

Saving to: matlab.mat

Ansar Suyuti - ikhlas kitta 9


Menyimpan semua variabel MATLAB dalam format biner di file matlab.mat
» save data

menyimpan semua variabel MATLAB dalam format biner di file data.mat


» clear
» load matlab

memanggil data/variabel-variabel yang telah di save dengan nama matlab setelah


dihapus dengan perintah clear dari ruang kerja MATLAB.

8. M- File

Script M-FILE

Jika masalah yang dihadapi sederhana, mengetikkan beberapa perintah langsung di


jendela command memang cukup tepat dan efektif. Akan tetapi jika jumlah
perintahnya sangat banyak, atau jika anda ingin mengubah nilai beberapa variabel
dan kemudian mengulang kembali perhitungannya, maka mengetikkan perintah-
perintah langsung akan sangat menyusahkan. Untuk menyelesaikan masalah ini,
MATLAB memungkinkan anda untuk mengetikkan sederetan perintah tersebut
dalam suatu teks file dan kemudian memerintahkan MATLAB untuk membuka file
tersebut dan menjalankannya seolah-olah diketikkan langsung di jendela
Command. File seperti ini dinamakan file Script atau M-File. Ketika file scrip
dipanggil, MATLAB langsung mengeksekusi perintah-perintah yang ditemui dalam
file. Statemen file scrip dioperasi secara global terhadap data di workspace. Scrip
berguna untuk menyelesaikan analisis atau desain dengan urutan-urutan statemen
yang cukup panjang.

MATLAB menyediakan beberapa fungsi pada M-File, perintah-perintah itu adalah

Ansar Suyuti – ikhlas kitta 10


MATLAB Terapan 1

Disp(ans) menampilkan hasil tanpa menampilkan nama variabel


Echo mengatur jendela command dalam penampilan kembali perintah
yang sedang dikerjakan
input meminta pemakai untuk memberikan input
keyboard memberikan kontrol pada keyboard sementara waktu. Ketikkan
retour untuk kembali
pause berhenti sampai pemakai menekan semarang tombol
pause (n) berhenti selama n detik
waitforbuttonpress berhenti sampai ada penekanan tombol mouse atau tombol
keyboard

Jika perintah MATLAB tidak diakhiri dengan titik koma, hasil dari perintah itu serta
nama variabelnya akan ditampilkan kembali dalam jendela command.

Function M-File

File fungsi dari MATLAB, tidak sama dengan file script dalam hal bahwa variabel
yang dioperasikan didalamnya bersifat lokal terhadap fungsi itu saja. File script
akan bersifat global terhadap variabel yang ada di workspace. File fungsi
digunakan untuk suatu keperluan yang berulang satu atau beberapa kali dalam
suatu program. File fungsi pada sama fungsinya dengan functions pada bahasa C,
subroutines pada FORTRAN dan BASIC dan procedures pada PASCAL. M-file berisi
kata function pada awal program adalah file fungsi. File fungsi diawali dengan kata
function dengan perintah

function [output variabel]=nama fungsi (input variabel)

output variabel berada dalam kurung segi empat atau [ ] dan input variabel
dalam kurung parentheses atau ( ). Nama file fungsi harus di save sama dengan
nama fungsi. Misalnya function[S]=tegangan(Z,I), nama file fungsi tersebut harus
tegangan.m.

Contoh 8-1 :
function [S]=tegangan(V,I)
S=V.*conj(I);

Ansar Suyuti - ikhlas kitta 11


File tersebut bernama tegangan dengan variabel output V dan variabel input V
dan I

Untuk menjalankan program tersebut, pada command window dibuat suatu


statemen sebagai berikut :

Jika nilai V dan I hanya mempunyai masing-masing satu elemen , maka

» S=tegangan(10+12j,5+10j)

S=
1.7000e+002 -4.0000e+001i

Jika nilai V dan I hanya mempunyai merupakan matrik, maka


» s=tegangan([1 2;3 4],[10 10;10 10])
s=
10 20
30 40

Dari hasil diperoleh terlihat bahwa, input untuk varibel V dan I dapat berupa skalar
maupun matrik.

9. Operator Aritmetik

Operator aritmetik adalah simbol-simbol yang digunakan untuk maksud operasi


numerik. MATLAB menyediakan operator aritmatik dasar berikut :

Operasi Simbol Contoh


Penambahan a+b + 15+10
Pengurangan, a-b - 15-10
Perkalian, a.b * 15*10
Pembagian, a: b / atau \ 15/10=10\15
Pemangkatan, ab ^ 15^10

Urutan operasi ini dikerjakan dalam suatu ekspresi yang mengikuti aturan prioritas
yang biasa. Aturan ini diringkas sebagai berikut : Ekspresi dikerjakan dari kiri ke
kanan, dengan pemangkatan mempunyai prioritas tertinggi, diikuti dengan

Ansar Suyuti – ikhlas kitta 12


MATLAB Terapan 1

perkalian atau pembagian yang mempunyai prioritas yang sama, diikuti dengan
penambahan dan pengurangan yang juga mempunyai prioritas yang sama. Tanda
kurung dapat digunakan untuk mengubah urutan pengerjaan yang biasa, dimana
bagian yang dikerjakan lebih dulu adalah bagian yang ada dibagian kurung paling
dalam kemudian keluar.

Contoh : Carilah nilai

 I (1 + I ) N 
A=P  N
 , untuk P=1000, I=12% dan N=10

 (1 + I ) −1 

» P=1000; i=0.12; N=10;


» A=P*((i*(1+i)^N)/((1+i)^N-1))

A=

176.9842

% Contoh penggunaan pembagian kiri dan kanan


» C=P/N

C=

100

» D=N\P

D=

100

10. Operator relasi dan logika

Matlab menyediakan operasi relasi dan logika. Kegunaan dari operator dan fungsi
tersebut ialah untuk menyediakan jawaban atas pertanyaan benar salah. Salah satu
kegunaan penting dari kemampuan ini ialah untuk mengontrol urutan eksekusi
sederetan perintah MATLAB berdasarkan pada hasil benar/salah. MATLAB
menganggap semua angka tidak nol sebagai benar, dan nol sebagai salah. Hasil dari
ekspresi relasi dan logika adalah satu untuk Benar dan nol untuk Salah dengan tipe

Ansar Suyuti - ikhlas kitta 13


array logika, yaitu hasilnya membuat bilangan 1 dan 0 yang tidak saja dapat
digunakan untuk statemen matematika, tetapi juga dapat digunakan untuk
pengalamatan.

Operator Relasi

Operator relasi MATLAB terdiri dari :


Operator relasi Deskripsi
< Kurang dari
<= Kurang dari atau sama dengan
> Lebih dari
>= Lebih dari atau sama dengan
= Sama dengan
~= Tidak sama dengan

Operator relasi MATLAB dapat dipergunakan untuk membandingkan dua array


berukuran sama atau untuk membandingkan array dengan skalar. Skalar
dibandingkan dengan semua elemen array dan hasilnya berukuran sama.

Contoh penggunaan :

» A=1:9,B=9-A
A=
1 2 3 4 5 6 7 8 9
B=
8 7 6 5 4 3 2 1 0
» tf=A>4
tf =
0 0 0 0 1 1 1 1 1
» tf=(A==B)
tf =
0 0 0 0 0 0 0 0 0

Operator Logika

Operator logika menyediakan cara untuk menggabung ekspresi logika. Operator


logika terdiri dari :

Operator Logika Deskripsi


& AND

Ansar Suyuti – ikhlas kitta 14


MATLAB Terapan 1

| OR
~ NOT

Contoh penggunaan :

» A=1:9; b=9-A;
» tf=A>4
tf =
0 0 0 0 1 1 1 1 1
» tf=~(A>4)
tf =
1 1 1 1 0 0 0 0 0
» tf=(A>2)&(A<6)
tf =
0 0 1 1 1 0 0 0 0

» x=[1,1,0,0];
» y=[1,1,1,1];
» z1=~y>x

z1 =
0 0 0 0
» z2=x&y
z2 =
1 1 0 0
» z3=x|y
z3 =
1 1 1 1

» z4=xor(x,y)
z4 =
0 0 1 1

» A=[1,1,0,0]';
» B=[0,0,1,1]';
» [A,B,~A,A|B,A&B,xor(A,B)]

ans =

1 0 0 1 0 1
1 0 0 1 0 1
0 1 1 1 0 1
0 1 1 1 0 1

Ansar Suyuti - ikhlas kitta 15


11. Fungsi-fungsi Dasar Matematis

Sebagian dari fungsi-fungsi dasar matematis yang dimiliki MATLAB dapat dilihat
berikut :

Fungsi trigonometri

abs (x) harga mutlak atau besarnya bilangan kompleks


acos(x) invers cosinus
acosh(x) invers cosinus hiperbolik
angle(x) sudut pada suatu bilangan kompleks
asin(x) invers sinus
asinh(x) invers sinus hiperbolik
atan(x) invers tangen
atan2(x) invers tangen empat kuadran
atanh(x) invers tangen hiperbolik
ceil(x) pembulatan ke arah plus tak berhingga
conj(x) konjuget bilangan kompleks
cos(x) cosinus
cosh(x) cosinus hiperbolik
exp(x) eksponensial
fix(x) pembulatan ke arah nol
floor(x) pembulatan ke arah minus tak berhingga
gdc(x,y) faktor persekutuan terbesar bilangan bulat x dan y
imag(x) bilangan imajiner
lcm(x) kelipatan persekutuan terkecil bilangan bulat x dan y
log(x) logaritma natural
log10(x) logaritma biasa
real(x) bagian real suatu bilangan kompleks
rem(x,y) sisa pembagian x dibagi y
round(x) pembulatan ke arah bilangan bulat terdekat
sign(x) menghasilkan tanda dari argumen
sin(x) sinus
sinh(x) sinus hiperbolik
sqrt(x) akar kuadrat
tan(x) tangen

Ansar Suyuti – ikhlas kitta 16


MATLAB Terapan 1

contoh :

carilah nilai V(t)= A sin wt +30o, dimana A=10 dan t=1,2,3,4,5

» t=1:1:5;
» A=10;f=100;
» Vt=A*sin(2*pi*f*t+30*180/pi)

Vt =

-4.0977 -4.0977 -4.0977 -4.0977 -4.0977

Fungsi dasar MATLAB

exp exponensial
log logaritma natural
log10 logaritma biasa (basis 10)
sqrt akar kuadrat
abs harga mutlak
angle sudut fasa
conj kompleks konjugate
imag bagian imajiner bilangan kompleks
real bagian real bilangan kompleks
fix membulatkan ke arah nol
floor membulatkan ke arah minus tak terhingga
ceil membulatkan ke arah plus tak terhingga
round membulatkan ke arah bilangan bulat terdekat
mod modulus (sisa pembagian)
rem pembagian bilangan bulat
sign tanda bilangan

Contoh :

» x=exp(-0.2696*.2)*sin(2*pi*0.2)/(0.01*sqrt(3)*log(18))

x=
18.0001

Ansar Suyuti - ikhlas kitta 17


12. Format Input

Pemberian nilai pada variabel dalam MATLAB dapat dilakukan dengan mengetikkan
nama variabel kemudian tanda sama dengan ( = ) dan nilai variabel yang
diinginkan.

Contoh 12-1;

Untuk variabel skalar

» A=10

A=
10

» B=5;
» C=A*B
C=
50

dari contoh terlihat bahwa saat kita mengetik nilai A = 10 kemudian ditekan enter,
maka MATLAB akan merespon dengan menampilkan hasil, sedangkan pada saat
kita ketik B = 10; lalu dienter, MATLAB tidak menampilkan hasilnya karena kita
menambahkan tanda titik koma ( ; ).

Contoh 12-2:

Untuk variabel bentuk array/matriks

» A=[1 2 3;4 5 6]

A=

1 2 3
4 5 6

» B=[7,6,5;3,2,1];

» C=A+B

Ansar Suyuti – ikhlas kitta 18


MATLAB Terapan 1

C=

8 8 8
7 7 7

untuk program yang mempunyai data yang banyak, maka pemberian nilai variabel
dapat dilakukan secara terpisah.Data dapat dibuatkan M-file tersendiri,
selanjutnya kapan data tersebut dibutuhkan maka tinggal mengetikkan nama file
M-file yang telah dibuat.

Contoh 12-3:

Data Y dan I disimpan pada M-file dengan nama data1.m

Y=[0-8.5i 0+2.50i 0+5.0i 0+0i


0+2.5i 0-8.75i 0+5.0i 0+0i
0+5.0i 0+5.00i 0-22.5i 0+12.5i
0+0.0i 0+0.00i 0+12.5i 0-12.5i];
I=[0-1.1i;0-1.25i;0;0];

Untuk mengguanakan data tersebut, kita tinggal menulis nama M-file ( data1) pada
program

data1 % nama file data berisi Y dan I


% I=Y.V ===>V=inv(Y)*I
Z=inv(Y) % membuat invers Y
V=Z*I % perkalian

Hasil program

Z =

0 + 0.5000i 0 + 0.4000i 0 + 0.4500i 0 + 0.4500i


0 + 0.4000i 0 + 0.4800i 0 + 0.4400i 0 + 0.4400i
0 + 0.4500i 0 + 0.4400i 0 + 0.5450i 0 + 0.5450i
0 + 0.4500i 0 + 0.4400i 0 + 0.5450i 0 + 0.6250i

V =

1.0500
1.0400
1.0450

Ansar Suyuti - ikhlas kitta 19


1.0450

Dalam program contoh di atas, kita membuat dua buah M-file, satu M-file khusus
berisi data sedangkan M-file lainnya berisi program. File yang berisi data yang kita
beri nama data1.m dapat digunakan dengan hanya mengetikkan data1 pada
program, walaupun file tersebut tidak aktif diruang kerja MATLAB.

Tetapi kadang-kadang pada kondisi tertentu kita menginginkan bahwa suatu


variabel, dapat mempunyai nilai yang berubah sesuai dengan keinginan si pengguna
yang dapat di input dari keyboard. Pada M-file input nilai variabel dapat dilakukan
dari keyboard dengan menggunakan perintah

x = input (' komentar')

dimana x adalah nama variabel, komentar akan ditampilkan dilayar saat program
dijalankan.

Contoh 12-4 :

R=input (' input nilai R (ohm) =');


I=input (' input nilai I (Amp) =');
V=I*R

Jika program tersebut di run, maka hasilnya :

» input nilai R (ohm) =10


input nilai I (Amp) =2

V=

20

dengan demikian nilai variabel R dan I dapat berubah sesuai besar nilai yang
diinput.

Ansar Suyuti – ikhlas kitta 20


MATLAB Terapan 1

Sedangkan untuk variabel string, maka perintahnya

x=input ( 'komentar' , 'string' )

string harus berisi hurup 's' atau ' S ',yang menunujukkan string, sedangkan
komentar dapat berisi apa saja yang inginkan

contoh 12-5:

tanya=input (' anda ingin lanjut ? Y/N :','s');


if(isempty(tanya))|(tanya=='Y')|(tanya=='y')
tanya='Y'
else
tanya='N'
end

Hasil program

anda ingin lanjut ? Y/N :

tanya =

13. Format Output

Saat MATLAB menampilkan hasil proses numerik, MATLAB mengikuti beberapa


aturan. Dalam keadaan biasa, jika hasilnya berupa bilangan bulat, maka akan
ditampilkan sebagai bilangan bulat. Jika hasilnya suatu bilangan real, MATLAB akan
menampilkan sebagai bilangan dengan empat digit desimal. Perintah format ini
hanya mengendalikan format numerik nilai yang ditampilkan dilayar, hanya

Ansar Suyuti - ikhlas kitta 21


berefek pada berapa jumlah angka yang ditampilkan, bukan bagaimana MATLAB
menghitung atau menyimpannya.

MATLAB Average_Cost Keterangan


COMMAND
Format short 50.833 5 digits
Format long 50.83333333333334 16 digits
Format short e 5.0833e+01 5 digits plus exponent
Format long e 5.083333333333334e+01 16 digits plus exponent
Format short g 50.833 Better of format short or
format short e
Format long g 50.83333333333333 Better of format longt or
format long e
Format hex 40496aaaaaaaaaab Hexadecimal
Format bank 50.83 2 decimal digits
Format + + Positive, negative, or zero
Format rat 305/6 Rational approximation

Untuk lebih fleksibelnya dalam format output, MATLAB menyediakan statemen


fprintf untuk menampilkan hasil/output numerik dari program. Beberapa farmat
dari fprintf dapat dilihat pada tabel.

Kode Format Kontrol Karakter


%e scientific format, lower case e \n baris baru
%E sientific format, upper case E \r permulaan dari baris
%f format desimal \b back space
%s string \t tabulasi
%i integer \g halaman baru
%u mengikuti tipe " apostrop
%x hexadecimal, lower case \\ back slash
%X hexadecimal, upper case \a bell

Contoh 13-1:

» fprintf('Luas= %7.3f meter per segi \n',pi*10^2)

Luas= 314.159 meter per segi

Ansar Suyuti – ikhlas kitta 22


MATLAB Terapan 1

Format %7.3f, menunjukkan format bilangan desimal tujuh angka dengan tiga
angka dibelakang koma. Sedangkan /n untuk baris baru.

Contoh 13-2:

» V=[ 10;20;30;40;50];
» R=[ 5;7;9;11;13];
» y=[V R]

y=
10 5
20 7
30 9
40 11
50 13

» fprintf('%4i \t %8.2f\n',y')
10 5.00
20 7.00
30 9.00
40 11.00
50 13.00

Program contoh di atas memperlihatkan dua cara menampilkan output, yaitu


dengan variabel yang akan ditampilkan diberi kurung empat misal [V R], cara ini
akan menampilkan nilai variabel sesuai dengan tipenya, dan yang kedua adalah
dengan statemen fprintf (%4i \t %8.2 \n), %4i akan menampilkan pada kolom
pertama sesuai dengan tipe maksimum empat angka, \t penulisan selanjutnya
dengan jarak sesuai tabulasi, %8.2 menampilkan dengan format desimal delapan
angka termasuk titik, dengan dua angka dibelakang koma.

MATLAB juga menyiapkan format output berupa statemen disp, yang berfungsi
untuk menampilkan numerik dan string dari programnya.

Contoh 13-3:

data1 % nama file data berisi Y dan I


% I=Y.V ===>V=inv(Y)*I

Ansar Suyuti - ikhlas kitta 23


Z=inv(Y); % membuat invers Y
V=Z*I ; % perkalian
disp ('Hasil program V=inv(Y)*I adalah')
disp(V)

Hasil program V=inv(Y)*I adalah

1.0500
1.0400
1.0450
1.0450

Contoh di atas, memperlihatkan bahwa statemen disp dapat digunakan untuk


string atau numerik dan hanya menampilkan nilai variabel.

Contoh 13-4:

program M-file untuk perkalian bilangan kompleks


disp(' ');
disp(' PROGRAM PERKALIAN BILANGAN KOMPLEKS'); disp(' ');
disp(' Jenis: 1-polar, 2-rectangular'); disp(' ');
jumlah=input('Berapa banyak Bilangan Kompleks yang akan
dikalikan ?'); disp(' ');
for i=1:jumlah;
F=input(['Jenis ',num2str(i),' ketik 1 jika polar 2 jika
rectanguler = ']);
if (F~=1 & F~=2); disp('Anda Salah Input'); end
if F==1
M=input(['Nilai ',num2str(i),' = ']);
A=input(['Sudut ',num2str(i),' = '])*180/pi;
N(i)=M*exp(j*A); disp(' ');
else
R=input(['Real ',num2str(i),' = ']);
I=input(['Imag ',num2str(i),' = ']);
N(i)=R+j*I; disp(' ');
end
end
P=N(1); for k=2:jumlah; P=P*N(k); end
disp(' '); disp(['HASIL PERKALIAN = ' num2str(real(P)) ' +j '...
num2str(imag(P)) ' = ' num2str(abs(P)) '|_'...
num2str(angle(P)*pi/180) ' derajat']);

Ansar Suyuti – ikhlas kitta 24


MATLAB Terapan 1

Hasil program

PROGRAM PERKALIAN BILANGAN KOMPLEKS

Jenis: 1-polar, 2-rectangular

Berapa banyak Bilangan Kompleks yang akan dikalikan ?2

Jenis 1 ketik 1 jika polar 2 jika rectanguler = 1


Nilai 1 = 10
Sudut 1 = 90

Jenis 2 ketik 1 jika polar 2 jika rectanguler = 1


Nilai 2 = 10
Sudut 2 = 90

HASIL PERKALIAN = -100 +j 1.2246e-014 = 100|_180 derajat

14. KONTROL PROGRAM

Kontrol program sangat penting karena memungkinkan komputasi-komputasi yang


lalu mempengaruhi komputasi yang akan datang. MATLAB menyediakan struktur
pengambilan keputusan atau struktur kontrol program, yaitu : loop for, loop while,
if-else-end, dan swicth-case.

Loop for
Loop for memungkinkan sekelompok perintah diulang sebanyak suatu jumlah yang
tetap. Bentuk umum dari loop for adalah

For nama variabel loop = awal:step:akhir

Ansar Suyuti - ikhlas kitta 25


Perintah-perintah
end

Ekspresi awal adalah nilai awal, ekspresi step adalah langkah/pertambahan dan
ekspresi akhir adalah batas nilai akhir variabel loop. Contoh for x=2:2:10, perintah
akan diulang dan dimulai untuk x=2, melangkah sebanyak 2 dan berakhir pada nilai
x=10.

Contoh 14-1
for x=2:2:10
v(x)=cos(x*pi/180);
end

loop for dapat ditulis dalam satu baris

for x=2:2:10, v(x)=cos(x*pi/180),end

loop for dapat dibuat didalam loop for yang lain ;

Contoh 14-2:

% Program perkalian Matriks A * B


A=[1 2 3;4 5 6;7 8 9];
B=[9 8 7;6 5 4;3 2 1];
% Proses perkalian
for k=1:3
for l=1:3
C(k,l)=0;
for m=1:3
C(k,l)=C(k,l)+A(k,m)*B(m,l);
end
end
end

Hasil dari program tersebut adalah

C=

30 24 18

Ansar Suyuti – ikhlas kitta 26


MATLAB Terapan 1

84 69 54
138 114 90

bandingkan dengan perintah asterik ( * ) untuk perkalian matriks , maka hasil yang
diperoleh sama

» A=[1 2 3;4 5 6;7 8 9];


B=[9 8 7;6 5 4;3 2 1];
C=A*B
C=
30 24 18
84 69 54
138 114 90

Loop While

Loop while mengerjakan sekelompok perintah yang diulang sampai syarat yang
diberikan terpenuhi.

Bentuk umum loop while adalah ;

while ekspresi
Perintah-perintah
end

perintah-perintah yang terdapat di antara while dan end dieksekusi berulang kali
selama semua elemen dalam ekspresi adalah benar.

Contoh 14-3

Ansar Suyuti - ikhlas kitta 27


» x=1;
» while x<10
disp(x)
x=x+1; end

1
2
3
4
5
6
7
8
9

» x=9;
» while x~=0
disp(x)
x=x-1;
end

If - else -end

Bentuk paling sederhana if-else-end adalah

if ekspresi
perintah …
end

Untuk kasus dengan dua pilihan if-else-end adalah

if ekspresi
perintah…jika memenuhi eksperesi
else
perintah… jika tidak memenuhi ekspresi (salah)
end

Jika terdapat 3 atau lebih pilihan if-else-end :

Ansar Suyuti – ikhlas kitta 28


MATLAB Terapan 1

elseif ekspresi1
Perintah.. jika ekspresi1 benar
elseif ekspresi2
Perintah.. jika ekspresi2 benar
elseif ekspresi3
Perintah.. jika ekspresi3 benar
elseif…

else
perintah.. dikerjakan jika tak ada ekspresi benar
end

contoh 14-4

for k = 1:5;
if k<2
a=cos (k*pi/180);
elseif k<3
b=cos((k-1)*pi/180);
elseif k<4
c=cos((k-2)*pi/180);
elseif k<5
d=cos((k-3)*pi/180);
else
e=cos((k-4)*pi/180);
end;
end;

» a,b,c,d,e

a=
0.9998

b=
0.9998

c=
0.9998

d=
0.9998

e=
0.9998

Ansar Suyuti - ikhlas kitta 29


Switch-Case

Bentuk umum dari Switch-Case adalah

switch ekspresi
case test_ekspresi
deret_perintah1
case {test_ekspresi2, test_ekspresi3, test_ekspresi4}
deret_ekspresi2
otherwise
deret ekspresi3
end

Contoh 14-5:
Buatlah program untuk mengkonversi satuan meter kesatuan inchi, feet,
millimeter dan centimeter, yang mana nilai satuan meter dan konversi satuan yang
diinginkan diinput dari keyboard.

x=input('masukkan nilai x dalam meter =' );


satuan=input('konversi ke satuan "in",ft",mm" dan "cm" = ','s');
switch satuan
case {'inchi','in'} %konversi ke inchi
inchi=x*2.54*100
case{'feet','ft'} % konversi ke feet
feet=x*2.54*12*100
case{'milimeter','mm'} % konversi ke millimeter
mm=x*10*100
case{'centimeter','cm'} % konversi ke Centimeter
cm=x*100
otherwise
disp(['anda salah input:' units])
y=nan
end;

masukkan nilai x dalam meter =3


konversi ke satuan "in",ft",mm" dan "cm" = cm

cm =

300

Contoh 14-6:

Mencari nilai x minimum, maksimum dan penjumlahan untuk x= e-t .sin t untuk t =
0 sampai 100.

Ansar Suyuti – ikhlas kitta 30


MATLAB Terapan 1

% program untuk mencari nilai minimum,


% maksimum atau penjumlahan x
t = [0:100];
x=exp(-t).*sin(t*pi/180);
pilih=input('Mencari x "maks,min atau jumlah" =','s');
switch pilih
case {'maksimum','maks'}
maks=max(x)
case {'minimum','min'}
minim=min(x)
case {'jumlah','jum'}
total=sum(x)
otherwise
disp('anda salah input')
end

15. Grafik 2-Dimensi

Statemen plot

MATLAB menyediakan fasilitas dalam pembuatan suatu grafik dengan sangat


sempurna dan mudah untuk digunakan, ini merupakan salah keistimewaan MATLAB,
sehingga sangat cocok digunakan untuk komputasi teknik.

Statemen yang digunakan dalam pembuatan grafik ini yaitu :

plot : Plot linier


loglog : plot dengan skala loglog
semilogx : plot dengan skala semi log
semilogy : plot dengan skala semilog

Untuk judul, label, garis sumbu dan teks digunakan :

title : judul grafik


xlabel : label sumbu x
ylabel : label sumbu y
text : teks keterangan
gtext : tempat teks diletakkan
grid : grid line
axis : batas sumbu y dan x

Ansar Suyuti - ikhlas kitta 31


Statemen yang digunakan untuk membuat grafik linier, plot (x,y ) ini untuk
menggambar bidang vector x dan vector y. Jika x atau y adalah sebuah matriks
maka mereka akan saling menggambarkan sesuai dengan baris dan kolomnya
masing-masing. Tetapi bila x adalah sebuah besaran skalar sedangkan y adalah
besaran vector maka akan terjadi titik yang tidak terhubung pada plot.

Berbagai macam jenis garis, symbol plot dan warna dapat dibuat dengan perintah
plot(x,y,s) dimana s adalah karakter string yang dibuat dari salah satu atau lebih
dari statemen dibawah ini

SPESIFIKASI WARNA JENIS GARIS


WARNA Istilah Jenis Simbol
Hitam k Solid -
Biru b Dashed --
Cyan c Dotted :
Hijau g Dash-dot -.
Magenta m Point .
Merah r Circle o
Putih w X-mark x
Kuning y Plus +
Star *

Kita bisa membuat tiga pilihan kurva pada grafik yang sama. Sebagai contoh,

Plot(x1,y1,’r’,x2,y2.’+b’,x3,y3,’-‘)

Plot (x1, y1) dengan garis merah solid ,(x2,y2) dengan warna biru dan tanda +,
( x3,y3) dengan garis putus-putus. Plot juga dapat ditambahkan dengan keterangan
nama pada grafik, label pada sumbu X dan Y dan grid. Perintah grid membuat
kotak-kotak gairs / kisi-kisi pada grafik. Cara penulisannya hanya tinggal ditulis
sesudah perintah plot. Sedangkan perintah nama/title (‘Graph title’) memberi
nama pada plot dan x label (‘x-axis label’), y label (‘y-axis label’) yang memberi
label pada plot dengan string yang khusus. Perintah text ( x-coordinate, y-
coordinate,’text’) dapat digunakan untuk meletakkan text pada grafik, dimana
nilai koordinat diambil dari plot tertentu. Sebagai contoh, kalimat perintahnya
adalah :

Text(3.5, 1.5,’Voltage’)

Ansar Suyuti – ikhlas kitta 32


MATLAB Terapan 1

Kalimat perintah ini akan menuliskan kata Voltage pada titik grafik (3.5, 1.5).
Selain itu juga dapat digunakan perintah gtext (‘text’), dimana perintah ini
menempatkan teks pada grafik dengan menggunakan mouse. Alternatif perintah
lain adalah legend(string1,sring2,string3,…) yang juga berfungsi untuk
menempatkan teks dalam grafik dengan menggunakan string. MATLAB
menyediakan skala otomatis. Perintah axis ([x min. x max. y min. y max.]).
Sebagai contoh :

Axis ([-10 40 -60 60])

Menghasilkan skala sumbu x dari – 10 sampai 40 dan skala sumbu y dari – 60 sampai
60. Mengetik kembali axis (‘auto’) akan menghasilkan skala sendiri.

Contoh :

Membuat plot X-Y dengan variabel berikut ini :

x 0 0,5 1,0 1,5 2,0 2,5 3,0 3,5 4,0 4,5 5,0
y 10 10 16 24 30 38 52 68 82 96 123

Programnya dapat dituliskan sebagi berikut :

x = [ 0 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0];
y = [10 10 16 24 30 38 52 68 82 96 123];
plot(x, y), grid
xlabel('x'), ylabel('y'), title('Contoh Grafik Sederhana')

Hasilnya dapat dilihat pada grafik ini :

Ansar Suyuti - ikhlas kitta 33


C
o
n
t
oh
Gr
a
fi
kSe
d
e
rh
a
na
1
4
0

1
2
0

1
0
0

8
0

y
6
0

4
0

2
0

0
0 0
.
5 1 1
.
5 2 2
.
5 3 3
.
5 4 4
.
5 5
x

MATLAB juga menyediakan statement fplot untuk membuat grafik dari fungsi
dalam bentuk string. Dengan sintaks sebagai berikut;

fplot ('string',[xmin,xmax])

atau

fplot ('string',[xmin xmax ymin ymax])

dimana string merupakan sebuah fungsi, [xmin xmax] adalah nilai minimum dan
maksimum dari variabel bebas fungsi.

Contoh
» f='cos(tan(x))-tan(sin(x))';
» fplot(f,[0 3]), title (' Grfaik cos(tan(x))-tan(sin(x))')

Ansar Suyuti – ikhlas kitta 34


MATLAB Terapan 1

G rfa ik c o s ( t a n (x ))-t a n ( s in (x ))
1

0.5

-0 . 5

-1

-1 . 5

-2

-2 . 5

-3
0 0 .5 1 1.5 2 2.5 3

Statemen polyval

Program ini menggunakan perintah polyfit untuk mendapatkan pencocokan data


(koefisien) untuk mendapatkan persamaan polynomial yang sesuai dengan data
yang ada.

Kata perintah yang lain adalah polyval yaitu digunakan untuk, mengevaluasi
polynimial dari data-data yang diberikan :

Contoh :

x = [ 0 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0];
y = [10 10 16 24 30 38 52 68 82 96 123];
p = polyfit(x, y, 2)
yc = polyval(p, x);
plot(x, y,'x', x, yc)
xlabel('x'), ylabel('y'), grid
title('Polynomial curve fitting')
legend('Actual data', 'Fitted polynomial')

Hasil penggunaan perintah polyfit dan polyval dapat dilihat berikut ini :
P=
4.02333 2.01107 9.6783

Ansar Suyuti - ikhlas kitta 35


Polynomial curvefitting
140
Actual data
Fittedpolynomial
120

100

80

60

40

20

0
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
x

Pada program ini akan digunakan,* untuk perkalian elemen dengan elemen dari
dua bentuk persamaan yang telah diberikan, fungsinya y = 1 + e-2t sin (8t-π /2)
dari 0 sampai 3 detik). Program ini juga memakai perintah [cp,k]=max (c ) yang
memperlihatkan nilai maksimum dari grafik.

Contoh Program untuk mencari nilai maksimum c=1+e-2t.sin(8t-pi/2)


t=0:.005:3;
c = 1+ exp(-2*t).*sin(8*t - pi/2);
[cp, k] = max(c)
tp = t(k)
plot(t, c), xlabel(' t, sec'), ylabel('c'), grid
title('Grafik sinus teredam')
text(0.55,1.35,['cp = ',num2str(cp)])
text(0.55, 1.2,['tp = ',num2str(tp)])

Hasil dari M-file diatas :

Ansar Suyuti – ikhlas kitta 36


MATLAB Terapan 1

Grafik sinus teredam


1.5

cp = 1.4702

tp = 0.36

0.5

0
0 0.5 1 1.5 2 2.5 3
t, sec

Cara interaktif untuk mendapatkan data-data titik-titik pada kurva adalah dengan
menuliskan perintah ginput. Perintah ini akan memudah mendapatkan titik-titik
yang diinginkan dengan cara mengklik mouse.

t=0:.005:3;
c = 1+ exp(-2*t).*sin(8*t - pi/2);
[cp, k] = max(c)
tp = t(k)
plot(t, c), xlabel(' t, sec'), ylabel('c'), grid
title('Grafik sinus teredam')
text(0.55,1.35,['cp = ',num2str(cp)])
text(0.55, 1.2,['tp = ',num2str(tp)])
%menggunakan statemen ginput
[tp, cp] = ginput

Statemen Subplot

Statemen subplot ( m, n, p ), berfungsi untuk membagi tampilan gambar menjadi


sebanyak m baris, n kolom dan p menunjukkan gambar keberapa. Selain itu
memakai perintah subplot (111) yang fungsinya seperti CLF RESET dimana grafik
yang satu dengan yang lain tidak saling mempengaruhi sehingga mendapatkan
tampilan yang maksimal.

Contoh :

Ansar Suyuti - ikhlas kitta 37


wt = 0: 0.05: 3*pi;
v=120*sin(wt); % Sinusoidal voltage
i=100*sin(wt-pi/4); % Sinusoidal current
p=v.*i; % Instantaneous power

subplot(2, 2, 1),plot(wt,v, wt,i); % Plot of v & i versus wt


title('Voltage & current')
xlabel('\omegat, radians ');

subplot(2, 2, 2),plot(wt,p); % Instantaneous power vs. wt


title('Power')
xlabel(' \omegat, radians ');
Fm=3.0;
fa = Fm*sin(wt); % Three-phase mmf's fa, fb, fc
fb = Fm*sin(wt-2*pi/3);
fc = Fm*sin(wt-4*pi/3);
subplot(2, 2, 3),plot(wt,fa, wt,fb, wt,fc )
title('3-phase mmf');
xlabel(' \omegat, radians ');
fR = 3/2*Fm;
subplot(2, 2, 4),plot(-fR*cos(wt),fR*sin(wt))
title('Rotating mmf')
subplot(111)

Ansar Suyuti – ikhlas kitta 38


MATLAB Terapan 1

V o lt a g e & c u rre n t P ow er
200 15000

100 10000

0 5000

-1 0 0 0

-2 0 0 -5 0 0 0
0 5 10 0 5 10

3ω-p h a s e m m f Rω
t , ra d ia n s t , ra d ia n s
o t a t in g m m f
4 5

0 0

-2

-4 -5
0 5 10 -5 0 5

ω t , ra d ia n s

Statemen subplot(2, 2, 1),plot(wt,v, wt,i)bertujuan untuk membagi tampilan


grafik menjadi 2 baris dan 2 kolom, sehingga layar grafik menjadi empat bagian.
Bagian bagian tersebut diberi nomor grafik berurut-urut, nomor 1 adalah baris
pertama kolom pertama, selanjutnya nomor 2 adalah baris pertama kolom kedua,
nomor 3 adalah baris kedua kolom pertama dan nomor empat adalah baris kedua
kolom kedua. Penempatan grafik disesuaikan dengan nomornya.

Contoh
» x=0:0.001:3;
» f=cos(tan(x))-tan(sin(x));
» subplot(1,2,1),plot(x,f),xlabel('x'),ylabel('y'),axis([0 1.5 -3 1]);
» subplot(1,2,2),plot(x,f),xlabel('x'),ylabel('y'),axis([1.5 3 -3 1]);

Ansar Suyuti - ikhlas kitta 39


1 1

0.5 0.5

0 0

-0 . 5 -0 . 5

-1 -1

y
-1 . 5 -1 . 5

-2 -2

-2 . 5 -2 . 5

-3 -3
0 0.5 1 1.5 1.5 2 2.5 3
x x

Statemen Figure

Statemen figure digunakan apabila dalam suatu program terdapat beberapa grafik,
tetapi ingin ditampilkan pada halaman grafik yang berbeda. Misal program contoh
6-4, dimana keempat grafik ditampilkan dalam satu layar, maka dengan statemen
figure grafik tersebut dapat dibuat pada layar yang berbeda. Statemen figure
adalah

Figure ( nomor grafik), plot (…,….)

Contoh :
clf
wt = 0: 0.05: 3*pi;
v=120*sin(wt); % tegangan sinusoidal
i=100*sin(wt-pi/4); % Arus sinusoidal
p=v.*i; % daya Instantaneous

figure(1),plot(wt,v, wt,i); % Grafik 1


title('Voltage & current')
xlabel('\omegat, radians ');

figure(2),plot(wt,p); % Grafik 2
title('Power')
xlabel(' \omegat, radians ');

Fm=3.0;
fa = Fm*sin(wt);
fb = Fm*sin(wt-2*pi/3);
fc = Fm*sin(wt-4*pi/3);
figure(3),plot(wt,fa, wt,fb, wt,fc ); % grafik 3

Ansar Suyuti – ikhlas kitta 40


MATLAB Terapan 1

title('3-phase mmf');
xlabel(' \omegat, radians ');
fR = 3/2*Fm;
figure(4),plot(-fR*cos(wt),fR*sin(wt)); % Grafik 4
title('mf')

Voltage & current


150

100

50

-50

-100

-150
0 1 2 3 4 5 6 7 8 9 10

ωt, radians

Power
12000

10000

8000

6000

4000

2000

-2000
0 1 2 3 4 5 6 7 8 9 10

ωt, radians

3 -p h a s e m m f
3

-1

-2

-3
0 1 2 3 4 5 6 7 8 9 10

ωt , ra d ia n s

Ansar Suyuti - ikhlas kitta 41


mf
5

-1

-2

-3

-4

-5
-5 -4 -3 -2 -1 0 1 2 3 4 5

Grafik 3- Dimensi
Statemen Plot
Statemen plot3(x,y,z), berguna untuk menghasilkan sebuah garis 3 dimensi dari 3
buah vektor x,y,z yang menyatakan besar masing-masing sumbu

Contoh :
» t=0:pi/50:10*pi;
» plot3(sin(t),cos(t),t)

Hasilnya :

40

30

20

10

0
1

0.5 1

0 0.5
0
-0.5
-0.5
-1 -1

Ansar Suyuti – ikhlas kitta 42


MATLAB Terapan 1

atau perintah

plot (x1,y1,z1,s1,x2,y2,z2,s2,….)

mengkombinasikan beberapa plot (x,y,z,s), dimana x,y,z vektor atau matriks dan s
string.

Statemen Meshgrid

Untuk menggambar permukaan koordinat z berdasarkan nilai matriks m x n. Antar


elemen matriks dihubungkan garis dalam penyajiannya.

Misal z = f(x,y)

sin( x2 + y2 )
z=
x2 + y2

ingin ditampilkan pada rentang -8 ≤ x ≤ 8 dan -8 ≤ y ≤ 8


» x=-8:0.5:8;
» y=x;
» [X,Y]=meshgrid(x,y);
» R=sqrt(X.^2+Y.^2)+eps;
» Z=sin(R)./R;
» mesh(Z)

Ansar Suyuti - ikhlas kitta 43


Stateman Contour

Statemen countour digunakan untuk memvisualisasi kontur atau garis-garis yang


menunjukkan ketinggian tetap. Satatemen contour adalah :

CONTOUR(Z), menggambar contour berdasarkan nilai Z


CONTOUR (X,Y,Z), dimana X dan Y vektor, untuk membatasi area contour dari Z
CONTOUR(Z,N) dan CONTOUR(X,Y,Z,N), menggambar N buah garis
CONTOUR(Z,V) dan CONTOUR(X,Y,Z,V), menggambar sebanyak LENGTH(V) garis
contour pada nilai vektor V
CONTOUR(…..,'linetype') menggambar dengan tipe garis tertentu.

Contoh :
» contour(peaks,50)

Ansar Suyuti – ikhlas kitta 44


MATLAB Terapan 1

45

40

35

30

25

20

15

10

5 10 15 20 25 30 35 40 45

Statemen Mesh dan Surface

Fungsi mesh dan surf menampilkan permukaan secara 3 dimensi. Jika Z matriks
dengan elemen Z(i,j) mendefinisikan ketinggian pada grid (i,j), maka

mesh(Z)

membangkitkan rangka berwarna permukaan matriks Z

surf(Z)

membangkitkan rangka dan pewarnaan permukaan dari Z

Ansar Suyuti - ikhlas kitta 45


contoh :
» mesh(peaks)

dengan perintah tambahan

colormap(hot)
atau
colormap(pink)

maka warna akan beruba sesuai perintah

Memotong sebagian gambar dengan NaN

NaN(Not a Number) bisa untuk menghilangkan sebagian visualisasi

Misal :

Ansar Suyuti – ikhlas kitta 46


MATLAB Terapan 1

» p=peaks;
» p(25:35,2030)=nan*p(25:35,20:30);
» p(25:35,20:30)=nan*p(25:35,20:30);
» mesh(peaks,p)

Arah Pandang Grafik

Dalam MATLAB anda dapat menentukan sudut untuk melihat garafik tiga dimensi.
Statemen view(asimuth,elevation) mengeset sudut pandang dengan menentukan
sudut proyeksi pandang mata dan ketinggian anda. Statemen adalah

view(a,b)

dimana :

a : sudut antara arah pandang terhadap titil (0,0) dengan bidang (x,y)

b : sudut antara proyeksi arah pandang mata ke bidang (x,y) dengan bidang (z,y)

Ansar Suyuti - ikhlas kitta 47


contoh :
» view(20,0)

Ansar Suyuti – ikhlas kitta 48


MATLAB Terapan 1

16. Dasar Operasi Array

Untuk membuat array dalam MATLAB, yang perlu dilakukan hanyalah mengetikkan
kurung kotak kiri, memasukkan elemen - elemen dengan dipisahkan oleh spasi atau
koma, kemudian menutup array dengan kurung kotak kanan.

Contoh :
» A=[1 2 3 4 5]

A=

1 2 3 4 5
» B=[5,4,3,2,1]

B=

5 4 3 2 1

» C=A+B

C=

6 6 6 6 6

Jadi sangat mudah untuk mengoperasikan array dalam MATLAB, begitu pula
mengoperasikan. seperti menjumlahkan, dan operasi lainnya.

Pembentukan Array

MATLAB menyediakan fasilitas lain untuk pembentukan array, yang mana


memasukkan nilai array, tidak perlu mengetikkan elemen demi elemen. Beberapa
cara untuk pembentukan array dapat dilihat pada tabel.

x = [2 2*pi sqrt(2) 2-3j] membentuk array x dengan elemen-elemen khusus


x = first:last membentuk array x dimulai dengan nilai awal first, meningkat
setiap 1 dan berakhir pada nilai akhir last
x = first : increment:last Pembentukan array x dimulai dengan nilai awal first, meningkat
sebesar nilai incerement dan berakhir pada nilai last
x = linspace (first,last,n) Membuat array x dimulai dengan nilai first, berakhir dengan nilai
last, dengan jumlah elemen n
x = logspace (first,last,n) Membuat array x dimulai dengan nilai awal 10first, berakhir
dengan nilai 10last, dengan jumlah elemen n

Ansar Suyuti - ikhlas kitta 49


Contoh :

» x=[2 2*pi sqrt(2) 2-3j]

x=
2.0000 6.2832 1.4142 2.0000 - 3.0000i

» x=1:5

x=
1 2 3 4 5

» x=1:2:10

x=
1 3 5 7 9

» x=linspace(1,5,5)

x=
1 2 3 4 5

» x=logspace(1,5,5)

x=
10 100 1000 10000 100000

» a=1:5,b=1:2:9
a=
1 2 3 4 5
b=
1 3 5 7 9
» a=1:5,b=1:2:9
a=
1 2 3 4 5

b=
1 3 5 7 9

» c=[b a]
c=
1 3 5 7 9 1 2 3 4 5

» d=[a(1:2:5) 1 0 1]
d=
1 3 5 1 0 1

Ansar Suyuti – ikhlas kitta 50


MATLAB Terapan 1

Pengalamatan Array

Array x yang terakhir mempunyai 5 elemen yang dipisahkan dalam kolom-kolom,


dengan demikian dapat dikatakan bahwa array tersebut array satu lima atau suatu
array dengan panjang 5.

Dalam MATLAB, elemen-elemen array diakses menggunakan subscript; misalnya


x(1) adalah elemen pertama x, x(2) adalah elemen kedua x, dst.

Contoh :

» x(2)

ans =

100

» x(1:3)

ans =

10 100 1000

» x(1:2:5)

ans =

10 1000 100000

» x(4:end)

ans =

10000 100000

» x([5 2 5])

ans =

100000 100 100000

Ansar Suyuti - ikhlas kitta 51


Untuk membentuk vektor kolom, maka MATLAB menyediakan operator titik koma (
; ) untuk membuat baris, apostrop ( ' ) untuk transpose, titik apostrop ( .' ) untuk
transpose tetapi tidak melakukan konjugasi. Operator titik-transfose ini
diinterpretasi sebagai transpose konjugasi non kompleks. Jika suatu array
merupakan array kompleks, transpose ( ' ) memberikan transpose konjugasi
kompleks, yaitu tanda dari bagian imajiner yang berubah sebagai akibat operasi
transpose. Tetapi titik transpose melakukan transpose pada array namun tidak
melakukan konjugat padanya.

Contoh :

» A=[1;2;3;4;5]

A=

1
2
3
4
5

» B=[1 2 3 4 5]'

B=

1
2
3
4
5

» AA=[1+2j 1+0.5j 2+1j]'

AA =

1.0000 - 2.0000i
1.0000 - 0.5000i
2.0000 - 1.0000i

» BB=[1+2j 1+0.5j 2+1j].'

BB =

1.0000 + 2.0000i
1.0000 + 0.5000i
2.0000 + 1.0000i

Ansar Suyuti – ikhlas kitta 52


MATLAB Terapan 1

Dari contoh terlihat bahwa bila bilangan kompleks ditranspose dengan statemen
apostrop ( ' ) maka terjadi konjugasi atau dengan kata lain tanda imajiner akan
berubah. Sedangkan bila bilangan kompleks di transpose dengan statemen titik
apostrop ( .' ) maka tidak terjadi konjugasi.

Jika suatu array dapat berupa vektor baris atau vektor kolom, maka array dapat
dibentuk berupa matriks.

Contoh

» K=[1 2 3;4 5 6;7 8 9]

K=

1 2 3
4 5 6
7 8 9

» K=[1 2 3
456
7 8 9]

K=

1 2 3
4 5 6
7 8 9

selain titik koma, menekan tombol Return atau Enter saat memasukkan nilai
matriks juga dapat membuat baris baru.

Ansar Suyuti - ikhlas kitta 53


Operasi Operasi Array
Operasi Array dengan Skalar

Penambahan, pengurangan , perkalian dan pembagian dengan skalar dapat


dikenakan pada semua elemen array.

Contoh

» A=[1 2 3;4 5 6]

A=

1 2 3
4 5 6

» b=A*4

b=

4 8 12
16 20 24

» c=b/4

c=

1 2 3
4 5 6

» d=A+4

d=

5 6 7
8 9 10

Operasi Array dengan Array

Jika dua array mempunyai dimensi yang sama, penambahan, pengurangan,


perkalian dan pembagian berlaku pada elemen ke elemen . Tapi jika dimensi tidak

Ansar Suyuti – ikhlas kitta 54


MATLAB Terapan 1

sama maka tentu operasi tersebut tidak dapat dilaksanakan. Operator -operator
dasar dari operasi array adalah sebagai berikut

+ penambahan array (a+b)


- pengurangan array (a- b)
.* perkalian array (a .* b)
./ pembagian kanan array (a ./b )
.\ pembagian kiri array ( a ./b)
.^ pemangkatan array (a.^ b)

Titik yang mendahului simbol perkalian, pembagian dan pemangkatan


memberitahu MATLAB untuk melakukan operasi elemen ke elemem. Perkalian
tanpa titik berarti perkalian matriks.

Contoh :

» a=[ 1 1 1;2 2 2]

a=
1 1 1
2 2 2

» b=[3 3 3;4 4 4]

b=
3 3 3
4 4 4

» c=a+b

c=
4 4 4
6 6 6

» d=a-b

d=
-2 -2 -2
-2 -2 -2

Ansar Suyuti - ikhlas kitta 55


e=

3 3 3
8 8 8

» f=a./b

f=

0.3333 0.3333 0.3333


0.5000 0.5000 0.5000

» g=a.\b

g=

3 3 3
2 2 2

» h=a.^b

h=

1 1 1
16 16 16

Dari contoh terlihat bahwa semua operasi array dilakukan merupakan operasi antar
elemen-elemen array.

memanipulasi Array

Karena array dan matriks merupakan hal mendasar dalam MATLAB, maka terdapat
banyak cara untuk memanipulasinya.

Cntoh :
» A=[1 2 3;4 5 6;7 8 9]
A=
1 2 3
4 5 6
7 8 9

» A(3,3)=0
A=
1 2 3
4 5 6
7 8 0

Ansar Suyuti – ikhlas kitta 56


MATLAB Terapan 1

mengubah A(3,3) menjadi nol

contoh
» A(2,6)=1
A=
1 2 3 0 0 0
4 5 6 0 0 1
7 8 0 0 0 0

mengubah elemen pada baris 2 kolom 6 menjadi satu, karena A tidak mempunyai
enam kolom, ukuran A diperbesar seperlunya dan diisi dengan nol sehingga matriks
tetap segi empat.

Contoh
» A(:,4)=4
A=
1 2 3 4 0 0
4 5 6 4 0 1
7 8 0 4 0 0

membuat semua elemen di kolom empat menjadi 4.

A=
1 2 3
4 5 6
7 8 9

» B=A(3:-1:1,1:3)
B=
7 8 9
4 5 6
1 2 3

menciptakan matriks B dengan urutan baris A yang dibalik


» B=A(3:-1:1,:)
B=
7 8 9
4 5 6
1 2 3

Ansar Suyuti - ikhlas kitta 57


menciptakan matriks B dengan urtan baris A yang dibalik, disini titik dua berarti
semua kolom (titik dua terakhir dari contoh di atas). Jadi : adalah singkatan 1:end
atau 1:3 sebab A memiliki 3 kolom.
» C=[A B(:,[1 3])]
C=
1 2 3 7 9
4 5 6 4 6
7 8 9 1 3

membuat matriks C dengan menambhkan semua baris pada kolom pertama dan
ketiga B ke sisi kanan A.

» B=A(1:2,2:3)
B=
2 3
5 6

membuat B dengan mengambil dua baris pertama dan dua kolom terakhir A.
» B=A(:)
B=
1
4
7
2
5
8
3
6
9

membuat matriks B dengan mengurutkan kolom-kolom A


» B=B.'
B=
1 4 7 2 5 8 3 6 9

Ansar Suyuti – ikhlas kitta 58


MATLAB Terapan 1

mentranspose matriks A
» B=A
B=
1 2 3
4 5 6
7 8 9

» B(:,2)=[]
B=
1 3
4 6
7 9

mendefinisikan kembali B dengan membuang semua baris pada kolom kedua


matriks B semula. Saat anda mengeset sesuatu menjadi matriks kosong [ ], sesuatu
itu akan terhapus, mengakibatkan matriks berkurang menjadi apa yang tertinggal.

Array dengan Elemen Satu dan Nol

Karena banyak dipergunakan, MATLAB menyediakan fungsi untuk membuat array


yang semua elemennya satu atau nol.

Contoh:
» ones(4)

ans =
1 1 1 1
1 1 1 1
1 1 1 1
1 1 1 1

» zeros(2,5)

ans =

0 0 0 0 0
0 0 0 0 0

» ones(3,4)

ans =

1 1 1 1
1 1 1 1
1 1 1 1

Ansar Suyuti - ikhlas kitta 59


Statemen ones (4) membentuk array bujur sangkar (4 x 4 ) dengan seluruh
elemennya bernilai satu. Statemen ones (3,4) untuk membentuk array berdimensi
3 baris dan 4 kolom dengan seluruh elemen bernilai satu. Statemen zero (2,5)
untuk membentuk array berdimensi 2 baris dan 4 kolom dengan seluruh elemen
bernilai nol.

Operasi Matriks

Semula MATLAB diciptakan untuk menyederhanakan komputasi matriks dan aljabar


linier yang terdapat di berbagai aplikasi adalah sebagai berikut:

+ Penjumlahan
- Pengurangan
* Perkalian
/ dan \ Pembagian kiri dan kanan
X=A\B adalah solusi untuk A*X=B
X=B/A adalah solusi untuk X*A=B
dimensi harus sesuai dengan aturan perkalian
matriks
det (A) Determinan
d=eig(A) Nilai eigen
[V,D] = eig(A) Nilai eigen dan eigen vektor
expm(A) Pemangkatan matriks
inv(A) Invers matriks
lu(A) Faktor dari eliminasi gaus
orth(A) Ortognalisasi
pinv(A) Pseudoinvers
poly(A) Karakteristik polynomial
polyeig(A1,A2,..) Menyelesaikan masalah nilai eigen polinomial
sqrtm(A) Akar kuadrat matriks
svd(A) Dekomposisi nilai singular
trace(A) Jumlah elemen-elemen diagonal

Jika sebuah persamaan simultan sebagai berikut :

a11 X1 + a12 X2 + … + a1n Xn = B1


a21 X1 + a22 X2 + … + a1n Xn = B2
. . . .
. . . .
an1 X1 + an2 X2 + … + ann Xn = Bn

Ansar Suyuti – ikhlas kitta 60


MATLAB Terapan 1

persamaan di atas dapat dituliskan dalam bentuk matriks

a11 a12 ... a1n     


x1
a B1
 21 a22 ... a2 n   x 2 B 2
.  =  
 ... ... ... ...  ...  ... 
 
an1 an 2 ... ann   x3  B3

atau

A.x = B

Sehingga vektor X dapat dihitung :

[x] = [A]-1 B

contoh :

persamaan dalam bentuk , A X = B hitunglah vektor X

1 2 3  x1  366 
4 6    
 5 .x 2 = 804 

7 8 0
 x3 
 351 

» A=[1 2 3;4 5 6;7 8 0]

A=
1 2 3
4 5 6
7 8 0

» b=[366;804;351]

b=
366
804
351

Ansar Suyuti - ikhlas kitta 61


Jika anda mempunyai dasar aljabar linier maka sangat mudah untuk menentukan
bahwa masalah mempunyai satu jawaban tunggal jika determinan matriks A tidak
sama dengan nol.
» det(A)
ans =
27

» inv(A)

ans =

-1.7778 0.8889 -0.1111


1.5556 -0.7778 0.2222
-0.1111 0.2222 -0.1111

Penyelesaian persamaan simultan tersebut diselesaikan dalam program MATLAB


dengan tiga cara :

Cara I
Penyelesaian menggunakan statemen inv
» x=inv(A)*b
x=
25.0000
22.0000
99.0000

Cara II
Penyelesaian menggunakan statemen / (statemen pembagian kanan matriks).
» x=A\b
x=
25.0000
22.0000
99.0000

Ansar Suyuti – ikhlas kitta 62


MATLAB Terapan 1

Cara III
Penyelesaian dengan menggunakan factorisasi lu (statemen lu) dari hasil dari upper
af lower matrik triangular , A=LU, dimana X diperoleh dari X = U-1 L-1 B.
» A=[1 2 3;4 5 6;7 8 0];
» B=[366;804;351];
» [L,U]=lu(A)

L=
0.1429 1.0000 0
0.5714 0.5000 1.0000
1.0000 0 0

U=

7.0000 8.0000 0
0 0.8571 3.0000
0 0 4.5000

» X=inv(U)*inv(L)*B

X=

25.0000
22.0000
99.0000

Untuk mencari nilai eigen values dan eigen vektor

» [x,D]=eig(A)

x=

0.7471 -0.2998 -0.2763


-0.6582 -0.7075 -0.3884
0.0931 -0.6400 0.8791

D=

-0.3884 0 0
0 12.1229 0
0 0 -5.7345

atau

» eig(A)

Ansar Suyuti - ikhlas kitta 63


ans =

-0.3884
12.1229
-5.7345

Contoh :

Carilah nilai x, y dan z dari persamaan dibawah ini

6x - 3y + 4z = 41
12x + 5y - 7z = -26
-6x + 2y + 6z = 14

sebelum kita membuat program MATLAB, maka persamaan dapat dibuat dalam
bentuk matrik

6 −3 4 x   41 
12 − 7   
 5  y  = − 26 

− 6 2 6 

z    14 

atau

[ABC][xyz]=[K]

sehingga

[xyz]=[ABC]-1 [K]

» ABC=[6 -3 4;12 5 -7;-6 2 6];


» K=[41;-26;14];
» xyz=inv(ABC)*K

xyz =

2.0035
-2.6842
5.2316

Ansar Suyuti – ikhlas kitta 64


MATLAB Terapan 1

Contoh

Sebuah rangkaian listrik seperti gambar dibawah, hitunglah V1 dan V2 dan daya
pada setiap sumber arus.

V 1 y12 V 2

y10
y20
i1 i2

y12 = 0,35 - j 1,2 i1 = 30 + j 40 A


y10 = 1,15 - j 0,8 i2 = 20 + j 15 A
y20 = 0,55 - j 0,4

dengan menggunakan hukum kirchhoff, diperoleh persamaan simpul

 1,5 − j2.0 − 0,3 + j15,2  V1  3 + j04  0


=
 − 0,3 + j15,2 0,9 − j1,6   V 2  2 + j10  5
    
atau

[y].[V] = [I]

sehingga

[V]= [y]-1 [I]

Ansar Suyuti - ikhlas kitta 65


sedangkan rumus untuk daya sumber ( S ) = V I*.

I=[30+40j;20+15j]; % Arus sumber


Y=[1.5-2j -0.35+1.2j; -0.35+1.2j 0.9-1.6j];
disp(' tegangan V1 dan V2')
V=inv(Y)*I
disp(' daya sumber S1 dan S2')
S = V.*conj(I)

Hasil program

tegangan V1 dan V2

V=

3.5902 +35.0928i
6.0155 +36.2212i

daya sumber S1 dan S2

S=

1.0e+003 *

1.5114 + 0.9092i
0.6636 + 0.6342i

Matriks Khusus

Matriks dengan kegunaan umum meliputi


» zeros(3)

ans =

0 0 0
0 0 0
0 0 0

» ones(2,4) % 2x4 matriks berelemen satu

ans =

1 1 1 1
1 1 1 1

» zeros(3)+pi

ans =

Ansar Suyuti – ikhlas kitta 66


MATLAB Terapan 1

3.1416 3.1416 3.1416


3.1416 3.1416 3.1416
3.1416 3.1416 3.1416

» eye(3) % matriks identitas


ans =
1 0 0
0 1 0
0 0 1

Statemen zeros(3) digunakan untuk membentuk matriks 3x3 dengan seluruh


elemen bernilai nol, statemen zeros(3)+pi digunakan untuk membentuk matriks nol
3x3 dengan menambahkan nilai pi pada setiap elemen. Statemen eye(3), untuk
membentuk matrik identitas berdimensi 3x3.

17. Akar-akar Polinomial

Mencari akar suatu polinomial merupakan suatu masalah tersendiri muncul dalam
berbagai bidang ilmu. MATLAB menyediakan fungsi roots untuk mencari akar
polinomial, sedangkan akar-akar polinimial yang diperoleh dapat dikonversi
kedalam persamaan awal dengan fungsi poly. Contoh :

s 6 +9 s 5 + 31 .25 s 4 + 61 .25 s 3 + 67 .75 s 2 + 14 .75 s + 15

akar-akar dapat diperoleh dengan menggunakan fungsi roots:

Contoh

» p=[1 9 31.25 61.25 67.75 14.75 15]

p=

1.0000 9.0000 31.2500 61.2500 67.7500 14.7500 15.0000

» r=roots(p)

r=
-4.0000
-3.0000
-1.0000 + 2.0000i
-1.0000 - 2.0000i

Ansar Suyuti - ikhlas kitta 67


0.0000 + 0.5000i
0.0 - 0.5000i

akar-akar polinomial tersebut dapat dikonversi ke koefisien polinomial dengan


fungsi poly(r):
» poly(r)

ans =

1.0000 9.0000 31.2500 61.2500 67.7500 14.7500 15.0000

Contoh
» r=[-1 -2 -3+4i -3-4i]

r=

-1.0000 -2.0000 -3.0000 + 4.0000i -3.0000 - 4.0000i

» poly(r)

ans =

1 9 45 87 50

berarti persamaan polinomialnya adalah :

s 4 + 9s 3 + 45 s 2 + 87 s + 50 = 0

MATLAB juga juga dapat mencari akar karakteristik persamaan polinomial dalam
bentuk matriks :

0 1 −1
 6
A= −6 −11 

− 6 −11 5

Karakteristik persamaan dari matriks tersebut dapat diperoleh fungsi poly dan
akar-akar persamaan diperoleh dengan fungsi roots.

Ansar Suyuti – ikhlas kitta 68


MATLAB Terapan 1

Contoh
» A=[0 1 -1;-6 -11 6;-6 -11 5];
» p=poly(A)

p=

1.0000 6.0000 11.0000 6.0000

» r=roots(p)

r=

-3.0000
-2.0000
-1.0000

akar-akar dari karakteristik persamaan tersebut sama dengan eigenvalues dari


matriks A atau r=eig(A)
» eig(A)

ans =

-1.0000
-2.0000
-3.0000

Perkalian, Pembagian dan Penjumlahan Polinomial

Perkalian polinomial dilakukan dengan fungsi conv (melakukan convulotion dari


array), pembagian dilakukan dengan fungsi deconv dan penjumlahan dilakukan
dengan seperti penjumlahan array biasa tetapi derajat polinomial harus sama, jika
polinomial mempunyai derajat yang berbeda maka derajat yang lebih rendah
ditambahkan dengan koefisien-koefisien nol atau menggunakan fungsi yang
disediakan oleh MATLAB yaitu polyadd.

Contoh .

A = s 2 + 7 s + 12 dan B = s 2 + 9 carilah C=A.B , D=C+B dan E=C-B

Ansar Suyuti - ikhlas kitta 69


Z
Z = s 4 + 9 s 3 + 37 s 2 + 81s + 52 dan Y = s 2 + 4s + 13 carilah X =
Y
contoh dapat diselesaikan dengan MATLAB
A=[1 7 12];B=[1 0 9];
Z=[1 9 37 81 52]; Y=[1 4 13];
C=conv(A,B)
D=A+B
E=A-B
X=deconv(Z,Y)

Hasil dari program adalah :


C=
1 7 21 63 108
D=
2 7 21
E=
0 7 3
X=
1 5 4

Turunan

Turunan polinomial dapat dilakukan dengan menggunakan fungsi polyder.

A = s 4 + 9 s 3 + 37 s 2 + 81s + 52

turunan dari polinomial A adalah:


» A=[1 9 37 81 52];
» polyder(A)
ans =
4 27 74 81

Polynomial Curve Fitting

p ( x) = c1 x d + c 2 x d −1 + .... + c n

Ansar Suyuti – ikhlas kitta 70


MATLAB Terapan 1

persamaan tersebut mempunyai koefisien n=d+1, dengan derajat d. Maka fungsi


pengurangan orde polynomial adalah polyfit(x,y,d).

Contoh .
X= 0 1 2 4 6 10
Y= 1 7 23 109 307 1231

Carilah sebuah polinomial derajat ke 3 dari data tersebut di atas;


» x=[0 1 2 4 6 10];
» y=[1 7 23 109 307 1231];
» c = polyfit(x,y,3)

c=
1.0000 2.0000 3.0000 1.0000

Evaluasi Polinomial

Evaluasi polinomial dapat dilakukan dengan fungsi polyval(c,x).

Contoh, kita ingin mengevaluasi polynomial c terhadap titik x= 0,1,2,3 dan 4 .


» plot(t,x)
» c=[1 2 3 1];
» x=0:1:4;
» y=polyval(c,x)

y=
1 7 23 55 109

» plot(x,y),title('x^3+2x^2+3x+1')

Ansar Suyuti - ikhlas kitta 71


3 2
x +
2x +
3x+
1
1
20

1
00

8
0

6
0

4
0

2
0

0
0 0
.5 1 1
.5 2 2
.5 3 3
.5 4

Partial-fraction Expansion

Untuk memperoleh residu atau partial-fraction expantion ( r ) , kutup yang


bersesuaian (p) dan dirct terms (K), digunakan fungsi : [r,p,K]=residu(b,a].

P( s ) bm s m + bm −1 s m −1 + ... + b1 s + b0
=
Q( s ) a n s n + a n −1 s n −1 + ... + a1 s + a0

Vector b dan a merupakan koefisien dari polinomial.

Contoh

Hitunglah partial fraction expantion dari :

2s 3 + 9s + 1
F (s) =
s 3 + s 2 + 4s + 4

Penyelesaian dengan MATLAB adalah

» b=[2 0 9 1];
» a=[1 1 4 4];
» [r,p,K]=residue(b,a)

r=

0.0000 - 0.2500i

Ansar Suyuti – ikhlas kitta 72


MATLAB Terapan 1

0.0000 + 0.2500i
-2.0000

p=

-0.0000 + 2.0000i
-0.0000 - 2.0000i
-1.0000

K=
2

Berarti partial fraction expantion-nya adalah

−2 j 0.25 − j 0.25 −2 1
2+ + + =2+ + 2
s +1 s + j2 s − j2 s +1 s + 4

untuk mengembalikan persamaan polinomial P(s)/Q(s) dapat dilakukan dengan


fungsi [b,a]=residue(r,p,K).
» [b,a]=residue(r,p,K)

b=
2.0000 0.0000 9.0000 1.0000

a=
1.0000 1.0000 4.0000 4.0000

Ansar Suyuti - ikhlas kitta 73


18. Integral Numerik

Trapezoidal Integration (integrasi trapesium)

Cara paling sederhana untuk menentukan luas daerah dibawah sebuah kurva adalah
dengan membagi-bagi luas daerah itu dengan bentuk persegi . Semakin kecil lebar
persegi yang dibentuk semakin mendekati nilai integral. Atau dengan
menggunakan bagian-bagian secara trapesium. MATLAB melaksanakan integrasi
secara trapesium dengan fungsi "trapz". Syntaksnya adalah trapz (x,y), dimana y
merupakan fungsi.

Contoh :

Hitunglah integral

Ansar Suyuti – ikhlas kitta 74


MATLAB Terapan 1

∫sin xdx
0

jawabannya adalah

∫sin xdx
π
= − cos x |0 =cos 0 - cos π =2
0

Untuk menyelediki pengaruh lebar bagian trapesium, pertama kita gunakan 10


bagian dengan lebar yang sama π / 10 , maka programnya :

» x=linspace(0,pi,10);
» y=sin(x);
» trapz(x,y)

ans =

1.9797

jika lebar bagian trapesium diperkecil, misalnya dengan membagi menjadi 100
bagian, maka
» x=linspace(0,pi,100);
» y=sin(x);
» trapz(x,y)

ans =

1.9998

contoh :

Sebuah accelerometer mengukur percepatan dan digunakan pada pesawat terbang,


roket, dan kendaraan untuk memperkirakan kecepatan dan perpindahannya.
Accelerometer mengintegrasi sinyal percepatan untuk menghasilkan sebuah
perakiraan nilai kecepatan, dan mengintegrasi perkiraan nilai kecepatan untuk
menghasilkan perkiraan nilai pemindahan. Misalnya kendaraan mulai bergerak pada
t=0 dan percepatan yang terukur seperti pada tabel.

Ansar Suyuti - ikhlas kitta 75


Waktu (t) 0 1 2 3 4 5 6 7 8 9 10
Percepatan (m/dtk2) 0 2 4 7 11 17 24 32 41 48 51

Carilah :

• kecepatan setelah 10 detik

• kecepatan pada waktu t= 1,2,..,10 detik

Jawab :

• hubungan antara kecepatan dan percepatan adalah

10 10
V (10 ) = ∫ a (t ) dt + v (0) = ∫ a (t ) dt
0 0

» t=[0:10];
» a=[0,2,4,7,11,17,24,32,41,48,51];
» vak=trapz(t,a)

vak =

211.5000

kecepatan pada t=10 adalah 211,5 meter/detik

• untuk menentukan kecepatan pada waktu t=1,2,…,10, untuk v(t1)=0 maka


persmaan dapat dituliskan menjadi
k k
V (t k ) = ∫ a (t ) dt + v (t1 ) = ∫ a (t ) dt
1 1

dimana k=2,3,4….,11

» t=[0:10];
» a=[0,2,4,7,11,17,24,32,41,48,51];
» v(1)=0;
» for k=2:11;
v(k)=trapz(t(1:k),a(1:k));
end
» disp([t',v'])
0 0

Ansar Suyuti – ikhlas kitta 76


MATLAB Terapan 1

1.0000 1.0000
2.0000 4.0000
3.0000 9.5000
4.0000 18.5000
5.0000 32.5000
6.0000 53.0000
7.0000 81.0000
8.0000 117.5000
9.0000 162.0000
10.0 211.5000

atau dalam bentuk tabel :

Waktu (t) 0 1 2 3 4 5 6 7 8 9 10
Kecepatan (m/dtk) 0 1 4 9,5 18,5 32,5 53 81 117 162 211,5

Integrasi Fungsi Kuadrat

Jika integral merupakan fungsi linier, maka integrasi secara trapesium merupakan
solusi yang paling tepat, tetapi jika integral bukan fungsi linier, maka integrasi
fungsi kuadrat akan menghasilkan tingkat akurasi yang lebih tinggi dibandingkan
integrasi trapesium. Cara pendekatan yang digunakan pada fungsi kuadrat
menggunakan persamaan simpson, yang membagi batas integrasi b - a menjadi
bagian-bagian dengan jumlah yang sama dan menggunakan perbedaan kuadrat
pada tiap-tiap bagian yang bersebelahan. MATLAB menyediakan dua fungsi untuk
menyelesaikan integrasi fungsi kuadrat yaitu : quad yang didasarkan pada
penyelesaian integrasi persamaan Simpson dan quadl yang didasarkan penyelesaian
integrasi algoritma Labatto. Syntaksnya adalah

quad ('function',a,b) dan quadl ('function',a,b)

dimana function adalah nama fungsi , a adalah batas bawah dan b adalah batas
atas integrasi

untuk lebih jelasnya dapat dilihat pada contoh .

Contoh :

Ansar Suyuti - ikhlas kitta 77


π

∫sin xdx
0
=2

» A=quad('sin',0,pi)

A=

2.0000

dari hasil yang diperoleh terlihat bahwa hasil yang diperoleh dari fungsi quad dan
quadl lebih akurat dibandingkan dengan fungsi trapz, namun fungsi quad hanya
dapat digunakan untuk perhitungan integral fungsi dan tidak dapat digunakan
untuk perhitungan integral yang ditentukan dengan nilai set point.

Differenial Numerik

Seperti yang telah ketahui bahwa, turunan dari fungsi dapat diartikan secara grafis
sebagai kemiringan dari fungsi. Algoritma sederhana untuk perhitungan turunan
numerik dapat dilihat pada gambar dibawah ini.

Dari gambar tersebut terlihat ada tiga titik data yang mewakili fungsi y(x), maka :

dy ∆y
= lim ∆x →0
dx ∆x

diasumsikan bahwa jarak antara pengukuran teratur, yaitu x3 − x2 = x2 − x1 = ∆x .

Jika diinginkan untuk memperkirakan turunan dy / dx pada titik x2 , maka jawaban

Ansar Suyuti – ikhlas kitta 78


MATLAB Terapan 1

yang benar adalah kemiringan garis lurus yang dilewati melalui titik ( x2 , y2 ) ,
tetapi ada dua titik pada garis itu sehingga tidak dapat dicari kemiringannya. Oleh
karena itu harus diperkirakan kemiringan dengan menggunakan pendekatan pada
titik-titik data. Diperkirakan kemiringannya adalah :

y − y1 y2 − y1
mA = 2 =
x2 − x1 ∆x

perkiraan lain dapat dihasilkan dari garis lurus B. kemiringannya adalah

y3 − y2 y3 − y2
mB = =
x3 − x2 ∆x

Nilai rata-rata m A dan m B adalah

mA + mB 1  y2 − y1 y3 − y2  y3 − y1
mC = =  + =
2 2  ∆x ∆x  2∆x
kemiringan garis ini dinamakan C, yang menghubungkan titik pertama dan ketiga.

MATLAB menyiapkan fungsi d = diff(x) untuk menyelesaikan persamaan


differensial, dimana x adalah nilai vektor dan hasilnya berupa vektor d berisi
diffrensial antara pendekatan elemen-elemen dalam sumbu x. Bila x memiliki n
elemen, d akan memiliki n-1 elemen, dimana d=[x(2)-x(1), x(3)-x(2), …. , x(n)-x(n-
1)]. Sebagai contoh, bila x = [ 5, 7, 12, 20], lalu diff(x) menjadi vektor [ 2, 5, -32].

Solver ODE 23 dan ODE45

Ordenary Differential Equation (ODE), atau persamaan differensial biasa adalah


persamaan yang memiliki turunan orde dari variabel bebas. Contoh sederhana
adalah

dy
=t 2
dt

Ansar Suyuti - ikhlas kitta 79


variabel y merupakan variabel bebas, dan t merupakan tidak bebas. Persamaan
tersebut dapat diselesaikan dengan mengintegralkan persamaan tersebut dengan
variabel independent t.

t t t
dy t3 t3
∫0 dt = ∫0 = =
2
dt t dt
3 0
3

hasilnya adalah

t3
y (t ) = y (0) +
3

untuk selanjutnya kita gunakan notasi turunan diberi simbol "dot" /"titik", misalnya

o dy
y (t ) =
dt
oo d2y
y (t ) =
dt 2

Penyelesaian dengan dengan fungsi ode 23 menggunakan solusi penyelesaian


persamaan differensial dengan menggunakan kombinasi metode Runge-Kutta orde
dua dan tiga dengan step-size, sedangkan ODE 45 menggunakan kombinasi metode
Runge-Kutta orde empat dan orde lima. Pada umumnya ODE 45 lebih cepat dan
akurat, tetapi menggunakan step-size yang lebih besar sehingga dapat
menghasilkan plot yang tidak sehalus dengan plot yang dihasilkan ODE 23.

Syntax dari ODE adalah

[t,y]=ode23( 'ydot', tspan, y0 )

ydot adalah nama file fungsi yang memiliki input t dan y dan mempunyai output
yang berupa vektor kolom yang memperesentasikan dy/dt, yaitu f(t,y). baris dari
vektor kolom harus sama dengan orde dari persamaan. Syntax ODE 23 dan ODE 45
adalah solver yang identik. Vektor tspan berisi nilai awal dan akhir dari variabel
bebas t dan dapat dipilih dari nilai t yang diinginkan, misalnya nilai t0<t<tf maka
tspan adalah [t0 tf], dimana t0 adalah nilai awal dan tf adalah nilai akhir dari

Ansar Suyuti – ikhlas kitta 80


MATLAB Terapan 1

variabel bebas t. Anda juga memecahkan persamaan secara mundur dengan


membuat t0 menjadi lebih besar dari tf.

Contoh Aplikasi ODE untuk penyelesaian persamaan differensial, pada sebuah


rangkaian listrik yang terdiri dari elemen R, L dan C

t R = 1 .4 o h m L=2 H

V =1 V +
C = 0 .3 2 F
-
V c (t)

Elemen dari rangkaian ini adalah R=1.4 Ω , L= 2 H, dan C =0.32 F. Keadaan awal
dari arus ini adalah 0, dan tegangan awal kapasitor 0.5 Volt. Kemudian tegangan Vs
=1 Volt digunakan pada saat t =0. Carilah niali i(t) dan v(t) untuk waktu 0<t<15
detik dan gambarlah garfik arus dengan tegangan kapasitor.

Persamaan rangkaian Gambar 2.10 adalah

di
Ri + L + Vc = Vs ====== L di/dt =vs-Vc-Ri
dt

di/dt= (1/L)(Vs-X1-Ri)

0
X 2 =(1/L) (Vs-X1-Ri)
dimana :

dVc
i = C( )
dt

Ansar Suyuti - ikhlas kitta 81


x1 = Vc

x2 = i

• 1
x1 = ( ) x2
C

x 2 = (1 / L)(Vs − x1 − Rx 2)

Xdot=[X(2)/C; 1/L*(Vs-x(1)-RX(2)]

Program File-M untuk penyelesaian persamaan differensial tersebut adalah

Program Utama
t0= 0; tfinal =15;
x0 = [0.5, 0];
tspan = [t0, tfinal];
[t,x] = ode45('electsys',tspan, x0);
subplot(2,1,1),plot(t,x)
title('Time response of an RLC series circuit')
xlabel('t, sec')
text(8,1.15,'Capacitor voltage')
text(8, 0.1,'Current')
vc= x(:,1); i = x(:,2);

sub program
function xdot = electsys(t,x);
V = 1;
R =1.4; L = 2; C = 0.32;
xdot = [x(2)/C ; 1/L*( V - x(1) - R*x(2) ) ]

Hasil programnya adalah

Ansar Suyuti – ikhlas kitta 82


MATLAB Terapan 1

Time response of an RLCseries circuit


1.2
Capacitor voltage

0.8

0.6

0.4

0.2

Current

-0.2
0 5 10 15
t, sec

Aplikasi pada pengaturan motor DC terkenali jangkar

Pengaturan kecepatan motor dc pengaturan tegangan terminal jangkar, biasa


digunakan pada sistem kontrol simpal tertutup. Diagram motor dc pengaturan
tegangan jangkar diberikan pada gambar 1. Pada gambar ini v(t) adalah tegangan
jangkar yang dianggap sebagai masukan sistem. Resistansi dan induktansi rangkaian
jangkar adalah R dan L. Tegangan e(t) adalah tegangan yang timbul pada
kumparan jangkar karana adanya pergerakan pada kumparan di dalam magnetik
motor dan biasanya disebut emf-balik (back emf ).

Sehingga dapat dituliskan


e(t ) = Kφ
dl

Ansar Suyuti - ikhlas kitta 83


R L
k o n s ta n

V(t) eb(t)

J
B
T(t)

Gambar 1. Motor DC pengaturan jangkar

dengan K adalah konstanta motor, φ adalah fluks medan, dan θ adalah sudut


poros motor, jadi dl adalah kecepatan sudut poros ( ω ), jika fluks konstant
maka .


eb (t ) = K m = K mω
dt

Untuk rangkaian jangkar dapat dituliskan

di (t )
v (t ) = R.ia (t ) + L + eb (t )
dt

Persamaan torka adalah

T (t) = K φ i a ( t)

Karena fluks diasumsikan konstan, maka dapat dituliskan

T (t) = KT i a ( t)

Persamaan tegangan motor menjadi

Ansar Suyuti – ikhlas kitta 84


MATLAB Terapan 1

e(t) = Ke.ω (t)

Momen inersia J meliputi semua inersia yang dihubungkan ke poros motor dan
konstanta B meliputi gesekan udara dan gesekan bantalan poros, maka persamaan
toki menjadi :

d 2θ dθ
T (t ) = J 2
+B atau
dt dt

dw
T (t ) = J + Bω(t )
dt

Subtitusi pers.(5) dan (6 ) kedalam pers. ( 3) diperoleh

di a (t ) I
= [ − Ra i a (t ) − k bω(t ) + v (t )]
dt L

diperoleh

dω I
= [ K m ia (t ) − Bω(t )]
dt J

diperoleh matriks persamaan differensial atau yang biasa disebut model dinamik
motor DC

 d(t)  R Kbl
 d   L −− Lt ia(t)  1
  =  K    +  La.v(t)
 dω   − B ω (t)  0
 d   J Jt   

Ansar Suyuti - ikhlas kitta 85


Dengan mengganti simbol ia(t) menjadi x1 dan ω(t ) menjadi x 2 , maka dapat
ditulis sebagai berikut

o  R Ke  x  1 
  − −   1  
 xo1  =  L L .  +  L  v(t )
 x   Km B   
 2 −   x2 
J J   0 
atau

o
X = A.x + B.v

Persamaan differensial tersebut di atas dapat diselesaikan dengan menggunakan


program file-M ode23 atau ode45 dari MATLAB.

Tabel . Parameter-parameter motor DC pengaturan jangkar, 5 HP, 230 Volt.

Parameter-parameter motor DC Parameter-parameter motor DC


Tahanan Jangkar (R) 0,200 Ω Konstanta mekanik (Km) 0,7789 N.m/A
Induktansi (L) 0,067 H Konstanta motor (Ke) 0,9032 V.dt/rad
Arus jangkar nominal (Ia ) 18,3 Amp Putaran nominal ( ω nom
2500 rpm
)
Momen inersia ( J ) 0,6700 LB.FT2 Konstanta gesekan (B) 0,0545 N.m dt/rad
0,0282 N.m.dt2/rad

Program MATLAB-nya
t0= 0; tfinal = 7; % time interval
x0 = [0, 0]; % initial conditions
tspan = [t0, tfinal]; % use with MATLAB 5
[t,x] = ode45('adcmotor', tspan, x0); % use with MATLAB 5
i= x(:,1); w = x(:,2);
subplot(2,1,1), plot(t,i),grid on
title('Karakteristik arus jangkar Vs waktu ')
xlabel('Waktu (dtk)'),ylabel('Arus jangkar (Amp.)')
subplot(2,1,2),plot(t,w),grid on
title('Karakteristik kecepatan Vs waktu ')
xlabel('Waktu (dtk)'),ylabel('kecepatan (rad/det)')

Ansar Suyuti – ikhlas kitta 86


MATLAB Terapan 1

subplot(111)

function xdot = adcmotor(t,x) % returns the state derivatives


R=0.20; % (ohm)
L = 0.67; % (Henry)
Ke=0.9032; % (Volt.det/rad
Km=0.7789; % (N.m/Amp)
B=0.0545; % (N.m.det/rad)
J = 0.0282; % (N.m.det2/rad)
A=[-R/L,-Ke/L;Km/J,-B/J];
B=[1/L;0];
v=240;
xdot = A*x+B*v;

K a ra k t e ris t ik a ru s ja n g k a r V s w a k t u
80
A ru s ja n g k a r (A m p . )

60

40

20

-2 0
0 1 2 3 4 5 6 7
W a k t u (d t k )
K a ra k t e ris t ik k e c e p a t a n V s w a k t u
500
k e c e p a t a n (ra d / d e t )

400

300

200

100

0
0 1 2 3 4 5 6 7
W a k t u (d t k )

Ansar Suyuti - ikhlas kitta 87