• Tidak ada hasil yang ditemukan

xxn BAGIAN I ELEMEN DASAR C++

N/A
N/A
Protected

Academic year: 2021

Membagikan "xxn BAGIAN I ELEMEN DASAR C++"

Copied!
52
0
0

Teks penuh

(1)

xxn

BAGIAN I

(2)

BAB

1

PENGENALAN C++

1.1 Pendahuluan

Pada mulanya bahasa komputer digunakan untuk membantu dalam melakukan perhitungan-perhitungan telemetri. Ketika itu, bahasa yang digunakan masih primitif sekali karena masih berupa bahasa mesin yang hanya mengenal angka 1 dan 0. Selanjutnya bahasa mesin tersebut disederhzanakan menjadi bahasa yang agak dipahami dengan menghadirkan statemen-statemen khusus yang disebut dengan istilah mnemonic seperti ADD, MOV, JMP dan yang lainnya. Bahasa ini disebut dengan bahasa assembly yang masih termasuk ke dalam bahasa tingkat rendah (low level language). Tahun 1969, laboratorium Bell AT&T di Muray Hill, New Jersey menggunakan bahasa assembly ini untuk mengembangkan sistem operasi UNIX. Maksudnya adalah untuk membuat sistem operasi yang dapat bersifat 'programmer-friendly'. Setelah UNIX berjalan, Ken Thompson, seorang pengembang sistem di laboratorium tersebut mengembangkan bahasa baru dengan nama bahasa B. Huruf B ini diambil dari BCPL. Bahasa B ini kemudian digunakan untuk menulis ulang atau merevisi sistem operasi UNIX. Oleh karena bahasa B ini masih bersifat interpret dan lambat, maka pada tahun 1971, sistem operasi UNIX kemudian ditulis ulang dengan menggunakan bahasa C, yaitu bahasa pemrograman yang

(3)

dikembangkan oleh Dennis Ritchie, seorang pengembang sistem di laboratorium yang sama.

Sampai sekarang bahasa C masih digunakan untuk melakukan pengembangan-pengembangan program dan sistem-sistem operasi, diantaranya sistem operasi Windows. Alas an itulah yang menjadikan bahasa C sangat populer di dunia pemrograman, khususnya untuk industri perangkat lunak. Namun sayangnya bahasa C merupakan bahasa yang masih tergolong susah untuk dipelajari karena masih bersifat prosedural murni. Untuk membentuk satu objek, kita harus melakukan banyak sekali penulisan kode. Hal ini tentu dapat dikatakan sebagai sebuah kelemahan. Untuk mengatasi masalah ini, pada tahun 1983, seorang doktor bemama Bjarne Stroustrup yang juga bekerja di laboratorium yang sama menciptakan bahasa baru yaitu bahasa C + + yang merupakan bahasa hibryd dari bahasa C.

Bahasa C + + didasarkan atas bahasa C sehingga kita dapat melakukan kompilasi program-program yang ditulis dalam bahasa C dengan menggunakan kompiler C + + . Keistimewaan dari bahasa C + + adalah karena bahasa ini mendukung pemrograman berarah objek atau yang lebih sering dikenal dengan istilah Object Oriented

Programming (OOP).

1.2 C dan C++

Seperti telah dikemukakan sebelumnya bahwa kedua bahasa ini (C dan C + + ) merupakan bahasa yang sangat populer dalam dunia pengembangan perangkat lunak. Kedua bahasa ini digolongkan ke dalam bahasa tingkat menengah (middle level language). Sisi lain, yaitu di sisi akademis, seorang profesor yang bernama Niklaus Wirth di Politeknik Zurich, Swiss, mengembangkan bahasa tingkat tinggi (high level language) yang disebut dengan bahasa Pascal untuk mengajarkan algoritma kepada para mahasiswanya. Maka dari itu, di lingkungan akademis bahasa Pascal lebih populer dibandingkan bahasa C atau C+ + . Sebagai bahan pengetahuan bagi Anda, berikut ini pengelompokan tingkatan dari bahasa pemrograman.

Pemrograman C++

Bahasa Tingkat Tinggi Ada Modula-2 Pascal COBOL FORTRAN BASIC

Bahasa Tingkat Menengah Java C++ C FORTH

Bahasa Tingkat Rendah Macro-Assembler Assembler

Dari tabel tersebut dapat kita lihat bahwa bahasa pemrograman yang terdapat pada bagian paling atas merupakan bahasa pemrograman yang paling mudah untuk dipahami. Sebagai contoh, C adalah bahasa yang lebih sulit di bandingkan C + + dan C + + adalah bahasa yang lebih sulit dibandingkan dengan bahasa Java, dan seterusnya.

Semenjak dikembangkan, bahasa C dan C++ banyak digunakan untuk mengembangkan program-program aplikasi di bidang telekomunikasi, finansial atau bisnis dan sistem operasi. Bahkan sampai saat ini, pembuatan program-program untuk permainan komputer (game) sebagian besar masih menggunakan bahasa C/C++.

Menurut Bjarne Stroustrup (pencipta C + + ) , alasan mengapa C diambil sebagai bahasa dasar dari pembentukan bahasa C + + adalah sebagai berikut:

• Dapat dihubungkan dengan bahasa tingkat rendah • Berjalan di manapun dan untuk masalah apapun • Berjalan mulus dalam sistem operasi UNIX

(4)

1.3 Konsep Kompilasi dan Eksekusi Program

Sebelum melangkah

lebih jauh dengan pembentukan program C + + , maka sebaiknya kita mengetahui terlebih dahulu konsep dari sebuah kompilasi dan eksekusi program di dalam C/C+ + . Berikut ini gambar yang meng-ilustrasikan proses kom-pilasi dan eksekusi prog-ram di dalam C/C + + .

1.3.1 Preprocessor

Mula-mula kode program akan dimasukkan ke bagian preprosesor, yaitu yang diawali dengan tanda # (pound) dan menghasilkan file yang akan dilewatkan ke dalam kompiler. Bebe-rapa preprosesor terse-but diantaranya adalah sebagai berikut.

• #include • # define • #ifdef • dan Iain-lain

Pembahasan lebih lanjut mengenai preprosesor ini dapat Anda lihat pada bab preprocessor dj'recnVe.

kode program (source code)

library •• preprosesor i kompiler • kode assembly assembler ; kode objek link editor 1F File EXE Pemrograman C++

1.3.2 Kompiler C++

Kompiler akan menerjemahkan kode program yang telah dilewatkan oleh preprosesor ke dalam bahasa assembly.

1.3.3 Assembler

Assembler menerima keluaran dari kompiler C + + dan akan membuat sebuah kode objek. Jika dalam kode program kita tidak menggunakan fungsi-fungsi yang terdapat pada library lain, maka kode objek ini akan langsung dieksekusi menjadi file EXE.

1.3.4 Link Editor

Bagian ini dikerjakan jika kode program yang kita buat menggunakan fungsi-fungsi luar yang disimpan dalam suatu library lain. Link Editor akan mengkombinasikan kode objek dan library yang ada untuk menjadikan sebuah file EXE.

1.4 Kerangka Program C++

Setiap program yang ditulis dalam bahasa C/C + + pasti akan memiliki sebuah fungsi utama dengan nama main ( ) . Selanjutnya jika kita ingin mendefinisikan fungsi-fungsi lain maka kita akan melakukannya di luar fungsi utama tersebut. Dalam C+ + , kode yang dibaca adalah kode-kode yang terdapat pada fungsi utama. Jika ternyata terdapat pemanggilan fungsi lain, maka program akan mencari nama fungsi tersebut untuk dieksekusi. Setelah mengeksekusi fungsi tersebut, maka program akan kembali ke dalam fungsi utama, begitu seterusnya.

Sebagai bahan perbandingan, di bawah ini akan diberikan kerangka umum yang ditulis dalam bahasa C dan C+ + . Maksudnya agar Anda dapat membedakan mana yang harus dilakukan dan mana yang sebaiknya ditinggalkan dalam membuat program di dalam C+ + . Berikut ini kerangka umum dari program yang ditulis dalam bahasa C,

(5)

^include <stdio.h> // Prototype fungsi

