Bahasa C luas digunakan untuk pemrograman berbagai jenis
perangkat, termasuk mikrokontroler. Bahasa ini sudah merupakan high level language, dimana memudahkan
programmer menuangkan algoritmanya. Untuk mengetahui dasar bahasa C dapat 3dipelajari
sebagai berikut.
Struktur Penulisan Program
Struktur
penulisan bahasa C secara umum terdiri atas empat blok, yaitu header, deklarasi
konstanta global dan atau variable, fungsi dan atau prosedur (dapat di bawah
program utama), dan program utama.
STRUKTUR PENULISAN
|
CONTOH
|
/*
HEADER untuk memanggil library yang akan digunakan */
#include
< [library1.h] > // Opsional
#include
< [library2.h] > // Opsional
#define
[nama1] [nilai] ; // Opsional
#define
[nama2] [nilai] ; // Opsional
/*
Deklarasi konstanta dan atau variabel global */
[global
variables] // Opsional
/*
Deklarasi fungsi dan atau prosedur */
[functions]
// Opsional
/*
Program utama */
void
main(void)
{
/*
Deklarasi konstanta dan atau variabel lokal */
[Deklarasi
local variable/constant]
[Isi
Program Utama]
}
|
#include
<mega8535.h>
#include
<stdio.h>
unsigned
char dt, xx;
char
buf[33];
unsigned
char lampu (unsigned char bitn)
{
PORTA=bitn
& 0x3C;
}
void
main (void);
{
char
data;
PORTA=0x00;
DDRA=0xF0;
While
(1)
{
…
};
}
|
Tipe Data
Tabel 3.1 memperlihatkan tipe-tipe variable data yang dapat
digunakan di compiler Code Vision AVR.
Tabel 3.1 Tipe Data
Tipe
|
Size (bit)
|
Range
|
bit
|
1
|
0,1
|
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 2147483647
|
unsigned long int
|
32
|
0 to
4294967292
|
signed long int
|
32
|
-2147483648
to 2147483647
|
float
|
32
|
±1.175e-38
to ±3.402e38
|
double
|
32
|
±1.175e-38
to ±3.402e38
|
Deklarasi Variabel
dan Konstanta
Variabel adalah memori penyimpanan data yang nilainya dapat
diubah-ubah.
Penulisan : [tipe data] [nama] = [nilai] ;
Konstanta adalah memori penyimpanan data yang nilainya tidak
dapat diubah.
Penulisan : const [nama] = [nilai] ;
Tambahan:
Global variabel/konstanta yang dapat diakses di seluruh
bagian program.
Local variabel/konstanta yang hanya dapat diakses oleh
fungsi tempat dideklarasikannya.
Identifikasi label, variable dan fungsi dapat berupa huruf (A…Z, a…z) dan angka (0…9), juga karakter underscore (_). Meskipun begitu identifikasi hanya bisa
dimulai dengan huruf atau karakter underscore. Yang lebih penting lagi,
identifikasi ini case sensitive,
yaitu huruf besar dan huruf kecil berbeda. Misalnya, variable1
tidak sama dengan Variable1.
Identifikasi bisa memuat sebanyak 32 karakter.
Penulisan konstanta adalah sebagai berikut:
- Integer atau long integer
dapat ditulis dengan format decimal (contoh 1234), biner dengan awalan 0b
(contoh 0b101001), heksadesimal dengan awalan 0x (contoh 0xff) atau octal
dengan awalan 0 (contoh 0777).
- Unsigned integer ditulis
dengan diakhiri U (contoh 10000U)
- Long integer ditulis
dengan diakhiri L (contoh 99L)
- Unsigned long integer
ditulis dengan diakhiri UL (contoh 99UL)
- Floating point ditulis
dengan diakhiri F (contoh 1.234F)
- Karakter harus dituliskan
dalam tanda kutip (contoh ‘a’)
- String harus dalam tanda
kutip dua (contoh “Saya Belajar C”).
Komentar
Komentar diawali dengan tanda /* dan diakhiri dengan */
Contoh:
/* Ini komentar */
/* Ini komentar
Multi baris */
Sedangkan komentar satu baris bias dengan tanda //
Contoh:
// Ini juga komentar
Reserved Keywords
Berikut ini adalah daftar kata baku yang tidak bias dipakai
(reserved keywords) untuk label,
identifikasi atau variabel.
break
|
Flash
|
signed
|
bit
|
Float
|
sizeof
|
case
|
For
|
Sfrb
|
char
|
Funcused
|
Sfrw
|
const
|
Goto
|
static
|
continue
|
If
|
struct
|
default
|
inline
|
switch
|
do
|
Int
|
typedef
|
double
|
interrupt
|
union
|
eeprom
|
Long
|
unsigned
|
else
|
register
|
void
|
enum
|
return
|
volatile
|
extern
|
Short
|
while
|
Percabangan
If - then
Struktur penulisan
|
Contoh
|
if (kondisi) {
// pernyataan
};
|
if (a<0x50) {
PORTC=0x55;
}
|
if – then – else
Struktur penulisan
|
Contoh
|
if (kondisi) {
// pernyataan a
}
Else {
// pernyataan b
};
|
If (a<0x50) {
PORTC=0x55;
}
Else {
PORTC=0xAA;
};
|
Switch – case
Struktur penulisan
|
Contoh
|
…
Switch (ekspresi) {
Case
konstanta1:
Pernyataan1
Break;
Case konstanta2:
Pernyataan2
Break;
…
Case konstantaN:
pernyataanN
break;
}
…
|
…
switch (a) {
case 1:
PORTC=0x01;
break;
case 2:
PORTC=0x02;
break;
case 3:
PORTC=0x04;
break;
}
…
|
Switch – case – default
Struktur penulisan
|
Contoh
|
…
Switch (ekspresi) {
Case
konstanta1:
Pernyataan1
Break;
Case konstanta2:
Pernyataan2
Break;
…
Case konstantaN:
pernyataanN
break;
default:
pernyataan-pernyataan;
}
…
|
…
switch (a) {
case 1:
PORTC=0x01;
break;
case 2:
PORTC=0x02;
break;
case 3:
PORTC=0x04;
break;
default:
PORTC=0xFF;
}
…
|
Perulangan
For
…
For (mulai; kondisi; penambahan atau pengurangan) {
Pernyataan-pernyataan;
};
|
…
A=1;
For (i=1; i<50; i++) {
A=a*2;
PORTC=a;;
};
…
|
While
While (kondisi) {
Pernyataan-pernyataan;
}
|
…
I=1;
A=1;
While (i<50) {
A=a*2;
PORTc=a;;
I++;
};
…
|
Do – while
Do {
Pernyataan-pernyataan;
}
While (kondisi);
|
…
I=1;
A=1;
Do {
A=a*2;
PORTc=a;;
I++;
}
While (i<50);
…
|
Operasi logika dan biner
Logika
AND :&&
NOT : !
OR : ||
Biner
AND : &
OR : |
XOR : ^
Shift right: >>
Shift left : <<
Komplemen : ~
Operasi relasional
(perbandingan)
Sama dengan : ==
Tidak sama dengan : !=
Lebih besar : >
Lebih besar sama dengan : >=
Lebih kecil : <
Lebih kecil sama dengan : <=
Operasi aritmatika
+ , - , * , / : tambah,kurang,kali,bagi
+= , -= , *= , /= : nilai di sebelah kiri operator di
tambah/kurang/kali/bagi dengan nilai di sebelah kanan operator
% : sisa bagi
++ , -- : tambah satu (increment) , kurang satu (decrement)
Contoh :
a = 5 * 6 + 2 / 2 -1 ; maka nilai a adalah 30
a *= 5 ; jika nilai awal a adalah 30, maka nilai a = 30x5 =
150.
a += 3 ; jika nilai awal a adalah 30, maka nilai a = 30+5 =
33.
a++ ; jika nilai awal a adalah 5 maka nilai a = a+1 = 6.
a-- ; jika nilai awal a adalah 5 maka nilai a = a-1 = 4.
Memasukkan bahasa Assembly
(in line assembly)
Dalam pemrograman dengan bahasa C, bahasa assembly masih
dapat dimasukkan ke dalam program C. Struktur penulisannya pun juga mudah,
yaitu:
…
#asm // dimulai
dengan #asm
nop // blok bahasa assembly
nop
#endasm // diakhiri dengan #endasm
…
Atau jika hanya beberapa instruksi maka bias dituliskan
dengan;
…
#asm(“nop`nop`nop”)
…
Statement
Statement adalah setiap operasi dalam pemrograman, harus
diakhiri dengan [ ; ] atau [ } ]. Statement tidak akan dieksekusi bila diawali
dengan tanda [ // ] untuk satu baris. Lebih dari 1 baris gunakan pasangan [ /*
] dan [ */ ]. Statement yang tidak dieksekusi disebut juga comments / komentar.
Contoh: suhu=adc/255*100; //contoh rumus perhitungan suhu
Function
Function adalah bagian program yang dapat dipanggil oleh
program utama.
Penulisan : [tipe data hasil] [nama function]([tipe data
input 1],[tipe data input 2])
{
[statement] ;
}
Find us on Google+
gan, untuk tipe data itu maksudnya gimana ya gan? beda satu sama lain itu gimana? hehe
ReplyDeletethanks gan
ReplyDeletenumpang tanya gan..
ReplyDeletesaya punya variabel nilainya 50, variabel ini berupah naik dan turun dan ditampilkan ke display 7-segment anggaplah itu adalah nilai suhu, maslahnya jika suhu naik variabel ini malah turun, begitu sebaliknya suhu turun varibel ini naik. gimna ya gan kodingnya biar suhu naik variabel turun tapi
di display variabel tadi naik bukan turun seperti kondisi sbnarnya?
thanks
kalo ada error expected '(' itu kenapa?
ReplyDeletekalo ada error expected '(' itu kenapa?
ReplyDeleteError expected mungkin tanda kurung buka nya tidak ada . Coba cek lagi
ReplyDeleteselain tanda kurungnya ga ada kemungkinan lain apa ya
ReplyDelete