You are on page 1of 13

27

Pemrograman pada
MATLAB
5.1 Struktur dan Tipe Data
Sebelum membahas tentang pemrograman, akan lebih baik jika
kita mengetahui tentang struktur data dan tipenya dalam MATLAB.
Tipe data yang digunakan pada MATLAB standarnya adalah tipe
data double. Tetapi, tipe data tersebut dapat berubah
menyesuaikan dengan nilai yang diberikan kepadanya. Beberapa
tipe data yang juga merupakan ungsi pengubah tipe data, terdapat
pada Tabel 5.1.
Tabel 5.1 Tipe Data pada MATLAB
Tipe Data Keteranga
n
single bilangan pecahan presisi tunggal
double bilangan pecahan presisi ganda
int8, int16,
int32, int 64
bilangan bulat 8, 16 , 32, atau 64 bit bertanda
uint8, int16,
uint32, uint64
bilangan bulat 8, 16, 32 atau 64 bit tak bertanda.
(tipe data yang tidak menerima bilangan negative)
char Tipe data yang berupa karakter atau string
28
Sedangkan untuk struktur data MATLAB terdapat pada Tabel 5.!
dan untuk menampilkan ormat bilangan terdapat pada Tabel 5.".
29
Tabel 5.2 Struktur Data pada MATLAB
Struktur Data Keteranga
n
ultidimensional arrays array dengan tiga atau lebih subscript. !apat
dibentuk dengan memanggil #ungsi $eros,
ones, rand, atau randn dengan argument lebih
dari dua.
%ell arrays multidimensional arrays yang elemen&
elemennya dikopi dari array yang lain. %ell
array kosong dapat dibentuk dengan #ungsi
cell. %ell array dibentuk dengan melingkupi
kumpulan suatu data dengan kurung kura'al.
() * (. +urung kura'al ,uga digunakan untuk
mengakses isi dari berbagai sel.
%haracters and te-t teks yang dia'ali dan diakhiri dengan apostro#
((). .etiap karakter dalam suatu string adalah
satu elemen array, dengan setiap elemennya
sebesar 2 byte.
.tructure +umpulan dari array yang tersusun menurut
#ield dan valuenya.
Tabel 5.3 Format Tampilan Bilangan
Simbo
l
Keteranga
n
/d 0ilangan bulat
/# 0ilangan pecahan
/o 0ilangan okta
/-, /1 0ilangan he-adesimal
/e, /2 0ilangan sebagai a - 13
b
4n 5indah ke baris baru
4t 6eser sepan,ang 1 tab
Tampilan bilangan #, #e dan #$, ketepatan dapat diatur dengan
menyisipkan ormat presisi bilangan. %ormat presisi adalah .p,
dengan p berupa nilai yang menyatakan banyaknya angka di
belakang koma. Lihat &ontoh berikut ini.
30
>> a = input ('Bilangn I = ');
Bilangan I = 3
>> b = input ('Bilangan II =');
Bilangan II =4
>> c = a*b;
>> fprintf ('%f dikali %f sama dengan %f \n' a b c);
3!"""""" dikali 4!"""""" sama dengan #$!""""""
>> fprintf ('%!3f dikali %!3f sama dengan %!3f \n' a b c);
3!""" dikali 4!""" sama dengan #$!"""
>> fprintf ('%e dikali %e sama dengan %e \n' a b c);
3!""""""e%""" dikali 4!""""""e%""" sama dengan #!$"""""e%""#
>> fprintf ('%!3e dikali %!3e sama dengan %!3e \n' a b c);
3!"""e%""" dikali 4!"""e%""" sama dengan #!$""e%""#
5.! M'%ile
(ita sudah mempelajari penulisan )ariabel dan perhitungan operasi'
operasi matematika di *ommand +indo,. *oba bayangkan jika kita
harus menulis suatu pemrograman yang sangat panjang di dalam
*ommand +indo,, pasti akan sangat merepotkan. Anda harus
mengetik suatu perhitungan di MATLAB setiap Anda membutuhkan,
atau jika Anda melakukan kesalahan akan sangat sulit untuk
menghapusnya. (elemahan yang paling utama adalah program
yang Anda buat tidak dapat disimpan di dalam komputer. -ntuk
mengakomodasi masalah ini, MATLAB memiliki ,adah untuk
melakukan pemrograman yang bernama M'%ile. Di dalam M'%ile,
program Anda dapat disimpan di dalam komputer dan bisa Anda
buka dan gunakan kapan pun Anda inginkan. Terdapat tombol
khusus jika Anda ingin mengeksekusi program Anda.
-ntuk memulai skrip M'%ile, Anda bisa memulai dengan membuka
ile baru melalui main ,indo, File . New . MFile atau mengklik
ikon yang ada di jendela utama. Setelah itu akan terbuka jendela
seperti di ba,ah ini.
30
!ambar 5.1 MFile "ang belum dituli# program
!ambar 5.2 MFile "ang tela$ dituli# program
31
5." M'%ile untuk Membuat Skrip Sederhana
Sebagai &ontoh, kita ingin menghitung besaran gaya dengan )ariabel
yang diketahui adalah massa dan per&epatan.
!ambar 5.3 %onto$ m&ile #eder$ana
Setelah program dieksekusi besaran gaya /%0 dengan satuan
1e,ton akan tampil pada *ommand +indo,.
% 2
13
5.4 M'%ile untuk Membuat %ungsi
Matlab memiliki banyak ungsi yang sudah dibuat seperti &ontoh
yang telah disampaikan pada bab sebelumnya, yaitu ungsi
determinan. (ita juga bisa membuat ungsi sesuai dengan
kebutuhan. Sebagai &ontoh, Anda ingin membuat ungsi luas
lingkaran atau jika ingin lebih rumit lagi, Anda ingin membuat ungsi
eliminasi 5auss seperti yang telah ditampilkan pada gambar M'
%ile. Dengan membuat ungsi sendiri, Anda akan bisa
mengeksekusi sesuai dengan nilai masukan yang Anda inginkan.
32
Bentuk penulisan ungsi adalah6
function &nilai'keluaran( = nama'fungsi(nilai'masukan)
isi fungsi atau persamaan matematika
end
Sebagai &ontoh, kita ingin membuat ungsi or&e /gaya0 dengan
langkah'langkah sebagai berikut6
1. Buka M'%ile baru.
!. (etik sintak di ba,ah ini dalam M'%ile.
function &)( = ga*a(ma)
) = m*a
end
". Simpan sesuai dengan nama ungsi /dalam hal ini gaya.m0.
4. (etik perintah di ba,ah ini dalam *ommand +indo, dan
berikan nilai m dan a /&ontoh m 2 1 dan a 2 !30. Maka akan
dihasilkan ja,aban % 2 !3.
>> &)( = ga*a(#$")
) =
$"
5.5 Logi&al Statements
Matlab bisa digunakan untuk pemrograman yang bersiat logi&al
dengan mengaplikasikan salah satu dari pemrograman logi& atau
bisa juga dengan &ara menggabungkan atau mengombinasi dari dua
atau lebih pemrograman logika tersebut. -mumnya Logi&al
Statements dibagi menjadi dua berdasarkan kendali aliran program,
yaitu per&abangan bersyarat dan kendali perulangan. 7 statements
dan S,it&h Statements termasuk per&abangan bersyarat, sedangkan
%or Loop dan +hile Statements termasuk kendali perulangan.
33
5.5.1 7 Statements
8emrograman ini merupakan statement untuk per&abangan program
berdasarkan satu9beberapa kondisi9syarat tertentu. Sintaks yang
digunakan dalam MATLAB terdapat pada Tabel 5.4.
Tabel 5.' S"nta( )& Statement#
Satu syarat Dua syarat Tiga syarat atau lebih
if syarat
!i,alankan ,ika
syarat dipenuhi7
end7
if syarat
!i,alankan ,ika
syarat dipenuhi7
else
!i,alankan ,ika
syarat tidak dipenuhi7
end7
if syarat1
!i,alankan ,ika
syarat1 dipenuhi7
elseif syarat 2
!i,alankan ,ika syarat
2 dipenuhi7
elseif syarat 3
!i,alankan ,ika syarat
3 dipenuhi7
elseif....
.......
else....
!i,alankan ,ika syarat
selain di atas tidak
dipenuhi77
end7
Sebagai &ontoh, ketikkan &ode berikut pada m'ile.
% klasifikasi sk+r t+efl
,+efl=--.
If (,+efl >= /"#) 0 (,+efl 1= /2")
displa*('34cellent')
elseif ,+efl >= -"#) 0 (,+efl 1= /"")
displa*('5++d')
elseif (,+efl >= 4"#) 0 (,+efl 1= -"")
displa*('67erage')
else ,+efl1=4""
displa*('bad')
end
34
*ontoh tersebut menggunakan operator logika seperti yang tertulis
pada Tabel 5.4. Setelah m'ile tersebut dijalankan, akan terlihat
ja,aban sebagai berikut.
,+efl =
--.
5++d
Sekarang kita &oba &ontoh kedua menggunakan masukan :input;.
a=input('masukan nilai a=')
if a > "
* = $*a%-
displa*('a=p+sitif')
elseif a == "
* = a8/
displa*('a = n+l')
else a 1 "
* = $%a
displa*('a =negatif')
end
masukkan nilai a=-
a =
-
* =
#-
a =p+sitif
5.5.! S,it&h Statements
Selain menggunakan pemrograman ber&abang dengan i statement,
kita dapat melakukkannya menggunakan s,it&h statement yang
mempunyai synta< hampir sama dengan i statement, seperti
berikut ini.
switch s*arat case 1
pern*ataan #
case 2
pern*ataan $
!!!
otherwise
pern*ataan 9
end;
35
Sebagai &ontoh, kita akan membagi suatu bilangan tertentu dengan
angka =, kemudian buat program yang akan menampilkan sisa hasil
pembagian tersebut.
a=input('a='); % masukan nilai input a
n=m+d(a2); % a dibagi +le: 2
switch n
case "
disp('tak bersisa')
case #
disp('sisa satu');
case $
disp('sisa dua');
case 3
disp('sisa tiga');
case 4
disp('sisa empat');
case -
disp('sisa lima');
otherwise
disp('sisa enam');
end;
a=/".
sisa enam
5.5.1 %or Loop
Terdapat dua ma&am perulangan, yaitu perulangan berbatas or dan
perulangan bersyarat ,hile. %or loop digunakan jika syarat nilai akhir
dari perulangan dapat ditentukan dengan pasti. Di ba,ah ini adalah
ormat pemrograman menggunakan sintak or.
for 7ariabel = nilai'a;al < inkremen < nilai'ak:ir
=+mmand untuk di>alankan
end % ber:enti >ika suda: mencapai nilai'ak:ir!
36
*ontoh6
t = linspace(#-#""); % mendefinisikan data t dimulai dari
angka # dan diak:iri angka - dengan >umla: data seban*ak #""
6 = #<#<4; % mendefinisikan 7ekt+r 6 (# $ 3 4)
for i = #<lengt:(6)
* = 6(i)* t!?$;
pl+t(t*);
:+ld +n;
end
grid +n;
100
90
80
70
60
50
40
30
20
10
0
1 1.5 2 2.5 3 3.5 4 4.5 5
5.5.4 +hile Statements
Syarat nilai akhir dari perulangan tidak bisa ditentukan dengan pasti.
-ntuk itu, digunakan perulangan bersyarat menggunakan ,hile
statement. >ika nilai pen&a&ah memenuhi syarat perulangan, maka
perulangan dilanjutkan. >ika nilai pen&a&ah tidak memenuhi syarat
perulangan, maka perulangan dihentikan.
while k+ndisi
=+mmand untuk di>alankan >ika k+ndisi dipenu:i
end % keluar dari l++p >ika k+ndisi tidak dipenu:i
37
n="; % nilai a;al n="
>umla:=";
while (>umla: 1= #"") % s*arat perulangan
>umla:=>umla: % n?$83*n;
n = n%$; % pertamba:an p+sitif bilangan bulat
end;
fprintf('t+tal = %!3f dengan n = %d \n' >umla: n);
Total 2 1"3.333 dengan n 2 1!
% tegangan referensi keluaran
7r = input ('referensi keluaran (7+lt) = ');
% gel+mbang sinus+idal
frek = input ('frekuensi (:@) = ');
t = (" < "!"# < "!-); % ;aktu selama "!- detik
7in = c+s($ * pi * frek * t);
% )akt+r pembanding
n = #;
while (n 1= lengt: (7in))
if (7in(n) 1 ")
7+ut (n) = 8# * 7r;
elseif (7in(n) 1 ")
7+ut (n) = 7r;
else
7+ut (n) = ";
end;
n = n % #;
end;
% membuat pl+t ;aktu dengan tegangan masuk dan tegangan
keluar
pl+t ( t &7in; 7+ut(); % membuat pl+t grafik
legend ('7in' '7+ut'); % memberikan legenda
38
?eerensi keluaran /)olt0 2 13
%rekuensi /h@0 2 5
2
vin
vout
0
-2
-4
-6
-8
-10
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1

You might also like