Elemen Dasar C++
Pengantar Program C++
Pada bab ini, Anda akan belajar
elemen-elemen dasar dan konsep-konsep bahasa pemrograman C++ untuk menciptakan
program C++. Untuk memperjelas contoh-contoh dalam mengilustrasikan beragam
konsep, akan diberikan penjelasan-penjelasan yang akan mengawal pemahaman Anda.
Pada bagian ini, akan disajikan sebuah contoh pemrograman C++. Pada titik ini,
Anda tidak perlu cemas dengan detil program. Anda hanya perlu mengetahui
pengaruh sebuah statemen keluaran, yang dikenalkan pada program ini.
Contoh 1.1
|
|
//********************************************************
// Ini merupakan sebuah contoh program C++. Ia menampilkan
// empat baris teks, termasuk penjumlahan atas dua angka.
//********************************************************
#include <iostream>
using namespace std;
int main()
{
int angka;
angka = 6;
cout << "Program C++ pertamaku." <<
endl;
cout << "Penjumlahan atas 2 dan 3 = "
<< 5 << endl;
cout << "7 + 8 = " << 7 + 8
<< endl;
cout << "Angka = " << angka
<< endl;
return 0;
}
|
Keluaran Program: (Ketika Anda mengkompilasi dan mengeksekusi program ini,
empat baris berikut ditampilkan pada layar).
Program C++ pertamaku.
Penjumlahan atas 2 dan 3 = 5
7 + 8 = 15
Angka = 6
Empat baris teks tersebut ditampilkan dengan mengeksekusi keempat statemen
berikut.
cout << "Program C++ pertamaku." << endl;
cout << "Penjumlahan atas 2 dan 3 = " << 5 <<
endl;
cout << "7 + 8 = " << 7 + 8 << endl;
cout << "Angka = " << angka << endl;
Selanjutnya, akan dijelaskan bagaimana ini terjadi. Pertama-tama
perhatikan statemen berikut:
cout << "Program C++ pertamaku." << endl;
Ini merupakan sebuah contoh statemen keluaran C++. Ia menyebabkan komputer
untuk mengevaluasi ekspresi yang berada sesudah simbol << dan menampilkan
hasilnya pada monitor.
Biasanya, sebuah program C++ memuat beragam ekspresi seperti aritmatik dan
string. Sebagai contoh, 7 + 8 merupakan suatu ekspresi aritmatik.
Segala sesuatu yang diapit oleh sepasang tanda kutip ganda merupakan sebuah
string. Sebagai contoh, “Program C++ pertamaku.” dan “7 + 8 = “ adalah dua buah string. Ekspresi aritmatik dievaluasi sesuai dengan
aturan-aturan operasi aritmatik, yang umumnya sama seperti yang Anda pelajari
pada aljabar. Nanti pada bab ini, pada Anda akan dijelaskan bagaimana ekspresi
aritmatik dan string dibentuk dan dievaluasi.
Selain itu, perhatikan bahwa di dalam sebuah statemen keluaran, endl menyebabkan titik penyisipan berpindah
ke awal baris berikutnya. (Di layar, titik penyisipan adalah dimana kursor
berada). Oleh karena itu, statemen sebelumnya menyebabkan sistem untuk
menampilkan baris teks berikut pada layar.
Program C++ pertamaku.
Sekarang, perhatikan statemen berikut:
cout <<
"Penjumlahan atas 2 dan 3 = " << 5 << endl;
Statemen keluaran ini memuat dua ekspresi. Ekspresi pertama (sesudah
<< pertama) adalah “Penjumlahan atas 2 dan 3 = “ dan ekspresi kedua (setelah << kedua) memuat angka 5. Ekspresi “Penjumlahan atas 2 dan 3 = “ merupakan sebuah string. (Perhatikan spasi yang berada setelah =).
Ekspresi kedua, yang memuat angka 5 memiliki nilai evaluasi 5. Jadi, keluaran
dari statemen tersebut adalah:
Penjumlahan atas 2 dan 3 = 5
Sekarang, perhatikan statemen berikut:
cout <<
"7 + 8 = " << 7 + 8
<< endl;
Pada statemen keluaran ini, ekspresi “7 + 8 = “, adalah sebuah string. Perhatikan ekspresi kedua, 7 + 8. Ekspresi ini memuat angka 7 dan angka
8 dan operator +. Oleh karena itu, hasil ekspresi 7 + 8 adalah penjumlahan atas 7 dan 8, yang menghasilkan 15. Jadi, keluaran dari statemen tersebut
adalah:
cout << "7 + 8 = " << 7 + 8 << endl;
Terakhir, perhatikan statemen:
cout << "Angka = " << angka << endl;
Statemen ini memuat string “Angka = “ yang merupakan sebuah string, dan kata angka. Statemen angka = 6; menugaskan nilai 6 kepada angka. Oleh karena itu, ekspresi angka, yang berada setelah << yang kedua, dievaluasi menjadi 6.
Sekarang dapat dipahami bahwa keluaran dari statemen tersebut adalah:
Angka = 6
Statemen terakhir, yaitu,
return 0;
memberikan nilai 0 kepada sistem operasi ketika program berhenti. Statemen
ini akan dijelaskan nanti pada bab ini.
Pada bab berikutnya, sampai dijelaskan bagaimana mengkonstruksi sebuah
program C++ dengan benar, akan digunakan statemen-statemen keluaran seperti
yang baru saja dijelaskan untuk mendeskripsikan beragam konsep. Setelah membaca
bab ini, Anda diharapkan dapat menuliskan program C++ sederhana untuk melakukan
komputasi sederhana dan menampilkan hasilnya.
Sebelum meninggalkan bagian ini, akan diberikan beberapa poin untuk
pemahaman Anda. Program C++ merupakan sekumpulan fungsi, salah satu fungsi
tersebut adalah fungsi main. Fungsi adalah
sekumpulan statemen, dan ketika dieksekusi, ia diharapkan menyelesaikan tugas
tertentu. Contoh program sebelumnya memuat fungsi main.
Baris pertama program adalah:
#include
<iostream>
yang membuat Anda dapat menggunakan cout (objek terpradefinisi) untuk menghasilkan keluaran dan manipulasi endl. Baris kedua, yang merupakan
using namespace std;
dipakai agar Anda diijinkan untuk menggunakan cout dan endl tanpa harus menggunakan prefiks ::. Ini berarti bahwa jika Anda tidak
mencantumkan statemen ini, maka cout harus dipakai sebagai std::cout dan endl harus dipakai sebagai std::endl. Akan dijelaskan hal ini nanti pada
bab ini.
Baris ketujuh memuat:
int main()
Ini merupakan kepala dari fungsi main. Baris kedelapan memuat sebuah kurung kurawal kiri. Ia menandai awal
tubuh fungsi main. Kurung kurawal
kanan (pada baris terakhir program) merupakan pasangan dari kurung kurawal kiri
dan menandai akhir tubuh fungsi main. Perhatikan
bahwa di dalam C++, << merupakan sebuah operator, yang dinamakan dengan operator penyisipan.
Dasar Program C++
Program C++ adalah kumpulan yang memuat satu atau lebih subprogram, yang
dinamakan fungsi. Beberapa fungsi,
yang dikenal dengan fungsi standar
atau fungsi terpradefinisi, adalah
bagian dari sistem. Tetapi untuk menyelesaikan kebanyakan pekerjaan yang
diinginkan, programer harus belajar menulis fungsi buatan sendiri.
Setiap program C++ harus memuat sebuah fungsi, yang dinamakan main. Jadi, jika sebuah program C++ hanya
memuat satu fungsi, fungsi itu haruslah fungsi main. Sampai bab 5, selain menggunakan fungsi-fungsi standar, Anda kebanyakan
akan bersinggungan dengan fungsi main.
Jika Anda belum pernah menggunakan bahasa pemrograman, program C++ pada
contoh 1.1 akan tampak seperti bahasa asing bagi Anda. Untuk memahami kalimat
pada bahasa asing, Anda harus belajar alfabet, kata, dan tata-bahasanya (grammer). Hal ini juga berlaku pada
bahasa pemrograman. Untuk menuliskan program, Anda harus belajar simbol-simbol
spesial, kata-kata, dan aturan-aturan sintaksnya. Aturan sintaks memberitahu
Anda statemen (instruksi) mana yang sah (yang dapat diterima oleh bahasa
pemrograman), dan mana yang tidak. Anda juga harus belajar aturan semantik,
yang menentukan makna instruksi.
Pada bagian ini, Anda akan belajar perihal beberapa simbol spesial pada
program C++. Beberapa simbol lain akan diintroduksi bila beberapa konsep baru
dijumpai pada bab-bab mendatang. Sama halnya, sintaks dan aturan semantik akan
diintroduksi dan didiskusikan secara progresif dengan berjalannya bab-bab pada
buku ini.
Komentar
Program yang Anda tulis harus jelas bukan hanya untuk Anda, tetapi juga
bagi pembaca program Anda. Sebagai bagian dari praktek pemrograman yang baik,
komentar merupakan bagian yang tidak terelakkan. Secara umum, komentar dapat
digunakan untuk mengidentifikasi pembuat program, memberikan tanggal kapan
program ditulis atau dimodifikasi, memberikan penjelasan singkat atas program,
dan menjelaskan makna statemen kunci pada sebuah program.
Komentar diperuntukkan bagi pembaca program, bukan untuk kompiler. Jadi,
ketika kompiler mengkompilasi sebuah program untuk memeriksa kesalahan sintaks,
ia mengabaikan semua komentar.
Program pada contoh 1.1 memuat komentar berikut:
// Ini merupakan sebuah contoh program C++. Ia
menampilkan
// empat baris
teks, termasuk penjumlahan atas dua angka.
Ada dua jenis komentar pada program C++, yaitu komentar baris-tunggal dan
komentar baris-jamak.
Komentar baris-tunggal diawali dengan // dan dapat ditempatkan di mana saja. Segala sesuatu yang berada setelah // pada suatu baris diabaikan oleh
kompiler. Sebagai contoh, perhatikan statemen berikut:
cout <<
"7 + 8 = " << 7 + 8
<< endl;
Anda dapat menempatkan komentar di akhir baris sebagai berikut:
cout <<
"7 + 8 = " << 7 + 8
<< endl; // menampilkan: 7+ 8 = 15
Komentar ini memuat makna bagi programer pemula.
Komentar baris-jamak diapit di antara /* dan */. Kompiler akan mengabaikan segala
sesuatu yang diapit oleh /* dan */. Sebagai contoh, berikut merupakan
sebuah contoh komentar baris-jamak:
/*
Anda dapat mencantumkan
komentar yang menempati
beberapa baris.
*/
Simbol-Simbol
Spesial
Unit individual terkecil pada sebuah program yang ditulis pada sembarang
bahasa pemrograman adalah sebuah token. Token pada C++ dikategorikan sebagai
simbol spesial, simbol kata, dan pengenal (identifier).
Berikut adalah beberapa simbol spesial dalam C++:
+ - *
/
. ; ?
,
<= != ==
>=
Baris pertama mencakup simbol-simbol matematik untuk penjumlahan,
pengurangan, perkalian, dan pembagian. Baris kedua memuat tanda-tanda baca yang
diambil dari tata-bahasa Inggris. Perhatikan bahwa koma juga merupakan simbol
spesial. Dalam C++, koma dipakai untuk memisahkan tiap item di dalam sebuah
daftar atau senarai (list). Tanda
baca titik-koma dipakai untuk mengakhiri setiap statemen C++. Anda dapat
menciptakan simbol kosong (blank)
dengan menekan tombol spasi (hanya sekali) pada papanketik. Baris ketiga memuat
beberapa token yang terdiri-dari dua karakter yang dipandang sebagai simbol
tunggal. Tidak ada karakter yang boleh ditempatkan di antara dua karakter di
dalam token, bahkan tidak karakter spasi.
Katakunci
Kategori kedua dari token adalah simbol kata. Beberapa simbol kata
mencakup:
int, float, double,
char, const, void, return
Setiap simbol kata di atas dikenal dengan katakunci. Huruf-huruf tersebut
harus berupa huruf kecil. Seperti simbol spesial, setiap simbol kata dipandang
sebagai simbol tunggal. Selain itu, simbol kata tidak dapat didefinisikan-ulang
di dalam sembarang program; yaitu, setiap katakunci tidak dapat dipakai untuk
tujuan lain selain yang telah ditetapkan oleh kompiler.
Pengenal
Kategori ketiga dari token adalah pengenal. Pengenal adalah nama-nama yang
muncul pada sebuah program, seperti variabel, konstanta, dan fungsi. Semua
pengenal harus mentaati aturan-aturan pengenal dalam C++.
Pengenal: Sebuah pengenal C++ memuat huruf, dijit, dan karakter garis-bawah (_)
dan harus diawali dengan sebuah huruf atau garis-bawah.
Beberapa pengenal telah terpradefinisi; selebihnya dapat didefinisikan
oleh pengguna. Dalam program C++ pada contoh 1.1, cout merupakan pengenal terpradefinisi dan angka adalah pengenal yang diciptakan oleh pengguna. Dua pengenal terpradefinisi
yang akan sering Anda jumpai adalah cout dan cin. Anda telah melihat efek penggunaan
dari cout. Nanti pada bab ini, Anda akan belajar
bagaimana cin, yang dipakai untuk membaca data,
bekerja. Tidak seperti katakunci, pengenal terpradefinisi dapat didefinisikan-ulang,
tetapi direkomendasikan agar Anda tidak melakukannya.
Pengenal hanya terdiri-dari huruf, dijit, dan karakter garis-bawah; simbol
lain tidak diijinkan dipakai untuk membentuk sebuah pengenal.
Dalam C++, pengenal bisa memiliki panjang berapapun yang Anda sukai.
Contoh 1.2
|
|
Berikut adalah pengenal-pengenal yang
sah di dalam C++:
waktu
ubah
bayarGaji
kounter2
Tabel 1.1 menampilkan beberapa pengenal
tak-sah dan menjelaskan mengapa hal itu tidak diijinkan.
Tabel 1.1 Beberapa pengenal tak-sah
Pengenal tak-sah
|
Penjelasan
|
mahasiswa
sarjan
|
Tidak
boleh ada spasi di antara mahasiswa dan sarjana.
|
Hallo!
|
Tanda
seru tidak bisa dipakai di dalam sebuah pengenal.
|
satu+dua
|
Simbol
+ tidak bisa dipakai di dalam sebuah pengenal.
|
2dua
|
Pengenal
tidak bisa diawali dengan sebuah dijit.
|
Spasi-putih
Setiap program C++ memuat spasi-putih.
Spasi-putih mencakup spasi, tab, dan karakter garis-baru (newline). Dalam sebuah program C++, spasi-putih dipakai untuk
memisahkan simbol spesial, katakunci, dan pengenal. Spasi-putih tidak dapat
ditampilkan, yang berarti bahwa ketika ia ditampilkan pada kertas putih, spasi
di antara simbol spesial, katakunci, dan pengenal tercetak putih. Kegunaan
spasi-putih dalam sebuah program sangat penting, karena ia dapat membuat
program menjadi mudah dibaca.
Tipe Data
Tujuan sebuah program C++ ditujukan untuk memanipulasi data. Sebuah
program yang didesain untuk menghitung gaji karyawan akan menjumlahkan,
mengurangi, mengalikan, dan membagi angka-angka, dan beberapa angka dipakai
untuk merepresentasikan jam kerja dan gaji. Sama halnya, sebuah program yang
didesain untuk mengalfabetisasi sebuah kelas dipakai untuk memanipulasi
nama-nama. Anda tentu tidak akan mengalikan atau mengurangi nama-nama. Oleh
karena itu, C++ mengelompokkan data menjadi beberapa tipe data, dan hanya
operasi-operasi tertentu yang dapat diterapkan pada tipe data tertentu.
Meskipun hal ini cukup membingungkan bagi programer pemula, C++ telah mengawal
programer pemula dengan menyediakan mekanisme pemeriksaan built-in untuk
mengantisipasi kesalahan tipe data.
Tipe data C++ dikelompokkan ke dalam tiga kategori dan diilustrasikan pada
Gambar 1.1:
1.
Tipe data
sederhana
2.
Tipe data
terstruktur
3.
Pointer
Gambar 1.1 Tipe data C++
Tipe
Data Sederhana
Tipe data sederhana merupakan tipe data fundamental dalam C++ karena ia
menjadi blok pembangun untuk tipe data terstruktur, yang akan Anda pelajari
mulai dari Bab 8. Ada tiga kategori tipe data sederhana:
1.
Integral, yang
merupakan tipe data yang berkaitan dengan integer (bilangan bulat), atau
angka-angka tanpa titik desimal.
2.
Titik-mengambang,
yang merupakan tipe data yang berkaitan dengan angka-angka desimal.
3.
Enumerasi, yang
merupakan tipe data yang diciptakan oleh pengguna.
Tipe data integral selanjutnya dikategorikan ke dalam sembilan kategori: char, short, int, long, bool, unsigned char, unsigned short, unsigned int, dan unsigned long.
Mengapa ada begitu banyak kategori tipe data? Setiap tipe data memiliki himpunan
nilai berbeda yang berkaitan dengannya. Sebagai contoh, tipe data char dipakai untuk merepresentasikan
integer di antara 128 sampai 127. Tipe data int dipakai untuk merepresentasikan integer di antara -2147483648 dan 2147483647, dan tipe data short dipakai untuk merepresentasikan
integer di antara -32768 dan 32767.
Perhatikan bahwa pengenal angka pada contoh 1.1
dapat ditugasi sembarang nilai yang berkaitan dengan tipe data int.
Tipe data mana yang akan Anda gunakan bergantung pada berapa besar angka
yang diperlukan program Anda. Pada masa awal pemrograman, komputer dan memori
utama sangat mahal. Hanya jumlah kecil memori yang tersedia untuk mengeksekusi
program dan memanipulasi data. Akibatnya, programer harus mengoptimasi kegunaan
memori. Karena penulisan program dan membuatnya dapat bekerja merupakan proses
yang sudah rumit, tidak cemas akan ukuran memori membuat programer sedikit
lega. Jadi, untuk menggunakan memori secara efektif, seorang programer dapat
melihat tipe data yang digunakan pada sebuah program dan memperhitungkan tipa
data mana yang akan digunakan.
Beberapa bahasa pemrograman terbaru hanya memiliki lima kategori atas tipe
data sederhana: integer, real, char, bool, dan tipe enumerasi. Tipe-tipe data
integral yang digunakan pada buku ini adalah int, bool, dan char.
Tabel 1.2 memberikan beberapa rentang nilai yang berkaitan dengan tiga
tipe data dan ukuran memori yang dialokasikan untuk memanipulasi nilai-nilai
tersebut.
Tabel 1.2 Nilai-nilai dan alokasi memori untuk tiga tipe data
Tipe data
|
Nilai
|
Penyimpanan (dalam
byte)
|
int
|
-2147483648 sampai 2147483647
|
4
|
bool
|
true dan false
|
1
|
char
|
-128
sampai 127
|
1
|
Tipe
Data int
Bagian ini akan menjelaskan tipe data
int. Diskusi ini juga dapat diterapkan pada tipe data integral yang lain.
Integer dalam C++, seperti dalam matematika, adalah angka-angka berikut: -6728, -67, 0, 78, 36782, +763. Perhatikan dua aturan
berikut:
1.
Integer
positif tidak memerlukan tanda +.
2.
Koma
tidak dipakai pada sebuah integer. Ingat bahwa dalam C++, koma dipakai untuk
memisahkan tiap item pada sebuah daftar atau senarai. Jadi, 34,56 akan
diinterpretasikan sebagai dua integer: 34 dan 56.
Tipe
Data bool
Tipe data bool hanya memiliki
dua nilai: true dan false. Selain itu, true dan false dikenal pula dengan nilai logikal (Boolean). Tujuan utama dari tipe data
ini adalah untuk memanipulasi ekspresi logikal (Boolean). Ekspresi logikal akan
didiskusikan secara detil pada Bab 3. Dalam C++, bool, true, dan false adalah katakunci.
Tipe
Data char
Tipe data char merupakan tipe
data integral yang terkecil. Ia umumnya dipakai untuk merepresentasikan
karakter, yaitu huruf, dijit, dan simbol spesial. Jadi, tipe data char dapat merepresentasikan setiap kunci
pada papanketik Anda. Ketika menggunakan tipe data char, Anda perlu mengapit setiap karakter dengan sepasang tanda kutip tunggal.
Beberapa nilai yang bertipe data char mencakup
berikut:
'A', 'a',
'0', '*', '+', '$', '&', ' '
Perhatikan bahwa spasi merupakan sebuah karakter dan dapat dituliskan
sebagai ‘ ‘ dengan sebuah spasi diapit oleh
sepasang tanda kutip tunggal.
Tipe data char hanya
membolehkan satu simbol ditempatkan di antara tanda kutip tunggal. Jadi, nilai
‘abc’ bukanlah bertipe char. Selain itu, meskipun ‘!=’ dan simbol-simbol spesial serupa
dipandang sebagai satu simbol, ia tidak dipandang sebagai nilai bertipe char. Semua simbol individual pada
papanketik yang dapat ditampilkan (dicetak) dipandang sebagai nilai bertipe
data char.
Ada beragam himpunan data karakter. Yang paling umum digunakan adalah
ASCII (American Standard Code for
Information Interchange) dan EBCDIC (Extended
Binary-Coded Decimal Interchange Code). Himpunan karakter ASCII mempunyai
128 nilai. Himpunan karakter EBCDIC mempunyai 256 nilai yang diciptakan oleh
IBM. Kedua himpunan karakter ditampilkan pada Tabal 1.3 dan Tabel 1.4.
Tabel 1.3 Himpunan karakter ASCII
Setiap nilai pada himpunan karakter ASCII merepresentasikan sebuah
karakter. Sebagai contoh, nilai 65 merepresentasikan ‘A’, dan nilai 43 merepresentasikan ‘+’. Setiap karakter ditata sedemikian rupa sehingga nilai
yang merepresentasikan ‘B’ adalah 66,
jadi ‘A’ lebih kecil dari ‘B’. Sama halnya, ‘+’ lebih kecil
dari ‘A’ karena 43 bernilai lebih kecil dari
65.
Tipe
Data Titik-Mengambang
Untuk menangani angka-angka desimal, C++ menyediakan tipe data
titik-mengambang, yang akan dijelaskan pada bagian ini. Untuk memfasilitasi
diskusi, akan ditinjau-ulang sebuah konsep dari mata pelajaran aljabar SMA/SMU:
Anda pasti telah familiar dengan notasi ilmiah. Sebagai contoh:
43872918 = 4.3872918 *
.0000265 = 2.65 *
47.9832 = 4.79832 *
Tabel 1.4 Himpunan karakter EBCDIC
Untuk merepresentasikan angka riil, C++ menggunakan notasi ilmiah
(saintifik) yang dikenal dengan notasi titik-mengambang. Tabel 1.5 menunjukkan
bagaiman C++ menampilkan beberapa angka riil menggunakan salah satu
interpretasi notasi titik-mengambang. Pada notasi titik-mengambang C++, huruf E
adalah singkatan dari eksponen.
Tabel 1.5 Contoh angka riil yang ditampilkan menggunakan notasi
titik-mengambang C++
Angka riil
|
Notasi titik-mengambang
C++
|
75.924
|
7.592400E1
|
0.18
|
1.800000E-1
|
0.0000453
|
4.530000E-5
|
-1.482
|
-1.482000E0
|
7800.0
|
7.800000E3
|
C++ menyediakan tiga tipe data untuk memanipulasi angka desimal: float, double, dan long double. Seperti pada kasus tipe data integral, tipe data float, double, dan long double memiliki himpunan nilai yang berbeda-beda.
float: Tipe data float dipakai dalam C++ untuk merepresentasikan sembarang nilai riil antara
-3.4E+38 dan 3.4E+38. Memori yang dialokasikan untuk sebuah nilai bertipe data float adalah 4 byte.
double: Tipe data double dipakai dalam C++ untuk merepresentasikan sembarang nilai riil antara
-1.7E308 dan 1.7E+308. Memori yang dialokasikan untuk sebuah nilai bertipe data
double adalah 8 byte.
Nilai maksimum dan nilai minimum dari tipe data float dan double
bergantung pada sistem. Untuk menemukan kedua nilai ini pada sistem tertentu,
Anda dapat memeriksa dokumentasi kompiler Anda.
Selain perbedaan himpunan nilai, ada satu lagi perbedaan antara tipe data float dan double. Jumlah maksimum dari dijit signifikan, yaitu jumlah dijit setelah titik
desimal, pada nilai float adalah enam
atau tujuh dijit. Jumlah maksimum dari dijit signifikan pada nilai bertipe double adalah 15.
Jumlah maksimum dari dijit signifikan disebut dengan kepresisian.
Kadangkala nilai bertipe float disebut dengan kepresisian tunggal, sedangkan nilai
bertipe double dinamakan dengan kepresisian ganda. Jika Anda berhadapan dengan angka-angka desimal,
maka pada kebanyakan kasus Anda hanya membutuhkan tipe float; jika Anda memerlukan keakuratan lebih
dari enam atau tujuh dijit di belakang titik desimal, maka Anda dapat
menggunakan tipe double.
Operator Aritmatik dan Keutamaan
Operator
Salah satu kegunaan terpenting dari sebuah komputer adalah kemampuannya
untuk berhitung. Anda dapat menggunakan operator-operator aritmatik standar
untuk memanipulasi tipe data integral dan tipe data titik-mengambang. Ada lima
operator aritmatik.
Operator Aritmatik: + (penjumlahan), - (pengurangan atau negasi), * (perkalian), / (pembagian), % (modulus atau sisa).
Anda dapat menggunakan operator +, -, *, dan / terhadap tipe data integral dan tipe data titik-mengambang.
Anda dapat menggunakan % hanya terhadap
tipe data integral untuk menemukan sisa dari pembagian biasa. Ketika Anda menggunakan / terhadap tipe data integral, ia akan memberikan hasil bagi dari pembagian
biasa. Yaitu, pembagian integral memotong bagian pecahan dari hasil; tidak
terjadi pembulatan.
Sejak di bangku sekolah, Anda telah terbiasa dengan beberapa ekspresi
aritmatik berikut ini:
i. -5
ii. 8 - 7
iii. 3 + 4
iv. 2 + 3 *5
v. 5.6 + 6.2 *3
vi. x + 2 *5 + 6 / y
(Perhatikan bahwa ekspresi (vi), x dan y adalah dua angka yang tak
dikenal). Secara formal, ekspresi aritmatik dikonstruksi menggunakan operator
aritmatik dan angka. Angka yang ada di dalam ekspresi dikenal dengan operand. Angka yang digunakan untuk
mengevaluasi sebuah operator dinamakan dengan operand bagi operator tersebut. Pada ekspresi (i), simbol –
menspesifikasi bahwa angka 5 adalah negatif. Pada ekspresi ini, - hanya memiliki satu operand. Operator yang memiliki satu operand dinamakan dengan operator unary.
Pada ekspresi (ii), simbol – dipakai untuk mengurangkan 7 dari 8. Pada
ekspresi ini, - memiliki dua
operand, 8 dan 7. Operator yang memiliki
dua operand dinamakan dengan operator biner atau binary.
Pada ekspresi (iii), yaitu, 3 + 4, 3 dan 4 adalah dua operand untuk
operator +. Pada ekspresi ini, operator + memiliki dua operand dan merupakan
operator biner. Sekarang perhatikan ekspresi berikut:
+27
Pada ekspresi ini, operator + mengindikasikan bahwa angka 27 adalah
positif. Di sini, + hanya memiliki satu operand dan jadi berperan sebagai
operator unary.
Dari diskusi ini, dapat dipahami bahwa + dan – adalah masing-masing
operator aritmatik unary dan biner. Namun, sebagai operator aritmatik, *, /, dan % adalah operator biner dan jadi memiliki dua operand.
Beberapa contoh berikut menunjukkan bagaimana operator-operator aritmatik,
khususnya / dan %, diterapkan
terhadap tipe data integral. Seperti yang Anda perhatikan dari contoh-contoh
ini, operator / merepresentasikan
hasil bagi pada pembagian biasa ketika digunakan terhadap tipe data integral.
Contoh 1.3
|
|
Ekspresi aritmatik
|
Hasil
|
Penjelasan
|
2 + 5
|
7
|
|
13 + 89
|
102
|
|
34 - 20
|
14
|
|
45 - 90
|
-45
|
|
2 * 7
|
14
|
|
5 / 2
|
2
|
Pada pembagian 5/2, hasil bagi (quotient) adalah 2 dan sisa adalah 1. Oleh karena itu, 5/2 dengan
kedua operand bertipe integral dievaluasi akan menghasilkan hasil bagi, yang
bernilai 2.
|
14 / 7
|
2
|
|
34 % 5
|
4
|
Pada pembagian 34/5, hasil bagi adalah 6 dan sisa sebesar 4.
Oleh karena itu, 34 % 5 dievaluasi menghasilkan sisa, yang bernilai 4.
|
4 % 6
|
4
|
Pada pembagian 4/6, hasil bagi adalah 0 dan sisa sebesar 4.
Oleh karena itu, 4 % 6 akan dievaluasi menghasilkan sisa, yaitu bernilai 4.
|
Program C++ berikut dipakai untuk mengevaluasi ekspresi-ekspresi tersebut:
// Program ini mengilustrasikan bagaimana ekspresi integral
// dievaluasi.
#include <iostream>
using namespace std;
int main()
{
cout << "2 + 5 = " << 2 + 5
<< endl;
cout << "13 + 89 = " << 13 + 89
<< endl;
cout << "34 - 20 = " << 34 - 20
<< endl;
cout << "45 - 90 = " << 45 - 90
<< endl;
cout << "2 * 7 = " << 2 * 7
<< endl;
cout << "5 / 2 = " << 5 / 2
<< endl;
cout << "14 / 7 = " << 14 / 7
<< endl;
cout << "34 % 5 = " << 34 % 5
<< endl;
cout << "4 % 6 = " << 4 % 6
<< endl;
return 0;
}
|
Keluaran Program:
2 + 5 = 7
13 + 89 = 102
34 - 20 = 14
45 - 90 = -45
2 * 7 = 14
5 / 2 = 2
14 / 7 = 2
34 % 5 = 4
4 % 6 = 4
Contoh 1.4
|
|
Contoh berikut menunjukkan bagaimana operator-operator aritmatik
diterapkan terhadap angka-angka titik-mengambang.
// Program ini mengilustrasikan bagaimana ekspresi titik-mengambang
// dievaluasi.
#include <iostream>
using namespace std;
int main()
{
cout << "5.0 + 3.5 = " << 5.0 + 3.5
<< endl;
cout << "3.0 + 9.4 = " << 3.0 + 9.4
<< endl;
cout << "16.3 - 5.2 = " << 16.3 -
5.2 << endl;
cout << "4.2 * 2.5 = " << 4.2 * 2.5
<< endl;
cout << "5.0 / 2.0 = " << 5.0 / 2.0
<< endl;
cout << "34.5 / 6.0 = " << 34.5 / 6.0
<< endl;
cout << "34.5 / 6.5 = " << 34.5 /
6.5 << endl;
return 0;
}
|
Keluaran Program:
5.0 + 3.5 = 8.5
3.0 + 9.4 = 12.4
16.3 - 5.2 = 11.1
4.2 * 2.5 = 10.5
5.0 / 2.0 = 2.5
34.5 / 6.0 = 5.75
34.5 / 6.5 = 5.30769
Urutan
Keutamaan
Ketika lebih dari satu operator aritmatik digunakan di dalam sebuah
ekspresi, C++ menggunakan aturan keutamaan operator untuk mengevaluasi
ekspresi. Sesuai dengan aturan urutan keutamaan untuk operator-operator
aritmatik,
*, /, %
berada pada level keutamaan lebih tinggi dari:
+, -
Perhatikan bahwa operator *, /, dan % memiliki level
keutamaan yang sama. Sama halnya, operator + dan – memiliki level keutamaan
yang sama.
Ketika operator-operator memiliki level keutamaan yang sama, operasi
dilakukan dari kiri ke kanan. Untuk menghindari kebingungan, Anda dapat
menggunakan sepasang kurung untuk mengelompokkan ekspresi-ekspresi aritmatik.
Sebagai contoh, dengan menggunakan aturan-aturan keutamaan operator,
3 * 7 - 6 + 2 * 5 / 4 + 6
yang berarti bahwa:
(((3 * 7) – 6) + ((2 * 5) / 4 )) + 6
= ((21 – 6) +
(10 / 4)) + 6 (mengevaluasi *)
= ((21 – 6) +
2) + 6 (mengevaluasi /. Perhatikan bahwa ini
merupakan pembagian integer.)
= (15 + 2) +
6 (mengevaluasi –)
= 17 + 6 (mengevaluasi + yang pertama)
= 23 (mengevaluasi +)
Perhatikan bahwa penggunaan kurung untuk menegaskan urutan keutamaan. Anda
juga dapat menggunakan kurung untuk menghindari urutan aturan keutamaan (lihat
contoh 1.5).
Contoh 1.5
|
|
Pada ekspresi:
3 + 4 * 5
* dievaluasi sebelum +. Oleh karena itu, hasil dari ekspresi ini adalah
23. Di sisi lain, di dalam ekspresi:
(3 + 4) * 5
+ dievaluasi sebelum * dan hasil dari ekspresi ini adalah 35.
Ekspresi
Pada titik ini, Anda telah mengetahui operator-operator aritmatika. Pada
bagian ini, akan didiskusikan ekspresi aritmatik secara detil. Ekspresi
aritmatik telah dikenalkan pada bagian sebelumnya.
Jika semua operand (yaitu, angka-angka) di dalam sebuah ekspresi adalah
integer, maka ekspresi tersebut dinamakan dengan ekspresi integral. Jika semua operand di dalam sebuah ekspresi
adalah angka-angka pecahana, maka ekspresi tersebut dinamakan dengan ekspresi pecahan atau titik-mengambang.
Ekspresi integral memberikan hasil integral; ekspresi titik-mengambang
memberikan hasil titik-mengambang (desimal). Anda perlu melihat beberapa contoh
berikut untuk mengklarifikasi dua definisi ini.
Contoh 1.6
|
|
Perhatikan beberapa ekspresi integral C++ berikut:
2 + 3 * 5
3 + x - y / 7
x + 2 * (y - z) + 18
Pada ekspresi-ekspresi tersebut, x, y, dan z merepresentasikan variabel-variabel bertipe integer; yaitu, ketiganya
dapat menampung nilai integer. Variabel akan didiskusikan nanti pada bab ini.
Contoh 1.7
|
|
Perhatikan ekspresi-ekspresi titik-mengambang C++ berikut:
12.8 * 17.5 -
34.50
x * 10.5 + y
- 16.2
Di sini, x dan y merepresentasikan variabel-varibel bertipe
titik-mengambang; yaitu, keduanya dapat menampung nilai-nilai titik-mangambang.
Variabel akan didiskusikan nanti pada bab ini.
Ekspresi
Campuran
Sebuah ekspresi yang memiliki operand-operand dengan pelbagai tipe data
dinamakan dengan ekspresi campuran.
Ekspresi campuran memuat kedua angka integer dan angka titik-mengambang.
Ekspresi-ekspresi berikut adalah contoh ekspresi campuran:
2 + 3.5
6 / 4 + 3.9
5.4 * 2 - 13.6 + 18 / 2
Pada ekspresi pertama, operand + memiliki satu operand integer dan satu
lagi operand titik-mengambang. Pada ekspresi kedua, kedua operand bagi operator
/ adalah integer, operand pertama bagi + adalah hasil dari 6/4, dan operand
kedua bagi + adalah sebuah angka titik-mengambang. Ekspresi ketiga merupakan
campuran dari angka integer dan angka titik-mengambang. Pertanyaannya adalah
bagaimana C++ mengevaluasi ekspresi campuran?
Dua aturan dapat diterapkan ketika mengevaluasi sebuah ekspresi campuran:
1.
Ketika
mengevaluasi sebuah operator di dalam suatu ekspresi campuran:
a. Jika operator memiliki operand-operand bertipe
sama (yaitu, keduanya integer atau keduanya titik-mengambang), operator
dievaluasi sesuai dengan tipe operand. Operand-operand integer akan memberikan
hasil integer; angka-angka titik-mengambang akan memberikan hasil
titik-mengambang.
b. Jika operator memiliki kedua tipe operand (yaitu,
satu operand integer dan yang lain angka titik-mengambang), maka selama
perhitungan, integer akan diubah menjadi angka titik-mengambang dengan bagian
desimal nol dan kemudian operator dievaluasi. Hasilnya adalah sebuah angka
titik-mengambang.
2. Semua ekspresi dievaluasi sesuai dengan
aturan-aturan keutamaan; perkalian, pembagian, dan modulus dievaluasi sebelum
operator penjumlahan dan pengurangan. Operator-operator dengan level keutamaan
yang sama dievaluasi dari kiri ke kanan. Pengelompokan diijinkan untuk
penegasan.
Dari kedua aturan ini, dapat dipahami bahwa ketika mengevaluasi sebuah
ekspresi campuran, Anda harus berkonsentrasi terhadap satu operator pada suatu
waktu, menggunakan aturan-aturan keutamaan. Jika operator yang akan dievaluasi
memiliki operand-operand bertipe data sama, maka Anda mengevaluasinya
menggunakan Aturan 1 (a). Yaitu, sebuah operator dengan operand-operand integer
akan memberikan hasil integer, dan sebuah operator dengan operand-operand
titik-mengambang akan memberikan hasil titik-mengambang. Jika operator yang
akan dievaluasi memiliki satu operand integer dan satu operand
titik-mengambang, maka sebelum mengevaluasi operator ini, Anda perlu
mengkonversi operand integer menjadi sebuah angka titik-mengambang dengan
bagian desimal nol. Beberapa contoh berikut akan menunjukkan bagaimana
mengevaluasi ekspresi campuran.
Contoh 1.8
|
|
Ekspresi campuran
|
Evaluasi
|
Aturan diterapkan
|
3 / 2 + 5.5
|
= 1 + 5.5
= 6.5
|
3/2 = 1 (pembagian integer; Aturan 1(a))
(1 + 5.5
= 1.0 + 5.5 (aturan 1(b))
= 6.5)
|
15.6 / 2 + 5
|
= 7.8 + 5
= 12.8
|
15.6 / 2
= 15.6/2.0 (aturan 1 (b))
= 7.8
7.8 + 5
= 7.8 + 5.0 (aturan 1(b))
= 12.8
|
4 + 5 / 2.0
|
= 4 + 2.5
= 6.5
|
5 / 2.0 = 5.0 / 2.0 (aturan 1(b))
= 2.5
4 + 2.5 = 4.0 + 2.5 (aturan 1(b))
= 6.5
|
4 *3 + 7 / 5 – 25.5
|
= 12+7/5 – 25.5
= 12 + 1 – 25.5
= 13 – 25.5
= -12.5
|
4 *3 = 12; (aturan 1(a))
7 / 5 = 1 (pembagian integer; aturan
1(a))
12 + 1 = 13; (aturan 1(a))
13 – 25.5 = 13.0 – 25.5 (aturan 1(b))
= -12.5
|
Program C++ berikut dipakai untuk mengevaluasi ekspresi-ekspresi tersebut:
// Program ini
mengilustrasikan bagaimana ekspresi camputan dievaluasi.
#include <iostream>
using namespace std;
int main()
{
cout << "3 / 2 + 5.5 = " << 3 / 2 + 5.5 << endl;
cout << "15.6 / 2 + 5 = " << 15.6 / 2 + 5 << endl;
cout << "4 + 5 / 2.0 = " << 4 + 5 / 2.0 << endl;
cout << "4 * 3 + 7 / 5 - 25.5 = "
<< 4 * 3 + 7 / 5 - 25.5
<< endl;
return
0;
}
Keluaran Program:
3 / 2 + 5.5 = 6.5
15.6 / 2 + 5 = 12.8
4 + 5 / 2.0 = 6.5
4 * 3 + 7 / 5 - 25.5 = -12.5
Konversi Tipe (Casting)
Pada bagian sebelumnya, Anda telah belajar bahwa ketika mengevaluasi
sebuah ekspresi aritmatik, jika operator memiliki operand-operand campuran,
nilai integer akan dikonversi menjadi sebuah nilai titik-mengambang dengan
bagian desimal nol. Ketika nilai dari
satu tipe data dikonversi secara otomatis menjadi tipe data lain, pemaksaan
tipe implisit terjadi. Seperti yang diilustrasikan oleh beberapa contoh
sebelumnya, jika Anda tidak hati-hati dengan tipe data, pemaksaan tipe implisit
dapat memberikan hasil yang tidak diharapkan.
Untuk menghindari pemaksaan tipe implisit, C++ menyediakan konversi tipe
eksplisit lewat penggunaan operator cast.
Operator cast, yang juga dikenal dengan konversi tipe atau pemaksaan tipe,
mempunyai bentuk berikut:
static_cast<namaTipeData>(ekspresi)
Pertama-tama, ekspresi dievaluasi. Nilainya kemudian dikonversi menjadi
sebuah nilai dengan tipe yang dispesifikasi oleh namaTipeData. Dalam C++, static_cast merupakan sebuah katakunci.
Ketika mengkonversi sebuah angka titik-mengambang (desimal) menjadi sebuah
integer menggunakan operator cast,
Anda hanya perlu membuang bagian desimal dari angka titik-mengambang. Yaitu,
angka titik-mengambang akan terpotong. Contoh 1.9 menunjukkan bagaimana
operator cast bekerja. Pastikan bahwa
Anda memahami bagaimana dua ekspresi terakhir dievaluasi seperti itu.
Contoh 1.9
|
|
Ekspresi
|
Dievaluasi menjadi
|
static_cast<int>(7.9)
|
7
|
static_cast<int>(3.3)
|
3
|
static_cast<double>(25)
|
25.0
|
static_cast<double>(5 + 3)
|
= static_cast<double>(8) = 8.0
|
static_cast<double>(15) / 2
|
= 15.0 / 2
(karena static_cast<double> (15) = 15.0)
= 15.0 /
2.0 = 7.5
|
static_cast<double>(15 / 2)
|
=
static_cast<double>(7) (karena 15/2=7)
= 7.0
|
static_cast<int>(7.8 +
static_cast<double>(15) / 2)
|
=
static_cast<int>(7.8 + 7.5)
=
static_cast<int>(15.3)
= 15
|
static_cast<int>(7.8 +
static_cast<double>(15 / 2))
|
=
static_cast<int>(7.8 + 7.0)
=
static_cast<int>(14.8)
= 14
|
Program C++ berikut dipakai untuk mengevaluasi ekspresi-ekspresi tersebut:
// Program ini mengilustrasikan bagaimana konversi
tipe eksplisit bekerja.
#include
<iostream>
using namespace std;
int main()
{
cout
<< "static_cast<int>(7.9)
= "
<< static_cast<int>(7.9)
<< endl;
cout
<< "static_cast<int>(3.3)
= "
<< static_cast<int>(3.3)
<< endl;
cout
<< "static_cast<double>(25)
= "
<< static_cast<double>(25)
<< endl;
cout
<< "static_cast<double>(5
+ 3) = "
<< static_cast<double>(5
+ 3)
<< endl;
cout
<< "static_cast<double>(15)
/ 2 = "
<< static_cast<double>(15)
/ 2
<< endl;
cout
<< "static_cast<double>(15
/ 2) = "
<< static_cast<double>(15
/ 2)
<< endl;
cout
<< "static_cast<int>(7.8
+ static_cast<double>(15) / 2) = "
<< static_cast<int>(7.8
+ static_cast<double>(15) / 2)
<< endl;
cout
<< "static_cast<int>(7.8
+ static_cast<double>(15 / 2)) = "
<< static_cast<int>(7.8
+ static_cast<double>(15 / 2))
<< endl;
return
0;
}
Keluaran Program:
static_cast<int>(7.9) = 7
static_cast<int>(3.3) = 3
static_cast<double>(25) = 25
static_cast<double>(5 + 3) = 8
static_cast<double>(15) / 2 = 7.5
static_cast<double>(15 / 2) = 7
static_cast<int>(7.8 + static_cast<double>(15)
/ 2) = 15
static_cast<int>(7.8 +
static_cast<double>(15 / 2)) = 14
Perhatikan bahwa nilai dari ekspresi static_cast<double>(25) adalah 25.0. Namun, yang ditampilkan adalah 25 bukan 25.0. Ini karena
belum didiskusikan bagaimana menampilkan angka desimal dengan bagian desimal 0
untuk menunjukkan titik desimal dan nol pengekor titik desimal. Bab 2 akan
menjelaskan bagaimana menampilkan angka desimal dalam format yang diinginkan.
Anda juga dapat menggunakan operator cast
untuk secara eksplisit mengkonversi nilai data char menjadi nilai data int dan nilai data int menjadi nilai data char. Untuk mengkonversi nilai data char menjadi nilai data int, Anda bisa memahaminya dari contoh
berikut. Sebagai contoh, dalam himpunan karakter ASCII, static_cast<int> (‘A’) adalah 65 dan static_cast<int>(‘8’) adalah 56. Sama halnya, static_cast<char>(‘65’) adalah ‘A’ dan adalah static_cast<int>(‘56’) adalah ‘8’.
Tipe string
Tipe data string adalah tipe data yang didefinisikan oleh programer. Ia tidak secara
langsung tersedia untuk digunakan di dalam sebuah program seperti tipe data
sederhana yang lain. Untuk menggunakan tipe data ini, Anda perlu mengakses
komponen-komponen program dari pustaka, yang akan didiskusikan nanti pada bab
ini. Tipe data string merupakan fitur dari C++ Standar ANSI/ISO.
Sebuah string adalah suatu runtun yang memuat nol atau lebih karakter.
String di dalam C++ diapit oleh sepasang tanda kutip ganda. String yang tidak memuat karakter dinamakan
dengan string kosong atau null. Berikut adalah beberapa contoh string.
Perhatikan bahwa ““ adalah string kosong.
"Danau
Toba"
"Jogja"
""
Setiap karakter di dalam sebuah string memiliki posisi relatif. Posisi
dari karakter pertama adalah 0, posisi dari karakter kedua adalah 1, dan
seterusnya. Panjang dari sebuah string adalah jumlah karakter yang dimuatnya.
Contoh 1.10
|
|
String
|
Posisi karakter di
dalam string
|
Panjang string
|
"Danau Toba"
|
Posisi dari 'D' adalah 0.
Posisi dari 'a' pertama adalah 1.
Posisi dari ' ' (spasi) adalah 5.
Posisi dari 'T' adalah 6.
Posisi dari 'b' adalah 8.
|
10
|
"Jogja"
|
Posisi dari 'J' adalah 0.
Posisi dari 'o' adalah 1.
Posisi dari 'g' adalah 2.
Posisi dari 'j' adalah 3.
Posisi dari 'a' adalah 4.
|
5
|
Ketika menentukan panjang sebuah string, Anda harus juga menghitung setiap
spasi yang ada di dalam string. Sebagai contoh, panjang dari string berikut
adalah 33.
“Wanita itu memesonaku setiap saat”
Tipe string lebih kompleks dan tangguh dari tipe data sederhana yang lain.
Ia menyediakan banyak operasi untuk memanipulasi string. Sebagai contoh, ia
menyediakan beberapa operasi untuk menemukan panjang sebuah string, mengekstrak
potongan suatu string, dan membandingkan dua string. Anda akan belajar hal ini
pada bab-bab berikutnya.
Masukan
Seperti yang telah dijelaskan sebelumnya, tujuan utama program C++ adalah
untuk melakukan perhitungan dan pemanipulasian data. Ingat bahwa data harus
dimuat ke memori utama sebelum ia dapat dimanipulasi. Pada bagian ini, Anda
akan belajar tentang bagaimana menempatkan data ke dalam memori komputer.
Penyimpanan data di dalam memori komputer merupakan sebuah proses dua-langkah:
1.
Menginstruksikan
komputer untuk mengalokasikan memori.
2.
Mencantumkan
statemen-statemen di dalam program untuk menempatkan data ke dalam memori yang
teralokasi.
Mengalokasikan
Memori dengan Konstanta dan Variabel
Ketika Anda menginstruksikan komputer untuk mengalokasikan memori, Anda
memberitahukannya tentang tidak hanya nama-nama yang akan digunakan untuk tiap
lokasi memori, tetapi juga tentang tipe data yang akan disimpan di dalam lokasi
memori tersebut. Mengetahui lokasi data sangat esensial, karena data yang
disimpan di dalam suatu lokasi memori bisa jadi dibutuhkan di beberapa tempat
di dalam program. Seperti yang Anda ketahui, mengetahui tipe data apa yang Anda
miliki adalah juga sangat krusial untuk melakukan kalkulasi yang akurat. Hal
yang penting pula untuk diketahui adalah apakah data Anda tetap tidak berubah
selama eksekusi program atau apakah ia perlu diubah.
Beberapa data perlu tidak berubah (sama) selama eksekusi program.
Misalnya, gaji karyawan paruh-waktu biasanya sama dan tidak berubah. Formula
konversi yang mengkonversi inci ke sentimeter tidak berubah (sama), karena 1
inci selalu sama dengan 2.54 sentimeter. Ketika disimpan di dalam memori, tipe
data ini perlu diproteksi dari pengubahan yang tidak disengaja (aksidental)
selama eksekusi program. Dalam C++, Anda dapat memakai sebuah konstanta bernama untuk menginstruksikan program sehingga menandai
lokasi-lokasi memori dimana di dalamnya data selalu tetap (tidak berubah)
selama eksekusi program.
Konstanta bernama: Sebuah lokasi memori dengan isi yang tidak diijinkan untuk diubah selama
eksekusi program.
Untuk mengalokasikan memori, Anda menggunakan statemen deklarasi C++.
Sintaks untuk mendeklarasikan sebuah konstanta bernama adalah:
const tipeData pengenal = nilai;
Dalam C++, const adalah
katakunci.
Contoh 1.11
|
|
Perhatikan beberapa statemen C++ berikut:
const double KONVERSI = 2.54;
const int JUMLAH_MHS = 20;
const char KOSONG = ' ';
Statemen pertama memberitahu kompiler untuk mengalokasikan memori (delapan
byte) untuk menyimpan sebuah nilai bertipe double, menamakan ruang memori ini KONVERSI, dan menyimpan nilai 2.54 di dalanya. Selama eksekusi, program
menggunakan statemen ini, kapanpun formula konversi diperlukan, ruang memori KONVERSI dapat diakses. Makna dari statemen
lain juga sama.
Perhatikan bahwa pengenal untuk konstanta bernama dibuat dengan huruf
besar. Meskipun tidak aturan tertulis, para programer C++ umumnya lebih
menyukai untuk menggunakan huruf besar untuk menamai konstanta bernama. Selain
itu, jika nama sebuah konstanta bernama merupakan kombinasi dari lebih dari
satu kata, maka keduanya dipisahkan dengan karakter garis-bawah (_). Sebagai contoh, pada contoh sebelumnya, JUMLAH_MHS menggunakan karakter garis-bawah untuk
memisahkan JUMLAH dan MHS.
Konstanta bernama dipakai untuk menyimpan data tetap. Jika Anda ingin
mengubah data tetap, Anda tidak perlu mengedit keseluruhan program dan mengubah
nilai lama menjadi nilai baru. Tetapi, Anda hanya perlu mengubah di satu tempat
saja, mengkompilasi-ulang program, dan mengeksekusinya menggunakan nilai baru
tersebut.
Pada beberapa program, data perlu dimodifikasi selama eksekusi program.
Sebagai contoh, pada tiap ujian, rerata dari skor ujian dan jumlah peserta
ujian bisa berubah. Sama halnya, akibat kenaikan gaji, gaji karyawan tiap
bulannya akan berubah. Tipe data ini harus disimpan di dalam sel memori yang
memiliki isi yang dapat dimodifikasi selama eksekusi program. Dalam C++, sel memori dengan isi yang dapat
dimodifikasi selama eksekusi program dinamakan dengan variabel.
Variabel: Sebuah lokasi memori dengan isi yang dapat berubah selama eksekusi
program.
Sintaks untuk mendeklarasikan satu variabel atau banyak variabel adalah:
tipeData pengenal1, pengenal2, . . .;
Contoh 1.12
|
|
Perhatikan beberapa statemen berikut:
double jumlahTagihan;
int kounter;
char ch;
int x, y;
string nama;
Statemen pertama memberitahu kompiler untuk mengalokasikan memori yang
cukup untuk menyimpan sebuah nilai bertipe double dan menamainya dengan jumlahTagihan. Statemen kedua dan ketiga memiliki konvensi yang sama. Statemen keempat
memberitahu kompiler untuk mengalokasikan dua ruang memori yang berbeda,
masing-masing cukup besar untuk menyimpan sebuah nilai bertipe int; nama dari ruang memori pertama adalah
x; dan nama dari ruang memori kedua adalah y. Statemen kelima memberitahu kompiler untuk mengalokasikan
ruang memori untuk menyimpan sebuah string dan menamainya nama.
Sama seperti penamaan konstanta bernama, tidak ada aturan tertulis untuk
menamai variabel. Namun, programer C++ umumnya menggunakan huruf kecil untuk
mendeklarasikan variabel. Jika sebuah nama variabel merupakan kombinasi dari
lebih dari satu kata, maka huruf pertama dari tiap kata, kecuali kata pertama,
adalah huruf besar. Sebagai contoh, perhatikan variabel jumlahTagihan pada contoh tersebut.
Mulai sekarang, ketika dikatakan “variabel”, maka itu berarti lokasi
memori variabel.
Sekarang setelah tipe data, variabel, dan konstanta telah didefinisikan
dan didiskusikan, maka berikut akan diberikan definisi formal atas tipe data
sederhana. Tipe data dikatakan sederhana
jika variabel atau konstanta bernama dengan tipe tersebut hanya dapat menyimpan
satu nilai pada suatu waktu. Sebagai contoh, jika x adalah sebuah variabel int, maka pada suatu waktu, hanya satu nilai yang dapat disimpan di dalam x.
Menempatkan
Data ke dalam Variabel
Setelah Anda mengetahui bagaimana mendeklarasikan variabel, pertanyaan
berikutnya adalah: Bagaimana Anda menempatkan data ke dalam variabel tersebut?
Dalam C++, Anda dapat menempatkan data ke dalam sebuah variabel dengan dua
cara:
1.
Menggunakan
statemen penugasan C++.
2.
Menggunakan
stateman pembacaan.
Statemen
Penugasan
Statemen penugasan memiliki format berikut:
variabel = ekspresi;
Di dalam sebuah statemen penugasan, nilai dari ekspresi harus cocok dengan tipe data dari variabel. Ekspresi di sisi kanan dievaluasi terlebih dahulu, dan nilainya
ditugaskan kepada variabel (ke dalam sebuah lokasi memori) di sisi kiri.
Sebuah variabel dikatakan
diinisialisasi ketika pertama kali sebuah nilai ditempatkan ke dalam variabel
tersebut.
Dalam C++, = dikenal dengan operator penugasan.
Contoh 1.13
|
|
Dimisalkan bahwa Anda memiliki beberapa deklarasi variabel berikut:
int angka1, angka2;
double penjualan;
char pertama;
string
str;
Sekarang, perhatikan beberapa statemen penugasan berikut:
angka1 = 4;
angka2 = 4 * 5 - 11;
penjualan = 0.02 * 1000;
pertama = 'D';
str = "Hari ini cuaca cerah.";
Untuk tiap statemen, komputer pertama-tama mengevaluasi ekspresi di sisi
kanan dan kemudian menyimpan nilainya di dalam sebuah lokasi memori yang
dinamai oleh pengenal di sisi kiri. Statemen pertama menyimpan nilai 4 di dalam
angka1, statemen kedua menyimpan 9 di dalam angka2, statemen ketiga menyimpan 20.0 di
dalam penjualan, dan statemen keempat menyimpan
karakter D di dalam pertama. Statemen kelima menyimpan string ”Hari ini cuaca cerah.” di dalam variabel str.
Program C++ berikut menunjukkan efek dari statemen-statemen tersebut:
// Program ini mengilustrasikan bagaimana data di
dalam
// variabel dimanipulasi.
#include
<iostream>
#include
<string>
using namespace std;
int main()
{
int angka1, angka2;
double penjualan;
char pertama;
string str;
angka1 = 4;
cout
<< "angka1 = "
<< angka1 << endl;
angka2 = 4 *
5 - 11;
cout
<< "angka2 = "
<< angka2 << endl;
penjualan =
0.02 * 1000;
cout
<< "penjualan = "
<< penjualan << endl;
pertama =
'D';
cout
<< "pertama = "
<< pertama << endl;
str = "Hari ini cuaca cerah.";
cout
<< "str = " <<
str << endl;
return 0;
}
Keluaran Program:
angka1 = 4
angka2 = 9
penjualan = 20
pertama = D
str = Hari ini cuaca cerah.
Pada sebagian besar program tersebut cukup sederhana. Anda hanya perlu
menengok statemen keluaran berikut:
cout <<
" angka1 = " << angka1
<< endl;
Statemen keluaran ini memuat string “angka1 = “, operator <<, dan variabel angka1. Di sini, pertama-tama nilai dari string “angka1 = “ ditampilkan, kemudian nilai dari variabel angka1 ditampilkan. Makna dari statemen-statemen keluaran lain sama.
Sebuah statemen C++ seperti:
angka = angka + 2;
berarti “evaluasi lebih dahulu
apapun nilai di dalam angka, tambahkan 2 kepadanya, dan tugaskan nilai baru tersebut ke lokasi memori
angka”. Ekspresi di sisi kanan operator penugasan harus dievaluasi lebih
dahulu; nilai tersebut kemudian ditugaskan ke lokasi memori yang dispesifikasi
oleh variabel di sisi kiri operator penugasan. Jadi, runtun statemen C++:
angka = 6;
angka = angka
+ 2;
dan statemen:
angka = 8;
keduanya menugaskan 8 kepada angka. Perhatikan
bahwa jika angka tidak diinisialisasi, maka statemen angka = angka + 2 akan memberikan hasil yang tidak
terduga dan/atau kompiler akan memberikan pesan peringatan yang mengindikasikan
bahwa variabel tidak diinisialisasi.
Statemen angka = 5; dibaca sebagai “angka menjadi 5” atau “angka mendapat 5” atau “angka ditugasi nilai 5”. Pembacaan statemen seperti “angka sama dengan 5” adalah tidak tepat, khususnya untuk statemen seperti angka = angka + 2;. Setiap kali sebuah nilai baru
ditugaskan kepada angka, nilai lama akan ditimpa.
Contoh 1.14
|
|
Dimisalkan bahwa angka1, angka2, dan angka3 adalah variabel-variabel int dan bahwa
beberapa statemen berikut dieksekusi secara berurutan:
1.
angka1
= 18;
2.
angka1
= angka1 + 27;
3.
angka2
= angka1;
4.
angka3
= angka2/5;
5.
angka3
= angka3/4;
Tabel berikut menampilkan nilai dari tiap variabel setial eksekusi atas
tiap statemen dilakukan. (? mengindikasikan bahwa nilai tidak diketahui. Kotak
abu-abu terang di dalam sebuah kotak menunjukkan bahwa nilai dari variabel
tersebut berubah.
Dapat diperhatikan bahwa setelah eksekusi atas statemen pada baris 5, angka1 = 45, angka2 = 45, dan angka3 = 2.
Penjejakan nilai-nilai merupakan cara untuk belajar dan berlatih. Anda
akan memahami bagaimana menjejak statemen-statemen C++ nanti pada bab ini.
Menyimpan
dan Menggunakan Nilai Sebuah Ekspresi
Karena Anda telah mengetahui bagaimana mendeklarasikan variabel dan
menempatkan data ke dalamnya, Anda sekarang dapat belajar bagaimana menyimpan
nilai dari sebuah ekspresi. Anda kemudian dapat menggunakan nilai ini pada
ekspresi lain tanpa menggunakan ekspresi itu sendiri. Untuk menyimpan nilai
dari sebuah ekspresi dan menggunakannya pada ekspresi lain, lakukan hal-hal
berikut:
1.
Deklarasikan
sebuah variabel dengan tipe data sesuai. Sebagai contoh, jika hasil dari
ekspresi adalah sebuah integer, maka deklarasikan sebuah variabel int.
2.
Tugaskan nilai
dari ekspresi kepada variabel yang telah dideklarasikan, menggunakan statemen
penugasan. Tindakan ini akan menyimpan nilai dari ekspresi ke dalam variabel.
3. Kapanpun nilai dari ekspresi diperlukan, gunakan
variabel yang memuat nilainya. Contoh berikut mengilustrasikan konsep ini.
Contoh 1.15
|
|
Dimisalkan bahwa Anda memiliki deklarasi berikut:
int a, b, c, d;
int x, y;
Selanjutnya dimisalkan bahwa Anda ingin mengevaluasi ekspresi
dan
dan menugaskan nilai dari kedua ekspresi
kepada x dan y. Karena ekspresi
muncul pada kedua ekspresi, Anda dapat
pertama-tama menghitung nilai dari ekspresi ini dan menyimpannya di dalam d. Anda kemudian dapat menggunakan nilai dari d untuk mengevaluasi kedua ekspresi, seperti yang ditampilkan
pada beberapa statemen:
d = b * b - 4 * a * c;
x = -b + d;
y = -b - d;
Sebelumnya, Anda telah belajar bahwa jika sebuah variabel digunakan pada
suatu ekspresi, ekspresi tersebut akan memberikan nilai hanya dan hanya jika
variabel tersebut telah diinisialisasi. Anda juga telah belajar bahwa setelah
mendeklarasikan sebuah variabel, Anda dapat menggunakan statemen penugasan
untuk menginisialisasinya. Adalah mungkin untuk menginisialisasi dan
mendeklarasikan variabel pada saat yang bersamaan. Sebelum mendiskusikan
bagaimana menggunakan statemen pembacaan, akan dibahas topik penting ini lebih
dahulu.
Mendeklarasikan
dan Menginisialisasi Variabel
Ketika sebuah variabel dideklarasikan, C++ tidak secara otomatis
menempatkan nilai di dalamnya. Dengan kata lain, C++ tidak secara otomatis
menginisialisasi variabel. Sebagai contoh, variabel int dan double tidak diinisialisasi dengan 0, seperti
yang terjadi pada beberapa bahasa pemrograman. Ketika sebuah variabel
dideklarasikan, memori dialokasikan untuknya oleh kompiler.
Memori utama komputer merupakan rentetan sel terurut, dan tiap sel mampu
menyimpan sebuah nilai. Selain itu, bahasa mesin adalah sebuah runtun bit 0
atau bit 1. Oleh karena itu, data di dalam sebuah sel memori adalah suatu
runtun bit. Bit-bit ini adalah sinyal elektrik, ketika komputer dinyalakan,
beberapa dari bit tersebut bernilai 1 dan lainnya bernilai 0. Keadaan dari tiap
bit bergantung pada bagaimana sistem bekerja. Namun, ketika Anda
menginstruksikan komputer untk menyimpan sebuah nilai tertentu di dalam suatu
sel memori, bit-bit ditetapkan sesuai dengan data yang sedang disimpan.
Selama pemanipulasian data, komputer mengambil nilai yang disimpan di
dalam sel tertentu dan melakukan kalkulasi. Jika Anda mendeklarasikan sebuah
variabel dan tidak menyimpan suatu nilai di dalamnya, maka sel memori tersebut
masih memiliki suatu nilai, biasanya nilai dari penetapan bit-bit dari
penggunaan terakhirnya, dan Anda tidak mengetahui berapa nilai tersebut.
Jika Anda hanya mendeklarasikan sebuah variabel dan tidak menginstruksikan
komputer untuk menempatkan data ke dalam variabel tersebut, nilai dari variabel
tersebut dianggap sampah. Namun, komputer bisa saja tidak memberikan peringatan
akan hal tersebut. Penggunaan sebuah variabel di dalam suatu ekspresi tanpa
terlebih dahulu menginisialisasinya akan memberikan hasil yang tidak
diharapkan. Untuk menghindari hal ini, C++ mengijinkan Anda untuk menginisialisasi
variabel ketika Anda mendeklarasikannya. Sebagai contoh, perhatikan beberapa
statemen C++ berikut dimana di dalamnya variabel-variabel terlebih dahulu
dideklarasikan dan kemudian diinisialisasi:
int pertama, kedua;
char ch;
double
x;
pertama = 13;
kedua = 10;
ch = ' ';
x = 12.6;
Anda dapat mendeklarasikan dan menginisialisasi variabel-variabel pada
waktu bersamaan menggunakan statemen-statemen C++ berikut:
int pertama = 13, kedua = 10;
char ch = ' ';
double x
= 12.6;
Statemen C++ pertama mendeklarasikan dua variabel int, pertama dan kedua, dan menyimpan 13 di dalam pertama dan 10 di dalam kedua. Makna dari statemen lain sama.
Statemen
Pembacaan
Sebelumnya, Anda telah belajar bagaimana menempatkan data ke dalam variabel
menggunakan statemen penugasan. Pada bagian ini, Anda akan belajar bagaimana
menempatkan data ke dalam variabel dari divais masukan standar, menggunakan
statemen pembacaan (masukan) C++.
Ketika komputer mendapatkan data dari papanketik, pengguna dikatakan
beraksi secara interaktif. Penempatan data ke dalam variabel dari divais
masukan standar dilakukan dengan penggunaan cin dan operator >>. Sintaks dari cin bersama dengan >> adalah:
cin >> variabel1
>> variabel2 >> ...;
Ini dikenal sebagai statemen
pembacaan (masukan). Dalam C++, >> dikenal sebagai operator ekstraksi aliran.
Contoh 1.16
|
|
Dimisalkan bahwa mil adalah sebuah variabel bertipe double. Selanjutnya dimisalkan bahwa masukan
adalah 73.65. Perhatikan beberapa statemen berikut:
cin >> mil;
Statemen ini menyebabkan komputer untuk membaca masukan, yang bernilai
73.65, dari divais masukan standar dan menyimpannya di dalam variabel mil. Jadi, setelah statemen ini
dieksekusi, nilai dari variabel mil adalah 73.65.
Contoh 1.17 selanjutnya akan menjelaskan bagaimana membaca data numerik ke
dalam sebuah program.
Contoh 1.17
|
|
Dimisalkan bahwa dimiliki beberapa statemen berikut:
int kaki;
int inci;
Dimisalkan bahwa masukan adalah:
23 7
Selanjutnya, perhatikan statemen berikut:
cin >> kaki >> inci;
Statemen ini pertama-tama menyimpan angka 23 ke dalam variabel kaki dan kemudian angka 7 ke dalam variabel
inci. Perhatikan bahwa ketika kedua angka
ini dimasukkan lewat papanketik, keduanya dipisahkan oleh sebuah spasi. Tetapi,
pada kenyataannya, keduanya dapat dipisahkan oleh satu atau lebih spasi atau
baris atau karakter tab.
Program C++ berikut menunjukkan pengaruh dari statemen-statemen masukan
tersebut:
// Program ini mengilustrasikan bagaimana statemen
pembacaan bekerja.
#include
<iostream>
using namespace std;
int main()
{
int kaki;
int inci;
cout
<< "Masukkan dua integer yang
dipisahkan dengan spasi: ";
cin >>
kaki >> inci;
cout
<< endl;
cout
<< "Kaki = "
<< kaki << endl;
cout
<< "Inci = "
<< inci << endl;
return 0;
}
Keluaran Program:
Masukkan dua integer yang dipisahkan dengan spasi: 23
7
Kaki = 23
Inci = 7
Program C++ pada contoh 1.18 mengilustrasikan bagaimana membaca string dan
data numerik.
Contoh 1.18
|
|
// Program ini mengilustrasikan bagaiman membaca
string dan data numerik.
#include
<iostream>
#include
<string>
using namespace std;
int main()
{
string namaPertama; //Baris 1
string namaAkhir; //Baris
2
int usia; //Baris 3
double berat; //Baris 4
cout
<< "Masukkan nama pertama,
nama akhir, usia, "
<< "dan berat,
dipisahkan dengan koma."
<< endl; //Baris
5
cin
>> namaPertama >> namaAkhir; //Baris
6
cin >> usia >> berat; //Baris 7
cout
<< "Nama: " <<
namaPertama << " "
<< namaAkhir << endl; //Baris 8
cout
<< "Usia: " <<
usia << endl; //Baris
9
cout << "Berat: " << berat << endl; //Baris 10
return 0; //Baris 11
}
Keluaran Program:
Masukkan nama pertama, nama akhir, usia, dan berat,
dipisahkan dengan koma.
Roro Kusumawardani 20 45.45
Nama: Roro Kusumawardani
Usia: 20
Berat: 45.45
Program tersebut bekerja sebagai berikut: Statemen pada baris 1 sampai
baris 4 mendeklarasikan variabel namaPertama dan namaAkhir bertipe string, usia bertipe int, dan berat
bertipe double. Statemen pada baris 5 merupakan
sebuah statemen keluaran dan memberitahu pengguna apa yang perlu dilakukan.
Seperti yang ditampilkan pada keluaran program, masukan pada program adalah:
Roro Kusumawardani 20 45.45
Statemen pada baris 6 pertama-tama membaca dan menyimpan string Roro ke dalam variabel namaPertama dan kemudian melompati spasi yang
berada sesudah Roro dan membaca dan
menyimpan string Kusumawardani ke dalam variabel namaAkhir. Selanjutnya, statemen pada baris 7 pertama-tama melompati spasi yang ada
setelah Kusumawardani dan membaca dan menyimpan 20 ke dalam
variabel usia dan kemudian melompati spasi yang ada
setelah 20 dan membaca dan menyimpan 45.45 ke dalam variabel berat.
Statemen pada baris 8, 9, dan 10 menghasilkan keluaran pada baris ketiga,
keempat, dan kelima.
Inisialisasi
Variabel
Ingat bahwa, ada dua cara dalam menginisialisasi sebuah variabel: dengan
menggunakan statemen penugasan dan dengan menggunakan statemen pembacaan.
Perhatikan deklarasi berikut:
int kaki;
int inci;
Perhatikan dua potongan kode berikut:
(a)
|
(b)
|
kaki = 35;
inci = 6;
cout << "Total inci = "
<<
12 * kaki + inci;
|
cout << "Masukkan
kaki: ";
cin >> kaki;
cout << endl;
cout << "Masukkan
inci: ";
cin >> inci;
cout << endl;
cout << "Total
inci = "
<< 12 * kaki
+ inci;
|
Pada (a), kaki dan inci diinisialisasi menggunakan statemen
penugasan, dan pada (b), variabel-variabel diinisialisasi menggunakan statemen
pembacaan. Namun, setiap kali kode pada (a) dieksekusi, kaki dan inci
diinisialisasi dengan nilai yang sama kecuali jika Anda mengedit kode sumber,
mengubah nilai, dan mengkompilasi-ulang. Di sisi lain, pada (b), setiap kali
program dijalankan, Anda diminta untuk memasukkan nilai-nilai untuk kaki dan
inci. Oleh karena itu, statemen pembacaan jauh lebih fleksibel daripada
statemen penugasan.
Kadangkala diperlukan untuk menginisialisasi sebuah variabel menggunakan
statemen penugasan. Ini terjadi jika variabel digunakan hanya untuk perhitungan
internal dan bukan untuk pembacaan dan penyimpanan data.
Ingat bahwa C++ tidak secara otomatis menginisialisasi variabel ketika ia
dideklarasikan. Beberapa variabel dapat diinisialisasi ketika ia
dideklarasikan, sedangkan beberapa variabel lain diinisialisasi menggunakan
statemen penugasan atau statemen pembacaan.
Contoh 1.19
|
|
Contoh berikutnya akan mengilustrasikan bagaimana statemen penugasan dan
statemen pembacaan memanipulasi variabel. Perhatikan deklarasi berikut:
int angka1, angka2;
double z;
char ch;
string nama;
Selain itu, dimisalkan bahwa beberapa statemen berikut dieksekusi secara berurutan:
1.
angka1 =
4;
2.
angka2 =
2 * angka1+ 6;
3.
z = (angka1 + 1) / 2.0;
4.
ch = 'A';
5.
cin >> angka2;
6.
cin >>
z;
7.
angka1= 2 * angka2 + static_cast<int>(z);
8.
cin >>
nama;
9.
angka2 = angka2 + 1;
10. cin >> ch;
11. angka1= angka1+
static_cast<int>(ch);
12. z = angka1- z;
Tabel 1.6 Nilai tiap variabel pada contoh 1.19
Selain itu, dimisalkan bahwa masukan yang diberikan adalah:
8 16.3 Jenny D
Baris ini memiliki empat nilai, yaitu 8, 16.3, Jenny, dan D, dan tiap nilai
dipisahkan oleh sebuah spasi.
Sekarang akan ditentukan nilai dari tiap variabel terdeklarasi setelah
statemen terakhir selesai dieksekusi. Untuk menunjukkan secara eksplisit
bagaimana statemen tertentu mengubah nilai dari sebuah variabel, nilai dari
tiap variabel setelah tiap statemen dieksekusi akan ditampilkan. Pada tabel
tersebut, tanda tanya (?) di dalam kotak mengindikasikan bahwa nilai tidak
diketahui.
Sebelum statemen 1 dieksekusi, semua variabel tak-terinisialisasi, seperti
ditampilkan pada Gambar 1.2.
Gambar 1.2 Variabel-variabel sebelum statemen 1 dieksekusi
Tabel 1.6 menunjukkan nilai tiap variabel setelah eksekusi atas tiap
statemen dilakukan.
Operator Inkremen dan Dekremen
Setelah Anda mengetahui bagaimana mendeklarasikan sebuah variabel dan
menempatkan data ke dalam suatu variabel, pada bagian ini, Anda akan belajar
tentang dua operator lain: operator inkremen dan operator dekremen. Kedua
operator ini sangat sering dipakai oleh programer C++ dan merupakan perangkat
pemrograman.
Dimisalkan bahwa kounter adalah sebuah variabel int. Statemen:
kounter =
kounter + 1;
menginkremen nilai dari kounter sebesar 1. Untuk mengeksekusi statemen penugasan ini, komputer
pertama-tama mengeksekusi ekspresi di sisi kanan, yaitu kounter + 1. Ia kemudian menugaskan nilai ini
kepada variabel di sisi kiri, yaitu kounter.
Seperti yang akan Anda lihat pada bab-bab berikutnya, statemen-statemen
semacam itu seringkali dipakai untuk menjejak berapa kali hal tertentu terjadi.
Untuk tujuan itu, C++ menyediakan operator inkremen, ++, yang menambah nilai
dari sebuah variabel sebesar 1, dan operator dekremen, --, yang mengurangi nilai sebuah variabel
sebesar 1.
Masing-masing operator inkremen dan dekremen memiliki dua bentuk, pra dan
pasca. Sintaks dari operator inkremen adalah:
Pra-inkremen: ++variabel
Pasca-inkremen: variabel++
Sintaks untuk operator dekremen adalah:
Pra-dekremen: --variabel
Pasca-dekremen: variabel--
Sekarang, akan didiskusikan beberapa contoh. Statemen:
++kounter;
atau
kounter++;
menginkremen nilai dari kounter sebesar 1. Sama halnya, statemen:
--kounter;
atau
kounter--;
mendekremen nilai dari kounter sebesar 1.
Karena kedua operator inkremen dan operator dekremen merupakan bagian
integral di dalam C++, nilai dari variabel diinkremen atau didekremen tanpa
harus menggunakan statemen penugasan.
Sekarang, Anda telah mengetahui bahwa operator pra-inkremen dan
pasca-inkremen menginkremen variabel sebesar 1. Sama halnya, operator
pra-dekremen dan pasca-dekremen mendekremen variabel sebesar 1. Pertanyaannya
adalah apakah perbedaan antara bentuk pra dan pasca dari kedua operator
tersebut? Perbedaannya akan menjadi nyata ketika variabel yang menggunakan
kedua operator ini dipakai di dalam suatu ekspresi.
Dimisalkan bahwa x adalah sebuah
variabel int. Jika ++x digunakan di dalam suatu ekspresi, nilai dari x pertama-tama diinkremen sebesar 1, dan kemudian nilai baru dari x tersebut dipakai untuk mengevaluasi ekspresi. Di sisi lain,
jika x++ dipakai di dalam suatu ekspresi,
pertama-tama nilai sekarang dari x dipakai di
dalam ekspresi, dan kemudian nilai dari x diinkremen sebesar 1. Contoh berikut akan memperjelas perbedaan antara
operator pra-inkremen dan pasca-inkremen.
Dimisalkan bahwa x dan y adalah dua variabel int. Perhatikan dua statemen berikut:
x = 5;
y = ++x;
Statemen pertama menugaskan nilai 5 kepada x. Untuk mengevaluasi statemen kedua, yang menggunakan operator
pra-inkremen, pertama-tama nilai dari x diinkremen menjadi 6, dan kemudian nilai ini, 6, ditugaskan kepada y. Seteleh statemen kedua dieksekusi, kedua x dan y memiliki nilai
6.
Sekarang, perhatikan dua statemen berikut:
x = 5;
y = x++;
Seperti sebelumnya, statemen pertama menugaskan 5 kepada x. Pada statemen kedua, operator pasca-inkremen diterapkan
terhadap x. Untuk mengeksekusi statemen kedua,
pertama-tama nilai dari x, yaitu 5,
dipakai untuk mengevaluasi ekspresi, dan kemudian nilai dari x diinkremen menjadi 6. Terakhir, nilai dari ekspresi, yaitu
5, disimpan di dalam y. Setelah
statemen kedua dieksekusi, nilai dari x adalah 6, dan nilai dari y adalah 5.
Contoh berikut lebih lanjut mengilustrasikan bagaimana format pra dan
pasca dari operator inkremen bekerja.
Contoh 1.20
|
|
Dimisalkan bahwa a dan b adalah dua variabel int dan:
a = 5;
b = 2 + (++a);
Statemen pertama menugaskan 5 kepada a. Untuk mengeksekusi statemen kedua, pertama-tama ekspresi 2 + (++a)
dievaluasi. Karena operator pra-inkremen diterapkan terhadap a, nilai dari a lebih dahulu
diinkremen menjadi 6. Kemudian 2 ditambahkan pada 6 untuk mendapatkan 8, yang
kemudian ditugaskan kepada b. Oleh karena
itu, setelah statemen kedua dieksekusi, a bernilai 6 dan b bernilai 8.
Di sisi lain, setelah eksekusi atas dua statemen berikut:
a = 5;
b = 2 + (a++);
Nilai dari a adalah 6 sedangkan nilai dari b adalah 7.
Statemen Keluaran
Pada beberapa bagian sebelumnya, Anda telah melihat bagaimana menempatkan
data ke dalam memori komputer dan bagaiman memanipulasi data tersebut. Anda
juga telah menggunakan beberapa statemen keluaran untuk menampilkan hasil pada
divais keluaran standar. Bagian ini akan menjelaskan cukup detil tentang
bagaimana kegunaan statemen keluaran untuk menampilkan hasil yang diinginkan.
Dalam C++, menampilkan pada divais keluaran standar dilakukan lewat
penggunaan cout dan operator <<. Sintaks umum dari cout dengan << adalah:
cout << ekspresi
atau manipulator << ekspresi atau manipulator...;
Ini dinamakan dengan statemen keluaran. Dalam C++, << dikenal dengan operator
penyisipan aliran. Penggunaan cout harus menaati
dua aturan berikut:
1.
Ekspresi
dievaluasi, dan nilainya ditampilkan pada titik penyisipan sekarang pada divais
keluaran.
2. Sebuah manipulator dipakai untuk memformat
keluaran. Manipulator tersederhana adalah endl, yang menyebabkan titik penyisipan berpindah ke
awal baris berikutnya.
Contoh selanjutnya mengilustrasikan bagaiman sebuah statemen keluaran
bekerja. Pada suatu statemen keluaran, string atau ekspresi yang hanya
melibatkan satu variabel atau satu nilai dievaluasi ke dirinya sendiri.
Contoh 1.21
|
|
Perhatikan beberapa statemen berikut. Keluaran ditunjukkan di sisi kanan
tiap statemen.
|
Statemen
|
Keluaran
|
1
|
cout << 29 / 4 << endl;
|
7
|
2
|
cout << "Danau Toba." << endl;
|
Danau Toba
|
3
|
cout << 12 << endl;
|
12
|
4
|
cout << "4 + 7" << endl;
|
4 + 7
|
5
|
cout << 4 + 7 << endl;
|
11
|
6
|
cout << 'A' << endl;
|
A
|
7
|
cout << "4 + 7 = " << 4 + 7 << endl;
|
4 + 7 = 11
|
8
|
cout << 2 + 3 * 5 << endl;
|
17
|
9
|
cout << "Danau \nToba."
<< endl;
|
Danau
Toba
|
Perhatikan keluaran dari statemen 9. Ingat bahwa pada C++, karakter
garis-baru adalah ‘\n’; ia
menyebabkan titik penyisipan untuk berpindah ke awal baris berikutnya sebelum
menampilkan sesuatu. Oleh karena itu, ketika \n muncul di dalam sebuah string pada suatu statemen keluaran, ia
menyebabkan titik penyisipan berpindah ke awal baris berikutnya pada divais
keluaran. Fakta ini menjelaskan mengapa Danau dan Toba ditampilkan pada baris terpisah.
Ingat bahwa semua variabel harus diinisialisasi secara benar; jika tidak,
nilai yang disimpan di dalamnya tidak akan masuk akan. Selain itu, ingat bahwa
C++ tidak secara otomatis menginisialisasi variabel.
Jika angka adalah sebuah variabel int, maka keluaran dari statemen C++:
cout << angka << endl;
akan bermakna jika dan hanya jika angka telah diberikan sebuah nilai. Sebagai contoh, runtun statemen C++:
angka = 45;
cout << angka << endl;
akan menghasilkan keluaran 45.
Contoh 1.22
|
|
Perhatikan program C++ berikut:
// Program ini mengilustrasikan bagaiman statemen
keluaran bekerja.
#include
<iostream>
using namespace std;
int main()
{
int a, b;
a = 65;
//Baris 1
b = 78;
//Baris 2
cout
<< 29 / 4 << endl; //Baris
3
cout
<< 3.0 / 2 << endl; //Baris
4
cout
<< "Danau Toba.\n"; //Baris
5
cout
<< 7 << endl; //Baris
6
cout
<< 3 + 5 << endl; //Baris
7
cout
<< "3 + 5"; //Baris
8
cout
<< endl; //Baris
9
cout
<< a << endl; //Baris
10
cout
<< "a" <<
endl; //Baris 11
cout
<< (a + 5) * 6 << endl; //Baris
12
cout
<< 2 * b << endl; //Baris
13
return 0;
}
Keluaran Program:
7
1.5
Danau Toba.
7
8
3 + 5
65
a
420
156
Untuk sebagian besar kode, keluaran cukup sederhana. Lihat keluaran dari
tiap statemen pada baris 7, 8, 9, dan 10. Statemen pada baris 7 menampilkan
hasil dari 3 + 5, yaitu 8, dan memindahkan titik penyisipan ke awal baris
berikutnya. Statemen pada baris 8 menampilkan string 3 + 5. Perhatikan bahwa
statemen pada baris 8 hanya memuat string 3 + 5. Oleh karena itu, setelah
menampilkan 3 + 5, titik penyisipan diposisikan setelah 5; ia tidak berpindah
ke awal baris berikutnya.
Keluaran statemen pada baris 9 hanya memuat manipulator endl, yang memindahkan titik penyisipan ke
awal baris berikutnya. Oleh karena itu, ketika statemen pada baris 10
dieksekusi, keluaran dimulai di awal baris. Selanjutnya, statemen pada baris 10
menampilkan nilai dari a, yaitu 65. Manipulator
endl kemudian memindahkan titik penyisipan
ke awal baris berikutnya.
Sekarang, perhatikan lebih dekat pada karakter garis-baru, ‘\n’. Perhatikan dua statemen C++ berikut:
cout <<
"Hallo semua.";
cout << "Nama saya adalah Roro.";
Kedua statemen di atas dieksekusi secara berurutan, maka keluarannya
adalah:
Hallo semua. Nama saya adalah Roro.
Sekarang, perhatikan dua statemen C++ berikut:
cout <<
"Hallo semua.\n";
cout << "Nama saya adalah Roro.";
Keluaran dari kedua statemen C++ di atas adalah:
Hallo semua.
Nama saya adalah Roro.
Ketika \n dijumpai di
dalam string, titik penyisipan akan diposisikan di awal baris berikutnya.
Perhatikan pula bahwa \n dapat muncul di
mana saja di dalam string. Sebagai contoh, keluaran dari statemen:
cout <<
"Hallo \nsemua. \nNama saya adalah
Roro.";
adalah:
Hallo
semua.
Nama saya adalah Roro.
Selain itu, perhatikan bahwa keluaran dari statemen:
cout << '\n';
adalah sama dengan keluaran dari statemen:
cout << "\n";
yang ekivalen dengan keluaran dari statemen:
cout << endl;
Jadi, keluaran dari runtun statemen:
cout <<
"Hallo semua.\n";
cout << "Nama saya adalah Roro.";
ekivalen dengan keluaran dari runtun statemen:
cout <<
"Hallo semua." << endl;
cout << "Nama saya adalah Roro.";
Contoh 1.23
|
|
Perhatikan statemen C++ berikut:
cout <<
"Hallo semua.\nNama saya adalah Roro.";
atau
cout <<
"Hallo semua.";
cout << "\nNama saya adalah Roro.";
atau
cout <<
"Hallo semua.";
cout << endl << "Nama saya adalah Roro.";
Pada tiap kasus, keluaran dari statemen adalah:
Hallo semua.
Nama
saya adalah Roro.
Contoh 1.24
|
|
Keluaran dari statemen C++:
cout <<
"Hitung...\n....1\n.....2\n......3";
atau:
cout <<
"Hitung..." << endl
<< "....1" <<
endl
<<
".....2" << endl
<< "......3";
adalah:
Hitung...
....1
.....2
......3
Contoh 1.25
|
|
Dimisalkan bahwa Anda ingin menampilkan kalimat berikut dalam satu baris
sebagai bagian dari suatu pesan:
Hari ini cerah, hangat, dan tidak mendung. Kita dapat
pergi berenang.
Nyatalah, Anda akan menggunakan sebuah statemen keluaran untuk
menghasilkan keluaran ini. Namun, pada kode pemrograman, statemen ini bisa jadi
terlalu panjang untuk ditempatkan pada satu baris statemen. Jadi, Anda dapat
menggunakan statemen keluaran jamak sebagai berikut:
cout <<
"Hari ini cerah, hangat, dan tidak
mendung. ";
cout << "Kita bisa pergi berenang." << endl;
Perhatikan bahwa titik-koma di akhir statemen pertama dan pengenal cout di awal statemen kedua. Selain itu,
perhatikan bahwa tidak ada manipulator endl di akhir statemen pertama. Di sini, dua statemen keluaran dipakai untuk
menampilkan kalimat pada satu baris. Secara ekivalen, Anda dapat menggunakan
statemen keluaran berikut untuk menampilkan kalimat ini:
cout <<
"Hari ini cerah, hangat, dan tidak
mendung. "
<<
"Kita bisa pergi berenang."
<< endl;
Pada statemen ini, perhatikan bahwa tidak ada titik-koma di akhir baris
pertama, dan pengenal cout tidak muncul di awal baris kedua. Karena tidak ada
titik-koma di akhir baris pertama, statemen keluaran ini berlanjut sampai baris
kedua. Selain itu, perhatikan tanda kutip ganda di awal dan akhir kalimat pada
tiap baris. String dibagi menjadi dua string, tetapi kedua string adalah bagian
dari statemen keluaran yang sama.
Jika sebuah string yang muncul di dalam suatu statemen keluaran panjan dan
Anda ingin menampilkan string tersebut pada satu baris, maka Anda dapat memecah
string dengan menggunakan salah satu dari dua metode sebelumnya. Namun,
statemen berikut adalah tidak benar:
cout <<
"Hari ini cerah, hangat, dan tidak
mendung.
Kita bisa pergi
berenang." <<
endl; //salah
Dengan kata lain, kunci Enter pada papanketik Anda tidak bisa menjadi
bagian dari string. Yaitu, pada kode pemrograman, sebuah string tidak dapat
dipecah menjadi lebih dari satu baris dengan menggunakan kunci Enter.
Ingat bahwa karakter garis-baru adalah \n, yang menyebabkan titik
penyisipan berpindah ke awal baris berikutnya. Ada beberapa runtun escape dalam C++, yang membolehkan Anda
untuk mengendalikan keluaran. Tabel 1.7 mencantumkan beberapa runtun escape yang umum dijumpai.
Tabel 1.7 Beberapa runtun escape
yang sering digunakan
|
Runtun escape
|
Penjelasan
|
\n
|
Garis-baru
(newline)
|
Kursor pindah ke awal baris
berikutnya
|
\t
|
Tab
|
Kursor pindah ke perhentian tab
berikutnya
|
\b
|
Backspace
|
Kursor bergeser satu spasi ke
kiri
|
\r
|
Return
|
Kursor pindah ke awal baris
sekarang (bukan baris berikutnya)
|
\\
|
Backslash
|
Garis-miring ditampilkan
|
\'
|
Kutip
tunggal (single quotation)
|
Tanda kutip tunggal ditampilkan
|
\"
|
Kutip
ganda (double quotation)
|
Tanda kutip ganda ditampilkan
|
Contoh berikut menunjukkan efek dari beberapa runtun escape.
Contoh 1.26
|
|
Keluaran dari statemen:
cout <<
"Runtun escape garis-baru adalah \\n"
<< endl;
adalah
Runtun escape garis-baru adalah \n
Keluaran dari statemen:
cout <<
"Karakter tab direpresentasikan
sebagai \'\\t\'" << endl;
adalah
Karakter tab direpresentasikan sebagai ‘\t’
Perhatikan bahwa kutip tunggal dapat pula ditampilkan tanpa menggunakan
runtun escape. Oleh karena itu,
statemen sebelumnya ekivalen dengan statemen keluaran berikut:
cout << "Karakter tab direpresentasikan sebagai '\\t'" << endl;
Keluaran dari statemen:
cout <<
"String \"Cerah\" memuat
lima karakter." << endl;
adalah:
String “cerah” memuat lima karakter.
Untuk menggunakan cin dan cout di dalam sebuah program, Anda harus
mencantumkan file header tertentu.
Bagian selanjutnya akan menjelaskan apa itu file header, bagaimana mencantumkan sebuah file header di dalam program, dan mengapa Anda memerlukan file header di dalam sebuah program. Bab 2
akan memberikan penjelasan utuh tentang cin dan cout.
Direktif Praprosesor (Preprocessor
Directive)
Hanya sejumlah kecil operasi, seperti operasi aritmatik dan operasi
penugasan, yang terdefinisi secara eksplisit dalam C++. Banyak fungsi dan
simbol yang dibutuhkan untuk menjalankan sebuah program C++ disediakan sebagai
suatu koleksi pustaka. Setiap pustaka
memiliki nama dan dikenal sebagai file header. Sebagai contoh, deskripsi
atas fungsi-fungsi yang diperlukan untuk melakukan operasi masukan/keluaran
(I/O, input/output) dimuat di dalam file header
iostream. Sama halnya, deskripsi atas
fungsi-fungsi matematik, seperti pangkat, absolut, dan sinus, dimuat di dalam
file header cmath. Jika Anda ingin menggunakan
fungsi-fungsi I/O atau matematik, maka Anda perlu memberitahu komputer dimana
untuk menemukan kode yang diperlukan. Anda menggunakan direktif praprosesor dan
nama file header untuk memberitahu
komputer tentang lokasi dari kode yang disediakan di dalam pustaka. Direktif
praprosesor diproses oleh sebuah program yang dinamakan dengan praprosesor atau
preprocessor.
Direktif praprosesor merupakan perintah yang diberikan kepada praprosesor
yang menyebabkan praprosesor untuk memodifikasi teks dari sebuah program C++
sebelum ia dikompilasi. Semua perintah praprosesor diawali dengan #. Tidak diperlukan titik-koma di akhir perintah praprosesor
karena ia bukanlah statemen C++. Untuk menggunakan sebuah file header di dalam program C++, Anda perlu
menggunakan direktif praprosesor include.
Sintaks umum untuk mencantumkan sebuah file header (disediakan oleh IDE) di dalam sebuah program C++ adalah:
#include <namaFileHeader>
Sebagai contoh, statemen berikut mencantumkan file header iostream di dalam sebuah program C++:
#include <iostream>
Direktif praprosesor yang dipakai untuk mencantumkan file header ditempatkan sebagai baris pertama
pada program sehingga setiap pengenal yang dideklarasikan pada file header tersebut dapat digunakan pada
program. (Ingat bahwa dalam C++, pengenal harus dideklarasikan sebelum ia
digunakan).
Perhatikan bahwa perintah praprosesor diproses oleh praprosesor sebelum
program dikompilasi oleh kompiler.
namespace
dan Menggunakan cin dan cout
Sebelumnya, Anda telah belajar bahwa cin dan cout merupakan pengenal terpradefinisi.
Dalam C++ Standar ANSI/ISO, kedua pengenal ini dideklarasikan di dalam file header iostream, tetapi berada di dalam sebuah namespace. Nama dari namespace ini adalah std. (Mekanisme
namespace akan didiskusikan pada Bab 7. Untuk sekarang, Anda hanya perlu
mengetahui bagaimana menggunakan cin dan cout).
Ada beberapa cara sehingga Anda dapat menggunakan sebuah pengenal yang
dideklarasikan di dalam namespace std. Salah satu
cara dalam menggunakan cin dan cout adalah dengan memakai std::cin dan std::cout pada seluruh program.
Opsi lain adalah dengan mencantumkan statemen berikut di dalam program
Anda:
using namespace std;
Statemen ini muncul setelah statemen #include<iostream>. Anda kemudian dapat menggunakan cin dan cout tanpa membubuhi prefiks std::.
Untuk menyederhanakan penggunaan cin dan cout, buku ini menggunakan cara yang kedua.
Yaitu, untuk menggunakan cin dan cout di dalam sebuah program, buku ini akan
memuat dua statemen berikut:
#include <iostream>
using namespace std;
Dalam C++, namespace dan using adalah katakunci.
Mekanisme namespace merupakan sebuah fitur dari C++ Standar ANSI/ISO. Semakin Anda
mempelajari pemrograman C++, Anda akan
semakin familiar dengan file-file header
lainnya. Sebagai contoh, file header cmath memuat beberapa spesifikasi dari
fungsi-fungsi matematik. Sama halnya, file header
iomanip memuat beberapa spesifikasi dari
fungsi-fungsi dan manipulator-manipulator yang membantu Anda dalam memformat
keluaran dengan cara tertentu.
Menggunakan
Tipe Data string
Ingat bahwa tipe data string adalah tipe data yang didefinisikan oleh pengguna dan secara langsung
tidak tersedia di dalam program. Untuk menggunakan tipe data string, Anda perlu mengakses definisinya dari
file header string. Oleh karena itu, untuk menggunakan
tipe data string di dalam sebuah program, Anda harus
mencantumkan direktif praprosesor berikut:
#include <string>
Menciptakan Sebuah Program C++
Pada beberapa bagian sebelumnya, Anda telah cukup belajar beberapa konsep
C++ untuk menuliskan program sederhana. Sekarang, Anda siap untuk menciptakan sebuah
program C++ yang utuh.
Program C++ merupakan sekumpulan fungsi, salah satunya adalah fungsi main. Oleh karena itu, jika sebuah program
C++ hanya memuat satu fungsi, maka ia harus lah fungsi main. Selain itu, fungsi adalah sekumpulan instruksi yang
didesain untuk melakukan tugas tertentu. Sampai Bab 5, Anda hanya akan
berhubungan dengan fungsi main.
Statemen untuk mendeklarasikan variabel, statemen untuk memanipulasi data
(seperti penugasan), dan statemen untuk membaca dan menampilkan data
ditempatkan di dalam fungsi main. Statemen untuk
mendeklarasikan konstanta bernama biasanya ditempatkan di luar fungsi main.
Sintaks dari fungsi main yang digunakan
pada buku ini memiliki bentuk:
int main()
{
statemen_1
.
.
.
statemen_n
return 0;
}
Pada sintaks dari fungsi main, setiap
statemen (statemen_1, ..., statemen_n) biasanya berupa statemen
deklaratif atau statemen tereksekusikan (executable). Statemen return 0; harus dicantumkan di dalam fungsi main dan harus merupakan statemen terakhir. Jika statemen return 0; ditempatkan secara salah, maka hasil
yang diberikan oleh program bisa jadi tidak seperti yang Anda harapkan. Makna
statemen return 0; akan didiskusikan pada Bab 5. Dalam
C++, return adalah sebuah katakunci.
Bagian-bagian dasar dari fungsi main adalah kepala dan tubuh. Baris
pertama dari fungsi main adalah:
int main()
yang dinamakan dengan kepala fungsi main. Statemen-statemen yang diapit oleh sepasang kurung-kurawal ({ dan }) membentuk tubuh fungsi main.
Statemen deklaratif digunakan untuk mendeklarasikan sesuatu, seperti variabel.
Contoh 1.27
|
|
Dua statemen berikut merupakan contoh dari statemen deklaratif:
int a, b, c;
double
x, y;
Statemen tereksekusikan (executable) dipakai untuk
melakukan perhitungan, memanipulasi data, menciptakan keluaran, menerima
masukan, dan lainnya. Beberapa statemen tereksekusikan yang Anda jumpai sejauh
ini adalah statemen penugasan, statemen pembacaan/masukan, dan statemen
keluaran.
Contoh 1.28
|
|
Tiga statemen berikut merupakan contoh dari statemen tereksekusikan:
a = 4; //statemen
penugasan
cin >> b; //statemen
masukan/pembacaan
cout << a << "
" << b << endl; //statemen
keluaran
Dalam bentuk kasar, sebuah program C++ akan tampak seperti berikut:
//komentar, jika
diperlukan
direktif-direktif
praprosesor untuk mencantumkan file-file header
using statemen
konstanta-konstanta
bernama, jika diperlukan
int main()
{
statemen_1
.
.
.
statemen_n
return
0;
}
Program C++ pada contoh 1.29 menunjukkan dimana mencantumkan
statemen-statemen, statemen deklarasi, statemen tereksekusikan, dan seterunya
pada program secara umum.
Contoh 1.29
|
|
//***************************************************************
// Program ini menunjukkan dimana mencantumkan
statemen-statemen,
// menggunakan statemen, konstanta bernama, deklarasi
variabel,
// statemen penugasan, dan statemen masukan/keluaran
secara umum.
//***************************************************************
#include
<iostream> //Baris
1
using namespace std; //Baris
2
const int ANGKA
= 12; //Baris
3
int main() //Baris
4
{ //Baris
5
int angkaPertama; //Baris 6
int angkaKedua; //Baris 7
angkaPertama
= 18; //Baris 8
cout
<< "Baris 9: angkaPertama =
" << angkaPertama
<< endl; //Baris
9
cout
<< "Baris 10: Masukkan sebuah
integer: "; //Baris 10
cin >>
angkaKedua; //Baris
11
cout
<< endl; //Baris
12
cout
<< "Baris 13: angkaKedua =
" << angkaKedua
<< endl; //Baris
13
angkaPertama = angkaPertama + ANGKA + 2 * angkaKedua; //Baris 14
cout
<< "Baris 15: Nilai baru dari
"
<< "angkaPertama = " << angkaPertama << endl;//Baris
15
return 0; //Baris 16
} //Baris
17
Keluaran Program:
Baris 9: angkaPertama = 18
Baris 10: Masukkan sebuah integer: 15
Baris 13: angkaKedua = 15
Baris 15: Nilai baru dari angkaPertama = 60
Program sebelumnya bekerja sebagai berikut: Statemen pada baris 1
mencantumkan file header iostream sehingga program dapat melakukan
operasi masukan/keluaran. Statemen pada baris 2 menggunakan statemen using namespace sehingga semua pengenal yang
dideklarasikan di dalam file header iostream, seperti cin, cout, dan endl, dapat digunakan tanpa membubuhi prefiks std::. Statemen pada baris 3 mendeklarasikan konstanta bernama, ANGKA, dan menetapkan nilainya menjadi 12.
Statemen pada baris 4 memuat kepala fungsi main, dan kurung kurawal kiri pada baris 5 menandai awal dari fungsi main. Statemen pada baris 6 dan baris 7
mendeklarasikan variabel angkaPertama dan angkaKedua.
Statemen pada baris 8 menetapkan nilai dari angkaPertama menjadi 18, dan statemen pada baris 9 menampilkan nilai dari angkaPertama. Selanjutnya, statemen pada baris 10
meminta pengguna untuk memasukkan sebuah integer. Statemen pada baris 11
membaca dan menyimpan integer tersebut ke dalam variabel angkaKedua, yang bernilai 15 pada keluaran
program. Statemen pada baris 12 memposisikan kursor pada monitor di awal baris
berikutnya. Statemen pada baris 13 menampilkan nilai dari angkaKedua. Statemen pada baris 14 mengevaluasi
ekspresi: angkaPertama + ANGKA + 2 * angkaKedua dan menugaskan nilai dari ekspresi ini kepada variabel angkaPertama, yang merupakan 60 pada keluaran
program. Statemen pada baris 15 menampilkan nilai baru dari angkaPertama. Statemen pada baris 16 memuat
statemen return. Kurung kurawal kanan pada baris 17
menandai akhir dari fungsi main.
Bentuk dan Gaya Program
Pada beberapa bagian sebelumnya, Anda telah cukup belajar tentang beberapa
konsep dalam menulis program C++. Sebelum menulis program, Anda perlu belajar
struktur program yang tepat. Penggunaan struktur yang tepat pada sebuah program
C++ akan membuat program menjadi lebih mudah dipahami dan dimodifikasi.
Kadangkala sangat menyusahkan untuk memahami dan memodifikasi sebuah program
yang secara sintaks benar tetapi tidak memiliki struktur penulisan program yang
baik.
Di samping itu, setiap program C++ harus memenuhi aturan-aturan bahasa.
Sebuah program C++ harus memuat fungsi main. Ia juga harus mengikuti aturan
sintaks, yang seperti tata-bahasa, memberitahu mana yang benar dan mana yang
salah. Aturan-aturan lain berperan untuk memberikan makna presisi pada bahasa;
yaitu, mendukung semantika bahasa.
Beberapa bagian ke depan didesain untuk membantu Anda belajar bagaiman
menggunakan elemen-elemen pemrograman C++ yang telah Anda pelajari sejauh ini
untuk menciptakan sebuah program yang baik (bukan hanya benar secara sintaks).
Beberapa bagian ke depan akan merangkum sintaks; kegunaan dari spasi; kegunaan
dari titik-koma, kurung-kurawal, dan koma; semantika; penamaan pengenal; prompt
line; dokumentasi, termasuk komentar; bentuk dan gaya.
Sintaks
Aturan-aturan sintaks suatu bahasa memberitahu apa yang benar dan apa yang
salah. Error pada sintaks dideteksi selama kompilasi. Sebagai contoh,
perhatikan beberapa statemen C++ berikut:
int x; //Baris 1
int y //Baris 2
double z; //Baris 3
y = w + x; //Baris 4
Ketika semua statemen ini dikompilasi, suatu error kompilasi akan terjadi
pada baris 2 karena titik-koma hilang setelah deklarasi variabel. Error
kompilasi yang kedua terjadi pada baris 4 karena pengenal w digunakan tetapi belum dideklarasikan.
Anda mengetik program menggunakan sebuah editor teks. Ketika program
diketik, error hampir tidak terelakkan. Oleh karena itu, ketika program
dikompilasi, Anda hampir selalu melihat error sintaks. Sangat mungkin bahwa
sebuah error sintaks di suatu tempat akan menyebabkan error sintaks di beberapa
statemen lain. Sering dijumpai bahwa pengabaian sebuah karakter dapat
menyebabkan empat atau lima pesan error. Namun, ketika error sintaks pertama
diperbaiki dan program dikompilasi-ulang, beberapa error sintaks yang
diakibatkan oleh error sintaks ini akan hilang. Oleh karena itu, Anda sebaiknya
memperbaiki error sintaks secara berurutan, seperti yang dicantumkan oleh
kompiler. Begitu Anda menjadi familiar dan berpengalaman dengan C++, Anda akan
belajar bagaiman secara cepat mendeteksi dan memperbaiki error sintaks. Selain
itu, kompiler tidak hanya menemukan error sintaks, tetapi juga memberitahukan
ancar-ancar atau kisi-kisi dan kadangkala memberitahu pengguna di mana error
sintaks berada dan bagaimana memperbaikinya.
Kegunaan
Spasi
Dalam C++, Anda menggunakan satu atau lebih spasi untuk memisahkan
angka-angka ketika data dimasukkan (dibaca). Spasi juga digunakan untuk
memisahkan katakunci dan pengenal satu sama lain dari simbol lain. Spasi tidak
dapat berada di dalam sebuah katakunci atau pengenal.
Kegunaan
Titik-Koma, Kurung-Kurawal, dan Koma
Semua statemen C++ harus diakhiri dengan titik-koma. Titik-koma juga
dikenal dengan penghenti (terminator)
statemen.
Perhatikan bahwa kurung-kurawal, { dan }, bukanlah statemen C++, meskipun
ia seringkali muncul pada sebuah baris dan tanpa kode lain. Anda dapat
memandang kurung-kurawal sebagai pembatas (delimiter),
karena ia mengapit tubuh sebuah fungsi dan memisahkannya dari bagian-bagian
program lain. Kurung-kurawal mempunyai beberapa kegunaan lain, yang akan
dijelaskan nanti.
Ingat bahwa koma dipakai untuk memisahkan antar item di dalam sebuah
daftar. Sebagai contoh, Anda dapat menggunakan koma untuk mendeklarasikan lebih
dari satu variabel.
Semantika
Sekumpulan aturan yang memberi makna pada suatu bahasa disebut dengan
semantika. Sebagai contoh, aturan urutan keutamaan untuk operator-operator
aritmatik merupakan aturan semantik.
Jika sebuah program memuat error sintaks, maka kompiler akan mengingatkan
Anda. Apa yang terjadi ketika program memuat error semantik? Sangat mungkin
terjadi bahwa Anda telah memperbaiki semua error sintaks di dalam suatu program
tetapi tetap saja program masih tidak bisa dijalankan. Dan jika ia bisa
dijalankan, program tidak melakukan apa yang Anda inginkan untuk dilakukannya.
Sebagai contoh, dua baris kode berikut merupakan ekspresi dengan sintaks tanpa
kesalahan:
2 + 3 * 5
dan:
(2 + 3) * 5
Aturan sintaks tidak ada yang salah, tetapi semantika bisa berbeda. Anda
akan belajar tentang semantika pada buku ini.
Penamaan
Pengenal
Perhatikan dua kelompok statemen berikut:
const double A = 2.54; //konstanta konversi
double x; //variabel
untuk memuat sentimeter
double
y; //variabel untuk
memuat inci
x = y * a;
dan:
const double SENTIMETER_PER_INCI =
2.54;
double sentimeter;
double inci;
sentimeter = inci * SENTIMETER_PER_INCI;
Pengenal-pengenal pada kelompok statemen kedua, seperti SENTIMETER_PER_INCI, merupakan pengenal dengan pendokumentasi-diri.
Seperti yang dapat Anda lihat, pengenal pendokumentasi-diri dapat membuat
komentar menjadi kurang perlu.
Perhatikan pengenal pendokumentasi-diri penjualantahunan. Pengenal ini lebih dari satu kata. Dalam pengenal pendokumentasi-diri, Anda
bisa saja secara tak sengaja mencantumkan pengenal yang mengurangi kejelasan
dokumentasi Anda. Untuk membuatnya lebih mudah dipahami, Anda bisa memberikan
huruf besar pada tiap awal kata baru atau dengan menyisipkan garis-bawah (underscore) sebelum kata baru. Sebagai
contoh, Anda bisa menggunakan penjualanTahunan atau penjualan_tahunan untuk menciptakan pengenal yang lebih jelas.
Prompt Line
Bagian dari dokumentasi yang baik adalah penggunaan prompt yang ditulis secara jelas sehingga pengguna akan mengetahui
apa yang perlu dilakukan ketika berinteraksi dengan sebuah program. Tidak ada
yang lebih membuat pusing daripada harus menjalankan sebuah program dan tidak
mengetahui apa yang harus masukkan untuk dibaca program. Prompt line merupakan statemen tereksekusikan yang memberitahu
pengguna apa yang perlu dilakukan. Sebagai contoh, perhatikan dua statemen C++
berikut, dimana angka merupakan
sebuah variabel int:
cout <<
"Silahkan masukkan sebuah angka
antara 1 dan 10 dan "
<< "tekan kunci Enter" << endl;
cin >> angka;
Ketika kedua statemen tersebut dieksekusi, pertama-tama statemen keluaran
akan menyebabkan baris teks berikut tampil di layar:
Silahkan masukkan sebuah angka antara 1 dan 10 dan
tekan kunci Enter
Setelah melihat baris teks ini, pengguna mengetahui apa yang perlu
dimasukkan dan menekan kunci Enter. Jika program hanya memuat statemen kedua,
pengguna tidak akan mengetahui apakah yang harus dimasukkan suatu angka atau
karakter atau yang lain. Ini merupakan contoh prompt line.
Pada sebuah program, kapanpun masukan diperlukan dari pengguna, Anda harus
mencantumkan prompt line yang
diperlukan. Di samping itu, prompt line
harus mencakup sebanyak mungkin informasi tentang apa masukan yang dapat
diterima oleh program. Sebagai contoh, prompt
line sebelumnya tidak hanya memberitahu pengguna untuk memasukkan sebuah
angka, tetapi juga memberitahu pengguna bahwa angka harus berada di antara 1
dan 10.
Dokumentasi
Program yang Anda tulis harus jelas bukan hanya untuk Anda, tetapi juga
untuk orang lain. Oleh karena itu, Anda harus secara layak mendokumentasikan
program Anda. Program yang terdokumentasi secara baik lebih mudah dipahami dan
dimodifikasi, bahkan jika Anda telah menuliskan program tersebut pada waktu lampau
yang lama. Anda menggunakan komentar untuk mendokumentasikan program. Komentar
harus ditempatkan di dalam program untuk menjelaskan tujuan program,
mengidentifikasi siapa yang menulisnya, dan menjelaskan tujuan dari statemen
tertentu.
Bentuk
dan Gaya
Anda mungkin berpikir bahwa C++ mempunyai terlalu banyak aturan. Tetapi,
pada kenyataannya, aturan-aturan tersebut memberikan C++ kebebasan yang cukup
besar. Sebagai contoh, perhatikan dua cara dalam mendeklarasikan variabel
berikut:
int kaki, inci;
double x, y;
dan:
int kaki,inci;
double x,y;
Komputer tidak akan kesulitan untuk memahami kedua bentuk ini, tetapi
bentuk pertama lebih mudah dibaca dan dipahami. Tentu, pengabaian satu koma
atau titik-koma pada kedua bentuk akan menyebabkan pesan-pesan error yang aneh.
Bagaimana dengan spasi? Apakah spasi berguna atau sia-sia? Perhatikan dua
statemen berikut:
int a,b,c;
dan:
int
a, b, c;
Kedua deklarasi itu bermakna sama. Di sini, spasi di antara pengenal pada
statemen kedua tidak bermakna (hanya dipakai untuk mempermudah pembacaan
program). Di sisi lain, perhatikan statemen berikut:
inta,b,c;
Statemen ini memuat error sintaks. Tidak adanya spasi di antara int dan pengenal a akan mengubah katakunci int dan pengenal a menjadi sebuah
pengenal baru, inta.
Contoh berikut akan mengelaborasi hal ini.
Contoh 1.30
|
|
Perhatikan program C++ berikut:
//Sebuah program C++ yang diformat tidak layak.
#include
<iostream>
#include
<string>
using namespace std;
int main()
{
int angka; double
tinggi;
string nama;
cout << "Masukkan sebuah integer: "; cin >> angka; cout <<
endl;
cout<<"angka:
"<<angka<<endl;
cout<<"Masukkan
nama pertama: "; cin>>nama;
cout<<endl; cout <<"Masukkan tingi: ";
cin>>tinggi; cout<<endl;
cout<<"Nama:
"<<nama<<endl;cout<<"Tinggi: "
<<tinggi; cout <<endl;return 0;
}
Program ini secara sintaks benar; kompiler C++ tidak akan mengalami
kesulitan pembacaan dan pengkompilasian program ini. Namun, program ini sangat
susah dibaca manusia. Program yang Anda tulis sebaiknya ditata dan diformat
dengan layak. Perhatikan perbedaannya ketika program ini diformat-ulang:
//Sebuah program C++ yang diformat tidak layak.
#include
<iostream>
#include
<string>
using namespace std;
int main()
{
int angka;
double tinggi;
string nama;
cout
<< "Masukkan sebuah integer:
";
cin >>
angka;
cout
<< endl;
cout
<< "angka: "
<< angka << endl;
cout
<< "Masukkan nama pertama:
";
cin >>
nama;
cout
<< endl;
cout
<< "Masukkan tingi:
";
cin >>
tinggi;
cout
<< endl;
cout
<< "Nama: " <<
nama << endl;
cout
<< "Tinggi: "
<< tinggi;
cout
<< endl;
return 0;
}
Seperti yang dapat Anda lihat, program ini lebih mudah dibaca. Program
Anda sebaiknya tertata dan terformat dengan baik. Untuk mendokumentasikan
variabel, programer umumnya mendeklarasikan satu variabel per baris. Selain
itu, Anda sebaiknya menempatkan sebuah spasi sebelum dan sesudah operator.
Ketika Anda mengetikkan program Anda menggunakan IDE, umumnya, program Anda
secara otomatis terindentasi (terformat).
Sekali Lagi, Statemen Penugasan
Semua statemen penugasan yang telah Anda lihat sejauh ini dinamakan dengan
statemen penugasan sederhana. Pada
beberapa kasus tertentu, Anda dapat menggunakan statemen penugasan spesial yang dinamakan dengan statemen penugasan
gabungan untuk menuliskan beberapa statemen penugasan sederhana dalam
notasi yang lebih singkat atau pendek.
Terkait dengan lima operator aritmatik +, -, *, /, dan %, C++ menyediakan lima operator gabungan +=, -=, *=, /=, dan %=. Perhatikan statemen penugasan sederhana berikut, dimana di dalamnya x dan y adalah variabel
int:
x = x * y;
Dengan menggunakan operator gabungan *=, statemen ini dapat ditulis-ulang sebagai:
x *= y;
Secara umum, dengan menggunakan operator gabungan *=, Anda dapat
menulis-ulang statemen penugasan sederhana:
variabel =
variabel * (ekspresi);
sebagai:
variabel *= ekspresi;
Operator-operator aritmatik gabungan yang lain memiliki konvensi yang
sama. Sebagai contoh, dengan menggunakan operator +=, Anda dapat menulis-ulang
statemen penugasan sederhana:
variabel =
variabel + (ekspresi);
sebagai:
variabel +=
ekspresi;
Statemen penugasan gabungan membolehkan Anda untuk menulis statemen
penugasan sederhana dengan notasi singkat dengan menggabungkan operator
aritmatik dengan operator penugasan.
CONTOH
PEMROGRAMAN: Mengkonversi Panjang
Tulislah sebuah program yang mengambil panjang sebagai masukan yang
diekspresikan dalam kaki dan inci. Program kemudian harus mengkonversi dan
menampilkan panjang dalam sentimeter. Diasumsikan bahwa panjang yang diberikan
dalam kaki dan inci adalah integer.
Masukan: Panjang dalam kaki dan inci.
Keluaran: Panjang ekivalen dalam sentimeter
Analisa Masalah dan Desain Algoritma
Panjang diberikan dalam kaki dan inci, dan Anda perlu mencari panjang
ekivalen dalam sentimeter. Satu inci sama dengan 2.54 sentimeter. Hal pertama
yang perlu dilakukan program adalah mengkonversi panjang yang diberikan dalam
kaki dan inci menjadi semua dalam inci. Kemudian, Anda dapat menggunakan
formula konversi, 1 inci = 2.54 sentimeter, untuk menemukan panjang ekivalen
dalam sentimeter. Untuk mengkonversi panjang dari kaki dan inci menjadi ini,
Anda hanya perlu mengalikan jumlah kaki dengan 12, karena 1 kaki sama dengan 12
ini.
Sebagai contoh, dimisalkan bahwa masukan adalah 5 kaki dan 7 inci. Anda
kemudian dapat mencari total inci sebagai berikut:
totalInci =
(12 * feet) + inci
= 12 * 5 + 7
=
67
Anda kemudian dapat menerapkan formula konversi, 1 inci = 2.54 sentimeter,
untuk menemukan panjang dalam sentimeter.
sentimeter = totalInci
* 2.54
= 67 * 2.54
=
170.18
Berdasarkan analisis masalah ini, Anda dapat merancang sebuah algoritma
sebagai berikut:
1.
Mendapatkan
panjang dalam kaki dan inci.
2.
Mengkonversi
panjang menjadi total inci.
3.
Mengkonversi
total inci menjadi sentimeter.
4. Menampilkan sentimeter.
Variabel
Masukan pada program adalah dua angka: satu untuk kaki dan satu untuk
inci. Jadi, Anda memerlukan dua variabel: satu untuk menyimpan kaki dan yang
lain untuk menyimpan inci. Karena program pertama-tama akan mengkonversi
panjang yang diberikan dalam inci, Anda memerlukan variabel lain untuk
menyimpan total inci. Anda juga memerlukan sebuah variabel untuk menyimpan
panjang ekivalen dalam sentimeter. Jadi, Anda memerlukan variabel-variabel
berikut:
int kaki; //variabel untuk
menampung kaki
int inci; //variabel untuk
menampung inci
int totalInci; //variabel untuk
menampung total inci
double sentimeter;
//variabel untuk menampung panjang dalam
sentimeter
Konstanta Bernama
Untuk menghitung panjang ekivalen dalam sentimeter, Anda perlu mengalikan
total inci dengan 2.54. Daripada menggunakan nilai 2.54 secara langsung di dalam
program, Anda akan mendeklarasikan nilai ini sebagai sebuah konstanta bernama.
Sama halnya, untuk menemukan total inci, Anda perlu mengalikan kaki dengan 12
dan menambahkan inci. Daripada menggunakan 12 secara langsung di dalam program,
Anda juga akan mendeklarasikan nilai ini sebagai sebuah konstanta bernama.
Penggunaan konstanta bernama akan membuat program lebih mudah dimodifikasi.
const double SENTIMETER_PER_INCI =
2.54;
const int INCI_PER_KAKI = 12;
Program Utama
Pada beberapa bagian sebelumnya, Anda telah menganalisa masalah dan
menentukan formula dalam melakukan perhitungan. Anda juga telah menentukan
variabel dan konstanta bernama yang dibutuhkan. Sekarang Anda dapat
mengembangkan algoritma untuk menyelesaikan masalah yang diberikan.
1.
Meminta pengguna
untuk memberikan masukan. (Tanpa prompt
line, pengguna hanya akan diberikan layar kosong dan tidak mengetahui apa
yang perlu dilakukan.)
2.
Membaca data.
3.
Menampilkan
masukan, yaitu menampilkan apa yang dibaca program sebagai masukan. (Tanpa
langkah ini, setelah program dieksekusi, Anda tidak akan mengetahui apa yang
menjadi masukan program).
4.
Menemukan
panjang dalam inci.
5.
Menampilkan
panjang dalam inci.
6.
Mengkonversi
panjang menjadi sentimeter.
7. Menampilkan panjang dalam sentimeter.
Menggabungkan Semua
Karena masalah telah dianalisa dan algoritma telah dirancang, langkah
selanjutnya adalah menerjemahkan algoritma menjadi kode C++. Karena ini
merupakan program C++ utuh pertama yang Anda tulis, akan ditinjau-ulang
langkah-langkah yang diperlukan secara berurutan.
Program akan dimulai dengan komentar yang mendokumentasikan tujuan dan
fungsionalitasnya. Karena ada masukan pada program (panjang dalam kaki dan
inci) dan keluaran (panjang ekivalen dalam sentimeter), Anda akan menggunakan
sumber daya sistem untuk operasi masukan/keluaran. Dengan kata lain, program
akan menggunakan statemen-statemen masukan untuk membaca data ke dalam program
dan statemen-statemen keluaran untuk menampilkan hasil. Karena data akan dibaca
dari papanketik dan keluaran akan ditampilkan pada layar, program harus
mencantumkan file header iostream. Jadi, statemen pertama pada program,
setelah komentar, adalah direktif praprosesor untuk mencantumkan file header ini.
Program ini memerlukan dua tipe lokasi memori untuk manipulasi data: konstanta
bernama dan variabel. Secara umum, konstanta bernama menampung data spesial,
seperti SENTIMETER_PER_INCI.
Tergantung dari kegunaannya, konstanta bernama dapat ditempatkan sebelum fungsi
main atau di dalam fungsi main. Jika sebuah konstanta bernama akan
digunakan di seluruh bagian program, maka ia umumnya ditempatkan sebelum fungsi
main. Hal ini akan dibahas lebih detil pada
Bab 6, ketika mendiskusikan fungsi terdefinisi-pengguna. Sampai titik ini,
konstanta bernama akan ditempatkan sebelum fungsi main sehingga ia dapat dipakai di seluruh bagian program.
Program ini hanya memiliki satu fungsi, fungsi main, yang akan memuat semua instruksi pemrograman di dalam tubuhnya. Selain
itu, program memerlukan variabel-variabel untuk memanipulasi data, dan semua
variabel ini akan dideklarasikan di dalam tubuh fungsi main. Alasan dalam mendeklarasikan variabel
di dalam tubuh fungsi main akan dijelaskan
pada Bab 6. Tubuh fungsi main juga akan
memuat beberapa statemen C++ untuk mengimplementasikan algoritma yang telah
dirancang. Oleh karena itu, tubuh fungsi main memiliki bentuk berikut:
int main()
{
mendeklarasikan variabel-variabel
statemen-statemen
return 0;
}
Untuk menuliskan program konversi panjang secara utuh, ikuti
langkah-langkah berikut:
1.
Awali program
dengan komentar untuk kepentingan dokumentasi.
2.
Cantumkan file
header yang diperlukan program.
3.
Deklarasikan
konstanta bernama, jika ada.
4. Tulis definisi atas fungsi main.
Program Utuh
//**********************************************************
// Program untuk mengkonversi pengukuran dalam kaki
dan inci
// menjadi sentimeter menggunakan formula bahwa 1 inci
sama
// dengan 2.54 sentimeter.
//**********************************************************
//File header
#include
<iostream>
using namespace std;
//Konstanta bernama
const double
SENTIMETER_PER_INCI = 2.54;
const int
INCI_PER_KAKI = 12;
int main ()
{
//Mendeklarasikan variabel
int kaki, inci;
int totalInci;
double sentimeter;
//Statemen:
Langkah 1 - Langkah 7
cout
<< "Masukkan dua integer,
satu untuk kaki dan "
<< "satu untuk inci:
"; //Langkah 1
cin >>
kaki >> inci; //Langkah
2
cout
<< endl;
cout
<< "Angka-angka yang Anda masukkan
adalah " << kaki
<< " untuk kaki dan
" << inci
<< " untuk inci.
" << endl; //Langkah
3
totalInci =
INCI_PER_KAKI * kaki + inci; //Langkah 4
cout
<< "Jumlah total inci =
"
<< totalInci << endl; //Langkah
5
sentimeter =
SENTIMETER_PER_INCI * totalInci; //Langkah 6
cout
<< "Jumlah sentimeter =
"
<< sentimeter << endl; //Langkah
7
return 0;
}
Keluaran Program:
Masukkan dua integer, satu untuk kaki dan satu untuk
inci: 15 7
Angka-angka yang Anda masukkan adalah 15 untuk kaki
dan 7 untuk inci.
Jumlah total inci = 187
Jumlah sentimeter = 474.98
No comments:
Post a Comment