Jumat, 26 November 2010

BELAJAR BAHASA C


A.      PENDAHULUAN
Bahasa C/C++ adalah bahasa pemrograman yang sangat digemari karena bahasa C/C++ adalah bahasa yang sangat kompatibel untuk pemrograman computer berbasis Windows ataupun nix, bahkan bisa untuk pemrograman mikrokontroler dari Atmel, PIC, dsb.
Bahasa C/C++ adalah suatu singkatan yaitu C yang berarti Case sensitive, artinya dalam pemrograman bahasa C ini antara huruf besar dan huruf kecil adalah berbeda ( A ≠ a ). Maka dalam membuat progam dengan bahasa C/C++ ini harus berhati-hati dalam menuliskan perintah, konstanta, dsb.
Pada dasarnya pemrograman mikrokontroler ini adalah fungsi I/O, yaitu pengolahan nilai-nilai input yang diproses untuk menghasilkan nilai-nilai output yang dikehendaki. Nilai-nilai input atau output biasanya berbentuk bilangan biner atau hexadecimal.

B.       STRUKTUR PEMOGRAMAN C
Stuktur penulisan bahasa c secara umum terdiri atas 4 blok, yaitu :
1.         Header
2.         Deklarasi konstanta global dan atau variabel
3.         Fungsi dan atau prosedur
4.         Program utama
Secara umum, pemograman C paling sederhana dilakukan dengan hanya menuliskan program utamanya saja, yaitu :
#include <mega32.h>        // header
// Alphanumeric LCD Module functions
#asm
   .equ __lcd_port=0x18 ;PORTB
#endasm
#include <lcd.h>
#define indikasi        PORTB.3      //declarasi define
#define kaplus       PORTD.5
#define kamin        PORTD.6
// Declare your global variables here
unsigned char xcount;      //Variabel
unsigned char simpangan;
int max,lpwm,rpwm;
void main(void) //program utama
           {
                //program utama ditulis disini
           }
1.      Header
Header berisi include file (.hex), yaitu library (pustaka) yang akan digunakan dalam pemograman.
Include
Dalam bahasa pemrograman C/C++ dikenal perintah yaitu INCLUDE, yaitu sebuah perintah yang digunakan untuk memasukkan sebuah file *.h, yang berisi perintah-perintah atau konstanta yang digunakan dalam membuat program. Sebagai contohnya
#include <mega32.h>
#asm
   .equ __lcd_port=0x18 ;PORTB
#endasm
#include <lcd.h>
Maka semua perintah dan konstanta yang ada dalam file lcd.h dapat diakses dalam project yg dibuat.

2.      Deklarasi konstanta global dan atau variabel (Define)
Perintah ini digunakan untuk mendefinisikan nilai, alamat, atau sejenisnya. Sebagai contohnya
#define indikasi        PORTB.3
#define kaplus       PORTD.5
#define kamin        PORTD.6
Dari baris berintah diatas, indikasi adalah pengganti PORTB.3
(indikasi=PORTB.3).

3.      VARIABLE & KONSTANTA
a. VARIABEL
Dalam pemrograman C/C++ penulisan variable dapat ditulis sebagai berikut
   <jenis data> <nama variable>
Sebagai contoh int indeks, dari contoh tersebut nama variable yang bernama indeks mempunyai jenis data yaitu integer.
b.KONSTANTA
     Konstanta atau yang disebut nilai tetap/constant dalam pemrograman C/C++ dapat dituliskan
<jenis data> <nama konstanta> = <nilai>
Hampir mirip dengan penulisan varibel, hanya saja ditambahkan besar nilainya.
Misalnya saja, int kecepatan_motor = 200. Sehingga konstanta yang bernama kecepatan_motor akan bernilai 200.

