Materi Pemrograman Bahasa C (1)

BAB I
PENGENALAN KONSEP BAHASA PEMROGRAMAN
1.1

Tujuan
1 Mengerti tentang konsep bahasa pemrograman
2 Membuat algoritma dari suatu permasalahan
3 Mengerti tentang flowchart
4 Membuat flowchart dari suatu permasalahan

1.2

Pengenalan Bahasa Pemrograman
Komputer adalah mesin yang dapat melaksanakan seperangkat perintah

dasar (instruction set). Agar komputer dapat melakukan sesuatu hal, harus
diberikan perintah yang dapat dilaksanakannya, yaitu dalam bentuk kumpulan
perintah-perintah dasar. Program komputer adalah sekumpulan instruksi yang
dikenal oleh komputer dan disusun menurut urutan yang logis untuk
menyelesaikan suatu masalah. Bahasa pemrograman adalah bahasa yang dapat
diterjemahkan menjadi kumpulan perintah-perintah dasar tersebut. Penerjemahan

dilakukan oleh program komputer yang disebut kompilator. Sintaks dari bahasa
pemrograman lebih mudah dipahami oleh manusia daripada sintaks perintah
dasar. Namun tentu saja komputer hanya dapat melaksanakan perintah dasar itu.
Maka di sinilah peran penting kompilator sebagai perantara antara bahasa
pemrograman dengan perintah dasar. Kegiatan membuat program komputer
dengan menggunakan bahasa pemrograman disebut pemrograman komputer.
Untuk dapat membuat program komputer, harus dikuasai bahasa komputer.
Berbagai bahasa komputer telah diciptakan untuk membantu manusia
memprogram komputer. Berdasarkan tingkatannya dikenal beberapa tingkat
bahasa pemrograman diantaranya:
a. Bahasa Pemrograman dasar, seperti: Bahasa Mesin, Bahasa Assembley.
b. Bahasa Pemrograman tingkat menengah, seperti: Bahasa C, Bahasa FORTH.
c. Bahasa Pemrograman tingkat tinggi, seperti: Bahasa Pascal, C, FORTRAN,
Konsep Pemrograman

1

COBOL, dan lain-lain.
Bahasa pemgrogram tingkat dasar, sebagai hirarki pertama, disebut juga
bahasa generasi pertama, bahasa ini sangat tergantung pada jenis CPU yang

dipakai oleh komputer. Bahasa ini sangat sulit dipelajari, karena sifatnya yang
sangat tergantung pada mesin (machine dependent). Untuk menguasai bahasa ini,
harus dipelajari dan dikuasai teknologi dan arsitektur komputer, matematika
diskrit, elektronika, dan lain-lain. Bahasa ini masih menggunakan simbol-simbol
yang bersifat mnemonic.
Bahasa pemrograman tingkat menengah, sifatnya sudah lebih mudah
daripada bahasa pemrograman tingkat dasar, perintah-perintahnya sudah lebih
mudah dibaca sebab sudah menggunakan huruf-huruf. Bahasa pemrograman
tingkat tinggi adalah bahasa computer yang sudah mirip dengan bahasa manusia.
Perintah-perintahnya sudah dibuat dalam bahasa yang mudah dimengerti manusia,
seperti PRINT, WRITE, IF, THEN, ELSE, dan lain-lain.
1.3

Tahapan dalam Pemrograman
Langkah-langkah yang dilakukan dalam menyelesaikan masalah dalam

pemrograman dengan komputer adalah:
1. Defenisikan Masalah
a. Tentukan apa yang menjadi masalah
b. Tentukan data input yang diperlukan

c. Tentukan output yang diinginkan
2. Buat bagan dan struktur cara penyelesaian
a. Bagan secara global
b. Deskripsikan tugas masing-masing subprogram
3. Pilih metode penyelesaian
a. Pilih struktur data dan algoritma terbaik
4. Pengkodean
a. Pilih bahasa pemrograman yang sesuai
b. Menterjemahkan algoritma ke bahasa pemrograman

Konsep Pemrograman

2

5. Mencari kesalahan
a. Kesalahan sintaks (penulisan program)
b. Kesalahan Pelaksanaan: Semantik, Logika, dan ketelitian
6. Uji dan verifikasi program
7. Dokumentasi Program
8. Pemiliharaan Program

a. Memperbaiki kekurangan yang ditemukan kemudian
b. Memodifikasi, karena perubahan spesifikasi
1.4

Pengertian Algoritma
Algoritma adalah urutan langkah-langkah logika yang menyatakan suatu

tugas dalam menyelesaikan suatu masalah atau problem. Notasi yang digunakan
untuk menuliskan algoritma ada dua, yaitu dengan menyatakan langkah-langkah
algoritma dengan untaian kalimat deskriftif, atau dengan mengunakan diagram
alir (flowchart). Diagram alir adalah simbol-simbol yang digunakan untuk
menggambarkan sebuah pernyataan logika pemrograman serta aliran logika yang
ditunjukkan dengan arah panah. Algoritma dengan flowchart dilakukan dengan
simbol-simbol seperti yang diperlihatkan pada Tabel 1.1.
Tabel 1.1 Simbol-simbol flowchart
Simbol

Nama

Fungsi


TERMINATOR

Permulaan/akhir program

GARIS ALIR
(FLOW LINE)

Arah aliran program

PREPARATION

Proses
inisialisasi/pemberian harga
awal

PROSES

Proses perhitungan/proses
pengolahan data


INPUT/OUTPUT
DATA
PREDEFINED
PROCESS
(SUB PROGRAM)
DECISION

Proses input/output data,
parameter, informasi
Permulaan sub
program/proses
menjalankan sub program
Perbandingan pernyataan,

Konsep Pemrograman

3

penyeleksian data yang

memberikan pilihan untuk
langkah selanjutnya
ON PAGE
CONNECTOR

Penghubung bagian-bagian
flowchart yang berada pada
satu halaman

OFF PAGE
CONNECTOR

Penghubung bagian-bagian
flowchart yang berada pada
halaman berbeda

Contoh:
Algoritma untuk menentukan jenis suatu bilangan, apakah bilangan ganjil atau
bilangan genap. Flowchart program disajikan pada Gambar 1.1 dan Algoritma
menggunakan kalimat deskriftif adalah sebagai berikut:



Bagi bilangan dengan bilangan 2



Hitung sisa hasil bagi pada langkah 1.



Bila sisa hasil bagi sama dengan 0 maka bilangan itu adalah bilangan genap
tetapi bila sisa hasil bagi sama dengan 1 maka bilangan itu adalah bilangan
ganjil.

Gambar 1.1 Flowchart mencetak jenis bilangan

Konsep Pemrograman

4


Latihan :
1. Buatlah sebuah rancangan program dengan menggunakan diagram alir,
mencari luas persegi panjang.
2. Buat algoritma untuk menentukan apakah suatu bilangan merupakan bilangan
prima atau bukan, kemudian buat flowchart untuk program tersebut !
3. Buat algoritma untuk mencetak N buah bilangan prima yang pertama,
kemudian buat flowchart untuk program tersebut !

