KONSEP DASAR
BAHASA C
3
Tujuan Instruksi Umum (TIU):
Mampu menghasilkan program yang menggunakan berbagai fitur dalam Bahasa C untuk pemecahan masalah yang relatif sederhana.
Tujuan Instruksi Khusus (TIK):
• Mengetahui sejarah Bahasa C
• Mengenal struktur program bahasa C
• Mengetahui pernyataan-pernyataan yang digunakan dalam bahasa C • Mampu membuat program dalam bahasa C • Mengenal standard library bahasa C
• Mampu mengimplementasikan algoritma menjadi program dalam bahasa C
Pembahasan Materi:
• Sejarah bahasa C
• Karakter pembentuk program C • Struktur bahasa C
• Program C sederhana • Header file
• Penulisan program C • Identifier
3.1 Sejarah bahasa C
Bahasa C dikembangkan oleh Dennis Ritchie pada tahun 1972. Akar dari bahasa C adalah bahasa BCPL yang dikembangkan oleh Martin Richards pada tahun 1967. Kemudian berdasar pada bahasa BCPL
ini
Ken Thompson yang
bekerja di Bell Telephone Laboratories (Bell Labs) mengembangkan bahasa B
pada tahun 1970. Saat itu bahasa B telah berhasil diimplementasikan di komputer DEC PDP-7 dengan operating system (OS) UNIX. Untuk lebih jelasnya dapat dilihat pada gambar 3.1.
Pada tahun 1978, Dennis Ritchie bersama dengan Brian Kernighan mempublikasikan
buku yang
kemudian menjadi legenda dalam sejarah perkembangan bahasa C, yang berjudul The C Programming Language . Seiring dengan berkembang pesatnya bahasa C,banyak vendor mengembangkan kompiler C menurut versi masing- masing. Hal ini menggerakkan ANSI ( American National Standards Institute ) pada tahun 1983 untuk membuat suatu komite yang kemudian diberi nama X3J11 , yang betujuan untuk membuat definisi standar bahasa C yang lebih modern dan komprehensif, dengan memperbaiki syntax dan grammar bahasa C. Usaha ini berhasil
17
-----------------------------------------------------Page 1-----------------------------------------------------
diselesaikan
5
tahun
kemudian,
yaitu
ditandai
dengan
lahirnya standard ANSI untuk bahasa C yang
kemudian terkenal dengan sebutan ANSI C pada tahun 1989. Pembakuan ini diperbarui pada tahun 1999 dan tercantum pada dokumen ISO/IEC 9899:1999.
Gambar 3.1 Sejarah Bahasa C
Sampai saat ini, bahasa C telah berhasil digunakan untuk
mengembangkan berbagai jenis
permasalahan pemrograman, dari level operating system (unix, linux, ms dos, dsb), aplikasi perkantoran (text editor, word processor, spreadsheet, dsb), bahkan sampai pengembangan sistem pakar ( expert system ). Kompiler C juga telah tersedia di semua jenis platform komputer, mulai dari Macintosh, UNIX, PC, Micro PC, sampai super komputer.
Bahasa C bisa disebut bahasa pemrograman tingkat menengah ( middle
level programming language ).
Maksud dari tingkat (level) disini adalah kemampuan mengakses fungsi-fungsi dan perintah-perintah dasar bahasa mesin/hardware ( machine basic instruction set ). Semakin tinggi tingkat bahasa pemrograman (misalnya: java), semakin mudahlah bahasa pemrograman dipahami manusia, namun membawa pengaruh semakin berkurang kemampuan untuk mengakses langsung instruksi dasar bahasa mesin. Demikian juga sebaliknya dengan bahasa pemrograman tingkat rendah (misalnya: assembler), yang semakin sulit dipahami manusia dan hanya berisi perintah untuk mengakses bahasa mesin. Dalam perspektif mudahnya dipahami manusia, bahasa C bisa digolongkan dalam bahasa tingkat tinggi, namun C juga menyediakan kemampuan yang ada pada bahasa tingkat rendah, misalnya operasi bit, operasi byte, pengaksesan memori, dsb.
3.2 Alasan menggunakan bahasa C
Sifatnya yang umum dan longgarnya batasan-batasan yang diberikan membuat bahasa C lebih mudah digunakan dan lebih efektif dalam menyelesaikan berbagai permasalahan dibandingkan dengan bahasa-bahasa pemrograman lain. Selain alasan tersebut ada beberapa alasan lain mengapa menggunakan bahasa C, yaitu:
•
C adalah bahasa pemrograman yang memiliki portabilitas tinggi . Program C yang kita tulis untuk satu jenis platform, bisa kita kompile dan jalankan di platform lain dengan tanpa ataupun hanya sedikit perubahan. Ini bisa diwujudkan dengan adanya standarisasi ANSI untuk C.
•
C adalah bahasa pemrograman dengan kata kunci (keyword) sedikit. Kata
kunci
disini
adalah
merupakan fungsi ataupun kata dasar yang disediakan oleh kompiler suatu bahasa pemrograman. Hal ini membawa pengaruh semakin mudahnya kita menulis program dengan C. Pengaruh lain dari sedikitnya kata kunci ini adalah proses eksekusi program C yang sangat cepat. C hanya menyediakan 32 kata kunci seperti terangkum pada tabel 3.1.
18
-----------------------------------------------------Page 2-----------------------------------------------------
Tabel 3.1 Keyword Bahasa C
auto
double
int
struct
break
else
long
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
•
C adalah bahasa pemrograman yang bersifat moduler . Program C ditulis dalam routine yang biasa
dipanggil dengan fungsi. Fungsi-fungsi yang telah kita buat, bisa kita gunakan kembali ( reuse ) dalam program ataupun aplikasi lain.
3.3 Karakter Pembentuk Program C
Program C ditulis dengan menggunakan sebagian dari karakter ASCII (American Standard Code for
Information Interchange), yaitu:
1. Huruf besar: A – Z 2. Huruf kecil: a – z 3. Angka: 0 – 9
4. karakter khusus
Tabel 3.2 Karakter khusus pembentuk program C
! ‘ -
?
{
“ ( . [ }
#
) / \
~
$ * <
] ;
%
+ = ^
:
&
,
> _
spasi
3.4 Struktur Program Bahasa C
Program bahasa C adalah suatu program terdiri dari satu atau lebih fungsi-fungsi. Fungsi utama dan harus ada pada program C yang kita buat adalah fungsi main() . Fungsi main() ini adalah fungsi pertama yang akan diproses pada saat program di kompile dan dijalankan, sehingga bisa disebut sebagai fungsi yang mengontrol fungsi-fungsi lain. Karena struktur program C terdiri dari fungsi-fungsi lain sebagai program bagian
( subroutine ),
maka bahasa C biasa disebut sebagai bahasa
pemrograman
terstruktur . Cara penulisan
fungsi pada program bahasa C adalah dengan memberi nama fungsi dan kemudian dibuka dengan kurang kurawal buka ( { ) dan ditutup dengan kurung kurawal tutup ( } ).
Fungsi-fungsi lain selain fungsi utama bisa dituliskan setelah atau sebelum fungsi utama dengan deskripsi prototype fungsi pada bagian awal program. Bisa juga dituliskan pada file lain yang apabila kita ingin memakai atau memanggil fungsi dalam file lain tersebut, kita harus menuliskan header file -nya, dengan preprocessor directiv e #include . File ini disebut file pustaka ( library file ). Struktur bahasa C dapat dilihat pada gambar 3.2.
19
-----------------------------------------------------Page 3-----------------------------------------------------
#include <stdio.h>
fungsi_lain();
main()
Preprocessor directive
Prototype fungsi lain
{
//statemen;
Fungsi utama
}
fungsi_lain()
{
Fungsi lain
//statemen;
}
Gambar 3.2 Struktur Program C
3.5 Program C Sederhana
Setelah mempelajari struktur dari suatu program C, maka berikut ini akan diberikan beberapa contoh
program sederhana.
(1) Program 1: mencetak “Hello Word !” dengan menggunakan C:
/*Program 1*/ #include <stdio.h>
Perintah #include <stdio.h> memberitahukan compiler untuk menggunakan fungsi standar
void main() {
Hello Word !
input dan output, contoh: fungsi printf().
printf(“Hello Word !”);
}
(2) Program 2: Program Meminta masukan 2 buah bilangan bulat dan menampilkan hasil pengurangan dua
bilangan bulat tersebut.
Mendeklarasikan 2 variabel bertipe
#include <stdio.h>
int main(void) { int a, b;
printf(“Masukkan 2 bilangan : “); scanf(“%i %i”, &a, &b);
printf(“%i - %i = %i\n”, a, b, a-b);
integer (bilangan bulat) “a” dan “b”
Membaca 2 bilangan bulat dan memberikannya ke “a” dan “b”
Mencetak nilai “a”, nilai “b” dan nilai “a – b” dengan format tertentu
}
return 0;
Masukkan 2 bilangan : 23 23 – 11 = 12
11
Digunakan sebagai tanda (flag) bahwa program berakhir dan sukses
Pembahasan kedua program:
1. Untuk memberikan keterangan program, suatu komentar dapat dituliskan bebas dimanapun dalam program C.
Komentar atau keterangan program diawali dengan tanda /* dan diakhiri dengan */
20
-----------------------------------------------------Page 4-----------------------------------------------------
/*Program 1*/
2. Kedua program di atas menggunakan fungsi input dan output standar yaitu fungsi printf() dan scanf() , kedua fungsi tersebut telah disediakan oleh C dan merupakan file pustaka. Supaya fungsi tersebut dapat dikenali oleh program maka prototype dari fungsi-fungsi tersebut harus disebutkan dengan menggunakan predecessor directive #include . Prototype fungsi printf() dan scanf() terdapat pada file judul ( header file ) stdio.h ( extension file .h menyatakan suatu header file ).
3. Semua variabel yang akan digunakan dalam program C harus terlebih dahulu dideklarasikan atau dengan kata lain diperkenalkan. Deklarasi variabel ini dipergunakan untuk pemberitahuan tentang tipe data dan nama dari variabel yang akan digunakan. Contoh program ke-2 menggunakan dua buah variabel yaitu a dan b , dimana keduanya merupakan variabel yang bertipe integer (hanya dapat menampung bilangan bulat).
4. Salah satu cara untuk menampilkan hasil di layar adalah dengan menggunakan statemen yang dibentuk dari fungsi satandar printf() . Dari kedua program di atas dapat dilihat bahwa fungsi printf() dapat dibagi menjadi dua bagian, yaitu bagian yang ditulis diantara tanda petik dua (“…..”) dan bagian yang dituliskan di luar tanda petik dua. Bagian yang dituliskan di luar tanda petik akan menampilkan nilai dari variabel. Pada contoh program 2:
printf(“%i - %i
= %i \n”, a, b, a-b)
Variabel
Escape character
Kode format Literal string
Sedangkan untuk bagian yang berada diantara tanda petik dua adalah sebagai berikut: a. Kode format.
Kode format menunjukkan format dari variabel yang akan ditampilkan nilainya.
b. Literal string. Literal string adalah suatu konstanta string yang akan akan ditampilkan sesuai dengan apa
yang dituliskan.
c.
Escape character. Karakter escape merupakan suatu konstanta karakter yang diawali dengan tanda back
slash ( \ ). Karakter escape “\n” ang digunkan fungsi printf() digunakan untuk menggeser posisi kursor turun satu baris kembali ke kolom pertama.
5. Salah satu cara untuk memasukkan data dari keyboard adalah dengan menggunakan fungsi pustaka scanf() . Pada fungsi scanf(), bagian yang ditulis diantara tanda petik dua adalah kode format dan yang ditulis di luar tanda petik dua adalah variabel yang akan menerima nilai yang diketikkan dari keyboard. Untuk fungsi scanf(), nama variabelnya harus diawali operator pointer & , sehingga pada contoh program 2 di atas variabel a dan variabel b dituliskan menjadi &a dan &b . Penggunaan operator pointer & tidak berlaku untuk variabel yang string.
3.6 File Judul ( Header File )
File judul merupakan file yang berisi dengan prototype (judul, nama dan sintaks) dari sekumpulan fungsi- fungsi pustaka tertentu. File judul hanya berisi prototype dari fungsi-fungsi pustaka, sedangkan fungsi-fungsi pustakanya sendiri disimpan di file pustaka ( library file ) dengan extension file -nya adalah .lib .
21
-----------------------------------------------------Page 5-----------------------------------------------------
Sebelumnya telah dibahas tentang file judul stdio.h yang berisi prototype dari fungsi printf() dan scanf(). Contoh file judul lainnya adalah file judul math.h yang berisi prototype fungsi-fungsi pustaka untuk operasi matematika. Untuk menyertakan file judul di dalam program C dapat menggunakan dua cara, yaitu:
#include <stdio.h>
atau
#include “stdio.h”
Nama dari file judul yang ditulis dalam tanda petik dua, compiler C akan mencari file ini di default direktori dan kemudian baru ke direktori file-file pustaka. Jika menggunakan tanda <>, maka compiler C hanya akan mencari filenya dalam direktori file-file pustaka saja.
3.7 Penulisan Program C
Dalam menuliskan program dalam bahasa C spasi ke dalam ataupun spasi baris dan tab dapat digunakan untuk memudahkan pembacaan dan pembuatan program. Penggunaan spasi kosong ataupun baris kosong tidak akan mempengaruhi program karena compiler C akan mengabaikan spasi atau baris yang kosong. Penulisan dengan tanpa memberikan spasi ataupun jarak baris juga benar, tetapi penulisan seperti itu tidak terlalu baik karena selainmenyulitkan pembacaan program juga menyulitkan programmer dalam penelusuran program, terutama untuk program denga jumlah baris atau perintah yang banyak. Bandingkan kedua program ini:
#include <stdio.h> main(){ int a;
printf(“Masukkan bilangan : ”); scanf(“%d”,&a); printf(“\n%d kuadrat = %d”, a, a*a); }
Masukkan bilangan : 5
#include <stdio.h>
5 kuadrat = 25
main() {
int a;
printf(“Masukkan bilangan : ”); scanf(“%d”,&a);
printf(“\n%d kuadrat = %d”, a, a*a);
}
Kedua program di atas mempunyai perintah yang sama dan akan menghasilkan keluaran yang sama, tetapi jika dilihat sekilas maka program pertama aga sulit dibaca dan dimengerti, sedangkan pada program kedua selain tampilan program terlihat lebih menarik juga memudahkan dalam pembacaan dan pemahaman program. Suatu statemen di program C dapat ditulis dalam beberapa baris penulisan. Akhir dari suatu baris yang menggunakan tanda ‘\’ menunjukkan bahwa baris selanjutnya merupakan baris sambungannya. Contoh:
printf(“ini adalah contoh pemecahan statemen karena statemen \
yang cukup panjang untuk dituliskan dalam satu baris saja \n”);
Atau dapat ditulis sebagai berikut:
22
-----------------------------------------------------Page 6-----------------------------------------------------
printf(“ini adalah contoh pemecahan statemen karena statemen” \
“yang cukup panjang untuk dituliskan dalam satu baris saja \n”);
Hal yang penting :
- Setiap statemen atau perintah dalam bahasa C harus diakhiri titik koma (;).
- C merupakan bahasa dengan format yang cukup bebas, maksudnya anda dapat memecah perintah menjadi dua baris tetapi jangan meletakkan titik koma diantaranya. Selain itu dalam satu baris juga diperbolehkan terdiri dari dua atau lebih perintah, tetapi ingat harus meletakkan titik koma untuk memisahkan perintah- perintah tersebut.
- Bahasa C merupakan bahasa yang case sensitive . Maksudnya adalah penulisan huruf besar akan dianggap
berbeda dengan huruf kecil. Contoh, kata int tidak sama dengan INT dan tidak sama dengan Int .
- Semua kata kunci (keywords)dan fungsi-fungsi pustaka standar (standard library function) menggunakan
huruf kecil.
- Komentar dalam program dapat ditulis dengan diawali tanda /* dan diakhiri tanda */ atau hanya diawali tanda
// untuk penulisan komentar satu baris.
3.8 Identifier
Nama pengenal (identifier name) adalah nama berbagai elemen program, seperti: nama variabel, nama konstanta, nama fungsi, nama tipe data dan lainnya. Nama-nama pengenal dapat ditentukan sendiri, dengan ketentuan sebagai berikut:
1. Panjangnya dapat berupa 1 karakter atau lebih, tetapi hanya 32 karakter pertama yang dikenal. Sebagai
contoh, misalnya nama variabel:
Nilai_mahasiswa_yang_mengambil_matakuliah_AlProg1
Nilai_mahasiswa_yang_mengambil_matakuliah_BasisData
(49 karakter) (51 karakter)
Nama variabel pertama akan dianggap sama dengan nama variabel kedua karena ke-32 karakter pertama untuk kedua nama variabel di atas adalah sama, yaitu:
Nilai_mahasiswa_yang_mengambil_m
2. Karakter pertama harus berupa huruf atau karakter garis bawah (_).
Berikut ini adalah pengenal yang salah:
6angka
@nggota
(salah, karena diawali dengan angka)
(salah, karena diawali dengan karakter khusus @)
Sedangkan berikut ini adalah pengenal yang benar:
_6angka
angota1
3. Tidak boleh mengandung karakter-karakter khusus dan blank (spasi) kecuali garis bawah.
Berikut ini adalah pengenal yang salah:
Nilai-mahasiswa
(salah, karena mengandung karakter -)
23
-----------------------------------------------------Page 7-----------------------------------------------------
Dollar$
No telp
(salah, karena mengandung karakter $)
(salah, karena ada spasi)
Sedangkan berikut ini adalah pengenal yang benar:
Nilai_mahasiswa
NoTelp
4. Huruf besar dan huruf kecil dianggap berbeda
_mahasiswa ≠ _Mahasiswa
X1 ≠ x1
5. Tidak boleh sama dengan keyword . Keyword adalah identifier yang telah didefinisikan sebelumnya oleh Bahasa C. Keyword pada bahasa C adalah reserved word artinya dicadangkan dan tidak boleh digunakan untuk keperluan lain. (kata-kata apa saja yang tidak dapat digunkan dapat dilihat pada tabel 3.1 di atas).
3.9 Preprocessor Directive #define
Bahasa C menyediakan preprocessor directive #define untuk mendefinisikan konstanta, makro maupun nama. Preprocessor directive #define dapat diletakan did alam program yang sama atau diletakkan di file terpisah dengan programnya.
Contoh penggunaan preprocessor directive #define untuk mendefinisikan sebuah konstanta nama dengan
nilai tetap “Ayumi Fakhira”.
#include <stdio.h>
#define nama “Ayumi Fakhira”
main()
{
Ayumi Fakhira
printf(nama);
}
Latihan:
1. Lengkapi pernyataan di bawah ini dengan mengisi bagian yang kosong. a. Setiap program C akan dijalankan pertamakali pada fungsi _____.
b. ____merupakan pernyataan untuk memulai sebuah fungsi dan ____ merupakan pernyataan untuk akhir
sebuah fungsi.
c.
Setiap pernyataan dalam program C diakhir oleh _______.
d. Fungsi ______ merupakan fungsi pustaka standar untuk menampilkan informasi di layer.
e. Fungsi _____ merupakan fungsi pustaka standar yang digunakan untuk menerima masukan data dari
keyboard.
24
-----------------------------------------------------Page 8-----------------------------------------------------
2. Berikan pernyataan benar atau salah untuk peryataan-pernyataan di bawah ini. Jika dianggap salah, jelaskan
alasannya.
a. Saat fungsi printf() digunakan akan selalu menampilkannya di awal baris.
b. Program akan menampilkan teks yang berada diantara tanda /* dan */ di layar saat program tersebut
dijalankan.
c.
Karakter escape \n saat digunakan pada fungsi printf() akan menyebabkan posisi kursor berpindah ke
baris baru.
d. Nama variabel _123bilangan adalah penamaan variabel yang salah. e. Penamaan kedua variabel di bawah ini dianggap berbeda:
No_telp_pegawaiBaru_kantorPos_kebayoran
No_telp_pegawaiBaru_kantorPos_kebagusan
3. Tuliskan perintah atau statemen dalam bahasa C untuk pernyataan-pernyataan di bawah ini:
a. Mendeklarasikan variabel x , variabel y , variabel z dan variabel hasil agar dapat menampung bilangan
bulat.
b. Menampilkan pernyataan untuk memasukkan tiga buah bilangan di layar.
c.
Membaca tiga nilai yang bertipe integer dan memberikannya kepada variabel x , y dan z .
d. Menjumlahkan tiga nilai yang bertipe integer dari variabel x , y dan z kemudian memberikan hasil
penghitungan tersebut kepada variabel hasil .
e. Tampilkan di layar monitor “ Hasil penjumlahan bilangan = “ diikuti dengan nilai dari variabel hasil .
Tugas Mandiri:
1. Periksalah program di bawah ini ( terdiri dari 5 baris) dan benarkan jika terdapat kesalahan dari setiap
barisnya.
a. #include <STDIO.H> b. { main()
c.
printf(“Program latihan” \n “masukkan 2 bilangan : “);
d. scanf(“%d %d”, &n1, n2);
e. printf(“Nilai 1 adalah %d\n”, &n1); }
2. Buatlah program dalam bahasa C untuk algoritma di bawah ini:
a. Deklarasikan tiga buah variabel pj , lb dan hasil .
b. Tampilkan pesan untuk memasukkan sebuah nilai berupa bilangan bulat.
c.
Input nilai yang dimasukkan dari keyboard dan berikan kepada variabel pj.
d. Tampilkan pesan kembali untuk meminta memasukkan sebuah bilangan bulat. e. Input nilai yang dimasukkan dari keyboard dan berikan kepada variabel lb.
f.
Lakukan proses perkalian nilai pj dengan nilai lb dan berikan hasil penghitungan tersebut ke variabel hasil.
g. Tampilkan hasil di layar monitor “Hasil = “ diikuti dengan nilai dari variabel hasil.
===============
25
-----------------------------------------------------Page 9-----------------------------------------------------
Referensi:
Achmad Solichin, Pemrograman Bahasa C dengan Turbo C , www.ilmukomputer.com , 2003
Antony Pranata, Algoritma dan Pemrograman , J&J Learning, Yogyakarta, 2000
Cheltenham Computer Training, C Programming , www.cctglobal.com , United Kingdom, 1997
Deitel & Deitel, C How to Program 3rd Edition , Prentice Hall, New Jersey, 2001
Jogiyanto, Konsep Dasar Pemrograman Bahasa C , Andi Offset, Yogyakarta, 1993
Rinaldi Munir, Algoritma & Pemrograman Dalam Bahasa Pascal dan C , Informatika Bandung, 2002
Thompson Susabda Ngoen, Pengantar Algoritma dengan Bahasa C , Salemba Teknika, Jakarta, 2004
☺☺☺
26
-----------------------------------------------------Page 10-----------------------------------------------------
BAHASA C
3
Tujuan Instruksi Umum (TIU):
Mampu menghasilkan program yang menggunakan berbagai fitur dalam Bahasa C untuk pemecahan masalah yang relatif sederhana.
Tujuan Instruksi Khusus (TIK):
• Mengetahui sejarah Bahasa C
• Mengenal struktur program bahasa C
• Mengetahui pernyataan-pernyataan yang digunakan dalam bahasa C • Mampu membuat program dalam bahasa C • Mengenal standard library bahasa C
• Mampu mengimplementasikan algoritma menjadi program dalam bahasa C
Pembahasan Materi:
• Sejarah bahasa C
• Karakter pembentuk program C • Struktur bahasa C
• Program C sederhana • Header file
• Penulisan program C • Identifier
3.1 Sejarah bahasa C
Bahasa C dikembangkan oleh Dennis Ritchie pada tahun 1972. Akar dari bahasa C adalah bahasa BCPL yang dikembangkan oleh Martin Richards pada tahun 1967. Kemudian berdasar pada bahasa BCPL
ini
Ken Thompson yang
bekerja di Bell Telephone Laboratories (Bell Labs) mengembangkan bahasa B
pada tahun 1970. Saat itu bahasa B telah berhasil diimplementasikan di komputer DEC PDP-7 dengan operating system (OS) UNIX. Untuk lebih jelasnya dapat dilihat pada gambar 3.1.
Pada tahun 1978, Dennis Ritchie bersama dengan Brian Kernighan mempublikasikan
buku yang
kemudian menjadi legenda dalam sejarah perkembangan bahasa C, yang berjudul The C Programming Language . Seiring dengan berkembang pesatnya bahasa C,banyak vendor mengembangkan kompiler C menurut versi masing- masing. Hal ini menggerakkan ANSI ( American National Standards Institute ) pada tahun 1983 untuk membuat suatu komite yang kemudian diberi nama X3J11 , yang betujuan untuk membuat definisi standar bahasa C yang lebih modern dan komprehensif, dengan memperbaiki syntax dan grammar bahasa C. Usaha ini berhasil
17
-----------------------------------------------------Page 1-----------------------------------------------------
diselesaikan
5
tahun
kemudian,
yaitu
ditandai
dengan
lahirnya standard ANSI untuk bahasa C yang
kemudian terkenal dengan sebutan ANSI C pada tahun 1989. Pembakuan ini diperbarui pada tahun 1999 dan tercantum pada dokumen ISO/IEC 9899:1999.
Gambar 3.1 Sejarah Bahasa C
Sampai saat ini, bahasa C telah berhasil digunakan untuk
mengembangkan berbagai jenis
permasalahan pemrograman, dari level operating system (unix, linux, ms dos, dsb), aplikasi perkantoran (text editor, word processor, spreadsheet, dsb), bahkan sampai pengembangan sistem pakar ( expert system ). Kompiler C juga telah tersedia di semua jenis platform komputer, mulai dari Macintosh, UNIX, PC, Micro PC, sampai super komputer.
Bahasa C bisa disebut bahasa pemrograman tingkat menengah ( middle
level programming language ).
Maksud dari tingkat (level) disini adalah kemampuan mengakses fungsi-fungsi dan perintah-perintah dasar bahasa mesin/hardware ( machine basic instruction set ). Semakin tinggi tingkat bahasa pemrograman (misalnya: java), semakin mudahlah bahasa pemrograman dipahami manusia, namun membawa pengaruh semakin berkurang kemampuan untuk mengakses langsung instruksi dasar bahasa mesin. Demikian juga sebaliknya dengan bahasa pemrograman tingkat rendah (misalnya: assembler), yang semakin sulit dipahami manusia dan hanya berisi perintah untuk mengakses bahasa mesin. Dalam perspektif mudahnya dipahami manusia, bahasa C bisa digolongkan dalam bahasa tingkat tinggi, namun C juga menyediakan kemampuan yang ada pada bahasa tingkat rendah, misalnya operasi bit, operasi byte, pengaksesan memori, dsb.
3.2 Alasan menggunakan bahasa C
Sifatnya yang umum dan longgarnya batasan-batasan yang diberikan membuat bahasa C lebih mudah digunakan dan lebih efektif dalam menyelesaikan berbagai permasalahan dibandingkan dengan bahasa-bahasa pemrograman lain. Selain alasan tersebut ada beberapa alasan lain mengapa menggunakan bahasa C, yaitu:
•
C adalah bahasa pemrograman yang memiliki portabilitas tinggi . Program C yang kita tulis untuk satu jenis platform, bisa kita kompile dan jalankan di platform lain dengan tanpa ataupun hanya sedikit perubahan. Ini bisa diwujudkan dengan adanya standarisasi ANSI untuk C.
•
C adalah bahasa pemrograman dengan kata kunci (keyword) sedikit. Kata
kunci
disini
adalah
merupakan fungsi ataupun kata dasar yang disediakan oleh kompiler suatu bahasa pemrograman. Hal ini membawa pengaruh semakin mudahnya kita menulis program dengan C. Pengaruh lain dari sedikitnya kata kunci ini adalah proses eksekusi program C yang sangat cepat. C hanya menyediakan 32 kata kunci seperti terangkum pada tabel 3.1.
18
-----------------------------------------------------Page 2-----------------------------------------------------
Tabel 3.1 Keyword Bahasa C
auto
double
int
struct
break
else
long
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
•
C adalah bahasa pemrograman yang bersifat moduler . Program C ditulis dalam routine yang biasa
dipanggil dengan fungsi. Fungsi-fungsi yang telah kita buat, bisa kita gunakan kembali ( reuse ) dalam program ataupun aplikasi lain.
3.3 Karakter Pembentuk Program C
Program C ditulis dengan menggunakan sebagian dari karakter ASCII (American Standard Code for
Information Interchange), yaitu:
1. Huruf besar: A – Z 2. Huruf kecil: a – z 3. Angka: 0 – 9
4. karakter khusus
Tabel 3.2 Karakter khusus pembentuk program C
! ‘ -
?
{
“ ( . [ }
#
) / \
~
$ * <
] ;
%
+ = ^
:
&
,
> _
spasi
3.4 Struktur Program Bahasa C
Program bahasa C adalah suatu program terdiri dari satu atau lebih fungsi-fungsi. Fungsi utama dan harus ada pada program C yang kita buat adalah fungsi main() . Fungsi main() ini adalah fungsi pertama yang akan diproses pada saat program di kompile dan dijalankan, sehingga bisa disebut sebagai fungsi yang mengontrol fungsi-fungsi lain. Karena struktur program C terdiri dari fungsi-fungsi lain sebagai program bagian
( subroutine ),
maka bahasa C biasa disebut sebagai bahasa
pemrograman
terstruktur . Cara penulisan
fungsi pada program bahasa C adalah dengan memberi nama fungsi dan kemudian dibuka dengan kurang kurawal buka ( { ) dan ditutup dengan kurung kurawal tutup ( } ).
Fungsi-fungsi lain selain fungsi utama bisa dituliskan setelah atau sebelum fungsi utama dengan deskripsi prototype fungsi pada bagian awal program. Bisa juga dituliskan pada file lain yang apabila kita ingin memakai atau memanggil fungsi dalam file lain tersebut, kita harus menuliskan header file -nya, dengan preprocessor directiv e #include . File ini disebut file pustaka ( library file ). Struktur bahasa C dapat dilihat pada gambar 3.2.
19
-----------------------------------------------------Page 3-----------------------------------------------------
#include <stdio.h>
fungsi_lain();
main()
Preprocessor directive
Prototype fungsi lain
{
//statemen;
Fungsi utama
}
fungsi_lain()
{
Fungsi lain
//statemen;
}
Gambar 3.2 Struktur Program C
3.5 Program C Sederhana
Setelah mempelajari struktur dari suatu program C, maka berikut ini akan diberikan beberapa contoh
program sederhana.
(1) Program 1: mencetak “Hello Word !” dengan menggunakan C:
/*Program 1*/ #include <stdio.h>
Perintah #include <stdio.h> memberitahukan compiler untuk menggunakan fungsi standar
void main() {
Hello Word !
input dan output, contoh: fungsi printf().
printf(“Hello Word !”);
}
(2) Program 2: Program Meminta masukan 2 buah bilangan bulat dan menampilkan hasil pengurangan dua
bilangan bulat tersebut.
Mendeklarasikan 2 variabel bertipe
#include <stdio.h>
int main(void) { int a, b;
printf(“Masukkan 2 bilangan : “); scanf(“%i %i”, &a, &b);
printf(“%i - %i = %i\n”, a, b, a-b);
integer (bilangan bulat) “a” dan “b”
Membaca 2 bilangan bulat dan memberikannya ke “a” dan “b”
Mencetak nilai “a”, nilai “b” dan nilai “a – b” dengan format tertentu
}
return 0;
Masukkan 2 bilangan : 23 23 – 11 = 12
11
Digunakan sebagai tanda (flag) bahwa program berakhir dan sukses
Pembahasan kedua program:
1. Untuk memberikan keterangan program, suatu komentar dapat dituliskan bebas dimanapun dalam program C.
Komentar atau keterangan program diawali dengan tanda /* dan diakhiri dengan */
20
-----------------------------------------------------Page 4-----------------------------------------------------
/*Program 1*/
2. Kedua program di atas menggunakan fungsi input dan output standar yaitu fungsi printf() dan scanf() , kedua fungsi tersebut telah disediakan oleh C dan merupakan file pustaka. Supaya fungsi tersebut dapat dikenali oleh program maka prototype dari fungsi-fungsi tersebut harus disebutkan dengan menggunakan predecessor directive #include . Prototype fungsi printf() dan scanf() terdapat pada file judul ( header file ) stdio.h ( extension file .h menyatakan suatu header file ).
3. Semua variabel yang akan digunakan dalam program C harus terlebih dahulu dideklarasikan atau dengan kata lain diperkenalkan. Deklarasi variabel ini dipergunakan untuk pemberitahuan tentang tipe data dan nama dari variabel yang akan digunakan. Contoh program ke-2 menggunakan dua buah variabel yaitu a dan b , dimana keduanya merupakan variabel yang bertipe integer (hanya dapat menampung bilangan bulat).
4. Salah satu cara untuk menampilkan hasil di layar adalah dengan menggunakan statemen yang dibentuk dari fungsi satandar printf() . Dari kedua program di atas dapat dilihat bahwa fungsi printf() dapat dibagi menjadi dua bagian, yaitu bagian yang ditulis diantara tanda petik dua (“…..”) dan bagian yang dituliskan di luar tanda petik dua. Bagian yang dituliskan di luar tanda petik akan menampilkan nilai dari variabel. Pada contoh program 2:
printf(“%i - %i
= %i \n”, a, b, a-b)
Variabel
Escape character
Kode format Literal string
Sedangkan untuk bagian yang berada diantara tanda petik dua adalah sebagai berikut: a. Kode format.
Kode format menunjukkan format dari variabel yang akan ditampilkan nilainya.
b. Literal string. Literal string adalah suatu konstanta string yang akan akan ditampilkan sesuai dengan apa
yang dituliskan.
c.
Escape character. Karakter escape merupakan suatu konstanta karakter yang diawali dengan tanda back
slash ( \ ). Karakter escape “\n” ang digunkan fungsi printf() digunakan untuk menggeser posisi kursor turun satu baris kembali ke kolom pertama.
5. Salah satu cara untuk memasukkan data dari keyboard adalah dengan menggunakan fungsi pustaka scanf() . Pada fungsi scanf(), bagian yang ditulis diantara tanda petik dua adalah kode format dan yang ditulis di luar tanda petik dua adalah variabel yang akan menerima nilai yang diketikkan dari keyboard. Untuk fungsi scanf(), nama variabelnya harus diawali operator pointer & , sehingga pada contoh program 2 di atas variabel a dan variabel b dituliskan menjadi &a dan &b . Penggunaan operator pointer & tidak berlaku untuk variabel yang string.
3.6 File Judul ( Header File )
File judul merupakan file yang berisi dengan prototype (judul, nama dan sintaks) dari sekumpulan fungsi- fungsi pustaka tertentu. File judul hanya berisi prototype dari fungsi-fungsi pustaka, sedangkan fungsi-fungsi pustakanya sendiri disimpan di file pustaka ( library file ) dengan extension file -nya adalah .lib .
21
-----------------------------------------------------Page 5-----------------------------------------------------
Sebelumnya telah dibahas tentang file judul stdio.h yang berisi prototype dari fungsi printf() dan scanf(). Contoh file judul lainnya adalah file judul math.h yang berisi prototype fungsi-fungsi pustaka untuk operasi matematika. Untuk menyertakan file judul di dalam program C dapat menggunakan dua cara, yaitu:
#include <stdio.h>
atau
#include “stdio.h”
Nama dari file judul yang ditulis dalam tanda petik dua, compiler C akan mencari file ini di default direktori dan kemudian baru ke direktori file-file pustaka. Jika menggunakan tanda <>, maka compiler C hanya akan mencari filenya dalam direktori file-file pustaka saja.
3.7 Penulisan Program C
Dalam menuliskan program dalam bahasa C spasi ke dalam ataupun spasi baris dan tab dapat digunakan untuk memudahkan pembacaan dan pembuatan program. Penggunaan spasi kosong ataupun baris kosong tidak akan mempengaruhi program karena compiler C akan mengabaikan spasi atau baris yang kosong. Penulisan dengan tanpa memberikan spasi ataupun jarak baris juga benar, tetapi penulisan seperti itu tidak terlalu baik karena selainmenyulitkan pembacaan program juga menyulitkan programmer dalam penelusuran program, terutama untuk program denga jumlah baris atau perintah yang banyak. Bandingkan kedua program ini:
#include <stdio.h> main(){ int a;
printf(“Masukkan bilangan : ”); scanf(“%d”,&a); printf(“\n%d kuadrat = %d”, a, a*a); }
Masukkan bilangan : 5
#include <stdio.h>
5 kuadrat = 25
main() {
int a;
printf(“Masukkan bilangan : ”); scanf(“%d”,&a);
printf(“\n%d kuadrat = %d”, a, a*a);
}
Kedua program di atas mempunyai perintah yang sama dan akan menghasilkan keluaran yang sama, tetapi jika dilihat sekilas maka program pertama aga sulit dibaca dan dimengerti, sedangkan pada program kedua selain tampilan program terlihat lebih menarik juga memudahkan dalam pembacaan dan pemahaman program. Suatu statemen di program C dapat ditulis dalam beberapa baris penulisan. Akhir dari suatu baris yang menggunakan tanda ‘\’ menunjukkan bahwa baris selanjutnya merupakan baris sambungannya. Contoh:
printf(“ini adalah contoh pemecahan statemen karena statemen \
yang cukup panjang untuk dituliskan dalam satu baris saja \n”);
Atau dapat ditulis sebagai berikut:
22
-----------------------------------------------------Page 6-----------------------------------------------------
printf(“ini adalah contoh pemecahan statemen karena statemen” \
“yang cukup panjang untuk dituliskan dalam satu baris saja \n”);
Hal yang penting :
- Setiap statemen atau perintah dalam bahasa C harus diakhiri titik koma (;).
- C merupakan bahasa dengan format yang cukup bebas, maksudnya anda dapat memecah perintah menjadi dua baris tetapi jangan meletakkan titik koma diantaranya. Selain itu dalam satu baris juga diperbolehkan terdiri dari dua atau lebih perintah, tetapi ingat harus meletakkan titik koma untuk memisahkan perintah- perintah tersebut.
- Bahasa C merupakan bahasa yang case sensitive . Maksudnya adalah penulisan huruf besar akan dianggap
berbeda dengan huruf kecil. Contoh, kata int tidak sama dengan INT dan tidak sama dengan Int .
- Semua kata kunci (keywords)dan fungsi-fungsi pustaka standar (standard library function) menggunakan
huruf kecil.
- Komentar dalam program dapat ditulis dengan diawali tanda /* dan diakhiri tanda */ atau hanya diawali tanda
// untuk penulisan komentar satu baris.
3.8 Identifier
Nama pengenal (identifier name) adalah nama berbagai elemen program, seperti: nama variabel, nama konstanta, nama fungsi, nama tipe data dan lainnya. Nama-nama pengenal dapat ditentukan sendiri, dengan ketentuan sebagai berikut:
1. Panjangnya dapat berupa 1 karakter atau lebih, tetapi hanya 32 karakter pertama yang dikenal. Sebagai
contoh, misalnya nama variabel:
Nilai_mahasiswa_yang_mengambil_matakuliah_AlProg1
Nilai_mahasiswa_yang_mengambil_matakuliah_BasisData
(49 karakter) (51 karakter)
Nama variabel pertama akan dianggap sama dengan nama variabel kedua karena ke-32 karakter pertama untuk kedua nama variabel di atas adalah sama, yaitu:
Nilai_mahasiswa_yang_mengambil_m
2. Karakter pertama harus berupa huruf atau karakter garis bawah (_).
Berikut ini adalah pengenal yang salah:
6angka
@nggota
(salah, karena diawali dengan angka)
(salah, karena diawali dengan karakter khusus @)
Sedangkan berikut ini adalah pengenal yang benar:
_6angka
angota1
3. Tidak boleh mengandung karakter-karakter khusus dan blank (spasi) kecuali garis bawah.
Berikut ini adalah pengenal yang salah:
Nilai-mahasiswa
(salah, karena mengandung karakter -)
23
-----------------------------------------------------Page 7-----------------------------------------------------
Dollar$
No telp
(salah, karena mengandung karakter $)
(salah, karena ada spasi)
Sedangkan berikut ini adalah pengenal yang benar:
Nilai_mahasiswa
NoTelp
4. Huruf besar dan huruf kecil dianggap berbeda
_mahasiswa ≠ _Mahasiswa
X1 ≠ x1
5. Tidak boleh sama dengan keyword . Keyword adalah identifier yang telah didefinisikan sebelumnya oleh Bahasa C. Keyword pada bahasa C adalah reserved word artinya dicadangkan dan tidak boleh digunakan untuk keperluan lain. (kata-kata apa saja yang tidak dapat digunkan dapat dilihat pada tabel 3.1 di atas).
3.9 Preprocessor Directive #define
Bahasa C menyediakan preprocessor directive #define untuk mendefinisikan konstanta, makro maupun nama. Preprocessor directive #define dapat diletakan did alam program yang sama atau diletakkan di file terpisah dengan programnya.
Contoh penggunaan preprocessor directive #define untuk mendefinisikan sebuah konstanta nama dengan
nilai tetap “Ayumi Fakhira”.
#include <stdio.h>
#define nama “Ayumi Fakhira”
main()
{
Ayumi Fakhira
printf(nama);
}
Latihan:
1. Lengkapi pernyataan di bawah ini dengan mengisi bagian yang kosong. a. Setiap program C akan dijalankan pertamakali pada fungsi _____.
b. ____merupakan pernyataan untuk memulai sebuah fungsi dan ____ merupakan pernyataan untuk akhir
sebuah fungsi.
c.
Setiap pernyataan dalam program C diakhir oleh _______.
d. Fungsi ______ merupakan fungsi pustaka standar untuk menampilkan informasi di layer.
e. Fungsi _____ merupakan fungsi pustaka standar yang digunakan untuk menerima masukan data dari
keyboard.
24
-----------------------------------------------------Page 8-----------------------------------------------------
2. Berikan pernyataan benar atau salah untuk peryataan-pernyataan di bawah ini. Jika dianggap salah, jelaskan
alasannya.
a. Saat fungsi printf() digunakan akan selalu menampilkannya di awal baris.
b. Program akan menampilkan teks yang berada diantara tanda /* dan */ di layar saat program tersebut
dijalankan.
c.
Karakter escape \n saat digunakan pada fungsi printf() akan menyebabkan posisi kursor berpindah ke
baris baru.
d. Nama variabel _123bilangan adalah penamaan variabel yang salah. e. Penamaan kedua variabel di bawah ini dianggap berbeda:
No_telp_pegawaiBaru_kantorPos_kebayoran
No_telp_pegawaiBaru_kantorPos_kebagusan
3. Tuliskan perintah atau statemen dalam bahasa C untuk pernyataan-pernyataan di bawah ini:
a. Mendeklarasikan variabel x , variabel y , variabel z dan variabel hasil agar dapat menampung bilangan
bulat.
b. Menampilkan pernyataan untuk memasukkan tiga buah bilangan di layar.
c.
Membaca tiga nilai yang bertipe integer dan memberikannya kepada variabel x , y dan z .
d. Menjumlahkan tiga nilai yang bertipe integer dari variabel x , y dan z kemudian memberikan hasil
penghitungan tersebut kepada variabel hasil .
e. Tampilkan di layar monitor “ Hasil penjumlahan bilangan = “ diikuti dengan nilai dari variabel hasil .
Tugas Mandiri:
1. Periksalah program di bawah ini ( terdiri dari 5 baris) dan benarkan jika terdapat kesalahan dari setiap
barisnya.
a. #include <STDIO.H> b. { main()
c.
printf(“Program latihan” \n “masukkan 2 bilangan : “);
d. scanf(“%d %d”, &n1, n2);
e. printf(“Nilai 1 adalah %d\n”, &n1); }
2. Buatlah program dalam bahasa C untuk algoritma di bawah ini:
a. Deklarasikan tiga buah variabel pj , lb dan hasil .
b. Tampilkan pesan untuk memasukkan sebuah nilai berupa bilangan bulat.
c.
Input nilai yang dimasukkan dari keyboard dan berikan kepada variabel pj.
d. Tampilkan pesan kembali untuk meminta memasukkan sebuah bilangan bulat. e. Input nilai yang dimasukkan dari keyboard dan berikan kepada variabel lb.
f.
Lakukan proses perkalian nilai pj dengan nilai lb dan berikan hasil penghitungan tersebut ke variabel hasil.
g. Tampilkan hasil di layar monitor “Hasil = “ diikuti dengan nilai dari variabel hasil.
===============
25
-----------------------------------------------------Page 9-----------------------------------------------------
Referensi:
Achmad Solichin, Pemrograman Bahasa C dengan Turbo C , www.ilmukomputer.com , 2003
Antony Pranata, Algoritma dan Pemrograman , J&J Learning, Yogyakarta, 2000
Cheltenham Computer Training, C Programming , www.cctglobal.com , United Kingdom, 1997
Deitel & Deitel, C How to Program 3rd Edition , Prentice Hall, New Jersey, 2001
Jogiyanto, Konsep Dasar Pemrograman Bahasa C , Andi Offset, Yogyakarta, 1993
Rinaldi Munir, Algoritma & Pemrograman Dalam Bahasa Pascal dan C , Informatika Bandung, 2002
Thompson Susabda Ngoen, Pengantar Algoritma dengan Bahasa C , Salemba Teknika, Jakarta, 2004
☺☺☺
26
-----------------------------------------------------Page 10-----------------------------------------------------
0 Response to "KONSEP DASAR BAHASA C"
Post a Comment