Minggu, 22 Januari 2017

Control Statement

CONTROL STATEMENT

Seperti halnya bahasa program pada umumnya, kita bisa mengendalikan arah program dengan berbagi cara, berupa percabangan arah program berdasarkan kondisi tertentu, ataupun loop (perhitungan berulang) ketika kita melakukan iterasi.

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  

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”

Perhatikan bahwa setiap selesai satu loop, variabel (dalam contoh di atas ialah i) akan otomatis mengalami inkremen. Demikian seterusnya hingga nilai_akhir (yaitu length(A)) tercapai dan program dilanjutkan ke baris selanjutnya.

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”

Operator Perbandingan dan Logika
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