Belajar Pemrograman C: Struktur Dasar Program C yang Harus dipahami
Kita sudah belajar membuat program C pertama, yaitu program Hello World!
Selanjutnya kita akan belajar tentang stuktur kode program pada bahasa C.
Bagaimana bentuk stuktur dasar program C?
Mari kita perhatikan program C berikut ini:
#include <stdio.h>
int main(){
printf("Hello World!");
return 0;
}
Ini adalah struktur dasarJika kamu baru pertama kali melihat program ini, barangkali akan menyanyakan banyak hal.
Seperti:
- Apa itu
#include <stdio.h>
? - Apa itu
int
? - Apa itu
main
? - apa itu
printf
? - dll.
Struktur Dasar Program C
Setiap kita ingin membuat program C, kita harus menuliskan struktur seperti berikut ini:#include <stdio.h>
int main(){
// kode atau logika program kita di sini
return 0;
}
Ini adalah struktur dasar yang wajib dipahami.Mari kita bahas mulai dari
#inclide
.Apa itu #include?
Pada program C,#include
berfungsi untuk mengimpor fungsi-fungsi yang sudah didefinisikan pada header file.Header file adalah file yang berisi definisi fungsi yang sudah dibuat. Tujuannya agar bisa digunakan pada program C yang lainnya. File ini berekstensi
.h
, contoh: stdio.h
.Pada contoh di atas, kita mengimpor file
stdio.h
. File ini berisi deklarasi fungsi-fungsi dasar yang kita butuhkan untuk membuat program C, seperti printf()
.File
stdio.h
sudah ada di dalam komputer kita saat menginstal gcc
.Apa itu Fungsi main()?
Fungismain()
adalah fungsi utama dalam program. Fungsi ini akan dieksekusi pertamakali saat program dijalankan.Karena itu, kita harus menuliskan logika program di dalam fungsi ini.
Pada contoh di atas kita membut fungsi main dengan deklarasi seperti ini:
int main(){
//...
return 0
}
Maksud dari int
di depan main
adalah tipe data yang akan dikembalikan. Maka di dalam fungsi main()
, wajib kita sertakan return 0
. Artinya, fungsi main
akan mengembalikan nilai 0
setelah selesai dieksekusi.Cara lain kita bisa menggunakan
void
.Contoh:
void main(){
//...
}
void
artinya tidak ada (kosong). Jika kita menggunakan void
, maka kita tidak perlu menuliskan kata kunci return di akhir fungsi. Karena fungsi void
tidak akan mengembalikan nilai apapun.Menuliskan Statement
Statemen adalah perintah-perintah atau fungsi untuk melakukan sesuatu.Contoh:
printf("Hello World!");
Artinya: kita menyuruh komputer untuk mencetak teks Hello World!
ke console.Setiap statement di dalam program C warjib diakhiri dengan titik koma (
;
), kalau tidak……maka program akan error.
Menuliskan Komentar
Komentar adalah bagian yang tidak akan dieksekusi oleh komputer. Komentar bisanya digunakan untuk membuat keterangan pada kode program.Contoh Komentar:
// ini adalah komentar
Kita bisa menggunakan garis miring ganda (//
) untuk membut komentar satu baris dan tanda /**/
untuk membuat komentar beberapa baris.Contoh:
#include <stdio.h>
int main(){
// ini adalah komentar satu baris
printf("Hello World!");
/*
ini adalah komentar
yang lebih
dari satu baris
*/
return 0;
}
Case Sensitive
Case Sensitive artinya bahasa C akan memperhatikan huruf besar dan huruf kecil dalam penulisan kode.Contoh:
// misalkan kita membuat variabel seperti ini
string nama = "Petani";
string Nama = "Kode";
Variabel nama
dengan Nama
akan diganggap variabel yang berbeda, karerna ada yang pakai huruf besar (kapital) dan hutuf kecil.Biasanya para pemula sering membuat kesalahan dengan case, alhasil program akan error.
Dasar C (standar ANSI-C)
PendahuluanPreprocessor Directive
Variable dan konstanta
Struktur Program
Control Statemen
Fungsi
Array
Pointer
Character dan String
Format Input/Output
Struktur, Union, Bit Manipulation dan Enum
File Processing
=============================================================================
Pendahuluan
Sejarah
C dibuat dan diimplementasikan pertama kali tahun 1970-an oleh Dennis Ritchie pada komputer DEC PDP-11 menggunakan sistem operasi Unix. Karena bahasa C terdiri dari banyak versi (misal C arduino , C codevision dll) maka dibuat standar yaitu ANSI-C.
Evolved over the years:
• 1972 – C invented
• 1978 – The C Programming Language published; first specification of language
• 1989 – C89 standard (known as ANSI C or Standard C)
• 1990 – ANSI C adopted by ISO, known as C90
• 1999 – C99 standard • mostly backward-compatible • not completely implemented in many compilers
• 2007 – work on new C standard C1X announced In this course: ANSI/ISO C (C89/C90)
Contoh penggunaan bahasa C
• Operating system, spt Linux
• microcontroller: automobile & pesawat
• embedded processor: HP, portable electronic,dll.
• DSP processors: digital audio & TV systems
Kelebihan Bahasa C- Bahasa C’ tersedia hampir tersedia untuk berbagai prosessor, baik mikrocontoller dan microprosssor .
- Kode bahasa C’ bersifat portabel. Suatu aplikasi yang ditulis dengan bahasa C untuk suatu prosessor tertentu dapat digunakan di prosessor lain hanya dengan sedikit modifikasi.
- Struktur bahasa yang baik
- Mudah dipelajari
- Memudahkan pembuatan program
- Memudahkan pelacakan program (debugging)
- Dibandingkan dengan bahasa mesin atau assembly, C jauh lebih mudah dipahami. C berorientasi pada permasalahan, bukan pada mesin.
- Dapat memanipulasi data dalam bentuk bit atau byte.
- Memungkinkan untuk memanipulasi alamat dari suatu data atau pointer.
C Compiler
C Compiler akan membaca seluruh source code dan mengkonversi kedalam object code (hasil translasi source code suatu program ke dalam bentuk yang dapat dieksekusi secara langsung oleh komputer).
Source code sudah tidak digunakan setelah dilakukan kompilasi oleh compiler.
object code juga sering disebut dengan binary code atau machine code.
C Compiler antara lain :
- untuk prosesor x86 : Gnu C (GCC), Turbo C dll.
- untuk microcontroller AVR : AVR-GCC , codevisionAVR, C Arduino
- dll
Semua bahasa perograman terdiri dari
- Ekspresi,
- Statemen,
- Blok statement
- Blok fungsi
contoh 2+3 , X > Y dsb…
2, 3, X dan Y adalah operand sedangkan + dan > adalah operator .
Statement adalah instruksi lengkap dalam bahasa C diakhiri dgn tanda ; (titik koma) contoh A= 2+3;
Blok statement adalah sekumpulan statement dalam 1 blok
{
statement
statement
…
}
contohnya adalah blok statemen dibawah if berikut ini :
if( b > 3 )
{
b= b+3;
c= c-b;
}
Pengenalan program C
Program C adalah berisi sekumpulan fungsi-fungsi. Eksekusi program akan diawali dengan mengeksekusi fungsi main(). Program bahasa C di compile menggunakan C Compiler .
Struktur minimal program bahasa C :==========================================
Header file
Main() //fungsi utama
{
statement
}
===========================================================
contoh
1
2
3
4
5
6
7
8
9
10
| #include <stdio.h> //file ber ext *.h adalah header file main() { /* cetak ke layar */ printf(" Hello world, ini test saja "); } |
- Program C adalah berisi sekumpulan fungsi-fungsi.
- Minimal mengandung 1 fungsi utama yang bernama main(). Eksekusi program akan diawali dengan mengeksekusi fungsi main().
- Setiap fungsi terdiri atas satu atau beberapa pernyataan, untuk menyelesaiakan tugas khusus.
- Bagian pernyataan fungsi atau tubuh fungsi diawali dengan tanda kurung kurawal buka ({) dan diakhiri tanda kurung kurawal tutup (}).
- include <stdio.h> adalah header file yg berisi fungsi fungsi standart input output yg diikut sertakan ke dlm program.
- semua charakter di dlm /* … */ atau setelah // akan di abaikan oleh compiler, ini digunakan untuk memberi keterangan saja .
PreProsessor Directive melakukan arahan sebelum proses(compile), maksudnya adalah sebelum code program bahasa C dicompile maka ada proses yg harus dilakukan oleh preprosesor directive (#define, #include, #pragma dll) antara lain
Menggabungkan file header , misal :
#include <sddio.h>
#include “file_header_saya.h”
Mengganti text atau mendefinisikan macro, misal
#define BAUD_RATE 9600,
#define JUMLAH(a,b) a+b
set up pengkondisian kompilasi , misal
#if BUFFER_SIZE < 256
char index ;
#else
int index ;
#endif
Karena preprosessor directive bukan bagian dari bahasa C maka tidak diakhiri tanda ; (titik koma).
VARIABLE DAN KONSTANTA
Variabel adalah memori penyimpanan data yang nilainya dapat diubah-ubah. variable disimpan di RAM
Konstanta adalah memori penyimpanan data yang nilainya tidak dapat diubah setelah program di compile. Konstanta disimpan di memory program.
Keyword berikut ini tidak boleh dijadikan nama variable atau konstanta :
-auto -double- int -long-break -else -switch-case -enum -register -typedef-char -extern -return -union-const -float -short -unsigned-continue -for -signed -void-default -goto -sizeof -volatile-do -if -static -while
VARIABLE SCOPE
Global variable dan constant dapat diakses di seluruh bagian program.
Local variable dan constant hanya dapat diakses didalam fungsi tempat dideklarasikannya.
Type Variable
Karena memori microcontroller relatif terbatas maka kita harus menggunakan type memory yg sesuai kebutuhan.
.
CONTROL STATEMENT
- While Loop
{
statement1;
statement2;
…..
}
atau jika satement hanya 1 baris statement tdk perlu di berikurung { }
while(expression)
statement;
- Do/While Loop
{
statement1;
statement2;
…
}
while (expression); // jika ekspresi true , jalankan kembali perulangan.
atau jika satement hanya 1 baris
do
statement;
while (expression);
- For Loop
{
statement1;
statement2;
…
}
atau jika satement hanya 1 baris
for(expr1; expr2; expr3)
statement;
- If/Else
{
statement1;
statement2;
…
}
atau jika satement hanya 1 baris
if(expression)
statement;
- SWITCH/CASE
{
case const1: // jika expression = const1 eksekusi staement2 dibawahnya
statement1;
statement2;
case const2: // jika expression = const2 eksekusi statemenibawahnya
statement3;
statement4;
case constX: // jika espression=constX eksekusi statemen dibawahnya
statement5;
statement6;
default:
statement7; // jika ekspression tdk sama dgn const1,cons2, dan constX
statement8;
}
- BREAK, CONTINUE,AND GOTO
Break
break statement digunakan untuk keluar dari pengulangan for, while, do/while, atau switch . break keluar dari blok pengulangan dimana dia berada saja.
Continue
continue akan menyebabkan program memulai iterasi berikutnya dari statemen pengulangan while,
do/while, atau for loop. continue sama seperti break pengulangan akan berhenti pada point yg dituju (di skip), bedanya continue akan memulai loop lagi, dari atas, sedangkan break memaksa keluar dari loop / pengulangan .contoh
1
2
3
4
5
6
7
8
9
10
11
12
13
| #include "stdio.h" int main(void) { int i; for(i; i&lt;7; i++) { if(i==3) continue; printf(%d, i ) } } |
.
OPERATOR DAN EXPRESSI
- Operator Penugasan ( “=” )
Variable = nilai , contoh nilai_max = 10;
- Operator Arithmetic :
Pembagian /
Modulo %
Penjumlahan +
Pengurangan atau Negasi –
- Operator Logika
OR ||
- Operator relasional
tdk sama dengan !=
lebih kecil <
lebih kecil atau sama dengan <=
lebih besar >
lebih besar atau sama dengan >=
- increment
misal ++X atau X++ artinya X = X+1
perbedaaanya adalah untuk ++X , tambahkan dulu nilai X dgn 1 baru di proses baris kode tsb, sedangkan X++ , proses dulu baris code baru tambahkan nilai X dgn 1
- deccrement
misal –Y atau Y– artinya Y = X-1
perbedaaanya adalah untuk –Y , kurangi dulu nilai Y dgn 1 baru di proses baris kode tsb, sedangkan Y– , proses dulu baris code tsb baru kurangi nilai Y dgn 1
- Compound
a += 3; artinya a = a + 3
b -= 3; artinya b = b – 3
c *= 3; artinya c = c * 3
d /= a; artinya d = d / a
a |= 3; artinya a = a OR 3
b &= 3; artinya b = b AND 3
c ^= 3; artinya c = c ^ 3
PORTD &= 3; artinya PORTD = PORTD & 3
- kondisonal Expressi
expression_B;
else
expression_C;
baris kode diatas bisa digantikan oleh kondisional expressi:
expression_A ? expression_B : expression_C;
contoh : (A > 10) ? x = 5 : x =22;
kondisional expresi diatas artinya sama dengan :
IF(A>10)
{
x=5;
}
Else
{
x= 22
}
- Operator geser bit
contoh
unsigned char B = 2 // dalam biner 0000 0010
unsigned char C;
C = B << 1; // C = 7 dalam biner = 0000 0100
Geser kanan >>
contoh
unsigned char X = 2 // 2 dalam biner =0000 0010
unsigned char Y;
Y = X >> 1; // Y= 1 dalam biner= 0000 0001
FUNGSI
yang dimaksud fungsi adalah sebuah blok statement yg melaksanakan tugas tertentu dan bisa
dipakai lebih dari 1 kali di dlm program.
program bahasa C terdiri dari fungsi fungsi dan sebuah program c minimal terdiri dari 1 fungsi yaitu fungsi main().
fungsi Main() dijalankan pertama kali saat program dijalankan.
fungsi terdiri dari dua bagian utama yaitu kepala fungsi dan blok fungsi
berikut ini bentuk umum sebuah fungsi adalah :
type nama_fungsi (type paramameter)
{
statement
}
kepala fungsi terdiri dari type return value, nama fungsi , types dan nama parameter(jika ada) .
Statement di blok fungsi menyatakan apa yg fungsi harus lakukan.
jika return value atau parameter tdk ada maka typenya ditulis void seperti dibawah ini
void nama_fungsi (void)
{
statement
}
.
PROTOTYPE FUNGSI
seperti variable fungsi juga mesti diberitahukan ke kompiler sebelum dipangggil di dlm program.
caranya yaitu dengan membuat prototype fungsi dan deklarasi fungsi seperti contoh berikut:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| // prototype fungsi int fungsiku(int, int); int var1, var2, var3; // deklarasi global variable void main(void) // main { var3 = fungsiku(&var1,& var2); } //deklarasi fungsi int fungsiku(int x, int y) { return } |
compiler C menyediakan sebagian fungsi fungsi yang siap kita pakai, prototype fungsi fungsi tsb disimpan di file header (*.h) sedangkan deklarasi fungsinya ada di file lain biasanya di file berextensi *.lib
File header ini hanya berisi prototype-prototype fungsim berikut contoh isi file header stdio.h ,
char getchar(void);
void putchar(char c);
void puts(char *str);
void putsf(char flash *str);
void printf(char flash *fmtstr,…);
dst….
deklarasi fungsi fungsi di atas ada di file stdio.lib
.
POINTER
Pointer adalah variable yg berisi alamat atau lokasi variable , konstanta atau fungsi.
sebuah variable dijadikan pointer dgn menambahkan operator * didepannya.
int *P artinya pointer P menunjuk ke sebuah data bertype integer.
char *X artinya pointer X menunjuk ke sebuah data bertype char.
contoh :
int var1 : var1 adalah variable bertype int
int *p : p adalah pointer ke variable bertype int
supaya pointer p menunjuk ke var1 , kita harus memberikan alamat var1 ke pointer p dgn cara:
p = &var1 ( &var1 artinya alamat var1 )
jadi sekarang pointer p merujuk ke var1 penulisannya:
*p = var1
sekarang kita lihat contoh fungsi dengan parameter pointer
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| #include int var1,var2,var3; int jumlah(*var1, *var2,); // prototype fungsi jumlah main() { var3 = jumlah(&var1, &var3); // nilai yg dibeikan ke parameter adalah alamat variable var1 dan var2 } //definisi fungsi jumlah dengan parameter berupa pointer *var1 dan *var2 int jumlah(*var1, *var2,); { return var1 + var2 } |
int scanf(char* format,arg1,arg2,…);
int sscanf(char* string, char*format, arg1,arg2,…);
int fscanf(FILE* fp,char* format,arg1,arg2,…);
Memasukkan data keyboard dalam C menggunakan fungsi scanf.
Menggunakan scanf dapat menentukan variables dan penentu format, seperti %d untuk integer.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
| #include main() { int i,j,k; printf("masukan 2 angka :"); scanf("%d%d",&i,&j); k = i + j; printf("jumlah kedua angka tsb adalah %d \n",k); } |
jumlah kedua angka tsb adalah 7•Scanf digunakan untuk mengambil input data
•Dalam scanf harus ditentukan alamat variables (&i, &j) yang akan menerima input data
•Sebelum menentukan variables harus ditentukan penentu formatnya
•Misal integer menggunakan %d sejumlah variables
Perlu diingat dalam menggunakan scanf
Ditentukan alamat variable, seperti &i, &j
Ditentukan penentu format sejumlah variable yang digunakan dalam scanf
FUNGSI OUTPUT STDANARD
int printf(char* format, arg1, arg2,…);
int sprintf(char* string, char* format, arg1,arg2,…);
int fprintf(FILE* fp, char* format, arg1, arg2,…);
dengan format specifiers :
%d – int (sama dgn %i)
%ld – long int (sama dgn %li)
%f – float
%lf – double
%c – char
%s – string
%x – hexadecimal
contoh
1
2
3
4
5
6
7
8
9
10
11
12
| #include "stdio.h" int main(void) { int a; printf("masukan angka: "); scanf("%d", &a); printf("angka yg diinput= %d\n", a); return 0; } |
Langkah langkah pengaksesan file :
1. Buat pointer ke struct File ,
misal : File *pointer_file
2. file dibuka dgn fungsi fopen(namafile,mode)
misal : fopen(“namafile.txt”,”r”)
mode akses file antar lain:
“r” artinya file hanya untuk dibaca .
“w” artinya buat file baru untuk ditulis
“a” artinya isi file bisa ditambah
“r+” artinya file bisa ditulis dan dibaca
“w+” artinya file bisa dibaca dan ditulis. jika ada file yg sama akan di replace.
“a+” artinya file akan dibaca atau ditulis. jika file tdk ada file baru akan dibuat.
3. file dibaca / ditulis /edit dgn fungsi fungsi : fputc,fgetc,fputs,fgets,fscanf, fprintf, fseek, putc, getc, putw .
misal : fgetc(pointer_file) , atau
fgets(string_bufer, ukuran buffer, pointer_file)
4. setelah selesai dibaca/ditulis kemudian file di tutup.
misal fclosed(pointer_file)
mudah bukan, nanti kita lihat contohnya dibawah
membaca data string dari file dgn fget
deklarasi: char *fgets(char *str, int n, FILE *stream)contoh program:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
| /* buatlah file filetest.txt misal isinya spt ini: 0 1 0 1 2 0 2 0 3 */ #include #include #include #include #include main() { FILE *fp; char baris[20], string1[5], string2[5], string3[5]; int i; fp=fopen(“filetest.txt”,”r”); if (fp==NULL) { printf(“file tdk bisa dibuka\n”); exit(1); } printf(“\n”); printf(“==========================\n”); printf(“isi file : \n”); printf(“==========================\n”); // baca tiap baris sampai fp ga ada char/null i= 0; while (fgets(baris,sizeof baris,fp)!=NULL) { printf(“%s”,baris); // mencetak string baris ke layar i++; } printf(“\n”); printf(“==========================\n”) return(0); } |
Sumber : https://www.petanikode.com/c-syntak/
https://pccontrol.wordpress.com/dasar-pemrograman-c/
Tidak ada komentar:
Posting Komentar