Konsep Pemrograman

5

BAB II
SEKILAS TENTANG C
2.1

Tujuan
1. Menjelaskan sejarah dan ruang lingkup pemakaian bahasa C
2. Menjelaskan kelebihan dan kekurangan bahasa C
3. Menjelaskan proses kompilasi dan linking program C

4. Menjelaskan struktur penulisan bahasa C dan menjelaskan komponenkomponen program dalam contoh aplikasi sederhana

2.2

Sejarah dan Ruang Lingkup C
Akar dari bahasa C adalah bahasa BCPL yang dikembangkan oleh Martin

Richards pada tahun 1967. Bahasa ini memberikan ide kepada Ken Thompson
yang kemudian mengembangkan bahasa yang disebut dengan B pada tahun 1970.
Perkembangan selanjutnya dari bahasa B adalah bahasa C oleh Dennis Ritchie
sekitar tahun 1970-an di Bell Telephone Laboratories Inc. (sekarang adalah AT&T
Bell Laboratories). Bahasa C pertama kali digunakan pada komputer Digital
Equipment Corporation PDP-11 yang menggunakan sistem operasi UNIX.
C adalah bahasa yang standar, artinya suatu program yang ditulis dengan
versi bahasa C tertentu akan dapat dikompilasi dengan versi bahasa C yang lain
dengan sedikit modifikasi. Standar bahasa C yang asli adalah standar dari UNIX.
Sistem operasi, kompiler C dan seluruh program aplikasi UNIX yang esensial
ditulis dalam bahasa C. Patokan dari standar UNIX ini diambilkan dari buku yang
ditulis oleh Brian Kerninghan dan Dennis Ritchie berjudul "The C Programming
Language", diterbitkan oleh Prentice-Hall tahun 1978. Deskripsi C dari

Kerninghan dan Ritchie ini kemudian dikenal secara umum sebagai "K&R C".
Kepopuleran bahasa C membuat versi-versi dari bahasa ini banyak dibuat
untuk komputer mikro. Untuk membuat versi-versi tersebut menjadi standar,
ANSI (American National Standards Institute) membentuk suatu komite (ANSI
committee X3J11) pada tahun 1983 yang kemudian menetapkan standar ANSI
untuk bahasa C. Standar ANSI ini didasarkan kepada standar UNIX yang

Konsep Pemrograman

6

diperluas. Standar ANSI menetapkan sebanyak 32 buah kata-kata kunci
(keywords) standar. Versi-versi bahasa C yang menyediakan paling tidak 32 katakata kunci ini dengan sintaks yang sesuai dengan yang ditentukan oleh standar,
maka dapat dikatakan mengikuti standar ANSI. Buku ajar ini didasarkan pada
bahasa C dari standar ANSI.
Pada saat ini C merupakan bahasa pemrograman yang sangat populer di
dunia. Banyak pemrograman yang dibuat dengan bahasa C seperti assembler,
interpreter, program paket, sistem operasi, editor, kompiler, program bantu, Word
Star, Dbase, aplikasi untuk bisnis, matematika, dan game, bahkan ada pula yang
menerapkannya untuk kecerdasan buatan.
Dalam beberapa literatur bahasa C digolongkan sebagai bahasa tingkat
menengah. Penggolongan ke dalam bahasa tingkat menengah bukanlah berarti
bahwa bahasa C lebih sulit dibandingkan dengan bahasa tingkat tinggi seperti
PASCAL atau BASIC. Demikian juga bahasa C bukanlah bahasa yang
berorientasi pada mesin seperti bahasa mesin dan assembly. Pada kenyataannya
bahasa C mengkombinasikan elemen dalam bahasa tingkat tinggi dan bahasa
tingkat rendah. Kemudahan dalam membuat program yang ditawarkan pada
bahasa tingkat tinggi dan kecepatan eksekusi dari bahasa tingkat rendah
merupakan tujuan diwujudkannya bahasa C.
2.3

Kelebihan dan Kelemahan C

Beberapa kelebihan dari bahasa C:


Bahasa C tersedia hampir di semua jenis komputer, baik mikro, mini maupun
komputer besar (mainframe computer).



Kode bahasa C bersifat portabel. Suatu aplikasi yang ditulis dengan bahasa C
untuk suatu komputer tertentu dapat digunakan di komputer lain hanya dengan
sedikit modifikasi.



Berbagai struktur data dan pengendalian proses disediakan dalam C sehingga
memungkinkan untuk membuat program yang terstruktur. C memiliki struktur
bahasa yang baik, selain mudah dipelajari juga memudahkan dalam
pembuatan program, pelacakan kesalahan program dan menghasilkan
dokumentasi program yang baik.
Konsep Pemrograman

7



Dibandingkan dengan bahasa mesin atau assembly, C jauh lebih mudah
dipahami dan pemrogram tidak perlu mengetahui mesin komputer secara detil.
Dengan demikian tidak akan menyita waktu yang terlampau banyak dalam
menyelesaikan suatu masalah ke dalam bentuk program. Hal ini dikarenakan
C merupakan bahasa yang berorientasi pada permasalahan, bukan berorientasi
pada mesin.



C memungkinkan memanipulasi data dalam bentuk bit maupun byte. Di
samping itu juga memungkinkan untuk memanipulasi alamat dari suatu data
atau pointer.

Adapun kelemahan bahasa C yang dirasakan oleh para pemula bahasa C:


Banyaknya operator serta fleksibilitas penulisan program kadang-kadang
membingungkan

pemakai.

Kalau

tidak

dikuasai

sudah

tentu

akan

menimbulkan masalah.


Para pemrogram C tingkat pemula umumnya belum pernah mengenal pointer
dan tidak terbiasa menggunakannya. Padahal keampuhan C justru terletak
pada pointer.
Kesulitan yang diuraikan di depan akan bersifat sementara saja. Kalau para

pemula C mau mempelajarinya, sebenarnya tak ada yang dikatakan sulit sekali
mengenai C. Mereka yang sudah terbiasa justru menyatakan bahwa bekerja
dengan C sangat menyenangkan. Pepatah mengatakan “Di mana ada kemauan di
situ ada jalan” dan “Jika tak kenal maka tak sayang”.
2.4

Proses Kompilasi dan Linking Program C
Agar suatu program dalam bahasa pemrograman dapat dimengerti oleh

komputer, program haruslah diterjemahkan dahulu ke dalam kode mesin. Adapun
penerjemah yang digunakan bisa berupa interpreter atau kompiler.
Interpreter adalah suatu jenis penerjemah yang menerjemahkan baris per
baris intsruksi untuk setiap saat. Keuntungan pemakaian interpreter, penyusunan
program relatif lebih cepat dan bisa langsung diuji sekalipun masih ada beberapa
kesalahan secara kaidah dalam program. Sedangkan kelemahannya, kecepatannya
menjadi lambat sebab sebelum suatu instruksi dijalankan selalu harus
Konsep Pemrograman

8

