Anda di halaman 1dari 32

Dasar Dasar Pemrograman MATLAB untuk Teknik Elektro

BAB II
OPERATOR DAN FUNGSI DASAR MATEMATIS
2.1 Operator Aritmetik
Operator aritmetik adalah simbol-simbol yang digunakan untuk maksud operasi numerik. MATLAB
menyediakan operator aritmatik dasar berikut :
Operasi
Penambahan a+b
Pengurangan, a-b
Perkalian, a.b
Pembagian, a: b
Pemangkatan, ab

Simbol
+
*
/ atau \
^

Contoh
15+10
15-10
15*10
15/10=10\15
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 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

(1 + I ) N 1

A=P

, untuk P=1000, I=12% dan N=10

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

Ansar Suyuti

Operator dan Fungsi Dasar

Matematis

2.2 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 array logika,
yaitu hasilnya membuat bilangan 1 dan 0 yang tidak saja dapat digunakan untuk statemen matematika,
tetapi juga dapat digunakan untuk pengalamatan.

2.2.1 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
B=
8 7 6 5
tf=A>4
tf =
0 0 0 0
tf=(A==B)
tf =
0 0 0 0

2.2.2 Operator Logika


Operator logika menyediakan cara untuk menggabung ekspresi logika. Operator logika terdiri dari :

Operator Logika
&
|
~

Ansar Suyuti

Deskripsi
AND
OR
NOT

10

Dasar Dasar Pemrograman MATLAB untuk Teknik Elektro


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

x=[1,1,0,0];
y=[1,1,1,1];
z1=~y>x
z1 =
0 0 0
z2=x&y
z2 =
1 1 0
z3=x|y
z3 =
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
1
0
0

0
0
1
1

0
0
1
1

1
1
1
1

0
0
0
0

1
1
1
1

2.3 Fungsi-fungsi Dasar Matematis


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

Ansar Suyuti

11

Operator dan Fungsi Dasar

Matematis
Fungsi trigonometri
abs (x)
acos(x)
acosh(x)
angle(x)
asin(x)
asinh(x)
atan(x)
atan2(x)
atanh(x)
ceil(x)
conj(x)
cos(x)
cosh(x)
exp(x)
fix(x)
floor(x)
gdc(x,y)
imag(x)
lcm(x)
log(x)
log10(x)
real(x)
rem(x,y)
round(x)
sign(x)
sin(x)
sinh(x)
sqrt(x)
tan(x)

harga mutlak atau besarnya bilangan kompleks


invers cosinus
invers cosinus hiperbolik
sudut pada suatu bilangan kompleks
invers sinus
invers sinus hiperbolik
invers tangen
invers tangen empat kuadran
invers tangen hiperbolik
pembulatan ke arah plus tak berhingga
konjuget bilangan kompleks
cosinus
cosinus hiperbolik
eksponensial
pembulatan ke arah nol
pembulatan ke arah minus tak berhingga
faktor persekutuan terbesar bilangan bulat x dan y
bilangan imajiner
kelipatan persekutuan terkecil bilangan bulat x dan y
logaritma natural
logaritma biasa
bagian real suatu bilangan kompleks
sisa pembagian x dibagi y
pembulatan ke arah bilangan bulat terdekat
menghasilkan tanda dari argumen
sinus
sinus hiperbolik
akar kuadrat
tangen

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

Ansar Suyuti

12

Dasar Dasar Pemrograman MATLAB untuk Teknik Elektro


Fungsi dasar MATLAB
exponensial
logaritma natural
logaritma biasa (basis 10)
akar kuadrat
harga mutlak
sudut fasa
kompleks konjugate
bagian imajiner bilangan kompleks
bagian real bilangan kompleks
membulatkan ke arah nol
membulatkan ke arah minus tak terhingga
membulatkan ke arah plus tak terhingga
membulatkan ke arah bilangan bulat terdekat
modulus (sisa pembagian)
pembagian bilangan bulat
tanda bilangan

exp
log
log10
sqrt
abs
angle
conj
imag
real
fix
floor
ceil
round
mod
rem
sign

Contoh :

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

2.4 Format output dan input numerik


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 berefek pada berapa jumlah angka yang ditampilkan, bukan bagaimana MATLAB menghitung
atau menyimpannya.
MATLAB
COMMAND
Format short
Format long
Format short e
Format long e
Format short g

