Control Structure Dasar Pemrograman C Mikrokontroler AVR Hendawan Soebhakti Oktober 2009
Kategori Control Structure
Bahasa C menyediakan empat kategori control structures: sequential, selection, iteration and encapsulation.
Sequential structure adalah sebuah instruksi dilaksanakan sesuai urutan. Contoh : i = i + 1;j = j + 1; Dalam selection structure, urutan instruksi didasarkan pada hasil dari suatu kondisi. Statement yang dapat digunakan pada kategori ini adalah if dan switch. Sebagai contoh : if (a > b) i = i + 1;else j = j +1; Jika kondisi adalah true, maka statement i = i +1 dijalankan, jika kondisi false maka statement j = j + 1 yang dijalankan. Iteration structure adalah memungkinkan sebuah statement dijalankan berulang-ulang. Jumlah pengulangannya berdasarkan nilai variable tertentu. Misalnya : for (i=0; i<5; i++){ j = j + 1;} Statement j = j + 1 dijalankan 5 kali dan nilai i berubah dari 0, 1, 2, 3, dan 4. Encapsulation structure adalah campuran dari jenis structure yang lain. Misalnya statement if ada didalam statement for loop, atau sebaliknya.
Hendawan Soebhakti
2
if STATEMENT
if statement digunakan jika sebuah pertanyaan memerlukan jawaban Ya atau Tidak. Syntax if statement adalah : if ( condition ) simple or compound statement
Penjelasan : Jika kondisi adalah True, maka statement akan dijalankan Jika kondisi adalah False, maka tidak melakukan apa-apa. Kondisi dituliskan didalam tanda kurung ( ) dan harus dapat dievaluasi sebagai true (nonzero value) dan false (zero value) Jika terdapat beberapa statement, maka harus didalam tanda kurung besar { }.
Hendawan Soebhakti
3
if STATEMENT…
Contoh 1 : if (a>b) i = i + 1; j = j + 1;
// s1 // s2
Contoh 2 : if (a>b) { i = i + 1; // s1 j = j + 1; // s2 } Jika pada Contoh 1 kondisi if adalah true, maka s1 akan dilaksanakan karena s1 adalah simple statement. Jika pada Contoh 2 kondisi if adalah true, maka s1 dan s2 dilaksanakan semua karena s1 dan s2 adalah compound statement. Hendawan Soebhakti
4
if-else STATEMENT
if-else statement dapat digunakan jika kita ingin menjalankan statement yang berbeda untuk kondisi true dan false.
Syntax : if (condition)simple or compound statement else simple or compound statement
// s1 // s2
Jika kondisi adalah true, maka s1 dijalankan, dan jika false maka s2 dijalankan.
Contoh : if (a>b) printf (" big number is %d", a); else printf (" big number is %d", b);
// s1 // s2
Jika a lebih besar dari b, maka s1 dijalankan. Jika yang lainnya maka s2 dijalankan. Hendawan Soebhakti
5
if-else if STATEMENT
if-else if statement dapat digunakan untuk membuat banyak keputusan.
Syntax : if (condition 1) simple or compound statement else if (condition 2) simple or compound statement else if ( condition 3) simple or compound statement ..... else if ( conditon n ) simple or compound statement
// s1 // s2 // s3
// sn
Jika kondisi 1 true, maka s1 dijalankan. Jika kondisi 1 false dan kondisi 2 true maka s2 dijalankan. Kata else selalu dihubungkan dengan if statement terdekat. Hendawan Soebhakti
6
if-else if STATEMENT… Contoh 1 : if (a==5) if (a==7) i = 10; else if (a == 7) i = 15; else i = 20;
// // // // // // // //
A B C D E F G H
Untuk else statement pada posisi D, if statement terdekat adalah pada B. Maka, else statement berhubungan dengan if pada B dan bukan pada A. Untuk else pada G, if statement terdekat adalah pada E. Maka, else statement ini berhubungan dengan if statement pada E dan bukan pada A. If pada A tidak memiliki statement Hendawan Soebhakti
7
if-else if STATEMENT… Contoh 2 : if (a==5) if (a==7) i = 10; else if (a == 7) i = 15; j = 20; else i = 20;
// // // // // // // // //
A B C D E F1 F2 G H
Pada Contoh 2, else statement pada G tidak dapat dihubungkan dengan if statement pada E karena if statement pada E hanya menjalankan statement F1. Maka, else pada G dihubungkan dengan if statement pada A. Yang harus diingat : If-else if statement digunakan untuk memeriksa beberapa kondisi tapi tetap menjalankan satu statement. Hendawan Soebhakti
8
switch STATEMENT
Switch statement digunakan untuk memeriksa banyak kondisi. Hal ini bisa dikerjakan dengan if statement, namun akan menjadi panjang dan sulit untuk di-debug. Syntax : switch (expressions){case constant expressions} Contoh : switch (i/10) { case 0: printf ("Number less than 10"); break; // A case 1: printf ("Number less than 20"); break; // B case 2: printf ("Number less than 30"); break; // C default: printf ("Number greater than or equal to 40"); // D break; } Nilai switch expression dibandingkan dengan case constant expression mulai dari atas ke bawah. Break statement digunakan untuk menghentikan proses perbandingan jika case expression telah dikerjakan. Jika tidak ada case yang sesuai maka statement default akan dijalankan. Hendawan Soebhakti
9
While loop STATEMENT
While loop digunakan untuk mengulangi eksekusi suatu statement atau beberapa statement. Syntax : while (condition) simple or compound statement (body of the loop) Contoh : i = 0; while (i<5) { printf(" the value of i is %d\n", i); i = i + 1; } Sebelum memasuki loop, kondisi while dievaluasi. Jika true, maka hanya loop body yang dijalankan. Hendawan Soebhakti
10
Do-while STATEMENT
Do-while loop digunakan untuk menjalankan loop body sedikitnya satu kali. Syntax : do simple or compound statement while (condition) Contoh : i = 0; do { printf(" the value of i is %d\n", i); i = i + 1; } while (i<5)
Hendawan Soebhakti
11
for-loop STATEMENT
for-loop digunakan untuk pengulangan yang sudah didefinisikan jumlahnya. Syntax : for (initializing; continuation condition; update) simple or compound statement Contoh : for (i = 0; i < 5; i++) { printf("value of i"); }
Hendawan Soebhakti
12
for-loop with comma operator STATEMENT
Kita dapat mengendalikan loop variable dalam for loop yang sama. Kita dapat mnggunakan comma operator seperti pada contoh berikut : for (i = 0, j = 10; i < 3 && j > 8; i++, j--) printf (" the value of i and j %d %d\n",i, j);
Penjelasan : Pertama, i diinisialisasi dengan nilai 0 dan j diinisialisasi 10. Kondisi i<3 dan j>8 dievaluasi dan statement akan dijalankan jika dua kondisi true. Setelah menjalankan loop body, i dinaikkan 1 dan j diturunkan 1. Comma operator juga mengembalikan sebuah nilai yaitu nilai dari operand yang paling kanan. Nilai dari (i = 0, j = 10) adalah 10.
Hendawan Soebhakti
13
break STATEMENT
Sama seperti switch statement, break digunakan untuk menghentikan pengulangan (loop). Contoh : i = 0; while (1) { i = i + 1; printf(" the value of i is %d\n"); if (i>5) break; } Penjelasan : While (1) adalah loop dengan kondisi selalu benar. Ketika i mencapai nilai 6, kondisi if menjadi benar dan break dijalankan yang akan menghentikan pengulangan.
Hendawan Soebhakti
14
continue STATEMENT
continue statement digunakan untuk menghentikan pengulangan yang sedang berjalan saat itu. Setelah perintah continue, program akan kembalai pada baris pertama pada loop, yaitu pada statement test condition, Contoh : Jika diinginkan menuliskan angka 1 sampai 10 kecuali 4 dan 7. for(i = 0, i < 11, i++) { if ((i == 4) || (i == 7)) continue; printf(" the value of i is %d\n", i); }
Switch tidak memliki statement continue. Penjelasan : Jilka i bernilai 1 maka kondisi if tidak terpenuhi, dan continue tidak akan dijalankan. Jika i bernilai 4, maka kondidi if terpenuhi dan continue akan dijalankan. Setelah menjalankan continue statement, statement selanjutnya (printf) tidak dijalankan, namun i++ tetap dijalankan. Hendawan Soebhakti
15
Wassalamu’alaikum wr.wb
Hendawan Soebhakti
16