• Tidak ada hasil yang ditemukan

Bahasa C merupakan salah satu bahasa pemrograman yang paling populer untuk pengembangan program-program aplikasi yang berjalan pada sistem mikroprosesor (komputer). Relatif dibandingkan dengan bahasa tinggi lain, bahasa C merupakan bahasa pemrograman yang sangat fleksibel dan tidak terlalu terikat dengan berbagai aturan yang sifatnya kaku. Penggunaan bahasa C akan sangat efisien terutama untuk program

mikrokontroler yang berukuran relatif besar (dan sebagai konsekuensiya hal ini terkadang akan megurangi kecepatan eksekusi).

a.Struktur Penulisan Program Bahasa C

Struktur dalam bahasa C cukup sederhana, karena hanya mencakup 3 poin penting, yaitu : 1.Pre-processor

Merupakan bagian dari program dalam bahasa C yang selalu dijalankan pertama kali. Bagian ini juga melakukan proses tertentu. Banyak sekali syntax dalam pre-processor. Namun setidaknya ada duasyntax yang akan sering digunakan dalam latihan programming dasar, yaitu syntax #include dan #define.

2.Main function

Ini adalah fungsi utama dalam suatu program. Tentu saja fungsi ini yang akan dijalankan pertama kali. Tidak menutup kemungkinan di dalam fungsi ini terdapat statement yang memanggil fungsi lain.

3.Function

Fungsi dapat dibuat sendiri dan dapat dipanggil baik fungsi utama ataupun fungsi lain dan bahkan fungsi itu sendiri. Fungsi dapat diletakkan di atas fungsi utama (dengan menambahkan deklarasi fungsi di atas fungsi utama).

b.Tipe data

Tipe data merupakan bagian yang paling penting karena tipe data mempengaruhi setiap instruksi yang akan dilaksanakan oleh komputer. Misalnya saja 5 dibagi 2 bisa saja menghasilkan hasil yang berbeda tergantung tipe datanya.

Jika 5 dan 2 bertipe integer maka akan menghasilkan nilai 2, namun jika keduanya bertipe float maka akan menghasilkan nilai 25000000.

c.Kostanta

bernilai integer, pecahan, karakter, dan string. Selain itu, bahasa C juga menyediakan beberapa karakter khusus yang disebut karakter escape, antara lain :

\a: untuk bunyi bel (alert)

\b: mundur satu spasi (backspace) \f:ganti halaman (form feed) \n: ganti baris bar (new line) \v:tabulasi vertikal

\0: nilai kosong (null) \’:karakter petik tunggal \”:karakter petik ganda \\:karakter garis mirig

d.Variable

Variable adalah suatu pengenal (identifier) yang digunakan untuk mewakili suatu nilai tertentu di dalam proses program. Berbeda dengan konstanta yang nilainya selalu tetap. Nilai dari suatu variable bisa diubah- ubah sesuai kebutuhan. Nama dari suatu variable dapat ditentukan sendiri oleh pemrogram dengan aturan sebagai berikut :

1)Terdiri dari gabungan huruf dan angka dengan karakter pertama harus berupa huruf.

2)Bahasa C bersifat case-sensitive artinya huruf besar dan kecil dianggap berbeda. Jadi antara Metal dengan metal itu berbeda.

3)Tidak boleh mengandung spasi.

4)Tidak boleh mengandung simbol-simbol khusus, kecuali garis bawah (uderscore), seperti : $, ?, %, #, !, &, *,(,), -, +, dsb.

5)Panjangnya bebas, tetapi hanya 32 karakter pertama yag terpakai.

Bahasa C adalah bahasa pemrograman yang digunakan pada software CodeVision AVR. Bahasa pemrograman ini yang dapat dikatakan berada antara bahasa tingkat rendah (bahasa yang berorientasi pada mesin) dan bahasa tingkat tinggi (bahasa yang berorientasi pada manusia). Seperti yang diketahui, bahasa tingkat tinggi mempunyai kompatibilitas antara platform dan karenanya amat mudah untuk membuat program pada berbagai mesin. Berbeda dengan menggunakan bahasa mesin, sebab setiap perintahnya sangat bergantung pada jenis mesin.

