EMROGRAMAN C++
Dokumen ini dapat digunakan, dimodifikasi dan disebarkan secara bebas untuk
tujuan bukan komersial (nonprofit), dengan syarat tidak menghapus atau merubah
atribut penulis dan pernyataan copyright yang disertakan dalam setiap dokumen.
Tidak diperbolehkan melakukan penulisan ulang,kecuali mendapatkan ijin terlebih
dahulu dari penulis.
PENDAHULUAN C++
A. C++ dan C
Berbicara tentang C++ dan C sebagai bahasa pendahulunya, C
merupakan termasuk bahasa pemrograma n tingkat menengah.
Pencipta C adalah Brian W. Kernighan dan Dennis M. Ritchie
pada tahun 1972. C merupakan bahasa pemrograman
terstruktur yang membagi program ke dalam sejumlah blok
(sub program). Tujuannya adalah untuk memudahkan dalam
pembuatan dan pengembangan program. Program yang ditulis
dengan C mudah sekali dipindahkan dari satu jenis mesin ke mesin lain. Hal ini
karena adanya standarisasi C yaitu ANSI (American National Standards Institute)
yang menjadi acuan para pembuat compiler C.
C++ diciptakan satu dekade setelah C. C++ diciptakan oleh Bjarne Stroustroup
dari Laboratorium Bell, AT&T pada tahun 1983. Pada awalnya C++ diberi nama
“A better C”. Nama C++ sendiri diberinama oleh Rick Mascitti. Adapun tanda ++
berasal dari operator increment pada bahasa C.Keistimewaan C++ adalah karena bahasa ini mendukung OOP (Object Oriented Programming). Tujuan utama pembuatan C++ adalah untuk meningkatkan produktivitas pemrogram dalam membuat aplikasi. Kebanyakan pakar setuju bahwa OOP dan C++ mampu mengurangi kompleksitas terutama program yang terdiri dari 10.000 baris lebih, bahkan dapat meningkatkan produktivitas 2x lipat dari C, Pascal dan Basic.
B. Object Oriented Programming (OOP)
Ide dasar OOP adalah mengkombinasikan data dan fungsi untuk mengakses data
menjadi sebuah kesatuan unit. Unit ini dikenal dengan obyek. Sebagai gambaran
untuk mempurmudah memahaminya, obyek sebenarnya dapat mencerminkan
pola kerja manusia sehari-hari. Sebuah obyek dapat diibaratkan sebagai
departemen di dalam sebuah perusahaan bisnis, misalnya departemen
penjualan, akunting, dan personalia. Pembagian departemen dalam perusahaan merupakan upaya untuk memudahkan pengoperasian perusahaan. Sebagai gambaran, jika Anda seorang manajer penjualan di kantor pusat ingin mengetahui data para salesmen di kantor cabang, apa yang Anda lakukan? Langkah yang Anda tempuh pasti bukan datang ke kantor cabang dan mencari data-data tersebut. Untuk memudahkan tugas Anda
cukup Anda menyuruh sekretaris untuk meminta informasi. Masalah bagaimana
dan siapa yang mencarikan bukanlah urusan Anda. Analogi dengan hal itu, kalau
seseorang bermaksud menggunakan obyek, ia cukup mengirim pesan ke obyek
dan obyek itu sendiri yang akan menanganinya.
C. Program C++
Program C++ dapat dibuat menggunakan sebarang editor teks maupun editor
sekaligus compilernya. Program utama berekstensi (.CPP). Pada saat kompilasi
program utama bersama dengan file header (.h) akan diterjemahkan oleh
compiler menjadi file obyek (.OBJ). Selanjutnya file obyek ini bersama-sama
dengan file obyek lain dan file library (.LIB) dikaitkan menjadi satu oleh linker.
Hasilnya adalah file (.EXE) executable.
D. Compiler C++
Compiler C++ yang telah beredar di pasaran antara lain Microsoft C/C++ dan
Visual C++. Keduanya dari Microsoft. Sementara Borland international juga
mengeluarkan Turbo C++ dan Borland C++.
PENGENALAN PROGRAM C++
A. Hello World
Berikut ini contoh program C++ yang sederhana
#include <iostream.h>
void main()
{
cout << “Hello world.\n”;
}
Setelah dicompile dan dirun, hasilnya adalah muncul pada layar Hello World.
B. Fungsi main()
Program C++ memang tidak akan pernah lepas dari suatu fungsi/function. Hal ini
karena merupakan ciri OOP. Sebuah program C++ minimal memiliki satu fungsi
yaitu main(). Fungsi ini merupakan awal program utama. Tulisan main()
merupakan nama fungsi, sedangkan bagian yang diapit dengan { dan } disebut
blok (tubuh fungsi). Dalam hal ini { merupakan tanda awal blok dan } adalah
tanda akhir blok. Seperti halnya dalam Pascal, { dalam Pascal identik dengan
BEGIN, sedangkan } identik dengan END. Perintah void bermakna bahwa fungsi
main() tidak mengembalikan nilai/value.
Cara penulisan fungsi main() tidak mutlak seperti di atas. Berikut ini cara
penulisan yang lain
#include <iostream.h>
int main()
{
cout << “Hello world.\n”;
return 0;
}
C. Statement
Perintah cout << “Hello world.\n”; merupakan salah satu contoh
statement. Perintah tersebut digunakan untuk mencetak tulisan pada layar.
Setiap statement harus diakhiri dengan ;
Hal yang menjadi catatan penting di sini bahwa program C++ bersifat
Case Sensitive, artinya huruf besar dan kecil dianggap beda.
Tanda \n digunakan untuk pindah baris.
D. File Header
Pada contoh di atas, iostream.h disebut file header. File header tersebut
diperlukan agar perintah cout bisa dijalankan. Apabila file header tersebut
dihapus, maka akan terjadi error. Untuk mengakses file header, digunakan
perintah #include <file header>, atau #include “file header”.
Dalam suatu program bisa jadi melibatkan lebih dari satu file header.
Catatan:
Perintah cout << “Hello world.\n”;
dapat diganti dengan printf(“Hello world.\n”);
Akan tetapi untuk bisa menggunakan printf diperlukan file header stdio.h
E. Menghapus Layar
Dalam C++, perintah clrscr() ; digunakan untuk menghapus/membersihkan
layar. Perintah ini akan bisa dijalankan setelah ditambahkan file header conio.h
#include <iostream.h>
#include <conio.h>
void main()
{
clrscr();
cout << “Hello world.\n”;
}
F. Komentar
Anda dapat menambahkan komentar pada program Anda. Berikut ini style untuk
menambah komentar.
// ———————————-
// ini adalah komentarku yang pertama
// ———————————-
atau
/* ———————————-
ini adalah komentarku yang pertama
———————————- */
PENDAHULUAN
A. SOURCE PROGRAM
Suatu source program (program sumber) C dapat ditulis di dalam satu atau lebih source file. Source-file C adalah suatu file teks yang berisi semua atau bagian dari source-program C.
Suatu source program (program sumber) C dapat ditulis di dalam satu atau lebih source file. Source-file C adalah suatu file teks yang berisi semua atau bagian dari source-program C.
Suatu source-program C dibentuk oleh sekurang-kurangnya satu buah fungsi. Di antara fungsi-fungsi yang ada, terdapat satu fungsi yang akan dikerjakan pertama kali jika program tersebut dijalankan. Fungsi tersebut bernama main.
Penulisan program C bebas dari aturan penggunaan kolom-kolom yang kaku. Suatu statement (pernyataan) dapat di tuliskan di kolom mana pun. Suatu statement dipandang berakhir jika ditemukan tanda akhir statement. Oleh sebab itu, di dalam suatu baris boleh terdapat lebih dari satu statement. Begitu pula, suatu statement yang panjang boleh menggunakan lebih dari satu baris.
Berikut ini adalah contoh program klasik C untuk mencetak string-literal kalimat “Hello, world!”.
Program-1.1: hello.c
————————
#include <stdio.h>
————————
#include <stdio.h>
main()
{
printf(“Hello, world!\n”);
}
————————
{
printf(“Hello, world!\n”);
}
————————
B. MENGKOMPILASI PROGRAM
Suatu source program C baru dapat dijalankan setelah melalui tahap kompilasi dan penggabungan. Tahap kompilasi dimaksudkan untuk memeriksa source-program sesuai dengan kaidah-kaidah yang berlaku di dalam bahasa pemrograman C. Tahap kompilasi akan menghasilkan relocatable object file. File-file objek tersebut kemudian digabung dengan perpustakaan-fungsi, yang sesuai, untuk menghasilkan suatuexecutable-program.
Suatu source program C baru dapat dijalankan setelah melalui tahap kompilasi dan penggabungan. Tahap kompilasi dimaksudkan untuk memeriksa source-program sesuai dengan kaidah-kaidah yang berlaku di dalam bahasa pemrograman C. Tahap kompilasi akan menghasilkan relocatable object file. File-file objek tersebut kemudian digabung dengan perpustakaan-fungsi, yang sesuai, untuk menghasilkan suatuexecutable-program.
Cara melakukan kompilasi program C dapat dibaca pada petunjuk kompiler yang digunakan.
Untuk contoh program di atas, jika kompilasi dilakukan dan sukses maka anda akan memperoleh object-filehello.obj dan executable-program hello.exe
MENGENAL BAHASA PEMROGRAMAN C
A. TUJUH ELEMEN DASAR PEMROGRAMAN
Borland mengemukanan ada tujuh elemen dasar pemrograman yang harus dipahami oleh para pemrogram, yaitu:
1. ambil informasi dan berikan kepada program.
2. miliki tempat untuk menyimpan informasi di atas.
3. berikan instruksi yang benar untuk memanipulasi data.
4. ambil kembali data, baik berupa data mentah atau hasil olahan, untuk diinformasikan pada pemakai.
Borland mengemukanan ada tujuh elemen dasar pemrograman yang harus dipahami oleh para pemrogram, yaitu:
1. ambil informasi dan berikan kepada program.
2. miliki tempat untuk menyimpan informasi di atas.
3. berikan instruksi yang benar untuk memanipulasi data.
4. ambil kembali data, baik berupa data mentah atau hasil olahan, untuk diinformasikan pada pemakai.
Untuk kebutuhan tersebut, Anda dapat mengorganisasikan instruksi-instruksi sehingga:
5. beberapa instruksi hanya dilaksanakan jika suatu kondisi terpenuhi.
6. beberapa instruksi dapat dilaksanakan secara berulang.
7. beberapa instruksi dapat dikelompokkan ke dalam bagian-bagian yang dapat dilaksanakan dari berbagai lokasi program.
6. beberapa instruksi dapat dilaksanakan secara berulang.
7. beberapa instruksi dapat dikelompokkan ke dalam bagian-bagian yang dapat dilaksanakan dari berbagai lokasi program.
Ketujuh elemen dasar pemrograman tersebut secara berturut-turut dinamakan input, data, operasi,output, conditional-execution, loop, dan subprogram.
B. ELEMEN-ELEMEN BAHASA
1. Karakter
Huruf, Angka, dan Garis-bawah
Yang dimaksud dengan huruf adalah A s/d Z dan a s/d z, angka adalah 0 s/d 9, dan garis-bawah adalah _.
1. Karakter
Huruf, Angka, dan Garis-bawah
Yang dimaksud dengan huruf adalah A s/d Z dan a s/d z, angka adalah 0 s/d 9, dan garis-bawah adalah _.
White-space
Karakter-karakter space, tab, line-feed, carriage-return, form-feed, vertical-tab, dan new-line disebut white-space character karena mereka mempunyai fungsi sebagai spasi antara kata-kata atau baris-baris. Setiap konstanta dan identifier selalu dipisahkan oleh karakter-karakter ini.
Karakter-karakter space, tab, line-feed, carriage-return, form-feed, vertical-tab, dan new-line disebut white-space character karena mereka mempunyai fungsi sebagai spasi antara kata-kata atau baris-baris. Setiap konstanta dan identifier selalu dipisahkan oleh karakter-karakter ini.
Tanda-baca dan karakter-khusus
Tanda-baca dan karakter-khusus dalam bahasa C mempunyai kegunaan yang bervariasi, dari pengorganisasian teks pogram sampai pendeinisian tugas-tugas yang akan dilakukan oleh kompiler. Karakter-karakter yang termasuk ke dalam kelompok ini adalah:
Tanda-baca dan karakter-khusus dalam bahasa C mempunyai kegunaan yang bervariasi, dari pengorganisasian teks pogram sampai pendeinisian tugas-tugas yang akan dilakukan oleh kompiler. Karakter-karakter yang termasuk ke dalam kelompok ini adalah:
, . ; : ? ‘ ” ( ) [ ] { } < > ! | / \ ~ + # % & ^ * – =
Escape Sequence
Karakter-karakter escape-sequence adalah suatu urutan karakter yang digunakan untuk mewakili ekspresi suatu karakter lain. Kumpulan karakter ini selalu dimulai oleh karakter backslash (\) dan diikuti oleh suatu huruf atau suatu kombinasi angka.
Daftar karakter-karakter escape-sequence adalah sebagai berikut.
Karakter-karakter escape-sequence adalah suatu urutan karakter yang digunakan untuk mewakili ekspresi suatu karakter lain. Kumpulan karakter ini selalu dimulai oleh karakter backslash (\) dan diikuti oleh suatu huruf atau suatu kombinasi angka.
Daftar karakter-karakter escape-sequence adalah sebagai berikut.
\n new-line
\t horizontal-tab
\v vertical-tab
\b backspace
\r carriage-reurn
\f form-feed
\a bell
\’ tanda-petik
\” tanda-kutip
\\ backslash
\ddd karakter ASCII dalam notasi oktal
\xddd karakter ASCII dalam notasi heksadesimal
\t horizontal-tab
\v vertical-tab
\b backspace
\r carriage-reurn
\f form-feed
\a bell
\’ tanda-petik
\” tanda-kutip
\\ backslash
\ddd karakter ASCII dalam notasi oktal
\xddd karakter ASCII dalam notasi heksadesimal
2. Operator
Operator (lambang-operasi) adalah simbol-simbol, baik berupa satu atau beberapa karakter, yang menetapkan bagaimana suatu nilai dimanipulasi. itu adalah:
Operator (lambang-operasi) adalah simbol-simbol, baik berupa satu atau beberapa karakter, yang menetapkan bagaimana suatu nilai dimanipulasi. itu adalah:
! ~ – + * / % < > = | ^ ‘ ++ — -= += /= %= << >> ==
!= <= >= |= && || ?: &= ^= <<= >>=
!= <= >= |= && || ?: &= ^= <<= >>=
3. Konstanta
Integer Constant
Suatu integer-constant adalah angka desimal, oktal, atau heksadesimal yang mewakili suatu nilai bilangan bulat.
Suatu konstanta-desimal (berbasis-sepuluh) dibentuk oleh sekumpulan angka 0 s/d 9, dengan ketentuan tidak dimulai oleh angka 0. Suatu konstanta-oktal (berbasis-delapan) dibentuk oleh sekumpulan angka 0 s/d 7, dengan ketentuan dimulai oleh angka 0. Suatu konstanta-heksadesimal (berbasis-enambelas) dibentuk oleh sekumpulan angka 0 s/d 9 dan atau huruf A s/d F atau a s/d f, dengan ketentuan dimulai oleh angka-huruf 0X atau 0x. Contoh:
Integer Constant
Suatu integer-constant adalah angka desimal, oktal, atau heksadesimal yang mewakili suatu nilai bilangan bulat.
Suatu konstanta-desimal (berbasis-sepuluh) dibentuk oleh sekumpulan angka 0 s/d 9, dengan ketentuan tidak dimulai oleh angka 0. Suatu konstanta-oktal (berbasis-delapan) dibentuk oleh sekumpulan angka 0 s/d 7, dengan ketentuan dimulai oleh angka 0. Suatu konstanta-heksadesimal (berbasis-enambelas) dibentuk oleh sekumpulan angka 0 s/d 9 dan atau huruf A s/d F atau a s/d f, dengan ketentuan dimulai oleh angka-huruf 0X atau 0x. Contoh:
Desimal Oktal Heksadesimal
10 012 0xA
132 0204 0x84
32179 076663 0x7DB3
10 012 0xA
132 0204 0x84
32179 076663 0x7DB3
Floating-point Constant
Suatu floating-point constant adalah angka desimal yang mewakili suatu nilai bilangan nyata. Nilai dari konstanta ini meliputi porsi-porsi bilangan bulat, pecahan, dan eksponen. Aturan penulisan konstanta ini adalah seperti dalam format berikut.
Suatu floating-point constant adalah angka desimal yang mewakili suatu nilai bilangan nyata. Nilai dari konstanta ini meliputi porsi-porsi bilangan bulat, pecahan, dan eksponen. Aturan penulisan konstanta ini adalah seperti dalam format berikut.
[digit][.digit][E|e[+|-]digit]
Di mana digit adalah berupa sekumpulan angka 0 s/d dan E atau e sebagai simbol eksponen. Contoh:
12E-3 berarti 12 kali 10 pangkat -3
6.25E+4 berarti 6.25 kali 10 pangkat 4
6.25E+4 berarti 6.25 kali 10 pangkat 4
Character Constant
Suatu character-constant dibentuk dengan menempatkan suatu karakter di antara dua tanda-petik (‘ ‘). Suatu escape-character dipandang sebagai satu karakter, oleh karena itu dapat dijadikan suatu character constant. Contoh:
Suatu character-constant dibentuk dengan menempatkan suatu karakter di antara dua tanda-petik (‘ ‘). Suatu escape-character dipandang sebagai satu karakter, oleh karena itu dapat dijadikan suatu character constant. Contoh:
‘A’
‘\n’
‘x41’
‘\n’
‘x41’
String-Literal
Suatu string-literal dibentuk oleh satu atau sekumpulan karakter yang ditempatkan di antara dua tanda-kutip. Contoh:
Suatu string-literal dibentuk oleh satu atau sekumpulan karakter yang ditempatkan di antara dua tanda-kutip. Contoh:
“BANDUNG”
“Hari Jum\’at”
“Tit\a\a”
“Baris-1\nBaris-2”
“Hari Jum\’at”
“Tit\a\a”
“Baris-1\nBaris-2”
4. Identifier
Identifier adalah nama yang diberikan untuk konstanta-bernama, variabel, jenis-data, fungsi, dan label di dalam program. Setiap identifier yang akan digunakan harus didefinisikan sebelumnya.
Suatu identifier dibentuk oleh satu atau beberapa buah karakter, sebanyak-banyaknya 31 karakter, yang dimulai oleh suatu huruf atau garis-bawah dan dapat diikuti oleh huruf, angka, atau garis-bawah. Catatlah, bahasa C membedakan penggunaan huruf-besar dan huruf-kecil dalam suatu identifier. Contoh:
Identifier adalah nama yang diberikan untuk konstanta-bernama, variabel, jenis-data, fungsi, dan label di dalam program. Setiap identifier yang akan digunakan harus didefinisikan sebelumnya.
Suatu identifier dibentuk oleh satu atau beberapa buah karakter, sebanyak-banyaknya 31 karakter, yang dimulai oleh suatu huruf atau garis-bawah dan dapat diikuti oleh huruf, angka, atau garis-bawah. Catatlah, bahasa C membedakan penggunaan huruf-besar dan huruf-kecil dalam suatu identifier. Contoh:
ClrScr
H2o
TempatTinggal
Nama_Siswa
Kota
Pilihan
H2o
TempatTinggal
Nama_Siswa
Kota
Pilihan
5. Keyword
Untuk kegunan dalam pemrograman, bahasa C mencadangkan sejumlah identifier yang telah didefinisikan, disebut keyword, bagi pemrogram. Kata-kata ini merupakan instruksi terhadap C untuk mengerjakan/menyatakan suatu hal tertentu. Oleh karena itu semua keyword tidak dapat didefiniskan-ulang dan hanya digunakan sesuai dengan peruntukannya. Berikut adalah daftar keyword dalam bahasa C.
Untuk kegunan dalam pemrograman, bahasa C mencadangkan sejumlah identifier yang telah didefinisikan, disebut keyword, bagi pemrogram. Kata-kata ini merupakan instruksi terhadap C untuk mengerjakan/menyatakan suatu hal tertentu. Oleh karena itu semua keyword tidak dapat didefiniskan-ulang dan hanya digunakan sesuai dengan peruntukannya. Berikut adalah daftar keyword dalam bahasa C.
auto break case char const continue default do double else
enum extern float for goto if int long register return short
signed sizeof static struct switch typedef union unsigned void
volatile while
enum extern float for goto if int long register return short
signed sizeof static struct switch typedef union unsigned void
volatile while
Di samping keyword-keyword di atas, bahasa C menyediakan beberapa keyword lain yang dapat digunakan dalam beberapa implementasi tertentu. Itu adalah:
far near huge cdecl pascal
JENIS DATA, KONSTANTA, VARIABEL, LAMBANG OPERASI, DAN EKSPRESI
Catatan: maaf tabel-tabelnya tidak rapih, saya belum mengetahui penggunaan tabel di dalam forum ini
Variabel & konstanta merupakan objek data dasar yang dimanipulasi di dalam suatu program. Setiap konstanta dan variabel harus jelas jenis datanya. Untuk itu mereka harus dideklarasikan sebelumnya.
Operator (lambang operasi) digunakan untuk menetapkan apa yang akan dilakukan terhadap konstanta/variabel tersebut.
Ekspresi adalah suatu bangun algoritma, berdasarkan aturan-aturan tertentu, untuk menghitung suatu nilai. Suatu ekspresi dibentuk oleh variabel-variabel, konstanta-konstanta dan fungsi-fungsi (operand) yang dikombinasikan oleh lambang-lambang operasi (operator).
Aturan yang berlaku dalam suatu ekspresi adalah sebagai berikut
1. suatu ekspresi akan mendahulukan pengoperasian operator yang tingkatannya paling tinggi.
2. suatu ekspresi akan mendahulukan pengoperasian operator terdepan pertama jika operator-operator yang digunakan mempunyai tingkatan yang sama.
3. suatu ekspresi yang mengandung operasi prioritas (berada dalam tanda kurung), akan mendahulukan pelaksanaan operasi prioritas tersebut.
4. operand yang digunakan pada suatu ekspresi harus mempunyai atau menghasilkan jenis data yang sama.
1. suatu ekspresi akan mendahulukan pengoperasian operator yang tingkatannya paling tinggi.
2. suatu ekspresi akan mendahulukan pengoperasian operator terdepan pertama jika operator-operator yang digunakan mempunyai tingkatan yang sama.
3. suatu ekspresi yang mengandung operasi prioritas (berada dalam tanda kurung), akan mendahulukan pelaksanaan operasi prioritas tersebut.
4. operand yang digunakan pada suatu ekspresi harus mempunyai atau menghasilkan jenis data yang sama.
A. JENIS DATA UTAMA
Pada dasarnya C hanya mengenal empat jenis kata, yaitu char, int, float, dan double.
Pada dasarnya C hanya mengenal empat jenis kata, yaitu char, int, float, dan double.
Suatu jenis data menetapkan suatu rentangs nilai yang dapat dimiliki oleh suatu konstanta dan variabel, atau dihasilkan oleh suatu ekspresi atau fungsi. (Nicklaus Wirth 1976:4)
Dengan demikian, jika anda akan menggunakan suatu konstanta, variabel, atau fungsi maka mereka harus ditetapkan jenis datanya, karena setiap operasi yang dibentuk didasarkan pada suatu jenis data tertentu.
Jenis data char merupakan suatu byte tunggal yang mempunyai kemampuan untuk memegang suatu data karakter. Jenis data int merupakan suatu jenis data yang mempunyai kemampuan untuk memegang suatu nilai bilangan bulat. Jenis data float merupakan suatu jenis data yang mempunyai kemampuan untuk memegang suatu nilai bilangan nyata berpresisi tunggal. Jenis data double merupakan suatu jenis data yang mempunyai kemampuan untuk memegang suatu nilai bilangan nyata berpresisi ganda.
Perluasan jenis data int diwujudkan dalam dua jenis data lain, yaitu short dan long, yang berbeda kemampuannya dalam menyimpan rentang nilai yang diberikan kepadanya.
Jenis jenis data char, int, short, dan long dapat didahului oleh keyword signed atau unsigned untuk menyatakan bahwa jenis data tersebut meliputi bilangan bulat negatif atau tidak. Jika itu tidak dinyatakan, maka dianggap signed.
Jenis jenis data char, int, short, dan long dapat didahului oleh keyword signed atau unsigned untuk menyatakan bahwa jenis data tersebut meliputi bilangan bulat negatif atau tidak. Jika itu tidak dinyatakan, maka dianggap signed.
Rentang nilai dan ukuran setiap jenis data tergantung pada jenis mesin dan kompiler yang digunakan.
Code:
Jenis data ukuran Rentang nilai
-------------- ------ ---------------------------
char 1 byte -128 s/d 127
unsigned char 1 byte 0 s/d 255
signed int 2 byte -32,768 s/d 32,767
unsigned int 2 byte 0 s/d 65,535
short 2 byte -32,768 s/d 32,767
unsigned short 2 byte 0 s/d 65,535
long 2 byte -2,147,483,648 s/d 2,147,463,647
unsigned long 4 byte 0 s/d 4,294,967,295
float 4 byte 3.4E-38 s/d 3.4E+38
double 8 byte 1.7E-308 s/d 1.7E+308
Catatan:
* akhiran L perlu dituliskan dibelakang konstanta bilangan bulat untuk membedakan jenis data long atau unsigned long dari jenis data bilangan bulat lainnya.
* Jenis data string dipandang sebagai array karakter
* akhiran L perlu dituliskan dibelakang konstanta bilangan bulat untuk membedakan jenis data long atau unsigned long dari jenis data bilangan bulat lainnya.
* Jenis data string dipandang sebagai array karakter
B. VARIABEL
Variabel adalah suatu besaran yang nilainya dapat berubah pada saat program berlangsung. Setiap variabel dinyatakan oleh suatu identifier.
Setiap variabel harus dideklarasikan terlebih dahulu sebelum digunakan di dalam program. Setiap variabel yang dideklarasikan harus dinyatakan jenis datanya. Bentuk umum pendeklarasian variabel adalah sebagai berikut.
Variabel adalah suatu besaran yang nilainya dapat berubah pada saat program berlangsung. Setiap variabel dinyatakan oleh suatu identifier.
Setiap variabel harus dideklarasikan terlebih dahulu sebelum digunakan di dalam program. Setiap variabel yang dideklarasikan harus dinyatakan jenis datanya. Bentuk umum pendeklarasian variabel adalah sebagai berikut.
[type] id_var1[, id_var2 …];
dimana id_var1 dan id_var2 adalah nama variabel yang dideklarasikan, dan type adalah jenis data yang ditetapkan untuk id_var1 dan id_var2. Contoh :
int liter, harga;
char nama[20];
char nama[20];
dalam deklarasi suatu variabel dapat dilakukan initialisasi nilai terhadap variabel tersebut. Bentuk umum deklarasi dan initialisasi variabel adalah sebagai berikut.
[type] id_var1 = val_var1[, id_var2 = val_var2 …];
dimana id_var1 dan id_var2 adalah nama variabel yang dideklarasikan, val_var1 dan val_var2 adalah nilai awal yang ditetapkan pada id_var1 dan id_var2, dan type adalah jenis data untuk id var_1 dan id_var2. contoh :
int liter,
harga = 385;
char nama[20] = “Abdallah”;
harga = 385;
char nama[20] = “Abdallah”;
contoh program-3.1 akan meminta pengguna program untuk menuliskan namanya, menetapkannya terhadap variabel, kemudian mencetak pesan dalam media output standar.
Program 3.1: SALAM.C
Code:
#include <stdio.h>
char nama [20],
prompt [20] = "Tulis nama anda: ";
main ( )
{
printf (prompt);
scanf ("%s", nama);
printf ("Halo %s. Selamat belajar C.\n", nama);
}
apabila program tersebut dijalankan maka akan muncul tampilan sebagai berikut.
Tulis nama anda: Anugrah
Halo Anugrah. Selamat belajar C.
Halo Anugrah. Selamat belajar C.
C. OPERASI ARITMATIKA
Operator aritmatika yang digunakan dalam bahasa C pada umumnya sama dengan lambang operasi hitung biasa. Operator operator tersebut, kegunaan, prioritas, contoh ekspresi dan hasilnya adalah seperti terlihat pada tabel 3.2
Operator aritmatika yang digunakan dalam bahasa C pada umumnya sama dengan lambang operasi hitung biasa. Operator operator tersebut, kegunaan, prioritas, contoh ekspresi dan hasilnya adalah seperti terlihat pada tabel 3.2
Tabel 3.2:
Operator Aritmatika
Operator Aritmatika
Code:
operator operasi Contoh ekspresi hasil
-------- -------------- --------------- -----
* perkalian 21*8 208
/ pembagian 27/3 9
% sisa pembagian 30%4 2
+ penjumlahan 2+10 12
- pengurangan 29-13 16
Catatan
* Operator % tidak dapat digunakan untuk jenis data float atau double.
* Operator * / dan % mempunyai tingkat prioritas yang sama, begitu pula operator + dengan -, kelompok operator pertama mempunyai tingkat prioritas yang lebih tinggi dari kelompok yang kedua.
* Operator % tidak dapat digunakan untuk jenis data float atau double.
* Operator * / dan % mempunyai tingkat prioritas yang sama, begitu pula operator + dengan -, kelompok operator pertama mempunyai tingkat prioritas yang lebih tinggi dari kelompok yang kedua.
Berdasarkan aturan ekspresi yang telah disebutkan dalam awal bab ini maka tahapan pelaksanaan yang dilalukan untuk ekspresi-ekspresi aritmatika berikut adalah seperti dinyatakan oleh ekspresi sebelahnya.
Code:
Ekspresi Tahap pelaksanaan
------------ -----------------
2+3*4 2+12
14
(2+3)*4 5*4
20
2*3%4 6%4
2
2*(3%4) 2*3
6
2+3.0/4-5 2+0.75-5
2.75-5
-2.25
(2+3)/(4-5) 5/(4-5)
5/-1
-5
Hati hatilah dengan operator pembagian. Apabila pembilang dan penyebut berupa bilangan bulat maka hasil operasi ini berupa bilangan bulat pula. Untuk mendapatkan hasil bagi berupa bilangan nyata maka salah satu dari pembilang dan penyebut harus berupa bilangan nyata. Contoh:
Code:
ekspresi Hasil
-------------- --------
10/3 3
(float) 10/3 3.333333
D. OPERASI HUBUNGAN DAN LOGIKA
Operasi hubungan digunakan untuk menguji hubungan antara dua buah operand. Nilai yang dihasilkan operasi ini adalah 0 kalau salah dan –1 kalau benar. Operator-operator yang digunakan adalah seperti ditunjukan dalam tabel 3.3
Operasi hubungan digunakan untuk menguji hubungan antara dua buah operand. Nilai yang dihasilkan operasi ini adalah 0 kalau salah dan –1 kalau benar. Operator-operator yang digunakan adalah seperti ditunjukan dalam tabel 3.3
Tabel 3.3:
Operator Hubungan
Operator Hubungan
Code:
operator Operasi
-------- ---------------------
== Sama dengan
!= Tidak sama dengan
< Lebih kecil
> Lebih besar
<= Lebih kecil atau sama
>= Lebih besar atau sama
Perhatikanlah contoh pengurangan operator hubungan serta nilai akhirnya pada ekspresi berikut ini.
Code:
ekspresi Hasil
---------- -----
2>3 0
2!=3 -1
4*5==10*2 -1
Prioritas pelaksanaan operasi hubungan lebih rendah dari pelaksanaan operasi aritmatika. Berikut ini adalah contoh tahapan pelaksanaan yang dilakukan untuk ekspresi-ekspresi aritmatika dan hubungan.
Code:
ekspresi Tahap pelaksanaan
---------- -----------------
2<5-3 2<2
0
2<=5-3 2<=2
-1
10*2==5*4 20==20
-1
Operasi logika digunakan untuk mengoperasikan operand berjenis data bilangan bulat berdasarkan aturan aturan operasi logika pada aljabar modern. Pada operasi ini setiap operand yang bernilai 0 dinyatakan salah dan operand yang bernilai bukan 0 dinyatakan benar. Nilai yang dihasilkan operasi ini sama seperti operasi hubungan, yaitu 0 kalau salah dan –1 kalau benar.
Tabel 3.4 menunjukan nama operator, cotoh ekspresi dan hasil operasi daripada operator logika.
Tabel 3.4 menunjukan nama operator, cotoh ekspresi dan hasil operasi daripada operator logika.
Tabel 3.4
Operator Logika, Contoh dan Hasil Ekspresi
Operator Logika, Contoh dan Hasil Ekspresi
Code:
Operator Operasi Operand A Operand B Ekspresi Hasil
-------- ------- --------- --------- -------- -----
! NOT Benar !A Salah
Salah Benar
&& AND Benar Benar A&&B Benar
Benar Salah Salah
Salah Benar Salah
Salah Salah Salah
|| OR Benar Benar A||B Benar
Benar Salah Benar
Salah Benar Benar
Salah Salah Salah
Contoh:
Code:
ekspresi Tahap pelaksanaan
----------- ---------------
2<3&&4<5 benar && 4 < 5
benar && benar
benar
10*2&&5<4 20 && 5 < 4
benar && salah
salah
10*2||5<4 20 || 5 < 4
benar || salah
benar
1. Operasi Penarikan dan Penurunan
Bahasa C memberikan dua buah operator yang tidak umum untuk penaikan (incrementing) dan penurunan (decrementing) nilai suatu variabel. Variabel yang dioperasikan harus berjenis data bilangan bulat atau pointer. Operasi penaikan berfungsi untuk menambah nilai variabel yang dinyatakannya dengan konstanta 1, sementara operasi penurunan adalah kebalikannya. Operator yang digunakan adalah ++ dan –. Operator ini dapat ditempatkan sebelum atau sesudah nama variabel. Jika ditempatkan sebelum nama variabel maka operasi ini akan didahulukan dari operasi operator lain yang ada dalam suatu ekspresi, dan sebaliknya jika ditempatkan sesudah nama variabel.
Berikut ini adalah contoh ekspresi operasi operasi ini dan persamaannya.
Bahasa C memberikan dua buah operator yang tidak umum untuk penaikan (incrementing) dan penurunan (decrementing) nilai suatu variabel. Variabel yang dioperasikan harus berjenis data bilangan bulat atau pointer. Operasi penaikan berfungsi untuk menambah nilai variabel yang dinyatakannya dengan konstanta 1, sementara operasi penurunan adalah kebalikannya. Operator yang digunakan adalah ++ dan –. Operator ini dapat ditempatkan sebelum atau sesudah nama variabel. Jika ditempatkan sebelum nama variabel maka operasi ini akan didahulukan dari operasi operator lain yang ada dalam suatu ekspresi, dan sebaliknya jika ditempatkan sesudah nama variabel.
Berikut ini adalah contoh ekspresi operasi operasi ini dan persamaannya.
Code:
ekspresi Persamaan
----------- ---------
a++ a=a+1
a-- a=a-1
b=a++/6 b=a/6
a=a+1
b=3*a-- b=3*a
a=a-1
b=++a/6 a=a+1
b=a/6
b=3*--a a=a-1
b=3*a
c=a++ + ++b b=b+1
c=a+b
a=a+1
Dari contoh contoh di atas, anda dapat melihat kesederhanaan penulisan beberapa pernyataan ke dalam satu pertanyaan dalam bahasa C.
2. Operasi Penetapan
operasi penetapan digunakan untuk menetapkan suatu nilai terhadap suatu variabel. Bentuk umum operasi ini adalah
operasi penetapan digunakan untuk menetapkan suatu nilai terhadap suatu variabel. Bentuk umum operasi ini adalah
id_var = ekspresi
dimana id_var adalah identifier variabel yang akan menampung nilai hasil ekspresi. Contoh:
a = 5*27
Dalam banyak hal, nilai variabel yang akan ditetapkan juga merupakan bagian dari ekspresi, seperti
a = a+4
Jika terdapat kasus terakhir, bahasa C memberikan kemudahan bagi anda untuk menyederhanakan penulisan operasi penetapan tersebut, yaitu menjadi
a += 4
Hampir semua binary operators dapat dibentuk penyederhanaannya, yaitu dalam bentuk umum
id_var op= ekspresi
Di mana op adalah salah satu dari operator +, -, *, /, %, <<, >>, &, ^, dan |. Bentuk operasi di atas mengandung arti.
id_var = id_var op ekspresi
Contoh:
Code:
ekspresi Persamaan
-------- ---------
x*=y-1 x=x*(y+1)
x+=5 x=x+5
x>>=3 x=x>>3
3. Prioritas dan Arah Pelaksanaan Operator
tabel berikut menunjukan tingkat prioritas dan arah pelaksanaan operator, baik yang telah dibahas maupun belum. Operator-operator yang terletak pada baris yang sama mempunyai tingkat prioritas sama dengan arah pelaksanaan sesuai dengan yang dinyatakan dalam kolom sebelahnya.
tabel berikut menunjukan tingkat prioritas dan arah pelaksanaan operator, baik yang telah dibahas maupun belum. Operator-operator yang terletak pada baris yang sama mempunyai tingkat prioritas sama dengan arah pelaksanaan sesuai dengan yang dinyatakan dalam kolom sebelahnya.
Tabel 3.5:
Prioritas Dan Arah Pelaksanaan Operator
Prioritas Dan Arah Pelaksanaan Operator
Code:
operator Arah pelaksanaan
--------------------------- ------------------
() [] -> . Dari kiri ke kanan
! ~ ++ -- -(type)* & sizeof Dari kanan ke kiri
* / % Dari kiri ke kanan
+ - Dari kiri ke kanan
<< >> Dari kiri ke kanan
< <= > >= Dari kiri ke kanan
== != Dari kiri ke kanan
& Dari kiri ke kanan
^ Dari kiri ke kanan
| Dari kiri ke kanan
&& Dari kiri ke kanan
|| Dari kiri ke kanan
?: Dari kanan ke kiri
= += -= dll Dari kanan ke kiri
, Dari kiri ke kanan
PERNYAATAAN-PERNYATAAN
A. Pernyataan goto dan label
Pernyataan-pernyataan (statements) yang dituliskan di dalam suatu program akan dilaksanakan secara berurut mulai dari pernyataan pertama sampai dengan pernyataan terakhir. Contoh:
Pernyataan-pernyataan (statements) yang dituliskan di dalam suatu program akan dilaksanakan secara berurut mulai dari pernyataan pertama sampai dengan pernyataan terakhir. Contoh:
…
statement_1;
statement_2;
statement_3;
statement_4;
statement_5;
statement_6;
…
statement_1;
statement_2;
statement_3;
statement_4;
statement_5;
statement_6;
…
Jika kita bermaksud untuk menyatakan bahwa sesudah pelaksanaan pernyataan tertentu (misalnya setelah statement_2) alur program akan dilanjutkan ke pernyataan tertentu lain yang bukan pernyataan yang tepat di bawahnya (misalnya ke statement_5), maka kita harus menggunakan pernyataan goto dan menetapkan suatu label di lokasi yang dimaksud. Contoh:
…
statement_1;
statement_2;
goto next;
statement_3;
statement_4;
next:
statement_5;
statement_6;
…
statement_1;
statement_2;
goto next;
statement_3;
statement_4;
next:
statement_5;
statement_6;
…
Suatu label adalah identifier biasa yang diikuti oleh simbol titik-dua ( : ).
B. Pernyataan Fungsi
Pernyataan fungsi adalah pernyataan yang digunakan untuk memanggil suatu fungsi. Pernyataan fungsi dilakukan dengan menulis nama fungsi yang dimaksud beserta argumen yang akan diberikan kepada parameter-parameter yang terdapat di dalam fungsi tersebut.
Pernyataan fungsi adalah pernyataan yang digunakan untuk memanggil suatu fungsi. Pernyataan fungsi dilakukan dengan menulis nama fungsi yang dimaksud beserta argumen yang akan diberikan kepada parameter-parameter yang terdapat di dalam fungsi tersebut.
Berkaitan dengan hal tersebut maka kita harus mengetahui apa nama fungsi dan parameter-parameter apa yang dibutuhkan oleh fungsi yang akan kita gunakan. Informasi tersebut dapat dilihat di dalam prototipe,definisi, atau deklarasi fungsi tersebut. Prototipe dan definisi fungsi-fungsi standar (yang telah disediakan oleh pembuat kompiler) dapat ditemukan di dalam direktori include dengan nama file berekstensi .h yang dikelompokkan berdasarkan kegunaannya, misalnya stdio.h, stdlib.h, conio.h, io.h, dan lain-lain.
Untuk memungkinkan kompiler dapat memeriksa kebenaran penulisan pernyataan fungsi di dalam suatu kode sumber, maka file yang berisi prototipe fungsi tersebut harus di-include ke dalam kode sumber tersebut.
C. Pernyataan Gabungan/Blok
Pernyataan Gabungan atau Blok adalah kumpulan pernyataan yang ditetapkan sebagai satu kesatuan pernyataan. Ini digunakan untuk menyederhanakan penulisan pernyataan secara berulang.
Pernyataan Gabungan atau Blok adalah kumpulan pernyataan yang ditetapkan sebagai satu kesatuan pernyataan. Ini digunakan untuk menyederhanakan penulisan pernyataan secara berulang.
Pernyataan gabungan atau blok diawali oleh simbol “{” diikuti oleh pernyataan-pernyataan yang menjadi anggotanya dan diakhiri oleh simbol “}”. Contoh:
{
statement_1;
statement_2;
statement_3;
…
}
statement_1;
statement_2;
statement_3;
…
}
D. Pernyataan if-else
Pelaksanaan suatu pernyataan boleh jadi hanya dilakukan jika suatu kondisi tertentu terpenuhi. Pernyataanif-else adalah salah satu pernyataan yang dapat digunakan untuk keperluan tersebut. Bentuk umum pernyataan ini adalah:
Pelaksanaan suatu pernyataan boleh jadi hanya dilakukan jika suatu kondisi tertentu terpenuhi. Pernyataanif-else adalah salah satu pernyataan yang dapat digunakan untuk keperluan tersebut. Bentuk umum pernyataan ini adalah:
if (ekspresi) stat_1; [else stat_2;]
Di mana ekspresi adalah ekspresi ordinal (mengembalikan nilai bilangan bulat). Pernyataan stat_1 akan dilakukan jika ekspresi bernilai bukan 0 dan pernyataan stat_2 akan dilakukan jika ekspresi bernilai 0. Contoh:
Code:
if (kode = 0)
strcpy(kelamin, "Perempuan");
else
strcpy(kelamin, "Laki-laki");
Marilah kita coba terapkan pernyataan ini pada masalah berikut. Katakanlah anda menghendaki sebuah Tabel Harga BBM, dari 1 sampai 10 liter. Output yang dihasilkan dikehendaki sebagai berikut.
Code:
Liter Solar Premium Super
---------------------------
1 250 385 450
2 500 770 900
3 750 1155 1350
4 1000 1540 1800
5 1250 1925 2250
6 1500 2310 2700
7 1750 2695 3150
8 2000 3080 3600
9 2250 3465 4050
10 2500 3850 4500
---------------------------
Dengan menggunakan pernyataan-pernyataan yang sudah dibahas di atas, program untuk itu adalah seperti ditunjukkan di bawah.
Program-4.1: bbm.c
Code:
#include <stdio.h>
int liter, solar, premium, super;
main()
{
printf("Liter Solar Premium Super\n");
printf("---------------------------\n");
liter = 1;
ulangi:
solar = liter * 250;
premium = liter * 385;
super = liter * 450;
printf("%5d %5d %5d %5d\n", liter, solar, premium, super);
liter++;
if (liter <= 10)
goto ulangi;
printf("---------------------------\n");
}
E. Pernyataan switch-case-default
Pernyataan switch-case-default merupakan perluasan dari pernyataan if-else yang memungkinkan adanya kondisi yang beragam. Bentuk umum pernyataan ini adalah:
Pernyataan switch-case-default merupakan perluasan dari pernyataan if-else yang memungkinkan adanya kondisi yang beragam. Bentuk umum pernyataan ini adalah:
switch (ekspresi)
{ case eks_1:
[stat_1;
…
break;]
{ case eks_1:
[stat_1;
…
break;]
case eks_2:
[stat_2;
…
break;]
[stat_2;
…
break;]
…
[default:
stat_n;
…
break;]
}
stat_n;
…
break;]
}
Pernyataan stat_1 dan seterusnya akan dilakukan jika ekspresi = eks_1. Pernyataan stat_2 dan seterusnya akan dilakukan jika ekspresi = eks_2. Pernyataan stat_n dan seterusnya akan dilakukan jika ekspresi tidak sama dengan pengujian sebelumnya.
Sebagai contoh, katakanlah kita memiliki kode barang (kb) dan akan menetapkan nama barang (nb) serta jenis barang (jb) berdasarkan kode barang tersebut. Nama barang adalah CPU, CRT, LCD, MS Office, Norton Anti Virus, dan PhotoShop untuk kode barang 1, 2, 3, 4, 5, dan 6. Sementara jenis barang adalah Hardware untuk kode barang 1, 2, dan 3 atau Software untuk kode barang 4, 5, dan 6.
Code:
switch (kb)
{ case 1:
strcpy(nb, "CPU");
strcpy(jb, "Hardware");
break;
case 2:
strcpy(nb, "CRT");
strcpy(jb, "Hardware");
break;
case 3:
strcpy(nb, "LCD");
strcpy(jb, "Hardware");
break;
case 4:
strcpy(nb, "MS Office");
strcpy(jb, "Software");
break;
case 5:
strcpy(nb, "Norton Anti Virus");
strcpy(jb, "Software");
break;
case 6:
strcpy(nb, "PhotoShop");
strcpy(jb, "Software");
break;
default:
strcpy(nb, "Nama barang belum ditetapkan");
strcpy(jb, "Jenis barang belum ditetapkan");
break;
}
Penggunaan beberapa case untuk mengerjakan pernyataan yang sama dapat dilakukan seperti contoh berikut.
Code:
switch (kb)
{ case 1:
strcpy(nb, "CPU");
break;
case 2:
strcpy(nb, "CRT");
break;
case 3:
strcpy(nb, "LCD");
break;
case 4:
strcpy(nb, "MS Office");
break;
case 5:
strcpy(nb, "Norton Anti Virus");
break;
case 6:
strcpy(nb, "PhotoShop");
break;
default:
strcpy(nb, "Nama barang belum ditetapkan");
break;
}
switch (kb)
{ case 1:
case 2:
case 3:
strcpy(jb, "Hardware");
break;
case 4:
case 5:
case 6:
strcpy(jb, "Software");
break;
default:
strcpy(jb, "Jenis barang belum ditetapkan");
break;
}
F. Pernyataan while
Pernyataan while digunakan untuk mengulang pelaksanaan pernyataan tertentu selama kondisi tertentu terpenuhi. Bentuk umum pernyataan ini adalah:
Pernyataan while digunakan untuk mengulang pelaksanaan pernyataan tertentu selama kondisi tertentu terpenuhi. Bentuk umum pernyataan ini adalah:
while (ekspresi) statement;
Di mana ekspresi adalah ekspresi ordinal (mengembalikan nilai bilangan bulat). Statement akan dilakukan secara berulang selama ekspresi bernilai bukan 0. Algoritma pernyataan ini adalah:
ulangi:
if (ekspresi)
statement;
goto ulangi;
endif
if (ekspresi)
statement;
goto ulangi;
endif
Berikut ini adalah penggunaan pernyataan while untuk menggantikan pernyataan if dan goto di dalam Program 4.1.
Code:
#include <stdio.h>
int liter, solar, premium, super;
main()
{
printf("Liter Solar Premium Super\n");
printf("---------------------------\n");
liter = 1;
while (liter <= 10)
{ solar = liter * 250;
premium = liter * 385;
super = liter * 450;
printf("%5d %5d %5d %5d\n", liter, solar, premium, super);
liter++;
}
printf("---------------------------\n");
}
G. Pernyataan do-while
Pernyataan do-while pada dasarnya sama dengan pernyataan while, yaitu digunakan untuk mengulang pelaksanaan pernyataan tertentu selama kondisi tertentu terpenuhi, cuma letak pengujian kondisinya adalah di akhir pernyataan tersebut. Bentuk umum pernyataan ini adalah:
Pernyataan do-while pada dasarnya sama dengan pernyataan while, yaitu digunakan untuk mengulang pelaksanaan pernyataan tertentu selama kondisi tertentu terpenuhi, cuma letak pengujian kondisinya adalah di akhir pernyataan tersebut. Bentuk umum pernyataan ini adalah:
do statement; while (ekspresi);
Di mana ekspresi adalah ekspresi ordinal (mengembalikan nilai bilangan bulat). Statement akan dilakukan secara berulang selama ekspresi bernilai bukan 0. Algoritma pernyataan ini adalah:
ulangi:
statement;
if (ekspresi)
goto ulangi;
endif
statement;
if (ekspresi)
goto ulangi;
endif
Berikut ini adalah penggunaan pernyataan do-while untuk menggantikan pernyataan if dan goto di dalam Program 4.1.
Code:
#include <stdio.h>
int liter, solar, premium, super;
main()
{
printf("Liter Solar Premium Super\n");
printf("---------------------------\n");
liter = 1;
do
{ solar = liter * 250;
premium = liter * 385;
super = liter * 450;
printf("%5d %5d %5d %5d\n", liter, solar, premium, super);
liter++;
} while (liter <= 10)
printf("---------------------------\n");
}
H. Pernyataan for
Pernyataan for pada dasarnya sama dengan pernyataan while, yaitu digunakan untuk mengulang pelaksanaan pernyataan tertentu selama kondisi tertentu terpenuhi, cuma di dalamnya terdapat pernyataan untuk pra dan pasca pelaksanaan statement. Bentuk umum pernyataan ini adalah:
Pernyataan for pada dasarnya sama dengan pernyataan while, yaitu digunakan untuk mengulang pelaksanaan pernyataan tertentu selama kondisi tertentu terpenuhi, cuma di dalamnya terdapat pernyataan untuk pra dan pasca pelaksanaan statement. Bentuk umum pernyataan ini adalah:
for ([prestatement]; [ekspresi]; [poststatement]) statement;
Algoritma pernyataan ini adalah:
.
prestatement;
ulangi:
statement;
poststatement;
if (ekspresi)
goto ulangi;
endif
prestatement;
ulangi:
statement;
poststatement;
if (ekspresi)
goto ulangi;
endif
Berikut ini adalah penggunaan pernyataan for untuk menggantikan pernyataan if dan goto di dalam Program 4.1.
Code:
#include <stdio.h>
int liter, solar, premium, super;
main()
{
printf("Liter Solar Premium Super\n");
printf("---------------------------\n");
for (liter = 1; liter <= 10; liter++)
{ solar = liter * 250;
premium = liter * 385;
super = liter * 450;
printf("%5d %5d %5d %5d\n", liter, solar, premium, super);
}
printf("---------------------------\n");
}
Pernyataan liter=1 dapat ditetapkan sebagai prestatement dan pernyataan liter++ sebagai poststatement. Dengan begitu maka itu dapat dituliskan dengan menggunakan pernyataan for secara lebih sederhana.
I. Pernyataan break dan continue
Pernyataan break digunakan untuk mengontrol alur program dalam pernyataan switch-case-default, while, do-while, dan for, yaitu untuk berpindah ke pernyataan berikutnya.
Pernyataan break digunakan untuk mengontrol alur program dalam pernyataan switch-case-default, while, do-while, dan for, yaitu untuk berpindah ke pernyataan berikutnya.
Pernyataan continue digunakan untuk mengontrol alur program pada iterasi berikutnya di dalam pernyataan while, do-while, dan for di mana dia berada.
FUNGSI
Seperti telah disinggung pada bab-bab yang lalu, suatu fungsi merupakan suatu nama atas sekumpulan instruksi. Jadi suatu fungsi merupakan suatu subprogram.
C membedakan fungsi ke dalam 2 kelompok, yaitu fungsi yang mengembalikan suatu nilai dan fungsi yang tidak mengembalikan suatu nilai.
Program utama juga dipandang sebagai suatu fungsi, hanya identifiernya sudah ditetapkan, yaitu main.
Suatu fungsi dibentuk oleh bagian-bagian sebagai berikut.
[type]id_fungsi([argumen])
[deklarasi-argumen]
tubuh fungsi
[deklarasi-argumen]
tubuh fungsi
Seperti halnya variabel, jenis-data nilai yang akan dikembalikan (type) oleh fungsi harus dinyatakan. Jika itu tidak dinyatakan maka dianggap int. Nama fungsi dinyatakan oleh id_fungsi. Komunikasi data antar fungsi dilakukan melalui argumen. Jenis-data untuk setiap argumen dinyatakan dalam deklarasi-argumen. Instruksi-instruksi apa yang harus dilakukan oleh fungsi, dinyatakan dalam tubuh-fungsi. Tubuh suatu fungsi berupa suatu pernyataan-gabungan (compound statement).
Apabila suatu fungsi tidak memiliki argumen maka pada bidang argumen ditetapkan keyword void atau tidak dituliskan apa-apa. Begitu pula, jika dia tidak akan mengembalikan suatu nilai maka pada bidang type ditetapkan keyword void.
Dengan demikian maka contoh suatu fungsi yang paling sederhana adalah:
abcd()
{
}
{
}
Fungsi di atas menetapkan abcd sebagai nama/identifier fungsi, tanpa argumen, tanpa suatu instruksi untuk dikerjakan, dan akan mengembalikan nilai berjenis-data int.
Perhatikan pula maksud dari fungsi utama berikut ini.
main()
{
printf(“Hello, world!\n” );
}
{
printf(“Hello, world!\n” );
}
Fungsi utama di atas ditetapkan tanpa argumen, memiliki satu instruksi berupa pernyataan-fungsi printf, dan akan mengembalikan nilai berjenis-data int. Pernyataan-fungsi printf digunakan untuk memanggil fungsi tersebut dengan membawa alamat konstanta string “Hello, world!\n” sebagai argumen.
A. ARGUMEN DAN NILAI FUNGSI
Argumen fungsi digunakan untuk mengatur komunikasi data antara fungsi yang satu dengan fungsi lainnya. Tepatnya, antara variabel-argumen fungsi dengan nilai-argumen pernyataan-fungsi.
Argumen fungsi digunakan untuk mengatur komunikasi data antara fungsi yang satu dengan fungsi lainnya. Tepatnya, antara variabel-argumen fungsi dengan nilai-argumen pernyataan-fungsi.
Perhatikan fungsi abcd berikut ini. Fungsi ini memiliki dua buah argumen a dan b berjenis-data int dan memiliki satu pernyataan untuk mencetak nilai kedua argumen tersebut. Berikutnya adalah fungsi-utama yang memiliki tiga buah pernyataan untuk mengaktifkan fungsi abcd tersebut.
Code:
abcd(a,b)
int a, b;
{
printf("%d %d\n" , a, b);
}
main()
{
abcd(2, 5);
abcd(8, 3);
abcd(7, 12);
}
Pernyataan-fungsi abcd(2, 5), abcd(8, 3), dan abcd(7, 12) pada fungsi main, secara berturut-turut mengandung arti:
aktifkan fungsi abcd dengan memberikan konstanta 2 dan 5 untuk variabel-argumen a dan b.
aktifkan fungsi abcd dengan memberikan konstanta 8 dan 3 untuk variabel-argumen a dan b.
aktifkan fungsi abcd dengan memberikan konstanta 7 dan 12 untuk variabel-argumen a dan b.
aktifkan fungsi abcd dengan memberikan konstanta 2 dan 5 untuk variabel-argumen a dan b.
aktifkan fungsi abcd dengan memberikan konstanta 8 dan 3 untuk variabel-argumen a dan b.
aktifkan fungsi abcd dengan memberikan konstanta 7 dan 12 untuk variabel-argumen a dan b.
Dengan demikian apabila program di atas dijalankan maka akan diperoleh output:
Code:
2 5
8 3
7 12
Deklarasi argumen dapat digabung dan ditempatkan pada bidang argumen, dengan ketentuan penulisan jenis-data dilakukan untuk setiap variabel-argumen. Perhatikan fungsi abcd di atas menurut ketentuan terakhir.
Code:
abcd(int a, int b)
{
printf("%d %d\n" , a, b);
}
Nilai-fungsi adalah nilai yang dikembalikan/dihasilkan oleh fungsi. Untuk mengembalikan suatu nilai dari tubuh-fungsi kepada ekspresi pernyataan-fungsi digunakan keyword return.
Perhatikan fungsi pangkat sederhana berikut yang digunakan untuk menghitung nilai pangkat dari argumen yang dinyatakannya, kemudian mengembalikan nilai tersebut sebagai nilai fungsi.
Code:
/*
mencari harga x pangkat n.
nilai n harus >= 0 dan hasilnya tidak lebih dari nilai maksimum jenis-data int
*/
int pangkat(int x, int n)
{
int hasil;
hasil = 1;
while (n > 0)
{ hasil *= x;
n--;
}
return hasil;
}
Keyword return dapat digunakan di sembarang tempat pada tubuh-fungsi. Keyword ini sekaligus juga berfungsi untuk menghentikan alur program pada fungsi. Alur progrm kemudian berlanjutk pada pernyataan setelah pernyataan-fungsi. Apabila fungsi tidak mengembalikan suatu nilai, maka keyword return tidak diikuti oleh suatu ekspresi.
B. PROTOTIP FUNGSI
Sampai di sini anda telah mengetahui tentang fungsi dan pernyataan-fungsi. Fungsi merupakan sekumpulan instruksi yang diberi nama, sementara pernyataan-fungsi merupakan pernyataan yang digunakan untuk mengaktifkan fungsi yang disebutkannya.
Sampai di sini anda telah mengetahui tentang fungsi dan pernyataan-fungsi. Fungsi merupakan sekumpulan instruksi yang diberi nama, sementara pernyataan-fungsi merupakan pernyataan yang digunakan untuk mengaktifkan fungsi yang disebutkannya.
Seperti halnya variabel, setiap fungsi harus telah dideklarasikan sebelum dia digunakan. Maksud utama hal tersebut adalah untuk memudahkan kompiler dalam memeriksa kebenaran penulisan pernyataan-fungsi, apakah itu sesuai atau tidak. Hal itu terutama menyengkut jenis-data nilai-fungsi dan argumen-argumennya.
Pembuatan suatu fungsi dapat dilakukan belakangan tetapi kompiler perlu diberi tahu aturan penulisan yang harus digunakan untuk fungsi tersebut, agar dia mampu memeriksa kebenaran penulisan pernyataan-fungsi yang dimaksud. Itu disebut deklarasi deklarasi-fungsi atau prototip-fungsi.
Penulisan prototip-fungsi hampir mirip dengan penulisan fungsi itu sendiri, hanya ia tidak memerlukan tubuh-fungsi dan penulisan argumen-argumen boleh hanya jenis-datanya saja. Perhatikan Program-5.1 sebagai contoh.
Code:
#include <stdio.h>
int factorial(int n); /* prototip fungsi factorial */
main()
{
int i = 1;
while (i < 6)
{ printf("%d! adalah %d\n" , i, factorial(i));
i++;
}
}
int factorial(int n)
{
if (n == 1)
return(1);
else
return(n * factorial(n-1));
}
Apabila program tersebut dijalankan maka akan diperoleh output sebagai berikut.
Code:
1! adalah 1
2! adalah 2
3! adalah 6
4! adalah 24
5! adalah 120
Tidak ada komentar:
Posting Komentar