sesi-8_StrukPemrgrmn..

advertisement
Sesi-08 STRUKTUR PEMROGRAMAN C
8.1
8 -1
Tujuan
Mengenal dan memahami prinsip dasar struktur pemrograman Bahasa C; Header, Tipe
Data, Logika, Aritmatika, Percabangan, Perulangan, Konversi, Prosedur dan Fungsi
8.2
Dasar Teori
Bahasa C adalah evolusi dari bahasa B yang dikembangkan oleh Dennis Ritchie,
merupakan general-purpose language, yaitu bahasa pemrograman yang dapat digunakan untuk
tujuan apa saja. Bahasa C mempunyai kemampuan lebih dari bahasa pemrograman lain. Banyak
sekali aplikasi-aplikasi yang dibangun dengan bahasa C, mulai dari pemrograman sistem,
aplikasi cerdas (artificial intelligence), sistem pakar, utility, driver, database, browser, network
programming, sistem operasi, game, virus, dan lainnya, bahkan Software Development Kit untuk
Windows juga ditulis dalam bahasa C. Karena sifat bahasa pemrogramannya yang portable, yaitu
dengan sedikit atau tanpa perubahan, suatu program yang ditulis dengan bahasa C pada suatu
komputer dapat dijalankan pada komputer lain.
Sebagai bahasa yang digolongkan dalam middle level language, bahasa C mempunyai
kemudahan dalam mengakses perangkat keras, juga kecepatan prosesnya yang mendekati low
level language seperti Assembly, tetapi memberikan kemudahan yang tidak ditawarkan
Assembly. Disamping itu, bahasa C jauh lebih mudah untuk dipelajari jika dibandingkan dengan
bahasa low level karena mendekati frase-frase dalam bahasa manusia, yaitu bahasa Inggris.
Bahasa C juga mempunyai banyak keuntungan dibanding bahasa pemrograman lain.
Dikarenakan kokoh dan memberikan keleluasaan kepada penggunanya, pada tahun 80-an,
penggunaan bahasa C di dunia industri semakin luas, sehingga distandarisasi oleh ANSI dan
kemudian diadopsi oleh ISO, lalu diadopsi ulang oleh ANSI. Official name bahasa C adalah
ISO/IEC 9899-1990.
Bahas C mempunyai beberapa kelebihan dibandingkan bahasa lain seperti assembly,
diantaranya: Bahasa C tersedia hampir di semua jenis komputer, kode Bahasa C bersifat
portable, berbagai struktur data dan pengendalian proses disediakan dalam Bahasa C sehingga
pembuatan program lebih terstruktur, mudah dipahami tanpa harus mengetahui mesin secara
detail, memungkinkan manipulasi data dalam bentuk bit maupun byte. Namun ada pula beberapa
kelemahan Bahasa C khususnya bagi pemula, kebanyakan dikarenakan banyaknya operator dan
fleksibilitas penulisan program kadang-kadang membingkungkan, dan umumnya pemrogram
Bahasa C tingkat pemula belum pernah mengenal pointer dan tidak terbiasa menggunakannya.
Panduan Praktikum AVR Atmega8535 LPKIA
8 -2
Proses Kompilasi dan Linking dalam Bahasa C
Agar suatu program dapat dimengerti oleh mesin, maka program tersebut terlebih dahulu
harus diterjemahkan dalam kode mesin menggunakan interpreter atau kompiler. Source program
adalah program yang ditulis dalam Bahasa C hingga membentuk program executable seperti
yang diperlihatkan pada gambar berikut:
Gambar 8-1 Proses Kompilasi Linking dalam Bahasa C
Keterangan:

Langkah pertama, program C dibuat menggunakan editor, kemudian file disimpan dalam
file yang bercirikan .c

File include umumnya memiliki ekstensi .h, misalnya mega8535.h yang biasza disebut
fili judul (header file) berisi kode yang akan dilibatkan dalam program C.

Kode dalam file program atau include selanjutnya dikompilasi menjadi obyek berekstensi
.obj atau .o (tergantung pemakaian sistem operasi)

