Tujuan
- Memahami logika alur program
- Mampu menggunakan sintaks kontrol program dalam pemrograman
Teori dasar
dan Praktikum
Matlab bisa
berlaku seperti bahasa pemrograman C ataupun pascal yang mempunyai struktur
kontrol program. Biasanya pemrograman dengan matlab memerlukan lebih
dari satu baris dan memungkinkan untuk didokumentasikan dalam m-file, control
program ini digunakan untuk memperbaiki tampilan atau membuat tampilan sesuai
yang kita inginkan. Dalam bagian ini dibahas sebagian kontrol program yang
diperlukan dalam pemrograman menggunakan matlab. Operator logika yang digunakan
dalam pemrograman MATLAB adalah sebagai berikut:
Simbol
|
Operasi
|
<
|
Kurang dari
|
<=
|
Kurang dari
atau sama dengan
|
>
|
Lebih dari
|
>=
|
Lebih dari
atau sama dengan
|
==
|
Sama dengan
|
~=
|
Tidak sama dengan
|
Berikut ini
adalah kontrol program yang digunakan dalam MATLAB:
1.
for loops
Loop for meungkinkan sekelompok perintah diulang sebanyak
suatu umlah yang tetap. Bentuk umum dari loop for adalah :
for x= array
statement
end
untuk tiap iterasi, x diisi dengan kolom array berikutnya,
yaitu dalam iterasi ke-n dalam loop, x = array(:,n). Contoh,
- tulislah script ini adalam command window
>>
for n=0:10
x(n+1)=sin(pi*n/10)
end
keluarannya:
x
=
Columns
1 through 7
0 0.3090
0.5878 0.8090 0.9511
1.0000 0.9511
Columns
8 through 11
0.8090 0.5878
0.3090 0.0000
- Tulislah script ini di command window
>>for
i=1:5
disp('Ini
hasil looping 5 kali')
end
Keluarannya:
Ini
hasil looping 5 kali
Ini
hasil looping 5 kali
Ini
hasil looping 5 kali
Ini
hasil looping 5 kali
Ini
hasil looping 5 kali
- Tulislah script di command window
>>
H=zeros(5);
>>
for k=1:5
for
l=1:5
H(k,l)=1/(k+l-1)
end
end
Keluarannya:
H
=
1.0000
0.5000 0.3333 0.2500
0.2000
0.5000
0.3333 0.2500 0.2000
0.1667
0.3333
0.2500 0.2000 0.1667
0.1429
0.2500
0.2000 0.1667 0.1429
0.1250
0.2000
0.1667 0.1429 0.1250
0.1111
2. While loops
loop for mengerjakan sekelompok perintah yang diulang
sebanyak suatu sejumlah, tetapi loop while mengerjakan sekelompok perintah yang
diulang secara tidak terbatas Bentuk umum loop while adalah
while
ekpresi
statement
end
semua elemen yang dieksekusi diantara while dan end dan
harus bernilai benar
- Tulis script ini di command window
>>
q=pi
>>
while q>0.01
q=q/2
end
Keluarannya:
q
= 1.5708
q
= 0.7854
q
= 0.3927
q
= 0.1963
q
= 0.0982
q
= 0.0491
q
= 0.0245
q
= 0.0123
q
= 0.0061
- Tulislah script ini di command windows
>>
x=0;
>>
while x<5
disp('diulang
sampai 5 kali');
x=x+1;
end
Keluarannya:
diulang
sampai 5 kali
diulang
sampai 5 kali
diulang
sampai 5 kali
diulang
sampai 5 kali
diulang
sampai 5 kali
3. Konstruksi
loop : if-else-end
Seringkali
sederetan perintah harus dikerjakan dengan didasarkan pada hasil tes rasional. Dalam
bahasa pemrograman, logika ini dikerjakan dengan variasi kontruksi if-else-end.
Bentuk paling sederhana kontruksi if-else-end adalah :
If
ekpresi
Pertintah
End
Konstruksi ini digunakan jika hanya ada satu alterntif.
Dua atau lebih alternative memerlukan konstruksi:
If
ekspresi
Perintah
(dievaluasi jika ekspresi adalah benar)
Else
Perintah
(dievaluasi jika ekspresi adalah salah)
end
- Buatlah script di bawah ini pada editor m-file. Simpan dengan nama file FirstMovie.m
%script file firstmovie
%Graphs of y=sin(kx) over
the interval [0,pi],
%where k= 1,2,3,4,5
m=moviein(5);
x=0:pi/100:pi;
for i=1:5
h1_line=plot(x,sin(i*x));
set(h1_line,'lineWidth',1.5,'color','m');
grid;
title('Sine Function sin(kx), k=1,2,3,4,5');
h=get(gca,'title');
set(h,'FontSize',12);
xlabel('x');
k=num2str(i);
if i>1
s=strcat('sin(',k,'x)');
else
s='sin(x)';
end
ylabel(s);
h=get(gca,'ylabel');
set(h,'FontSize',12);
m(:,i)=getframe;
pause(2)
end
movie(m);
4. Switch
Case loop
Switch membandingkan ungkapan input dengan
masing-masing nilai case. Sekali kesesuaian ditemukan, switch
melaksanakan perintah yang berkaitan. Dalam contoh berikut, angka bilangan
bulat acak dari deretan {1,2,3,…,10} dihasilkan. Jika x=1 atau x=2, maka pesan
probabilitas =20% dihasilkan. Script file fswitch menggunakan switch sebagai
alat untuk menangani semua kasus yang disebutkan di atas.
- Buatlah script di bawah ini pada editor m-file. Simpan dengan nama file fswitch.m
%Script
file fswitch
x=ceil(10*rand);
switch
x
case{1,2}
disp('Peluang = 20%');
case{3,4,5}
disp('Peluang = 30%');
otherwise
disp('Peluang = 50%');
end
- Jalankan file di atas dengan menekan F5. Untuk mengetahui kecenderungan peluang masing-masing nilai. Uji kode di atas dengan menggunakan script di bawah ini. Tulis pada command window
>>
for k=1:10
fswtich
end
Maka keluarannya:
Peluang
= 50%
Peluang
= 20%
Peluang
= 30%
Peluang
= 50%
Peluang
= 50%
Peluang
= 30%
Peluang
= 50%
Peluang
= 20%
Peluang
= 30%
Peluang
= 50%
Catatan: Penggunaan tanda kurung kurawal { }setelah
kata case menciptakan apa yang disebut dengan cell array bukan
deret atau dimensi, yang memerlukan pemakaian tanda kurung besar.
Berikut adalah fungsi-fungsi MATLAB baru yang digunakan
dalam file fswitch.m:
- rand, yang secara seragam menyebarkan angka-angka acak dalam interval (0,1)
- ceil, pembulatan pada angka tak terbatas.
- Disp, menampilkan rangkaian/deter di layar.
Tugas.
1.
Buatlah
program untuk mengkonversi suhu dalam Fahrenheit ke dalam derajat Celcius.
Rumus yang digunakan adalah . Tampilkan hasil konversi dari Fahrenheit ke Celcius dari 0
sampai 100 Farrenheit dengan skala perubahan adalah 5 derajat. Simpan dengan
nama file f2c.m
2.
Tulislah
program di bawah ini simpan dengan nama file input.m dan jelaskan!
sum=0;
cnt=0;
val=input('Enter a number (end in 0) : ');
while (val~=0)
sum=sum+val;
cnt=cnt+1;
val=input('Enter a
number (end in 0) : ');
end
if
(cnt > 0)
fprintf('%d num
entered. Sum=%g.
Mean=%g.\n',cnt,sum,sum/cnt);
end
3.
Tulislah
program di bawah ini simpan dengan nama file umur.m dan jelaskan!
age=input('Masukan berapa umur anda: ');
if ((age < 0)|(age >= 120))
disp('Error');
elseif (age < 1)
disp('Anda masih Bayi');
elseif
(age < 13)
disp('Masa Anak-anak');
elseif
(age < 18)
disp('Beranjak Remaja');
elseif
(age < 60)
disp('Sudah Dewasa');
else
disp('Sudah Tua');
end
Tidak ada komentar:
Posting Komentar