Dalam C++ masukan analog dengan keluaran. Hanya berbeda dalam aliran datanya,
dimana dalam pernyataan keluaran cout, aliran data keluar; sedangkan dalam
pernyataan masukan cin, aliran data masuk. Cin merupakan perintah untuk memasukkan
data secara interaktif (melalui console/monitor).
Ketikan yang berada dalam arsir kelabu merupakan masukan yang diketikkan oleh user
secara interaktif.
Simbol >> merupakan operator ekstraksi (extraction operator), yang disebut juga
sebagai operator masukan. Bentuk ini biasa digunakan dengan aliran masukan cin, yaitu
masukan dari user melalui keyboard.
Contoh lain :
#include <iostream.h>
main()
{
char pertama, kedua;
II - 1
cout << “Masukkan inisial anda : \n”;
cout << “\tInisial nama pertama : “;
cin >> pertama;
cout << “\tInisial nama kedua : “;
cin >> kedua;
cout << “Apa kabar “ << pertama << “. “ << kedua << “?\n”;
return 0;
}
Keluarannya adalah
Contoh lain :
#include <iostream.h>
main()
{
char pertama, kedua;
cout << “Masukkan inisial pertama dan kedua anda : ”;
cin >> pertama >> kedua;
cout << “Apa kabar “ << pertama << “. “ << kedua << “?\n”;
return 0;
}
Keluarannya adalah
Contoh lain :
#include <iostream.h>
main()
{
char pertama, kedua;
II - 2
cout << “Masukkan inisial pertama dan kedua anda : ”;
cin >> pertama >> kedua;
cout << “Apa kabar “ << pertama << “. “ << kedua << “?\n”;
return 0;
}
Keluarannya adalah
Catatan : Bila tipe char adalah integer, cin akan mengabaikan semua bentuk spasi
(contohnya blank, tab dan baris baru), bila membaca masukan.
Bentuk umumnya :
if (kondisi) pernyataan;
dengan kondisi adalah sebuah ekspresi integer dan pernyataan adalah sebuah
pernyataan yang dapat dilaksanakan (executable). Pernyataan akan dilaksanakan hanya
jika kondisi mempunyai nilai yang tidak nol (nonzero = dapat berarti benar).
Contoh :
#include <iostream.h>
main()
{
int n, d;
cout << “Masukkan dua buah bilangan integer : ”;
cin >> n >> d;
if (n%d == 0) cout << n << “ habis dibagi oleh “ << d << endl;
return 0;
}
Keluarannya adalah
II - 3
Program di atas akan mendapat masalah bila terdapat sisa pembagian. Oleh karena itu,
haruslah digunakan bentuk pernyataan lainnya, yaitu if … else.
Bentuk umumnya :
if (kondisi) pernyataan1;
else pernyataan2;
dengan kondisi adalah sebuah ekspresi integer, pernyataan1 dan pernyataan2 adalah
pernyataan yang dapat dilaksanakan. Pernyataan1 akan dilaksanakan jika kondisi
mempunyai nilai nonzero (benar), dan pernyataan2 dilaksanakan jika kondisi
mempunyai nilai zero (salah).
Contoh :
#include <iostream.h>
main()
{
int n, d;
cout << “Masukkan dua buah bilangan integer : ”;
cin >> n >> d;
if (n%d == 0) cout << n << “ habis dibagi oleh “ << d << endl;
else cout << n << “ tidak habis dibagi oleh “ << d << endl;
return 0;
}
Keluarannya adalah
Contoh lain :
#include <iostream.h>
main()
{
int n, d;
II - 4
cout << “Masukkan dua buah bilangan integer : ”;
cin >> n >> d;
if (n%d) cout << n << “ tidak habis dibagi oleh “ << d << endl;
else cout << n << “ tidak habis dibagi oleh “ << d << endl;
return 0;
}
Keluarannya adalah
Contoh :
#include <iostream.h>
// Menentukan bilangan yang lebih besar
main()
{
int m, n;
cout << “Masukkan dua buah bilangan integer : ”;
cin >> m >> n;
if (m > n) cout << m << endl;
else cout << n << endl;
return 0;
}
Keluarannya adalah
II - 5
Contoh lain :
#include <iostream.h>
// Menentukan bilangan terbesar dari tiga buah bilangan integer
main()
{
int n1, n2, n3;
cout << “Masukkan tiga buah bilangan integer : ”;
cin >> n1 >> n2 >> n3;
int max = n1;
if (n2 > max) max = n2;
if (n3 > max) max = n3;
cout << “Bilangan terbesar adalah “ << max << endl;
return 0;
}
Keluarannya adalah
Pernyataan campuran adalah sebuah urutan pernyataan yang diperlakukan sebagai suatu
pernyataan tunggal. C++ mengidentifikasikan suatu pernyataan campuran dengan
melingkupi urutan pernyataan tersebut dalam tanda kurung kurawal (sebagai suatu
blok).
{
int temp = x;
x = y;
y = temp;
}
#include <iostream.h>
// Mengurutkan bilangan secara ascending (dari dua buah bilangan integer)
main()
{
int x, y;
cout << “Masukkan dua buah bilangan integer : ”;
II - 6
cin >> x >> y;
if (x > y) {
int temp = x;
x = y;
y = temp;
}
cout << “Bilangan terurut adalah “ << x << y << endl;
return 0;
}
Keluarannya adalah
Contoh di atas bukanlah suatu program yang efisien, mengingat datanya hanya dua buah
bilangan (untuk yang jumlah bilangannya banyak, bentuk di atas adalah baik). Untuk
kasus yang sama, bentuk program yang lebih baik adalah sebagai berikut.
#include <iostream.h>
// Mengurutkan bilangan secara ascending (dari dua buah bilangan integer)
main()
{
int x, y;
cout << “Masukkan dua buah bilangan integer : ”;
cin >> x >> y;
if (x < y) cout << “Bilangan terurut adalah “ << x << “ “ << y << endl;
else cout << “Bilangan terurut adalah “ << y << “ “ << x << endl;
return 0;
}
Keluarannya adalah
Kata kunci (keyword) dalam suatu pemrograman adalah suatu kata yang telah
didefinisikan dan tersedia untuk suatu penggunaaan khusus. Cara penulisannya tidak
dapat diubah, ditambah atau dikurangi.
II - 7
C++ mempunyai 48 buah kata kunci, yaitu
Dalam bahasa pemrograman lainnya sering disebut sebagai reserved words, dan nama-
nama yang mendahuluinya disebut standard identifiers.
&& p && q dievaluasi sama dengan 1 kedua nilai p dan q sama dengan 1.
|| p || q dievaluasi sama dengan 1, jika salah satu nilai p atau q sama dengan 1.
! !p dievaluasi sama dengan 1, jika nilai p sama dengan 0.
Contoh :
#include <iostream.h>
// Menentukan bilangan terbesar dari tiga buah bilangan integer
main()
{
int a, b, c;
cout << “Masukkan tiga buah bilangan integer : ”;
cin >> a >> b >> c;
if (a >= b && a >= c) cout << “Bilangan terbesar adalah “ << a << endl;
if (b >= a && b >= c) cout << “Bilangan terbesar adalah “ << b << endl;
if (c >= a && c >= b) cout << “Bilangan terbesar adalah “ << c << endl;
return 0;
}
Keluarannya adalah
II - 8
Contoh lain :
#include <iostream.h>
// Menentukan apakah seseorang itu terdaftar atau tidak.
// Diijinkan untuk menjawab ya atau tidak dengan Y/y atau T/t.
main()
{
char jawaban;
cout << “Apakah anda terdaftar (y/t) : ”;
cin >> jawaban;
if (jawaban == ‘Y’ || jawaban == ‘y’) cout << “Anda terdaftar.\n”;
else cout << “ Anda tidak terdaftar.\n”;
return 0;
}
Keluarannya adalah
Contoh lain :
#include <iostream.h>
// Program menentukan apakah sebuah bilangan habis membagi bilangan lainnya.
main()
{
int n, d;
cout << “Masukkan dua buah bilangan integer positif : ”;
cin >> n >> d;
if (d > 0 && n%d == 0) cout << d << “ habis membagi “ << n << endl;
else cout << d << “ tidak habis membagi “ << n << endl;
return 0;
}
Keluarannya adalah
II - 9
Kalau dimasukkan data lainnya, seperti
if (d > 0)
if (n%d == 0)
cout << d << “ habis membagi “ << n << endl;
else
cout << d << “ tidak habis membagi “ << n << endl;
else
cout << d << “ tidak habis membagi “ << n << endl;
Penggalan program :
if (a > 0)
if ( b > 0) ++a;
else
if (c > 0)
II - 10
if (a < 4) ++b;
else
if (b < 4) ++c;
else --a;
else
if (c < 4) --b;
else --c;
else
a = 0;
if (a > 0)
if (b > 0) ++a;
else if (c > 0)
if (a < 4) ++ b;
else if (b < 4) ++c;
else --a;
else if (c < 4) --b;
else--c;
else
a = 0;
#include <iostream.h>
// Menentukan bilangan terbesar dari tiga buah bilangan integer
main()
{
int a, b, c, max;
cout << “Masukkan tiga buah bilangan integer : ”;
cin >> a >> b >> c;
if (a > b)
if (a > c) max = a; // a > b dan a > c
else max = c; // c>= a > b
else
if (b > c) max = b; // b >= a dan b > c
else max = c; // c >= b >= a
cout << “Bilangan terbesar adalah “ << max << endl;
return 0;
}
Keluarannya adalah
II - 11
Contoh lain :
#include <iostream.h>
// Mengkonversikan nilai test dalam bentuk indeks A, B, C, D atau E
main()
{
int nilai;
cout << “Masukkan nilai test : ”;
cin >> nilai;
if (nilai > 100) cout << “Salah !! Nilai diluar jangkauan. “;
else if (nilai >= 90) cout << “Nilai indeks = “ << ‘A’ ;
else if (nilai >= 80) cout << “Nilai indeks = “ << ‘B’ ;
else if (nilai >= 70) cout << “Nilai indeks = “ << ‘C’ ;
else if (nilai >= 60) cout << “Nilai indeks = “ << ‘D’ ;
else if (nilai >= 0) cout << “Nilai indeks = “ << ‘E’ ;
else cout << Salah !! Nilai diluar jangkauan. “;
return 0;
}
Keluarannya adalah
switch (ekspresi) {
case konstanta1 : listpernyataan1;
case konstanta2 : listpernyataan2;
:
II - 12
:
case konstantaN : listpernyataanN;
default : listpernyataan;
}
Pernyataan switch mengevaluasi ekspresi dan mencari nilainya diantara konstanta case.
Jika nilai diketemukan diantara list konstanta, maka pernyataan yang terdapat pada
listpernyataan yang bersangkutan akan dieksekusi. Sebaliknya jika hal tersebut adalah
default (bersifat opsional), maka program akan melanjutkan ke listpernyataan.
Perhatikan bahwa ekspresi harus dievaluasi sebagai tipe integer dan konstanta haruslah
konstanta integer (termasuk char).
Contoh :
#include <iostream.h>
// Program berikut memberikan akibat yang sama dengan program sebelumnya.
main()
{
int nilai;
cout << “Masukkan nilai test : ”; cin >> nilai;
if (nilai > 100) cout << “Salah !! Nilai diluar jangkauan. \n “;
switch (nilai/10) {
case 10 :
case 9 : cout << ‘A’ << endl; break;
case 8 : cout << ‘B’ << endl; break;
case 7 : cout << ‘C’ << endl; break;
case 6 : cout << ‘D’ << endl; break;
case 5 :
case 4 :
case 3 :
case 2 :
case 1 :
case 0 : cout << ‘E’ << endl; break;
default : cout << Salah !! Nilai diluar jangkauan. \n“;
}
return 0;
}
Pertama-tama program akan membagi nilai dengan 10. Bila dimasukkan nilai = 48,
ekspresi nilai/10 mengevaluasi menjadi 4. Selanjutnya nilai ini ditempatkan dalam list
case, dan setiap pernyataan sampai break akan dieksekusi. Rentang semua case
menurun sampai case 0 dan pernyataan break akan dieksekusi. Fenomena seperti ini
dikenal sebagai jatuh terus (fall through).
II - 13
2.10 Operator Ekspresi Kondisional
C++ mengijinkan bentuk penyingkatan suatu kasus khusus dari pernyataan if … else,
yang disebut operator ekspresi kondisional dan menggunakan simbol ? dan : dalam
bentuk
Seperti operator lainnya, kombinasi ini memberikan ekspresi untuk menghasilkan suatu
nilai. Nilai yang dihasilkan adalah nilai dari ekspresi1 atau ekspresi2, tergantung kepada
kondisinya, apakah benar atau salah.
Sebagai contoh, pernyataan penugasan
min = x < y ? x : y;
akan menunjuk nilai x ke min jika x < y, sebaliknya akan menunjuk nilai y ke min.
Operator ekspresi kondisional pada umumnya hanya digunakan bila kondisi dan kedua
ekspresinya sangat sederhana.
Jangkauan dari sebuah identifier adalah bagian dari program yang dapat digunakan.
Contohnya, variabel tidak dapat digunakan sebelum dideklarasikan dulu, sehingga
jangkauannya dimulai dari saat dideklarasikan.
#include <iostream.h>
// Jangkauan variabel
main()
{
x = 11; // Salah !! Ini tidak dalam jangkauan x
int x;
II - 14
{
x = 22; // Benar !! Ini dalam jangkauan x
y = 33; // Salah !! Ini tidak dalam jangkauan y.
int y;
x = 44; // Benar !! Ini dalam jangkauan x.
y = 55; // Benar !! Ini dalam jangkauan y.
}
x = 66; // Benar !! Ini dalam jangkauan x.
y = 77; // Salah !! Ini tidak dalam jangkauan y.
return 0;
}
#include <iostream.h>
int x = 11; // x ini bersifat global
main()
{ // mulai jangkauan dari main()
int x = 22;
{ // mulai jangkauan dari blok internal
int x = 33;
cout <<”Dalam blok bagian dalam main() : x = “ << x << endl;
} //akhir jangkauan dari blok internal
cout << “Dalam main() : x = “ << x << endl;
cout << “Dalam main() : ::x = “ << ::x << endl;
return 0;
} // akhir jangkauan dari main()
Keluarannya adalah
II - 15
2.12 Tipe-Tipe Enumeration
Selain dari tipe-tipe data yang telah didefinisikan sebelumnya, seperti int dan char, C++
juga mengijinkan pemrogram untuk mendefinisikan tipe datanya sendiri. Hal ini dapat
dikerjakan melalui beberapa cara, dan yang paling canggih adalah menggunakan kelas-
kelas (classes) (yang akan dibahas dibagian belakang). Dalam bagian ini akan dibahas
tipe data yang didefinisikan oleh user, dalam bentuk yang lebih sederhana.
Suatu tipe enumeration adalah suatu tipe integral yang didefinisikan oleh user, dengan
bentuk umum seperti berikut
Dengan enum adalah kata kunci dalam C++, namatipe berarti sebuah identifier yang
nama tipenya didefinisikan, dan enumeratorlist berarti sebuah list identifier yang
mendefinisikan konstanta integer.
Contoh berikut mendefinisikan tipe enumeration Semester, yang terdiri dari tiga
kemungkinan nilai, yaitu sebuah variabel yang tipenya dapat
Dan dapat menggunakan variabel-variabel tersebut dan nilai tipe tersebut sebagai tipe-
tipe yang didefinisikan sebelumnya
s1 = genap;
s2 = ganjil;
if (s1 == s2) cout << “Semester yang sama. \n”;
II - 16
enum koin {duapuluhlimaan = 25, limapuluhan = 50, seratusan = 100, limaratusan =500};
Jika nilai integer ditunjuk hanya untuk beberapa enumerator, maka nilai-nilai yang lain
akan merupakan nilai yang berurutan, seperti
enum bulan {jan =1, feb, maret, april, mei, juni, juli, agust, sept, okt, nov, des};
Enumerator adalah konstanta integer yang sederhana, maka sah saja untuk mempunyai
beberapa enumerator yang berbeda dengan nilai yang sama, seperti
Tipe enumeration biasa digunakan untuk membuat kode, agar mudah untuk dipahami.
Contohnya :
Dalam beberapa kasus, C++ mengijinkan obyek dari satu tipe digunakan dalam tipe lain
yang diharapkan. Hal ini dikenal sebagai konversi tipe. Contoh konversi tipe yang
paling umum adalah dari sebuah tipe integer ke tipe integer yang lain, dan konversi dari
tipe integer ke tipe floating point.
Secara umum sebuah tipe integer dapat digunakan oleh tipe integer lain yang
diharapkan jika tipe yang diharapkan mempunyai peringkat yang lebih tinggi.
Sebagai contoh, suatu char dapat digunakan oleh tipe int yang diinginkan karena tipe int
mempunyai peringkat yang lebih tinggi dibandingkan dengan tipe char.
Contoh :
#include <iostream.h>
main()
{
char c = ‘A’;
short m = 22;
II - 17
int n = c + m;
cout << “n = “ << n << endl;
return 0;
}
Keluarannya adalah
n = 87
Contoh lain :
#include <iostream.h>
enum Warna {merah, jingga, kuning, hijau, biru, ungu};
main()
{
Warna x = biru;
Cout << “x = “ << x << endl;
return 0;
}
Keluarannya adalah
x=4
II - 18