diterjemahkan terlebih dahulu. Selain itu, saat program dieksekusi, interpreter
juga harus berada dalam memori. Jadi memori selalu digunakan baik untuk
program maupun interpreter. Di samping itu, program sumber (source program)
yaitu program aslinya tidak dapat dirahasiakan (orang lain selalu bisa melihatnya).

Gambar 2.1 Proses kompilasi-Linking dari program C
Keterangan Gambar:


Pertama-tama program C ditulis dengan menggunakan editor. Program ini
disimpan dalam file yang disebut file program sumber (dengan ciri utama
memiliki ekstensi .c).



File include (umumnya memiliki ekstensi .h, misalnya stdio.h, atau biasa
disebut dengan file judul (header file)) berisi kode yang akan dilibatkan dalam
program C (Pada program tertentu bisa saja tidak melibatkan file include).

Konsep Pemrograman

9



Berikutnya, kode dalam file program sumber maupun kode pada file include
akan dikompilasi oleh kompiler menjadi kode obyek. Kode obyek ini
disimpan pada file yang biasanya berekstensi .obj, atau .o (bergantung kepada
lingkungan/environment sistem operasi yang dipakai). Kode obyek berbentuk
kode mesin, oleh karena itu tidak dapat dibaca oleh pemrogram. Akan tetapi
kode ini sendiri juga belum bisa dipahami komputer.



Supaya bisa dimengerti oleh komputer, maka kode obyek bersama-sama
dengan kode obyek yang lain (kalau ada) dan isi file pustaka (library file, yaitu
file yang berisi rutin untuk melaksanakan tugas tertentu. File ini disediakan
oleh pembuat kompiler, biasanya memiliki ekstensi .lib) perlu dikaitkan
(linking) dengan menggunakan linker, membentuk sebuah program yang
executable (program yang dapat dijalankan/dieksekusi secara langsung dalam
lingkungan sistem operasi).



Program hasil linker ini disimpan dalam file yang disebut file executable, yang
biasanya berekstensi .exe.
Kebanyakan versi C yang beredar di pasaran menggunakan penerjemah

berupa kompiler. Kompiler merupakan jenis penerjemah yang lain, dengan cara
kerjanya yaitu menerjemahkan seluruh instruksi dalam program sekaligus. Proses
pengkompilasian ini cukup dilakukan sekali saja. Selanjutnya hasil penerjemahan
(setelah melalui tahapan yang lain) bisa dijalankan secara langsung, tanpa
tergantung lagi oleh program sumber maupun kompilernya. Keuntungannya,
proses eksekusi dapat berjalan dengan cepat, sebab tak ada lagi proses
penerjemahan. Di samping itu, program sumber bisa dirahasiakan, sebab yang
dieksekusi adalah program yang sudah dalam bentuk kode mesin. Sedangkan
kelemahannya, proses pembuatan dan pengujian membutuhkan waktu relatif lebih
lama, sebab ada waktu untuk mengkompilasi (menerjemahkan) dan ada pula
waktu melakukan proses linking. Perlu pula diketahui, program akan berhasil
dikompilasi hanya jika program tak mengandung kesalahan secara kaidah sama
sekali.
Proses dari bentuk program sumber C (source program, yaitu program
yang ditulis dalam bahasa C) hingga menjadi program yang executable (dapat
dieksekusi secara langsung) ditunjukkan pada Gambar 2.1.
Konsep Pemrograman

10

2.5

Struktur Penulisan Program C
Untuk dapat memahami bagaimana suatu program ditulis, maka struktur

dari program harus dimengerti terlebih dahulu. Tiap bahasa komputer mempunyai
struktur program yang berbeda. Struktur program memberikan gambaran secara
luas, bagaimana bentuk program secara umum.
Program C pada hakekatnya tersusun atas sejumlah blok fungsi. Sebuah
program minimal mengandung sebuah fungsi. Fungsi pertama yang harus ada
dalam program C dan sudah ditentukan namanya adalah main(). Setiap fungsi
terdiri atas satu atau beberapa pernyataan, yang secara keseluruhan dimaksudkan
untuk melaksanakan tugas khusus. Bagian pernyataan fungsi (sering disebut
tubuh fungsi) diawali dengan tanda kurung kurawal buka ({) dan diakhiri dengan
tanda kurung kurawal tutup (}). Diantara kurung itu dapat dituliskan statemenstatemen program C. Namun pada kenyataannya, suatu fungsi bisa saja tidak
mengandung pernyataan sama sekali. Walaupun fungsi tidak memiliki pernyataan,
kurung kurawal haruslah tetap ada. Sebab kurung kurawal mengisyaratkan awal
dan akhir definisi fungsi. Berikut ini adalah struktur dari program C.

Bahasa C dikatakan sebagai bahasa pemrograman terstruktur karena
strukturnya menggunakan fungsi-fungsi sebagai program-program bagiannya
(subroutine). Fungsi-fungsi yang ada selain fungsi utama (main()) merupakan
program-program bagian. Fungsi-fungsi ini dapat ditulis setelah fungsi utama atau
diletakkan di file pustaka (library). Jika fungsi-fungsi diletakkan di file pustaka
dan akan dipakai di suatu program, maka nama file judulnya (header file) harus
dilibatkan dalam program yang menggunakannya dengan preprocessor directive
berupa #include.

Konsep Pemrograman

11

2.6

Pengenalan Program C

2.6.1. Pengenalan Fungsi-Fungsi Dasar
a. Fungsi main()
Pada program C, main() merupakan fungsi yang istimewa. Fungsi main()
harus ada pada program, sebab fungsi inilah yang menjadi titik awal dan titik
akhir eksekusi program. Tanda { di awal fungsi menyatakan awal tubuh fungsi
dan sekaligus awal eksekusi program, sedangkan tanda } di akhir fungsi
merupakan akhir tubuh fungsi dan sekaligus adalah akhir eksekusi program.
Jika program terdiri atas lebih dari satu fungsi, fungsi main() biasa
ditempatkan pada posisi yang paling atas dalam pendefinisian fungsi. Hal ini
hanya merupakan kebiasaan. Tujuannya untuk memudahkan pencarian
terhadap program utama bagi pemrogram. Jadi bukanlah merupakan suatu
keharusan.
b. Fungsi printf()
Fungsi printf() merupakan fungsi yang umum dipakai untuk menampilkan
suatu keluaran pada layar peraga. Untuk menampilkan tulisan
Selamat belajar bahasa C
misalnya, pernyataan yang diperlukan berupa:
printf(“Selamat belajar bahasa C”);
Pernyataan di atas berupa pemanggilan fungsi printf() dengan argumen atau
parameter berupa string. Dalam C suatu konstanta string ditulis dengan diawali
dan diakhiri tanda petik-ganda (“). Perlu juga diketahui pernyataan dalam C
selalu diakhiri dengan tanda titik koma (;). Tanda titik koma dipakai sebagai
tanda pemberhentian sebuah pernyataan dan bukanlah sebagai pemisah antara
dua pernyataan.
Tanda \ pada string yang dilewatkan sebagai argumen printf() mempunyai
makna yang khusus. Tanda ini bisa digunakan untuk menyatakan karakter
khusus seperti karakter baris-baru ataupun karakter backslash (miring kiri).
Jadi karakter seperti \n sebenarnya menyatakan sebuah karakter. Contoh
karakter yang ditulis dengan diawali tanda \ adalah:

Konsep Pemrograman

12

\”

menyatakan karakter petik-ganda

\\

menyatakan karakter backslash

\t

menyatakan karakter tab

Dalam bentuk yang lebih umum, format printf()
printf(“string kontrol”, daftar argumen);
dengan string kontrol dapat berupa satu atau sejumlah karakter yang akan
ditampilkan ataupun berupa penentu format yang akan mengatur penampilan
dari argumen yang terletak pada daftar argumen. Mengenai penentu format di
antaranya berupa:
%d

untuk menampilkan bilangan bulat (integer)

%f

untuk menampilkan bilangan titik-mengambang (pecahan)

%c

untuk menampilkan sebuah karakter

%s

untuk menampilkan sebuah string

Contoh:
#include
main( )
{
printf(“No
:
printf(“Nama :
printf(“Nilai:
printf(“Huruf:
}

%d\n”, 10);
%s\n”, “Ali”);
%f\n”,80.5);
%c\n”,‘A’);

2.6.2. Pengenalan Praprosesor #include
#include merupakan salah satu jenis pengarah praprosesor (preprocessor
directive). Pengarah praprosesor ini dipakai untuk membaca file yang di antaranya
berisi deklarasi fungsi dan definisi konstanta. Beberapa file judul disediakan
dalam C. File-file ini mempunyai ciri yaitu namanya diakhiri dengan ekstensi .h.
Misalnya pada program #include menyatakan pada kompiler agar
membaca file bernama stdio.h saat pelaksanaan kompilasi.
Bentuk umum #include:
#include “namafile”

Konsep Pemrograman

13

Bentuk pertama (#include ) mengisyaratkan bahwa pencarian
file dilakukan pada direktori khusus, yaitu direktori file include. Sedangkan
bentuk kedua (#include “namafile”) menyatakan bahwa pencarian file dilakukan
pertama kali pada direktori aktif tempat program sumber dan seandainya tidak
ditemukan pencarian akan dilanjutkan pada direktori lainnya yang sesuai dengan
perintah pada sistem operasi.
Kebanyakan program melibatkan file stdio.h (file-judul I/O standard, yang
disediakan dalam C). Program yang melibatkan file ini yaitu program yang
menggunakan pustaka I/O (input-output) standar seperti printf().
2.6.3 Komentar dalam Program
Untuk keperluan dokumentasi dengan maksud agar program mudah
dipahami, biasanya pada program disertakan komentar atau keterangan mengenai
program. Dalam C, suatu komentar ditulis dengan diawali dengan tanda /* dan
diakhiri dengan tanda */.
Contoh :
/*
Tanda ini adalah komentar
tidak masuk dalam eksekusi program */
#include
main()
{
printf(“Coba\n”);
//Ini adl program pertama
}
Kesimpulan :


Akar dari bahasa C adalah bahasa BCPL yang dikembangkan oleh Martin
Richards pada tahun 1967.



Bahasa C pertama kali digunakan pada komputer Digital Equipment
Corporation PDP-11 yang menggunakan sistem operasi UNIX.



C adalah bahasa yang standar, artinya suatu program yang ditulis dengan
versi bahasa C tertentu akan dapat dikompilasi dengan versi bahasa C yang
lain dengan sedikit modifikasi. Standar bahasa C yang asli adalah standar dari
UNIX.
Konsep Pemrograman

14



Interpreter adalah suatu jenis penerjemah yang menerjemahkan baris per
baris intsruksi untuk setiap saat, sedangkan kompiler merupakan jenis
penerjemah cara kerjanya adalah menerjemahkan seluruh instruksi dalam
program sekaligus.



Program C pada hakekatnya tersusun atas sejumlah blok fungsi.



Fungsi main() merupakan fungsi istimewa yang harus ada pada program,
sebab fungsi inilah yang menjadi titik awal dan titik akhir eksekusi program.



Fungsi printf() merupakan fungsi yang umum dipakai untuk menampilkan
suatu keluaran pada layar peraga.



#include merupakan salah satu jenis pengarah praprosesor (preprocessor
directive) yang dipakai untuk membaca file yang di antaranya berisi deklarasi
fungsi dan definisi konstanta.



Untuk keperluan dokumentasi, di dalam program disertakan komentar
yang ditulis dengan diawali dengan tanda /* dan diakhiri dengan tanda */.

Latihan :
Buatlah potongan program untuk soal-soal di bawah ini
1. Apakah keluaran dari program di bawah ini :
#include main()
{
printf("The black dog was big. "); printf("The cow
jumped over the moon.\n");
}
2. Gunakan pernyataan printf() untuk menampilkan (di layar) nilai dari sebuah
variabel (misalkan namanya = sum) yang bertipe integer.
3. Gunakan pernyataan printf() untuk menampilkan (di layar) string “Welcome”
yang diikuti dengan sebuah perintah ganti baris.
4. Gunakan pernyataan printf() untuk menampilkan (di layar) sebuah karakter
dari variabel yang bertipe karakter (misalkan namanya = letter).
5. Gunakan pernyataan printf() untuk menampilkan (di layar) nilai dari sebuah
variabel float (misalkan namanya = discount).

Konsep Pemrograman

15

6. Gunakan pernyataan scanf() untuk membaca masukan sebuah nilai desimal
dari keyboard dan memasukkannya ke sebuah variabel integer (misalkan
namanya = sum).
7. Gunakan pernyataan scanf() untuk membaca masukan nilai float dari
keyboard dan memasukkannya ke sebuah variabel float (misalkan namanya =
discount_rate).
8. Gunakan pernyataan scanf() untuk membaca masukan sebuah karakter dari
keyboard dan memasukkannya ke sebuah variabel karakter (misalkan
namanya = opr).

Konsep Pemrograman

16

BAB III
DASAR-DASAR PEMROGRAMAN C
3.1

Tujuan
1. Menjelaskan tentang beberapa tipe data dasar (jenis dan jangkauannya)
2. Menjelaskan tentang variabel
3. Menjelaskan tentang konstanta
4. Menjelaskan tentang berbagai jenis operator dan pemakaiannya
5. Menjelaskan tentang instruksi I/O

3.2

Tipe Data Dasar
Data dapat dinyatakan sebagai suatu nilai dalam bentuk variabel atau

konstanta. Variabel dapat memiliki nilai yang tidak tetap atau berubah-ubah,
sedangkan konstanta memiliki nilai yang tetap selama eksekusi berlangsung.
Data berdasarkan jenisnya dibagi menjadi lima kelompok, yang
dinamakan sebagai tipe data dasar. Kelima tipe data dasar yang dimaksud sebagai
berikut.


Bilangan bulat (integer)



Bilangan real presisi-tunggal



Bilangan real presisi-ganda



Karakter



Tak-bertipe void( )

Tabel 3.1 memberikan informasi mengenai ukuran memori yang diperlukan dan
kawasan dari masing-masing tipe data dasar.
Tabel 3.1. Ukuran memori untuk tipe data
Tipe
char
int
float
double

Total bit
Kawasan
Keterangan
8
-128 s/d 127
karakter
32
-2147483648 s/d 2147483647 bilangan integer
32
1.7E-38 s/d 3.4E+38
bilangan real presisi-tunggal
64
2.2E-308 s/d 1.7E+308
bilangan real presisi-ganda
Kata-kunci yang berkaitan dengan tipe data dasar secara berurutan di

Konsep Pemrograman

17

antaranya adalah int (short int, long int, signed int dan unsigned int), float, double,
dan char. Untuk tipe data short int, long int, signed int dan unsigned int, maka
ukuran memori yang diperlukan serta kawasan dari masint-masing tipe data, dapat
dilihat pada Tabel 3.2. .
Tabel 3.2 Ukuran memori untuk tipe data int
Tipe
Total bit
short int
16
long int
32
signed int
32
unsigned int 32

Kawasan
-32768 s/d 32767
-2147483648 s/d 2147483647
-2147483648 s/d 2147483647
0 s/d 4294967295

Keterangan
short integer
long integer
biasa disingkat dengan int
bilangan int tak bertanda

Catatan :
Ukuran dan kawasan 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).
3.3

Variabel

3.3.1 Aturan Pendefinisian Variabel
Aturan penulisan pengenal untuk sebuah variabel, konstanta atau fungsi
yang didefinisikan oleh pemrogram adalah sebagai berikut:


Pengenal harus diawali dengan huruf (A..Z, a..z) atau karakter garis bawah
( _ ).



Selanjutnya dapat berupa huruf, digit (0..9) atau karakter garis bawah atau
tanda dollar ($).



Panjang pengenal boleh lebih dari 31 karakter, tetapi hanya 31 karakter
pertama yang akan dianggap berarti.



Pengenal tidak boleh menggunakan nama yang tergolong sebagai katakata cadangan (reserved words) seperti int, if, while dan sebagainya.

Konsep Pemrograman

18

3.3.2 Mendeklarasikan Variabel
Variabel digunakan dalam program untuk menyimpan suatu nilai, dan nilai
yang ada padanya dapat diubah-ubah selama eksekusi program berlangsung.
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.
Bentuk umum deklarasi variabel:
tipe daftar-variabel;
Pada pendeklarasian varibel, daftar-variabel dapat berupa sebuah variabel
atau beberapa variabel yang dipisahkan dengan koma. Contoh:
int var_bulat1;
float var_pecahan1, var_pecahan2;
3.3.3 Memberikan Nilai ke Variabel
Untuk memberikan nilai ke variabel yang telah dideklarasikan, maka
bentuk umum pernyataan yang digunakan adalah :
nama_variabel = nilai;
Contoh:
int var_bulat = 10;
double var_pecahan = 10.5;
3.3.4 Inisialisasi Variabel
Adakalanya dalam penulisan program, setelah dideklarasikan, variabel
langsung diberi nilai awal. Sebagai contoh yaitu variabel nilai :
int nilai;
nilai = 10;
Dua pernyataan di atas sebenarnya dapat disingkat melalui pendeklarasian yang
disertai penugasan nilai, sebagai berikut :
int nilai= 10;
Cara seperti ini banyak dipakai dalam program C, di samping menghemat
penulisan pernyataan, juga lebih memberikan kejelasan, khususnya untuk variabel
yang perlu diberi nilai awal (diinisialisasi).
Konsep Pemrograman

19

3.4

Konstanta
Konstanta menyatakan nilai yang tetap. Berbeda dengan variabel, suatu

konstanta tidak dideklarasikan. Namun seperti halnya variabel, konstanta juga
memiliki tipe. Penulisan konstanta mempunyai aturan tersendiri, sesuai dengan
tipe masing-masing.


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



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



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 ).



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