Pembuat bahasa C adalah Brian W. Kernighan dan Dennis M. Ritchie pada tahun 1972. Bahasa C adalah bahasa pemrograman terstruktur, yang membagi programnya dalam bentuk blok. Tujuannya untuk memudahkan dalam pembuatan dan pengembangan program. Program yang ditulis dengan bahasa C mudah sekali dipindahkan dari satu jenis program ke

bahasa program lain. Hal ini karena adanya standarisasi bahasa C berupa standar ANSI (American National Standard Institute) yang dijadikan acuan oleh para pembuat kompiler jenis mesin.

Kelebihan Bahasa C:

a. Bahasa C tersedia hampir di semua jenis komputer.

b. Kode bahasa C sifatnya adalah portable dan fleksibel untuk semua jenis komputer. c. Bahasa C hanya menyediakan sedikit kata-kata kunci hanya terdapat 32 kata kunci. d. Proses executable program bahasa C lebih cepat

e. Dukungan pustaka yang banyak. f. C adalah bahasa yang terstruktur

Kekurangan Bahasa C:

a. Banyaknya operator serta fleksibilitas penulisan program kadang-kadang membingungkan pemakai.

b. Bagi pemula pada umumnya akan kesulitan menggunakan pointer.

Struktur Bahasa Pemrograman C <preprosesor directive> { <statement>; <statement>; } Contoh : Penjelasan : Header File

Header File adalah berkas yang berisi prototype fungsi, definisi konstanta dan definisi variable. Fungsinya adalah kumpulan code C yang diberi nama dan ketika nama tersebut dipanggil maka kumpulan kode tersebut dijalankan. File header yang digunakan

mendefinisikan jenis mikrokontroler yang digunakan, yang berfungsi sebagai pengarah. Dimana pendeklarasian register-register yang terdapat pada program difungsikan untuk jenis mikrokontroler digunakan ( pada softwareCodeVision AVR ) contohnya di bawah ini:

Contoh :

#include <mega8535.h> #include<delay.h> #include <stdio. h>