File obyek bersama file obyek lain dan file pustaka (lybrari file : .lib) dikaitkan (linker)
untuk membentuk program executable dan disimpan dalam ekstensi .exe
Pemrograman Bahasa C untuk AVR sangat luas digunakan, terutama dalam
pemrograman berbagai jenis perangkat, termasuk mikrokontroler. Bahasa ini sudah merupakan
high level language, dimana memudahkan programmer menuangkan algoritmanya. Dalam
CVAVR, hasil compiler akan membentuk file .hex dan .coff
Panduan Praktikum AVR Atmega8535 LPKIA
8 -3
Struktur penulisan program
Program C pada hakekatnya tersusun atas sejumlah blok fungsi, fungsi pertama yang
harus ada adalah fungsi main( ). Pernyataan fungsi (sering disebut tubuh fungsi) diawali tanda
kurung kurawal buka ( { ) dan diakhiri kurung kurawal tutup ( } ), diantara kurung kurawal
ditulis statemen-statemen program C, seperti penryataan berikut ini:
Main( )
{
Statemen-statemen;
Fungsi utama
}
Fungsi_fungsi_lain;
{
Statemen-statemen;
Fungsi –funsi lain yang ditulis pemrogram
}
Struktur bahasa C menggunakan fungsi-fungsi subroutine (program-program bagian)
selain fungsi utama main( ). Penulisan fungsi soubroutine adalah setelah fungsi utama, atau
diletakkan di file pustaka (library). Dalam pemakaian file pustaka, mka file judul (header file)
harus dilibatkan dalamprogram yang menggunakan preprocessor directive berupa #include.
Fungsi main ( )
Main harus ada dalam program karena sebagai titik awal dan akhir eksekusi suatu
program. Tanda { diawal menyatakan awal tubuh program dan awal eksekusi, dan
diakhiri dengan tanda }. Jika program lebih dari satu fungsi, akan fungsi main diletakkan
di awal tubuh program meskipun bukanlah suatu keharusan.
Fungsi Prinft ( )
Merupakan fungsi yang digunakan untuk menampilkan pada layar peraga. Misalnya:
printf (“Belajar AVR”); //untuk menampilkan teks Belajar AVR
Pernyataan diatas adalah pemanggilan fungsi printf ( ) dengan parameter string (diawali
dan diakhiri dengan tanda petik ganda (“)), dan setiap akhir baris selalu diakhiri dengan
tanda titik koma (;) sebagai akhir pemberhentian, bukan pemisah dua pernyataan.
Tanda \ pada string sebagai argument printf ( ) bermakna khusus, contohnya:
\”
menyatakan karakter petik ganda
\\
menyatakan karakter backslash
\\
menyatakan karakter tab
Dalam bentuk umum, format printf adalah:
printf (“string control”, daftar agumen);
string control berupa penentu format untuk mengatur penampilan argument, diantaranya:
Panduan Praktikum AVR Atmega8535 LPKIA
8 -4
%d
menampilkan bilangan bulat (integer)
%f
menampilkan bilangan pecahan
%c
menampilkan sebuah karakter
%s
menampilkan sebuah string
Contoh:
printf (“Nomor
:%d\n”, 10);
printf (“Nama
:%f\n”, “Bejo”);
printf (“Nilai
:%c\n”, 9.5);
printf (“Huruf
:%s\n”, `A’);
\n menyatakan sebuah karakter.
Praprosesor #include
Merupakan jenis pengarah praprosesor (preprocessor directive) untuk membaa
file yang berisi deklarasi fungsi dan definisi konstanta, cirinya adalah ekstensi yang
diakhiri .h, misalnya #include <mega8535.h>.
Bentuk umum include adalah :
#include “namafile”
#include <namafile> mengisyaratakan bahwa pencarian file dilakukan pada direktori
khusus, yaitu direktori file include. Sedang #include “namafile” menyatakan pencarian
file dilakukan pertamakali pada direktori aktif tempat source program, jika tidak
ditemukan maka pencarian dilakukan pada direktori lain.
Komentar Program
Digunakan untuk keperluan dokumentasi, seperti : /* komentar… */ atau //
sebagai komentar baris.
Struct umum: #include < [library1.h] > // Opsional
#include < [library2.h] > // Opsional
#define [nama1] [nilai] ; // Opsional
#define [nama2] [nilai] ; // Opsional
[global variables] // Opsional
[functions] // Opsional
void main(void) // Program Utama
{ [Deklarasi local variable/constant]
[Isi Program Utama]
}
Panduan Praktikum AVR Atmega8535 LPKIA
8 -5
Tipe data
char : 1 byte ( -128 s/d 127 )
unsigned char : 1 byte ( 0 s/d 255 )
int : 2 byte ( -32768 s/d 32767 )
unsigned int : 2 byte ( 0 s/d 65535 )
long : 4 byte ( -2147483648 s/d 2147483647 )
unsigned long : 4 byte ( 0 s/d 4294967295 )
float : bilangan decimal
array : kumpulan data-data yang sama tipenya.
Deklarasi variabel & 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.
Statement
Statement adalah tiap 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
Aadalah bagian program yang dapat dipanggil oleh program utama.
Penulisan : [tipe data hasil] [nama function] ( [tipe data input 1],[tipe data input 2] )
{ [statement] ;
}
Conditional statement dan looping
if else digunakan untuk penyeleksian kondisi
if ( [persyaratan] ) {
[statement1];
[statement2];
}
Panduan Praktikum AVR Atmega8535 LPKIA
8 -6
else {
[statement3];
[statement4];
}
for : digunakan untuk looping dengan jumlah yang sudah diketahui
for ( [nilai awal] ; [persyaratan] ; [operasi nilai] ) {
[statement1];
[statement2];
}
while : digunakan untuk looping jika dan salama memenuhi syarat tertentu
while ( [persyaratan] ) {
[statement1];
[statement2];
}
do while : digunakan untuk looping jika dan salama memenuhi syarat tertentu, namun
min 1 kali
do {
[statement1];
[statement2];
} while ( [persyaratan] )
switch case : digunakan untuk seleksi dengan banyak kondisi
switch ( [nama variabel] ) {
case [nilai1]: [statement];
break; case [nilai2]: [statement];
break;
}
7.
Operasi logika dan biner
Logika :
AND :&&
NOT : !
OR : ||
Biner :
AND : &
OR : |
XOR : ^
Shift right: >>,
Shift left : <<,
Komplemen : ~
Panduan Praktikum AVR Atmega8535 LPKIA
8 -7
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)
Panduan Praktikum AVR Atmega8535 LPKIA
Download