3.5

Operator
Operator merupakan simbol atau karakter yang biasa dilibatkan dalam

program untuk melakukan sesuatu operasi atau manipulasi, seperti menjumlahkan
dua buah nilai, memberikan nilai ke suatu variabel, membandingkan kesamaan
dua buah nilai. Sebagian operator C tergolong sebagai operator binary, yaitu
operator yang dikenakan terhadap dua buah nilai (operand). Contoh :
a + b
Simbol + merupakan operator untuk melakukan operasi penjumlahan dari kedua
operand-nya (yaitu a dan b). Karena operator penjumlahan melibatkan dua
operator ini tergolong sebagai operator binary.
-c
Simbol - (minus) juga merupakan operator. Simbol ini termasuk sebagai operator
unary, yaitu operator yang hanya memiliki sebuah operand (yaitu c pada contoh
ini).

Konsep Pemrograman

20

3.5.1

Operator Aritmatika
Operator untuk operasi aritmatika yang tergolong sebagai operator binary

adalah :
*

perkalian

/

pembagian

%

sisa pembagian

+

penjumlahan

-

pengurangan

Adapun operator yang tergolong sebagai operator unary.
-

tanda minus

+

tanda plus

Contoh pemakaian operator aritmatika misalnya untuk memperoleh nilai
diskriminan dari suatu persamaan kuadrat : D = b2 – 4ac
/* File program : diskrim.c
Menghitung diskriminan pers kuadrat ax^2 + bx + c = 0
*/
# include
main()
{
float a,b,c,d;
a = 3.0f;
b = 4.0f;
c = 7.0f;
d = b*b-4*a*c;
printf(“Diskriminan =%f\n”,d);
}
Contoh eksekusi :
Diskriminan = -84.000000
Operator yang telah dituliskan di atas, yang perlu diberi penjelasan lebih
lanjut adalah operator sisa pembagian. Beberapa contoh berikut kiranya akan
memperjelas makna dari operator ini .


Sisa pembagian bilangan 7 dengan 2 adalah 1 (7 % 2  1)



Sisa pembagian bilangan 6 dengan 2 adalah 0 (6 % 2 0)



Sisa pembagian bilangan 8 dengan 3 adalah 1 (8 % 3 2)

Konsep Pemrograman

21

Kegunaan operator ini diantaranya bisa dipakai untuk menentukan suatu
bilangan bulat termasuk ganjil atau genap, berdasarkan logika : “Jika bilangan
habis dibagi dua (sisanya nol), bilangan termasuk genap. Sebaliknya, termasuk
ganjil”.
3.5.2

Operator Penurunan dan Penaikan
Masih berkaitan dengan operasi aritmatika, C menyediakan operator yang

disebut sebagai operator penaikan dan operator penurunan, yaitu :
+
--

operator penaikan
operator penurunan