Average_Cost

Keterangan

50.833
50.83333333333334
5.0833e+01
5.083333333333334e+01
50.833

Format long g

50.83333333333333

Format hex
Format bank
Format +
Format rat

40496aaaaaaaaaab
50.83
+
305/6

5 digits
16 digits
5 digits plus exponent
16 digits plus exponent
Better of format short or
format short e
Better of format longt or
format long e
Hexadecimal
2 decimal digits
Positive, negative, or zero
Rational approximation

Ansar Suyuti

13

Operator dan Fungsi Dasar

Matematis

Untuk lebih fleksibelnya dalam format output, MATLAB menyediakan fungsi fprintf untuk
menampilkan hasil/output dri program. Beberapa format dari fprintf dapat dilihat pada tabel.

%e
%E
%f
%s
%i
%u
%x
%X

Kode Format
scientific format, lower case e
sientific format, upper case E
format desimal
string
integer
mengikuti tipe
hexadecimal, lower case
hexadecimal, upper case

\n
\r
\b
\t
\g
"
\\
\a

Kontrol Karakter
baris baru
permulaan dari baris
back space
tabulasi
halaman baru
apostrop
back slash
bell

Contoh penggunaan fprintf

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


Luas= 314.159 meter per segi

Format %7.3f, menunjukkan format bilangan desimal tujuh angka dengan tiga angka dibelakang
koma. Sedangkan /n untuk baris baru.
Contoh lain untuk membuat format dalam bentuk tabel
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

Pada M-file input nilai vriabel dapat dilakukan dari keyboard dengan menggunakan perintah input
Contoh :
R=input ('Masukkan Harga barang =')
Maka dilayar akan muncul tulisan

Ansar Suyuti

14

Dasar Dasar Pemrograman MATLAB untuk Teknik Elektro


Masukkan Harga barang =
Jika diketik dari keyboard 10000, Maka hasil yang diperoleh adalah
R=
10000
Contoh 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),' = '])*pi/180;
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)*180/pi)
' derajat']);
Hasil program yang ditampilkan dari command window MATLAB adalah
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

Ansar Suyuti

15

Operator dan Fungsi Dasar

Matematis

II. OPERASI ARRAY DAN MATRIK


2.1 Array Sederhana
Untuk menghitung nilai fungsi sinus pada priode pertama, y=sin(x) ; 0 x . Kita mencoba
membuat suatu tabel atau array untuk menghitung ni x dan y seperti dibawah ini :
x
y

0
0

.1
.31

.2
.59

.3
.81

.4
.95

.5
1.0

.6
.95

.7
.81

.8
.59

.9
.31

Nilai pertama y berkaitan dengan nilai pertama x, nilai kedua y berkaitan nilai kedua x, dst.
MATLAB menangani array secara intuitif. Pembuatan array dilakukan dengan mudah-cukup dengan
mengikuti struktur tabel di atas.

x=[0.1*pi .2*pi .3*pi .4*pi .5*pi .6*pi .7*pi .8*pi .9*pi pi]
x=
Columns 1 through 7
0.3142 0.6283 0.9425 1.2566 1.5708 1.8850 2.1991
Columns 8 through 10
2.5133 2.8274 3.1416
y=sin(x)
y=
Columns 1 through 7
0.3090 0.5878 0.8090 0.9511 1.0000 0.9511 0.8090
Columns 8 through 10
0.5878 0.3090 0.0000
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.
Karena spasi memisahkan elemen-elemen array, bilangan kompleks yang dimasukkan sebagai elemen
array tidak dapat memuat spasi kecuali ditutup dengan kurung.
2.2 Pengalamatan Array
array x di atas mempunyai 11 elemen yang dipisahkan dalam kolom-kolom, dengan demikian dapat
dikatakan bahwa array tersebut array satu kali sebelas atau suatu array dengan panjang 11.
Dalam MATLAB, elemen-elemen array diakses menggunakan subscript; misalnya x(1) adalah elemen
pertama x, x(2) adalah elemen kedua x, dst. Contoh :
x(3)
ans =
0.9425
y(3)
ans =
0.8090

Ansar Suyuti

16

Dasar Dasar Pemrograman MATLAB untuk Teknik Elektro

Untuk mengakses suatu blok elemen, MATLAB menyediakan notasi kolom