4.      JENIS DATA
Tipe
Ukuran (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 4294967295
Signed long int
32
-2147483648 to 2147483647
float
32
±1.175e-38 to ±3.402e38
double
32
±1.175e-38 to ±3.402e38











5.      COMMENT ATAU KOMENTAR
Komentar dalam bahasa C/C++ harus diawali dengan karakter “//” (tanpa tanda petik) atau bisa juga ditulis dengan diawali “/*”(tanpa tanda petik) dan diakhiri dengan “*/”(tanpa tanda petik).
Sebagai contoh
// ini hanya komentar/catatan ga’ usah dipedulikan
/*ini bukan perintah alias tidak penting*/
///*ini komentar
6.      ARITMATIKA
Simbol
Contoh
Aritmatika
+
c=a+b
n=n+2
Penjumlahan
-
c=a-b
n=n-3
Pengurangan
++
++i
Kenaikan (increment), sama dengan i=i+1
--
--i
Penurunan (decrement), sama dengan i=i-1
*
c= a / b
n=n/2
Pembagian
%
Sisa=a %b
Menghasilkan sisa dari pembagian. a dan b bilangan bulat
=
a = b
Pemberian nilai
+=
a += 2
Penambahan suatu nilai pada variabel yang sudah ada sebelumnya. Sama dengan a = a + 2
-=
a -= 2
Pengurangan suatu nilai pada variabel yang sudah ada sebelumnya. Sama dengan a = a - 2
*=
a *= 2
Pengalian suatu nilai pada variabel yang sudah ada sebelumnya. Sama dengan a = a * 2
/=
a /= 2
Pembagian suatu nilai pada variabel yang sudah ada sebelumnya. Sama dengan a = a / 2
%=
a %= 2
Sisa dari suatu nilai pada variabel yang sudah ada sebelumnya yang dibagi oleh variabel lain.
 Sama dengan a=a / 2
*
*pointer
Menunjukan isi dari pointer

7.         OPERATOR LOGIKA
Dalam bahasa C/C++ ada beberapa operator yaitu
Simbol
Contoh
Arti
==
if (a == b)
Logika sama dengan, digunakan pembanding. Munghasilkan nilai benar jika a = b.
!=
if (a!= b)
Tidak sama dengan.
Menghasilkan nilai benar jika a≠b.
< 
A < B
A Lebih kecil B
<=
A <= B
A Lebih kecil atau sama dengan B
> 
C > B
C Lebih besar B
>=
C >= B
C Lebih besar atau sama dengan B
=
X = 10
Menyamakan/memasukkan nilai ( X diberi nilai 10 )
!
if (!a)
NOT atau komplement
&&
if (a==b && a==c)
AND
||
if (a==b || a==c)
OR

8.      MANIPULASI BIT
~
a =~b
Complement
b = 1100; a=0011;
&
c = a & b
AND untuk manipulasi bit.
a = 1100; b=1001; maka c=1000
|
c = a | b
OR untuk manipulasi bit.
a = 1100; b=1001; maka c=1101
^
c=a^b
XOR untuk manipulasi bit.
a = 1100; b=1001; maka c=0101
<< 
c = a<<n
Shift Left, manipulasi bit menggeser ke kiri sejauh n bit. a=1101; n=2; maka c = 110100
>> 
c = a>>n
Shift Right, manipulasi bit menggeser ke kanan sejauh n bit. a=11010; n=2; maka c = 0110

9.      FUNGSI
Fungsi dalam bahasa pemrograman C/C++ secara umum dapat dituliskan
                  void <nama fungsi>(<jenis data parameter> <parameter>)
contohnya
void belok(int kekanankah)
{
  if (kekanankah == 1) {  //apakah belok kekanan
       Motor_1 =  1;
       Motor_2 = 0; }
  else {
       Motor_1 =  0;
       Motor_2 = 1; }
}
jika menghendaki fungsi tanpa parameter maka dapat ditulis
                  void <nama fungsi>()
contohnya
void jalan_lurus()
{
  Motor_1 = 1;
  Motor_2 = 1;
}
10.  PERCABANGAN
a.      if – then
bentuk umum dari percabangan ini adalah :
if (kondisi){
     //pernyataan
};
Artinya adalah pernyataan akan dijalankan jika kondisi terpenuhi.
 Contoh :
     if (a<0x55)   {
              PORTC=0x55;
               };
Dalam contoh ini PORTC akan dikirimi data 0x55 (ingat mode hexsa) jika nilai a lebih kecil dari 0x50.

b.      IF … ELSE ….
Perintah if … else … dalam bahasa C/C++ fungsinya pada dasarnya adalah untuk memilih tindakan antara 2 keadaan.
if (kondisi)  {
              //pernyataan a
          }
else      {
              //pernyataan b
          };
Artinya adalah pernyataan a akan dijalankan jika kondisi terpenuhi dan pernyataan b akan dijalankan jika kodisi tidak terpenuhi.
Misalnya
if ( ada_garis == 1) {
            maju(); } //memanggil fungsi yang bernama maju, jika nilai ada_garis = 1
 else {
            mundur(); } //memanggil fungsi yang bernama mundur, jika nilai garis selain 1
c.       SWITCH … CASE …. BREAK
Perintah switch … case …  pada dasarnya sama seperti perintah if … else …, hanya saja switch … case … break lebih efisien untuk memilih tindakan dari banyak keadaan.
switch (ekpresi) {
  case konstanta1:
       pernyataan1;
       break;
  case konstanta2:
       pernyataan2;
       break;
  case konstanta3:
       pernyataan3;
       break;
  }
Contohnya
switch (sensor) {
      case 0b00111111:
                  belok_kiri();
                  break;
      case 0b11100111:
                  maju();
                  break;
      case 0b11111100:
                  belok_kanan();
                  break;
      }
Jika nilai sensor bernilai  0b11100111 maka akan menjalankan fungsi yang bernama maju selanjutnya akan keluar dari perintah switch … case …. Namun jika nilai sensor 0b11111111 atau bisa dikatakan tidak ada dalam daftar case, maka perintah switch tidak akan menjalankan perintah/fungsi apapun.

11.  PERULANGAN
a.      For
Pernyataan for akan melakukan perulangan beberapa kali sesuai dengan yang diinginkan. Struktur penulisan for adalah sebagai berikut :
for (mulai; kondisi; penambahan atau pengurangan)
{
Pernyataan;
}  ;
Mulai adalah pemberian nilai awal, kemudian kondisi adalah pengkondisi dalam for yaitu jika kondisi bernilai true maka pernyataan dalam for akan dijalankan. Penambahan atau pengurangan adalah penambahan atau pengurangan terhadap nilai awal.
Contoh :
for (i=0;i<9;i++)
      {      PORTC=dataku[i];
              delay_ms(100);
     }
b.      WHILE
while adalah suatu perintah perulangan. Secara umum perintah while dituliskan sebagai berikut
            while(keadaan){
          pernyataan;}
Jika kondisi memenuhi maka pernyataan dibawahnya akan dijalankan hingga selesai, kemudian akan menguji kembali kondisi diatas.
contohnya        
i=1; a=1;
while (i<50){
                          a=a*2;
                          PORTC=a;
                           i++; };
c.       Do – While
Bentuk perulangan ini kebalikan dari while – do, yaitu pernyataan dilakukan terlebih dahulu kemudian diuji kondisinya.
do{
pernyataan;}
while (kondisi);
contoh :
i = 1; a = 1; // variabel
do {a=a*2;
PORTC=a; i++;}
while (i<50)

0 komentar:

Posting Komentar

Share

Twitter Delicious Facebook Digg Stumbleupon Favorites More