Kali ini, saya akan bahas dasar bahasa pemrograman C dengan topik
seleksi kondisi switch. Jika kita ingin membuat beberapa kondisi yang lebih mudah, kita dapat menggunakan pengkondisian switch dibanding membuat dengan menggunakan if else if.
Langsung saja kita lihat contoh dari scriptnya
/*
* Switch_Case.cpp
*
* Created: 02/01/2016 12:06:40
* 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, b, c, d (4 variabel)
a=5; // Variabel a bernilai 5
b=10; // Variabel b bernilai 3
while(1)
{
switch (a) // switch untuk variabel a
{
case 1: PORTA=0xff; break; // jika a bernilai 1 maka PORTA=0xff
case 2: PORTA=0xc0; break; // jika a bernilai 2 maka PORTA=0xc0
case 3: PORTA=0xf0; break; // jika a bernilai 3 maka PORTA=0xf0
case 4: PORTA=0xa0; break; // jika a bernilai 4 maka PORTA=0xa0
case 5: PORTA=0x00; break; // jika a bernilai 5 maka PORTA=0x00
}
switch (b) // switch untuk variabel b
{
case 1: PORTB=0xff; break; // jika b bernilai 1 maka PORTB=0xff
case 2: PORTB=0xa0; break; // jika b bernilai 2 maka PORTB=0xa0
case 3: PORTB=0xb0; break; // jika b bernilai 3 maka PORTB=0xb0
case 4: PORTB=0xc0; break; // jika b bernilai 4 maka PORTB=0xc0
case 5: PORTB=0xd0; break; // jika b bernilai 5 maka PORTB=0xd0
default: PORTB=0xf0; break; // jika tidak ada kondisi yang sesuai maka PORTB=0xf0
}
};
}
Dan dari script diatas akan menghasilkan gambar sebagai berikut
Seleksi Kondisi Switch Case
Cara penulisan Seleksi Kondisi Switch Case adalah :
switch(variabel)
{
case konstanta1:isi perintah ; break;
case konstanta2:isi perintah ; break;
}
Dimana :
- Variabel adalah variabel yang akan dibuat seleksi kondisinya, variabel disini bukan hanya variabel saja yang bisa dibuat switch casenya, bisa juga seperti PORTx dan lain sebagainya.
- Konstanta1 atau 2 adalah besarnya nilai dari variabel yang dibutuhkan sebagai syarat
Dari contoh pertama kita lihat ada 5 kondisi dimana angka 1-5 adalah nilai konstanta dari kondisi yang kita inginkan, karna nilai a sudah kita atur sebelumnya sebesar 5. maka sesuai dengan case yang konstantanya bernilai 5 (case 5) PORTA akan bernilai 0x00 sehingga led akan menyala semua.
Dan contoh kedua, kita dapat menambahkan statement default, dimana jika tidak ada konstanta (case) yang nilainya sesuai dari variabel maka akan menghasilkan nilai yang dapat kita atur. pada contoh kedua, karna b sebenarnya bernilai 10, sedangkan pada script tersebut saya buat 5 contoh dengan nilai konstanta 1 sampai 5. Maka tidak ada case yang sesuai, sehingga akan diatur defaulnya PORTB 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!