Operator penaikan digunakan untuk menaikkan nilai variabel sebesar satu.
Penempatan operator terhadap variabel dapat dilakukan di muka atau di
belakangnya, contohnya :
x = x+1;
y = y-1;
Bisa ditulis menjadi :
++x;
--y;
atau :
x++;
y--;
bergantung pada kondisi yang dibutuhkan oleh pemrogram. Di bawah ini adalah
contoh yang akan menunjukkan perbedaan pemakaian dan hasil dari ++x dengan
x++ (atau pemakaian y-- dengan --y).
/* File program : pre_post.c
Contoh penggunaan pre & post Increment operator */
#include
main()
{
int count = 0, loop;
loop = ++count; /* count=count+1; loop=count; */
printf("loop = %d, count = %d\n", loop, count);
loop = count++; /* loop=count; count=count+1; */
printf("loop = %d, count = %d\n", loop, count);
}

Konsep Pemrograman

22

Contoh eksekusi :
loop = 1, count = 1
loop = 1, count = 2
3.5.3

Prioritas Operator Aritmatika
Tabel di bawah ini memberikan penjelasan mengenai prioritas dari

masing-masing operator. Operator yang mempunyai prioritas tinggi akan
diutamakan dalam hal pengerjaan dibandingkan dengan operator yang memiliki
prioritas lebih rendah.
Tabel 3.3 Tabel prioritas operator aritmatika dan urutan pengerjaannya
PRIORITAS
Tertinggi
Terendah

OPERATOR

URUTAN
PENGERJAAN
dari kiri ke kanan

(

)

!

++

*

/

+

-

=

+=

--

+ -

dari kanan ke kiri *)

%

dari kiri ke kanan
dari kiri ke kanan *)

-= *=

/=

dari kanan ke kiri

%=
*)

Bentuk unary + dan unary – memiliki prioritas yang lebih tinggi daripada

bentuk binary + dan binary 3.5.4

Operator Penugasan
Operator penugasan (assignment operator) digunakan untuk memindahkan

nilai dari suatu ungkapan (expression) ke suatu pengenal. Operator pengerjaan
yang umum digunakan dalam bahasa pemrograman, termasuk bahasa C adalah
operator sama dengan (=). Contohnya:
fahrenheit = celcius * 1.8 + 32;
Maka ‘=’ adalah operator penugasan yang akan memberikan nilai dari ungkapan :
celcius * 1.8 + 32 kepada variabel fahrenheit.

Konsep Pemrograman

23

Bahasa C juga memungkinkan dibentuknya statemen penugasan
menggunakan operator pengerjaan jamak dengan bentuk sebagai berikut.
pengenal1 = pengenal2 = … = ungkapan ;
Misalnya:
a = b = 15;
maka nilai variabel ‘a‘ akan sama dengan nilai variabel ‘b‘ akan sama dengan 15.
3.5.5

Operator Kombinasi (Pemendekan)
C menyediakan operator yang dimaksudkan untuk memendekkan

penulisan operasi penugasan. Tabel 3.4 memberikan seluruh kemungkinan
operator kombinasi dalam suatu pernyataan serta pernyataan padanannya.
Tabel 3.4 Seluruh kemungkinan operator kombinasi dan padanannya
x += 2;
x -= 2;
x *= 2;
x /= 2;
x %= 2;
x = 2;
x &= 2;
x |= 2;
x ^= 2;
3.6

kependekan dari
kependekan dari
kependekan dari
kependekan dari
kependekan dari
kependekan dari
kependekan dari
kependekan dari
kependekan dari
kependekan dari

x = x + 2;
x = x - 2;
x = x * 2;
x = x / 2;
x = x % 2;
x = x > 2;
x = x & 2;
x = x | 2;
x = x ^ 2;

Menampilkan Data ke Layar
Untuk keperluan menampilkan data/informasi, C menyediakan sejumlah

fungsi. Beberapa di antaranya adalah berupa printf() dan putchar().
3.6.1. Fungsi printf()
Fungsi printf() merupakan fungsi yang paling umum digunakan dalam
menampilkan data. Berbagai jenis data dapat ditampilkan ke layar dengan
memakai fungsi ini. Bentuk umum pernyataan printf() :
printf(“string kontrol”,argumen1, argumen2,...);
Konsep Pemrograman

24

String kontrol dapat berupa keterangan yang akan ditampilkan pada layar
beserta penentu format (seperti %d, %f, %c). Penentu format dipakai untuk
memberi tahu kompiler mengenai jenis data yang akan ditampilkan. Argumen
sesudah string kontrol (argumen1, argumen2,...) adalah data yang akan
ditampilkan ke layar. Argumen ini dapat berupa variabel, konstanta dan bahkan
ungkapan. Misal :
printf(“%d”,20); /* argumen berupa konstanta */
printf(“%d”,a);
/*argumen berupa variabel */
printf(“%d”,a+20);/*argumen berupa ungkapan */
Penentu format untuk data string atau karakter :
%c
%s

untuk menampilkan sebuah karakter
untuk menampilkan sebuah string

Untuk menampilkan data bilangan, penentu format yang dipakai berupa salah satu
dari bentuk dalam Tabel 3.5.
Tabel 3.5 Penentu format pada printf()
%u
%d
%i
%o
%x
%X
%f
%e
%E
%g
%G
l
L
h

untuk menampilkan data bilangan tak bertanda (unsigned) dalam bentuk
decimal
untuk menampilkan bilangan integer bertanda (signed) dalam bentuk
decimal
untuk menampilkan bilangan bulat tak bertanda dalam bentuk oktal.
untuk menampilkan bilangan bulat tak bertanda dalam bentuk
heksadesimal (%x  notasi yang dipakai : a, b, c, d, e dan f sedangkan
%X  notasi yang dipakai : A, B, C, D, E dan F )
untuk menampilkan bilangan real dalam notasi : dddd.dddddd
untuk menampilkan bilangan real dalam notasi eksponensial
untuk menampilkan bilangan real dalam bentuk notasi seperti %f,%E
atau %F bergantung pada kepresisian data (digit 0 yang tak berarti tak
akan ditampilkan)
Merupakan awalan yang digunakan untuk %d,%u,%x,%X,%o untuk
menyatakan long int (misal %ld). Jika diterapkan bersama %e,%E,%f,
%F,%g atau %G akan menyatakan double
Merupakan awalan yang digunakan untuk %f,%e,%E,%g dan %G untuk
menyatakan long double
Merupakan awalan yang digunakan untuk %d,%i,%o,%u,%x, atau %X,
untuk menyatakan short int

Contoh di bawah ini akan menjelaskan perbedaan format %g, %e dan %f dalam

Konsep Pemrograman

25

menampilkan bilangan real.
/*File program : form_efg.c
Perbedaan format %g, %e dan %f */
#include
main()
{
float x = 251000.0f;
printf(“Format e => %e\n”, x);
printf(“Format f => %f\n”, x);
printf(“Format g => %g\n”, x);
}
Contoh eksekusi :
Format e => 2.510000e+005
Format f => 251000.000000
Format g => 251000
Tampak bahwa penentu format %e menampilkan bilangan dalam bentuk
eksponensial. Jika penentu fomat yang digunakan berupa %f, bagian pecahan
secara default akan ditampilkan dalam bentuk 6 digit. Sedangkan jika digunakan
penentu format %g, maka digit yang tak berarti tak akan ditampilkan.
Untuk menentukan panjang medan yang disediakan bagi tampilan data,
maka sesudah tanda % dalam penentu format dapat disisipi dengan bilangan bulat
yang menyatakan panjang medan.


