CONTROL STATEMENT
Statement if …elseif … else … end
Ini merupakan statement untuk percabangan program berdasarkan satu/beberapa kondisi tertentu. Sintaks uang digunakan dalam Matlab meliputi :
a. Statement 1
if kondisi
command yang dijalankan jika kondisi dipenuhi
end
b. Statement 2
if kondisi
command yang dijalankan jika kondisi dipenuhi
else
dijalankan jika kondisi tidak dipenuhi
end
c. Statement 3
if kondisi1
command yang dijalankan jika kondisi dipenuhi
elseif kondisi2
dijalankan jika konsidi2 dipenuhi
elseif …
… dst …
else
dijalankan jika kondisi manapun tidak dipenuhi
end
Selain itu, dimungkinkan pula membuat pernyataan if di dalam pernyataan yang lain (disebut nested-if), misalkan :
if kondisi1
command1
if kondisiA
else
command
end
else
command2
end
PENTING
“Jangan keliru menuliskan elseif dan else if, karena keduanya berbeda, yang pertama untuk menguji kondisi alternative setelah kondisi di if terdahulu tak dipenuhi; tetapi yang kedua berarti nested-if.”
Statement switch … case
Sebagai alternative dari statement if … elseif … else … end, kita bisa menggunakan statement switch. Sintaknya adalah :
switch nama_variabel
case{kondisi1,kondisi2,...}
dijalankan jika kondisi1 atau kondisi2 dst...
dipenuhi
case{kondisiA,kondisiB,...}
dijalankan jika kondisiA atau kondisiB dst...
dipenuhi
case{kondisiX,kondisiY,...}
dijalankan jika kondisiX atau kondisiY dst...
dipenuhi
case{...}
...dst...
default
dijalankan jika kondisi manapun tidak dipenuhi
end
Statement for … end
Statement ini digunakan untuk loop/perhiitungan berulang. Sintaks yang digunakan dalam Matlab adalah :
for variabel = nilai_awal : inkremen : nilai_akhir
command untuk dijalankan
end
Misalkan untuk menampilkan bilangan kelipatan 3 dari 30 sampai 100, adalah sebagai berikut :
for k = 30:3:100
k
end
Hasilnya adalah
k =
30
k =
33
k =
...
k =
99
Sementara untuk nilai inkremen = 1, cukup dituliskan nilai awal dan nilai akhir. Misalkan untuk mendaftar bilangan bulat dari -10 hingga 10 dan menyimpannya dalam satu vektor.
Vektor=[];
for k = -10:10 %dalam hal ini inkremen = 1
Vektor = [Vektor k];
end
Vektor
Menghasilkan :
Vektor =
Columns 1 through 13
-10 -9 -8 -7 -6 -5 -4 -3 -2 -1 0 1 2
Columns 14 through 21
3 4 5 6 7 8 9 10
Atau untuk memplot kurva parabola : y=Ax2
Dengan berbagi nilai parameter A, yaitu 0.5, 1, 1.5, dan 2. Dalam hal ini indeks vektor A kita iterasi dari 1 hingga indeks terakhir.
figure;
x = linspace(-4,4,500); % mendefinisikan nilai x
A = 0.5:0.5:2; % mendefinisikan vektor A
for i = 1:length(A) y = A(i)* x.^2;
plot(x,y);
hold on;
end
grid on;
Menghasilkan :
Gambar 8.1. Contoh plot 4 kurva parabola dengan “for”
Statement while … end.
Alternatif dari sintaks loop ialah berikut ini
while kondisi
Command untuk dijalankan jika kondisi dipenuhi
end %keluar dari loop jika kondisi tidak dipebuhi.
Misalkan untuk memplot fungsi akar kuadrat
y=B x1/2 , dengan berbagai nilai parameter B.
figure;
x=linspace(0,4,500);
A=0.5:0.5:2;
i=1;
while i <= length(A) y = A(i)* x.^(1/2);
plot(x,y);
hold on;
i=i+1;
end
grid on;
Menghasilkan :
Gambar 8.2. Contoh plot 4 kurva dengan “while”
Untuk keperluan ini kita mungkin harus membandingkan dua variabel (sama atau tidak, lebih besar atau lebih kecilkah?), mengevaluasi apakah suatu variabel memnuhi satu dari sejumlah syarat, dan sebaainya. Untuk membandingkan dua variabel digunakan operator berikut ini :
- < >; Lebih besar dan lebih kecil
- <= >=; Lebih kecil sama dangan, lebih besar atau sama dengan.
- == ~=; Sama dengan, tidak sama dengan
Sementara untuk mengevaluasi logika, digunakan fungsi dan operator :
- and(A,B) atau A & B; Operasi logika AND antara A dan B
- or(A,B) atau A|B; Operasi logika OR
- xor(A,B); Operasi logika XOR
- not(A) atau ~A; Operasi logika NOT pada A
Perlu diperhatikan bahwa operasi logika memiliki prioritas untuk dihitung lebih dahulu, kemudian diikuti operasi aritmatika, lalu operasi perbandingan. Untuk menambah pemahaman, mari kita praktekkan contoh di bawah ini di command window :
>> A = [1 2 0 -1 -2]; B = [1 0 0 0 5];
>> C = and(A,B) C = 1 0 0 0 1
>> D=A|B|C D = 1 1 0 1 1
>> E = xor(~A,B) E = 1 0 1 0 1
Tidak ada komentar:
Posting Komentar