Kali ini, saya akan bahas dasar bahasa pemrograman C dengan topik seleksi kondisi if, sesuai dengan artinya dari if yang berarti "Jika". Maka kita dapat memberi sebuah perintah pada bahasa program hanya jika syaratna terpenuhi. Seperti contoh, jika saya ingin menyalakan lampu, syaratnya listrik harus menyala. Maka kita bisa anggap perintah yang kita buat adalah jika listriknya menyala, maka lampu akan menyala.

Didalam bahasa C, bisa dibedakan seleksi kondisi if menjadi 2, yaitu :
  1. If, Seleksi kondisi If, hanya akan memberikan sebuah perintah jika syaratnya terpenuhi.
  2. If Else, seleksi kondisi If Else dapat memberikan perintah lain, jika syarat tidak terpenuhi

Langsung saja kita lihat contoh dari scriptnya

 /*
 * Seleksi_Kondisi_IF.cpp
 *
 * Created: 02/01/2016 8:31:25
 *  Author: Diaz
 */


#include <avr/io.h>

int main(void)
{
    DDRA=0xff;            // Menjadikan PORTA sebagai output
    PORTA=0xff;            // Menjadikan PORTA sebagai output dengan default berlogika 1
  
    DDRB=0xff;            // Menjadikan PORTB sebagai output
    PORTB=0xff;            // Menjadikan PORTB sebagai output dengan default berlogika 1
  
    DDRC=0xff;            // Menjadikan PORTC sebagai output
    PORTC=0xff;            // Menjadikan PORTC sebagai output dengan default berlogika 1

    DDRD=0xff;            // Menjadikan PORTD sebagai input
    PORTD=0xff;            // Menjadikan PORTD sebagai output dengan default berlogika 1

    unsigned char a, b;    // Variabel global dengan nama a dan b
    a=5;                // Variabel a bernilai 5
    b=10;                // variabel b bernilai 10
  
  
    while(1)
    {
        if (a==5)                // Jika a=5
        {
        PORTA=0x00;                // PORTA bernilai 0x00 (dalam hexadesimal) atau bernilai 00000000 (dalam biner)
        }
      
        if (a==7)                // Jika a=7  
        {
        PORTB=0xff;                // PORTB bernilai 0xff (dalam hexadesimal) atau bernilai 11111111 (dalam biner)
        }
            else                // Selain itu (a tidak sama dengan 7)
            {
            PORTB=0xc0;            // PORTB bernilai 0xf0 (dalam hexadesimal) atau bernilai 11110000 (dalam biner)
            }
      
        if (b==7)                // Jika b=7
        {
        PORTC=0xff;                // PORTC bernilai 0xff (dalam hexadesimal) atau bernilai 11111111 (dalam biner)
        }
            else if    (b==8)        // Selain itu (jika b=8)
            {
            PORTC=0xa0;            // PORTB bernilai 0xa0 (dalam hexadesimal) atau bernilai 10100000 (dalam biner)
            }
          
                else if (b==9)    // Selain itu (b tidak sama dengan 7 atau 8 tapi sama dengan 9)
                {
                PORTC=0xb0;        // PORTC bernilai 0xc0 (dalam hexadeximal) atau bernilai 10110000 (dalam biner)
                }
              
                    else        // Selain itu (b tidak sama dengan 7,8 atau 9)
                    {
                    PORTC=0xf0;    //    PORTC bernilai 0xf0 (dalam hexadeximal) atau bernilai 11110000 (dalam biner)
                    }
    };
}

Dan dari script diatas akan menghasilkan gambar sebagai berikut

Seleksi Kondisi If Else If
Seleksi Kondisi If Else If

Cara penulisan seleksi kondisi If dan Else If adalah :
Untuk If :
 If (syarat)
{Isi perintah}

Untuk If Else:
If (Syarat)
{Isi perintah jika syarat terpenuhi}
Else {Isi perintah jika syarat tidak terpenuhi}

Untuk If Else If:
If (Syarat Pertama)
{Isi perintah jika syarat pertama terpenuhi}
Else If (Syarat kedua)
{Isi perintah jika syarat pertama tidak terpenuhi tapi syarat kedua terpenuhi}
Else (Syarat ketiga)
{Isi perintah jika syarat pertama dan kedua tidak terpenuhi}

Dimana :
  • Isi perintah adalah isi script yang akan dijalankan
  • Syarat adalah kondisi agar isi perintah akan dijalankan

Dari contoh pertama sangat mudah, yaitu jika a=5 maka PORTA akan bernilai 0x00 yang menyebabkan lampu led semuanya menyala.

Untuk contoh kedua jika a=7 maka PORTB akan bernilai 0xff, karna nilai a sudah kita atur sebesar 5, maka PORTB tidak bernilai 0xff. Namun karna ada perintah else, yang berarti selain a=5 maka PORTB akan bernilai 0xc0 dan menyebabkan 6 buah led yang menyala.

Dan untuk contoh ketiga, kita dapat membuat beberapa tingkat if pada contoh ini saya buat 4 tingkat, dimana jika b=7 maka PORTC akan bernilai 0xff, karna b tidak bernilai 7 maka masuk ke seleksi berikutnya, yaitu jika b=8 maka PORTC akan bernilai 0xa0. Karna masih salah, akan masuk keseleksi berikutnya yaitu jika b=9 maka PORTC akan bernilai 0xb0. Karna ketiga kondisi tersebut tidak ada yang benar, maka PORTC akan bernilai 0xf0 dan menyalakan 4 buah led.

Sama seperti contoh sebelumnya, setiap pembuktian perintah menggunakan 1 PORT (8bit) sebagai pembuktiannya, dan script tersebut saya buat menggunakan Atmel Studio 6 + AVRGCC dan Proteus

Saya sarankan untuk menulis ulang semua script tersebut secara manual, agar kalian lebih cepat menghafal dan memahami script tersebut. Namun jika mendapat kesulitan, saya sediakan file script beserta file proteusnya yang dapat didownload di sini

Sayapun disini masih belajar sehingga belum tentu benar mengenai semua yang  saya jabarkan diatas, jika ada yang merasa janggal atau merasa ada kesalahan dalam penjabaran saya, bisa kita diskusikan dikomentar.

Good Luck!

Related Post :