Untuk data yang berupa bilangan bulat, misal pada :
printf(“Abad %4d”, 20);
%4d menyatakan medan untuk menampilkan bilangan 20 adalah sepanjang 4
karakter.
printf(“Abad %4d”, 20);

Konsep Pemrograman

26



Untuk data yang berupa bilangan real, spesifikasi medannya berupa
m.n
m = panjang medan
n = jumlah digit pecahan
Contoh pada pernyataan :
printf(“Harga : Rp %8.2f\n”, 500.0);
%8.2f menyatakan panjang medan dari bilangan real yang akan ditampilkan
adalah 8 karakter dengan jumlah digit pecahan 2 buah.
printf(“Harga : Rp %8.2f\n”, 500.0);

Kalau hanya jumlah digit pecahan yang perlu ditentukan, panjang medan tak
perlu disertakan, misal :
printf(“%.2f\n”, 600.0);
printf(“%.2f\n”, 7500.25);
hasilnya :
600.00
7500.25


Untuk data yang berupa string, contoh :
printf(“%12s”, “Bahasa C”);
maka akan ditampilkan sebagai berikut

Tampak dalam berbagai jenis data di atas, penentu format yang mengandung
panjang medan, secara default akan menampilkan data dalam bentuk rata
kanan terhadap panjang medan yang diberikan. Untuk data string yang
biasanya dikehendaki untuk ditampilkan dalam bentuk rata kiri, maka
sesudah tanda % pada penentu format %s perlu disisipkan tanda - (minus),

Konsep Pemrograman

27

Konsep Pemrograman

28

contoh :
printf(“%-12s”, “Bahasa C”);
menyatakan bahwa string akan ditampilkan dalam medan dengan panjang 12
karakter dan diatur rata kiri. Sehingga tampilan di atas berubah menjadi :

/* File program : formatpjg.c
Contoh penggunaan format panjang medan data */
#include
main()
{
int nilai1 = 20;
float nilai2 = 500.0f;
printf("Abad %5d\n", nilai1);
printf("%10.2f\n", nilai2);
printf("%10s\n", "Bahasa C");
printf("%-10s\n", "Bahasa C");
}
Contoh eksekusi :
Abad

20
500.00
Bahasa C

Bahasa C
3.6.2. Fungsi putchar()
Fungsi putchar() digunakan khusus untuk menampilkan sebuah karakter di
layar. Penampilan karakter tidak diakhiri dengan perpindahan baris.
Contoh :
putchar(‘A’);
menghasilkan keluaran yang sama dengan
printf(“%c”,’A’);

Konsep Pemrograman

29

3.7

Memasukan Data dari Keyboard
Data dapat dimasukan lewat keyboard saat eksekusi berlangsung. Untuk

keperluan ini, C menyediakan sejumlah fungsi, di antaranya adalah scanf(),
getchar().
3.7.1. Fungsi scanf()
Fungsi

scanf()

merupakan

fungsi

yang

dapat

digunakan

untuk

memasukkan berbagai jenis data. Misalnya untuk memasukkan data jari-jari
lingkaran pada contoh program lingkaran.c, maka penulisan
radius = 20;
dapat diganti menjadi
scanf(“%f”,&radius);
Selengkapnya, terlihat dalam contoh program di bawah ini.
/* File program : lingkaran.c
Menghitung keliling dan luas lingkaran */
#include
main()
{
double radius, keliling, luas;
printf("Masukkan jari-jari lingkaran : ");
scanf("%lf",&radius);
keliling = 2 * 3.14 * radius; /* PI = 3.14 */
luas = 0.5 * 3.14 * radius * radius;
printf("\nData lingkaran\n");
printf("Jari-jari = %8.2lf\n", radius);
printf("Keliling = %8.2lf\n", keliling);
printf("Luas = %8.2lf\n", luas);
}
Contoh eksekusi :
Masukkan jari-jari lingkaran = 5
Data lingkaran
Jari-jari =

5.00

Keliling =

31.40

Luas =

39.25
Konsep Pemrograman

30

Bentuk scanf() sesungguhnya menyerupai fungsi printf(). Fungsi ini
melibatkan penentu format yang pada dasarnya sama digunakan pada printf().
Secara umum bentuk scanf() adalah sebagai berikut :
scanf(“string kontrol”, daftar_argumen);
Dengan string kontrol dapat berupa :


Penentu format



Karakter spasi-putih (white-pace)



Karakter bukan spasi-putih

Penentu format menyatakan jenis data yang akan dibaca. Pada scanf() penentu
format dapat berupa salah satu di antara yang ada pada Tabel 3.6.
Tabel 3.6 Penentu format scanf()
%c
%s
%i atau %d
%e atau %f
%o
%x
%u
l

membaca sebuah karakter
membaca sebuah string (dibahas pada bab vii)
membaca sebuah integer desimal
membaca sebuah bilangan real (bisa dalam bentuk eksponensial)
membaca sebuah integer oktal
membaca sebuah integer heksadesimal
membaca sebuah integer tak bertanda
awalan untuk membaca data long int (misal : %ld) atau untuk
membaca data double (misal : %lf)

L
h

awalan untuk membaca data long double (misal : %Lf)
awalan untuk membaca data short int

Pada bentuk scanf(), daftar_argumen dapat berupa satu atau beberapa
argumen dan haruslah berupa alamat. Misalnya hendak membaca bilangan real
dan ditempatkan ke variabel radius, maka yang ditulis dalam scanf() adalah
alamat dari radius. Untuk menyatakan alamat dari variabel, di depan variabel
dapat ditambahkan tanda & (tanda & dinamakan sebagai operator alamat).
Sehingga &radius menyatakan alamat dari radius. Dalam bentuk yang lengkap :
scanf(“%f”, &radius);
berarti (bagi komputer) : “bacalah sebuah bilangan real (%f) dan tempatkan ke
alamat dari radius (&radius)”.
3.7.2. Fungsi getchar()
Fungsi getchar() digunakan khusus untuk menerima masukan berupa

Konsep Pemrograman

31

sebuah karakter dari keyboard. Contoh :
c = getchar();
scanf(“%c”, &c);
maka variabel c akan berisi karakter yang diketikkan oleh user atau EOF (end of
file) jika ditemui akhir dari file.
Kesimpulan :









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
Variabel yang akan digunakan haruslah dideklarasikan terlebih dahulu,
adakalanya langsung dideklarasikan sekaligus diberi nilai (diinisialisasi)
Operator merupakan simbol atau karakter yang biasa dilibatkan dalam
program untuk melakukan sesuatu operasi atau manipulasi
Operator yang terkait dengan operasi aritmatika antara lain adalah operator
aritmatika, operator penurunan dan penaikan, operator penugasan
(assignment) dan operator kombinasi (pemendekan)
Untuk menampilkan data/informasi ke layar digunakan fungsi printf() dan
putchar()
Untuk memasukkan data melalui keyboard saat eksekusi berlangsung
digunakan fungsi scanf() dan getchar()

