PT ELEX MEDIA KOMPUTINDO Kompas Gramedia Building
Jl. Palmerah Barat 29-37, Jakarta 10270 Telp. (021) 53650110-53650111, Ext 3214 Webpage: http://www.elexmedia.co.id Kelompok Pemrograman Keterampilan Tingkat Pemula Tingkat Menengah Tingkat Mahir Jenis Buku Referensi Tutorial Latihan 121150272 ISBN 978-602-02-5826-3
C++ dianggap sebagai bahasa pemrograman masa depan. Oleh karena itu, mempelajari C++
di saat sekarang bernilai investasi. Dari sudut pandang ekonomis inilah, kami suguhkan tema
C++ kepada para pembaca sebagai salah satu alternatif pemrograman di tengah beragamnya
tema programming.
Buku ini mengupas tentang C++ dan bagaimana Anda bisa mempelajari pemrograman ini
dengan cepat dan ringkas. Diharapkan, Anda akan mengenal bahasa pemrograman yang di
masa mendatang akan dihargai sangat tinggi ini. Dengan penjelasan yang praktis, singkat,
dan jelas akan memudahkan Anda selangkah demi selangkah mengenal C++. Bacalah dan
praktikkan dalam latihan sehari-hari untuk membuat script yang praktis dan fungsional.
Materi selengkapnya antara lain:
y
Pengenalan C++
y
Sintak-sintak dasar C++
y
String dalam C++
y
Abstraksi dan enkapsulasi data dalam C++
y
Pengambilan keputusan dalam C++
y
Interface dalam C++
y
Penanganan eksepsi dalam C++
y
Namespace dalam C++
y
Pointer dalam C++
y
Pengulangan dalam C++
y
Operator dalam C++
Ringkas dan tepat mempelajari C++
untuk programmer pemula
Jubilee Enterprise
Jubilee Enterprise
Cepat Menguasai
Cepat Menguasai
Cepat Menguasai
pustaka-indo.blogspot.com
Cepat Menguasai C++
Sanksi Pelanggaran Pasal 113
Undang-Undang Nomor 28 Tahun 2014 tentang Hak Cipta
1. Setiap Orang yang dengan tanpa hak melakukan pelanggaran hak ekonomi sebagaimana dimaksud dalam Pasal 9 ayat (1) huruf i untuk Penggunaan Secara Komersial dipidana dengan pidana penjara paling lama 1 (satu) tahun dan/atau pidana denda paling banyak Rp100.000.000 (seratus juta rupiah). 2. Setiap Orang yang dengan tanpa hak dan/atau tanpa izin Pencipta atau
pemegang Hak Cipta melakukan pelanggaran hak ekonomi Pencipta sebagaimana dimaksud dalam Pasal 9 ayat (1) huruf c, huruf d, huruf f, dan/atau huruf h untuk Penggunaan Secara Komersial dipidana dengan pidana penjara paling lama 3 (tiga) tahun dan/atau pidana denda paling banyak Rp500.000.000,00 (lima ratus juta rupiah).
3. Setiap Orang yang dengan tanpa hak dan/atau tanpa izin Pencipta atau pemegang Hak Cipta melakukan pelanggaran hak ekonomi Pencipta sebagaimana dimaksud dalam Pasal 9 ayat (1) huruf a, huruf b, huruf e, dan/atau huruf g untuk Penggunaan Secara Komersial dipidana dengan pidana penjara paling lama 4 (empat) tahun dan/atau pidana denda paling banyak Rp1.000.000.000,00 (satu miliar rupiah).
4. Setiap Orang yang memenuhi unsur sebagaimana dimaksud pada ayat (3) yang dilakukan dalam bentuk pembajakan, dipidana dengan pidana penjara paling lama 10 (sepuluh) tahun dan/atau pidana denda paling banyak Rp4.000.000.000,00 (empat miliar rupiah).
Cepat Menguasai C++
Jubilee Enterprise
Cepat Menguasai C++
Jubilee Enterprise
2015, PT Elex Media Komputindo, Jakarta
Hak cipta dilindungi undang-undang
Diterbitkan pertama kali oleh
Penerbit PT Elex Media Komputindo
Kelompok Gramedia, Anggota IKAPI, Jakarta 2015
121150272
ISBN:
9786020258263
Dilarang keras menerjemahkan, memfotokopi, atau memperbanyak sebagian
atau seluruh isi buku ini tanpa izin tertulis dari penerbit.
Dicetak oleh Percetakan PT Gramedia, Jakarta
Isi di luar tanggung jawab percetakan
Kata Pengantar
C++ dianggap sebagai bahasa pemrograman masa depan. Oleh karena itu,
mempelajari C++ di saat sekarang bernilai investasi. Dari sudut pandang
ekonomis inilah, kami berniat untuk menyuguhkan tema C++ kepada para
pembaca sebagai salah satu alternatif pemrograman di tengah banyak tema
programming lainnya yang gencar di dunia perbukuan.
Buku ini mengupas tentang C++ dan bagaimana Anda bisa mempelajari
pemrograman ini dengan cepat dan ringkas. Diharapkan, setelah membaca
buku ini, Anda akan mengenal bahasa pemrograman yang di masa
men-datang akan dihargai sangat tinggi.
Kalau sudah begitu, kami berharap agar Anda bisa membaca buku ini
dengan baik dan mempraktikkannya dalam latihan sehari-hari untuk
membuat script yang praktis dan fungsional.
Yogyakarta, 10 Desember 2014
Gregorius Agung
Founder Jubilee Enterprise
"Information Technology is Our Passion and Book is Our Way"
Do you need top-notch IT Book? Just .... thinkjubilee.com
Daftar Isi
Kata Pengantar ... v
Daftar Isi ... vi
BAB 1 Sekilas Mengenai C++ ... 1
Pemrograman Berorientasi Objek ... 1
Library Standar ... 2
Penggunaan C++ ... 2
BAB 2 Menyiapkan C++ ... 3
Editor Teks ... 3
Compiler C++ ... 3
Menginstal Compiler GNU C/C++ ... 4
UNIX/ Linux ... 4
Mac OS
... 4
Windows
... 4
BAB 3 Sintaks Dasar C++ ... 5
Struktur Program C++ ... 6
Compile dan Eksekusi Program C++ ... 6
Titik-koma dan Blok dalam C++ ... 7
Identifier C++ ... 7
Kata Kunci C++ ... 8
Spasi dalam C++ ... 8
BAB 4 Komentar dalam C++ ... 9
BAB 5 Tipe Data dalam C++ ... 11
Tipe Data Primitif ... 11
Deklarasi typedef ... 13
BAB 6 Tipe Variabel dalam C++ ... 15
Definisi Variabel dalam C++ ... 15
Deklarasi Variabel dalam C++ ... 16
BAB 7 Lingkup Variabel ... 17
Variabel Lokal ... 17
Variabel Global ... 18
Inisialisasi Variabel Lokal dan Global ... 18
BAB 8 Konstanta dalam C++ ... 19
Mendefinisikan Konstanta ... 19
Preprocessor #define ... 19
Kata Kunci Const ... 20
BAB 9 Operator dalam C++ ... 21
Operator Aritmatika ... 21
Operator Relasional ... 23
Operator Logika ... 25
Operator Assignment ... 26
BAB 10 Perulangan dalam C++ ... 29
Perulangan While ... 29
Perulangan dowhile ... 30
Perulangan for ... 31
Perulangan Bersarang ... 32
Statemen Break ... 34
Kata Kunci Continue ... 35
BAB 11 Pengambilan Keputusan dalam C++ ... 37
Statemen if ... 37
Statemen ifelse ... 38
Statemen ifelse ifelse ... 39
Statemen ifelse Bersarang ... 40
Statemen Switch... 41
Statemen Switch Bersarang ... 43
BAB 12 Fungsi dalam C++ ... 45
Mendefinisikan Fungsi ... 45
Memanggil Fungsi ... 46
Argumen Fungsi ... 47
Pemanggilan Berdasarkan Nilai ... 47
Pemanggilan Berdasarkan Pointer ... 48
Pemanggilan Berdasarkan Referensi ... 49
BAB 13 Array dalam C++ ... 51
Deklarasi Array ... 51
Inisialisasi Array ... 52
Mengakses Elemen Array ... 52
Memasukkan Array ke dalam Fungsi ... 53
Cara 1
... 53
Cara 2
... 54
Cara 3
... 54
Mengembalikan Array dari Fungsi ... 55
BAB 14 String dalam C++ ... 57
Karakter String C-style... 57
Kelas String dalam C++ ... 59
BAB 15 Pointer dalam C++ ... 61
Apa Itu Pointer? ... 62
Menggunakan Pointer ... 62
Pointer Null ... 63
Aritmatika Pointer ... 64
Pertambahan ... 64
Pengurangan ... 65
Perbandingan Pointer ... 65
Memasukkan Pointer ke dalam Fungsi ... 66
Mengembalikan Pointer dari Fungsi... 67
BAB 16 Referensi dalam C++ ... 69
Referensi vs Pointer ... 69
Membuat Referensi ... 70
Referensi sebagai Parameter ... 71
Referensi Sebagai Nilai Balikan ... 72
pustaka-indo.blogspot.com
BAB 17 Kelas dan Objek dalam C++ ... 73
Definisi Kelas ... 73
Mendefinisikan Objek ... 74
Mengakses Data Member ... 74
Fungsi Member Kelas ... 75
Modifier Akses Kelas ... 76
Member Public ... 76
Member Private ... 77
Member Protected... 79
Konstruktor dan Destruktor ... 80
Konstruktor Kelas ... 80
Konstruktor Berparameter ... 81
Destruktor Kelas ... 82
Pointer this ... 83
Member Static dalam Kelas ... 84
Variabel static ... 84
Fungsi static ... 85
BAB 18 Pewarisan dalam C++ ... 87
Superkelas dan Subkelas ... 87
Pewarisan Multiple ... 89
BAB 19 Overload dalam C++ ... 91
Overload Fungsi ... 91
BAB 20 Polimorfisme dalam C++ ... 93
Fungsi Virtual ... 95
BAB 21 Abstraksi dan Enkapsulasi Data
dalam C++ ... 97
Abstraksi Data ... 97
Enkapsulasi Data ... 98
BAB 22 Interface dalam C++ ... 99
BAB 23 File dan Stream dalam C++ ... 101
Membuka File ... 102
Menutup File ... 102
Menulis ke dalam File ... 103
Membaca File ... 103
Contoh Membaca dan Menulis ke dalam File ... 103
Pointer Posisi File ... 104
BAB 24 Penanganan Eksepsi dalam C++ ... 105
Melempar Eksepsi ... 106
Menangkap Eksepsi ... 106
Eksepsi Standar C++ ... 108
Membuat Eksepsi Baru ... 109
BAB 25 Namespace dalam C++ ... 111
Mendefinisikan Namespace ... 111
Directive Using ... 112
BAB 1
Sekilas Mengenai C++
Bahasa pemrograman C++ adalah bahasa pemrograman yang bersifat
statis, compiled, general-purposed, case-sensitive, dan mendukung
pemrograman prosedural, pemrograman berorientasi objek, maupun
pemrograman generik.
C++ dikembangkan oleh Bjarne Stroustrup pada tahun 1979 di Bell Labs,
Murray Hill, New Jersey sebagai bahasa pemrograman middle-level yang
merupakan kombinasi bahasa high-level dan low-level.
Pemrograman Berorientasi Objek
C++ mendukung pemrograman berorientasi objek, termasuk empat pilar
utama pemrograman berorientasi objek:
Enkapsulasi.
Data hiding.
Pewarisan.
Library Standar
Library standar C++ terdiri dari tiga bagian berikut:
Inti bahasa yang terdiri dari variabel, tipe data, literal, dan
sebagainya.
Library standar C++ berisi kumpulan fungsi untuk
memani-pulasi file, string, dan sebagainya.
Standard Template Library (STL) berisi kumpulan method
untuk memanipulasi struktur data, dan sebagainya.
Penggunaan C++
C++ digunakan oleh para programmer dalam berbagai domain aplikasi.
C++ banyak digunakan untuk membuat driver dan software lainnya yang
secara langsung memanipulasi hardware.
Antarmuka sistem informasi Apple Macintosh dan Windows
meng-gunakan C++ sebagai bahasa pemrograman utamanya.
BAB 2
Menyiapkan C++
Sebelum mulai menggunakan C++, Anda perlu menyiapkan software
berikut dalam komputer Anda.
Editor Teks
Editor teks digunakan untuk menulis program Anda. Anda dapat
menggunakan editor seperti: Windows Notepad, OS Edit command, Brief,
Epsilon, EMACS, vim, atau vi.
File yang Anda buat dengan editor disebut source file, dan untuk C++ file
biasanya diberi nama dengan ekstensi .cpp, .cp, atau .c.
Compiler C++
Compiler digunakan untuk melakukan proses compile kode program
menjadi program yang dapat dijalankan.
Compiler yang sering digunakan adalah compiler GNU C/C++ yang dapat
Anda gunakan secara gratis.
Anda juga dapat menggunakan compiler lain atau IDE seperti Eclipse,
NetBeans, dan lainnya.
Menginstal Compiler GNU C/C++
Berikut ini langkah-langkah untuk menginstal GNU C/C++ (GCC) pada
Linux, Mac OS, dan Windows.
UNIX/ Linux
Jika Anda menggunakan Liux atau UNIX, Anda dapat memeriksa apakah
GCC sudah terinstal dengan menggunakan perintah berikut pada
command line:
$ g++-v
Jika sudah terinstal, akan ditampilkan pesan seperti pada contoh berikut:
Using built-in specs. Target: i386-redhat-linux
Configuredwith:../configure --prefix=/usr ... Thread model: posix
gcc version 4.1.220080704(RedHat4.1.2-46)
Jika belum terinstal, Anda dapat menginstalnya dengan instruksi yang
ada pada situs
http://gcc.gnu.org/install/.
Mac OS
Jika Anda menggunakan Mac OS, Anda dapat mengunduh dan menginstal
Xcode development environment pada situs Apple.
Anda dapat mengunduhnya dari situs developer.apple.com/
technologies/tools/.
Windows
Untuk menginstal GCC pada Windows, Anda perlu menginstal MinGW.
Untuk menginstal MinGW Anda pertama-tama dapat mengunduhnya
pada situs
www.mingw.org
dan memilih versi terbaru dengan nama
MinGW-<versi>.exe
.
Dalam menginstal MinGW, minimal Anda harus menginstal core,
gcc-g++, binutils, dan MinGW runtime.
Setelah instalasi selesai, Anda kemudian dapat menjalankan gcc, g++, ar,
ranlib, dlltool, dan tools GNU lainnya dari command line.
BAB 3
Sintaks Dasar C++
Sebuah program C++ dapat didefinisikan sebagai kumpulan objek yang
saling berkomunikasi melalui method-method yang ada.
Berikut ini penjelasan singkat mengenai kelas, objek, method, dan
variabel instance:
Objek - sebuah objek memiliki keadaan dan perilaku. Contoh:
Seekor anjing memiliki keadaan - warna, nama, jenis, dan
memi-liki perilaku - makan, berlari, menggonggong. Objek merupakan
instance dari kelas.
Kelas - kelas dapat didefinisikan sebagai sebuah template/
blueprint yang mendeskripsikan perilaku/keadaan yang
didukung oleh tipe kelas tersebut.
Method - method dasarnya merupakan perilaku. Sebuah kelas
bisa memiliki beberapa method. Di dalam method, logika
dituliskan, data dimanipulasi dan semua operasi dieksekusi.
Variabel instance - setiap objek memiliki kumpulan variabel
uniknya masing-masing. Keadaan suatu objek ditentukan oleh
nilai-nilai yang dimasukkan dalam variabel instance yang ada.
Struktur Program C++
Berikut ini contoh kode sederhana yang menampilkan teks “Halo Dunia”.
#include<iostream> using namespace std;
// eksekusi program dimulai pada main() int main()
{
cout <<"Halo Dunia"; // menampilkan Halo Dunia return 0;
}
Berikut ini penjelasan bagian-bagian dari program tersebut:
Bahasa pemrograman C++ mendefinisikan beberapa header,
yang berisi informasi yang diperlukan atau informasi yang
berguna bagi program. Pada contoh program di atas, header
<iostream> diperlukan.
Baris using namespace std; memberitahu compiler untuk
menggunakan namespace std.
Baris
//eksekusi program dimulai pada main() merupakan
komentar single-line. Komentar single-line diawali dengan tanda
// dan berakhir pada akhir baris tersebut.
Baris int main() adalah fungsi utama di mana eksekusi program
mulai dijalankan.
Baris cout <<"Halo Dunia"; menyebabkan pesan “Halo Dunia”
ditampilkan pada layar monitor.
Baris return 0; mengakhiri fungsi main() dan mengembalikan
nilai 0 sebagai nilai balikan.
Compile dan Eksekusi Program C++
Berikut ini langkah-langkah untuk menyimpan file, compile dan
menjalankan program.
Buka editor teks dan tambahkan contoh kode di atas.
Simpan file dengan nama: hello.cpp.
Buka jendela command prompt dan buka direktori
Ketikkan ‘g++ hello.cpp’ dan tekan enter untuk melakukan
compile.
Ketikkan ‘a.out’ untuk menjalankan program.
Pesan ‘Halo Dunia’ akan ditampilkan.
$ g++ hello.cpp $ ./a.out Halo Dunia
Titik-koma dan Blok dalam C++
Dalam C++, titik koma merupakan terminator. Setiap statemen
individual harus diakhiri dengan tanda titik koma.
Berikut contoh kode yang terdiri dari tiga statemen:
x = y; y = y+1; add(x, y);
Blok merupakan kumpulan statemen yang berhubungan logis yang
dibungkus oleh tanda kurung kurawal buka dan tutup { }.
Berikut contohnya:
{
cout <<"Halo Dunia"; // menampilkan Halo Dunia return 0;
}
Identifier C++
Identifier C++ merupakan nama yang digunakan untuk mengidentifikasi
variabel, fungsi, kelas, modul, atau item lainnya yang dibuat oleh
pengguna.
Sebuah identifier diawali dengan huruf A - Z, atau a - z atau underscore _
yang diikuti dengan huruf, underscore, dan angkah (0-9).
C++ bersifat case-sensitive sehingga Manpower dan manpower
merupakan dua identifier yang berbeda.
Berikut ini beberapa contoh penulisan identifier:
mohd zara abc move_name a_123 myname50 _temp j a23b9 retVal
Kata Kunci C++
Berikut ini daftar kata kunci yang ada kalam C++. Kata-kata kunci ini
tidak dapat digunakan sebagai nama identifier.
Asm
else
new
this
Auto
enum
operator
throw
Bool
explicit
private
true
Break
export
protected
try
Case
extern
public
typedef
Catch
false
register
typeid
Char
float
reinterpret_cast
typename
Class
for
return
union
Const
friend
short
unsigned
const_cast
goto
signed
using
continue
If
sizeof
virtual
Default
inline
Static
void
Delete
int
static_cast
volatile
Do
long
Struct
wchar_t
Double
mutable
Switch
while
dynamic_cast
namespace
Template
Daftar kata kunci dalam C++
Spasi dalam C++
Baris yang berisi spasi atau berisi komentar disebut baris kosong dan
akan diabaikan oleh compiler C++. Spasi dalam C++ digunakan untuk
mendeskripsikan baris kosong, tab, baris baru dan komentar. Spasi
memisahkan satu bagian statemen dengan bagian lainnya. Berikut
contohnya:
BAB 4
Komentar dalam C++
Komentar dalam suatu program merupakan statemen yang menjelaskan
kode yang ada dalam program.
C++ mendukung penggunaan komentar single-line dan multi-line. Semua
karakter yang ada dalam komentar akan diabaikan oleh compiler C++.
Berikut ini contoh komentar multi-line yang diawali dengan /* dan
diakhiri dengan */:
/* Ini adalah komentar */
/* Ini adalah contoh * komentar multi-line * dalam C++
*/
Berikut ini contoh komentar single-line yang diawali dengan //:
#include<iostream> usingnamespace std;
main() {
cout <<"Hello World"; // menampilkan Hello World
return0; }
Ketika kode tersebut di-compile, // menampilkan Hello World akan
diabaikan dan kode tersebut akan menghasilkan output berikut:
Hello World
Dalam komentar /* dan */, karakter // tidak memiliki arti, dan
sebaliknya dalam komentar //, karakter /* dan */ tidak memiliki arti.
Dengan demikian Ada dapat membuat komentar di dalam komentar lain:
/* Baris untuk menampilkan Hello World menjadi komentar: cout << "Hello World"; // menampilkan Hello World */
BAB 5
Tipe Data dalam C++
Tipe Data Primitif
C++ menyediakan beberapa tipe data primitif yang dapat Anda gunakan.
Berikut ini daftar tipe data dasar dalam C++:
Tipe
Kata Kunci
Boolean
bool
Character
char
Integer
int
Floating point
float
Double floating point
double
Valueless
void
Wide character
wchar_t
Daftar tipe data primitif
Beberapa tipe data tersebut dapat dimodifikasi dengan modifier signed,
unsigned, short, dan long.
Berikut ini tabel yang menjelaskan tipe variabel, lebar bit, dan nilai
minimum dan maksimumnya.
Tipe
Lebar Bit
Jangkauan Nilai
char
1byte
-127 sampai 127 atau 0
sampai 255
unsigned char
1byte
0 sampai 255
signed char
1byte
-127 sampai 127
int
4bytes
-2147483648
sampai
2147483647
unsigned int
4bytes
0 sampai 4294967295
signed int
4bytes
-2147483648
sampai
2147483647
short int
2bytes
-32768 sampai 32767
unsigned short int
Range
0 sampai 65,535
signed short int
Range
-32768 sampai 32767
long int
4bytes
-2,147,483,647 sampai
2,147,483,647
signed long int
4bytes
sama dengan long int
unsigned long int
4bytes
0 sampai 4,294,967,295
float
4bytes
+/- 3.4e +/- 38 (~7
digits)
double
8bytes
+/- 1.7e +/- 308 (~15
digits)
long double
8bytes
+/- 1.7e +/- 308 (~15
digits)
wchar_t
2 atau 4 bytes
1 karakter
Daftar tipe variabel, lebar bit, dan jangkauannya
Ukuran variabel mungkin berbeda dengan tabel tersebut, tergantung
compiler dan komputer yang Anda gunakan.
Berikut ini contoh kode untuk menampilkan ukuran tipe data pada
komputer Anda:
#include<iostream> using namespace std; int main() {cout <<"Ukuran char : "<<sizeof(char)<< endl; cout <<"Ukuran int : "<<sizeof(int)<< endl;
cout <<"Ukuran short int : "<<sizeof(shortint)<< endl; cout <<"Ukuran long int : "<<sizeof(longint)<< endl; cout <<"Ukuran float : "<<sizeof(float)<< endl; cout <<"Ukuran double : "<<sizeof(double)<< endl; cout <<"Ukuran wchar_t : "<<sizeof(wchar_t)<< endl;
return0; }
Kode tersebut menggunakan endl untuk memasukkan baris baru,
operator << untuk menampilkan beberapa nilai, dan fungsi sizeof()
untuk mendapatkan ukuran dari tipe data.
Kode tersebut akan menghasilkan output yang mungkin berbeda untuk
masing-masing komputer:
Ukuran char:1 Ukuran int:4 Ukuran shortint:2 Ukuran longint:4 Ukuran float:4 Ukuran double:8 Ukuran wchar_t:4Deklarasi typedef
Anda dapat membuat nama baru untuk tipe yang ada dengan
meng-gunakan typedef.
Berikut sintaksnya:
typedef type namabaru;
Berikut contoh penggunaannya:
typedef int intbaru;
Tipe Enum
Tipe enum mendeklarasikan nama tipe opsional dan menentukan
beberapa identifier yang dapat digunakan sebagai nilai dari tipe
tersebut. Setiap enumerator merupakan konstanta dengan tipe enum.
Berikut sintaksnya:
enum nama-enum { daftar nama } daftar-variabel;
Berikut ini contoh enum warna dan variabel w dengan tipe warna.
Variabel w berisi nilai “biru”:
enum warna { merah, hijau, biru } w; w = biru;
Secara default, nilai dari nama pertama adalah 0, nama kedua 1, nama
ketiga 2, dan seterusnya. Tetapi Anda dapat mengatur nilai nama dengan
menambah initializer.
Berikut contohnya, hijau memiliki nilai 5 dan biru akan memiliki nilai 6:
BAB 6
Tipe Variabel dalam C++
Variabel merupakan wadah penyimpanan yang memiliki nama/identifier
yang dapat dimanipulasi oleh program. Setiap variabel dalam C++
memiliki tipe tertentu, yang menentukan ukuran dan layout dari memori
variabel; jangkauan nilai yang dapat ditampung; dan operasi-operasi
yang dapat dijalankan terhadap variabel.
Definisi Variabel dalam C++
Berikut sintaks untuk mendefinisikan variabel:
tipe daftar_variabel;
Berikut ini contoh dalam mendefinisikan variabel:
int i, j, k; char c, ch; float f, gaji; double d;
Variabel dapat diinisialisasi (memasukkan nilai dalam variabel) pada
saat dideklarasi. Inisializer terdiri dari tanda sama dengan yang diikuti
dengan ekspresi konstan sebagai berikut:
tipe nama_variabel = nilai;
Berikut contohnya:
extern int d = 3, f = 5; // deklarasi d dan f.
int d = 3, f = 5; // definisi dan inisialisasi d dan f. byte z = 22; // definisi dan inisialisasi z.
Deklarasi Variabel dalam C++
Berikut ini contoh deklarasi variabel di bagian awal, yang kemudian
didefinisikan diinisialisasi dalam fungsi main():
#include<iostream> using namespace std; // Definisi variabel: extern int a, b; extern int c; extern float f; int main () { // Definisi variabel: int a, b; int c; float f; // Inisialisasi aktual a =10; b =20; c = a + b; cout << c << endl ; f =70.0/3.0; cout << f << endl ; return0; }
Kode tersebut akan menghasilkan output berikut:
30 23.3333
Konsep yang sama juga berlaku untuk deklarasi fungsi di mana Anda
menentukan nama fungsi pada waktu deklarasi dan definisi aktualnya
dapat dibuat di tempat lain. Berikut contohnya:
// deklarasi fungsi int fung(); int main() { // pemanggilan fungsi int i = fung(); } // definisi fungsi int fung() { return 0; }
BAB 7
Lingkup Variabel
Lingkup adalah bagian/area dalam program. Ada tiga area di mana
variabel dapat dideklarasikan:
Di dalam fungsi atau blok yang disebut variabel lokal.
Pada definisi parameter fungsi yang disebut parameter formal.
Di luar fungsi yang disebut variabel global.
Variabel Lokal
Variabel yang dideklarasikan di dalam suatu fungsi atau blok adalah
variabel lokal. Berikut contoh penggunaannya:
#include<iostream> using namespace std;
int main () {
// Deklarasi variabel lokal: int a, b; int c; // inisialisasi aktual a =10; b =20; c = a + b; cout << c; return0; }
Variabel Global
Variabel global didefinisikan di luar fungsi, biasanya di bagian atas kode
program.
Variabel global dapat diakses oleh semua fungsi dan dapat digunakan
oleh program setelah dideklarasikan.
Berikut ini contoh penggunaan variabel lokal dan global:
#include<iostream> using namespace std;
// Deklarasi variabel global: int g;
int main () {
// Deklarasi variabel lokal: int a, b; // inisialisasi aktual a =10; b =20; g = a + b; cout << g; return0; }
Inisialisasi Variabel Lokal dan Global
Ketika sebuah variabel didefinisikan, variabel tersebut tidak diinisialisasi
oleh sistem. Anda harus menginisialisasinya secara manual.
Variabel global diinisialisasi secara otomatis oleh sistem jika Anda
mendefinisikannya sebagai berikut:
Tipe Data
Initializer
Int
0
Char
'\0'
Float
0
Double
0
BAB 8
Konstanta dalam C++
Konstanta merupakan referensi nilai tetap yang tidak dapat diubah.
Konstanta berperan seperti variabel biasa, tetapi nilai konstanta bersifat
tetap dan tidak dapat diubah setelah didefinisikan.
Mendefinisikan Konstanta
Konstanta biasanya didefinisikan dengan menggunakan huruf kapital.
Ada dua cara untuk mendefinisikan konstanta dalam C++:
Menggunakan preprocessor #define.
Menggunakan kata kunci const.
Preprocessor #define
Berikut ini bentuk penggunaan preprocessor #define:
#define identifier nilai
Berikut contoh penggunaannya:
#include<iostream> using namespace std; #define PANJANG 10 #define LEBAR 5 #define BARISBARU '\n' int main()
{
int luas;
luas = PANJANG * LEBAR;
cout << luas; cout << BARISBARU;
return 0; }
Kode tersebut akan menghasilkan output berikut:
50
Kata Kunci Const
Anda dapat menggunakan awalan const untuk mendeklarasikan
konstanta dengan tipe tertentu.
Berikut sintaksnya:
const tipe nama_konstanta = nilai;
Berikut contoh penggunaannya:
#include<iostream> using namespace std;
int main() {
const int PANJANG =10; const int LEBAR =5;
const char BARISBARU ='\n';
int luas;
luas = PANJANG * LEBAR;
cout << luas; cout << BARISBARU;
return 0; }
Kode tersebut akan menghasilkan output berikut:
BAB 9
Operator dalam C++
Operator Aritmatika
Operator aritmatika digunakan pada ekspresi matematik seperti pada
operasi aljabar. Berikut ini daftar operator aritmatika.
Diasumsikan bahwa variabel A bernilai 10 dan B bernilai 20, maka:
Operator
Deskripsi
Contoh
+
Penjumlahan - Menambahkan
nilai-nilai yang ada di kedua
sisi operator
A + B hasilnya 30
-
Pengurangan - Mengurangkan
nilai operan di sebelah kiri
dengan nilai operan di
sebelah kanan
A - B hasilnya -10
*
Perkalian - Mengalikan
nilai-nilai yang ada di kedua sisi
operator
A * B hasilnya 200
/
Pembagian - Membagi nilai
operan di sebelah kiri dengan
nilai operan di sebelah kanan
%
Modulus
-
Melakukan
pembagian nilai operan di
sebelah kiri dengan nilai
operan di sebelah kanan dan
mengembalikan sisa nilainya
B % A hasilnya 0
++
Peningkatan - Menambahkan
1 pada nilai operan
B++ hasilnya 21
--
Penurunan - Mengurangkan 1
dari nilai operan
B-- hasilnya 19
Operator aritmatika dalam C++
Berikut ini contoh penggunaan operator aritmatika:
#include<iostream> using namespace std; main() { int a =21; int b =10; int c; c = a + b;
cout <<"Line 1 - Nilai c adalah :"<< c << endl ;
c = a - b;
cout <<"Line 2 - Nilai c adalah :"<< c << endl ;
c = a * b;
cout <<"Line 3 - Nilai c adalah :"<< c << endl ;
c = a / b;
cout <<"Line 4 - Nilai c adalah :"<< c << endl ;
c = a % b;
cout <<"Line 5 - Nilai c adalah :"<< c << endl ;
c = a++;
cout <<"Line 6 - Nilai c adalah :"<< c << endl ;
c = a--;
cout <<"Line 7 - Nilai c adalah :"<< c << endl ;
return0; }
Kode tersebut akan menghasilkan output berikut:
Line 1 - Nilai c adalah :31 Line 2 - Nilai c adalah :11 Line 3 - Nilai c adalah :210
Line 4 - Nilai c adalah :2 Line 5 - Nilai c adalah :1 Line 6 - Nilai c adalah :21 Line 7 - Nilai c adalah :22
Operator Relasional
Berikut ini operator relasional yang didukung dalam C++.
Diasumsikan bahwa variabel A bernilai 10 dan B bernilai 20, maka:
Operator
Deskripsi
Contoh
==
Memeriksa apakah nilai kedua
operan sama atau tidak, jika sama
maka kondisi bernilai benar.
(A == B) adalah
tidak benar.
!=
Memeriksa apakah nilai kedua
operan sama atau tidak, jika tidak
sama maka kondisi bernilai benar.
(A != B) adalah
benar.
>
Memeriksa apakah nilai operan di
sebelah kiri lebih dari nilai operan
di sebelah kanan, jika ya maka
kondisi bernilai benar.
(A > B) adalah
tidak benar.
<
Memeriksa apakah nilai operan di
sebelah kiri kurang dari nilai
operan di sebelah kanan, jika ya
maka kondisi bernilai benar.
(A < B) adalah
benar.
>=
Memeriksa apakah nilai operan di
sebelah kiri lebih dari atau sama
dengan nilai operan di sebelah
kanan, jika ya maka kondisi
bernilai benar.
(A >= B) adalah
tidak benar.
<=
Memeriksa apakah nilai operan di
sebelah kiri kurang dari atau
sama dengan nilai operan di
sebelah kanan, jika ya maka
kondisi bernilai benar.
(A <= B) adalah
benar.
Berikut ini contoh penggunaannya:
#include<iostream> using namespace std; main() { int a =21; int b =10; int c ; if( a == b ) {cout <<"Line 1 - a sama dengan b"<< endl ; }
else {
cout <<"Line 1 - a tidak sama dengan b"<< endl ; }
if( a < b ) {
cout <<"Line 2 - a kurang dari b"<< endl ; }
else {
cout <<"Line 2 - a tidak kurang dari b"<< endl ; }
if( a > b ) {
cout <<"Line 3 - a lebih dari b"<< endl ; }
else {
cout <<"Line 3 - a tidak lebih dari b"<< endl ; }
/* Mengubah nilai a dan b */ a =5;
b =20;
if( a <= b ) {
cout <<"Line 4 - a kurang dari \ atau sama dengan b"<< endl ; }
if( b >= a ) {
cout <<"Line 5 - b lebih dari \ atau sama dengan a"<< endl ; }
return0; }
Kode tersebut akan menghasilkan output berikut:
Line 1 - a tidak sama dengan b Line 2 - a tidak kurang dari b Line 3 - a lebih dari b
Line 4 - a kurang dari atau sama dengan b Line 5 - b lebih dari atau sama dengan a
Operator Logika
Berikut ini daftar operator logika dalam C++.
Diasumsikan bahwa nilai variabel A adalah 1 dan B adalah 0, maka:
Operator
Deskripsi
Contoh
&&
Operator logika AND. Jika
kedua operan bukan nol, maka
kondisi bernilai benar.
(A && B) adalah
tidak benar.
||
Operator logika OR. Jika ada
operan yang bukan nol, maka
kondisi bernilai benar.
(A || B) adalah
benar.
!
Operator logika NOT.
Diguna-kan untuk membalik keadaan
logika dari operan. Jika kondisi
bernilai benar maka operator
NOT akan membuatnya
men-jadi tidak benar.
!(A && B) adalah
benar.
Operator logika dalam C++
Berikut ini contoh penggunaannya:
#include<iostream> using namespace std; main() { int a =5; int b =20; int c ; if( a && b ) {
cout <<"Line 1 - Kondisi benar"<< endl ; }
if( a || b ) {
cout <<"Line 2 - Kondisi benar"<< endl ; }
/* Mengubah nilai a dan b */ a =0;
b =10;
if( a && b ) {
cout <<"Line 3 - Kondisi benar"<< endl ; }
else {
cout <<"Line 4 - Kondisi tidak benar"<< endl ; }
if(!(a && b)) {
cout <<"Line 5 - Kondisi benar"<< endl ; }
return0; }
Kode tersebut akan menghasilkan output berikut:
Line 1 - Kondisi benar Line 2 - Kondisi benar Line 3 - Kondisi tidak benar Line 4 - Kondisi benar
Operator Assignment
Berikut ini daftar operator assignment dalam C++:
Operator Deskripsi
Contoh
=
Memasukkan
nilai
pada
operan di sebelah kanan ke
dalam operan di sebelah kiri
C = A + B akan
memasukkan nilai A
+ B ke dalam C
+=
Menjumlahkan nilai operan di
sebelah kiri dengan nilai
operan di sebelah kanan dan
memasukkan
hasilnya
ke
dalam operan di sebelah kiri
C += A hasilnya sama
dengan C = C + A
-=
Mengurangkan nilai operan di
sebelah kiri dengan nilai
operan di sebelah kanan dan
memasukkan
hasilnya
ke
dalam operan di sebelah kiri
C -= A hasilnya sama
dengan C = C - A
*=
Mengalikan nilai operan di
sebelah kiri dengan nilai
operan di sebelah kanan dan
memasukkan
hasilnya
ke
dalam operan di sebelah kiri
C *= A hasilnya sama
dengan C = C * A
/=
Membagi nilai operan di
sebelah kiri dengan nilai
operan di sebelah kanan dan
memasukkan
hasilnya
ke
dalam operan di sebelah kiri
C /= A hasilnya sama
dengan C = C / A
%=
Menggunakan
operasi
modulus
terhadap
kedua
operan
dan
memasukkan
hasilnya ke dalam operan di
sebelah kiri
C %= A hasilnya
sama dengan C = C %
A
Operator assignment dalam C++
Berikut contoh penggunaan operator assignment:
#include<iostream> using namespace std; main() { int a =21; int c ; c = a;
cout <<"Line 1 - Operator =, Nilai c = : "<<c<< endl ;
c += a;
cout <<"Line 2 - Operator +=, Nilai c = : "<<c<< endl ;
c -= a;
cout <<"Line 3 - Operator -=, Nilai c = : "<<c<< endl ;
c *= a;
cout <<"Line 4 - Operator *=, Nilai c = : "<<c<< endl ;
c /= a;
c =200;
c %= a;
cout <<"Line 6 - Operator %=, Nilai c = : "<<c<< endl ;
return0; }
Kode tersebut akan menghasilkan output berikut:
Line 1 - Operator =, Nilai c =:21 Line 2 - Operator +=,Nilai c =:42 Line 3 - Operator -=, Nilai c =:21 Line 4 - Operator *=, Nilai c =:441 Line 5 - Operator /=, Nilai c =:21 Line 6 - Operator %=, Nilai c =:11
BAB 10
Perulangan dalam C++
Perulangan While
Perulangan while adalah struktur kontrol yang memungkinkan Anda
mengulangi suatu proses dengan jumlah perulangan tertentu.
Berikut ini sintaks dari perulangan while:
while(kondisi) {
statemen; }
Selama kondisi bernilai benar, maka statemen dalam tubuh while akan
terus dieksekusi. Berikut ini contoh penggunaannya:
#include <iostream> using namespace std;
int main() {
// Deklarasi variabel lokal: int a = 10;
// eksekusi perulangan while while( a < 20 )
{
cout << "nilai a: " << a << endl; a++;
}
return 0; }
Kode tersebut akan menghasilkan output berikut:
nilai a: 10 nilai a: 11 nilai a: 12 nilai a: 13 nilai a: 14 nilai a: 15 nilai a: 16 nilai a: 17 nilai a: 18 nilai a: 19
Perulangan do…while
Perulangan do…while sama seperti pengulangan while, tetapi
perulangan do…while pasti akan dieksekusi minimal satu kali.
Berikut sintaksnya:
do { statemen } while(kondisi);Berikut ini contoh penggunaannya:
#include <iostream> using namespace std;
int main () {
// Deklarasi variabel lokal: int a = 10;
// eksekusi perulangan do do
{
cout << "nilai a: " << a << endl; a = a + 1;
}while( a < 20 );
return 0; }
Kode tersebut akan menghasilkan output berikut:
nilai a: 10 nilai a: 11 nilai a: 12 nilai a: 13 nilai a: 14 nilai a: 15 nilai a: 16 nilai a: 17 nilai a: 18 nilai a: 19Perulangan for
Perulangan for adalah struktur kontrol repetitif yang memungkinkan
Anda untuk mejalankan proses dengan jumlah perulangan tertentu
(jumlah perulangan sudah diketahui sebelumnya).
Berikut ini sintaksnya:
for(inisialisasi; kondisi; pertambahan) {
statemen }
Berikut ini aliran proses dalam perulangan for:
Bagian inisialisasi dieksekusi pertama kali dan hanya sekali.
Bagian ini memungkinkan Anda untuk mendeklarasikan dan
menginisialisasi variabel kontrol perulangan.
Setelah itu, kondisi dievaluasi. Jika bernilai benar, statemen
dalam tubuh for dieksekusi. Jika tidak, statemen tidak
diekse-kusi dan proses berlanjut pada bagian setelah perulangan for.
Setelah statemen dalam for dieksekusi, aliran proses kembali
pada bagian pertambahan. Statemen pertambahan ini
memung-kinkan Anda untuk meng-update variabel kontrol dalam for.
Kondisi kemudian dievaluasi lagi. Jika benar, statemen dalam
perulangan for kembali dieksekusi, dan dilanjutkan ke bagian
pertambahan. Jika tidak, perulangan for selesai dan proses
ber-lanjut pada bagian setelah perulangan for.
Berikut ini contoh penggunaannya:
#include <iostream> using namespace std;
int main () {
// eksekusi perulangan for
for( int a = 10; a < 20; a = a + 1 ) {
cout << "nilai a: " << a << endl; }
return 0; }
Berikut ini hasil output:
nilai a: 10 nilai a: 11 nilai a: 12 nilai a: 13 nilai a: 14 nilai a: 15 nilai a: 16 nilai a: 17 nilai a: 18 nilai a: 19
Perulangan Bersarang
C# memungkinkan Anda untuk menggunakan suatu perulangan di dalam
perulangan yang lain.
Sintaks untuk perulangan for bersarang:
for ( inisialisasi; kondisi; pertambahan ) {
for ( inisialisasi; kondisi; pertambahan ) {
statemen; }
statemen; }
Sintaks untuk perulangan while bersarang:
while(kondisi) {
while(kondisi) { statemen; } statemen; }
Sintaks untuk perulangan do…while bersarang:
do {
statemen; // Anda dapat menggunakan beberapa statemen
do { statemen; } while( kondisi ); } while( kondisi );
Anda juga dapat memasukkan jenis perulangan yang berbeda di dalam
suatu perulangan. Perulangan for dapat berisi perulangan while dan
sebaliknya.
Contoh berikut menggunakan perulangan for bersarang untuk
menemukan bilangan prima di antara 2 sampai 100:
#include <iostream> using namespace std;
int main() {
int i, j;
for(i=2; i<100; i++) {
for(j=2; j <= (i/j); j++) if(!(i%j))
break; // jika faktor ditemukan, bukan // bilangan prima
if(j > (i/j))
cout << i << " adalah bilangan prima\n"; }
return 0; }
Kode tersebut akan menghasilkan output berikut:
2 adalah bilangan prima 3 adalah bilangan prima 5 adalah bilangan prima 7 adalah bilangan prima 11 adalah bilangan prima 13 adalah bilangan prima 17 adalah bilangan prima 19 adalah bilangan prima 23 adalah bilangan prima 29 adalah bilangan prima 31 adalah bilangan prima 37 adalah bilangan prima 41 adalah bilangan prima 43 adalah bilangan prima 47 adalah bilangan prima 53 adalah bilangan prima 59 adalah bilangan prima 61 adalah bilangan prima 67 adalah bilangan prima 71 adalah bilangan prima 73 adalah bilangan prima 79 adalah bilangan prima 83 adalah bilangan prima 89 adalah bilangan prima 97 adalah bilangan prima
Statemen Break
Kata kunci break digunakan untuk menghentikan eksekusi perulangan.
Berikut ini contoh penggunaannya:
#include <iostream> using namespace std;
int main () {
// Deklarasi variabel lokal: int a = 10;
// eksekusi perulangan do do
{
cout << "nilai a: " << a << endl; a = a + 1; if( a > 15) { // menghentikan perulangan break; } } while( a < 20 ); return 0; }
Berikut ini output dari kode tersebut:
nilai a: 10 nilai a: 11 nilai a: 12 nilai a: 13 nilai a: 14 nilai a: 15Kata Kunci Continue
Kata kunci continue digunakan untuk melompat pada iterasi selanjutnya
pada perulangan.
Pada perulangan for, kata kunci menyebabkan aliran proses
melompat langsung pada bagian pertambahan.
Pada perulangan while, aliran proses melompat langsung pada
bagian kondisi.
Berikut ini contoh penggunaannya:
#include <iostream> using namespace std;
int main() {
// Deklarasi variabel lokal: int a = 10; // eksekusi perulangan do do { if( a == 15) { // melewatkan iterasi. a = a + 1; continue; }
cout << "nilai a: " << a << endl; a = a + 1;
}
while( a < 20 );
return 0; }
Kode tersebut akan menghasilkan output berikut:
nilai a: 10 nilai a: 11 nilai a: 12 nilai a: 13 nilai a: 14 nilai a: 16 nilai a: 17 nilai a: 18 nilai a: 19BAB 11
Pengambilan Keputusan
dalam C++
Statemen if
Statemen if terdiri dari sebuah ekspresi Boolean yang diikuti dengan
satu statemen atau lebih.
Berikut ini sintaks untuk statemen if:
if(ekspresi_boolean) {
// Statemen akan dieksekusi jika ekspresi Boolean // bernilai benar
}
Berikut ini contoh penggunaannya:
#include <iostream> using namespace std;
int main() {
// deklarasi variabel lokal: int a = 10;
// memeriksa kondisi boolean if( a < 20 )
{
// jika kondisi benar tampilkan baris berikut cout << "a kurang dari 20;" << endl;
}
return 0; }
Kode tersebut akan menghasilkan output berikut:
a kurang dari 20 nilai a adalah : 10
Statemen if…else
Statemen if dapat diikuti dengan statemen else opsional, yang dieksekusi
jika ekspresi Boolean bernilai salah.
Berikut ini sintaksnya:
if(ekspresi_boolean) {
// Dieksekusi jika ekspresi Boolean bernilai benar }
else {
// Dieksekusi jika ekspresi Boolean bernilai salah }
Berikut ini contoh penggunaannya:
#include <iostream> using namespace std;
int main() {
// deklarasi variabel lokal: int a = 100;
// memeriksa kondisi boolean if( a < 20 )
{
// jika kondisi benar tampilkan baris berikut cout << "a kurang dari 20;" << endl;
} else {
// jika kondisi tidak benar tampilkan baris berikut cout << "a tidak kurang dari 20;" << endl;
}
cout << "nilai a adalah : " << a << endl;
return 0; }
Kode tersebut akan menghasilkan output berikut:
a tidak kurang dari 20 nilai a adalah : 100
Statemen if…else if…else
Statemen if dapat diikuti dengan statemen else if…else opsional.
Saat menggunakan statemen if, else if, else ada beberapa hal yang harus
Anda perhatikan:
Sebuah statemen if dapat memiliki nol atau satu statemen else
dan harus digunakan setelah statemen else if.
Sebuah statemen if dapat memiliki nol atau banyak statemen
else if dan harus digunakan sebelum statemen else.
Setelah sebuah statemen else if dieksekusi, statemen else if atau
else yang lain tidak akan diperiksa (akan langsung melompat
pada kode setelah else terakhir).
Berikut sintaksnya:
if(ekspresi_boolean1) {
// Dieksekusi jika ekspresi boolean 1 bernilai benar }
else if(ekspresi_boolean2) {
// Dieksekusi jika ekspresi boolean 2 bernilai benar }
else if(ekspresi_boolean3) {
// Dieksekusi jika ekspresi boolean 3 bernilai benar }
else {
// Dieksekusi jika tidak ada kondisi di atas yang // bernilai benar.
}
Berikut ini contoh penggunaannya:
#include <iostream> using namespace std;
int main () {
int a = 100;
// memeriksa kondisi boolean if( a == 10 )
{
// jika kondisi benar tampilkan baris berikut cout << "Nilai a adalah 10" << endl;
}
else if( a == 20 ) {
// jika kondisi else if bernilai benar cout << "Nilai a adalah 20" << endl; }
else if( a == 30 ) {
// jika kondisi else if bernilai benar cout << "Nilai a adalah 30" << endl; }
else {
// jika tidak ada kondisi di atas yang bernilai benar cout << "Tidak ada nilai yang cocok" << endl;
}
cout << "Nilai a adalah : " << a << endl;
return 0; }
Kode tersebut akan menghasilkan output berikut:
Tidak ada nilai yang cocok Nilai a adalah: 100
Statemen if…else Bersarang
Anda dapat memasukkan statemen if else ke dalam statemen if else
lainnya.
Berikut ini sintaks dari statemen if else bersarang:
if(ekspresi_boolean1) {
// Dieksekusi jika ekspresi boolean 1 bernilai benar if(ekspresi_boolean2)
{
// Dieksekusi jika ekspresi boolean 2 bernilai benar }
Berikut ini contoh penggunaannya:
#include <iostream> using namespace std;
int main() {
// deklarasi variabel lokal: int a = 100;
int b = 200;
// memeriksa kondisi boolean if( a == 100 )
{
// jika kondisi benar, periksa kondisi berikut if( b == 200 )
{
// jika kondisi benar, tampilkan baris berikut cout << "Nilai a 100 dan b 200" << endl; }
}
cout << "Nilai a adalah : " << a << endl; cout << "Nilai b adalah : " << b << endl;
return 0; }
Hasil dari kode tersebut adalah sebagai berikut:
Nilai a 100 dan b 200 Nilai a adalah : 100 Nilai b adalah : 200
Statemen Switch
Statemen switch memungkinkan sebuah variabel diperiksa
kesamaan-nya dengan daftar nilai-nilai yang ada. Setiap nilai dalam daftar disebut
case. Berikut ini sintaks statemen switch:
switch(expression) { case nilai : // Statemen break; // opsional case nilai : // Statemen break; // opsional
// Anda dapat menggunakan beberapa statemen case. default: // opsional
// Statemen }
Berikut ini aturan penggunaan statemen switch:
Variabel yang digunakan dalam switch hanya boleh berupa byte,
short, int, atau char.
Anda dapat menggunakan beberapa case di dalam switch. Setiap
case diikuti dengan nilai yang akan dibandingkan dan tanda titik
dua (:).
Nilai case harus sama tipe datanya dengan variabel dalam
switch dan harus berupa konstanta atau literal.
Ketika variabel yang dibandingkan sama dengan dengan case,
statemen pada case tersebut akan dieksekusi sampai pada kata
kunci break.
Ketika sampai pada kata kunci break, switch berhenti
dieksekusi, dan aliran proses melompat pada kode sesudah
statemen switch.
Tidak semua case memerlukan break. Jika tidak ada break,
aliran proses akan terus dilanjutkan pada case selanjutnya
sampai pada break.
Statemen switch dapat memiliki case default, yang diletakkan
pada akhir statemen. Default dijalankan jika tidak ada case yang
dijalankan.
Berikut ini contoh penggunaannya:
#include <iostream> using namespace std;
int main() {
// deklarasi variabel lokal: char nilai = 'D';
switch(nilai) {
case 'A' :
cout << "Sempurna!" << endl; break;
case 'B' : case 'C' :
cout << "Bagus" << endl; break;
case 'D' :
cout << "Anda lulus" << endl; break;
case 'F' :
cout << "Coba lagi" << endl; break;
default :
cout << "Nilai tidak valid" << endl; }
cout << "Nilai Anda adalah " << nilai << endl;
return 0; }
Kode tersebut menghasilkan output sebagai berikut:
Anda lulus
Nilai Anda adalah D
Statemen Switch Bersarang
Anda dapat memasukkan statemen switch di dalam statemen switch lain.
Berikut ini sintaks untuk statemen switch bersarang:
switch(ch1) {
case 'A':
cout << "Bagian A dari switch luar"; switch(ch2)
{
case 'A':
cout << "Bagian A dari switch dalam"; break;
case 'B': /* kode untuk case B dari switch dalam */ }
break;
case 'B': /* kode untuk case B dari switch luar */ }
Berikut ini contoh penggunaannya:
#include <iostream> using namespace std;
int main() {
// deklarasi variabel lokal: int a = 100;
int b = 200;
switch(a) {
case 100:
cout << "Ini bagian switch luar" << endl; switch(b)
{
cout << "Ini bagian switch dalam" << endl; }
}
cout << "Nilai a adalah : " << a << endl; cout << "Nilai b adalah : " << b << endl;
return 0; }
Kode tersebut akan menghasilkan output berikut:
Ini bagian switch luar Ini bagian switch dalam Nilai a adalah : 100 Nilai b adalah : 200
Operator ? :
Operator ini juga disebut operator ternary. Operator ini terdiri dari tiga
operand dan digunakan untuk mengevaluasi ekspresi Boolean.
Berikut ini syntax penulisan operator ternary:
Ekspresi1 ? Ekspresi2 : Ekspresi3
Urutan prosesnya adalah sebagai berikut:
1.
Ekspresi1 dievaluasi.
2.
Jika bernilai benar, Ekspresi2 dievaluasi dan menjadi nilai keluaran
(perintah yang dieksekusi).
3.
Jika bernilai salah, Ekspresi3 dievaluasi dan menjadi nilai keluaran
BAB 12
Fungsi dalam C++
Fungsi adalah sekumpulan statemen yang secara bersama-sama
melaku-kan suatu tugas. Setiap program C++ memiliki minimal satu fungsi
main(). Fungsi juga sering disebut method, sub-rutin, prosedur, dan
sebagainya.
Mendefinisikan Fungsi
Saat mendefinisikan fungsi, Anda dasarnya mendeklarasikan
elemen-elemen dari strukturnya.
Berikut sintaks untuk mendefinisikan fungsi dalam C++:
tipe_balikan nama_fungsi ( daftar parameter ) {
tubuh fungsi }
Berikut penjelasan masing-masing elemen:
tipe_balikan: tipe data dari nilai yang dikembalikan oleh fungsi.
Jika fungsi tidak mengembalikan nilai maka tipe balikannya
void.
nama_fungsi: nama fungsi merupakan identifier yang bersifat
daftar parameter: parameter dalam tanda kurung digunakan
untuk memberikan dan menerima data dari fungsi. Parameter
bersifat opsional sehingga fungsi tidak harus memiliki daftar
parameter.
tubuh fungsi: mengandung instruksi yang dibutuhkan untuk
menyelesaikan tugas tertentu.
Berikut ini contoh penggunaan fungsi maks() yang menggunakan dua
nilai integer dan mengembalikan nilai terbesar di antaranya.
// fungsi mengembalikan nilai maksimum di antara dua angka
int maks(int num1, int num2) {
// deklarasi variabel lokal int hasil; if (num1 > num2) hasil = num1; else hasil = num2; return hasil; }
Memanggil Fungsi
Anda dapat memanggil fungsi dengan menggunakan nama fungsi dan
memberikan parameter yang sesuai (jika fungsi memiliki parameter).
Berikut ini contohnya:
#include <iostream> using namespace std;
// deklarasi fungsi
int maks(int num1, int num2);
int main() {
// deklarasi variabel lokal: int a = 100;
int b = 200; int ret;
// memanggil fungsi untuk mendapatkan nilai maksimum ret = maks(a, b);
cout << "Nilai maksimum adalah : " << ret << endl;
return 0; }
// fungsi mengembalikan nilai maksimum di antara dua angka int maks(int num1, int num2)
{
// deklarasi variabel lokal int hasil; if (num1 > num2) hasil = num1; else hasil = num2; return hasil; }
Kode tersebut akan menghasilkan output berikut:
Nilai maksimum adalah : 200
Argumen Fungsi
Jika sebuah fungsi menggunakan argumen/parameter, fungsi tersebut
harus mendeklarasikan variabel yang akan menampung nilai argumen.
Variabel ini disebut parameter formal dari fungsi.
Dalam pemanggilan fungsi, ada beberapa cara untuk memberikan nilai
argumen ke dalam fungsi.
Pemanggilan Berdasarkan Nilai
Metode pemanggilan fungsi berdasarkan nilai memberikan salinan nilai
argumen ke dalam parameter formal dari fungsi. Perubahan pada
parameter di dalam fungsi tidak akan berpengaruh pada argumen.
Berikut ini contoh fungsi swap():
// definisi fungsi swap untuk menukar nilai. void swap(int x, int y)
{
int temp;
temp = x; /* menyimpan nilai x */ x = y; /* memasukkan y ke dalam x */ y = temp; /* memasukkan x ke dalam y */
return; }
Berikut ini contoh pemanggilan fungsi swap() dengan memberikan nilai
aktual:
#include <iostream> using namespace std;
// deklarasi fungsi void swap(int x, int y);
int main() {
// deklarasi variabel lokal: int a = 100;
int b = 200;
cout << "Sebelum swap, nilai a :" << a << endl; cout << "Sebelum swap, nilai b :" << b << endl;
// memanggil fungsi swap. swap(a, b);
cout << "Setelah swap, nilai a :" << a << endl; cout << "Setelah swap, nilai b :" << b << endl;
return 0; }
Kode tersebut akan menghasilkan output berikut:
Sebelum swap, nilai a :100 Sebelum swap, nilai b :200 Setelah swap, nilai a :100 Setelah swap, nilai b :200
Pemanggilan Berdasarkan Pointer
Metode pemanggilan fungsi berdasarkan pointer memberikan salinan
alamat dari argumen ke dalam parameter formal dari fungsi. Perubahan
terhadap parameter di dalam fungsi akan berpengaruh pada argumen
aslinya. Berikut ini contoh fungsi swap():
// definisi fungsi swap untuk menukar nilai. void swap(int *x, int *y)
{
int temp;
temp = *x; /* menyimpan nilai pada alamat x */ *x = *y; /* memasukkan y ke dalam x */
*y = temp; /* memasukkan x ke dalam y */
return; }
Berikut ini contoh pemanggilan fungsi swap() dengan menggunakan
pointer:
#include <iostream> using namespace std;
// deklarasi fungsi
void swap(int *x, int *y);
int main () {
// deklarasi variabel lokal: int a = 100;
int b = 200;
cout << "Sebelum swap, nilai a :" << a << endl; cout << "Sebelum swap, nilai b :" << b << endl;
/* memanggil fungsi untuk menukar nilai.
* &a mengindikasikan pointer a (alamat variabel a) dan * &b mengindikasikan pointer b (alamat variabel b). */
swap(&a, &b);
cout << "Setelah swap, nilai a :" << a << endl; cout << "Setelah swap, nilai b :" << b << endl;
return 0; }
Berikut output dari kode tersebut:
Sebelum swap, nilai a :100 Sebelum swap, nilai b :200 Setelah swap, nilai a :200 Setelah swap, nilai b :100
Pemanggilan Berdasarkan Referensi
Metode pemanggilan fungsi berdasarkan referensi memberikan salinan
referensi dari argumen ke dalam parameter formal dari fungsi.
Perubahan terhadap parameter di dalam fungsi akan berpengaruh pada
argumen aslinya. Berikut ini contoh fungsi swap():
// definisi fungsi swap untuk menukar nilai. void swap(int &x, int &y)
{
int temp;
temp = x; /* menyimpan nilai pada alamat x */ x = y; /* memasukkan y ke dalam x */
y = temp; /* memasukkan x ke dalam y */
return; }