PRAKTIKUM 9
KONTROL ALIRAN Pendahuluan Ada delapan pernyataan kontrol kendali yang disediakan di dalam Matlab. Kedelapan pernyataan tersebut antara lain 1. if, termasuk di dalamnya pernyataan else dan elseif. Pernyataan ini menjalankan kelompok pernyataan berdasarkan pada syarat logika. 2. switch, termasuk di dalamnya adalah case dan otherwise. Statement ini mengeksekusi kelompok pernyataan berbeda bergantung pada harga syarat kondisi. 3. while, menjalankan group pernyataan dengan jumlah iterasi tak terbatas berdasarkan pada syarat logika. 4. for
menjalankan
group
pernyataan
dengan
jumlah
iterasi
telah
ditentukan. 5. continue melewatkan kendali ke iterasi berikutnya untuk loop for atau while. 6. break berfungsi menghentikan eksekusi looping for atau while. 7. try...catch mengubah kendali aliran apabila ditemukan kesalahan selama proses eksekusi. 8. return menyebabkan eksekusi kembali ke fungsi invoking. Semua aliran membangun pemnggunaan end untuk menunjukkan akhir dari blok kontrol aliran.
Pernyataan Bersyarat if, else, dan elseif Pernyataan
if
digunakan
untuk
menyeleksi
suatu
kondisi
yang
memungkinkan dua atau lebih pilihan. Bila proses yang diseleksi terpenuhi 1
atau bernilai benar, maka pernyataan yang ada di dalam blok if akan diproses dan dikerjakan. Sedangkan jika syarat tidak dipenuhi maka program akan diakhiri. Dalam bentuk diagram alir percabangan if dapat digambarkan seperti pada gambar 6.1
if (kondisi)
tidak
ya
Perintah
Gambar 6.1 Diagram alir percabangan if Bentuk umum struktur kondisi if adalah :
if (syarat) pernyataan end
Keterangan Apabila
pernyataan
logika
berharga
benar
(true),
maka
seluruh
pernyataan atau perintah yang berada diantara if dan end akan dijalankan. Sebaliknya, jika pernyataan logika berharga salah (false), maka seluruh perintah/pernyataan yang berada diantara if dan end tidak akan dijalankan karena Matlab akan langsung menuju end. Syarat biasanya merupakan pernyataan logika, yakni pernyataan yang 2
mengandung operator relational yang berharga benar atau salah. Dibawah ini disajikan operator relasi.
Operator relasi Arti <
Kurang dari
<=
Kurang dari atau sama dengan
>
Lebih dari
>=
Lebih dari atau sama dengan
==
Sama dengan
~=
Tidak sama dengan
Beberapa contoh untuk pernyataan logika yang menggunakan operator relasi beserta artinya. b2 −4 a c0
b^2-4*a*c<0 2
b^2>4*a*c
b 4 a c 2
b^2-4*a*c==0
b −4 a c =0
b~=4
b≠4
Contoh 6.1 a=2; if mod(a,2) == 0 disp('Pernyataan benar..!!') end Disamping operator relasi akan dibutuhkan pula operator logika yang macamnya antara lain Operator logika
Lambang
Arti
And
&
Dan
Or
|
Atau
Not
~
Bukan
3
Xor
Eksklusiv Or
Di bawah ini disajikan tabel harga dari pernyataan dengan operator logika
a
b
a&b
a|b
~a
~b
a xor b
TRUE
TRUE
TRUE
TRUE
FALSE
FALSE
FALSE
TRUE
FALSE
FALSE
TRUE
FALSE
TRUE
TRUE
FALSE
TRUE
FALSE
TRUE
TRUE
FALSE
TRUE
FALSE
FALSE
FALSE
FALSE
TRUE
TRUE
FALSE
Contoh Akan diberikan beberapa contoh berkaitan dengan penggunaan operator logika seperti di bawah ini
Pernyataan Bersyarat if-else Dalam pernyataan bersyarat if-else setidaknya terdapat dua pernyataan. Jika syarat yang diperiksa bernilai benar atau terpenuhi maka pernyataan pertamalah yang akan dijalankan, tetapi apabila syarat yang diperiksa tidak memenuhi atay bernilai salah maka pernyataan yang kedualah yang akan dijalankan. Blog program if-else dapat digambarkan dengan diagram pada gambar 4.2. Bentuk umumnya adalah sebagai berikut :
4
if(syarat) pernyataan A else pernyataan B end
Keterangan ✗
pernyataan A dan pernyataan B dapat berupa satu atau lebih pernyataan
✗
Apabila pernyataan bersyarat bernilai benar, maka seluruh pernyataan A yang berada diantara if dan else dijalankan.
✗
Sebaliknya, syarat tidak terpenuhi atau bernilai salah maka pernyataan B yang berada diantara else dan end yang akan dijalankan
if (kondisi)
tidak
ya
Perintah
Perintah
Gambar 4.2 Diagram alir percabangan if…else Contoh
Program 6.2 x=input('Masukkan harga x:'); if (x>3) disp('Pernyataan benar.');
5
disp('Pernyataan benar sekali..'); else disp('Pernyataan salah.'); disp('Pernyataan salah sekali..'); end
Pernyataan Bersyarat elseif Penggunaan
pernyataan bersyarat else if akan memberikan solusi
kepada kita apabila terdapat lebih dari satu syarat yang ada untuk menjalankan masing-masing pernyataan apabila syarat yang diberikan terpenuhi. Pernyaan else if akan dieksekusi apabila syarat yang dberikan pada if sebelumnya (atau elseif sebelumnya) berharga salah (0). Pernyaaan ini selanjutnya akan mengeksekusi perintah/pernyataan di dalamnya apabila syarat logikanya berharga benar (1). Bentuk umum dari pernyataan bersyarat elseif maka adalah if(syarat1) pernyataan/perintah A elseif (syarat2) pernyataan/perintah B elseif(syarat3) pernyataan/perintah C .......... else pernyataan/perintah G end
Dari bentuk umum di atas dapat dijelaskan sebagai berikut ✗
Setelah
syarat1
diuji,
maka
jika
berharga
benar
maka
pernyataan/perintah A akan dijalankan. Matlab kemudian menuju ke pernyataan berikutnya setelah end. 6
✗
Jika syarat1 berharga salah, maka Matlab akan mengecek syarat2. Jika berharga benar maka pernyataan/perintah B akan dijalankan. Matlab kemudian akan menjalankan pernyataan berikutnya setelah end.
✗
Dengan cara ini, maka semua syarat akan diuji hingga syarat yang terpenuhi ditemukan. Jika sudah ditemukan maka elseif dibawahnya sudah tidak akan dicek lagi.
✗
Apabila
tidak
ada
satupun
syarat
dipenuhi,
maka
pernyataan/perintahsetelah else yang akan dijalankan.
Ya If
Perintah … Perintah ....
Tidak Ya elseif
Perintah … Perintah ....
Tidak Ya elseif
Perintah … Perintah ....
Tidak Perintah … Perintah ....
else
Contoh Gambar 6.3 Diagram alir pernyataan elseif
Program
6.3 n=input('Masukkan harga n:') if n < 0
% jika n negatif, ada pesan salah.
disp('Masukan harus bilangan positif'); 7
elseif rem(n,2) == 0 % jika n posisif dan bulat, % kemudian bagi dengan 2 A = n/2; else A = (n+1)/2;
% jika n positif dan ganjil
% tambahkan 1,kemudian bagi dengan 2. end
Pernyataan bersyarat if bersarang Pernyataan ini sangat penting untuk masalah-masalah yang memiliki lebih dari dua cabang. Mengapa pernyataan ini disebut pernyataan bersarang, karena di dalam pernyataan if ada pernyataan if lagi. If yang kedua ini dapat berada di dalam if sendiri atau berada di dalam else. Untuk lebih jelasnya lihatlah diagram alir 6.4. Bentuk umum dari pernyataan if bersarang adalah
8
TUGAS KONTROL ALIRAN IF 1. Buatlah sebuah program komputer untuk menyatakan jumlah hari pada suatu bulan pada tahun tertentu. Ingat bahwa dalam tahun masehi dikenal tahun kabisat, yaitu tahun yang dapat dibagi habis dengan bilangan 4. Pada saat tahun kabisat ini, jumlah hari pada bulan Februari ada 29 hari. 2. Buatlah sebuah prgram komputer untuk menyatakan pernyataan berikut ini (a) Berikan masukan suatu nilai tertentu. (b) Apabila masukan lebih besar dari 5, cek apakah bilangan tersebut genap, jika genap berikan pernyataan “Bilangan Genap > 5”, tetapi jika bilangan ganjil maka berikan pernyataan “Bilangan Ganjil > 5”. (c) Apabila masukan kurang dari 5, maka ceklah apakah bilangan tersebut genap, jika genap berikan pernyataan “Bilangan Genap < 5”, tetapi jika bilangan ganjil maka berikan pernyataan “Bilangan Ganjil < 5”.
9