Preprosesor Directive (#include)

Preprosesor directive adalah bagian yang berisi pengikutsertaan file atau berkas-berkas fungsi maupun pendefinisian konstanta.

Contoh:

#include <stdio.h> #include phi 3.14 Void

Void artinya fungsi yang mengikutinya tidak memiliki nilai kembalian (return). Main ( )

Fungsi main ( ) adalah fungsi yang pertama kali dijalankan ketika program dieksekusi tanpa fungsi main suatu program tidak dapat dieksekusi namun dapat dikompilasi.

2.5.1 Kata Kunci (Keyword)

Kata kunci-kata kunci yang terdapat di C, sebagai berikut: Tabel 2.5.1 Kata-Kata Kunci

2.5.2Identifier

Identifier atau nama pengenal adalah nama yang ditentukan sendiri oleh pemrogram yang digunakan untuk menyimpan nilai, misalnya nama variable, nama konstanta, nama suatu elemen (misalnya: nama fungsi, nama tipe data, dll). Identifier punya ketentuan sebagai berikut :

1. Maksimum 32 karakter (bila lebih dari 32 karakter maka yang diperhatikan hanya 32 karakter pertama saja).

2. Case sensitive: membedakan huruf besar dan huruf kecilnya.

3. Karakter pertama harus karakter atau underscore ( _ ) selebihnya boleh angka. 4. Tidak boleh mengandung spasi atau blank.

5. Tidak boleh menggunakan kata yang sama dengan kata kunci dan fungsi. 2.5.3 Variabel

Variabel adalah identifier yang nilainya dapat berubah atau diubah selama program berjalan (dieksekusi). Pengubahnya adalah user atau proses.

Deklarasi variabel (tipe_data nama_variabel;)

Variabel yang akan digunakan dalam program haruslah dideklarasikan terlebih dahulu. Pengertian deklarasi di sini berarti memesan memori dan menentukan jenis data yang bisa disimpan di dalamnya.

Contoh : Int a, b, c;

Inisialisasi variabel (tipe_data nama_variabel = nilai;) Int a=15, b=7, c=0

2.5.4 Konstanta

Konstanta adalah identifier yang nilainya tetap selama program berjalan atau dieksekusi. Cara untuk mengubahnya hanya melalui source codenya saja. Seperti halnya variabel, konstanta juga memiliki tipe. Penulisan konstanta mempunyai aturan tersendiri, sesuai dengan tipe masing-masing.

1. Konstanta karakter misalnya ditulis dengan diawali dan diakhiri dengan tanda petik tunggal, contohnya : ‘A’ dan ‘@’.

2. Konstanta integer ditulis dengan tanda mengandung pemisah ribuan dan tidak mengandung bagian pecahan, contohnya : –1 dan 32767.

3. Konstanta real (float dan double) bisa mengandung pecahan (dengan tanda berupa titik) dan nilainya bisa ditulis dalam bentuk eksponensial (menggunakan tanda e), contohnya : 27.5f (untuk tipe float) atau 27.5 (untuk tipe double) dan 2.1e+5 (maksudnya 2,1 x 105 ).

4. Konstanta string merupakan deretan karakter yang diawali dan diakhiri dengan tanda petik-ganda (“), contohnya :“Pemrograman Dasar C”.

Contoh :

2.5.5 Tipe Data Dasar

Data merupakan suatu nilai yang bisa dinyatakan dalam bentuk konstanta atau variabel. Konstanta menyatakan nilai yang tetap, sedangkan variabel menyatakan nilai yang dapat diubah-ubah selama eksekusi berlangsung.Untuk mengetahui ukuran memori bisa dipakai fungsi sizeof (<tipe_data>).

Tabel 2.5.2 Ukuran Memori untuk Tipe Data

Catatan:

Ukuran dankawasan dari masing-masing tipe data adalah bergantung pada jenis mesin yang digunakan (misalnya mesin 16 bit bisa jadi memberikan hasil berbeda dengan mesin 32 bit). Untuk menampilkan hasil output dibutuhkan kode format, berikut adalah daftar kode format:

Tabel 2.5.3 Daftar Kode Format Tipe Data Ukuran

Memori Kawasan

Unsigned char 8 bits 0 s/d 255 Char 8 bits -128 s/d 127 Short int 16 bits -32.768 s/d 32.767 Unsigned int 32 bits 0 s/d 4.294.967.295

Int 32 bits -2.147.483.648 s/d 2.147.483.647 Unsigned long 32 bits 0 s/d 4.294.967.295

Enum 16 bits -2.147.483.648 to 2.147.483.648 Long 32 bits -2.147.483.648 s/d 2.147.483.647 Float 32 bits 3,4 x 10-38 s/d 3,4 x 1038

Double 64 bits 1,7 x 10-308 to 1,7 x 10308 Long double 80 bits 3,4 x 10-4932 to 3,4 x 104932 Near (pointer) 32 bits Not applicable

Kode Format Kegunaan %c Menampilkan sebuah karakter

%s Menampilkan nilai string

%d Menampilkan nilai desimal integer %i Menampilkan nilai desimal integer

%u Menampilkan nilai desimal integer tidak bertanda (unsigned integer) %ld Menampilkan nilai desimal long integer

%lu Menampilkan nilai desimal long integer tidak beratanda %li Menampilkan desimal long integer

%hi Menampilkan nilai desimal short integer tak bertanda %x Menampilkan nilai heksa desimal integer

%o Menampilkan nilai okta integer %f Menampilkan nilai pecahan/float %e Menampilkan nilai float scientific

%g Sebagai pengganti %f atau %e tergantung yang terpendek %lf Menampilkan nilai pecahan double

%lg Menampilkan nilai pecahan double

%p Menampilkan suatu alamat memory untuk pointer 2.6.6 Operator Aritmatika

Operator aritmatika digunakan untuk melakukan proses perhitungan matematika. Fungsi-fungsi matematika yang terdapat pada bahasa C dapat dilihat pada tabel di bawah ini:

Tabel2.5.4 Operator Aritmatika

Contoh penggunaan operator aritmatika dapat dilihat di bawah ini, #include < mega8535.h>

#include <delay.h> void main (void) {

unsigned char a, b; a = 0x03;

DDRC 0XFF; // PORTC digunakan sebagai output while (1) { PORTC = (a * b); delay_ms(500); } } 2.5.7 Operator Pembanding

Operator pembanding digunakan untuk membandingkan 2 data atau lebih. Hasil operator akan di jalankan jika pernyataan benar dan tidak dijalankan jika salah. Operator pembanding dapat kita lihat pada tabel di bawah ini:

Tabel 2.5.5 Operator Pembanding

Operator Contoh Keterangan

== x == y Benar jika kedua data bernilai sama != x != y Bernilai benar jika kedua data tidak sama

> x > y Bernilai benar jika nilai x lebih besar dari pada y < x < y Bernilai jika x lebih kecil dari y

>= x >= y Bernilai jika x lebih besar atau sama dengan y <= x <= y Bernilai benar jika x lebih kecil atau sama dengan y 2.5.8 Operator Logika

Operator logika digunakan untuk membentuk logika dari dua pernyataan atau lebih. Operator logika dapat dilihat pada tabel di bawah ini:

Tabel 2.5.6 Operator Logika

#include < mega8535.h> #include <delay.h>

void main (void) {

DDRC = 0XFF; // sebagai output DDRA = 0X00; // sebagai input while (1) { If ( PINA.0 == 1 )|| (PINA.1 == 1 ){ PORTC = 0XFF; delay_ms(500); PORTC = 0X00; Delay_ms(500); } else{ PORTC = 0x00; delay_ms(500); } } } Penjelasan program:

Apabila PINA.0 atau PINA.1 diberi input logika 1 maka PORTC akan mengeluarkan logika 0xff kemudian logika 0x00 secara bergantian dengan selang waktu 0,5 s. dan apabila bukan PINA.1 atau PINA.0 diberi logika 1 maka PORTC akan mengeluarkan logika 0x00.

2.5.9 Operator Bitwise

Operator logika ini bekerja pada level bit. Perbedaan Operator Bitwise dengan operator logika adalah pada operator logika akan menghasilkan pernyataan benar atau salah sedangkan pada operator bitwise akan menghasilkan data biner. Operator Bitwise dapat dilihat pada tabel di bawah ini:

Tabel 2.5.7 Operator Bitwise

Contoh program:

#include <mega8535.h> #include <delay.h> void main (void) {

unsigned char a,b,c;

DDRC = 0xff; //portc sebagai o while (1) { a = 0x12; b = 0x34; c = a & b; PORTC = c; delay_ms(500); }; } Penjelasan program: a = 0x12 = 0001 0010 b = 0x32 = 0011 0000 ---

a & b = 0x10 = 0001 0000

2.5.10 Operator Penambahan dan Pengurangan

Operator ini digunakan untuk menaikkan atau menurunkan nilai suatu variabel dengan selisih 11. Operator ini dapat dilihat pada tabel di bawah ini:

Tabel 2.5.8 Operator Penambahan dan Pengurangan

2.5.11 Pernyataan If dan If Bersarang

Pernyataan if digunakan untuk pengambilan keputusan terhadap 2 atau lebih pernyataan dengan menghasilkan pernyataan benar atau salah. Jika pernyataan benar maka akan di jalankan instruksi pada blok nya, sedangkan jika pernyataan tidak benar maka instruksi yang pada blok lain yang dijalankan ( sesuai dengan arah programnya).

Bentuk pernyataan IF adalah sebagai berikut: a. Bentuk sederhana if (kondisi){ Pernyataan_1; Pernyataan_2; ...; } b. Pernyataan else if (kondisi) { Pernyataan_1; ...; } else

{

Pernyataan_2; ...; }

2.5.12 Pernyatan While

Pernyataan while digunakan untuk mengulangi sebuah pernyataan atau blok kenyataan secara terus menerus selama kondisi tertentu masih terpenuhi. Bentuk pernyataan while adalah sebagai berikut :

while (kondisi) {

// sebuah pernyataan atau blok pernyataan }

Jika pernyataan yang akan diulang hanya berupa sebuah pernyataan saja maka tanda { dan } bias dihilangkan.

Contoh :

unsigned char a=0; …..

while (a<10) {

PORTC=a; a++;

Pernyataan di atas akan mengeluarkan data a ke port C secara berulang-ulang. Setiap kali pengulangan nilai a akan bertambah 1 dan setelah niai a mencapai 10 maka pengulangan selesai.

Dokumen terkait