Anda di halaman 1dari 9

1.3.

BAHASA C
Pada saat ini sudah dikembangkan bahwa untuk membuat pemrograman
mikrokontroler menggunakan bahasa level tinggi bukan menggunakan bahasa
assembly maupun bahasa mesin. Salah satu bahasa level tinggi yang banyak
digunakan adalah bahasa C. Ada beberapa software pemrograman mikrokontroler
yang menggunakan bahasa C sebagai bahasa pemrogramannya seperti Codevision
AVR dan WinAVR.

1.3.1. STRUKTUR BAHASA C


Untuk dapat memahami bagaimana suatu program ditulis, maka struktur
dari program harus dimengerti terlebih dahulu, atau sebagai pedoman penulis
program (programmer) bagaimana seharusnya program tersebut ditulis.
Dalam penulisan program dengan menggunakan bahasa C maka harus
mengetahui struktur dari program dengan menggunakan bahasa C. Program dalam
bahasa C dapat dilihat sebagai sekumpulan dari sebuah atau lebih fungsi. Dan
fungsi pertama yang harus ada di pemrogram bahasa C adalah fungsi main().
Sedangkan untuk fungsi-fungsi yang lain dapat dituliskan setelah atau
sebelum fungsi main () dengan menuliskan deskripsi prototype fungsi pada bagian
awal program. Dan dapat juga fungsi-fungsi yang lain dituliskan di file lain,
apabila diinginkan untuk digunakan maka tinggal menuliskan header file dari
fungsi-fungsi tersebut dengan preprocessor directive #include. Seperti contoh bila
kita menggunakan mikrokontroler ATMega16, maka kita harus mengambil
fungsi-fungsi untuk ATMega16 dengan perintah sebagai berikut:
#include<mega16.h>
Sebagai Contoh penulisan program untuk menyalakan LED di PORTB

// deklarasi fungsi-fungsi ekternal


#include <mega16.h> // mengambil fungsi-fungsi untuk ATMega16
#include <delay.h> // mengambil fungsi-fungsi untuk proses tunda

// deklarasi variable global


unsigned char dataout; // deklarasi dataout dalam byte

16
// penulisan program utama
void main(void)
{
// Port B initialization Port B sebagai output
PORTB=0x00;
DDRB=0xFF;
dataout=00;
// Penulisan program ada di dalam while (1)
while(1)
{
PORTB=dataout; // PB = dataout
delay_ms(100); // tunda selama 100 ms
dataout=dataout+1; // dataout ditambah 1;
}
}

1.3.2. INDENTIFIERS
Dalam pemrogramaman bahasa C sangat perlu sekali untuk diketahui
dalam pemberiah nama atau Identifier yang diberikan pada variabel, fungsi, label
atau objek lain. Dalam pemberian nama dapat mengandung huruf yaitu besar A
sampai Z dan huruf kecil a sampai z dan angka 0 sampai 9 dan karakter ( _ ).
Nama yang digunakan bersifat Case sensitive yaitu membedakan antara huruf
besar dan huruf kecil. Dan untuk nama dapat mencapai maksimal 32 karakter.
1.3.3. KONSTANTA
Dalam pemrogramam bahasa C ada beberapa cara dalam penulisan
konstanta yaitu sebagai berikut: Penulisan untuk Integer dan long integer ditulis
dalam bentuk decimal (123), bila ditulis dalam bentuk biner maka harus didahului
0b seperti 0b10101001, dan jika ditulis dalam bentuk hexadecimal maka harus
didahului 0x seperti 0xA9, sedangkan untuk konstanta karakter harus dilingkungi
oleh tanda kutip seperti ‘a’.

17
1.3.4. TIPE DATA
Untuk tipe tipe data yang dimiliki oleh pemrograman bahasa C
ditunjukkan dalam Tabel 1.4 berikut ini.

Tabel 1.4. Tipe Data dalam Bahasa C (Andrianto,2008;21)


Tipe Ukuran (Bit) Range
0,1 (Tipe data bit hanya dapat
Bit 1 digunakan untuk variable
global.)
Char 8 -128 to 127
Unsigned char 8 0 to 255
Signed char 8 -128 to 127
Int 16 -32768 to 32767
Short int 16 -32768 to 32767
Unsigned int 16 0 to 65535
Signed int 16 -32768 to 32767
Long int 32 -2147483648 to 214783647
Unsigned long int 32 0 to 4294967295
Signed long int 32 -2147483648 to 214783647
Float 32 ±1.175e-38 to ±3.402e38
Double 32 ±1.175e-38 to ±3.402e38

1.3.5. OPERATOR
Dalam pemrograman operator merupakan intruksi khusus yang digunakan
untuk variable. Adab beberapa yang sering digunakan yaitu operator kondisi atau
pembanding seperti yang ditunjukan dalam Tabel 1.5, operator atirmatika
ditunjukkan dalam Tabel 1.6, operator logika ditunjukkan dalam Tabel 1.7,
operator bitwise ditunjukkan dalam Tabel 1.8, operator Assignment ditunjukkan
dalam Tabel 1.9.

18
Tabel 1.5. Daftar Operator Kondisi (Andrianto,2008;22)
Operator Kondisi Keterangan
< Lebih kecil
<= Lebih kecil atau sama dengan
> Lebih besar
>= Lebih besar atau sama dengan
== Sama dengan
!= Tidak sama dengan

Tabel 1.6. Daftar Operator Aritmatika(Andrianto,2008;22)


