DASAR PEMROGRAMAN BAHASA C PADA MIKROKONTROLER (3)

Percabangan dalam Bahasa C

  1. Percabangan if

Contoh flowchartnya adalah sebagai berikut

Percabangan If

Percabangan If

int main (void){
 unsigned char data_serial;
 USART_INIT(MYUBRR);
 data_serial=USART_Receive();
 if (data_serial=='0'){                                   //apabila data serial = ‘0’ maka
 USART_Transmit('O');                                    //jalankan blok instruksi yang
 USART_Transmit('F');                                     //mengirimkan ‘OFF’ ke  port
 USART_Transmit('F');                                     //serial
 while(1);                                                              //
 }
 USART_Transmit('O');                                    //apabila data serial =buka ‘0’
 USART_Transmit('N');                                    //maka kirim ON
 while(1);
 }

2. Percabangan if else

if else flowchart

if else flowchart

int main (void){
 unsigned char data_serial;
 USART_INIT(MYUBRR);
 data_serial=USART_Receive();
 if (data_serial=='0'){
 USART_Transmit('O');
 USART_Transmit('F');
 USART_Transmit('F');
 }
 else{
 USART_Transmit('O');
 USART_Transmit('N');
 }
 unsigned char tabel_data [16]={0x0D,0x0A,'t','o','m','b','o','l',' ','s','e','l','e','s','a','i'};
 for (int i=0;i<16;i++)
 USART_Transmit(tabel_data[i]);
 while(1);
 }

Pada contoh di atas artinya apabila data serial = ‘0’ maka kirim “OFF” dan akhiri dengan “tombol selesai” namun else apabila ‘1’ maka kirim “ON” dan akhiri dengan “tombol selesai”

3. Percabangan if else if

if else if flowchart

if else if flowchart

int main (void){
 unsigned char data_serial;
 USART_INIT(MYUBRR);
 data_serial=USART_Receive();
 if (data_serial=='0'){
 USART_Transmit('O');
 USART_Transmit('F');
 USART_Transmit('F');
 }
 else if (data_serial=='1'){
 USART_Transmit('O');
 USART_Transmit('N');
 }
 else if (data_serial=='2')
 USART_Transmit('?');
 else
 USART_Transmit('*');
 unsigned char tabel_data [16]={0x0D,0x0A,'t','o','m','b','o','l',' ','s','e','l','e','s','a','i'};
 for (int i=0;i<16;i++)
 USART_Transmit(tabel_data[i]);
 while(1);
 }

5. Percabangan Nested

Percabangan Nested

Percabangan Nested

int main (void){
 unsigned char data_serial;
 USART_INIT(MYUBRR);
 data_serial=USART_Receive();
 if (data_serial=='0'){
 data_serial=USART_Receive();
 if (data_serial=='A'){
 USART_Transmit('O');
 USART_Transmit('F');
 USART_Transmit('F');
 USART_Transmit(' ');
 USART_Transmit('A');
 }
 else{
 USART_Transmit('O');
 USART_Transmit('F');
 USART_Transmit('F');
 USART_Transmit(' ');
 USART_Transmit('B');
 }
 }
 else{
 data_serial=USART_Receive();
 if (data_serial=='A'){
 USART_Transmit('O');
 USART_Transmit('N');
 USART_Transmit(' ');
 USART_Transmit('A');
 }
 else{
 USART_Transmit('O');
 USART_Transmit('N');
 USART_Transmit(' ');
 USART_Transmit('B');
 }
 }
 unsigned char tabel_data [16]={0x0D,0x0A,'t','o','m','b','o','l',' ','s','e','l','e','s','a','i'};
 for (int i=0;i<16;i++)
 USART_Transmit(tabel_data[i]);
 while(1);
 }
Perulangan dalam C

1. Perulangan For

Perulangan for

Perulangan for

int main (void){
 USART_INIT(MYUBRR);
 for (int i=0;i<5;i++)
 USART_Transmit(i);
 while(1);
 }
2. Perulangan While
Memiliki bentuk yang sama dengan for  hanya saja pada while proses perulangan terus dilanjutkan hingga diperoleh kondisi false

int main (void){

USART_INIT(MYUBRR);

int counter=0;
while (counter<5){
USART_Transmit(counter);
counter++;
}
while(1);
}
3. Perulangan Do/While

Perulangan ini dilakukan dengan terlebih dahulu melakukan satu kali proses dan selanjutnya diulang hingga diperoleh nilai yang false dari while

int main (void){

USART_INIT(MYUBRR);

int counter=0;

do{

USART_Transmit(counter);

counter++;

}

while(counter<5);

while(1);

}

4. Perulangan Nested

Merupakan perulangan yang dilakukan di dalam perulangan sebagai berikut

int main (void){

USART_INIT(MYUBRR);
int counter=0;
do{
USART_Transmit(counter);

counter++; }

while(counter<5);
while(1);
}

Di sini proses perulangan dilakukan sebanyak I x j

Paulus Andi Nalwan, DELTA ELECTRONIC

Tags: , , , , ,

Leave a Reply