x(1:7)
ans =
0.3142 0.6283 0.9425 1.2566 1.5708 1.8850 2.1991
elemen-elemen di atas adalah elemen pertama sampai elemen ke 7
x(7:end)
ans =
2.1991 2.5133 2.8274 3.1416
mulai dari elemen ke 7 sampai elemen terakhir. Kata End berarti elemen terakhir dalam array x.
x(3:-1:1)
ans =
0.9425 0.6283 0.3142
elemen-elemen di atas adalah elemen ke 3, ke 2 dan pertama dalam urutan ke bawah 3:-1:1 berarti "
mulai dari kolom 3, hitung turun satu-satu, dan berhenti saat 1.
x(2:3:9)
ans =
0.6283 1.5708 2.5133
elemen-elemen di atas adalah elemen ke 2, ke 5 dan ke 8. 2:3:9 berarti " muali dari 2, hitung ke atas
dengan penambahan 3, dan berhenti setelah mencapai 9.
x([8 2 9 1])
ans =
2.5133 0.6283 2.8274 0.3142
disini kita gunakan [8 2 9 1 ] untuk mengambil elemen-elemen array x dalam urutan sebagaimana yang
dituliskan dalam kurung kotak.
2.3 Pembentukan array
Seperti yang telah dilakukan sebelumnya dengan memasukkan nilai-nilai x dengan mengetikkan tiap
elemen x. Hal ini akan membuat kita repot jika elemen dari array cukup banyak, maka MATLAB
menyediakan cara lain untuk memasukkan nilai-nilai dalam array.
x=(0:0.1:1)*pi
x=
Columns 1 through 7
0 0.3142 0.6283 0.9425 1.2566 1.5708 1.8850
Columns 8 through 11
2.1991 2.5133 2.8274 3.1416
x=linspace(0,pi,11)
x=
Columns 1 through 7
0 0.3142 0.6283 0.9425 1.2566 1.5708 1.8850
Columns 8 through 11
2.1991 2.5133 2.8274 3.1416

Ansar Suyuti

17

Operator dan Fungsi Dasar

Matematis

Dalam kasus pertama, notasi kolom (0:0.1:1) menciptakan array yang dimulai dengan 0, meningkat
setiap 0.1 dan berhenti pada 1. Setiap elemen ini array ini kemudian dikalikan dengan untuk
menciptakan nilai yang diinginkan dalam x. Dalam kasus ke dua, fungsi linespace digunakan untuk
menciptakan x.
Linspace(nilai_awal, nilai_akhir,jumlah_elemen)
Kedua cara pembentukan array di atas membentuk array dengan setiap elemennya berjarak linier
terhadap elemen yang lain. Untuk kasus-kasus khusus dimana jarak logaritma diperlukan, MATLAB
menyediakan fungsi logspace:
logspace(0,2,11)
ans =
Columns 1 through 7
1.0000 1.5849 2.5119 3.9811 6.3096 10.0000 15.8489
Columns 8 through 11
25.1189 39.8107 63.0957 100.0000
Di atas kita membuat array dimulai 100, diakhiri dengan 102, memuat sebelas elemen. Argumen fungsi
didefisikan sebagai
Logspace(eksponen_awal, eksponen_akhir, jumlah_elemen)
Kadang-kadang diperlukan suatu array yang elemen-elemennya tidak berjarak linier atau logaritmis
dengan elemen-elemen lain.
a=1:5,b=1:2:9
a=
1 2 3 4
b=
1 3 5 7
a=1:5,b=1:2:9
a=
1 2 3 4
b=
1

5
9

c=[b a]
c=
1 3

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

2.4 Orientasi Array


Karena fungsi-fungsi array yang telah dibahas sebelumnya semua membentuk vektor baris, maka
dbutuhkan suatu cara untuk membentuk vektor kolom.
c=[1;2;3;4;5]
c=
1

Ansar Suyuti

18

Dasar Dasar Pemrograman MATLAB untuk Teknik Elektro