Operator Aritmatika Keterangan
+ Penjumlahan
- Pengurangan
* Perkalian
/ Pembagian
% Sisa Bagi (modulus)

Tabel 1.7. Daftar Operator Logika(Andrianto,2008;22)


Operator Logika Keterangan
! Boolean NOT
&& Boolean AND
|| Boolean OR

Tabel 1.8. Daftar Operator Bitwise(Andrianto,2008;22)


Operator Bitwise Keterangan
Komplemen Bitwise
& Bitwise NOT
| Bitwise OR
^ Bitwise Exclusive OR
>> Right Shift
<< Left Shift

19
Tabel 1.9. Daftar Operator Assignment(Andrianto,2008;23)
Opereator Assignment Keterangan
= Untuk memasukkan nilai
+= Untuk menambah nilai dari keadaan semula
-= Untuk mengurangi nilai dari keadaan semula
*= Untuk mengalikan nilai dari keadaan semula
/= Untuk melakukan pembagian terhadap bilangan
semula
%= Untuk memasukkan nilai sisa bagi dari pembagian
bilangan semula
<< = Untuk memasukkan shift left
>> = Untuk memasukkan shift right
&= Untuk memasukkan bitwise AND
^= Untuk memasukkan bitwise XOR
\= Untuk memasukkan bitwise OR

1.3.6. KONTROL ALIRAN PROGRAM


Dalam pemrograman ada beberapa perintah yang dapat digunakan untuk
mengendalikan aliran program antara lain:
a. Perintah percabangan if (…){…} digunakan untuk mengecek satu kondisi
untuk satu blok jawaban dengan flowcart ditunjukkan dalam Gambar 1.5.

Y
A >30

P B =0xF F
T

Gambar 1.5. Flowcart Perintah if

20
Dan dengan cara penulisannya sebagai berikut:
if(_uji_benar_atau_salah_)
{_eksekusi_blok_ini_jika_benar_; } ;
seperti contoh:
if (A>30) // jika A lebih besar 30 maka PB = 0xff;
{ PORTB = 0xff;}

b. Perintah percabangan if(…){…} else {…} digunakan untuk mengecek satu


kondisi untuk dua blok jawaban dengan flowcart ditunjukkan dalam Gambar
1.6.

Y
A>30
T

P B = 0 x0 0 P B = 0 xF F

Gambar 1.6. Flowcart Perintah if – else


Dan cara penulisannya sebagai berikut:
if(_uji_benar_atau_salah_)
{_eksekusi_blok_ini_jika_benar_; }
else {_eksekusi_blok_ini_jika_salah_; } ;
seperti contoh:
if (A > 30) // Jika A lebih besar 30
{PORTB=0xff} // maka PB = 0xff;
else {PORTB=0x00;} // jika tidak PB=0x00
c. Perintah while ( … ) { … } digunakan untuk perulangan jika kondisi yang
diuji bernilai benar dengan flowcart ditunjukkan dalam Gambar 1.7

21
Y
P B =0xFF
A >30 A =P A

Gambar 1.7. Flowcart Perintah while


d. dan cara penulisannya sebagai berikut:
while (_eksekusi_blok_ini_jika_benar_atau_salah)
{_selama_benar_blok_ini_akan_selalu_dieksekusi_;};
Seperti contoh:
while (A > 30) // Ulangi selama A lebih besar dari 30,
{ PORTB = 0xff; // PB =0xff;
A = PINA; } // A=PA;
e. Perintah do {…} while (…) digunakan untuk perulangan jika kondisi yang
diuji bernilai benar. Pada perintah ini blok {…} dikerjakan dahulu baru
kemudian diuji, jika benar maka blok {…} diulangi lagi. Dengan flowcart
ditunjukkan dalam Gambar 1.8.

P B = 0 x ff
A = P A

Y
A > 3 0

Gambar 1.8. Flowcart Perintah do – while

22
Dan cara penulisannya sebagai berikut:
do
{_selama_benar_blok_ini_akan_selalu_dieksekusi_;}
while (_uji_benar_atau_salah_);
Seperti contoh:
do
{ PORTB = 0xff; // PB = 0xff
A = PINA;} // A= PORTA
while (A > 30); // selama A > 30 kerjakan blok diatasnya
f. Perintah for (…. ; …. ; ….) {…} digunakan untuk perulangan dengan kondisi
dan syarat yang telah ditentukan. Biasanya digunakan perulangan dengan
jumlah tertentu dengan flowcart ditunjukkan dalam Gambar 1.9.

I= 1

Y
P B = d a ta o u t
I< 1 0 D a ta o u t+ +
i+ +

Gambar 1.9. Flowcart Perintah for


Dan cara penulisannya sebagai berikut :
for (_kondisi _awal ; _uji_kondisi_ ; _aksi_jika_benar)
{_eksekusi_blok_ini_jika_benar_ ;} ;
Seperti contoh:
for (i=1;i<10;i++) // mengulangi blok dibawah ini sebanyak 9 kali
{ PORTB=dataout; // PB = dataout
dataout=dataout+1;} // dataout=dataout+1

Contoh Soal:

23
1. Ada berapa jenis memori yang dimiliki ATMega16? Sebutkan.
Jawab:
Ada 3 yaitu: RAM, EEPROM dan Flash Memori Program
2. Ada berapa port yang dimiliki oleh ATMega16?
Jawab:
Ada 4 port yaitu Port A, Port B, Port C dan Port D
Latihan:
1. Buat flowcart dan program untuk menghitung 1 sampai 10 dengan
menggunakan instruksi :
a. while
b. for

24

Anda mungkin juga menyukai