tipe_data nama_fungsil{parameterl, parameter2/

tipe_data nama_fungsi2(parameter!, parameter2,

// Fungsi utama int main(void) {

Statemen_yang_akan_di lakukan; return 0;

// Implementasi fungsi

tipe_data nama_fungsil (parameterl, parameter2, Statemen_yang,_akan__dilakukan ;

tipe_data nama_£ungsi2 (parameterl, parameter2, S t a t emen_y ang_akan_di 1 akukan ;

Perhatikan kata kunci void di atas, di dalam bahasa C itu masih banyak digunakan, namun di dalam program C+ + sebaiknya hindari penggunaannya, karena hal itu merupakan redundan. Sedangkan nilai 0 pada statemen return 0 di atas berfungsi untuk mengembalikan nilai ke sistem operasi. Prototype di atas bersifat opsional, artinya kita juga diizinkan untuk mendefinisikan fungsi-fungsi sebelum menulis fungsi utama tanpa menuliskan prototype. Selain bentuk di atas kita juga diizinkan untuk

menuliskan fungsi utama seperti sintaks di bawah ini.

void main ( } {

, Statemen_yang_akan_di lakukan;

Sintaks di atas berlaku juga untuk bahasa C+ + . Namun di dalam buku ini, sintaks yang akan digunakan untuk menuliskan fungsi utama adalah sebagai berikut.

int m a i n ( ) {

Staternen_yang_akan_dilakukan; return 0;=

Adapun kerangka lengkap dari program yang ditulis dalam C+ + adalah seperti terlihat di bawah ini.

^include <iostream.h>

Pemrograrnan O+

// Prototype fungsi

tipe_data nama_fungsil{parameter!, parameter2, tipe_data nama_fungsi2(parameterl, parameter2,

// Fungsi utama int main() t

Statemen_yang_akan_dilakukan;

return 0;

// Implementasi fungsi

tipe_data nama_fungsil{parameterl, parameter2, ...) { Statemen_yang_akan_dilakukan;

tipe__data nama_fungsi2{parameterl, parameter2, Statemen_yang_akan_dilakukan;

Perlu sekali untuk diperhatikan bahwa file header yang digunakan di dalam bahasa C + + untuk proses input/output (I/O) standar adalah iostream.h, sedangkan di dalam bahasa C file header yang digunakan untuk keperluan yang sama adalah stdio.h.

Untuk lebih memahaminya, berikut ini dituliskan dua buah program sederhana yang masing-masing ditulis di dalam bahasa C dan C+ + .

1.4.1 Program yang Ditulis dalam Bahasa C

Kode Program 1-1

^include <stdio.h>

int main(void) ( int. X;

/* Menampilkan teks untuk informasi */ printf{"Masukkan sebuah bilangan bulat : ");

/* Membaca nilai dari keyboard dan menyimpannya

(6)

ke dalam variabel X */ scanf ("%d", &X) ;

/* Menampilkan nilai yang telah dimasukkan */ printf ( "Bilangan yang telah Anda masukkan adalah

return 0;

Contoh hasil yang akan diberikan dari program di atas adalah sebagai berikut :

Masukkan sebuah bilangan bulat: 10

Bilangan yang telah Anda masukkan adalah 10

1.4.2 Program yang ditulis dalam bahasa C++

Kode Program 1-2 ^include <iostream.h>

int main() { int X;

// Menampilkan teks untuk informasi cout«"Masukkan sebuah bilangan bulat : "

,-// Mewbaca nilai dari keyboard dan menyimpannya // ke dalam variabel X

cin»X; =

// Menampilkan nilai yang telah dimasukkan

cout«"Bilangan yang telah Anda masukkan adalah *«X;

return 0;

Contoh hasil yang akan diberikan dari program di atas adalah sebagai berikut:

Masukkan sebuah bilangan bulat: 10

Bilangan yang telah Anda masukkan adalah 10

Pemrograman

1.5 File .H (Header File)

File header (file dengan ekstensi .h) adalah file yang berisi fungsi-fungsi dan telah dikompilasi sebelumnya. Apabila kita akan menggunakan suatu file header tertentu, maka kita akan mendaftarkannya melalui directive #include. Sebagai contoh, di dalam kode program, kita akan menggunakan cout dan cin. Sedangkan kita tahu bahwa keduanya terdapat dalam file header iostream. h, maka kita akan melakukan pendaftaran dalam program kita melalui sintaks berikut. ^^^^^^^^^^^^^^^^^^^

^include <iostream.h>

1.6 C++ Klasik dan C++ Modern

Pada bagian ini kita akan membahas sekilas tentang perbedaan yang terdapat dalam kompiler C + + lama (klasik) dengan C+ + modern (C + + yang telah memenuhi standar ANSI/ISO). Perbedaan yang paling tampak adalah pada kompiler C + + lama masih menggunakan namespace global, sedangkan pada C + + modern yang digunakan adalah namespace std. Hal inilah yang menyebabkan terdapatnya sedikit perbedaan penulisan antara C++ lama dan standar. Untuk lebih memahaminya, berikut ini kerangka umum penulisan program yang digunakan dalam C + + lama dan C + + standar.

1 .6.1 Pada Kompiler C++ Lama

tinclude <iostream.h> int main( } {

return 0;

(7)

1.6.2 Pada Kompiler C++ Standar ^^

^include <iostream >

using namespace atd;

int rnain() t return 0; I

Seperti yang kita lihat bahwa pada C++ standar penulisan file

header iostream sudah tidak diikuti lagi dengan ekstensi .h.

Dalam buku ini kita akan selalu menggunakan bentuk kedua, yaitu bentuk yang telah memenuhi standar penulisan kode untuk C + + standar. Namun perlu diperhatikan bahwa untuk menuliskan kode menggunakan bentuk kedua, diperlukan pula kompiler C + + yang telah mendukung semua fitur yang terdapat dalam C + + Standar. Maka dari itu, buku ini menyertakan CD yang berisi kompiler C/C++ yang dilengkapi dengan IDE (Integrated Development

Environment) yang mudah untuk digunakan. Adapun cara installasi

dari kompiler tersebut dapat Anda lihat pada Lampiran F - Instalasi

dan Penggunaan MinGW Developer Studio.

Pemrograman

BAB

2

KOMENTAR, IDENTIFIER

DAN TIPE DATA

2.1 Pendahuluan

Pada setiap pemrograman, kita tidak dapat terlepas dari penggunaan tipe data dan pengenal atau pengidentifikasi

(identifier). Kehadiran dari dua elemen ini sangatlah penting,

walaupun sebenarnya untuk program yang sangat sederhana terkadang kita tidak perlu menggunakan identifier. Sebagai contoh untuk program yang menampilkan sebuah teks dan bilangan, misalnya seperti program di bawah ini.

Kode Program 2-1 ftinclude <iostrearn>

using namespace std; i n t m a i n ( )

. cout«"Teks ini digunakan sebagai contoh"«endl; cout«2+5;

return 0; }

Statemen cout di atas berfungsi untuk menampilkan keluaran (output) ke layar monitor. Statemen ini hanya akan dikenali jika kita mendaftarkan library iostream yang tersimpan dalam namespace

(8)

std. Hal ini akan kita pelajari lebih jauh pada bab Input/Output (I/O). Sedangkan endl berfungsi untuk memindahkan cursor ke baris baru. Dalam bab ini kita hanya akan membahas mengenai beberapa elemen-elemen dasar yang diperlukan dalam pemrograman C + + , seperti: komentar, pengenal (identifier) dan tipe data.

2.2 Komentar

Dalam proses pengembangan sebuah program, tentunya kita disibukkan dengan penulisan sintaks-sintaks yang begitu banyak dan 'tampak' rumit sehingga akan sulit untuk dipahami oleh orang lain. Untuk menangani masalah ini, sebagai programmer kita sebaiknya menambahkan komentar untuk menjelaskan algoritma dan keterangan-keterangan yang diperlukan dalam program. Hal ini akan membantu dalam proses pemeliharaan (maintenance) dari program yang telah kita buat.

Komentar program didefmisikan sebagai bagian dari sintaks program yang tidak ikut dibaca pada saat proses kompilasi. Dengan kata lain, komentar tidak akan mempengaruhi jalannya program. Dalam bahasa C+ + , komentar dibagi menjadi dua jenis yaitu komentar yang hanya terdiri dari satu baris dan komentar yang terdiri dari beberapa baris. Berikut ini penjelasan dari keduanya.

2.2.1 Menggunakan Tanda //

Tanda ini digunakan untuk menuliskan komentar yang banyaknya hanya satu baris. Gaya penulisan komentar seperti ini hanya terdapat pada C + + , sedangkan pada bahasa C tidak akan dikenali. Jika kita menggunakan tanda ini untuk menuliskan komentar yang lebih dari satu baris, maka teks di belakang tanda // tetap menjadi komentar. Namun, teks yang terdapat pada baris selanjutnya akan tetap dibaca oleh kompiler sehingga akan menyebabkan terjadinya kesalahan (error) pada saat proses kompilasi program. Berikut ini adalah contoh penggunaannya.

// Ini adalah komentar untuk satu baris

Namun perhatikan, bagaimana jika komentar di atas dituliskan seperti berikut:

Pemrograman

// ini adalah komentar untuk satu baris

penulisan di atas akan menyebabkan kesalahan, karena teks "untuk satu baris" tidak akan dianggap sebagai komentar melainkan akan dianggap sebagai tiga buah identifier yang tidak dikenali.

Namun sebaliknya, kita juga hams hati-hati dalam menggunakan tanda ini. Ingat, tanda ini tidak dapat digunakan untuk komentar yang bersifat sisipan. Misalnya pada potongan sintaks program di bawah ini.

int // Mendeklarasikan variabel berupa bilangan X;

Penulisan seperti ini akan menyebabkan kesalahan karena X; akan dianggap sebagai komentar dan tidak berperan sebagai identifier. Seharusnya kita menuliskan komentar tersebut seperti pada sintaks berikut:

int X; // Mendeklarasikan variabel berupa bilangan

2.2.2 Menggunakan Tanda /*...*/

Berbeda dengan tanda //, tanda ini dapat digunakan untuk menuliskan komentar yang banyaknya satu baris atau lebih. Komentar dimulai dari tanda /* sampai ditemukan tanda */. Contoh penggunaannya dapat dilihat di bawah ini. ^^^^^

Ini adalah komentar,yang banyaknya satu baris */ Ini adalah komentar panJang

yang banyaknya

lebih dari satu baris */

Dengan menggunakan tanda ini, kita juga dapat menuliskan komentar yang bersifat sisipan. Misalnya pada penulisan sintaks di bawah ini.

int /* file ini digunakan untuk proses I/O pada .C++ */ X;

Namun perlu diperhatikan bahwa kita tidak dapat melakukan komentar yang beruntun (nested comment), misalnya jika kita menuliskan berikut:

/* ini adalah /* contoh komentar */ beruntun */

Jika kita amati penulisan komentar di atas, secara logika mungkin bisa dikatakan 'benar', namun jika ditinjau dari sisi program, hal ini jelas 'salah'. Alasannya adalah karena tanda */ yang ditemukan pertama kali akan dianggap sebagai penutup tanda /* pertama.

(9)

Dengan alasan ini, maka untuk kasus di atas yang dianggap sebagai komentar adalah teks "Ini adalah /* contoh

komentar", sedangkan teks yang terdapat setelah tanda */

pertama, yaitu teks "beruntun * / " akan tetap dianggap sebagai bagian program dan akan dibaca pada saat proses kompilasi. Hal ini tentu akan menyebabkan kesalahan, sehingga Anda harus berhati-hati dalam menggunakan komentar sisipan.

2.3 Identifier

Identifier adalah suatu pengenal atau pengidentifikasi yang kita deklarasikan agar kompiler dapat mengenalinya. Identifier sendiri dapat berupa nama variabel, konstanta, fungsi, kelas, template maupun namespace. Namun dalam hal ini kita hanya akan membahas identifier yang berperan sebagai variabel dan konstanta saja, sedangkan bentuk identifier lainnya akan kita bahas secara khusus dalam bab tersendiri.

Identifier yang berperan sebagai variabel dan konstanta berfungsi untuk menampung sebuah nilai yang digunakan dalam program. Indentifikasi ini dilakukan untuk mempermudah proses penanganan data atau nilai, misalnya untuk memasukkan dan menampilkan nilai. Sebagai gambaran, di bawah ini adalah sebuah contoh program yang menggunakan dua buah identifier di dalamnya.

Kode Program 2-2 ^include <iostream> using namespace std; int main ( ) t char Teks [20] ,-int X;

cout«"Masukkan sebuah kata : "; cin»Teks; cout«"Masukkan sebuah angka : "; cin»X;

cout«Teks«endl; // bisa ditulis dengan cout«X«'\n' cout«X;

return 0 ?

Pada program di atas kita mempunyai dua buah identifier, yaitu Teks dan X. Pada saat program dijalankan, identifier tersebut akan digunakan untuk menyimpan nilai yang dimasukkan dari papan

Pemrograman

kunci (keyboard). Dalam C + + , proses penyimpanan nilai seperti ini dinyatakan dengan statemen cin. Berbeda dengan statemen cout yang menggunakan operator «, pada statemen cin operator yang digunakan adalah operator ». Dalam menentukan atau membuat identifer dalam program, kita harus memperhatikan hal-hal berikut:

» Karena bahasa C + + bersifat case sensitive, maka C + + juga akan membedakan variabel yang ditulis dengan huruf kapital dan huruf kecil. Misalnya variabel A tentunya akan berbeda dengan variabel a.

• Identifier tidak boleh berupa angka atau diawali dengan karakter yang berupa angka. Contoh :

long 1000; // SALAH karena identifier berupa angka long 2X; // SALAH karena identifier diawali

// oleh karakter berupa angka

long X2; // BENAR karena identifier tidak diawali // oleh angka

• Identifier tidak boleh mengandung spasi. Contoh :

int Bilangan Bulat; // SALAH, identifier mengandung // spasi

int Bilangan__Bulat; // BENAR int BilanganBulat; // BENAR int _BilanganBulat; // BENAR

• Identifier tidak boleh mengunakan karakter-karakter simbol (#, @, ?, !,$, dll). Contoh:

long I s a t u ; // SALAH long dua@; / / SALAH 'long tittga; // SALAH

• Identifier tidak boleh menggunakan kata kunci (.keyword) yang terdapat pada C+ + . Contoh :

long break; // SALAH karena menggunakan kata kunci // break

long return; // SALAH karena menggunakan kata kunci // return

Nama identifier sebaiknya disesuaikan dengan kebutuhannya, artinya jangan sampai orang lain bingung hanya karena salah dalam penamaan identifier.

Sebisa mungkin, hindarilah penggunaan nama identifier yang sama dengan identifier yang digunakan oleh C+ + .

Berdasarkan jenisnya, identifier sendiri dibagi ke dalam dua bagian yaitu konstanta dan variabel. Adapun penjelasan lebih detilnya dapat Anda lihat pada sub bab di bawah ini.

(10)

2.3.1 Konstanta

Konstanta adalah jenis identifier yang bersifat konstan atau tetap, artinya nilai dari konstanta di dalam program tidak dapat diubah. Konstanta berguna untuk menentukan nilai yang merupakan tetapan, misalnya nilai pi (77), kecepatan cahaya dan lainnya. Dengan mendefinisikan konstanta yang bersifat global, maka kita dapat menggunakannya di setiap bagian program.

Dalam C + + , terdapat dua buah cara untuk membuat sebuah konstanta, yaitu dengan menggunakan preprocessor directive #def ine dan menggunakan kata kunci const.

a. Menggunakan Preprocessor Directive tidefine

Kita dapat menggunakan makro untuk mendefinisikan sebuah konstanta, yaitu dengan menggunakan preprocessor directive #define. Untuk mengetahui lebih jauh tentang manfaat penggunaan konstanta, perhatikan program di bawah ini.

Kode Program 2-3 ^include <iostream> using namespace std; int main() { int A[5] for (int C=0; C<5; C++) { A[C] = C * 10; ) for (int c=0; c<5; C++) ( cout«A [ c ] «endl ; return 0 ; , ••BHI^HiH

Anda bingung? Jika Anda belum memahami maksud dari sintaks program di atas, itu 'wajar' dan Anda tidak perlu cemas karena semuanya akan kita pelajari pada bab-bab selanjutnya dalam buku ini. Namun, yang perlu Anda perhatikan di sini adalah bilangan 5 di atas. Bilangan tersebut muncul beberapa kali dalam program, hal ini akan merepotkan jika temyata kita ingin melakukan perubahan terhadap bilangan tersebut dengan bilangan yang lain,

Pemrograman C++

misalnya 10. Jika kita menggunakan sintaks di atas maka kita hams melakukan perubahan terhadap semua bilangan 5 yang ada dengan bilangan 10. Untuk itu, dalam kasus ini sebaiknya kita menjadikan bilangan 5 tersebut ke dalam suatu konstanta sehingga jika terjadi perubahan kita hanya melakukan perubahan nilai terhadap konstantanya saja. Berikut ini program yang merupakan program perbaikan dari program sebelumnya. Kode Program 2-4 #include <iostream> tdefine MAX 5; using namespace std; int main() { int A[MAX]; for (int C=0; A[C] = C * C<MAX; C++) 10;

for (int C=0; c<MAX; C + + ) { cout«A[c]«endl;

return 0;

b. Menggunakan Kata Kunci const

Selain dari cara di atas, dalam C++ kita dapat mendefinisikan sebuah konstanta dengan menggunakan kata kunci const. Berikut ini adalah bentuk umumnya.

const tipe_data nama^konstanta = nilai_tetapan;

Contoh pendeklarasian konstanta-konstanta adalah sebagai berikut:

const double PI = 3 . 1 4 ;

Untuk dapat lebih memahaminya, berikut ini dituliskan sebuah sintaks program yang merupakan implementasi dari penggunaan kata kunci const.

(11)

Kode Program 2-5

tfinclu.de <iostream> using namespace std; const int MAX = 5; int mainO {

int A [ M A X ] ;

for {int C=0; C<MAX; C + + ) { A [ C ] = C * 10; } for ( i n t c=0; c<MAX; C + + ) { cout«A [c] «endl ; } return Q ;

2.3.2 Variabel

Berbeda dengan konstanta yang mempunyai nilai tetap, variabel adalah sebuah identifier yang mempunyai nilai dinamis. Arti kata 'dinamis' di sini bermaksud bahwa nilai variabel tersebut dapat kita ubah sesuai kebutuhan dalam program. Berikut ini adalah bentuk umum pendeklarasian sebuah variabel dalam C + +.

tipe__data nama_variabel;

Sebenarnya bentuk umum ini sudah dijelaskan pada bagian awal yaitu pada bagian yang menerangkan pendeklarasian identifier, hanya di sini lebih dikhususkan lagi, yaitu hanya untuk variabel. Jika kita akan mendeklarasikan beberapa variabel yang bertipe sama, maka kita dapat menyingkat penulisannya dengan menggunakan bentuk umum di bawah ini.

tipe_data nama_variabell, nama_variabe!2, naraa_variabe!3; Contoh :

int A, B, C;

Sedangkan jika kita ingin rnelakukan inisialisasi, maka sintaksnya dapat di ganti dengan menggunakan sintaks berikut:

int A=10, B=15, C=25;

Pemrograman

a. Variabel Global

Jika kita sedang membuat program dan kita membutuhkan sebuah variabel yang dapat dikenali oleh semua lingkungan dalam program kita, maka kita harus mendefinisikan variabel tersebut sebagai variabel yang bersifat gobal. Kita telah mengetahui bahwa program dalam bahasa C + + selalu terdapat fungsi utama dengan nama m a i n ( ) . Jika kita mendeklarasikan sebuah variabel di luar fungsi, maka dengan sendirinya kompiler akan menganggap variabel tersebut sebagai variabel global. Berikut ini adalah contoh program yang rnenunjukkan penggunaan variabel yang bersifat global.

Kode Program 2-6

^include <iostream>

using namespace std;

int A; // Variabel A adalah variabel global // karena dideklarasikan di luar fungsi

// Membuat fungsi utama int main() (

A = 10; // Memasukkan (assign) nilai ke dalam It variabel

cout«"Nilai A = "«A«endl;

return 0;

Variabel Lokal

Berbeda sekali dengan variabel global, variabel lokal adalah variabel yang hanya dikenali oleh suatu fungsi saja, artinya tidak dikenal oleh lingkungan luar di dalam program yang kita buat. Adapun bentuk pendeklarasian variabel yang bersifat lokal ini harus berada dalam lingkup fungsi yang dimaksud. Berikut ini contoh pendeklarasian variabel yang bersifat lokal.

Kode Program 2-7

^include <iostream> using namespace std;

(12)

// Membuat fungsi utama int mainO t

int A; // Variabel A bersifat: lokal dan hanya dikenali

// oleh fungsi main()

A = 10; // Memasukkan (assign) nilai ke dalam // variabel

cout«"Nilai A = *«A«endl;

return 0; )

Jika kita menambahkan fungsi lain di dalam program, dan kita mengakses variabel A yang telah dideklarasikan di dalam fungsi main ( } , maka program tidak akan dapat dijalankan karena fungsi baru yang kita tambahkan tentu tidak dapat mengenali variabel A di atas. Hal ini merupakan bukti nyata bahwa variabel A di atas bersifat lokal.

c. Inisialisasi Variabel

Dalam penulisan program ada saatnya kita hams melakukan inisialisasi nilai terhadap sebuah variabel yang dideklarasikan. Artinya jika kita tidak melakukan pengisian nilai terhadap variabel tersebut, maka variabel masih berisi nilai default. Hal ini sebenarnya sudah disinggung di atas, namun di sini akan kita bahas kembali melalui contoh-contoh program. Berikut ini contoh program yang tidak melakukan inisialisasi nilai awal.

Kode Program 2-8

#include <iostream>

using namespace std;

int main(} { int X;

// Menampilkan nilai X sebelum

// dilakukan pemasukkan nilai (assignment)

cout«"Nilai X sebelum dilakukan assigment : X = 10;

cout«"Nilai X sesudah dilakukan assignment

return

0,-''«endl;

n«endl;

Pemrograman O+

Hasil dari program di atas adalah sebagai berikut Nilai X sebelum assignment :0

Nilai X setelah assignment :10

Pada hasil di atas dapat kita lihat bahwa jika kita tidak melakukan inisialisasi dan kita sudah memanggil variabel tersebut, maka nilai yang akan ditampilkan oleh kompiler adalah nilai 0. Berikut ini jika program di atas ditambahkan proses inisialisasi. Kode Program 2-9 ^include <iostream> using namespace std; int main(} { int X = 5;

cout«"Nilai X sebelum dilakukan assignment : u«endl;

X = 10;

cout«"Nilai X sesudah dilakukan assignment : *«endl;

return 0;

Hasil dari program di atas adalah sebagai berikut: Nilai X sebelum assignment : 5

Nilai X setelah assignment ; 10

d. Variabel Statis

Variabel statis adalah variabel yang menempati ruang memori komputer secara permanen, artinya nilai terakhir dari variabel ini akan terus disimpan. Dalam C + +, untuk menyatakan variabel statis adalah dengan menggunakan kata kunci static. Adapun bentuk umum pendeklarasiannya adalah seperti yang tampak di bawah ini.

static tipe_data nama_variabel;

(13)

Seperti halnya variabel biasa, variabel statis ini juga dibagi ke dalam dua jenis, yaitu variabel statis lokal dan variabel statis global.

I . Variabel Statis Lokal

Variabel statis lokal ini diterapkan di dalam suatu fungsi, sehingga nama variabelnya hanya akan dikenali di dalam fungsi saja. Namun perlu diperhatikan bahwa nilai terakhir yang dihasilkan akan terus disimpan. Dengan demikian setiap pemanggilan fungsi yang sama pasti akan memberikan hasil yang berbeda. Untuk mengetahui lebih jauh mengenai variabel statis, perhatikanlah dua program di bawah ini.

a. Menggunakan variabel biasa

Kode Program 2-10 ^include <iostream>

using namespace std;

// Membuat fungsi dengan nama contoh int contohO {

int A = 0; // Mendeklarasikan variabel biasa

A = A + 10; return A; int main(} ( int x, y, 2; x = content) y = contohO z = contoh() // Mendeklarasikan variabel x, y // dan z

// Memanggil fungsi contohO // untuJc yang pertama kali

// Memanggil fungsi contohO

// untuk yang kedua kali // Memanggil fungsi contohO // untuk yang ketiga kali

// Menampilkan nilai yang telah diproses di dalam // fungsi

cout«"Nilai fungsi pada pemanggilan pertama : "«x«endl;

cout«"Nilai fungsi pada pemanggilan kedua : "«y«endl;

cout«"Nilai fungsi pada pemanggilan ketiga :

"«z«endl;

return 0;

Pemrograman C++

Hasil yang akan diperoleh dapat dilihat di bawah ini.

Nilai fungsi pada pemanggilan pertama : 10 Nilai fungsi pada pemanggilan kedua : 10 Nilai fungsi pada pemanggilan ketiga : 10

b. Menggunakan variabel statis

Kode Program 2-11 ^include <iostream>

using namespace std;

// ATembuat fungsi dengan nama contoh int contohO { // Mendeklarasikan static int A = A = A + 10; return A; // Fungsi utama int main() { int x, y, z; x = contoh(J; y = contohO ; 2 - contoh(};

// variabel statis lokal

// Mendeklarasikan // variabel x, y dan z // Memanggil fungsi contohO // untuk yang pertama kali //Memanggil fungsi contohO // untuk yang kedua kali // Memanggil fungsi contohO //untuk yang ketiga kali

// Menampilkan nilai yang telah diproses di dalam // fungsi

cout«"Nilai fungsi pada pemanggilan pertama :

"«x«endl,-cout«"Nilai fungsi pada pemanggilan kedua : "«y«endl;

cout«"Nilai fungsi pada pemanggilan ketiga : "«z«endl;

return 0;

Hasil yang akan diperoleh dapat dilihat di bawah ini.

Bab 2: Komentar, Identifier, dan Tipe Data

(14)

Nilai fungsi pada pemanggilan pertama Nilai fungsi pada pemanggilan kedua Nilai fungsi pada pemanggilan ketiga

10 20 30

2.

Jika kita amati hasil program di atas, nilai dari setiap pemanggilan fungsi akan memberikan hasil yang berbeda. Konsepnya sederhana, yaitu pada pemanggilan fungsi yang pertama kali nilai variabel A masih bernilai 0 (sesuai dengan inisialisasi). Fungsi akan menambahkan nilai tersebut dengan 10, maka nilai yang dikembalikan fungsi contohf) adalah 10. Sampai di sini, karena variabel A adalah variabel statis maka pada saat pemanggilan fungsi yang kedua, variabel A masih menyimpan nilai 10, bukan 0. Dengan demikian pemanggilan fungsi kedua tentu akan menambahkan nilai A dengan nilai 10, sehingga nilai yang dikembalikan adalah 20, begitu seterusnya. Variabel Statis Global

Dalam memogram dengan bahasa C + + , kita diizinkan untuk melakukan pembuatan fungsi-fungsi dalam file yang terpisah dari program utama. Untuk kasus-kasus tertentu dimana variabel statis lokal tidak dapat digunakan, kita dapat membuat file terpisah yang mempunyai variabel statis global. Sebagai gambaran dari pemahaman materi ini, perhatikanlah contoh penggunaannya dalam potongan sintaks program di bawah ini.

static int A; // Mendeklarasikan variabel statis global

void set_NilaiA(int aa} ; int get_NilaiA( ) ;

void set_NilaiA(int aa) A = aa; int get_NilaiA() A = A + 10; return A; 1 Pemrograman C+ e. Variabel Register

Tidak seperti variabel biasa yang berada di memori, variabel register ini akan disimpan di register CPU. Dengan demikian, untuk mengisikan atau mengubah nilai dari variabel register tentunya tidak memerlukan akses memori sehingga prosesnya juga akan lebih cepat. Dalam C + + , variabel register hanya dapat diisi oleh tipe data char, int dan pointer saja serta hanya boleh dideklarasikan sebagai variabel lokal ataupun parameter dari sebuah fungsi. Untuk mendeklarasikan variabel register, kita harus mengunakan kata kunci register. Bentuk umum dari pendeklarasian variabel register adalah sebagai berikut :

register tipe_data nama_variabel;

Berikut ini adalah contoh program yang menggunakan variabel register.

Kode Program 2-12 ^include <iostream>

using namespace std;

// Membuat fungsi untuk menghitung M*

int Hitung (register int M, register int e) { register int temp;

temp = 1; for ( ; e; e--) { temp = temp * M; // Fungsi utama int main() { int X; X = Hitung(5, 3); cout«X«endl; // Melakukan perhitungan 53 return 0;

Jika Anda masih bingung dengan kehadiran struktur pengulangan for di atas, Anda dapat lihat lebih detail pada bab pengulangan.

(15)

2.4 Tipe Data

Tipe data berfungsi untuk merepresentasikan jenis dari sebuah nilai yang terdapat dalam program. Sebagai contoh kita mempunyai suatu data dengan nilai 2, maka 2 termasuk ke dalam tipe bilangan bulat. Begitupun dengan data yang bernilai "Rahasia C+ + ", maka data tersebut dikategorikan ke dalam tipe teks (string], Kesalahan dalam menyebutkan tipe data akan menyebabkan program yang kita buat tidak dapat dijalankan. Oleh karena itu, kita harus pandai dalam menentukan tipe data yang akan digunakan sesuai kebutuhan program yang kita buat. Dalam bahasa C + + , tipe data dibagi menjadi tiga bagian besar yaitu tipe dasar, tipe bentukan dan tipe enumerasi.

2.4.1 Tipe Data Dasar

Dalam C + + terdapat beberapa tipe data dasar yang telah didefinisikan, yaitu yang digolongkan ke dalam tipe bilangan bulat

(integer], bilangan riil (floating-point], tipe logika (boolean], tipe

karakter / teks (character / string]. Tipe-tipe tersebut adalah tipe yang siap digunakan tanpa adanya proses manipulasi terlebih dahulu.

a. Tipe Bilangan Bulat

Tipe data ini digunakan untuk data-data angka yang tidak mengandung angka di belakang koma. Misalnya 21, 3, 78 dan sebagainya. Tipe data yang termasuk ke dalam kategori ini adalah seperti yang terlihat pada tabel di bawah ini.

Tipe Data int unsigned int signed int short int unsigned short int Ukuran {dalam bit) 16atau32 16atau32 16atau32 16 16 Rentang -32.768 sampai 32.767 atau -2,147,483,648 sampai 2,147,483,647 0 sampai 65.535 atau 0 sampai 4,294,967,295 Sama seperti int -32.768 sampai 32.767 0 sampai 65.535 Pemrograman signed short int long int signed long int unsigned long int 16 32 32 32

Sama seperti short int -2.147.483.648 sampai 2.147.483.647

Sama seperti long int

0 sampai 4.294.967.295

Berikut ini contoh program yang menggunakan tipe bilangan bulat di dalamnya.

Kode Program 2-13

#include <iostream>

using namespace std;

int main() {

int x; // Mendeklarasikan variabel x dengan tipe data

// int

x = 3; // Melakukan assigment terhadap variabel x cout«"Nilai x = "«x;

return 0;

Hasil yang diperoleh dari program di atas adalah sebagai berikut:

Nilai x - 3

b. Tipe Bilangan Riil

Tipe ini adalah tipe yang merepesentasikan data-data bilangan yang mengandung angka di belakang koma, misalnya 3.78, 21.03, dan banyak lagi yang lainnya. Adapun tipe data yang termasuk ke dalam kategori ini adalah seperti yang ditunjukkan pada tabel di bawah ini.

Tipe Data float double long double Ukuran (dalam bit) 32 64 80 Rentang

1.2E-38 sampai 3.4E+38 2.3E-308 sampai 1.7E+308 3.4E-4932to1.1E+4932

Presisi 6 digit presisi 15 digit presisi 19 digit presisi

(16)

Berikut ini contoh program yang menggunakan tipe bilangan desimal di dalamnya. Kode Program 2-14 ^include <iostream> using namespace std; int main() {

double y; // Mendeklarasikan variabel y dengan tipe

// data double

y = 222.134; // Melakukan assigment terhadap variabel

// x

cout«"Nilai y = "«x; return 0;

J

Hasil yang diperoleh dari program di atas adalah sebagai berikut :

Nilaiy = 222.134

c. Tipe Logika

Tipe ini merepresentasikan data-data yang hanya mengandung dua buah nilai, yaitu nilai logika (boolean). Nilai logika itu sendiri hanya terdiri dari nilai benar (direpresentasikan dengan nilai selain nol, biasanya nilai 1) dan salah (direpresentasikan dengan nilai 0). Untuk sebagian kompiler C + + tertentu yang telah memenuhi standar ANSI/ISO, tipe ini telah dinyatakan dalam tipe bool. Dalam pemrograman, nilai ini umumnya lebih dikenal dengan nilai true (benar) dan false (salah).

d. Tipe Karakter / String

Tipe ini merepresentasikan data-data yang berupa karakter. Tipe data ini dinyatakan dengan tipe char, sedangkan untuk string (=kumpulan karakter) dinyatakan sebagai pointer dari tipe char, yaitu yang dituliskan dengan char*.

Pemrograman C++

Sebagai contoh adalah karakter 'A', 'a', ' ', '!', '#' dan sebagainya merupakan tipe char, sedangkan "Mengungkap", "Rahasia", "C + + ", "Budi", "Raharjo" adalah contoh dari tipe char*. Untuk lebih memudahkan Anda dalam membedakan tipe karakter dan string adalah tanda yang mengapitnya. Dalam C+ + , tipe karakter diapit oleh tanda petik tunggal ('), sedangkan tipe string diapit oleh tanda petik ganda ("). Adapun tipe data dalam kategori ini yang didefinisikan oleh ANSI/ISO C++ Standard adalah seperti yang terlihat pada tabel di bawah ini.

Tipe Data char unsigned char signed char Ukuran (dalam b/i) 8 8 8 Rentang

-1 28 sampai 1 27 atau 0 sampai 255 0 sampai 255

-128 sampai 127

Berikut ini adalah program yang menunjukkan penggunaan tipe data char dan char*.

Kode Program 2-15

^include <iostream> using namespace std; int main() {

// Mendeklarasikan variabel Karakter dengan nilai ;'A' char Karakter = 'A';

// Mendeklarasikan variabel Teks dengan nilai "Kata1

char* Teks = "Kata"; char TEKS[10] = "Coba"; cout«Karakter«endl ; cout«Teks«endl ; cout«TEKS«endl ; return 0;

l^HHHHHHlBHHi

Hasil yang diperoleh dari program di atas adalah sebagai berikut :

(17)

A Kata Coba

2.4.2 Tipe Data Bentukan

Tipe data bentukan adalah tipe data yang dibuat sendiri sesuai kebutuhan dalam program yang akan kita buat. Tipe ini lebih dikenal dengan sebutan dalam bahasa asing, yaitu user defined types. Adapun yang termasuk ke dalam tipe bentukan adalah array (larik), struktur dan enumerasi. Jika Anda pernah memogram dengan bahasa Pascal, maka struktur ini dikenal dengan istilah rekaman (record).

a. Struktur

Sesuai dengan namanya, struktur adalah tipe data bentukan yang menyimpan lebih dari satu variabel bertipe sama maupun berbeda. Untuk membuat tipe data struktur dalam C+ + , kita harus mendeklarasikannya dengan menggunakan kata kunci struct. Jika Anda pernah mempelajari bahasa pemrograman PASCAL, maka istilah struktur ini lebih dikenal dengan istilah record (rekaman), serta bentuk pendeklarasiannya adalah dengan menggunakan kata kunci record.

Berikut ini bentuk umum pendeklarasian tipe data struktur di dalam C + + .

struct nama_struktur { tipe_data variabel 1 ; tipe_data variabel2j

Ingat, dalam pendeklarasian struktur kita harus mengakhirinya dengan tanda titik koma atau semicolon (;). Jika kita telah membuat tipe data bentukan baru yang berjenis struktur tentu kita akan menggunakannya di dalam pendeklarasian sebuah variabel. Pada saat itu, kita harus

melakukan pengaksesan terhadap isi dari struktur tersebut dengan menggunakan operator titik (.).

Sebagai contoh sederhana untuk menerangkan tipe data struktur adalah dengan melihat suatu objek, misalnya siswa. Kita tahu bahwa siswa pasti mempunyai NIS (Nomor Induk Siswa), nama, alamat serta data pribadi lainnya. Kasus ini dapat kita implementasikan ke dalam tipe struktur. Adapun contoh bentuk implementasinya adalah sebagai berikut :

// Membuat tipe struktur dengan nama SISWA struct SISWA {

char NIS [8] ;

char Nama [25] ; char Alamat [20] ; char Kata [15] ;

// Menggunakan tipe SISWA dalam mendeklarasikan variabel // A

SISWA A;

// Melakukan pengisian nilai terhadap variabel A A. NIS = "DOG96549";

A. Nama = "Budi Rahar jo" ; A. Alamat = "Gelatik 391"; A.Kota = "Bandung";

Untuk mengetahui lebih jauh mengenai struktur, perhatikan contoh program di bawah ini.

Kode Program 2-16 ^include <iostream> using namespace std; int main() { struct SISWA { char NIS [8] ; char Nama [25] ; char Alamat [20] ; char Kota[15] ;

SISWA A; // Mendeklarasikan variabel A yang // bertipe SISWA

A. NIS = "DOD98021"; A. Nama = "Arista";

(18)

A.Alamat = "Kopo"; A.Kota = "Bandung";

// Menampilkan nilai yang diisikan ke layar cout«A. NIS«endl ;

cout«A.Nama«endl; cout«A.Alamat«endl; cout«A.Kota«endl;

return 0;

Hasil yang diperoleh dari program di atas adalah sebagai berikut:

DOD98021 Arista Kopo Bandung

Dalam bahasa C + + , pedeklarasian variabel yang bertipe struktur dapat dituliskan langsung pada saat pendefinisan tipe struktur yang bersangkutan. Misalnya kita akan mendeklarasikan variabel A, B dan C yang bertipe SI SWA, maka penulisannya dapat dilakukan seperti di bawah ini.

// Membuat tipe struktur dengan narna SISWA dan // menggunakannya

// langsung untuk mendeklarasikan variabel A, B dan C struct SISWA { char NIS[8]; char Nama[25]; char Alamat[20] ; char Kota[15] ; } A, B, C;

b. Enumerasi

Tipe enumerasi adalah tipe data yang nilainya terbatas pada nilai-nilai yang telah didefinisikan saja. Tipe enumerasi digunakan untuk membentuk tipe data yang nilainya bersifat pasti. Misalnya untuk mendefinisikan tipe jenis kelamin, nama hari, warna primer dan sebagainya. Kita tahu bahwa jenis kelamin hanya terdiri dari pria dan wanita saja, maka Pemrograman C++

jenis kelamin dapat kita bentuk ke dalam tipe enumerasi. Dalam bahasa C+ + , untuk mendefinisikan tipe enumerasi adalah dengan menggunakan kata kunci enum. Berikut ini adalah bentuk umum untuk mendefinisikannya.

enum nama_tipe { nllai_l, nilai_2, ...};

Sebagai contoh, di bawah ini dituliskan contoh-contoh pendefinisian tipe enumerasi. .

enum JENIS_KELAMIN {Pria, Wanita};

enum HARI {Minggu, Senin, Selasa, Rabu, Kamis, Jumat, Sabtu);

enum WARNA_PRIMER {Merah, Biru, Hijau);

Berikut ini adalah contoh implementasinya di dalam program.

Kode Program 2-17

#include <iostream> * using namespace std; .

enum JENIS_KELAMIN { Pria, Wanita } int m a i n f } { , struct SISWA { char N I S [ 8 ] ; char Nama[20]; JENIS_KELAMIN gender; } A; A.NIS = "DQD98021"; A.Nama = "Arista"; A.gender = Wanita; cout«"NIS cout«"Nama cout«"Gender return 0; "«A.NIS«endl; " «A. Nama« endl ; "«A. gender«endl ;

Hasil yang diperoleh dari program di atas adalah sebagai berikut; NIS Nama Gender : DOD98021 : Arista : 1

(19)

Nilai 1 di atas menunjukkan indeks dari nilai yang terdapat dalam tipe JENIS_KELAMIN. Sebagai catatan bahwa indeks diawali dari 0 (nol), maka nilai Wanita pada tipe JENIS__KELAMIN di atas adalah 1, sedangkan Pria akan bernilai 0.

Kode Program 2-18

2.5 Null Terminated String

Dalam C + + , string yang digunakan bertipe null terminated string, yaitu jenis string yang diakhiri oleh karakter null ('\0'), bukan nol. Kita tahu bahwa string adalah kumpulan (array) dari karakter, oleh karena itu jika kita akan mendeklarasikan variabel bertipe string, maka kita harus melebihkan lebar sebanyak satu karakter untuk posisi karakter null. Sebagai contoh kita akan melakukan deklarasi variabel yang bertipe string dan mengisikannya dengan teks 'Budi1, maka bentuk deklarasinya adalah sebagai berikut:

// Mendeklarasikan variabel yang bertipe string dengan lebar 5 char NAMA[5];

// Mengisikan nilai ke dalam variabel NAMA NAMA = "Budi";

Jika kita amati potongan sintaks di atas, sebenar-nya kita hasebenar-nya mengisi-kan 4 karakter ke dalam variabel NAMA, sedang-kan sisa ruang-nya asedang-kan digunakan untuk me-nempatkan karakter null. Untuk lebih jelas-nya perhatikan ilustrasi di samping ini.

Dalam mengisikan nilai ke variabel yang bertipe string, kita tidak perlu memasukkan karakter null secara manual, karena C + + secara otomatis akan menambahkannya. Untuk membuktikan hal ini, perhatikanlah program di bawah ini.

Pernrograraan C++

tinclude <iostrearn> using namespace std; int m a i n ( } {

// Mendeklarasikan variabel NAMA dengan tipe char dan

// lebar 5 karakter

char N A M A [ 5 ] ;

// Mengisikan nilai ke dalam variaJbeJ NAMA NAMA = "Budi";

cout« "Karakter ke-0 cout«"Karakter ke-1 cout«"Karakter ke-2 cout«"Karakter ke-3 cout« "Karakter ke-4 return 0; "«NAMA { 0 ] «endl; "«NAMA[l]«endl; "«NAMA [ 2 ] «endl; "«NAMA[3]«endl; "«NAMA[4]«endl;

Hasil yang diperoleh dari program di atas adalah sebagai berikut : Karakter ke-0

Karakter ke-1 Karakter ke-2 : Karakter ke-3 Karakter ke-4

Dalam C + + , terdapat beberapa fungsi siap pakai yang berguna untuk menyelesaikan masalah-masalah yang berkaitan dengan string. Untuk menggunakan fungsi-fungsi tersebut kita harus mendaftarkan file header string.h (untuk C + + lama) atau <cstring> (untuk C + + standar). Berikut ini fungsi-fungsi yang dimaksudkan :

Fungsi strcpy()

Bentuk umum dari fungsi strcpy ( ) dapat dilihat di bawah ini.

Fungsi ini berguna untuk melakukan penyalinan (copy) string dari S2 ke SI. Contoh penggunaannya dalam program adalah sebagai berikut:

Bab 2: Komentar, Identifier, dan Tipe Data

(20)

Kode Program 2-19 ^include <iastream> ^include <cstring> using namespace std; int main() { char SI [50] ; char* S2;

// Melakukan pengisian nilai terhadap variabel S2 S2 = "Ini adalah contoh penyalinan string";

// Melakukan penyalinan string dari variabel 32 ke // variabel SI

strcpytSl, S2);

// Menampilkan nilai darl variabel SI cout«Sl«endl ;

return 0; '

Hasil yang diperoleh dari program di atas adalah sebagai berikut:

Ini adalah contoh penyalinan string

2. Fungsi strncpy ( )

Bentuk umum dari fungsi strncpy ( ) dapat dilihat di bawah ini.

char* strncpy{char* SI, const char* S2, size_t n ) ;

Fungsi ini berguna untuk menyalin string sebanyak n karakter dari variabel S2 ke variabel S1. Contoh penggunaannya dalam program adalah sebagai berikut;

Kode Program 2-20 ^include <iostream> ^include <cstring> using namespace std; int main() { char SI [50] ,-char* S2; Pemrograman C++

// Melakukan pengisian nilai terhadap variabel SI dan

// 52

51 = "CONTOH";

52 = "salin string";

// Melakukan penyalinan string dari variabel S2 ke

// variabel SI

StrcpytSl, 32, 4 ) ;

// Menampilkan nilai dari variabel SI cout«Sl«endl

,-return 0;

Hasil yang diperoleh dari program di atas adalah sebagai berikut :

saliOH

3, Fungsi strdup ( )

Bentuk umum dari fungsi strdup ( } dapat dilihat di bawah

ini.

char* strdup(const char* S);

Fungsi ini sebenarnya mirip dengan fungsi strcpy ( } , yaitu untuk melakukan duplikasi string. Contoh penggunaannya dalam program adalah sebagai berikut:

Kode Program 2-21 ^include <iostream> tinclude <cstring> using namespace std; : int main() { char* S.I; char* S2;

// Melakukan pengisian nilai terhadap variabel SI 51 = "Contoh Duplikasi String";

// Melakukan duplikasi string dari variabel SI ke

// variabel 52

52 = s t r d u p ( S l ) ;

// Menampilkan nilai dari variabel 52 2: Komentar, Identifier, dan Tipe Data

(21)

return 0;

Hasil yang diperoleh dari program di atas adalah sebagai berikut:

Contoh Duplikasi String 4. Fungsi strcat ( )

Bentuk umum dari fungsi strcat ( ) dapat dilihat di bawah

mi. .

char* atrcat(char* Si, const char* S2);

Fungsi ini berguna untuk menggabungkan (concat) string dari S2 ke posisi akhir dari SI. Contoh penggunaannya dalam program adalah sebagai berikut:

Kode Program 2-22 ^include <iostream> ^include <string> using namespace std int mainf) { char* Si; char* S2; char* spasi = " ";

// Melakukan pengisian nilai terhadap variabel SI dan

// S3

51 = "Teks"; 52 = "Gabungan";

// Menambahkan karakter spasi (' V ke dalam variabel

// SI

strcat(SI, spasi};

// Melakukan penggabungan string yang terdapat

// pada variabel SI dan S2

strcat(SI, S2);

// Menampilkan nilai dari variabel Si

// setelah proses penggabungan

cout«Sl«endl

,-B

Hasil yang berikut:

diperoleh dari program di atas adalah sebagai

Teks Gabungan 5. Fungsi strncat ( )

Bentuk umum dari fungsi strncat ( ) dapat dilihat di bawah ini.

char* strncatfchar* SI, const char* S2, size_t n);

Fungsi ini berguna untuk menggabungkan n karakter dari variabel S2 ke posisi akhir dari variabel Si.

Contoh penggunaannya dalam program adalah sebagai berikut: Kode Program 2-23 # include <iostream> tfinclude <cstring> using namespace std; int mainO { char* SI; char* S2;

// Melakukan pengisian nilai terhadap variabel SI dan

// 52

51 = "Nama saya adalah ";

52 = "Budi Raharjo";

// Menggabungkan 4 karakter dari variabel S3 ke

// variabel SI

strncat (SI, S2, 4);

// Menampilkan nilai dari variabel Si // setelah dilakukan penggabungan cout«Sl«endl;

return 0;

Hasil yang diperoleh dari program di atas adalah sebagai berikut :

Pemrograman C++ Bab 2: Komentar, Identifier, dan Tipe Data

(22)

Nama saya adalah Budi

6. Fungsi strlen ( )

Bentuk umum dari fungsi strlen ( ) dapat dilihat di bawah

mi.

size_t strlen{const char* S);

Fungsi ini berguna untuk mengembalikan panjang string dari S. Contoh penggunaannya dalam program adalah sebagai berikut: Kode Program 2-24 ^include <iostream> ^include <cstring> using namespace std; int main( ) ( char* SI; char* S2;

int panjang_Sl, panjang_S2;

// Melakukan pengisian nilai terhadap variabel SI dan // S2

51 = "Budi"; 52 = "Raharjo";

panjang_Sl = strlen(Sl); panjang_S2 = strlen{S2) ;

// Menampilkan nilai dari variabel panjang_Sl'dan // panjang_S2

cout«"Panjang SI : "«panjang_Sl«endl; cout«"Panjang S2 : "«panjang_S2«endl;

return 0 ;

Hasil yang diperoleh dari program di atas adalah sebagai berikut :

Panjang SI : 4 Panjang S2 : 7

7. Fungsi strcmp ( )

Bentuk umum dari fungsi strcmp ( ) dapat dilihat di bawah Ini.

int •trcmp(const char* SI, const char* S2);

Fungsi ini berguna untuk membandingkan string yang terdapat pada variabel S1 dan S 2. Nilai yang akan dikembalikan yaitu :

• 0 (nol): hal ini terjadi jika SI sama dengan S2

• kurang dari 0 (negatif) : hal ini terjadi jika SI lebih kecil dari S2

• lebih dari 0 (positif) : hal ini terjadi jika Si lebih besar dariS2

Contoh penggunaannya dalam program adalah sebagai berikut: Kode Program 2-25 Pemrograman ^include <iostream> ^include <cstring> using namespace std; int main(J { char* SI; char* S2?

// Melakukan pengisian nilai yang sama // terhadap variabel SI dan 52

51 = "COBA"; 52 = "COBA";"

// Menampilkan hasil perbandingan string // dari variabel Si dan S2

cout«"Hasil perbandingan : "«strcmp(Sl, S2}«endl;

// Melakukan perubahan nilai terhadap variabel SI 51 = "Coba";

// Menampilkan kembali hasil perbandingan string // dari variabel SI dan S2

cout«"Hasil;perbandingan : "«strcmp(Sl, S2}«endl; // Melakukan perubahan nilai terhadap variabel S2 52 = "coba";

// Menampilkan kembali hasil perbandingan;string :

(23)

// dari variabel SI dan S2

cout«"Hasil perbandingan : "«strcmp (SI , S2)«endl; return 0 ;

Contoh hasil yang diperoleh dari program di atas adalah sebagai berikut : g Fungsi strchr ( ) Hasil perbandingan : 0 Hasil perbandingan : 32 Hasil perbandingan : -32 8. Fungsi strrev ( )

Bentuk umum dari fungsi strrev ( ) dapat dilihat di bawah ini.

char* strrev(char* S ) ;

Fungsi ini berguna untuk membalikkan string dari variabel S. Contoh penggunaannya dalam program adalah sebagai berikut : Kode Program 2-26 tinclude <iostreara> #include <cstring> using namespace std; int main() {

char* S = "Budi Raharjo";

// Melakukan penulisan string mulai dari

// posisi akhir variabel S

strrev(S);

// Menampilkan nilai dari variabel S setelah dibalik cout« S«endl;

return 0; 1

Hasil yang diperoleh dari program di atas adalah sebagai berikut:

ojrahaR iduB

Bentuk umum dari fungsi strchr

ini.

dapat dilihat di bawah

Fungsi ini akan mencari lokasi karakter dari suatu string. Jika karakter ditemukan, maka fungsi ini akan mengembalikan pointer dari string yang dimulai dari karakter tersebut, tetapi jika tidak maka fungsi akan mengembalikan nilai 0. Contoh penggunaannya dalam program adalah sebagai berikut:

Kode Program 2-27 #include <iostream>

^include <cstring>

using namespace std;

int mainf) {

char* S = "C++ adalah segalanya bagiku"; char* PStr;

// Melakukan pencarian karakter '+' di dalam variabel S PStr = strchr(S, '+');

// Menampilkan nilai dari variabel PStr cout« PStr«endl;

return 0;

Hasil yang diperoleh dari program di atas adalah sebagai berikut :

+ 4- adalah segalanya bagiku

Pemrograman

10. Fungsi strstr ( )

Bentuk umum dari fungsi strstr ( ) dapat dilihat di bawah ini.

char* strstr(const? char* S, const char* substr);

Fungsi ini akan mencari lokasi substring dari suatu string. Jika substring ditemukan, maka fungsi ini akan mengembalikan pointer dari string yang dimulai dari substring tersebut, tetapi jika tidak maka fungsi akan

(24)

mengembalikan nilai 0. Konsep yang terdapat pada fungsi adalah sama seperti fungsi strchr ( ) . Contoh penggunaannya dalam program adalah sebagai berikut :

Kode Program 2-28

#include <iostream> #include <cstring>

using namespace std;

int main ( ) {

char* S = "Pencipta C++ adalah Bjarne Stroustrup"; char* PStr;

// Melakukan pencarian substring "Bjarne" di dalam

// variabel S

PStr = strstr{S, 'Bjarne');

// Menampilkan nilai dari variabel PStr cout« PStr«endl;

return 0;

Basil yang diperoleh dari program di atas adalah sebagai berikut :

Bjarne Stroustrup

Fungsi ini akan mengubah string yang tersimpan dalam variabel S menjadi huruf kecil. Berikut ini adalah contoh penggunaannya dalam program.

Kode Program 2-29

^include <iostream> #include <cstring>

using namespace std;

int main() {

char* S = "CONTOH MENGECILKAN HURUF"; char* hasil;

// Mengubah string dari variabel S menjadi huruf kecil hasil = strlwr(S);

// Menampilkan nilai dari variabel hasil ,cout« hasil«endl;

return 0; )

Hasil yang diperoleh dari program di atas adalah sebagai berikut:

contoh mengecilkan huruf

2.5.1 Konversi String

Dalam pembuatan sebuah program kerap kali kita dituntut untuk melakukan perubahan terhadap format string, misalnya mengubah string menjadi huruf kapital ataupun sebaliknya. Untuk melakukan hal ini, C + + telah menyediakan dua buah fungsi, yaitu strlwr ( ) dan s t r u p r ( ) .

a. Fungsi

Bentuk umum dari fungsi strlwr { } dapat dilihat di bawah ini. _

char* strlwr{char* S);

Pemrograman C++

b. Fungsi strupr o

Bentuk umum dari fungsi strupr ( ) dapat dilihat di bawah ITU.

char* strupr(char* S ) ;

Fungsi ini akan mengubah string yang tersimpan dalam variabel S menjadi huruf kapital. Berikut ini adalah contoh penggunaannya dalam program.

Kode Program 2-30 ^include ;<iostream> ftinclu.de <cstring> using namespace std; int mainO { —

Bab 2: Komentar, Identifier, dan Tipe Data

(25)

char* S = "coritoh membesarkan huruf"; char* hasil;

// Mengubah string dari variabel 5 menjadi huruf keci hasil = strupr(S);

// Menampilkan nilai dari variabel hasil cout« hasil«endl;

return 0; 1

Hasil yang diperoleh dari program di atas adalah sebagai berikut :

CONTOH MEMBESARKAN HURUF

2.5.2 Input String

Jika kita hanya menggunakan statemen cin dalam memasukkan string ke sebuah variabel, maka kita akan mengalami kesulitan jika ternyata string yang kita masukkan tersebut mengandung spasi (karakter ' '). Hal ini disebabkan spasi pertama yang ditemukan dalam sebuah string yang dimasukkan melalui keyboard akan dianggap sebagai karakter null. Untuk lebih memahami konsep input string, perhatikan contoh-contoh program di bawah ini. Pada saat kita melakukan input berupa string ke sebuah variabel dan string tersebut tidak mengandung spasi, maka hal itu itu tidak akan menjadi masalah. Berikut ini contoh program yang menunjukkan hal tersebut.

Kode Program 2-31

tfinclude < lost re emb-using namespace std; ir.t main ( ) {

char S [ 2 0 1 ;

cout« "Masukkan nama Anda : ";

// Meminta input dari user dan menyimpan nilainya

Pemrograman

// ke dalam variabel S cin»S;

// Menampilkan kembali nama yang telah dimasukkan cout«"Hai "«s«", apa kabarmu?"«endl;

return 0;

pada saat program di atas dijalankan dan misalnya kita mengisikan nama tesebut dengan string "Arista", maka hal ini tidak menimbulkan masalah. Adapun hasil yang akan diberikan adalah sebagai berikut :

Hai Arista, apa kabarmu?

Namun, apa yang terjadi bila kita memasukkan string "Arista Destriana"? Temyata hasil yang diberikan masih tetap sama seperti di atas, padahal hasil yang kita inginkan adalah seperti yang tampak di bawah ini.

Hai Arista Destriana, apa kabarmu?

Kita tentu tidak menginginkan hal ini terjadi. Oleh karena itu, untuk menjawab kasus ini kita harus menggunakan fungsi getline ( ) . Adapun bentuk umum dari fungsi getline { ) ini dapat dilihat di

bawah ini.

kistream getline(char* b u f f e r , int ukuran, char delimiter = ' \ n ' ) ;

fcistream getline(signed char* b u f f e r , int ukuran, char delimiter = (\ n ' } ;

Sdstream getline(unsigned char* b u f f e r , int ukuran, char delimiter = (\ n ' ) ;

Setelah mengetahui fungsi getline ( } , sekarang kita kembali ke pokok permasalahan kita yaitu dengan memperbaiki program di atas dengan sintaks berikut:

Kode Program 2-32 ^include <iostream>

using namespace std;

(26)

int main ( ) {

char S[20] ;

cout«"Masukkan nama Anda :

",-// Meminta input dari user menggunakan fungsi getline cin.getline(S, sizeof(S) - 1);

// Menampi 1 kan kembali nama yang telah dimasukkan cout«"Hai "«S«", apa kabarmu?"«endl;

return 0;

BAB 3

OPERATOR

Atau kita juga dapat menggunakan objek string, yaitu dengan menuliskannya seperti di bawah ini.

Kode Program 2-33 #include <iostream> #include <cstring> using namespace std; int main ( ) ( string S;

cout«"Masukkan nama Anda : ";

// Meminta input dari user menggunakan fungsi getline getline (cin, S) ;

// Menampilkan kembali nama yang telah dimasukkan cout«"Hai "«S«", apa kabarmu?"«endl;

return 0;

Hasil yang diberikan oleh kedua program di atas adalah sama. Jika kita memasukkan string "Arista Destriana", maka hasil yang akan ditampilkan adalah sesuai dengan apa yang kita inginkan seperti tampak di bawah ini.

Hai Arista Destriana, apa kabarmu?

Pemrograman C++

3.1 Pendahuluan

Dalam pengembangan sebuah program kerap kali dituntut untuk mendefinisikan operasi-operasi di dalamnya, baik itu berupa operasi perhitungan, perbandingan maupun yang lainnya. Untuk melakukan hal ini tentunya kita harus menggunakan operator, Pada bagian ini Anda akan dikenalkan dengan operator-operator yang terdapat pada bahasa C++ beserta penggunaannya di dalam program.

Bahasa C++ sendiri menawarkan banyak operator untuk melaku-kan pemecahan masalah-masalah tertentu di dalam program. Dalam buku ini operator-operator tersebut akan dikelompokkan ke dalam 4 bagian, yaitu operator assignment, unary, binary dan ternary.

Sebagai pengenalan bagi Anda, sebelum melangkah ke pemba-hasan yang lebih jauh, berikut ini istilah-istilah yang harus diketahui dalam bekerja dengan operator. Misalnya jika terdapat suatu statemen yang berupa persamaan matematika dan dituliskan sebagai berikut:

(27)

C = 5-r ?

Maka:

C dise

C = 5 + 7

disebut dengan varlabel

disebut dengan operator assignment disebut dengan operand

disebut dengan ekspresi

disebut dengan operator aritmetika (penambahan) disebut dengan statemen aritmetika

3.2 Operator Assignment

Operator assignment adalah operator yang berfungsi untuk memasukkan (assign) nilai ke dalam suatu variabel ataupun konstanta. Operator ini dilambangkan dengan tanda sama dengan (=). Berikut ini contoh program yang menggunakan operator tersebut. Kode Program 3-1 ^include <iostream> using namespace std; int main () { // Mendeklarasikan konstanta

// dengan melakukan assignment dengan nilai 3.14 const PI = 3.14; // Mendeklarasikan variabel-variabel char MyChar; char* MyString; int Mylnteger; double MyDouble;

// Mendeklarasikan variabel bertipe char // Mendeklarasikan variabel bertipe char* // Mendeklarasikan variabel bertipe int // Mendeklarasikan variabel bertipe // double

// Melakukan assignment terhadap variabel-variabel di atas MyChar « v C';

MyString = "Mengungkap Rahasia C + + " ; Mylnteger « 21;

MyDouble = 21.0378;

// Menampilkan nilai dari variabel-variabel di atas cout«"MyChar : "«MyChar«endl ; cout«"MyString : "«MyString«endl; Pemrograman C-» cout« "Mylnteger cout« "MyDouble : "«Mylnteger«endl; : u«MyDouble;

Hasil yang akan diberikan dari program di atas adalah sebagai berikut:

MyChar : C

MyString : Mengungkap Rahasia C+ + Mylnteger : 21

MyDouble : 21.0378

3.3 Operator Unary

Dalam ilmu matematika yang disebut dengan operator unary adalah operator yang hanya melibatkan sebuah operand. Adapun yang termasuk ke dalam operator unary adalah seperti tampak pada tabel di bawah ini.

Operator + -++ — Jenis Operasi Membuat nilai positif Membuat nilai negatif Increment Decrement Contoh +7 ~7 C+ +

C--Berikut ini contoh program yang di dalamnya menggunakan operator plus ( + ) dan minus (-).

Kode Program 3-2 ^include <iostream> using namespace std; int main() { int X; float Y;

X = +5; // Dapat ditulis dengan X = 5,

// yang berarti memasukkan nilai positif 5 Bab 2: Komentar, Identifier, dan Tipe Data

(28)

Y ~ -2.12; // M&nasukkan nilai negatif 2.12

// Menampilkan nilai yang disimpan dalasri variabel X dan Y

cout« "Nilai X : "«x«endl; cout«"Nilai Y : "«Y«endl;

// Mengubah nilai X menjadi negatif

// Menampilkan kembali nilai yang disimpan // dalam variabel X dan Y

cout«"Nilai X : "«X«endl; cout«"Nilai Y : "«Y«endl; return 0;

1

Hasil yang akan diberikan oleh program di atas adalah sebagai berikut:

Nilai X : 5 Nilai Y: -2.12 Nilai X : -5 Nilai Y : 2.12

Setelah statemen Y = -Y, maka nilai yang terdapat dalam variabel Y menjadi 2.12 (positif). Hal ini disebabkan karena kita menegatifkan nilai negatif, yaitu -(-2.12).

3.3.1 Increment

Increment adalah suatu penambahan nilai yang terjadi pada sebuah variabel. Adapun operator yang digunakan untuk melakukan increment adalah operator ++. Operator ini akan menambahkan nilai dari suatu variabel dengan nilai 1.

Terdapat dua buah jenis increment yang terdapat dalam bahasa C+ +, yaitu increment dan post-increment. Arti dari pre-increment adalah melakukan penambahan nilai sebelum suatu variabel itu diproses, sedangkan post-increment merupakan kebalikannya, yaitu melakukan proses terlebih dahulu sebelum dilakukan penambahan nilai. Adapun bentuk umum dari pre-increment dan post-pre-increment dapat dilihat di bawah ini.

Pemrograman C++

// Mtelakukan pre -increment

_ variabel/

// Melakukan pro -Increment

Untuk lebih memahami konsep yang terdapat di dalamnya, berikut ini disajikan contoh program yang merupakan implementasi dari pre-increment dan post-increment.

Kode Program 3-3 ^include <iostreain>

*

using namespace std;

int main( ) {

int C; // Mendeklarsikan variabel C

// Mengisikan nilai ke dalam variabel C dengan nilai 5

C =

5,-// Melakukan pre-increment

cout« "Nilai C awal : "«C«endl;

cout«"Nilai ++C : "«++c«endl;

cout«"Nilai C akhir ;: "«C«endl;

: cout«' \n' ;

/ Mengubah nilai yang terdapat dalam variabel C

// dengan nilai 10

C = 10;

// Melakukan post -increment

cout«"Nilai C awal : "«C«endl;

cout«"Nilai C++ : "«c++«endl;

cout«"Nilai C akhir ; "<<C«endl;

return 0;

Hasil yang akan diberikan dari program di atas adalah sebagai berikut :

Nilai C awal ; 5 Nilai++C ; 6 Nilai C akhir ; 6

Nilai C awal : 10

(29)

Nilai C + + Nilai C akhir

10 11

Coba Anda perhatikan hasil di atas. Pada saat kita melakukan pre-increment, nilai C dinaikkan dulu sebelum diproses {dalam hal ini ditampilkan ke layar) sehingga yang tampil adalah nilai 6. Sedangkan pada saat melakukan post-increment nilai dari variabel C diproses (ditampilkan) lebih dahulu sebelum dinaikkan nilainya. Hal ini menyebabkan nilai yang ditampilkan masih tetap 10. Namun pada saat pemanggilan nilai C setelah proses post-increment, nilai C tentu telah bertambah satu, sehingga yang ditampilkan adalah 11.

3.3.2 Decrement

Decrement merupakan kebalikan dari proses increment, yaitu menurunkan (mengurangi) nilai dari suatu variabel. Sama juga seperti pada increment, decrement juga dibagi ke dalam dua jenis yaitu pre-decrement dan post-decrement. Berikut ini program yang menunjukkan penggunaan decrement.

Kode Program 3-4

ftinclude <iostream> using namespace std; int main() {

int C; // Mendeklarasikan variabel C

// Mengisikan nilai ke dalam variabel C dengan nilai 5

C = 5;

// Melakukan pre-increment

cout«"Nilai C awal : "«C«endl; cout«"Nilai --C : "«--C«endl; cout«"Nilai C akhir : "«C«endl; cout«' \n' ;

// Mengubah nilai yang terdapat dalam variabel C

// dengan nilai 10

C = 10;

// Melakukan post-decrement

cout«"Nilai C awal "«C«endl;

cout«"Nilai C--3>ut«"Nilai C akhir return 0;

"«C--«endl;

tt«C«endl;

Hasil yang akan diberikan dari program di atas adalah sebagai berikut: Nilai C awal Nilai --C Nilai C akhir Nilai C awal Nilai C--Nilai C akhir 5 4 4 10 10 9

3.4 Operator Binary

Operator binary adalah operator yang digunakan dalam operasi yang melibatkan dua buah operand. Dalam bahasa C + + , operator binary ini dikelompokkan lagi ke dalam empat jenis, yaitu operator aritmetika, logika, relasional dan bitwise.

3.4.1 Operator Aritmetika

Operator aritmetika adalah operator yang digunakan untuk melakukan operasi-operasi aritmetika seperti penjumlahan, pengurangan dan sebagainya. Adapun yang termasuk dalam operator aritmetika di dalam C + + adalah seperti yang tampak pada tabel di bawah ini.

Operator + -* / % Jenis Operasi Penjumlahan Pengurangan Perkalian Pembagian Sisa bagi (modulus,)

Contoh 2 + 3 5 - 3 2 * 3 10.0 / 10 % 3 = 5 = 2 = 6 3 . 0 = 1 = 3 . 3 3 3 3

(30)

Untuk lebih memahaminya, berikut ini disajikan contoh-contoh program yang menggunakan operator aritmetika.

a. Menggunakan Operator Plus (+)

Kode Program 3-5

^include <iostream> using namespace std; int main() {

// Mendeklarasikan variabel X (diisi nilai 10)

// dan Y (diisi nilai 3) int X = 10, Y * 3;

// Mendeklarasikan variabel Z sebagai penampung // nilai hasil operas!

int Z;

// Melakukan operasi penjumlahan Z = X + Y;

// Menampilkan hasil penjumahan cout«X«" +

return 0;

)

Hasil yang akan diberikan dari program di atas adalah sebagai berikut:

10 + 3 = 13

b. Menggunakan Operator Minus (-)

Kode Program 3-6

^include <iostream> using namespace std; int main() {

// Mendeklarasikan variabel X (diisi nilai 10) // dan Y (diisi nilai 3)

int X = 10, Y = 3;

int Z; // Mendeklarasikan variabel Z sebagai // penampung nilai hasil operasi // Melakukan operasi pengurangan

Z - X - Y;

// Menampilkan hasil penjumahan COUt«X«" - "

return 0; }

Hasil yang akan diberikan dari program di atas adalah sebagai berikut: 10 - 3 = 7

c. Menggunakan Operator *

Kode Program 3-7 #include <iostream> using namespace std; int main( ) {

// Mendeklarasikan variabel X (diisi nilai 10) // dan Y (diisi nilai 3)

int X = 10, Y = 3;

int 2; // Mendeklarasikan variabel Z sebagai

// penampung nilai hasil operasi // Melakukan operasi perkalian

Z * X * Y;

// Menampilkan hasil penjumahan cout«X«" *

return 0 ; }

Hasil yang akan diberikan dari program di atas adalah sebagai berikut :

10 * 3 = 30

Referensi

Dokumen terkait

Kegiatan pembelajaran remedial dengan pemanfaatan tutor sebayamelalui belajar kelompok untuk menjawab pertanyaan yang diberikan guru terkait materi kondisi geologi

Tindak tutur langsung pada kalimat interogatif yang ditemukan dalam novel Garuda Putih karya Suparto Brata memiliki berbagai fungsi, yaitu fungsi asertif

Puji syukur penulis panjatkan kepada Allah SWT atas limpahan rahmat dan hidayahNya sehingga penulis dapat menyelesaikan skripsi yang berjudul “Analisis Kesalahan

Temubual mendalam secara bersemuka dan separa bersturuktur telah dilakukan terhadap dua (2) syarikat yang menyediakan khidmat sertu (disebut sebagai Syarikat G

Faktor lainnya yang juga mempengaruhi perubahan fungsi kawasan sepanjang koridor Jalan Wolter Monginsidi Kota Manado adalah faktor ekonomi, faktor daya dukung lahan,

Untuk mengetahui aktivitas guru dalam mengelola pembelajaran matematika dengan menggunakan model pembelajaran Deep Dialogue dan Critical Thinking dengan pendekatan

Berdasarkan hasil penelitian diketahui bahwa kebiasaan belajar berkategori baik (40,3%), sikap pada pelajaran berkategori baik (63,9%), dan prestasi belajar berkategori baik

Rekapitulasi angket pemahaman terhadap materi Penerapan Model IS-LM pada kelas 4/A/IESP pada pertemuan 1 pada kategori sangat rendah tidak ada, pada kategori rendah sebanyak