Bahasa C
Bahasa C
BAHASA C
Standard Kompetensi :
1.
2.
Kompetensi Dasar :
1.
2.
3.
4.
6.1.
Definisi Bahasa C
Bahasa C atau Bahasa Pemograman C merupakan salah satu bahasa pemograman
komputer. Dibuat pada tahun 1972 oleh Dennis Ritchie untuk Sistem Operasi Unix di Bell
Telephone Laboratories.
Meskipun C dibuat untuk memprogram sistem dan jaringan komputer namun bahasa
ini juga sering digunakan dalam mengembangkan software aplikasi. Bahasa C juga banyak
dipakai oleh berbagai jenis platform sistem operasi dan arsitektur komputer, bahkan terdapat
beberapa compiler yang sangat populer telah tersedia. Bahasa C (C) secara luar biasa
mempengaruhi bahasa populer lainnya, terutama C++ yang merupakan extensi dari C.
Bahasa C++ adalah bahasa tingkat menengah yang memiliki kecepatan mendekati
bahasa tingkat rendah maupun mudah dipahami seperti bahasa tingkat tinggi
Adapun kelemahan atau lebih tepatnya kesulitan dalam Bahasa Pemograman C,
terutama yang dirasakan oleh pemogram pemula diantaranya adalah:
-
Banyaknya
operator
serta
fleksibilitas
penulisan
program
kadang-kadang
membingungkan pemakai, yang jika belum terbiasa maka akan menimbulkan masalah.
69
Para pemogram C tingkat pemula umumnya belum pernah mengenal pointer dan tidak
terbiasa menggunakannya, padahal keampuhan bahasa C justru terletak pada pointer.
Umumnya, kesulitan ini hanya bersifat sementara saja.
Berbagai struktur data dan pengendalian proses disediakan dalam Bahasa C, sehingga
memungkinkan dibuat program yang terstruktur, bahkan program yang berorientasi pada
objek (OOP = Object Oriented Programming).
Dibanding dengan bahasa mesin atau rakitan (Assembly), C jauh lebih mudah dipahami
dan pemogram tidak perlu tahu lebih detail mengenai mesin komputer yang digunakan
sehingga tidak menyita waktu untuk menyelesaikan masalah ke dalam bentuk program.
Bahasa C merupakan bahasa yang berorientasi pada permasalahan (object), dan bukan
berorientasi pada mesin atau urutan terstruktur dari kode-kode.
Kecepatan eksekusi C mendekati kecepatan eksekusi program yang dibuat dengan bahasa
tingkat rendah, namun kemudahan dalam memprogram setara dengan bahasa tingkat
tinggi.
C memungkinkan memanipulasi data dalam bentuk bit maupun byte secara efisien.
Disamping itu juga memungkinkan untuk melakukan manipulasi alamat dari suatu data
yang dalam C dinamakan pointer.
User dapat melakukan compile untuk kode C++ yang sama pada hampir seluruh jenis
dari komputer dan sistem operasi tanpa melakukan perubahan.
C++ sesuai dengan bahasa C. Setiap kode yang ditulis dalam C, dapat dengan mudah
dimasukkan dalam sebuah program C++ tanpa melakukan perubahan.
Pemograman yang ditulis dalam C++ sangat pendek dibanding dengan Bahasa
Pemograman yang lain karena penggunaan karakter tertentu diutamakan daripada
pemakaian kata-kata kunci.
Sebuah aplikasi dari pemograman C++ dapat dibuat dari beberapa file kode sumber yang
dapat di-compile secara terpisah dan kemudian dapat digabungkan dengan program
induk. Hal ini menghemat waktu karena tidak perlu melakukan kompilasi berulang-ulang
untuk keseluruhan aplikasi tersebut ketika membuat sebuah perubahan tetapi hanya file
yang mengandung perubahan itu. Hal ini memungkinkan untuk menghubungkan C++
dengan program lain seperti Assembler atau C.
70
6.2.
Labs
Sulit membayangkan dunia modern saat ini jika tidak ada pengaruh dari Bell Labs
transistor ditemukan di Bell Labs, dan juga sistem operasi yang sekarang
banya
bahasa
pem
-
END untuk membatasi sebuah seksi dalam instruksi program, Bahasa C malah menggunakan
tanda kurung keriting ({ dan }
banyak
mengizinkan
para programmer
melibatkan bit, byte, dan word memori. Karenanya, banyak orang menyebut Bahasa C sebagai
-
Assembly Language
Meskipun Bahasa C masih merupakan bahasa pemograman yang popular,
71
cara. Data ad
banyak inovasi lainnya, seperti halnya mouse dan juga antarmuka grafis (Graphical User
Interface) yang pertama kali diimplementasikan di dalam sistem Xerox Star, yang kemudian
diadopsi oleh Apple Macintosh dan juga
dows
prosedur, tetapi mereka membuat kelas (class). Dari kelas-kelas tersebut muncullah objek
(object), yang dapat berupa kode saja, data saja atau kombinasi dari kode dan data
membuat prosedur-prosedur yang dikhususkan untuk bekerja dengan data, data
pemograman berorientasi objek memiliki perangkat untuk beke
sehingga dapat dikatakan data bisa memproses dirinya sendiri
membawa angin segar bagi para pemogram
digunakan dalam beberapa tugas pemograman telah menjadi l
Akhirnya, beberapa programmer pun mencoba untuk menciptakan sebuah versi
B
sangat populer dari usaha mereka, lagi-lagi, adalah bahasa pemograman yang dikemb
Bell Laboratories pada tahun 1982 oleh Bjarne Stoustrup
dikenal dengan Bahasa C
sistem operasi diantaranya sistem operasi yang sering digunakan Windows dan Linux dan
banyak digunakan juga untuk mengembangkan program-program aplikasi di bidang
Telekomunikasi, Finansial, dan Bisnis. bahkan sampai saat ini permainan game yang biasa
kita temukan pada komputer sebagian besar masih menggunakan Bahasa C/C++.
72
6.3.
Versi Bahasa C
Beberapa versi dari Bahasa C yang dikenal di pasaran adalah :
1. C K & R
Pada tahun 1978, Dennis Ritchie dan Brian Kernighan menerbitkan edisi pertama dari
buku yang berjudul The C Programming Language. Buku ini hingga sekarang diakui sebagai
kitab suci Bahasa C dan merupakan referensi utama seorang pemogram yang ingin
mengetahui tentang Bahasa C, terutama karena begitu lengkapnya cakupan buku ini tentang
Bahasa C dan mudahnya program yang dicontohkan dalam buku ini.
Versi Bahasa C yang ditampilkan dalam buku ini kemudian dikenal dalam kalangan
pemogram sebagai C K & R. Pada buku The C Programming Language edisi kedua
kemudian melingkupi ANSI C yang diperkenalkan belakangan.
3. C99
Versi C99 dibuat oleh ISO C pada tahun 1999. Versi ini dimaksudkan terutama untuk
memperbanyak dukungan kepada pemograman berorientasi objek, terutama setelah C++,
yang dibuat berdasarkan bahasa ini mendapat tempat yang istimewa di kalangan pemogram.
6.4.
Bahasa C, minimal mengandung sebuah fungsi. Fungsi pertama yang harus ada dalam
Program C dan sudah ditentukan namanya adalah main(). Setiap fungsi terdiri dari satu atau
73
beberapa pernyataan, yang secara keseluruhan bertujuan untuk melaksanakan tugas khusus.
Bagian pernyataan fungsi (disebut tubuh fungsi) diawali dengan tanda kurung kurawal buka
({) dan diakhiri dengan tanda kurung kurawal tutup (}). Di antara tanda kurung kurawal ini,
dapat dituliskan statemen-statemen program C. Pada kenyataannya, suatu fungsi bisa saja
tidak mengandung pernyataan sama sekali. Walaupun fungsi tidak memiliki pernyataan, tanda
kurung kurawal haruslah tetap ada karena tanda kurung kurawal ini merupakan tanda awal
dan akhir dari definisi fungsi. Struktur program dari Bahasa C dapat dilihat pada Program 6.1.
#include<stdio.h>
main()
{
Fungsi
statemen-statemen
Utama
Fungsi_fungsi_lain()
Fungsi-fungsi lain
yang ditulis
statemen-statemen
oleh
Pemogram
6.5.
Fungsi-Fungsi Dasar
Fungsi-fungsi dasar dari Bahasa Pemograman C adalah :
a.
Fungsi main()
Fungsi main() harus ada pada program karena fungsi inilah yang menjadi titik awal
dan titik akhir dari eksekusi program Bahasa C. Tanda kurung { di awal fungsi menyatakan
awal tubuh dari fungsi dan sekaligus awal dari eksekusi program Bahasa C. Sedangkan tanda
74
kurung } yang berada di akhir fungsi merupakan akhir dari tubuh fungsi dan juga sekaligus
sebagai akhir dari eksekusi program Bahasa C.
Jadi, fungsi main() merupakan sebuah fungsi yang merupakan dasar penyusunan blok
program dalam C++. Tulisan main() merupakan nama fungsi, sedangkan bagian yang diapit
dengan tanda { } disebut blok (tubuh fungsi). Dalam hal ini { merupakan tanda awal blok dan
} adalah tanda akhir blok.
Sebuah program C++ minimal harus memiliki satu fungsi main(). Jika program terdiri
atas lebih dari satu fungsi maka fungsi main() biasanya ditempatkan pada posisi yang paling
atas dalam pendefenisian fungsi. Hal ini hanya merupakan kebiasaan. Tujuannya untuk
memudahkan pencarian terhadap program utama bagi pemogram. Jadi tidak merupakan suatu
keharusan.
Dalam ANSI C, operasi I/O dilakukan dengan menggunakan fungsi-fungsi header file
stdio.h seperti printf, scanf, putc, dll. Sedangkan dalam C++ menggunakan iostream.h,
stsrtea.h, fstream.h dan constrea.h.
Pernyataan (statement) merupakan bagian program yang berupa instruksi kepada
komputer untuk melakukan sesuatu. Menampilkan tulisan di layar, menghitung operasi
aritmatika, membaca masukan dan lain sebagainya. Setiap pernyataan harus diakhir dengan
; Titik koma (semicolon) menandakan akhir dari instruksi dan harus
disertakan di setiap akhir instruksi pada program C/C++ manapun.
Pemakaian fungsi main() dalam pemograman Bahasa C dapat dilihat pada program
6.2.
#include <stdio.h>
main ()
{
}
Program 6.2. Pemakaian fungsi main() dalam pemograman Bahasa C
b.
Praprosesor #include
#include merupakan salah satu jenis pengarah praprosesor (preprocessor directive).
Pengarah praprosesor ini dipakai untuk membaca file di antaranya berisi deklarasi fungsi dan
definisi konstanta. Beberapa file judul disediakan dalam Bahasa C. File-file ini mempunyai
ciri yaitu namanya diakhiri dengan ekstensi (.h). Misalnya pada program #include <stdio.h>
menyatakan pada kompiler agar membaca file bernama stdio.h saat pelaksanaan kompilasi.
Bentuk umum pemakaian #include adalah :
#include <namafile>
Atau :
#
ud
) menyatakan pencarian file dilakukan pertama sekali pada direktori aktif tempat
program sumber dan seandainya tidak ditemukan pencarian maka akan dilanjutkan pada
direktori lain, yang sesuai dengan perintah pada sistem operasi (PATH).
Kebanyakan program melibatkan file stdio.h (file judul I/O standar, yang disediakan
dalam Bahasa C). Program yang melibatkan file ini yaitu program yang menggunakan pustaka
I/O (Input Output) standar seperti printf().
Bagian (#include <stdio.h>) (pada ANSI C) atau (#include <iostream.h>) (pada C++)
bukan merupakan suatu pernyataan. Bagian ini disebut file header dan digunakan untuk
menyisipkan file (stdio.h) atau (iostream.h) ke dalam program. File header tersebut
diperlukan agar perintah cout bisa dijalankan. Apabila file header tersebut dihapus maka akan
terjadi error.
c.
Fungsi printf()
Fungsi printf() merupakan fungsi yang umum dipakai untuk menampilkan suatu
keluaran pada layar yang digunakan sehingga menampilkan tulisan yang diinginkan.
Contoh : jika ingin menampilkan tulisan berupa :
Selamat Belajar Bahasa Pemograman C
Maka, pernyataan yang dibutuhkan adalah :
76
(S
);
\t **************************** \ ;
\t \\ ;
\ ;
\ ;
\\ \ ;
**************************** ;
\ ;
77
Latihan 6.2.
1.
*****************************
\ Selamat Belajar Bahasa C \
**********************************
2.
****************************
\ Selamat Belajar Bahasa C \
******************************
Dalam bentuk yang lebih umum, format printf() adalah :
k
printf (
, d
um );
Dengan string kontrol dapat berupa satu atau sejumlah karakter yang akan ditampilkan atau
berupa penentu format yang akan mengatur penampilan dari argumen yang terletak pada
daftar argumen. Beberapa penentu format dalam Bahasa C dapat dilihat pada Tabel 6.1.
Tabel 6.1. Beberapa penentu format dalam Bahasa C
Format
%d
%ld
long integer
%u
unsigned integer
%x
hexadesimal integer
%f
%lf
double float
%e
%c
Sebuah karakter
%s
Sebuah string
Contoh pemakaian penentu format Bahasa C, dapat dilihat pada Program 6.4.
#include <stdio.h>
main()
{
: %d\ 0 ;
: %s\
: %f\ 80.5);
78
: %c\ ;
}
Program 6.4. Pemakaian penentu format dalam program Bahasa C
: 10
Nama : Aku
Nilai : 80.500000
Huruf : A
Latihan 6.3.
1.
:9
No
Nama : Kamu
Nilai : 90
Huruf : A
2.
No
: 25
Nama : Resti
Nilai : 63.700000
Huruf : C
d.
Cout
Pengenal (identifier) cout merupakan standart output stream dalam C++ dan
#include <iostream.h>
void main()
main()
}
Program 6.5. Pemakaian penentu format dalam program Bahasa C
79
Latihan 6.4.
e.
komputer maka program yang ditulis, harus diterjemahkan terlebih dulu ke dalam kode mesin.
Adapun penerjemah yang digunakan dapat berupa interpreter ataupun compiler.
Interpreter merupakan suatu jenis penerjemah yang menerjemahkan instruksi per baris
untuk setiap saat. Keuntungan pemakaian interpreter adalah penyusunan program relatif lebih
cepat dan bisa langsung diuji meskipun masih ada beberapa kesalahan secara kaidah dalam
program. Kelemahan dari interpreter adalah proses penerjemahannya lambat karena sebelum
suatu instruksi dijalankan, selalu diterjemahkan terlebih dahulu. Selain itu, pada saat program
dieksekusi, interpreter juga harus berada dalam memori. Disamping itu, untuk program yang
memakai interpreter maka program sumber (source program) tidak dapat dirahasiakan.
Compiler merupakan suatu jenis penerjemah yang cara kerjanya menerjemahkan
seluruh instruksi dalam program sekaligus. Proses kompilasi cukup dilakukan sekali saja,
selanjutnya hasil penerjemahan (setelah melalui tahap-tahap yang lain) dapat dijalankan
secara langsung, tanpa bergantung pada program sumber maupun kompilernya.
Kelebihan penggunaan compiler adalah proses ekekusi dapat berjalan lebih cepat
karena tidak ada lagi proses penerjemahan. Selain itu, program sumber juga dapat
dirahasiakan karena yang dieksekusi adalah file program yang sudah dalam bentuk kode
mesin. Sedangkan kelemahannya yaitu proses pembuatan dan pengujiannya relatif lebih lama,
sebab harus melalui tahap penerjemahan (compiling) dan proses linking. Jadi, program hanya
akan berhasil dikompilasi jika sudah tidak mengandung kesalahan secara kaidah (syntax
error) sama sekali.
80
Untuk mengubah kode-kode C++ program menjadi suatu program aplikasi yang
dimengerti oleh sistem operasi dan komputer, diperlukan sebuah kompilator C++. Beberapa
kompilator C++ yang dapat digunakan secara gratis :
Free Microsoft .NET Framework Software Development Kit (SDK) / Free Microsoft
Visual C++ Compiler
f.
SDCC C Cross-compiler
SDCC C Cross-compiler
Code::Blocks
Komentar Program
Untuk keperluan dokumentasi, supaya program mudah dipahami pada suatu waktu
yang lain maka biasanya pada program disertakan komentar atau keterangan mengenai
program. Dalam Bahasa C, suatu komentar ditulis dengan diawali tanda /* dan diakhiri tanda
*/.
Contoh komentar program dalam Bahasa C dapat dilihat pada Program 6.6. :
/*
Tanda ini adalah komentar program
Untuk multiple lines dalam program C
81
*/
#include <stdio.h>
main()
{
printf (
\ );
}
Program 6.6. Pemakaian komentar program dalam Bahasa C
g. return 0
Instruksi return menyebabkan fungsi main() berakhir dan mengembalikan kode yang
mengikuti instruksi tersebut, dalam hal ini adalah 0. Hal ini merupakan cara yang paling
sering digunakan untuk mengakhiri program C++.
Pemakaian return 0 dalam Bahasa C, dapat dilihat pada Program 6.7.
#include <iostream.h>
#include <iostream.h>
main()
int main()
return 0;
return 0;
#include<stdio.h>
main()
{ printf("Selamat Belajar Bahasa C \n");
return 0;
Latihan 6.5.
6.6.
1. printf
Fungsi printf digunakan untuk menampilkan suatu keluaran pada layar. Penggunaan
fungsi printf dapat dilihat pada Program 6.8. :
#include <stdio.h>
main()
{ int nilai = 9;
\ ;
=% \
;}
Fungsi printf yang pertama disertai dengan escape sequence (\n), yang berfungsi untuk
pindah baris. Jadi dengan fungsi printf yang pertama maka kursor akan turun satu baris.
Sedangkan fungsi printf yang kedua, dimana terdapat format data %d berfungsi untuk
menampilkan data dengan tipe integer. Variabel yang menyimpan nilai tersebut, harus
disertakan setelah tanda petik terakhir.
Hasil dari Program 6.8. adalah :
Bahasa C menyenangkan
Nilai = 9
Latihan 6.6.
2. puts
Cara lain untuk menampilkan suatu keluaran ke layar adalah menggunakan fungsi
puts. Tetapi fungsi puts hanya digunakan untuk menampilkan nilai string dan sudah
mengandung line feed atau escape sequence ganti baris. Penggunaan fungsi puts dapat dilihat
pada Program 6.9.
#include <stdio.h>
main()
Kini tidak perlu lagi menggunakan (\n) untuk ganti baris baru. Hasil dari Program 6.9 :
Bahasa C menyenangkan
Belajar Bahasa C
Latihan 6.7.
1.
2.
3. putchar
Fungsi ini digunakan untuk menampilkan sebuah karakter saja dan tidak mengandung
escape sequence (\n). Penggunaan fungsi putchar dapat dilihat pada Program 6.10.
#include <stdio.h>
main()
{ char a;
printf( = ;
% &a);
;
\ ;
putchar(a);
84
Pada putchar yang petama, jika ingin membuat program untuk ganti baris,
menggunakan \n. Tanda petik tunggal () digunakan karena karakter dalam program akan
dikenal jika diberi tanda petik tunggal. Fungsi putchar ini hanya bisa menampilkan satu buah
karakter saja sehingga apapun nilai yang dimasukkan hanya karakter pertama yang akan
ditampilkan.
Latihan 6.8.
:9
:5
4. scanf
Jika ingin memasukkan data dari keyboard, dapat menggunakan fungsi scanf. Data
selanjutnya akan didefenisikan sebagai data variabel. Jika fungsi scanf ini digunakan untuk
membaca data dengan tipe array, karakter yang selanjutnya disebut dengan istilah string,
maka fungsi ini hanya akan membaca data sampai ditemukan blank. Dengan demikian, nilai
setelah blank dianggap bukan lagi nilai dari variabel yang akan mengisi variabel tersebut.
Fungsi scanf lebih cocok digunakan untuk data-data numerik.
Fungi scanf jika digunakan maka harus disertai operator penanda alamat & di depan
nama variabel yang digunakan untuk menyimpan data tersebut. Jika tidak mempergunakan
operator alamat & ini maka ketika data dimasukkan, akan muncul pesan Error Segmentation
Fault. Sedangkan untuk data string, tidak perlu menggunakan operator ini. Tetapi jika
digunakan tidak menjadi masalah. Fungsi scanf biasanya digunakan bersama-sama dengan
fungsi printf. Penggunaan fungsi scanf dapat dilihat pada Program 6.11.
#include <stdio.h>
main()
{ char a[25];
85
int b;
= ;
% &a);
=;
% & ;
=% \
Setiap kali memasukkan data, harus diikuti dengan menekan ENTER. Hasil dari
Program 6.11. adalah :
a = anda
b = 12
Data yang anda masukkan
a = anda
b = 12
yang bisa diterima oleh program dan ditampilkan. Jika karakter yang dimasukkan lebih dari
25 bit maka sejak bit ke 26 tidak akan ditampilkan di layar (Processor Fault). Sedangkan
b, user bisa memasukkan hanya bilangan saja (bukan karakter) mulai dari (32768) sampai (+32767).
Latihan 6.9.
1. x = data-huruf-danangka
y=9
86
5. gets
Jika menggunakan fungsi scanf untuk membaca data yang bertipe string, maka data
tersebut hanya akan dibaca sampai ditemukan spasi. Misalnya nama
anda
saja
kata tersebut, program telah menemukan spasi yang mengakibatkan data ke variabel yang
menyimpan nama dianggap selesai.
Untuk keperluan pemasukan data string yang panjang dan dipisahkan dengan spasi,
Bahasa C menyediakan fungsi gets. Penggunaan fungsi gets dapat dilihat pada Program 6.12.
#include <stdio.h>
main()
{ char nama[25];
char alamat[50];
N
: ;
: ;
;
;
\ ;
\ ;
:% \
:% \
;
; }
Alamat : Pekanbaru
Latihan 6.10. Buat Program C dengan menggunakan gets untuk menampilkan hasil :
1.
6. getchar
Jika memasukkan sebuah nilai karakter ke variabel yang bertipe karakter maka dapat
digunakan perintah getchar. Penggunaan fungsi getchar dapat dilihat pada Program 6.13 :
#include <stdio.h>
main()
{ char nilai;
N
: ;
nilai=getchar();
N
=% \
Latihan 6.11. Buat Program C dengan getchar untuk menampilkan hasil berupa :
1.
:C
88
6.7.
Ringkasan
Bab ini membahas Definisi Bahasa C, Sejarah C dan C++, Versi Bahasa C, Struktur
6.8.
Latihan Soal-soal
A.
1.
Fungsi pertama yang harus ada dalam Program C dan sudah ditentukan namanya adalah :
a.printf
2.
b.{
c.}
d.main()
3.
b. \t
c.main()
d.Basic
d. \
Pengarah praprosesor yang dipakai untuk membaca file berupa berisi deklarasi fungsi dan
definisi konstanta adalah : a. main()
5.
c.Assembly
4.
b.Pascal
b. #include
c.{
d.}
Fungsi yang umum dipakai untuk menampilkan suatu keluaran pada layar yang
digunakan sehingga menampilkan tulisan yang diinginkan adalah :
a. . #include
B.
b. string
c. main()
d. printf
1.
2.
3.
*****************************
\ Selamat Belajar Bahasa C \
**********************************
4.
Buat program C menggunakan cout dalam 2 format berbeda untuk menampilkan hasil
berupa :
89
5.
6.
6.9.
:5
Referensi
1.
2.
90