Latihan :
1. Mengapa nama-nama variabel di bawah ini tidak valid ?
(a)

value$sum

(b)

exit flag

(c)

3lotsofmoney

(d)

char

2. Berapakah hasil akhir dari program berikut :
#include

main()
{
int a = 22;
Konsep Pemrograman

32

a =
a +
5; a
= a2;
printf("a = %d\n", a);
}
3. Berapakah nilai x setelah pernyataan-pernyataan berikut dijalankan, apabila x
bertipe int :
(a) x = (2 + 3) – 10 * 2;
(b) x = (2 + 3) – (10 * 2);
(c) x = 10 % 3 * 2 + 1;
4. Nyatakan dalam bentuk pernyataan :
(a) y = bx2 + 0,5x – c
(b)

y=

0,3xz
2a

5. Apa hasil eksekusi dari program berikut :
#include

main()
{
char kar = ‘A’;
kar = kar + 32;
printf("%c\n",k
ar);
}

Konsep Pemrograman

33

BAB IV
PENGAMBILAN KEPUTUSAN
4.1

Tujuan
1. Menjelaskan tentang operator kondisi (operator relasi dan logika)
2. Menjelaskan penggunaan pernyataan if
3. Menjelaskan penggunaan pernyataan if-else
4. Menjelaskan penggunaan pernyataan if dalam if
5. Menjelaskan penggunaan pernyataan else-if
6. Menjelaskan penggunaan pernyataan switch

4.2

Operator Kondisi
Banyak persoalan yang diperlukan untuk membuat keputusan. Contoh

yang sederhana berupa cara mengatur agar komputer bisa menyimpulkan bahwa
suatu bilangan merupakan bilangan genap atau bilangan ganjil. Untuk keperluan
pengambilan keputusan semacam itu, C menyediakan beberapa jenis pernyataan,
berupa


Pernyataan if



Pernyataan if-else, dan



Pernyataan switch

Pernyataan-pernyataan tersebut memerlukan suatu kondisi, sebagai basis dalam
pengambilan keputusan. Kondisi umum yang dipakai berupa keadaan benar dan
salah. Oleh karena itu pembahasan pada bab ini akan diawali dengan pengenalan
operator yang membentuk kondisi benar dan salah.
Operator yang digunakan untuk menghasilkan kondisi benar dan salah,
bisa berupa operator relasi dan bisa juga berupa operator logika. Berikut ini
dibahas masing-masing jenis operator serta tabel prioritas masing-masing
operator.

Konsep Pemrograman

34

4.2.1. Operator Relasi
Operator relasi biasa dipakai untuk membandingkan dua buah nilai. Hasil
pembandingan berupa keadaan benar atau salah. Keseluruhan operator relasi pada
C ditunjukkan pada Tabel 4.1.
Tabel 4.1. Operasi relasi
Operator
>

Makna
Lebih dari

>=

Lebih dari atau sama dengan

<

Kurang dari

2

Salah

1 'A') && (kar < 'Z')
Hasil operasi logika && adalah benar hanya jika kar > 'A' dan kar <
'Z' (dalam hal ini yang diperbandingkan adalah kode ASCII dari karakter
tsb).



(pilihan == 'Y') || (pilihan == 'y')
Hasil operasi logika || adalah benar jika pilihan berupa 'Y' atau 'y'

Sedangkan bentuk pemakaian operator logika ! adalah :
!operand
dengan operand dapat berupa ekspresi logika ataupun ekspresi relasi.
Hasil operasi ! bernilai :


1 jika operand bernilai salah



0 jika operand bernilai benar

Perhatikan contoh potongan program di bawah ini :
if (!sudah_benar)
printf(“Masukan Anda salah!\n”);
Pada contoh potongan program di atas, dilakukan pengecekan kondisi terhadap
nilai dari variabel sudah_benar. Jika variabel sudah_benar bernilai 0, maka
kondisi !sudah_benar akan bernilai benar (true) sehingga instruksi :
printf(“Masukan Anda salah!\n”);
akan diproses. Penjelasan lebih rinci tentang pengecekan kondisi dengan
pernyataan if dibahas pada sub bab 3.2.
4.2.3. Prioritas Operator Logika dan Relasi
Tabel 4.4 memberikan penjelasan singkat mengenai prioritas di antara
berbagai operator logika dan operator relasi.

Konsep Pemrograman

37

Tabel 4.4 Prioritas operator logika dan relasi
Tertinggi :

Terendah :

!
>
>=
= = !=
&&
||

<

'A') && (kar < 'Z')
sama saja kalau ditulis menjadi
kar > 'A' && kar < 'Z'
Hanya saja penulisan dengan menggunakan tanda kurung akan lebih memberikan
kejelasan.
4.3

Pernyataan if

Gambar 4.1. Diagram alir if
Pernyataan if mempunyai bentuk umum :
if (kondisi)
pernyataan;
Bentuk ini menyatakan :


Jika kondisi yang diseleksi adalah benar (bernilai logika = 1), maka
pernyataan yang mengikutinya akan diproses.



Sebaliknya, jika kondisi yang diseleksi adalah tidak benar (bernilai
logika = 0), maka pernyataan yang mengikutinya tidak akan diproses.

Mengenai kodisi harus ditulis diantara tanda kurung, sedangkan pernyataan dapat

Konsep Pemrograman

38

berupa sebuah pernyataan tunggal, pernyataan majemuk atau pernyataan kosong.
Diagram alir dapat dilihat seperti Gambar 4.1.
Contoh penggunaan pernyataan if, misalkan untuk menentukan besarnya
potongan harga yang diterima oleh seorang pembeli, berdasarkan kriteria:


Tidak ada potongan harga jika total pembelian kurang dari Rp. 100.000
(dalam hal ini potongan harga diinisialisasi dengan nol).



Bila total pembelian lebih dari atau sama dengan Rp. 100.000, potongan
harga yang diterima dirubah menjadi sebesar 5% dari total pembelian.

/* File program : discount.c
Contoh penggunaan if untuk menghitung nilai discount */
#include
main()
{
double total_pembelian, discount = 0;
/* discount diinisialisasi dengan nilai 0 */
printf("Total pembelian = Rp “);
scanf("%lf", &total_pembelian);
if(total_pembelian >= 100.000)
discount = 0.05 * total_pembelian;
printf("Besarnya
discount
=
Rp
%.2lf\n",
discount);
}
Contoh eksekusi :
Total pembelian
Besarnya discount

= Rp 200000
= Rp 10000.00

Untuk pernyataan if yang diikuti dengan pernyataan majemuk, bentuknya
adalah sebagai berikut :
if (kondisi)
{ /* tanda awal pernyataan majemuk*/
pernyataan-1;
pernyataan–2;
.
.
.
pernyataan-n;
} /* tanda akhir pernyataan majemuk */
Pernyataan-pernyataan yang berada dalam tanda kurung { dan }