2
3
4
5
dengan memisahkan elemen dengan titik koma.
memisahkan elemen dengan spasi atau koma membuat elemen berada dalam kolom yang berbeda,
sedangkan memisahkan elemen dengan titik koma membuat elemen berada dalam baris yang berbeda.
Cara lain adalah dengan membentuk vektor baris kemudian ditransfose MATLAB (')

b=a'
b=
1
2
3
4
5
c=b'
c=
1 2

MATLAB juga menyediakan transpose dengan diawali titik. 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.
c=a.'
c=
1
2
3
4
5
menunjukkan bahwa .' dan ' identik jika diterapkan pada bilangan real.
d=a+i*a
d=
Columns 1 through 4
1.0000 + 1.0000i 2.0000 + 2.0000i 3.0000 + 3.0000i 4.0000 + 4.0000i
Column 5
5.0000 + 5.0000i
c=d'
c=
1.0000 - 1.0000i
2.0000 - 2.0000i
3.0000 - 3.0000i
4.0000 - 4.0000i
5.0000 - 5.0000i

Ansar Suyuti

19

Operator dan Fungsi Dasar

Matematis
e=d.'
e=
1.0000 + 1.0000i
2.0000 + 2.0000i
3.0000 + 3.0000i
4.0000 + 4.0000i
5.0000 + 5.0000i

pada c=d' menciptakan vektor c yang merupakan transpose konjugate kompleks dari d, sedangkan
e=d.' menciptakan vektor e yang merupakan transpose d.
Jika suatu array dapat berupa vektor baris atau vektor kolom, wajarlah jika array dapat juga
mempunyai banyak baris maupun banyak kolom. Artinya array dapat mengambil bentuk berupa
matriks.
g=[1 2 3;4 5 6]
g=
1 2 3
4 5 6
g=[1 2 3
4 5 6]
g=
1 2 3
4 5 6
selain titik koma, menekan tombol Return atau Enter saat memasukkan nilai matriks juga dapat
membuat baris baru.
Operasi Array-Skalar
Penambahan, pengurangan , perkalian dan pembagian dengan skalar dapat dikenakan pada semua
elemen array.
h=g-2
h=
-1 0
2 3

1
4

i=g*2-1
i=
1 3 5
7 9 11
j=g/2
j=
0.5000 1.0000 1.5000
2.0000 2.5000 3.0000

Operasi Array-Array
Jika dua array mempunyai dimensi yang sama, penambahan, pengurangan, perkalian dan pembagian
berlaku pada elemen ke elemen

Ansar Suyuti

20

Dasar Dasar Pemrograman MATLAB untuk Teknik Elektro

g=[1 1 1 1;2 2 2 2;3 3 3 3]


g=
1
2
3

1
2
3

1
2
3

1
2
3

h=[4 4 4 4;5 5 5 5;6 6 6 6]


h=
4 4 4 4
5 5 5 5
6 6 6 6
j=g+h
j=
5 5
7 7
9 9

5
7
9

5
7
9

k=g-h
k=
-3 -3 -3
-3 -3 -3
-3 -3 -3

-3
-3
-3

l=2*g-h
l=
-2 -2 -2
-1 -1 -1
0 0 0

-2
-1
0

m=g.*h
m=
4 4 4 4
10 10 10 10
18 18 18 18

n=g*h
??? Error using ==> *
Inner matrix dimensions must agree.

Disini kita mengalikan elemen-elemen yang seletak dari g dan h dengan menggunakan simbol
perkalian titik (.*). Titik yang mendahului simbol perkalian memberitahu MATLAB untuk melakukan
perkalian elemen ke elemem. Perkalian tanpa titik berarti perkalian matriks.

o=g./h
o=
0.2500 0.2500 0.2500 0.2500
0.4000 0.4000 0.4000 0.4000
0.5000 0.5000 0.5000 0.5000

Ansar Suyuti

21

Operator dan Fungsi Dasar

Matematis
p=h.\g
p=
0.2500 0.2500 0.2500 0.2500
0.4000 0.4000 0.4000 0.4000
0.5000 0.5000 0.5000 0.5000

Seperti yang berlaku pada skalar, pembagian dapat menggunakan garis miring kiri atau miring kanan.
s=g.^(h-2)
s=
1 1 1 1
8 8 8 8
81 81 81 81

Array dengan elemen satu dan nol


Karena banyak dipergunakan, MATLAB menyediakan fungsi untuk membuat array yang semua
elemennya satu atau nol.
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(size(g))
ans =
1
1
1

1
1
1

1
1
1

1
1
1

2.5 Memanipulasi Array


Karena array dan matriks merupakan hal mendasar dalam MATLAB, maka terdapat banyak cara untuk
memanipulasinya.
A=[1 2 3;4 5 6;7 8 9]
A=
1 2 3
4 5 6

Ansar Suyuti

22

Dasar Dasar Pemrograman MATLAB untuk Teknik Elektro


7

A(3,3)=0
A=
1 2 3
4 5 6
7 8 0
mengubah A(3,3) menjadi nol
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.
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
menciptakan matriks B dengan urutan 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=

Ansar Suyuti

23

Operator dan Fungsi Dasar

Matematis
2
5

3
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

mentranspose matriks A
B=A
B=
1 2
4 5
7 8

3
6
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.

Ansar Suyuti

24

Dasar Dasar Pemrograman MATLAB untuk Teknik Elektro

III OPERASI MATRIKS


3.1 Himpunan Persamaan Linier
Semula MATLAB diciptakan untuk menyederhanakan komputasi matriks dan aljabar linier yang
terdapat di berbagai aplikasi. Contoh :

1 2 3 x1 366
4 5 6. x 2 = 804


7 8 0 x3 351
A. x = b
Dalam MATLAB perkalian matriks dilambangkan asterik (*). Jika terdapat suatu penyelesaian, maka
juga terdapat beberapa metode untuk menyelesaikannya, seperti eliminasi gaus, faktorisasi LU, atau
penggunaan langsung dari A-1. secara analisis, penyelesaian ditulis sebagai x = A-1.b.
Untuk menyelesaikan masalah tersebut di atas diperlukan cara untuk memasukkan A dan b.
A=[1 2 3;4 5 6;7 8 0]
A=
1
4
7

2
5
8

3
6
0

b=[366;804;351]
b=
366
804
351
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 linier tersebut dapat diselesai dengan tiga cara :

Ansar Suyuti

25

Matematis

Operator dan Fungsi Dasar

Cara I, dengan menggunakan invers matriks


x=inv(A)*b
x=
25.0000
22.0000
99.0000
Cara II, dengan menggunakan operasi pembagian matriks
x=A\b
x=
25.0000
22.0000
99.0000
Cara III, dengan menggunakan factorisasi 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

Ansar Suyuti

26

Dasar Dasar Pemrograman MATLAB untuk Teknik Elektro


D=
-0.3884
0
0
0 12.1229
0
0
0 -5.7345
atau
eig(A)
ans =
-0.3884
12.1229
-5.7345
3.2 Fungsi-fungsi Matriks yang umum digunakan
det (A)
d=eig(A)
[V,D] = eig(A)
expm(A)
inv(A)
lu(A)
orth(A)
pinv(A)
poly(A)
polyeig(A1,A2,..)
sqrtm(A)
svd(A)
trace(A)

determinan
Nilai eigen
nilai eigen dan eigen vektor
pemangkatan matriks
invers matriks
faktor dari eliminasi gaus
ortognalisasi
pseudoinvers
karakteristik polynomial
menyelesaikan masalah nilai eigen polinomial
akar kuadrat matriks
dekomposisi nilai singular
jumlah elemen-elemen diagonal

3.3 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 =
3.1416 3.1416 3.1416
3.1416 3.1416 3.1416
3.1416 3.1416 3.1416

eye(3) % matriks identitas

Ansar Suyuti

27

Operator dan Fungsi Dasar

Matematis
ans =
1 0
0 1
0 0

0
0
1

Contoh; carilah nilai v dan gambar nilai yang diperoleh.

2
1
2

v1 1
1
1
1
+ j 0.2 +
. v2 = 0
2
j10
j10
1
1
1 v3 0

+
j10
10 j10

1
2

kita dapat menyelesaikan dengan MATLAB dalam M-File :


% pl1.m nama proram
clear
A(1,1)=1/2;
A(1,2)=-1/2;
A(2,1)=-1/2;
A(2,2)=1/2+0.2j+1/10j;
A(2,3)=-1/10j;
A(3,2)=-1/10j;
A(3,3)=1/10+1/10j;
y=[-1 0 0]';
% Penyelesaian persamaan
v=A\y
vmag=abs(v)
sudutv=angle(v)*180/pi
% menggambar hasil terhadap waktu
theta=linspace(0,2*pi);
v1=vmag(1)*cos(theta-sudutv(1));
v2=vmag(2)*cos(theta-sudutv(2));
v3=vmag(3)*cos(theta-sudutv(3));
thd=theta*180*pi;

Ansar Suyuti

28

Dasar Dasar Pemrograman MATLAB untuk Teknik Elektro


plot(thd,v1,thd,v2,thd,v3);
jika program tersebut dijalankan, hasilnya seperti dibawah ini ;
pl1
v=
-4.0000 + 6.0000i
-2.0000 + 6.0000i
2.0000 + 4.0000i
vmag =
7.2111
6.3246
4.4721
sudutv =
123.6901
108.4349
63.4349
8

-2

-4

-6

-8
0

Ansar Suyuti

500

1000

1500

2000

2500

3000

3500

4000

29

Operator dan Fungsi Dasar

Matematis

IV. OPERASI RELASI DAN LOGIKA & KONTROL PROGRAM


Matlab menyediakan operasi logika dan relasi. 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 array logika,
yaitu hasilnya membuat bilangan 1 dan 0 yang tidak saja dapat digunakan untuk statemen matematika,
tetapi juga dapat digunakan untuk pengalamatan.
4.1 Operator Relasi
Operator relasi MATLAB terdiri semua perbandingan :
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 ;
A=1:9,B=9-A
A=
1 2 3 4
B=
8 7 6 5
tf=A>4
tf =
0 0 0 0
tf=(A==B)
tf =
0 0 0 0

x=(-3:3)/3
x=
-1.0000 -0.6667 -0.3333
sin(x)./x
Warning: Divide by zero.
ans =
0.8415 0.9276 0.9816

0 0.3333 0.6667 1.0000

NaN 0.9816 0.9276 0.8415

kita bandingkan
x=x+(x==0)*eps
x=

Ansar Suyuti

30

Dasar Dasar Pemrograman MATLAB untuk Teknik Elektro


-1.0000 -0.6667 -0.3333 0.0000 0.3333 0.6667 1.0000
sin(x)./x
ans =
0.8415 0.9276 0.9816 1.0000 0.9816 0.9276 0.8415
4.2 Operator Logika
Operator logika menyediakan cara untuk menggabung eksperi logika. Operator logika terdiri dari :

Operator Logika
&
|
~

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

Deskripsi
AND
OR
NOT

4.3 KONTROL PROGRAM


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

4.3.1 Loop for


Loop for memungkinkan sekelompok perintah diulang sebanyak suatu jumlah yang tetap. Bentuk
umum dari loop for adalah
For x = array
Perintah-perintah
end

contoh;
for n=1:10
x(n)=sin(n*pi/10)
end
x=

Ansar Suyuti

31

Matematis

Operator dan Fungsi Dasar

Columns 1 through 7
0.3090 0.5878 0.8090 0.9511 1.0000 0.9511 0.8090
Columns 8 through 10
0.5878 0.3090 0.0000
data=[3 9 45 6;7 16 -1 5]
data =
3 9 45 6
7 16 -1 5
for n=data
x=n(1)-n(2)
end
x=
-4
x=
-7
x=
46
x=
1
loop for dapat dibuat didalam loop for yang lain ;
for n=1:5
for m=5:-1:1
A(n,m)=n^2+m^2;
end;
disp(n)
end
1
2
3
4
5
A
A=
2
5
10
17
26

5 10 17 26
8 13 20 29
13 18 25 34
20 25 32 41
29 34 41 50

n=1:10;
x=sin(n*pi/10)
x=
Columns 1 through 7
0.3090 0.5878 0.8090 0.9511 1.0000 0.9511 0.8090
Columns 8 through 10
0.5878 0.3090 0.0000

4.3.2 Loop While

Ansar Suyuti

32

Dasar Dasar Pemrograman MATLAB untuk Teknik Elektro


Loop while mengerjakan sekelompok perintah yang diulang secara tidak terbatas.
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.
a=0; k=1;
while (1+k)>1
k=k/2;
a=a+1;
end
a
a=
53
atau k/10 diperoleh
a=0;k=1;
while(1+k)>1
k=k/10;
a=a+1;
end
a
a=
16
4.3.3 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
perintahjika memenuhi eksperesi
else
perintah jika tidak memenuhi ekspresi (salah)
end
Jika terdapat 3 atau lebih pilihan if-else-end :

Ansar Suyuti

33

Matematis

Operator dan Fungsi Dasar

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
for k = 1:10;
if k<3
b=k+1;
elseif k<5
c=k+1;
elseif k<7
d=k+1;
else
e=k+1
end;
end;
b,c,d,e
b=
3
c=
5
d=
7
e=
11

a=0;b=0;c=0;d=0;
for k = 1:10;
if k<3
a=a+1;
elseif k<5
b=b+1;
elseif k<7
c=c+1;
else
d=d+1;
end;
end;

pl3
a,b,c,d

Ansar Suyuti

34

Dasar Dasar Pemrograman MATLAB untuk Teknik Elektro


a=
2
b=
2
c=
2
d=
4
4.3.4 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

x=2.7;
units='m'
switch units
case {'inchi','in'} %konversi ke inchi
y=x*2.54
case{'feet','ft'} % konversi ke feet
y=x*2.54*12
case{'meter','m'} % konversi ke meter
y=x/100
case{'milimeter','mm'}
y=x*10
case{'centimeter','cm'}
y=x
otherwise
disp(['unit tidak diketahui :' units])
y=nan
end;
pl4
units =
m
y=
0.0270

Ansar Suyuti

35

Operator dan Fungsi Dasar

Matematis

V. AKAR-AKAR DAN KARAKTERISTIK POLINOMIAL


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

s 6 +9s 5 + 31.25s 4 + 61.25s 3 + 67.75s 2 + 14.75s + 15


akar-akar dapat diperoleh dengan menggunakan fungsi roots:
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
0.0000 + 0.5000i
0.0
- 0.5000i
akar-akar polinomial tersebut dapat dikonversi ke coefisient polinomial dengan fungsi poly(r):
poly(r)
ans =
1.0000 9.0000 31.2500 61.2500 67.7500 14.7500 15.0000
Contoh lain :
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 :

Ansar Suyuti

36

Dasar Dasar Pemrograman MATLAB untuk Teknik Elektro

s 4 + 9s 3 + 45s 2 + 87 s + 50 = 0
MATLAB juga juga dapat mencari akar karaktristik persamaan polinomial dalam bentuk matriks :

1 1
0

A= 6 11 6

6 11 5
Karakteristik persamaan dari matriks tersebut dapat diperoleh fungsi poly dan akar-akar persamaan
diperoleh dengan fungsi roots:
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
5.2 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

37

Operator dan Fungsi Dasar

Matematis

A = s 4 + 9s 3 + 37 s 2 + 81s + 52 dan Y = s 2 + 4s + 13 carilah X =

Z
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
D=
2
E=
0
X=
1

7 21

63 108

7 21
7

5.3 Turunan
Turunan polinomial dapat dilakukan dengan menggunakan fungsi polyder.

A = s 4 + 9s 3 + 37 s 2 + 81s + 52
turunan dari polinomial A adalah:
A=[1 9 37 81 52];
polyder(A)
ans =
4 27 74 81
5.4 Polynomial Curve Fitting

p ( x) = c1 x d + c 2 x d 1 + .... + c n
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];

Ansar Suyuti

38

Dasar Dasar Pemrograman MATLAB untuk Teknik Elektro


c = polyfit(x,y,3)
c=
1.0000 2.0000 3.0000 1.0000
5.5 Evaluasi Polinomial
Evaluasi polinomial dapat dilakukan dengan fungsi polyval(c,x).
Contoh, kita ingin mengevaluasi polynomianl 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')
x 3+ 2x 2+ 3x + 1
120

100

80

60

40

20

0
0

0 .5

1 .5

2 .5

3 .5

5.6 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 + a 0
Vector b dan a merupakan koefisien dari polinomial.
Contoh, Hitunglah partial fraction expantion dari :

Ansar Suyuti

39

Operator dan Fungsi Dasar

Matematis

F ( s) =

2s 3 + 9s + 1
s 3 + s 2 + 4s + 4

Penyelesaian dengan MALAB adalah

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

r=
0.0000 - 0.2500i
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+

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

untuk mengembalikan
[b,a]=residue(r,p,K).

persamaan

polinomial

P(s)/Q(s)

dapat

dilakukan

dengan

fungsi

[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

40

Anda mungkin juga menyukai