Disusun Oleh :
Meliasih A1317049
1
BAB I
C++ DAN PEMROGRAMAN BERORIENTASI OBJEK
Program adalah kumpulan instruksi yang ditujukan untuk mengatur komputer agar melakukan suatu
tugas tertentu.Kalau suatu komputer terlihat pandai dalam melakukan sesuatu, programlah sebenarnya
yang menjadi kuncinya. Namun, tentu saja aktor yang berperan penting dalam melakukan hal itu adalah
sang pemograman, pemain di balik layar yang telah menyusun program.
Bahasa pemrograman adalah notasi yang digunakan untuk menulis program (komputer). Bahasa
ini dibagi menjadi tiga tingkatan yaitu bahasa mesin, bahasa tingkat rendah dan bahasa tingkat tinggi.
Bahasa mesin (machine language) berupa microinstruction atau hardwire. Programnya sangat panjang
dan sulit dipahami.Di samping itu sangat tergantung pada arsitektur mesin.Keunggulannya adalah
prosesnya sangat cepat dan tidak perlu interpreter atau penterjemah Bahasa tingkat rendah (low level
language) berupa macroinstruction (assembly).Seperti halnya bahasa mesin, bahasa tingkat rendah
tergantung pada arsitektur mesin.Programnya panjang dan sulit dipahami walaupun prosesnya cepat.Jenis
bahasa tingkat ini perlu penterjemah berupa assembler.
Program ditulis dengan menggunakan suatu bahasa pemograman.
Contoh beberapa bahasa pemograman:
- BASIC;
- Fortran;
- Pascal;
- C;
- C++;
- Prolog.
Untuk melakukan pembuatan program, diperlukan perangkat pengembangan.Sebagai contoh Visual
Basic adalah produk Microsoft yang memungkinkan pemograman dapat menyusun suatu program
berbahasa BASIC dengan mudah, karena menggunakan pendekatan visual. Contoh lain adalah
CodeBloks, yang akan segera diperkenalkan kepada Anda dapat mempraktikkan penyusunan program
C++.
2
pustaka yang dibangun dengan C tetap dapat dipakai pada C++, dibaurkan dengan program yang berbasis
objek.
C adalah bahasa pemograman yang dikatakan berada antara bahasa beraras rendah (bahasa yang
berorientasi kepada mesin) dan bahasa beraras tinggi (bahasa yang berorientasi pada manusia).Seperti
yang diketahui, bahasa beraras tinggi mempunyai kompatibilitas yang tinggi antarplatfrom.Karena itu,
amatlah mudah untuk membuat program pada berbagai jenis mesin.Berbeda halnya jika menggunakan
bahasa beraras rendah, sebab setiap perintahnya bergantung sekali pada jenis mesin.
Bahasa C++ diciptakan oleh Bjarne Stroustrup di AT&T Bell Laboratories awal tahun 1980-an
berdasarkan C ANSI (American National Standard Institute). Pertama kali, prototype C++ muncul
sebagai C yang dipercanggih dengan fasilitas kelas. Bahasa tersebut disebut C dengan kelas ( C wih
class). Selama tahun 1983-1984, C dengan kelas
disempurnakan dengan menambah fasilitas pembeban lebihan operator dan fungsi yang kemudian
melahirkan apa yang disebut C++.
C++ diciptakan untuk mendukung pemrograman berorientasi pada objek (Object
Oriented Pragramming/OOP) yang tidak dimiliki C. sementara C merupakan bahasa pemrograman
terbaik dilingkungannya, bahasa ini tidak memiliki kemampuan OOP.
Reputasi C tidak diragukan lagi dalam menghasilkan program .EXE berukuran kecil, eksekusi yang cepat,
antarmuka (interfacing) yang sederhana dengan bahasa lain dan
fleksibilitas pemrograman. Apa yang membuat C tampak sukar dipelajari mungkin karena tiadanya
pemeriksaan tipe. Sebagai contoh, dapat mencampur bilangan bulat dengan string untuk menghasilkan
karakter.
Symbol ++ merupakan operator C untuk operasi penaikan, muncul untuk menunjukkan bahwa
bahasa baru ini merupakan versi yang lebih canggih dari C. Borland International merilis compiler
Borland C++ dan Turbo C++.Kedua compiler tersebut sama-sama dapat digunakan untuk melakukan
kompilasi kode C++. Bedanya, Borland C++ selain dapat digunakan dibawah lingkungan DOS, juga
dapat digunakan untuk
pemrograman Windows. Selain Borland International, beberapa perusahaan lain juga merilis compiler
C++, seperti Topspeed C++ dan Zortech C++. Perhatikan dan
bandingkan program dibawah ini:
#include<stdio.h>
int main()
{
double jam, besar, bayar;
printf ("Berapa Jam Kamu bekerja?");
scanf( jam );
printf ("Berapa besar gaji tiap jamnya?" );
scantf (besar);
bayar =jam*besar;
printf ("Kamu mendapatkan Gaji (Rp)",bayar<<endl;
return0;
}
3
Contoh program dalam bahasa C++ :
#include<iostream>
int main()
{
doublejam,besar,bayar;
cout<<"Berapa Hari Kamu bekerja?";
cin>>jam;
cout<<"Berapa besar gaji tiap Harinya?";
cin>>besar;
bayar =jam *besar;
cout<<"Kamu mendapatkan Gaji (Rp)"<<bayar<<endl;
return 0;
}
1.3.1 Pendahuluan
Bahasa pemograman berorientasi objek adalah mengombinasikan data dan fungsi untuk
mengakses data menjadi sebuah kesatuan unit. Unit ini dikenal dengan nama objek. Objek sebenarnya
mencerminkan pola kerja manusia dalam sehari-hari.Suatu objek dapat diibaratkan sebagai departemen-
departemen di dalam sebuah perusahaan bisnis.Misanya; pemasaran, akunting, dan personalia.Pembagian
departemen dalam perusahaan merupakan upaya untuk memudahkan pengoperasian perusahaan.
PBO C++
Variabel instan Data (anggota data)
Metode Fungsi anggota
4
1.3.4 Karakteristik Pemograman Berorientasi Objek
Tiga karakteristik utama bahasa pemrograman berupa :
a. Pengapsulan (encapsulation);
b. Pewarisan (inheritance);
c. Polimorfisme (polymorphism).
Tiga karakteristik diatas mendukungf reusability, yang merupakan satu faktor kualitas perangkat lunak.
Reusability adalah suatu sifat yang memperkenankan kelas yang telah dibuat dan diuji dapat
didistribusikan ke pemogramanb;ain untuk dipakai pada program-program mereka. Hal ini mempunyai
keasaaman dengan penulisan fungsi pada bahasa prosedural yang kemudian diletakkan dalam pustaka
(library). Perbedaannya, tingkat penggunaankembali pada program berorientasi objek lebih tinggi
daripada bahasa prosedural. Sebab, pemograman dengan mudah dapat menambahkan sifat-sifat dari suatu
kelas dan melengkapi sifat-sifat yang baru (berkat adanya kemampuan pewarisan).Sekarang, marilah kita
menuju ke pembahasan singkat setiap karakteristik PBO.
a. Pengapsulan
Pengapsulan data dan fungsi dalam wadah bernama objek yang dikenal dengan pengapsulan. Data
tidak lagi diperlakukan sebagai komponen kedua setelah fungsi, melainkan kedudukan yang sama dan
fungsi.
b. Pewarisan
Pewarisan merupakan sifat dalam bahasa pemrograman berorientasi objek yang memungkinkan
sifat-sifat dari suatu kelas diturunkan ke kelas lain.
c. Polimorfisme
Polimorfisme merupakan suatu konsep yang menyatakan sesuatu yang dapat memiliki bentuk dan
perilaku yang berbeda. Istilah ini berasal dari Bahasa Yunani , yang berarti “mempunyai banyak bentuk”.
Salah satu jenis polimorfisme pada C++ dapat dikenakan pada fungsi atau operator dang dikenal dengan
istilah overloading.
#include <iostream>
using namespace std;
int main ()
{
cout << "C++ mudah dipelajari?" << endl;
cout << "Jangan percaya tanpa mencobanya!" <<endl;
return 0;
{
Program C++ ditulis dengan nama ekstensi .cpp (dari nama C++). Agar program ini dapat
dijalankan, proram harus dikompilasi terlebih dahulu dengan menggunakan kompiler C++. Pada saat
kompilasi dilaksanakan, program sumber (.cpp) bersama header file (berekstensi .h) akan diterjemahkan
oleh kompiler C++ menjadi kode objek (.o). File objek ini berupa file dalam format biner (berkode O dan
5
1). Perangkat yang melakukan kompilasi dinamakan kompiler.
Selanjuttnya, file objek ini bersama-sama dengan file objek lain serta file putaka (.lib) dikaitkan
menjadi satu linker. Hasilnya berupa file yang bersifat executable (dapat dieksekusi di sistem
operasi).File inilah yang dapat dijalankan dari sistem operasi secara langsung.
6
Gambar 1.5.1 Tampilan awal untuk menginstal CodeBlock
7
Gambar 1.5.3 Pilihan komponen untuk instalasi
8
Gambar 1.5.5 Keadaan ketika CodeBlock sedang diinstal
9
Gambar 1.5.7 Keadaan ketika instalasi CodeBlock telah berakhir
10
Gambar 1.6.1 Tampilan awal saat CodeBlock dijalankan
4. Untuk eksekusi yang pertama kali, Anda akan menjumpai tampilan seperti berikut
5. Klik pada tombol
Langkah awal yang perlu Anda lakukan adalah menyiapkan folder bernama Latcpp. Folder
tersebut dianggap diletakkan di drive D melalui Windows Explorer.
Setelah itu, lakukan pengaturan berikut :
1. Klik pada menuSettings.
2. Klik pada Compiler....Langkah ini menampilkan kotak dialog seperti berikut :
11
3. Klik pada . Tampilan berubah menjadi seperti berikut :
4. Klik pada gambar . Langkah ini akan menampilkan kotak dialog berikutr :
12
Gambar 1.6.6 Pilihan file yang diciptakan
4. Klik pada dan kemudian klik pada tombol . Tampilan yang muncul :
13
Gambar 1.6.8 Pilihan C++
6. Klik pada tombol jika C++ sudah terpilih. Tampilan yang muncul seperti :
14
#include <iostream>
using namespace std;
int main ()
{
cout << "C++ mudah dipelajari?" << endl;
cout << "Jangan percaya tanpa mencobanya!" << endl;
return 0;
{
10. Simpanlah program diatas dengan cara menekan tombol Ctrl + S atau melalui menu File dan
kemudian pilih Save As.
11. Untuk mengompilasi dan membentuk file yang dapat dieksekusi serta menjalankan
program, lalu klik pada menu Build dan kemudian pilihlah Build dan Run.
12. Beberapa saat kemudian akan muncul tampilan hasil seperti berikut :
15
Langkah-langkah diatas seperti yang dijelaskan sebelumnya, tidak harus baku seperti itu, boleh
ditambahkan atau dilewati, atau mungkin saja diulangi hingga berjalan.
Dalam praktik, pemrograman tidak luput dari kesalahan. Kesalahan yang umum terjadi dapat di bagi
menjadi dua kelompok, yaitu:
a. kesalahan sintaks;
b. kesalahan logika.
Kesalahan sintaks adalah kesalahan yang terjadi karena ada kesalahan di program yang tidak
mengikuti aturan bahasa pemrograman bersangkutan. Sebagai contoh, suatu kesalahan sintaks akan
terjadi jika pernyataan di C++ .
bilangan = 1;
ditulis menjadi
bilangan : = 1;
Penyebabnya, kompiler C++ mengenali tanda := sebagai sesuatu yang salah. Kesalahan seperti itu akan
diberitahukan kepada pemrograman dan tugas pemrograman adalah memperbaiki kesalahan sintaks
tersebut.Sebagai contoh, cobalah untuk menghilangkan tanda ; di belakang endl pertama. Lalu,
kompilasilah program tersebut (Crl+Shift+F9).
16
BAB II
PENGENALAN PROGRAM C++
2.1 CONTOH PROGRAM C++
Conttoh program C++ yangsangatsederhanatelahdiperkenalkan di BAB I. Program
tersebutdiperlihatkankembali di bawahini .
Program : biodata.cpp
#include <iostream>
int main ()
{
cout<< "nama saya MELIASIH" <<endl;
cout<< "saya lahir pada tanggal 20051998" <<endl;
cout<< "saya tinggal di AMBAWANG" <<endl;
return 0;
}
return 0;
}
Yang dimulai dari tanda{ hingga } disebut tubuh fungsi. Lebih spesifik lagi,semua yang terletak
didalam tanda {} disebut blok .
17
Tanda () digunakan untuk mengapit argument fungsi ,yakni nilai yang akan dilewatkan ke fungsi.
Pada fungsi main()seperti pada contoh di depan tidak terdapat argument. Oleh karena itu, tidak ada
entri di dalam ().
Tanda{ pada fungsi main(), yang merupakan awal fungsi, menyatakan awal eksekusi program .
adapun } padafungsi main()merupakanakhirkode yang mungkindieksekusi . Kata int yang
mendahului main() dipakai untuk menyatakan nilai balik (return volue) . Nilai balik ditentukan
oleh pernyataan
return 0;
Pada pernyataan tersebut nilai balik berupa nol .nilai balik ini dapat dimanfaatkan oleh sistem
operasi untuk menentukan status aplikasi .nilai balik nol menyatakan sukses .Oleh karena itu , nilai
balik nol ini dipakai hampir disemua contoh program .
Di dalam tanda {} boleh terdapat sejumlah pernyataan ( statement ) . pengertian pernyataan diulas di
subbab 2.4 .
2.4 PERNYATAAN
Baris
cout<< “namasaya MELIASIH”<<endl ;
Merupakan contoh pernyataan .pada contoh di atas pernyataan tersebut digunakan untuk
menampilkan tulisan yang terletak pada sepasang tanda petik ganda kelayar . dalam hal ini tulisan
yang terletak pada sepasang tanda petik ganda disebut literal string. Umumnya ,pernyataan berupa
instruksi untuk menyuruh komputer melakukan sesuatu . menampilkan tulisan kelayar , memghitung
suatu operasi aritmetika , membaca data dari keyboard adalah suatu tugas yang diemban oleh
pernyataan. Setiap pernyataan umumnya diakhiri dengan tanda titik koma (;). Kealpaan dalam
memberikan tanda ini akan menyebabkan kompiler memberikan pesan kesalahan saat kompilasi
dilakukan .
pernyataan
Titik koma
Mengakhiri
Pernyataan
String (deretan karakter)
Diawali dan diakhiri
dengan tanda petik ganda
18
2.5 MENGENAL COUT
Pengenal cout( baca : siaut ) merupakan suatu objek di dalam C++.Objek ini disediakan oleh
C++ untuk mengarahkan data ke standard output (normalnya adalah layar). Contoh :
cout<< “ namasaya MELIASIH“ <<endl;
Akan membuat“namasaya MELIASIH“ dan endl dikirimkan kelayar .
Tanda << ( dua buah tanda kurang dari berurutan ) merupakan suatu operator yang disebut
operator “penyisipan / peletakan “. Operator iniakan mengarahkan operand (data) yang
terletak di sebelah kanannya ke objek yang terletak di sebelah kiri . Pada contoh pernyataan
diatas , konstanta string :
“namasaya MELIASIH “
Diarahkan ke cout, yang memberikan hasil berupa tampilan string tersebut ke layar .
Kehadiran pernyataan
Using namespace std;
Diperlukan untuk membuat penyederhanaan notasi seperti std::cout agar dapat ditulis menjadi
cout saja dan std::endl menjadi endl saja . Contoh program berikut menunjukan keadaan
sekiranya pernyataan
Using namespace std;
tidak disertakan :Program: biodata.cpp
#include <iostream>
int main ()
{
cout<< "nama saya MELIASIH" <<std::endl;
cout<< "saya lahir pada tanggal 20051998" <<std:: endl;
cout<< "saya tinggal di AMBAWANG" <<std::endl;
return 0;
}
19
2.7 GAYA PENULISAN PROGRAM
C++ memberikan keleluasaan kepada pemrograman dalam menuliskan bentuk atau gaya
program .Sebagai contoh :
#include <iostream>
int main () {
return 0;
}
Pemberian baris kosong pada posisiter tentuakan membantu program mudah dibaca .begitu juga
penambahan karakter spasi antar elemen C++ ( misalnya antara cout dengan << atau antara <<
dengan konstanta string yang mengikutinya ) .
2.8 KOMENTAR
Komentar merupakan bagian yang penting dalam program. Kehadirannya sangat membantu
pemrograman ataupun orang lain dalam memahami program karena berupa penjelasan- penjelasan
mengenai program atau bagian-bagian dari program. Dalam hai ini, penjelasannya dapat berupa :
1. Tujuan / fungsi program ;
2. Saat program dibuat atau direvisi ;
3. Keterangan - keterangan lain tentang kegunaan sejumlah pernyataan dalam program .
Seandainya program tidak ditujukan untuk dibaca orang lain, komentar tetap bermanfaat bagi penulis
program itu sendiri . Sekalipun pemrograman memahami betul tentang yang ditulis saat ini tanpa harus
menyertakan komentar ,pemrograman dapat lupa terhadap kode yang pernah ditulis di suatu saat nanti .
pada keadaan seperti ini , jelas bahwa komentar sangat bermanfaat .
Pada C++ ,suatu komentar diawali dengan tanda garis miring(//). Semua tulisan yang terletak sesudah
tanda // hingga akhir baris dengan sendirinya akan diperlukan sebagai keterangan. Bagi kompiler ,hal itu
tidak berguna dan akan diabaikan pada saat kompilasi .
Selain menggunakan // ,komentar pada c++ juga dapat ditulis dalam bentuk :
/* komentar */ .
Pada bentuk ini ,suatu komentar diawali dengan sepasang karakter /* dan diakhiri dengan sepasang
karakter */ .Sepasang karakter yang mengawali dan mengakhiri komentar dapat diletakkan pada baris
yang berbeda . contoh :
/* ini
Merupakan contoh komentar pada c++ yang juga biasa dipakai pada c */.
Bentuk ini bermanfaat untuk mengabaikan sejumlah pernyataan yang telah dibuat oleh pemrograman
karena suatu alasan ,misalnya sedang melacak kesalahan . dalam hal ini , pemrograman tidak perlu
mengawali setiap pernyataan yang ingin diabaikan untuk sementara dengan memggunakan //.
20
Namun,dalam praktik kebanyakan pemrograman c++ lebih menyukai untuk menggunakan komentar
berupa // .
Pengujian program harus dilakukan melalui command prompt di Window (atau shell di unix / linux ) .
berikut adalah mekanis meuntuk mengaktifkan command prompt di Windows 8 .
1. Klik tombol start milik Windows .
2. Ketikkan command .
Dengan cara seperti itu, jendela command prompt berikut akan ditampilkan .
D:\Latcpp>_
21
Latihan :
1. Buatlah program untuk menghitung nilai rata-rata dari seorang siswa, dengan ketentuan sebagai
berikut :
Nama siswa, Nilai Pertandingan I, Nilai Pertandingan II, Nilai Pertandingan III diinput.
Nilai rata-rata merupakan hasil dari Nilai Pertandingan I, II, dan III dibagi dengan 3.
Tampilan yang diinginkan sebagai berikut.
Layar Masukan
Layar Keluaran
2. Buatlah program untuk menghitung nilai akhir seorang siswa dari kursus yang diikutinya.
Dengan ketentuan sebagai berikut :
Nilai Siswa, Nilai Keaktifan, Nilai Tugas, dan Nilai Ujian diinput.
Proses yang dilakukan untuk mendapatkan nilai murni dari masing-masing nilai, adalah
-Nilai Murni Keaktifan = Nilai Keaktifan dikalikan dengan 20%
-Nilai Murni Tugas = Nilai Tugas dikalikan dengan 30%
-Nilai Murni Ujian = Nilai Ujian dikalikan dengan 50 %
-Nilai Akhir = Nilai Murni Keaktifan + Nilai Murni Tugas + Nilai Murni Ujian
Tampilan yang diinginkan sebagai berikut :
Layar Masukan
22
Layar Keluaran
Jawaban nomor 1.
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
rata= (a=b=c)/3;
getch(); // fungsi getch gunanya untuk menahan agar tidak ke ke akhir program /
harus ada librari conio.h
return 0;
}
23
Hasil dari program
Jawaban nomor 2.
getch();
return 0;
}
24
Hasil program
25
BAB III
ELEMEN DASAR C++
26
3.2.2 Huruf Kecil dan Huruf kapital Berbeda
Di C++, huruf kecil dan huruf kapital di nama pengenal tidak dianggap sama.sifat ini
dikenal dengan case sensitive. Itulah sebabnya, pegawai seperti NAMA, Nama dan nama
adalah dua nama pengenal yangberbeda. Beberapapemrograman C++ menggunakan huruf
kapital untuk menyatakan awal kata khusus untuk kata kedua dan seterusnya dalam suatu
pengenal.model ini dikenal dengan nama punuk unta. Contoh ;
gaji pegawai (sebagai pengganti gaji_pegawai);
nomor induk (sebagai pengganti nomor_induk).
Pada contoh di atas 2semester bukan penegenal karena tidak diawali dengan huruf atau
garis-bawah. Begitu nama-barang, #brg dan nama barang, sebab karakter - , #,
maupun spasi tidak dapat digunakanuntuk membentuk nama pengenal.
Untuk menghindari kesalahan, pengenal tidak boleh mengguakan nama yang tergolong
sebagai kata kunci (dilihat subbab 3.3). Harus dihindari pemakaian pengenal yang dipakai
untuk nama fungsi, konstanta, variablel, ataupun hal lain yang digunakan sebagai pustaka C++
(misalnya: cout).
27
Catch Int Thread-local
Char Long Throw
Char16_t Mutable True
Char32_t Namespace Try
Class New Typedef
Compl Nowexpect Typeid
Const Not Typename
Constexpr Not_eq Union
Const_cast Nullptr Unsigned
Continue Operator Using
Decltype Or Virtual
Default Or_eq Void
Delete Private Volatile
Do Protected Wchar_t
Double Public While
Dynamic_cast Register Xor
else Reinterpret_cast Xor_eq
28
Variable ini dapat menampung bilangan antara 10 ^-38 sampai
dengan 10^38
Double 8 byte Menyatakan bilangan real dengan ketelitian tinggi (16 digit).
Variable ini dapat menampung bilangan antara 10^-308 sampai
dengan 10^308
long double 12 byte Menyatakan bilangan real dengan ketelitian tinggi (19 digit).
Variabel dengan tipe ini dapat menampung bilangan antara 10^-
4932 sampai dengan 10^4932. Di beberapa kompiler C++, long
double adalah sinonim double
Bool 1 byte Menyatakan Boolean, dengan kemungkinan nilai berupa true atau
false
Char 1 byte Menyimpan sebuah karakter, berupa huruf seperti A dan B digit
seperti 0 dan 9, atau symbol seperti * dan &. Tipe seperti ini
bermanfaat misalnya untuk menyimpan skor ujian (berupa A, B,
C, D, atau E)
Untuk program ukuran memori yang diperlukan oleh suatu tipe data, operator sizeof dapat
dipakai.Pogram berikut memperlihatkan contoh penerapan operator sizeof untuk berbagai tipe
data primitif di C++.
#include <iostream>
using namespace std;
int main ()
{
cout << "UKuran char : "<< sizeof (char) << endl;
cout << "Ukuran bool : "<< sizeof (bool) << endl;
cout << "Ukuran int : "<< sizeof (int) << endl;
cout << "Ukuran short : "<< sizeof (short) << endl;
cout << "Ukuran long : "<< sizeof (long) << endl;
cout << "Ukuran long long : "<< sizeof (long long) << endl;
cout << "Ukuran float : "<< sizeof ( float) <<endl;
cout << "Ukuran double : "<< sizeof (double) << endl;
cout << "Ukuran long double : "<< sizeof ( long double) << endl;
return 0;
}
Hasil eksekusi program:
Ukuran char :1
Ukuran bool : 1
Ukuran int: 4
Ukuran short : 2
Ukuran long : 4
Ukuran long long : 8
Ukuran float : 4
Ukuran double : 8
Ukuran long double : 12
29
3.5 Variabel dan Konstanta
Data di C+ dapat dibedakan menjadi dua golongan:
Variabel
konstanta
Variabel digunakan dalam program untuk menyimpan suatu nilai dan nilai yang berada
di dalamnya dapat diubah selama program dieksekusi konstanta menyatakan nilai tetap.
30
Suatu pertanyaan lain mungkin timbul: “Kapankah saya harus menggunakn tipe int dan
tipe long?”. Tentu hal ini didasarkan oleh kemungkinan nilai yang akan ditampung di variabel.
Sebagai contoh, nilai yang akan ditampung di suatu variabel tidak melebihi 32767 tetapi juga
tidak kurang dari -32769, pilihannya adalah tipe short. Ini digunakan tipe data yang
membutuhkan memori yang paling sedikit tetapi semua kemungkinan nilai dapat tertampung.
31
\n Karakter newline (pindah baris)
\r Karakter carriage return (ke awal baris)
\t Karakter tab horizontal
\v Karakter tab vertical
\\ Karakter \
\’ Karakter ‘
\” Karakter “
\? Karakter ?
\ooo Karakter yang nilai oktalnya adalah ooo (tiga digit oktal)
\xhh Karakter yang nilai heksadesimalnya adalah hh (dua digit heksadesimal)
Contoh program yang melibatkan deklarasi variabel bertipe char dapat dilihat
berikut ini:
#include <iostream>
using namespace std;
int main()
{
char kar; //Deklarasi variabel kar
kar = 'A'; //Deklarasi 'A' ke variabel kar
cout << "Isi kar = "<< kar<< endl;
kar= 66;
cout << "Isi kar = " << kar << endl;
return 0;
}
Contoh di atas memperlihatkan bahwa suatu nilai bilangan bulat seperti 66 juga dapat
diberikan ke variabel bertipe char, yakni:
kar = 66;
variabelchar akan berisi karakter yang nilai ASCll-nya adalah 66. Nilai ASCll suatu karakter
diperlihatkan di lampiran.
Hasil eksekusi program tipechar.cpp:
Isi kar = a
Isi kar = b
32
Pada contoh program tipechar.cpp, karakter newline(‘\n’) di akhir setiap
pernyataan coutdimaksudkan untuk berpindah baris. Namun, posisi karakter seperti itu
lazimnya diisi dengan endl.
int main()
{
short bil; //Deklarasi variabel bil
bil = -66;
cout << "Isi bil = " << bil << endl;
bil = 75000;
cout << "Isi bil = " << bil << endl;
return 0;
}
33
3.5.6 Variabel dan Konstanta Bertipe Long
Untuk memproses bilangan bulat yang nilainya lebih besar daripada tipe int, tipe long
data dipakai. Suatu variabel bertipe long dideklarasikan dengan cara seperti di bawah ini:
long jum_penduduk;
pada contoh tersebut, jum_pendudukan(misalnya untuk menyatakan jumlah penduduk di
Indonesia) dideklasikan bertipe long. Dengan demikian, variabel dapat menampung nilai
ratusan juta.Table 3.3 memperlihatkan jangkauan tipelong.
Adapun konstanta bertipe long dapat ditulis dengan dengan akhiran L. sebagai contoh,
170123456L
menyatakan konstanta bertipe long.
Contoh program yang melibatkan data bertipe long.
#include <iostream>
using namespace std;
int main ()
{
long jum_penduduk; //Deklarasi variabel bertipe long
jum_penduduk = 170123456L;
return 0;
}
34
3.5.7 Variabel dan Konstanta Bertipe float, double, dan long double
Untuk memproses bilangan yang mengandung nilai pecahan, tipe float, double dan
long double dapat dipakai. Ketiga tipe yang berhubungan dengan bilangan pecahan
mempunyai perbedaan dalam hal:
presisi data;
jangkauan nilai yang dicakup.
Contoh deklarasi variabel untuk menampung bilangan pecahan:
float panjang; //variabel panjang bertipe float;
//phi bertipe double
double phi; //tetapan bertipe long double
bilangan seperti 3.14159 disebut sebagai konstanta bilangan pecahan. Tanda titik menyatakan
pemisah antara bagian bulat dan pecahan. Bilangan mempunyai bagian bulat berupa 3 dan
pecahan berupa 0,14159.
Nilai bilangan dapat dinyatakan dalam bentuk eksponensial. Sebagai contoh,
2756.3
Dapat ditulis menjadi salah satu dari dua notasi berikut:
2.7563E+4
2.7563e+4
Adapun
0.0123
dapat ditulis menjadi salah satu dari dua notasi berikut:
1.23E-2
1.23e-2
Program berikut menunjukkan beberapa bentuk penulisan bilangan pecahan yang mempunyai
makna sama:
35
#include <iostream>
using namespace std;
int main()
{
float suhu;
suhu = 1.23e2;
cout << "Isi suhu = " << suhu << endl;
suhu = 1.23E2;
cout << "Isi suhu = " << suhu << endl;
suhu = 123.0;
cout << "Isi suhu = " << suhu << endl;
return 0;
}
Contoh berikut menunjukkan presisi antara dua tipe data yang berhubungan dengan bilangan
pecahan:
#include <iostream>
#include <iomanip> // Diperlukan untuk setprecision()
using namespace std;
int main ()
{
float a;
double b;
a = 56.0123456789123456789012345;
b = 56.0123456789123456789012345;
return 0;
}
36
Pada program di atas, baris berupa
#include <iomanip>
Perlu disertakan disebabkan program melibatkan manipulator bernama setprecision (lihat
pembahasan di Bab 5).Manipulator digunakan menampilkan jumlah digit di belakang tiitik
desimal.
Hasil eksekusi program adalah sebagai berikut:
Isi a = 56.0123443603515625
Isi b = 56.021345678912346614
Tampak, meskipun nilai yang diberikan sama, tetapi hasil program di atas menunjukkan
bahwa tingkat presisi variabel berbeda (lihat Gambar 3.2).
56.0123456789123456789012345
Presisi 7 digit
43603515625
56.01234
Presisi 16 digit
56.01234567891 6614
234
Gambar 3.2 Perbedaan presisi pada bilangan bertipe float dan double
37
tertentu di dalam jangkauan tersebut (misalnya 56789123456789) akan disimpan di dalam
memori berdasarkan nilai terdekatnya, bukan nilai yang sesungguhnya.
#include <iostream>
using namespace std;
int main()
{
bool bersih;
bersih = true;
cout << "bersih = " << bersih << endl;
bersih = false;
cout << "bersih = " << bersih << endl;
bersih = -1;
cout << "bersih = " << bersih << endl;
bersih = 0;
cout << "bersih = " << bersih << endl;
return 0;
}
Bersih = 1
Bersih = 0
Bersih = 1
Bersih = 0
38
Hasil di atas memperlihatkan bahwa nilai benar dinyatakan dengan 1 dan nilai salah
dinyatakan dengan 0.
int main ()
{
int jumlah = 10; // inisialisasi
float harga_per_unit = 17.5; // inisialisasi
return 0;
}
Jumlah = 10
Harga per unit = 17.5
39
Inisialisasi terhadap suatu variabel dengan menggunakan ungkapan diperkenankan. Contoh:
float dua_phi = 2 *3.14;
Contoh program:
#include <iostream>
using namespace std;
int main()
{
float dua_phi = 2 * 3.14;
return 0;
}
int j = 77;
cout<< “Nilai j = “<<j<<endl;
pada contoh tersebut, tampak bahwa sesudah pernyataan
40
cout<<”Nilai i= “<<i<<endl;
terdapat pernyataan deklarasi variabel, yaitu untuk mendeklarasikan variabel j.
contoh program:
#include <iostream>
using namespace std;
int main ()
{
int i = 10;
cout <<"Nilai i = "<< i << endl;
int j = 77;
cout <<"Nilai j = "<< j << endl;
return 0;
}
Nilai i = 10
Nilai j = 77
Signed long int Long int, long, signed long, int -2.147.483.648 s/d 2.147.483.647
41
Unsigned char Tidak ada 0 s/d 225
Unsigned short int Unsigned short 0 s/d 65.545
Unsigned int Unsigned long 0 s/d 4.294.967.295
Unsigned long int Unsigned long 0 s/d 4.294.967.295
Adapun pemodifikasi tipe signed merupakan bawaan tipe dasar, yang menyatakan bahwa data
dapat bernilai positif maupun negatif. Contoh program berikut menunjukkan efek penugasan nilai
negatif pada variabel yang bertipe unsigned int dan int (signed int).
#include <iostream>
using namespace std;
int main ()
{
int x; //signed int
unsigned int y;
x = -1;
cout << "x = " << x << endl;
y = -1;
cout << "y = " << y << endl;
return 0;
}
Hasil eksekusi program:
X = -1
Y = 4294967295
Tampak, bahwa nilai yang diberikan ke x dan y sama-sama bernilai -1, yang tersimpan pada kedua
variabel berbeda. Variabel pertama, yakni x, dapat menyimpan nilai negatif, sedangkan variabel y
menampung bilangan positif karena dedeklarasikan sebagai unsigned.
42
3.7 Konstanta Oktal dan Desimal
Selain dalam bentuk desimal (sistem bilangan dengan basis 10), konstanta bilangan bulat (char,
int, short dan long) dapat disajikan dalam bentuk sistem oktal (sistem bilangan dengan basis 8)
ataupun sistem heksadesimal (sistem bilangan berbasis 16).
int main ()
{
int a, b;
cout << "a = " << a << ", b = " << b << endl;
return 0;
}
Hasil eksekusi program:
A = 8, b=16
43
3.8 Konstanta String
Konstanta string merupakan deretan karakter yang diawali dan diakhiri dengan tanda
petik ganda (“). Contoh:
“selamat belajar C++”
Konstanta string dnegan sebuah kararter berbeda, dengan konstanta karakter. Konstanta karakter
diawali dan diakhiri tanda petik tunggal , sedangkan string diawali dan diakhiri tanda petik
ganda. Jadi,
“a”
Tidaklah sama dengan:
‘a’
Sebab, “a” berarti konstanta string, sedangkan ‘a’ adalah konstanta karakter. Suatu
konstanta string dapat mengandung karakter yang menggunakan tanda \ (karakter escape
sequence). Contoh:
“\n”
merupakan konstanta yang terdiri atas sebuah karakter newline.
Program berikut menunjukkan contoh sebuah konstanta string yang melibatkan karakter
khusus berupa tanda petik ganda:
#include <iostream>
using namespace std;
int main ()
{
cout<< "\"Tidurlah. Hari sudah larut malam, nak\", kata ibu."
<< endl;
return 0;
}
Pada contoh di depan, \” akan menghasilkan karakter petik ganda. Hasil program:
44
3.9 Konstanta Bernama
C++ pembuatan suatu konstanta bernams disebut konstanta yang dideklarasikan . hal ini
dilakukan dengan menggunakan kata kunci const. bentuk sederhananya seperti berikut:
const tipe nama_konstanta = nilai;
Contoh:
const float PHI = 3.141592;
Pada contoh di atas, PHI adalah konstanta bernama yang bertipe float dengan nilai 3.141592
(Gambar 3.3).
Merupakan konstanta bernama
#include <iostream>
using namespace std;
int main ()
{
const float PHI = 3.141592;
float jari_jari,
luas,
keliling;
jari_jari = 7;
luas = PHI * jari_jari * jari_jari;
keliling = 2 * PHI * jari_jari;
return 0;
}
45
Program digunakan untuk menghitung luas dan keliling lingkaran. Dalam hal iniPHI diciptakan
sebagai knstanta.
Hasil eksekusi program:
Luas = 153.938
Keliling = 43.9823
Keuntungan pemakaian konstanta bernama pada contoh program lingkaran.cpp adalah untuk
menghindari salah tulis terhadap nilai 3.141592, yang dipakai tiga kali dalam program. Pernyataan
yang digunakan untuk menghitung luas dan keliling lingkaran dapat ditulis menjadi:
luas = 3.141592 * jari-jari * jari-jari;
keliling = 2*3.141592*jari-jari;
Sebagai contoh, nilai π pada perhitungan luas ditulis bernilai 3.14, tetapi pada perhitungan keliling
ditulis menjadi 3.14.dengan menggunakan konstanta bernama, kesalahan seperti ini dapat dihindari.
Penyebabnya, kesalahan penulisan nama konstanta akan terdeteksi oleh kompiler sewaktu kompilasi.
46
BAB IV
OPERATOR DAN UNGKAPAN
4.1 Pengantar Operator
Operator merupakan simbol yang biasa dilibatkan dalamprogram untuk melakukan sesuatu
operasi atau manipulasi, misalnya untuk:
1. Menjumlahkan dua nilai
2. Memberikan nilai ke suatu variabel
3. Membandingkan kesamaan dua nilai
C++ menilai operator jauh lebih banyak daripada bahas-bahasa pemrograman lainnya.Sebagian
operator memiliki C++ tergolong sebagai operator binary, yaitu operator yang dikenakan terhadap dua
nilai (operand). Contoh: A = b .Simbol + merupakan operator untilk melakukan operasi penjumlahan
dari kedua operand_nya (yaitu a dan b). Karena operator penjumlahan melibatkan dua
operand,operator ini tergolong sebagai operator binary. Contoh lain: +c. Simbol - (minus) juga
merupakan operator. Simbol ini termasuk sebagai opertor yang hanya memiliki sebuah operand.
Selain operator yang bersifat binary maupun unary, terdapat pulaoperator tenary yakni operator
yang melibatkan tiga operand. Tabel 4.1 memperlihatkan perbedaan dan contoh operator
inary,binary,danternary.
Tabel 4.1 Sifat operator
Sifat keterangan Contoh
unary operator ini hanya melibatkan satu operand -1
Binary Operator ini melibatkan dua operand 1+2
ternary Operator ini hanya melibatkan tiga operand (a + b) ? a :
b
47
4.3 OPERATOR ARITMETIKA
Operator untuk operasi aritmetika yang tergolong sebagai operator binary dapat dilihat di Tabel 4.2
Tabel 4.2 operator aritmetika
Operator Keterangan Contoh
* Perkalian 2*3
/ Pembagian 7/2
% Sisa 7%2
pembagian
+ Penjumlahan 5+4
- Pengurangan 5–4
Adapun operator yang tergolong sebagai unary ditunjukan di Tabel 4.3
Tabel 4.3 Operator unary aritmetika
Operator Keterangan Contoh
- Tanda minus -2
+ Tanda plus +4
Contoh pemakaian operator arurmetika adalah untuk memperoleh nilai diskriminan persamaan
kuadrat, yang melibatkan operator penjumlahan, pengurangan dan perkalian: D = b2-4ac.
Pernyataan pada C++ untuk mengimplementasiakn persamaan tersebut seperti berikut ini: D = b
* b - * a * c;
Pemberian spasi pada pernyataan sepert di atas hanya brsifat opsional. Tujuan penyisipan
hanyalah untuk menjaga agar persamaan yang trkandun dalam pernyataan mudah dibaca oleh
orang. Dengan demikain, pernyataan di depan dapat ditulis menjadi: 1=b*b-4*a*c;. Namun,
cara ini menjadikan persamaan tersebut sulit dibaca.
Contoh program:
#include <iostream>;
using namespace std;
int main ()
{
int a, b, c, d;
a = 5;
b = 6;
c = 4;
d = b * b -4 * a * c;
cout << " D= " << a << d << endl;
return 0;
}
Operator seperti penjumlahan, pengurangan, perkalian, dan pembagian merupakan hal yang
umum. Adapun operator sisa pembagian (operator modulus) yang berupa % ad baiknya untuk
diterangkan lebih lanjut. Operator ini diterapkan pada operand bertipe bilangan bulat. Supaya
lebih jelas, perhatikan beberapa contoh berikut:
7%2→1 Sisa pembagian bilangan 7 dengan 2 adalah 1
6%2→0 Sisa pembagian bilangan 6 dengan 2 adalah 0
8%3→2 Sisa pembagian bilangan 8 dengan 3 adalah 2
48
Contoh program:
#include <iostream>;
using namespace std;
int main ()
{
cout<< 5 % 7 << endl;
cout<< 6 % 7 << endl;
cout<< 7 % 7 << endl;
cout<< 8 % 7 << endl;
cout<< 9 % 7 << endl;
return 0;
}
Kegunaan operator % antara lain untuk menentukan suatu bilangan bulat termasuk ganjil
atau genap, berdasarkan logika: “Jika bilangan habis dibagi dua (sisanya nol), bilangan genap.
Sebalinya, bilangan termasuk ganjil”.
Jika operator memiliki prioritas sama (di Tabel 4.4 terletak pada baris yang sama), operator
yang terletak di sebelah kiri dalam suatu ungkapan ynag akan diutamakan untuk dikerjakan
terlebih dahulu.
Contoh 1: X = 2 + 3 * 2;. Pernyataan ini memberikan nilai 8 ke x disebabkan 3 * 2 dikerjakan
49
terlebih dahulu (mengingat * mempunyai priorita lebih tinggi daripada -;. Pernyataan di atas
identik dengan
Contoh 2: X = 2 * 3 % 2;. Operator * dan % mempunyai prioritas sama. Namun, karena yang
terletak di sebelah kiri adalah *, maka 2*3 akan dikerjakan terlebih dahulu, dengan demikian,
pernyataan ini identik dengan: X = (2 * 3) * 2;. Tanda kurung bisa digunakan untuk mengubah
urutan pengrjaan. Sebagai contoh, X = (2 + 3) * 2;. Akan memberikan nilai 10 ke x, sebab 2 + 3
dikerjakan terlebih dahulu dan hasilnya dikalikan dengan 2.
Contoh program:
#include <iostream>
using namespace std;
int main ()
{
int x;
x = 2 + 3 * 2;
cout << "x = " << x << endl;
x = (2 + 3) * 2;
cout << "x = " << x << endl;
return 0;
}
Hasil eksekusi program:
50
4.5.3 Penugasan Berganda
Suatu penugasan dapat berbentuk seperti berikut:
A = b = c = d = e = 1;
Pada bentuk seperti itu, mula-mula e diisi dengan 1. Kemudian, d diisi dengan e (yang berarti
diisi dengan Lalu, c diisi dengan isi d, dan seterusnya. Urutannya seperti berikut:
E = 1;
D = e;
C = d;
B = c;
A = b;
Dengan demikian, a,b,c,d, dan e berisi 1 setelah pernyataan tersebut dieksekusi.
Operator penugasan juga sering dijumpai pada pengulangan proses semacam berikut:
While (b < 10)
{
...
}
Pada contoh di atas, bagian {} akan diulang selama b bernilai kurang dari 10. Jika kondisi b < 10
tidak terpenuhi, operasi while dihentikan.
Operator penaikan digunakan untuk menaikan nilai variabel sebesar satu, sedangkan operator
penurunan dipakai untuk menurunkan nilai variabel sebesar satu. Penempatan operator terhadap
variabel dapat dilakukan di muka atau di belakangnya. Contoh:
X = x + 1;
Y = y – 1;
Dapat ditulis menjadi:
X++;
Y--;
Pada contoh di atas, penempatan operator penaikan satu penurunan di depan atau di belakang
variabel tidak berbeda. Namun, sesungguhnya perbedaan kedua posisi ada, walau pada contoh
tersebut tidak terlihat.
51
4.6.1 Penaikan di Belakang
Efek peletakan tanda ++di belakang variabel ditunjukkan di program berikut:
Contoh program:
#include <iostream>
using namespace std;
int main ()
{
int r = 10, s;
s = 10 + r++ ;
cout << "r = "<< r << endl;
cout << "s – " << s << endl;
return 0 ;
}
Hasil program:
Pada contoh di atas, a diisi dengan penjumlahan nilai 10 dan dan r. Dengan demikian, a akan
bernilai 20. Setelah r baru dinaikkan (karena itu operator ++ ditulis di belakang).Kedudukan operator
++ seperti itu disebut post-increment, yang artinya dinaikkan belakangan setelah penjumlahan antara
10 dan r dilaksanakan.Oleh karena itu, niai r berupa 11. Jadi; s = 10 + r++;
+ r; B = 10
R = r + 1;
4.6.2 Penaikan di Depan
Efek peletakan tanda ++ndi depan variabel ditunjukkan di program berikut:
Contoh Program:
#include <iostream>
using namespace std;
int main ()
{
int r = 10, s;
s = 10 + ++r;
cout << "r = "<< r << endl;
cout << "s = " << s << endl;
return 0;
}
Hasil program:
52
Pada contoh di atas, nilai r mula-mula dinaikkan terlebih dahulu (sebab operator ++ditempatkan di
depan r). Kedudukan operator ++ seperti itu dinamakan pre-increment. Kemudian, nilainya
dijumlahkan dengan 10 dan diberikan ke s. Dengan demikin, bernilai dan r sama dengan 11. Jadi,
S = 10 + ++r;
Identik dengan:
R = r + 1;
S = 10 +
4.7 OPERATORBITWISE (MANIPULASI BIT)
Untuk keperluan memanipulasi bit, C++ menyediaka enam operator seperti yang diperlihatkan di
Tabel 4.6:
Tabel 4.6 Operator Bitwise
Variabel Keterangan contoh
<< Geser bit ke kiri 25<<2
>> Geser bit ke 25>>2
kanan
& Operasi bit DAN 25&2
| Operasi bit 25| 2
ATAU
^ Operasi bit XOR 25^2
~ Operasi bit 25~2
BUKAN
Prioritas seluruh operator bitwise diperlihatkan di Tabel 4.7.seluruh operator ini hanya dapat
dikenakan pada operand bertipe bilangan bulat atau karakter.
Tabel 4.7 prioritas operator bitwise
Variabel Keterangan
Tertinggi ~
>><<
&
^
Terendah |
53
7 6 5 4 3 2 1 0
1 0 0 1 1 1 1 0
=158
Posisi bit
Gambar 4.2 Penomoran bit
Contoh program:
#include <iostream>
using namespace std;
int main ()
{
int x = 93;
cout << "Nilai x semula = " << x << endl;
x = x << 1;
cout << "Nilai x kini = " << x << endl;
return 0;
}
Hasil program:
Jika x bernilai 93, kemudian digeser ke kiri satu bit, maka hasilnya adalah 186. Penjelasannya
ditunjukkan di Gambar 4.3.
54
=93
7 6 5 4 3 2 1 0
0 1 0 1 1 1 0 1
Geser ke kiri
1 bit
1 0 1 1 1 0 1 0
=186
Contoh program:
#include <iostream>
using namespace std;
int main ()
{
int x = 93;
cout << "Nilai x semula = " << x << endl;
x = x >> 1;
cout << "Nilai x kini = " << x << endl;
return 0;
}
Hasil program:
Bila x bernilai 93 dan kmudian digeser ke kanan 1 bi, hasilnya adalah 46.Penjelasannya diperlihatkan
di Gambar 4.4.
55
7 6 5 4 3 2 1 0
0 1 0 1 1 1 0 1
=43 Geser ke kanan 1
bit
0 0 1 0 1 1 1 0
=40
Di bagian paling kiri selalu disisipi dengan nol (sebanyak bit yang digeser)
b. Operator Dan
Simbol operator dan berupa &, dengan bentuk penggunaannya seperti berikut: Operand1
& operand2. Pada operasi dengan dan, hasil operai bit adalah seperti berikut:
1. Hasil 0 kalau dari dua bit yang dibandingkan ternyata ada yang bernilai 0;
2. Hasil 1 kalau dua bit yang dibandingkan sama-sama bernilai 1.
Seluruh kemungkinan operator dengan & diperlihatkan di Tabel 4.9
56
0 1 0
1 0 0
1 1 1
c. Operator Xor
Simbol operator xor (exclusive or) berupa ^, dengan bentuk penggunaannya seperti berikut:
Operand1 ^ operand2
Pada operasi dengan xor, hasil operasi per bit adalah sebagai berikut:
1. Hasil 1 kalau satu bit dari kedua bit adalah sebagai berikut:
2. Hasil 0 untuk kondisi yang lain.
#include <iostream>
using namespace std;
int main ()
{
unsigned short int nilai = 81;
unsigned short int cadar = 99;
unsigned short int a, b, c;
a = nilai | cadar; // operasi atau
b = nilai & cadar;// operasi dan
c = nilai ^ cadar; // operasi xor
cout << "a = " << a << endl;
cout << "b = " << b << endl;
cout << "c = " << c << endl;
return 0;
}
Hasil program:
57
d. Operator komplemen
Bentuk pemakaian operator komplemen:`operand. Operator ini mempunyai sifat membalik
(mengonversi) nilai setiap bit operand. Jika bit bernilai 1, hasilnya o, jika bit bernilai 0, hasilnya
1.
Tabel 4.11 operator komplemen
Bit Hasil
0 1
1 0
Contoh program:
#include <iostream>
using namespace std;
int main ()
{
unsigned short int nilai = 81;
unsigned short int a;
~ nilai; //Komplemen nilai
cout << "a = " << a<< endl;
return 0;
}
Hasil program:
58
4.8 OPERATOR MAJEMUK
C++ menyediakan operator yang dimaksudkn untuk memendekan penulisan operasi
penugasan samacam:
X = x + 2;
Y = y + 4;
Menjadi:
X += 2;
Y += 4;
Contoh program :
#include <iostream>
using namespace std;
int main ()
{
int x = 2; // Mula-mula, x bernilai 2
cout << "x = " << x <<endl;
x += 2;
cout<<"setelah x += 2, X= "<<x<<endl;
x *= 2;
cout<<"setelah x *= 2, X= "<<x<<endl;
return 0;
}
Hasil program:
59
4.9.1 Operator Relasi
Operasi relasi atau operator pembanding biasa digunakan untuk membandingkan dua
nilai. Keseluruhan operator relasi di C++ dilihat di Tabel 4.13
Tabel 4.13 operator relasi
operator Keterangan
== Sama dengan (bukan
penugasan)
!= Tidak sama dengan
> Lebih dari
< Kurang dari
>= Lebih dari atau sama dengan
<= Kurang dari atau sama
dengan
int main ()
{
int nilai;
nilai = 3 > 2; // Hasil ungkapan: benar
cout << "nilai = " << nilai << endl;
nilai = 2 > 3; // Hasil ungkapan: salah
cout << "nilai = " << nilai << endl;
// Menggunakan tipe bool
bool hasil;
hasil = 3 > 2; // Hasal ungkapan: benar
cout << "hasil = " << hasil << endl;
hasil = 2 > 3; // Hasil ungkapan:salah
cout << "hasil = " << hasil << endl;
return 0;
}
60
Hasil program:
int main ()
61
{
int bil_a = 53, bil_b = 6, terkecil;
terkecil = bil_a < bil_b ? bil_a: bil_b;
cout << "Bilangan Terkecil adalah " << terkecil << endl;
return 0;
}
Hasil program:
int main ()
{
int hasil;
hasil = 2 > 3, 3 > 2;
cout << "Hasil ungkapan: hasil 2 > 3, 3 > 2 -> " << hasil << endl;
hasil = 3 > 2, 2 > 3;
cout << "Hasil ungkapan: hasil 3 > 2, 2 > 3 -> " << hasil << endl;
return 0;
}
Hasil program:
62
4.12 Prioritas Operator
Agar tidak salah dalam menuliskan suatu ungkapan, pengetahuan tentang prioritas operator perlu
diketahui.Seluruh operator c++ beserta prioritasnya ditunjukan di table. Bebrapa operator tidak
dibahas di bab ini, melainkan dibicarakan di bab belakang.
Tabel 4.15 Prioritas operator C++
Simbol Nama Prioritas Urutan Pengerjaan
:: Resolusi lingkup TERTINGGI Kiri ke kanan
++ Post-increment
-- Post-decrement
() Pemanggilan fungsi
[] Elemen array
-> Pointer ke anggota struktur
. Anggota struktur, union atau kelas
++ Pre-increment Kiri ke kanan
-- Post-increment
! Logika bukan (NOT)
~ Bitwise komplemen
- Minus (unary)
+ Plus (unary)
& Alamat (address)
New Pengalokasian memori
Delete Dealokasi memori
Sizeof Ukuran tipe data
(tipe) Type casting
* Type casting
->* Dereferensi C++ Kiri ke kanan
() Dereferensi C++
* Kurung untuk ungkapan
/ Perkalian Kiri ke kanan
% Pembagian
+ Sisa pembagian (modulus)
- Penjumlahan Kiri ke kanan
<< Pengurangan
>> Geser kiri Kiri ke kanan
< Geser kanan
> Kurang dari Kanan ke kiri
Simbol Nama Prioritas Urutan Pengerjaan
> Lebih dari
<= Kurang dari atau sama dengan
>= Lebih dari atau sama dengan
== Sama dengan Kiri ke kanan
!= Tidak sama dengan
& Bitwise "dan" Kiri ke kanan
63
^ Bitwise "xor" Kiri ke kanan
| Bitwise "atau" Kiri ke kanan
&& Logika "dan" Kiri ke kanan
|| Logika "atau" Kiri ke kanan
?: Operator kondisi Kiri ke kanan
= Penugasan Kiri ke kanan
*= Operator majemuk
/= Operator majemuk
%= Operator majemuk
+= Operator majemuk
-= Operator majemuk
<= Operator majemuk
>>= Operator majemuk
&= Operator majemuk
^= Operator majemuk
|= Operator majemuk
, Operator koma TERENDAH Kiri ke kanan
Contoh 1: a = b = c;. Pada pernyataan tersebut, operator yang dilibatkan (=) mempunyai sifat
pengerjaan dimulai dari kanan. Oleh karena itu, b = c akan dikerjakan terlebih dahulu.
Contoh 2: x = 2 * 3 * 4;.Pada pernyataan tersebut 2 * 3 dikerjakan dahulu, setelah itu, hasilnya
dikalikan 4.
64
Contoh program:
#include <iostream>
using namespace std;
int main ()
{
int jumlah = 5;
float harga_per_unit = 5203.02;
double harga_total;
return 0;
}
Hasil Program:
65
berubah) . Suatu contoh pengonversian secara eksplisit dengan menggunakan operator cast dapat
dilihat berikut ini: Char kar = ‘A’;
Kaidah Pengonversian seperti diatas berasal dari bahasa C. Cara kedua bersifat spesifik pada
C++, yang tidak terdapat di bahasa C. caranya adalah dengan menggunakan bentuk seperti berikut:
Tipe_data (data). Sebagai contoh, (int) kar pada bentuk pertama dapat ditulis menjadi int (kar) .
Cara ini lebih disukai oleh pemrogram C++ daripada cara pertama, karena lebih memberikan
kejelasan.
Contoh program:
#include <iostream>
using namespace std;
int main ()
{
char kar = 'A';
cout << "Nilai ASCII" << kar <<":"<<int (kar)<< endl;
return 0;
}
Hasil program:
int main ()
{
char c;
int i;
float x = 176.5;
i = x;
c = i;
cout<< "Isi x ="<<x<<endl;
cout<< "Isi i ="<<i<<endl;
cout<< "Isi c ="<<c<<endl;
return 0;
}
Hasil program:
66
4.14 Fungsi Pustaka
Kadang-kadang,diperlukan untuk melakukan operasi seperti memperoleh akar kuadrat ataupun
memperoleh logaritma alamiah dari suatu nilai. Pada C++ memang tidak ada operator-operator yang
dikhususkan untuk melaksanakan operasi-operasi seperti itu.Namun, hal ini tidak berarti bahwa kita
tidak dapat melaksanakan operasi itu atau harus membangun sendiri suatu rutin untuk
mengimplementasikannya.C++ menyediakan sejumlah fungsi pustaka (library function) yang
dirancang untuk memenuhi solusi dari berbagai persoalan. Fungsi-fungsi pustaka yang tersedia antara
lain bermanfaat untuk:
1. Melaksanakan perhitungan aritmatika (akar kuadrat, eksponensial, logaritma alamiah, dan
sebagainya).
2. Konversi data.
3. Pemrograman grafika.
Contoh program:
#include <iostream>
#include <cmath>
using namespace std;
int main ()
{
cout<< "Akar 27 ="<<sqrt(27)<<endl;
return 0;
}
Hasil program:
67
BAB V
OPERASI MASUKAN DAN KELUARAN
5.1 COUT
Pemakaian cout telah diperkenalkan di Bab 3.Dengan menggunakan objek ini, pemograman dapat
meletakan suatu informasi ke standart output (normalnya berupa layar). Untuk menampilkan tulisan
C++ diikuti dengan ganti baris (newline), pemrograman bisa menggunakan pernyataan berikut:
Cout << “C++” << endl;
Untuk menampilkan tulisan “ Tanggal” diikuti dengan isi variabel tanggal dan kemudian karakter
newline, pernyataan berikut diperlukan:
Cout “Tanggal” : “ <<tanggal << endl;
Contoh program:
#include <iostream>
using namespace std;
int main ()
{
cout<< "hello"<<endl;
return 0;
}
Hasil program:
5.2 MANIPULATOR
Manipulator umumnya digunakan untuk mengatur tampilan data, misalnya untuk mengatur agar
suatu nilai ditampilkan dengan lebar sepuluh karakter dan diatur rata kanan terhadap lebar tersebut.
Tabel 5.1 Manipulator
Manipulator Keterangan
Menyisipkan newline dan mengirimkan isi penyangga keluaran ke
Endl peranti keluaran
Ends Menyisipkan karakter null
Flush Mengirimkan isi penyangga keluaran ke peranti keluaran
Dec Mengonversi ke bilangan berbasis 10
Hex Mengonversi ke bilangan berbasis 16 (heksadesimal)
Oct Mengonversi ke bilangan berbasis 8 (oktal)
setbase (int n) Mengonversi ke bilangan berbasis n (n=8,10,atau 16
setw (int n) Mengatur lebar field untuk suatu nilai sebesar n karakter
setfill (int n) Mengatur karakter pengisi berupa c
setprecision (int n) Mengatur presisi bilangan pecahan sebesar n digit
setiosflags (long f) Mengatur format yang ditentukan oleh f. Dalam hal ini, f adalah
68
tanda format yang tercantum di tabel 5.2
resetiosflags (long Menghapus format yang ditentukan oleh f. Dalam hal ini, f adalah
f) format di tabel 5.2
int main()
{
.0int nilai = 250;
69
cout<< nilai <<endl;
cout<< setbase(8)<< nilai <<endl;
cout<< setbase(16)<< nilai <<endl;
cout<< setbase(10)<< nilai <<endl;
return 0;
}
Agar data yang dikirimkan ke cout langsung ditransfer ke standard output, pemrogram
data menambahkan manipulator flush di akhir data. Kalau menggunakan endl,
sebenarnya manipulator ini identik dengan newline diikuti dengan flush. Dengan
demikian, tiga pernyataan berikut mempunyai makna sama:
cout << “C++” << flush;
cout<<“C++”<<endl;
cout<<“C++\n”<<flush;
.
5.2.7 Manipulator ends
Manipulator ends berfungsi untuk menambahkan karakter null (ASCll nol) ke deretan
suatu karakter. Misalnya jika ingin, mengirim sejumlah karakter ke file dan
mengakhirinya dengan karakter null. Contoh:
cout << ‘a’ << ‘b’ << ‘c’ << ends;
pernyataan di atas mengirimkan tiga karakter (a, b, dan c) serta sebuah null. Pada
layar,ends akan menimbulkan sebuah karakter kosong.
70
ios::fixed Memformat keluaran
dalam bentuk notasi
decimal
ios::dec Menformat keluaran
dalam basis 10 (desimal)
ios::oct Menformat keluaran
dalam basis 8 (oktal)
ios::hex Menformat keluaran
dalam basis 16
(heksadesimal)
ios::uppercase Menformat huruf pada
notasi heksadesimal
dalam bentuk huruf
capital
ios::showbase Menampilkn awalan 0x
untuk bilangan
heksadesimal atau 0
(nol) untuk bilangan
octal
ios::showpos Untuk menampilkan
tanda + pada bilangan
positif
5.2.9 TandaFormatios::showbase
return 0;
}
71
Jika program di atas dikompilasi dan kemudian dijalankan, hasilnya adalah sebagai berikut:
Tanpa ios::showbase:
37
1f
31
Dengan ios::showbase
037
0x1f
31
5.2.10 TandaFormatios::showpos
Tanda format ios::showpos digunakn untuk menampilkan data plus (+) pada bilangan positif.
Contoh:
//-----------------------------------------------
// Pemakaian ios::showpos untuk menampilkan
// tanda + pada bilangan positif
//-----------------------------------------------
#include<iostream>
#include<iomanip>
using namespace std;
int main()
{ int x = 27, y = -13;
cout<< " x = "<<x<<" dan y = "<< y <<endl;
cout<< setiosflags (ios::showpos);
cout<< " x = "<<x<<" dan y = "<< y <<endl; return 0;
}
x = 27 dan y = -13
x = +27 dan y = -13
72
5.2.11 Tanda Format ios::left dan ios::right
Dengan menggunakan tanda format ios::left atau ios::right, tampilan suatu
nilai dengan penentuan lebar tertentu (via setw () ) dapat diatur rata kiri dan rata
//---------------------------------------------
--
// Contoh pemakaian ios::left dan ios::right
//---------------------------------------------
--
#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
int x = 234, y = 567;
cout<< setw(5)<< x
<< setw(5)<< y <<endl;
cout<< setiosflags(ios::left);
cout<< setw(5)<< x
<< setw(5)<< y <<endl;
cout<< setiosflags(ios::right);
cout<< setw(5)<< x
<< setw(5)<< y <<endl;
return 0;
}
234 567
234 567
234 567
Pada tampilan f dan g pertama, setiosflags () belum dilibatkan. Hasilnya, nilai f dan g diatur
rata kanan terhadap tempat selebar lima karakter. Pada penampilan kedua, isi kedua variabel
ditampilkan rata kiri. Adapun terakhir kali, f dan g ditampilkan rata kanan secara exsplisit
melalui pemakaian tanda formatios::right.
Contoh penggunaan ios::left dan ios::right yang tepat antara lain untuk mengatur
tampilan nama seseorang dan jumlah gaju seperti terlihat di program dafgaji.cpp.Nama
orang diatur rata kiri dan rata gaji diatur rata kanan.
//-----------------------------------------------
// Contoh pemakaian ios::left dan ios::right
// untuk menampilkan daftar gaji
// sejumlah orang
//-----------------------------------------------
73
#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
cout<< setiosflags(ios::left)<< setw(25)<< " N A M A";
cout<< resetiosflags(ios::left);
cout<< setiosflags(ios::right) << setw(8) << " G A J I";
cout<< resetiosflags(ios::right)
<<endl;
cout<< setiosflags(ios::left)
<< setw(25)<< " Amir Hamzah";
cout<< resetiosflags(ios::left);
cout<< setiosflags(ios::right) << setw(8) << 750000;
cout<< resetiosflags(ios::right)
<<endl;
NAMA GAJI
Amir Hamzah 750000
Siti Markonah 1500000
Rudi Daholopus 900000
Rita Sudiro 780000
Ios::scientific
Format ini digunakan untuk menampilkan notasi eksponensial
Contoh:
74
123.56e+04
Ios::fixed
Format digunakan untuk menampilkan bilangan dalam notasi bukan eksponensial, untuk
melihat efek kedua tanda format tersebut, perhatikan contoh program berikut beserta
hasilnya.
//-----------------------------------------------
// Contoh ios::fixed dan ios::scientific
//-----------------------------------------------
#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
cout<< 123.45<< endl;
cout<< setiosflags(ios::fixed)<< 123.45 <<endl;
cout<< 123.45 <<endl;
cout<< resetiosflags(ios::fixed);
cout<< 123.45<< endl;
cout<< setiosflags(ios::scientific)<< 123.45 <<endl;
cout<< 12345.6789 <<endl;
cout<< resetiosflags(ios::scientific); return 0;
}
return 0;
}
Hasil eksukusi program upper.cpp:
1a
1A Huruf kapital karena efek ios::uppercase
75
Tampak bahwa setelah peritah berikut dieksekusi
cout<< setiosflags (ios::uppercase);
maka huruf yang digunakan dalam notasi heksadesimal berupa huruf kapital.
telah digunakan. Untuk kembali ke keadaan semula, perintah berikut perlu diberikan:
resetiosflags (ios::left)
Jika program di atas dikompilasi dan kemudian dijalankan, hasilnya seperti berikut:
Tampak, setelah
76
cout<< setiosflags (ios::showbase| ios::uppercase);
Bilangan 45 desimal atau 2d heksadesimal ditampilkan menjadi:
0x2D
Dalam hal ini,
0x adalah efek ios::showbase;
2D dengan D berupa huruf kapital adalah efek ios::uppercase.
Pada penampilan kedua, ternyata bilangan tersebut ditampilkan menjadi\;
2d
Hal ini berarti efek ios::showbase dan ios::uppercase sudah tidak ada.
Penyebabnya adalah adanya pernyataan:
cout<< resetiosflags (ios::showbase | ios:uppercase);
//-----------------------------------------------
// Contoh untuk menunjukkan efek manipulator
// setprecision()
//-----------------------------------------------
#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
float nilai = 123.45;
cout<< setiosflags(ios::fixed);
cout<<setprecision(0)<<nilai<<endl;
cout<<setprecision(1)<<nilai<<endl;
cout<<setprecision(2)<<nilai<<endl;
cout<<setprecision(3)<<nilai<<endl;
cout<<setprecision(4)<<nilai<<endl;
cout<<setprecision(5)<<nilai<<endl;
cout<<setprecision(6)<<nilai<<endl;
cout<<setprecision(7)<<nilai<<endl;
return 0;
}
Pada contoh di atas, nilai ditampilkan dengan berbagai jumlah digit pecahan. Jika program
dikompilasi dan dijalankan, hasilnya berupa seperti berikut:
123
123.4
123.45
123.45
123.4500
123.449997 77
123.4499969
Contoh berikut menunjukkan hasil yang terjadi kalau setw()dipakai, tetapi ios::fixed tidak
disertakan.
cout<<setprecision(0)<<nilai<<endl;
cout<<setprecision(1)<<nilai<<endl;
cout<<setprecision(2)<<nilai<<endl;
cout<<setprecision(3)<<nilai<<endl;
cout<<setprecision(4)<<nilai<<endl;
cout<<setprecision(5)<<nilai<<endl;
cout<<setprecision(6)<<nilai<<endl;
cout<<setprecision(7)<<nilai<<endl;
return 0;
}
1e+002
1e+002
1.2e+002
123
123.4
123.45
123.45
123.45
5.3 CIN
C++ menyediakan suatu objek bernama cin (baca:si in). Objek ini bermanfaat untuk membaca data
dari standard input (normalnya adalah keyboard).
78
Berikut adalah contoh hasil eksekusi program keyboard.cpp:
//-----------------------------------------------
// Contoh pembacaan data bertipe it dan float
// dari keyoard
//-----------------------------------------------
#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
int bil_x;
float bil_y;
return 0;
}
Fasilitas pemasukkan data dari keyboard adalah untuk membuat program yang membaca data dapat
diisikan oleh pemakai, contoh ditunjukkan di program fahkecel.cpp. digunakan untuk melakukan
konversi dari derajat fahrenheit ke derajat celcius. Nilai derajat fahrenheit dapat dimasukkan dari
keyboard sehingga Anda cukup mengompilasi program dan untuk melakukan konversi nilai yang
berbeda-beda.
//-----------------------------------------------
// Program ini digunakan untuk mengonversi
// derajat Fahrenheit ke Celcius.
// Derajat Fahrenheit dimasukkan dari keyboard
//-----------------------------------------------
#include<iostream>
using namespace std;
int main()
{
float fahren, celcius;
return 0;
}
Contoh hasil eksekusi program fahkecel.cpp:
cin>> bil_x>>bil_y;
return 0;
}
80
char karakter;
cout<<" Masukkan satu karakter: ";
cin>> karakter;
cout<<" Anda mengetikkan "<<karakter << endl;
cout<<" Masukkan satu karakter: ";
cin>> karakter;
cout<<" Anda mengetikkan "<<karakter << endl;
return 0;
}
Tampak bahwa pada contoh di depan, setiap karakter yang dimasukkan dari keyboard diakhiri dengan
enter. Contoh :
Dengan pengisian seperti itu, karakter akan diisi dengan b pada saat pernyataan
cin>karakter
dijalankan:
Anda dapat memanfaatkan cin.ignore()untuk mengabaikan kararter tersisa sampai enter.
//-----------------------------------------------
// Membaca karakter dengan cin
// dengan melibatkan cin.ignore()
//-----------------------------------------------
#include<iostream>
using namespace std;
int main()
{
char karakter;
cout<<" Masukkan satu karakter: ";
cin>> karakter;
cout<<" Anda mengetikkan "<<karakter << endl;
// Abaikan karakter tersisa
cin.ignore(255, '\n');
cout<<" Masukkan satu karakter: ";
cin>> karakter;
cout<<" Anda mengetikkan "<<karakter << endl;
return 0;
}
81
Perhatikan bahwa “ce” pada pemasukkan yang pertama diabalikan dan program tetap meminta
karakter kedua diketik dari keyboard. Hal ini terlaksana berkat perintah:
Cin.ignore (225, ‘\n’);
Digunakan untuk mengabaikan karakter tersisa (setelah satu karakter diambil oleh cin.ignore
(225,’\n’); sampai karakter newline(\n). angka 255 menyatakan jumlah karakter terbanyak
yang akan diabaikan.
contoh berikut menunjukkan penggunaan cin untuk membaca string dari keyboard
//-----------------------------------------------
// Membaca nama dengan menggunakann cin
//-----------------------------------------------
#include<iostream>
using namespace std;
int main()
{
string nama;
cout<<" Masukkan nama Anda: ";
cin>> nama;
cout<<" Hai, "<<nama<< "!"<< endl;
return 0;
}
Perintah digunakan untuk mendeklarasikan nama sebagai tipe string, yang memungkinkan untuk
menampung sejumlah karakter (string). Nama dapat dipakai untuk menyimpan nama orang.
//-----------------------------------------------
// Membaca nama orang menggunakan getline()
//-----------------------------------------------
#include<iostream>
using namespace std;
int main()
{
string nama;
cout<<" Masukkan nama Anda: ";
getline(cin,nama);
cout<<" Hai, "<<nama<< "!"<< endl;
return 0;
}
Contoh hasil eksekusi program:
82
5.5 CERR
Biasanya suatu pesan kesalahan ditampilkan dari suatu program C++ tidak dilakukan dengan cout,
melainkan dengan informasi yang bukan merupakan pesan kesalaham.Kedua jenis informasi dapat
dipilih melaui pengalihan arah/redirection.
Contoh:
Cerr<<”memori penuh. Program ini tidak dapat dijalankan” << endl;
Akan mengirimkan string
Jika program di depan dikompilasi dan kemudian dijalankan, hasilnya seperti berikut:
D:\Lap cpp>
83
BAB VI
OPERASI PENYELEKSIAN KONDISI
6.1 Pernyataan IF
Pernyataan if mempunyai pengertian, “Jika kondisi bernilai benar, maka perintah akan
dikerjakan dan jika tidak memenuhi syarat maka akan diabaikan”. Dari pengertian tersebut dapat dilihat
dari diagram alir berikut:
kondisi
perintah
If (kondisi)
Pernyataan;
Penulisan kondisi harus didalam tanda kurung dan berupa ekspresi relasi dan penulisan pernyataan dapat
berupa sebuah pernyataan tunggal, pernyataan majemuk atau pernyataan kosong. Jika pemakaian if
diikuti dengan pernyataan majemuk, bentuk penulisan sebagai berikut:
If (kondisi)
{
Pernyataan
……
}
Contoh:
Menentukan besarnya potongan dari pembelian barang yang diberikan seorang pembeli, dengan kriteria:
a. Tidak ada potongan jika total pembelian kurang dari Rp.50.000,-
b. Jika total pembelian lebih dari atau sama dengan Rp.50.000,-
Potongan yang diterima sebesar 20% dari total pembelian.
84
Contoh 1:
#include<stdio.h>
#include<conio.h>
#include<iostream>
int main()
{
double tot_beli, potongan=0, jum_bayar=0;
getch();
}
kondisi Salah
Benar
Perintah-1 Perintah-2
85
Bentuk umum dari pernyataan if
If (kondisi)
Perintah-1
else
perintah-2;
Perintah-1 dan perintah-2 dapat berupa sebuah pernyataan tunggal, pernyataan majemuk atau pernyataan
kosong. Jika pemakaian if-else diikuti dengan pernyataan, bentuk penulisannya sebagai berikut:
If (kondisi-1)
{
perintah-1;
……
}
else
{
perintah-2;
……
}
Contoh:
Menentukan besarnya potongan dari pembelian barang yang diberikan seorang pembeli, dengan kriteria:
-Jika total pembelian kurang dari Rp.50.000,- potongan yang diterima sebesar 5% dari total pembelian.
-Jika total pembelian lebih dari atau sama dengan Rp. 50.000,- potongan yang diterima sebesar 20% dari
total pembelian.
Contoh-2:
#include<stdio.h>
#include<conio.h>
#include<iostream>
using namespace std;
int main()
{
double tot_beli, potongan=0, jum_bayar=0;
86
Output yang akan dihasilkan, dari program contoh-2 diatas adalah:
if (syarat)
if(syarat)
-perintah;
else
if (syarat)
-perintah;
else
-perintah;
Contoh:
Suatu perusahaan memberikan komisi kepada para selesman dengan ketentuan sebagai berikut:
Bila selesman dapat menjual barang hingga Rp.20.000,- , akan diberikan uang jasa sebesar
Rp.10.000 ditambah dengan uang komisi Rp.10% dari pendapatan yang diperoleh hal itu.
Bila selesman dapat menjual barang diatas Rp.20.000,- ,akan diberikan uang jasa sebesar Rp.
20.000 ditambah dengan uang komisi Rp.15% dari pendapatan yang diperoleh hal itu.
Bila selesman dapat menjual barang diatas Rp.50.000,- ,akan diberikan uang jasa sebesar
Rp.30.000 ditambah dengan uang komisi Rp.20% dari pendapatan yang diperoleh hal itu.
87
Contoh-3:
#include<stdio.h>
#include<conio.h>
#include<iostream>
using namespace std;
int main()
{
float pendptan, jasa=0, komisi=0, total=0;
88
6.4 Pernyataan IF-ELSE MAJEMUK
Bentuk dari if-else bertingkat sebenarnya serupa dengan nested if, keuntungan penggunaan if-else
bertingkat dibanding dengan nested if adalah penggunaan bentuk penulisan yang lebih sederhana.
Bentuk penulisannya:
If (syarat)
{
-perintah;
-perintah;
}
else if (syarat)
{
-perintah;
-perintah;
else
{
-perintah;
-perintah;
}
Contoh:
Suatu perusahaan memberikan komisi kepada para selesman dengan ketentuan sebagai berikut:
Bila selesman dapat menjual barang hingga Rp.200.000,- , akan diberikan uang jasa sebesar
Rp.10.000 ditambah dengan uang komisi Rp.10% dari pendapatan yang diperoleh hal itu.
Bila selesman dapat menjual barang diatas Rp.200.000,- ,akan diberikan uang jasa sebesar Rp.
20.000 ditambah dengan uang komisi Rp.15% dari pendapatan yang diperoleh hal itu.
Bila selesman dapat menjual barang diatas Rp.500.000,- ,akan diberikan uang jasa sebesar
Rp.30.000 ditambah dengan uang komisi Rp.20% dari pendapatan yang diperoleh hal itu.
89
Contoh 4:
#include<stdio.h>
#include<conio.h>
#include<iostream>
int main()
{
int pendptan, jasa=0, komisi=0, total=0;
90
switch (ekspresi integer
atau
karakter )
{
case konstanta-1 :
... perintah;
... perintah;
break;
case konstanta-2 :
... perintah;
... perintah;
break;
......
......
default :
... perintah;
... perintah;
}
Setiap cabang akan dijalankan jika syarat nilai konstanta tersebut dipenuhi dan default akan dijalankan
jika semua cabang datanya tidak terpenuhi. Pernyataan break menunjukan bahwa perintah siap keluar dari
switch. Jika pernyataan ini tidak ada, maka program akan diteruskan kecabang-cabang yang lainnya.
Contoh-5:
#include<stdio.h>
#include<conio.h>
#include<iostream>
using namespace std;
main()
{
char kode;
cout<<"Masukkan Kode Barang [A..C] : ";
cin>>kode;
switch(kode)
{
case 'A' :
cout<<"Alat Olah Raga";
break;
case 'B' :
cout<<"Alat Elelktronik";
break;
case 'C' :
cout<<"Alat Masak";
break;
default:
cout<<"Anda Salah Memasukan kode";
break;
} getch();
}
91
Contoh-6:
#include<stdio.h>
#include<conio.h>
#include<iostream>
main()
{
char kode;
92
BAB VII
PROSES PENGULANGAN
Bila pernyataan didalam for lebih dari satu maka pernyataan-pernyataan tersebut harus
diletakkan didalam tanda kurung.
for ( inisialisasi; syarat pengulangan; pengubah nilai
pencacah)
{
pernyataan / perintah;
pernyataan / perintah;
pernyataan / perintah;
}
main()
{
int a;
for(a = 1; a <= 10; ++a)
cout<<a;
getch();
}
93
Output yang akan dihasilkan, dari program contoh-1 diatas adalah :
main()
{
int a;
for(a = 10; a >= 1; --a)
cout<<a;
getch();
}
94
Contoh-3 :
/* ----------------------------- */
/* Program for - bilangan ganjil */
/* ----------------------------- */
#include <stdio.h>
#include <conio.h>
#include <iostream>
using namespace std;
main()
{
int a;
for(a = 1; a <= 10; a+=2)
cout<<a;
getch();
}
return 0;
}
95
Contoh-5 :
/*---------------------*/
/*program menampilkan warna-2*/
/*--------------------------*/
#include<stdio.h>
#include<conio.h>
96
Output yang akan dihasilkan, dari program contoh-6 diatas adalah :
getch ();
}
97
bil++
Oleh karena kondisi bil >= 1 selalu bernilai benar ( karena bil bernilai 6 ), maka
pernyataan
cout<<bil<<” ”;
akan harus dijalankan.
Jika terjadi hal semacam ini, untuk menghentikan proses yang terus menerus semacam
ini dengan menekan tombol CTRL – PAUSE atau CRTL – BREAK, dapat juga
langsung klik kode Close Button.
b = a % 2;
getch ();
}
98
Output yang akan dihasilkan, dari program contoh-8 diatas adalah :
Bentuk umum perulangan while, dengan lebih dari perintah / pernyataan, sebagai
berikut:
while ( syarat )
{
pernyataan / perintah ;
pernyataan / perintah ;
}
Contoh-9 :
#include <stdio.h>
#include <conio.h>
#include <iostream>
{
cout << bil << " ";
++bil;
}
getch();
99
Output yang akan dihasilkan, dari program contoh-9 diatas adalah :
100
Do
pernyataan / perintah ;
while ( syarat ) ;
Bentuk umum perulangan do-while, dengan lebih dari perintah / pernyataan, sebagai
berikut :
Do
{
pernyataan / perintah ;
pernyataan / perintah ;
}
while ( syarat ) ;
Contoh-11 :
#include <stdio.h>
#include <conio.h>
#include <iostream>
101
break dikerjakan, maka eksekusi akan dilanjutkan ke pernyataan yang terletak sesudah akhir
dari badan perulangan ( loop ).
Contoh-12 :
#include <stdio.h>
#include <conio.h>
#include <iostream>
do
{
if (bil >= 6)
break;
cout << bil << " ";
}
while (bil++);
getch();
}
Output yang akan dihasilkan, progam contoh-12 diatas adalah :
102
Output yang akan dihasilkan, dari program contoh-13 diatas adalah :
103
BAB VIII
OPERASI STRING
Contoh-1 :
#include <string.h>
#include <ctype.h>
#include <iostream>
using namespace std;
int main()
{
char a1[20];
char a2[20];
104
Contoh-2 :
#include <conio.h>
#include <string.h>
#include <iostream>
Contoh-3 :
#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <iostream>
105
Output yang akan dihasilkan, dari program contoh-3 diatas adalah :
106
8.1.5 Fungsi strrev()
Fungsi ini digunakan untuk membalik letak urutan pada string. String urutan
paling akhir dipindahkan keurutan paling depan dan seterusnya. File header yang harus
disertakan adalah : string.h
Bentuk Penulisan :
strrev (str) ;
Contoh-5 :
#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <iostream>
107
cout<<"Masukan Sembarang Kata berupa angka = ";
gets(kata);
angka = atof(kata);
a = angka + 5;
cout<<"Hasil Perubahan ditambah dengan 5 = "<<a;
getch();
}
Contoh-7 :
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <iostream>
using namespace std;
int main()
{
char kata[20];
float angka, a, b;
108
Output yang akan dihasilkan, dari program contoh-7 diatas adalah :
int main()
{
char kata[20];
float angka, a, b;
109
8.2.4 Fungsi strlwr()
Fungsi ini digunakan untuk mengubah setiap huruf kapital ( huruf besar ) dalam
string menjadi huruf kecil. File header yang harus disertakan adalah : string.h
Bentuk Penulisan :
strlwr(str);
Contoh-9 :
#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <iostream>
using namespace std;
int main()
{
char kata[20];
cout<<"Masukan Sembarang Kata dengan Huruf Besar =";
gets(kata);
strlwr(kata);
cout<<"Hasil Perubahan = "<<kata;
getch();
}
Output yang akan dihasilkan, dari program contoh-9 diatas adalah :
int main()
{
char kata[20];
cout<<"Masukan Sembarang Kata dengan Huruf Kecil=";
110
gets(kata);
strupr(kata);
cout<<"Hasil Perubahan = "<<kata;
getch();
}
111