Anda di halaman 1dari 111

LAPORAN

ALGORITMA DAN PEMROGRAMAN I

Disusun Oleh :
Meliasih A1317049

PROGRAM STUDI TEKNIK INFORMATIKA


POLITEKNIK NEGERI TANAH LAUT
PELAIHARI
2017

1
BAB I
C++ DAN PEMROGRAMAN BERORIENTASI OBJEK

1.1 Pengertian Program dan Bahasa Pemrograman

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++.

1.2 Pengenalan C dan C++


Pencipta C adalah Brian W. Kernighan dan Dennis M. Ritchie sekitar tahun 1972. C adalah bahasa
pemograman terstruktur, yang membagi program dalam bentuk sejumlah blok. Tujuannya adalah untuk
memudahkan pembuatan dan pengembangan program.Program yang ditulis dengan menggunakan C
mudah sekali untuk untuk dipindahkan dari satu jenis mesin ke jenis mesin lainnya.Hal ini berkat adanya
standarisasi bahasa C yaitu berupa standar ANSI (American National Standards Institute) yang dijadikan
acuan oleh parak pembuat kompiler C.
C diambil sebagai landasan dari C++ lantaran sifat portabilitas C, yang memungkinkannya
diterapkan pada berbagai mesin, dari PC hingga mainframe, serta pada berbagai sistem operasi (DOS,
Unix, VMS, dan sebagainya. Keistimewaan C++ yang sangat berarti pada C++ adalah karena bahasa ini
mendukung pemograman yang berorientasi obbjek (PBO atau Object Oriented Programming). Oleh
karena itu, pemograman C pada tahap awal dapat berpindah jalur ke C++ setahap demi setahap. Pustaka-

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:

Contoh program dalam bahasa C:

#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 Dasar Pemograman Berorientasi Objek

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.

1.3.2 Fungsi Anggota, Metode, Data, dan Variabel Instan


Pada bahas pemrograman berorientasi objek, data yang melekat dalam suatu objek biasa disebut
variabel instan. Pada C++, istilah yang adalah data atau anggota data. Adapun fungsi yang melekat pada
suatu objek disebut fungsi anggota (memberfunction). Fungsi ini merupakan satu-satunya cara untuk
mengakses terhadap data objek. Untuk membaca suatu anggota data, Anda harus memanggil fungsi
anggota. Data bersifat tersembunyi bagi fungsi-fungsi diluar fungsi anggota.
Istilah yang umum untuk fungsi anggota pada bahasa pemrograman berorientasi objek adalah metode
(misalnya pada SmallTalk). Adapun fungsi anggota yang sering disebut pengiriman pesan ke objek .
namun, istilah yang terakhir ini tidak bisa digunakan pada C++.

Tabel 1.1 Istilah pada PBO dan C++ :

PBO C++
Variabel instan Data (anggota data)
Metode Fungsi anggota

1.3.3 Objek dan Kelas


Dalam terminologi pemograman berorientasi objek, objek adalah hasil cetakan kelas (class) karena
kelas dapat digunakan untuk membuat sejumlah objek.Cetakan donut dapat diibaratkan sebagai suatu
kelas.Dengan hanya menggunakan satu cetakan donut, sejumlah donut dapat diciptakan.Begittu juga,
sebuah kelas dapat dipakai untuk menciptakan sejumlah objek.

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.

1.4 Contoh Program C++, Kompilasi Hingga Pembentukan File.exe


Program C++ dapat ditulis dengan menggunakan sebarang editor teks, seperti EDIT (milik DOS),
Notepad (Windows), atau vi (Unix). Namun, beberapa tool pemrograman C++ seperti visual C++ dan
Codebloks menyediakan editor bawaan yang memungkinkan pemrogram menulis program tanpa
melibatkan editor lain. Contoh Program contoh.cpp dibawah ini.

#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.

Gambar 1.4.1 Proses pembentukan fileyang dapat dieksekusi

1.5 Instalasi CodeBloks


Tool yang dapat digunakan untuk membuat program C++ salah satunya adalah CodeBlock
Software ini dapat diunduh secara gratis di www.codeblock.orgdan dapat digunakan tanpa perlu
mengeluarkan uang sama sekali.
Di Cdyang disertakan bersama buku ini terdapat file bernama codeblock-12.11mingw-setup_user
(ada difolder Software di CD). File ini perlu diinstal agar dapat mempratikkan semua contoh yang
dibahas dibuku ini.
Cara untuk menginstal software tersebut dapat dilihat berikut ini :
1. Klik ganda pada codeblock-12.11mingw-setup_user. Langkah ini memunculkan kotak dialog
seperti berikut:

6
Gambar 1.5.1 Tampilan awal untuk menginstal CodeBlock

2. Klik pada tombol . Diperoleh tampilan seperti berikut:

Gambar 1.5.2 Konfirmasi lisensi

3. Klik pada tombol . Diperoleh tampilan seperti berikut :

7
Gambar 1.5.3 Pilihan komponen untuk instalasi

4. Klik pada tombol . Langkah ini menghasilkan tampilan seperti berikut :

Gambar 1.5.4 Pilihan folder destinasi instalasi

5. Ketikkan D:\CodeBlock (dengan asumsi Anda memiliki drive D)


6. Klik pada tombol . Langkah ini membuat instalasi dimulai dengan
tampilan sebagai brerikut :

8
Gambar 1.5.5 Keadaan ketika CodeBlock sedang diinstal

7. Tunggu sampai Anda menjumpai tampilan seperti berikut :

Gambar 1.5.6 Konfirmasi untuk menjalankan CodeBlock

8. Klik pada tombol


9. Klik pada tombol

9
Gambar 1.5.7 Keadaan ketika instalasi CodeBlock telah berakhir

10. Klik pada tombol saat muncul tampilan berikut :

Gambar 1.5.8 Tampilan untuk mengakhiri pemasangan CodeBlock

1.6 Cara Pemakaian CodeBloks


CodeBlock dapat dieksekusi dengan cara seperti berikut :
1. Melalui Window Explorer, klik pada folder CodeBlock di drive D
2. Klik ganda pada co deblock
3. Beberaoa saat akan muncul seperti berikut :

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

Gambar 1.6.2 Tampilan CodeBlocksaat siap digunakan

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 :

Gambar 1.6.3 Pengaturan kompiler

11
3. Klik pada . Tampilan berubah menjadi seperti berikut :

Gambar 1.6.4 Isi tab toolchain executable

4. Klik pada gambar . Langkah ini akan menampilkan kotak dialog berikutr :

Gambar 1.6.5 Hasil data kompiler

5. Klik pada tombol untuk menutup kotak dialog diatas.


6. Klik pada tombol untuk menutup kotak dialog Compiler settings.

1.7 Menuliskan Progam Dan Membentuk File Yang Dapat Di Eksekusi


Cara untuk menuliskan program C/C++ seperti berikut :
1. Klik pada menu File.
2. Klik pada New.
3. Klik pada File… Langkah ini memunculkan tampilan seperti berikut :

12
Gambar 1.6.6 Pilihan file yang diciptakan

4. Klik pada dan kemudian klik pada tombol . Tampilan yang muncul :

Gambar 1.6.7 Wizard untuk program C/C++

5. Klik pada tombol . Tampilan yang muncul seperti :

13
Gambar 1.6.8 Pilihan C++

6. Klik pada tombol jika C++ sudah terpilih. Tampilan yang muncul seperti :

Gambar 1.6.9 Penentuan nama dan lokasi program


7. Ketikkan misalnya D:\Latcpp\contoh.cpp pada kotak dibawah judul Filename with fullpath.

8. Klik pada tombol . Tampilan yang muncul seperti berikut :

9. Tuliskan progam seperti berikut :

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 :

Gambar 1.6.10 Hasil eksekusi program

13. Tekan sebarang tombol untuk menutup jendela didepan.

1.8 Proses Pemrograman Dengan CodeBloks, Termasuk Penanganan Kesalahan


Pemrograman tidak hanya mencakup aspek penulisan program, pembentukan file yang dapat
dieksekusi, dan melihat hasilnya. Dalam praktik, kegiatan penting lain yang dihadapi pemrograman
adalah cara memecahkan masalah supaya dapat dituangkan kedalam program dan mencari penyebab
kesalahan.
Pemecahan masalah dilakukan dengan mempelajari kode-kode yang tertulis oleh pemrogram lain,
yang dapat diperoleh misalnya di internet, dan memahami algoritma.
Langkah-langkah dalam pemrograman antara lain:
1. Mendefinisikan masalah
2. Menemukan solusi
3. Memilih algoritma
4. Melulis program
5. Menguji program
6. Menulis dokumentasi
7. Merawat program

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>

using namespace std;

int main ()
{
cout<< "nama saya MELIASIH" <<endl;
cout<< "saya lahir pada tanggal 20051998" <<endl;
cout<< "saya tinggal di AMBAWANG" <<endl;

return 0;
}

2.2 PENGARUH PRAPROSESOR #INCLUDE


Program contoh .cpp diawali dengan
#include <iostream>
Dalam hal ini,#include adalah suatu pengarah praprosesor C++ yang berfungsi untuk
memberikan instuksi kepada kompiler C++ agar menyertakan file bernama iostream .h . File
iostream.h adalah header file yang disediakan oleh perangkat pemrograman C++. Header file
berisi deklarasi seperti fungsi dan variable. Satuhal yang menarik untuk dibahasa dalam alasan
penyertaan
#Include<iostream>
Mengapa hal itu perlu disertakan ?jawabannya adalah karena di bagian fungsi main () terdapat
pemakaian cout. Ya, pelibatan cout inilah yang menuntut keberadaan
#include<iostream>. Tanpa #include <iostream>, anda tidak dapat menggunakan
cout. Namun ,tentu saja tidak hanya cout yang tergantung olehnya , melainkan juga endl.

2.3 FUNGSI MAIN ()


Program C++ memang tidak pernah lepas dari fungsi, sebab ,fungsi adalah salah satu dasar
penyusun blok di C++. Program C++ paling tidak mengandung sebuah fungsi , yaitu fungsi
main() . Fungsi tersebut menjadi awal dan akhir eksekusi program C++ .
main adalah nama judul fungsi. Adapun:
int main ()
{
cout<< "nama saya MELIASIH" <<endl;
cout<< "saya lahir pada tanggal 20051998" <<endl;
cout<< "saya tinggal di AMBAWANG" <<endl;

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

cout<< "NamaSaya MELIASIH" <<endl;

Titik koma
Mengakhiri
Pernyataan
String (deretan karakter)
Diawali dan diakhiri
dengan tanda petik ganda

Gambar 2.4.1 Pernyataan

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 .

cout<< "NamaSaya MELIASIH" <<endl;

"NamaSayaMeliasih" Pindah baris

Gambar 1.3 Gambaran cout

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 .

2.6 PERNYATAAN USING NAMESPACE

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>

using namespace std;

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>

using namespace std;

int main () {

std::cout<< "nama saya MELIASIH"


<<std::endl;
std::cout<< "saya lahir pada tanggal 20051998"
<<std:: endl;
std::cout<< "saya tinggal di AMBAWANG"
<<std::endl;

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 // .

2.9 EKSEKUSI PROGRAM LEWAT COMMAND PROMPT

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 .

3. Klik ganda pada.

Dengan cara seperti itu, jendela command prompt berikut akan ditampilkan .

Gambar 1.4Command Prompt


Untuk mengaktifkan D:\latcpp sebagai folder kerja ,ketikkan berikut di prompt pada
command prompt :
D:
CD Latcpp
Sebagai contoh ,untuk menjalankan program contoh.exe hasil bentukan contoh .cpp
,ketikkan :
contoh
hasilnya seperti :
D:\Latcpp>
namasaya MELIASIH
saya lahir pada tanggal 20051998
saya tinggal di AMBAWANG

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

PROGRAM HITUNG NILAI RATA-RATA

Nama Siswa : ... <diinput>


Nilai Pertandingan I : ...<diinput>
Nilai Pertandingan II : ... <diinput>
Nilai Pertandingan III: ... <diinput>

Layar Keluaran

Siswa yang bernama ...<tampil data>


Memperoleh nilai rata-rata ...<hasil proses> dari
hasil perlombaan yang diikutinya.

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

PROGRAM HITUNG NILAI AKHIR

Nama Siswa : ... < diinput >


Nilai Keaktifan: ... <diinput >
Nilai Tugas : ... < diinput >
Nilai Ujian: ...< diinput >

22
Layar Keluaran

Siswa yang bernama ......


Dengan Nilai Persentasi Yang dihasilkan.
Nilai Keaktifan * 20% : ... < hasil proses >
Nilai Tugas * 30% : ...< hasil proses >
Nilai Ujian * 50% : ...< hasil proses >

Jadi Siswa yang bernama ... < hasil proses >


memperoleh nilai akhir sebesar ... < hasil proses >

Jawaban nomor 1.

Proses membuat program

#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>

using namespace std; //menyingkat penulisan std

main ()//program utama


{
float a,b,c;
float rata; //integer(u/bilangan bulat) a,b adalah variabel
string nama;
cout<<" PROGRAM HITUNG NILAI RATA-RATA"<<endl;
cout<<"Nama Siawa: ";
cin>>nama;

cout<< "Nilai Pertandingan I";


cin>>a;
cout<< "Nilai Pertandingan II";
cin>>b;
cout<< "Nilai Pertandingan III";
cin>>c;

rata= (a=b=c)/3;

cout<<" Siswa yang bernama "<<nama<<endl;


cout<<" Memperoleh Nilai Rata-rata "<<rata<<"dari hasil perlombaan yang diikutinya";

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.

Proses menbuat program


#include <iostream>
#include <conio.h>
#include <stdlib.h>
#include <stdio.h>

using namespace std;


main()
{
float a, b, c;
string nama;

cout<< "PROGRAM HITUNG NILAI AKHIR" <<endl;


cout<<" Nama Siswa : ";
cin>>nama;
cout<<" Nilai Keaktifan : ";
cin>>a;
cout<<" Nilai Tugas : ";
cin>>b;
cout<<" Nilai Ujian : ";
cin>>c;

cout<<" Siswa yang bernama "<< nama <<endl;


cout<<" Dengan Nilai Prestasi yang diHasilkan : "<<endl;
cout<<" Nilai Murni Keaktifan : "<< (a*20/100) <<" %"<<endl;
cout<<" Nilai Murni Tugas : "<< (b*30/100) <<" %"<<endl;
cout<<" NIlai Murni Ujian : "<< (c*50/100) <<" %"<<endl;
cout<<" Memperoleh Nilai Akhir Sebesar " << (a*20/100) + (b*30/100) + (c*50/100);

getch();
return 0;
}

24
Hasil program

25
BAB III
ELEMEN DASAR C++

3.1 Himpunan Karakter


Himpunan karakter di C++ terdiri dari huruf, digit, simbol, dan karakter kontrol (seperti spasi dan
*). Lihatlah daftar beikut:
 Huruf :
ABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefghIj k lmnopqrstuvwxyz
 Digit :34
0123456789
 Simbol dan lain-lain :
\n * + Spasi
C++ mempunyai cara untuk menyatakan karakter-karakter yang tidak mempunyai kode tombol
(seperti karakter kontrol). Hal ini dapat dilihat di Tabel 3.4.

3.2 Pengenal (Identifier)


Pengenal adalah suatu nama yang biasa dipakai dalam pemrograman untuk menyatakan:
variabel;
 konstanta bernama;
 tipe data;
 fungsi ;
 label;
 objek;
 hal-hal lain yang dideklarasikan atau didefinisikan oleh pemrograman.

3.2.1 Penanaman Pengenal


Suatu pengenal berupasatu atau beberapa karakter :
 huruf,
 digit,
 garis-bawah (…),
dari berawalan dengan huruf atau garis-bawah. Pemberian nama pengenal
sebaiknyamenggunakan kata yang berarti dan mudah dibaca. Sebagai contoh, pengenal
gaji_pegawai
yang menyatakan gaji pegawai lebih baik daripada
g
ataupun
gajipegawai

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).

3.2.3 Contoh pengenal absah dan tidak absah


Contoh pengenalyang abash (valid) dan tidak abash dapat dilihat di Table 3.1.
Table 3.1nama pengenal yang absah dan tidak absah
Absah Tidak abash
Nama 2semester (tidak boleh diawali angka)
NAMA nama-barang (tanda –tidak diperkenankan)
nama_barang #brg (simbol # tidak boleh digunakan)
kuartal_1 nama barang (tidak boleh mengandung spasi)

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).

3.3 Kata kunci


Kata kunci(keyword) adalah pengenal sistem yang mempunyai makna khusus bagi
kompiler.Kegunaannya tidak dapat diubah.Karena itu, kata kunci tidak boleh digunakan sebagai
pengenal yang dibuat oleh pemrogram.Table 3.2 mencantunkan kata kunci yang terdapat di C++.
Tabel 3.2 Daftar kata kunci C++
Alignas Enum Return
Alignof Explicit Short
And Export Signed
And_eq Extern Sizeof
Asm False Static
Auto Float Static_assert
Bitand For Static_cast
Bitor Friend Struct
Bool Goto Switch
Break If Template
Case Inline This

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

3.4 Tipe Data

Tipe data dasar (primitif) di C++ meliputi:


 char;
 int;
 short;+
 long;
 float;
 double;
 long double;
 bool.
Ukuran memori yang diperlukan untuk data terkadang berbeda-beda antara satu kompiler dengan
kompiler lain. Secara umum ukuran memori yang diperlukan tipe masing-masing diperlihatkan di tabel
3.3.
Tabel 3.3 tipe data primitif dan ukuran memori yang dibutuhkan
Tipe Ukuran Keterangan
Memori
short (atau short int) 2byte Menyatakan bilangan bulat antara -32768 dan +32767
Int 4 byte menyatakan bilangan bulat antara -2147483648 dan +2147483647
dengan 4 byte
Long (atau long int) 4byte Menyatakan bilangan bulat antara -2147483648 sampai dengan
+2147483647
Long long (atau long 8byte Menyatakan bilangan bulat antara -9232372036854775808 sampai
long int dengan +9232372036854775807
Float 4 byte Menyatakan bilangan real denganketelitian rendah (7 digit).

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.

3.5.1 Mendeklarasikan Variabel


Deklarasi berarti mengenalkan sebuah pengenal ke program dan menetukan jenis data yang
dapat disimpan di dalamnya. Bentuk deklarasi variabel:
tipe daftar_variabel;
pada deklarasi variabel, daftar_variabel berupa satu variabel atau beberapa variabel dipisahkan
dengan koma. Contoh:
int jumlah;
float harga_per_unit, total_harga;
pernyataan deklarasi pertama menyatakan jumlah adalah variabel bertipe int (digunakan
untukmenyimpan bilangan integer), sedangkan pernyataan kedua menyatakan bahwa
harga_per_unit dan harga_total berjenis float (untukmenyimpan data bilangan
pecahan). Kedua variabel ditulis denga pemisah berupa koma.
Jika dikehendaki, deklarasi:
float harga_per_unit, harga_total;
dapat ditulis menjadi:
float harga_per_unit;
float harga-total;

3.5.2 Menentukan Tipe Variabel


Mungkin timbul pertanyaan : “Mengapa suatu variabel harus dideklarasikan bertipe int,
sementara yang lain bertipe float?” Jawaban atas pertanyaan adalah tergantung dari jenis yang
akan ditampung di variabel. Jika variabel digunakan untuk menyimpan data bilangan bulat saja,
pilihannya adalah tipe bilangan bulat (seperti int dan long).Jika variabel hendak dipakai untuk
menampung data bilangan pecahan, variabel harus dideklarasikan bertipe bilangan pecah an
(float atau double).

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.

3.5.3 Memberikan Nilai ke Variabel


Bentuk pernyataan yang digunakan untuk memberikan nilai ke variabel yang telah
dideklarasikan adalah seperti berikut:
variabel=nilai;
pernyataan di atas disebut sebagai pernyataan penugasan. Contoh berikut memberikan
nilai 10 ke variabel harga_per_unit:
jumlah = 10;
harga_per_unit = 17.5;

3.5.4 Variabel dan Konstanta Bertipe char


Variabel bertipe char digunakan untuk menampung satu karakter. B+entuk deklarasinya
seperti berikut:
char nama_variabel;
Contoh:
char kar;
Dalam hal ini, kar bertipe char. Karena itu, variabel kar dapat menampung data sebuah
karakter. Untuk memulai sebuah konstanta bertipe char, karakter ditulis dengan di dalam
tanda petik tunggal. Contoh:
‘A’ Karakter berupa huruf A
‘2’ Karakter berupa huruf 2
‘*’ Simbol *
‘\\’ Karakter\ (harus ditulis dua kali

Karakter yang ditulis denganbentuk


\karakter
Mempunyai arti tersendiri. Sebagai contoh
‘\n’
berarti karakter newline (pindah baris) atau identik dengan endl di cout. Karakter-karakter
dapat dilihat di Tabel 3.4 dan disebut escape sequence characters.

Table 3.4 Karakter-karakter khusus


Karakter Keterangan
\0 Karakter ber-ASCll nol (karakter null)
\a Karakter bel
\b Karakter backspace
\f Karakter fromfeed (ganti halaman)

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.

3.5.5 Variabel dan Konstanta Bertipe short int


Variabel bertipe short_intdideklarasikan dengan bentuk seperti berikut:
short int nama_variabel;
Atau
short int_variabel;
Contoh:
short bill;

Setelah deklarasi dilakukan, variabel digunakan untuk menampung nilai bertipe


short.Suatu konstanta bertipe short int adalah bilangan bulat yang terletak antara -
32768 hingga +32667.
Contoh:
456
Adalah konstanta bilangan bertipe short int. Adapun:
32,767
maupun
32.767
bukanlah konstanta bilangan bertipe short int.
Program yang memperlihatkan deklarasi variabel bertipe short int dan konstanta bertipe
short int dapat dilihat di bawah ini:
#include <iostream>
using namespace std;

int main()
{
short bil; //Deklarasi variabel bil

bil = 32763; //Penugasan 32763 ke variabel bil


cout << "Isi bil = " << bil << endl;

bil = -66;
cout << "Isi bil = " << bil << endl;

bil = 75000;
cout << "Isi bil = " << bil << endl;

return 0;
}

Hasil eksekusi program:

Isi bil = 32763


Isi bil = -66
Isi bil = 9464

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;

cout << "Isi jum_penduduk = "


<<jum_penduduk << endl;

return 0;
}

Hasil eksekusi program:

Isi jum_penduduk = 170123456

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;
}

Hasil eksekusi program adalah seperti berikut:

Isi suhu = 123


Isi suhu = 123
Isi suhu = 123

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;

cout << setprecision (20); // Atur presisi tampilan

cout << "Isi a = " << a << endl;


cout << "Isi b = " << b << endl;

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

Presisi berhubungan dengan keterbatasan memori digunakan untuk menampung bilangan


pecahan. Contoh diantara bilangan 56,0 dan 56,1 sebenarnya terdapat kemungkinan bilangan
pecahan yang tidak terhingga. Karena memori yang digunakan terbatas, maka bilangin

37
tertentu di dalam jangkauan tersebut (misalnya 56789123456789) akan disimpan di dalam
memori berdasarkan nilai terdekatnya, bukan nilai yang sesungguhnya.

3.5.8 Variabel dan Konstanta Bertipe bool


Tipe bool adalah tipe data yang bernilai true (benar) atau false (salah). Tipe ini digunakan
di dalam program untuk menyatakan keadaan benar atau salah.Konstanta true dan false
merupakan konstanta yang disediakan oleh C++. Contoh:

#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;
}

Pada program di atas,


bool bersih;
menyatakan bahwa bersih adalah variabel bertipe bool. Penugasan seperti
bersih = true;
membuat bersih bernilai benar, sedangkan
bersih = false;
membuat bersih bernilai salah.
Diperhatikan bahwa pemberian nilai seperti
bersih = 1;
identik dengan
bersih = true;
Adapun
bersih = 0;
identik dengan
bersih = false;
Contoh hasil eksekusi bool.cpp

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.

3.5.9 Inisialisasi Variabel


Variabel langsung diberi awal tepat setelah dideklarasikan. Contoh:
int jumlah;
jumlah = 10;
Dua pernyataan seperti itu sebenarnya dapat disingkat menjadi:
int jumlah = 10;
Contoh program yang memberikan inisialisasi terhadap variabel saat dideklarasikan.
#include <iostream>
using namespace std;

int main ()
{
int jumlah = 10; // inisialisasi
float harga_per_unit = 17.5; // inisialisasi

cout << "Jumlah = " << jumlah << endl;


cout << "Harga per unit = " << harga_per_unit << endl;

return 0;
}

Hasil eksekusi program:

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;

cout <<"Isi dua_phi = " << dua_phi << endl;

return 0;
}

Hasil eksekusi program:

Isi dua_phi = 6.28

3.5.10 Deklarasi Variabel Dapat di Mana saja


Pada C++, deklarasi variabel dapat diletakkan di mana saja. Dengan demikian, bentuk
pernyataan-pernyataan seperti berikut diperkenankan:
int i = 10;
cout<< “Nilai i = “<< i<< endl;

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;
}

Hasil eksekusi program:

Nilai i = 10
Nilai j = 77

3.6 Pemodifikasi Tipe Unsigned dan Signed


Diterapkan pada data bertipe bilangan bulat (char, short dan long). Variabel yang ditambahi
dengan pemodifikasi tipe unsigned akan menyebabkan nilai yang terkandung di dalamnya selalu
bernilai positif. Sifat ini menyebabkan jangkauan tipe bilangan bulat yang dilengkapiunsigned
akan berubah, ditunjukkan di Tabel 3.5.
Tabel 3.5 Pemodifikasi tipe unsigned dan signed
Pemodifikasi tipe Persamaan Jangkauan Nilai
Signed char Char -128 s/d 127
Signed short int Short, signed short -32768 s/d 32767
Signed int Int, long -2.147.483.648 s/d 2.147.483.647

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).

3.7.1 konstanta Oktal


Dalam sistem oktal, digit yang digunakan berkisar antara 0 sampai dengan 7.Penulisan
konstanta diawali dengan 0 (nol). Contoh:
 010 (9 desimal)
 011 (10 desimal)
3.7.2 Konstanta Heksadesimal
pada sistem heksadesimal, digit dapat dipakai berupa salah satu di antara 16 simbol
berikut:
0123456789ABCDEF
Simbol A, B, C, D, E dan F dinyatakan dengan huruf a, b, c, d, e, dan f. Penulisan konstanta
diawali dengan 0x (nol dan x). Hubung
an simbol ABCDEF dengan bilangan pada sistem decimal adalah seperti:
Tabel 3.6 Persamaan digit heksadesimal dan nilai desimal
Heksadesimal Desimal Heksadesimal Desimal
A 10 D 13
B 11 E 14
C 12 F 15
Contoh:
 0x10 (10 heksadesimal atau 16 desimal)
 0xFF (FF heksadesimal atau 255)
Contoh program:
#include <iostream>;
using namespace std;

int main ()
{
int a, b;

a = 010; // 10 oktal atau 8 desimal


b = 0x10; // 10 heksadesimal

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:

"Tidurlah.Hari sudah larut malam, nak\", kata ibu.

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

Nilai untuk PHI

const float PhI = 3.141592;

Kunci yang menentukan phi


sebagai konstanta bernama

Menyatakan tipe konstanta bernama


Contoh yang menggambarkan pemakaian konstanta bernama dapat dilihat di program berikut:

#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;

cout << "Luas = " << luas << endl;


cout << "keliling = " << keliling << endl;

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

4.2 PENGANTAR UNGKAPAN


Ungkapan (ekspresi) di C++ dapat berupa:
1. Pengenal;
2. Konstanta;
3. Fungsi;
4. Kombinasi elemen-elemen di atas dengan operator.
Contoh: Ungkapan 3 + 2 – 1
Pada ungkapan 3, 2 dan 1 merupakan oprand dan simbol + serta – adalah operator. Nilai
ungkapan sendiri adalah hasilpenjumlahan 3 dan 2, dikurangi 1.
Contoh lain: Pada ungkapan ini a, b, dan c merupakan operand, simbol =, + dan – adalah
operator. Dalam hal ini, variabel a diisi dengan hasil penjumlahan b dan c dikurangi 1.
Selanjutnya, nilai a ini menyatakan nilai ungkapan.

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;
}

Hasil eksekusi program:

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”.

4.4 PRIORITAS OPERATOR ARITMETIKA


Tabel 4.4 memberikan penjelasan prioritas operator-operator ritmetika. Operator yang
mempunyai prioritas tinggi akan diutamakan dalam hal pengerjaan dibandingkan dengan operator
yang memiliki pioritas lebih rendah.
Tabel 4.4 Prioritas operator aritmetika
Operator Priotas
++ dan – (Khusus yang berkedudukan sebagai Tertinggi
awalan
-(unary minus)
*/%
+- (penjumlahan dan pengurangan) Terendah

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:

4.5 OPERATOR PENGUGASAN


Operator pengugasan, yang berupa simbol sama dengan (=) berguna untuk memberikan suatu
nilai ke suatu variabel. Operator ini dapat dikenakan sebagai ungkapan ataupun berdiri sebagai
pernyataan.

4.5.1 Pengusha Sederhana


Beberapa pernyataan penugasan telah diperkenalkan. Contoh:
A = 1;
A = 2 + b;
Pada contoh pertama, variabel a diisi dengan hasil ungkapan 2 + b.
4.5.2 Penugasan dalam Ungkapan
Pada contoh berikut, operator penugasan dipakai untuk memberikan nilai berdasarkan ungkapan:
A = 2 + (b = 1);
Pada ontoh di atas, mula-mula variabel diisi 1. Kemudian, variabel a diisi dengan hasil ungkapan
2 + 1.

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.

4.6 OPERATOR PENURUNAN DAN PENAIKAN


Berkaitan dengan operasi aritmetika, C++ menyediakan operator yang disebut sebagai operator
penaikan (increment) dan operator penurunan (decrement). Kedua operator ini digunakan pada
operand bertipe bilangan bulat.
Tabel 4.5 operator penurunan dan penaikan
Operator Keterangan
++ Operator penaikan
-- Operator penurunan

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

4.7.1 Operator Geser Kiri dan Geser Kanan


Operator >> dan << berguna untuk menggeser bit-bit dalam suatu bilangan bulat ke kiri atau ke
kanan. Penggeseran bit ke kiri mempunyai efek seperti perkalian, sedangkan penggeseran ke kanan
memberikan efek seperti pembagian.

4.7.2 Operator <<


Bentuk umum pmakaian operator <<: Nilai << jumlah bit digeser ke kiri. Pada operasi
penggeseran ke kiri, setiap penggeseran sebuah bit akan memberikan pengaruh seperti halnya
perkalian dua. Supaya lebih jelas, perhatikan contoh berikut:

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

Gambar 4.3 penggeseran ke kiri 1 bit

4.7.3 Operator >>


Bentuk umum pemakaian operator >>:Nilai >> jum;lah bit digesser ke kenan. Pada operasi
penggeseran ke kanan, setiap penggeseran satu bit akan memberikn pengaruh seperti halnya
pembagian dengan bilangan dua.

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)

Gambar 4.4 Pergeseran kekanan 1bit

4.7.4 Operator atau, dan, Xor


Bentuk pemakaian operator atau ( | ), dan (&), dan xor (^): Operand1 operator operand2.
Opersasi bit dilakukan antara operand1 dan operand2 untuk posisi bit yang sama (bit 0 operand1
dengan bit 0 operand2, bit 1 operand1 dengan bit operand2, dan seterusmya).
a. Operator atau
Simbol opertator atau berupa |, dengan bentuk pemakaian seperti berikut: Operand1 | operand2
Pada operasi dengan operator ini, hasil operasi per bit adalah sebagai berikut:
1. Hasil 0 kalau kedua bit yang dioperasikan bernilai 0;
2. Hasil 1 kalau salah satu atau dua bit dari bit yang dibandingkan bernilai satu.
Seluruh kemungkinan operasi dengan & diperlihatkan di Tabel 4.8

Tabel 4.8 operasi dengan operator bitwise atau


Bit Operand 1 Bit Operand 2 Hasil
0 1 1
0 0 0
1 0 1
1 1 1

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

Table 4.9 kemungkinan operator


Bit Operand 1 Bit Operand 2 Hasil
0 0 0

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.

Seluruh kemungkinan operasi dengan ^ diperlihatkandi Tabel 4.10


Tabel 4.9 operasi dengan operator bitwise xor
Bit Operand 1 Bit Operand 2 Hasil
0 0 0
0 1 1
1 0 1
1 1 0

Contoh operasi dengan |.&, dan ^


Program berikut memberikan contoh operasi dengan operator bitwtse berupa |, &, dan
Contoh program:

#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:

4.9 UNGKAPAN KONDISI


Ungkapan kondisi adalah ungkapan yang menjadi dasar bagi pernyataan berkondisi (misalnya
if).Ungkapan ini memberikan nilai benar atau salah. Hasil ungkapan berupa:
1. 0 kalau ungkapan bernilai salah;
2. 1 kalau ungkapan bernilai benar;
Adapun elemen yang membentuk ungkapan ini adalah operator:
1. Relasi
2. Logika.

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

Contoh ungkapan kondisi yang menggunakan operator relasi:X == y


Hasil ungkapan tersebut bernilai:
1. 1 kalau nilai x sama dengan nilai y;
2. 0 kalau nilai x tidak sama dengan y;
3.
Contoh program:
#include <iostream>
using namespace std;

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:

Berdasarkanhasil di depan, terlihat:


1. Nilai salah dinyatakan dengan 0;
2. Nilai benar dinyatakan dengan 1.
4.9.2 Operator Logika
Operator logika biasa digunakan untuk menghubungkan dua ungkapan kondisi menjadi satu
ungkapan kondisi. Operator-operator yang tergolong sebagai operator logika adalah:
1. && (operator logika dan)
2. || (operator logika atau)
3. ! (operator logika bukan
Operator || dan &&
Bentuk pemakaian operator || dan &&
Ungkapan 1 || ungkapan 2
Ungkapan 1 && ungkapan 2
Pada bentuk pertama, hasil ungkapan bernilai benar kalau ungkapan 1 dan ungkapan 2 bernilai
benar.Pada bentuk kedua, hasil ungkapan benar hanya jika ungkapan 1 dan ungkapan 2 bernilai benar.
Operator logika !
Penggunaan operator adalah sebagai berikut:
!ungkapan
Maka hasilnya berupa:
1. Benar jika ungkapan bernilai salah
2. Salah jika ungkapan bernilai benar
4.10 Operator Berkondisi
Operator berkondisi biasa digunakan untuk mendapatkan satu nilai berdasarkan suatu kondisi.
Format pemakaianya seperti berikut:
Ungkapan1 ?ungkapan2 : ungkapan3
Ada tiga ungkapan yang dilibatkan. Oleh karena itu, operator ?: tergolong sebagai operator ternary.
Pada bentuk ungkapan tersebut, hasil dari ungkapan berupa:
1. Nilai ngkapan akan berupa nilai ungkapan2 kalau ungkapan1 bernilai benar.
2. Nilai ungkapan akan berupa nilai ungkapan3 kalau ungkapan1 bernilai salah.
Contoh program:
#include <iostream>
using namespace std;

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:

4.11 Operator koma


Operator ini berguna untuk meletakan dua ungkapan pada suatu kaidah yang memerlukan sebuah
ungkapan. Bentuk pemakaiannya sebagai berikut: Ungkapan1, ungkapan2. Tanda koma pada bentuk
tersebut adalah simbol operator koma. Dalam hal ini nilai ungkapan yang menggunakan operator
koma sesuai dengan nilai ungkapan yang terletak di kanannya (yaitu ungkapan2) .Umumnya operator
koma terdapat pada pernyataan for. Contoh: for(i = 0, j = 0;<maks; i++, j--)
Contoh program:
#include <iostream>
using namespace std;

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.

4.13 Konversi Tipe


Sampai sejauh ini, operasi yang melibatkan variabel dan konstanta selalu menggunakan tipe data
yamg sama. Dalam praktiknya suatu operasi yang mencampurkan beberapa tipe data yang berlainan
dimungkinkan.

4.13.1 Konversi secara otomatis


Jika terdapat campuran beberapa tipe data dalam suatu ungkapan, C++ dengan sendirinya akan
melakukan konversi dari suatu tipe data ke tipe data yang lain. Sebagai contoh, gambaran mengenai
konversi tipe dapat dilihat pada contoh berikut:
Harga_total = Harga_per_unit* jumlah
Variabel jumlah didefinisikan bertipe int, harga_per_unit bertipe float dan harga_total
bertipe double.

64
Contoh program:
#include <iostream>
using namespace std;

int main ()
{
int jumlah = 5;
float harga_per_unit = 5203.02;
double harga_total;

harga_total = harga_per_unit * jumlah;


cout << "Harga Total" << harga_total << endl;

return 0;
}

Hasil Program:

4.13.2 Hierarki Pengonversian


Dalam melakukan konversi, C++ akan memperhatikan tipe data setiap operand di dalam
ungkapan. Konversi dilakukan dengan berpedoman pada urutan pengonversian yang tercantum dalam
table.
Table 4.16 Table urutan Konversi
Tipe Data Urutan
Bilangan Pecahan Tertinggi
Bilangan Bulat
Karakter Terendah
Sebagai contoh, dalam suatu ungkapan yang menggunakan operator binary, terdapat data bertipe
float dan int. berdasarkan table, tipe int (bilangan bulat) mempunyai urutan konversi yang lebih
rendah daripada tipe float. Oleh karena itu, tipe int akan dikonversi secara otomatis oleh C++
menjadi bertipe float. Khusus pada operasi penugasan, nilai yang akan diletakkan ke variabel akan
dikonversi sesuai dengan tipe variabel tersebut. Pada contoh harga_total = harga_per_unit
* jumlah; ungkapan tersebut menghasilkan tipe float, sedangkan yang ada di kanan = bertipe
double. Oleh karena itu, hasil ungkapan contoh tersebut dikonversi ke double.

4.13.3 Konversi melalui operator cast


Disamping pengonversian secara otomatis, C++ menyediakan cara pengonversian yang diatur
sendiri oleh pemrogram. Hal ini dilakukan dengan menggunakan operator cast. Cara pengonversian
seperti ini dinamakan type cast. Ada dua cara untuk melakukan pengonversian tipe data. Cara pertama
dilakukan dengan menambahkan (tipe_data) didepan variabel. Sebagai contoh, jika kar adalah variabel
bertipe char, ungkapan (int) kar akan menghasilkan data bertipe int (tipe kar sendiri tidak

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:

4.13.4 Konversi tipe pada penugasan ke variabel


Pada operasi penugasan ke variabel, tipe ungkapan yang terletak di kanan operator penugasan (=)
secara otomatis akan di konversi sesuai dengan tipe variabel yang terletak dikiri operator penugasan.
Contoh program:
#include <iostream>
using namespace std;

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

5.2.1 Manipulator endl


Manipulator endl digunakan untuk menyisipkan karakter newline. Dengan perkataan lain,
manipulator ini identic dengan ‘\n’. Namun, endl lebih disukai daripada ‘\n’ karena lebih memberikan
kejelasan.Selain itu, manipulator ini menjamin data langsung dikirimkan ke peranti keluaran. Hal ini
sangat bermanfaat terutama kalau peranti keluaran berupa file di disk.

5.2.2 Manipulator setw ()


Manipulator setw () bermanfaat untuk mengatur lebar dan suatu tampilan data.

5.2.3 Manipulator setfill ()


Manipulator setfill () berguna untuk mengatur karakter yang dipakai memenuhi bagian field yang
ditentukan setw (), yang tidak dipakai untuk menampilkan data. Sebagai contoh, jika diberikan
perintah:
Cout<<setw (6) << 123 << endl;
Nilai 123 akan ditampilkan dengan lebar enam karakter dan didahului oleh tiga karakter spasi. Apabila
sebelum pernyataan diatas terdapat pernyataan :
Cout << setfill (‘*’) ;
Hasilnya berupa ***123

5.2.4 Manipulator dec, oct, dan hex


Manipulator dec, oct, dan hex berguna untuk menampilkan suatu data dalam bentuk decimal (bilangan
basis 10), octal (bilangan basis 8), dan heksadesimal (bilangan basis 16).
1. Oct mengonversi ke octal
2. Dec mengonversi ke decimal
3. Hex mengonvesi ke heksadesimal
5.2.5 Manipulator setbase()
Pengonversian ke oktal, desimal, atau heksadesimal dapat dilakukan dengan menggunakan
manipulator setbase(). Sebagai contoh,
setbase(8)
identik dengan
oct
Contoh berikut merupakan hasli modifikasi program doh.cpp:
//-----------------------------------------------
// Mengonversi ke desimal, okta, dan heksadesimal
// menggunakan setbase ()
//-----------------------------------------------
#include <iostream>
#include <iomanip>
using namespace std;

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;
}

5.2.6 Manipulator flush


Pada saat mengeluarkan data ke standard output, cout menggunakan suatu penyangga
(buffer). Jika penyangga penuh, cout tidak mengirimkan ke standard output.Hal ini
dilakukan untuk mengefisienkan pengiriman ke standard output.

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.

5.2.8 Pemakaian setiosflags ()


Manipulator setiosflags () merupakan manipulator yang dapat dipakai untuk mengontrol
sejumlah tanda format yang tercantum di Tabel 5.2.
Table 5.2 Tanda format untuk setiosflogs() dan resetiosflags()
Nama Tanda Format Keterangan
ios::let Mengatur rata kiri
terhadap lebar field yang
diatur melalui setw ()
ios::right Mengatur rata kanan
terhadap lebar field yang
diatur melalui setw ()
ios::scientific Memformat keluaran
dalam notasi
eksponensial

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

Program berikut menunjukkan efek penggunaan tanda format ios::showbase.


//-----------------------------------------------
// Contoh penggunaan tanda ios::showbase
//-----------------------------------------------
#include<iostream>
#include<iomanip>
using namespace std;
int main()
{

int nilai = 31;

cout<< " Tanpa ios::showbase" <<endl;


cout<< oct << nilai <<endl;
cout<< hex << nilai <<endl;
cout<< dec << nilai <<endl;
cout<< setiosflags(ios::showbase);
cout<<" Dengan ios::showbase:"<<endl;
cout<< oct << nilai <<endl;
cout<< hex << nilai <<endl;
cout<< dec << nilai <<endl;

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

Tanpa bahwa dengan adanya tambahan


cout<< setiosflags(ios::setiosflags);
maka :

Bilangan oktal diawali dengan 0 (nol);


Bilangan heksadesimal diawali dengan 0x (nol dan x).

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;
}

Hasil eksekusi program showpos.cpp:

x = 27 dan y = -13
x = +27 dan y = -13

Tampak bahwa setelah adanya penambahan


Cout<< setiosflags (ios::showpos);
maka nilai x (positif) ditampilkan dengan awalan +.

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

 Ios::left untuk mengatur rata kiri


 Ios::right untuk mengatur rata kanan
Sebuah program yang menunjukkan penggunaan kedua tanda format tersebut dapat
dilihat di bawah ini:

//---------------------------------------------
--
// 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;
}

Hasil eksekusi program kankiri.cpp:

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;

cout<< setiosflags(ios::left)<< setw(25)<< " Siti Markonah";


cout<< resetiosflags(ios::left);
cout<< setiosflags(ios::right) << setw(8) << 1500000;
cout<< resetiosflags(ios::right)
<<endl;

cout<< setiosflags(ios::left)<< setw(25)<< " Rudi Daholopus";


cout<< resetiosflags(ios::left);
cout<< setiosflags(ios::right) << setw(8) << 900000;
cout<< resetiosflags(ios::right)
<<endl;

cout<< setiosflags(ios::left)<< setw(25)<< " Rita Sudiro";


cout<< resetiosflags(ios::left);
cout<< setiosflags(ios::right) << setw(8) << 780000;
cout<< resetiosflags(ios::right)
<<endl;
return 0;
}

Contoh di atas memperlihatkan bahwa penggunaan setiosflags (ios::left) perlu


ditutup dengan resetiosflags (ios::left), sedangkan setiosflags
(ios::right) perlu ditutup dengan resetiosflags (ios::right). Hal ini
berlaku terjadi perubahan dari ios::left ke ios::right berganti-ganti.

Hasilnya seperti berikut:

NAMA GAJI
Amir Hamzah 750000
Siti Markonah 1500000
Rudi Daholopus 900000
Rita Sudiro 780000

5.2.12 Tanda Format ios::scientificdan ios::fixed

Format ios::scirentific dan ios::fixed untuk mengatur bentuk keluaran bilangan.

 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;
}

Hasil eksekusi program fixsclen.cpp:

123.45 Tanpa format apapun


123.450000 Efek format ios::fixed
12345.678900 Efek format ios::fixed
123.45 Tanpa format apapun
1.234500e+002 Efek format ios::scientific
1.234568e+004 Efek format ios::scientific

5.2.13 Tanda Formatios::uppercase


Tanda ini digunakan untuk menampilkan huruf pada notasi heksadesimal berupa huruf
kapital.Perhatikan program berikut beserta hasil eksekusinya.
//-----------------------------------------------
// Contoh untuk menunjukkan efek ios::uppercase
//-----------------------------------------------
#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
int bil = 26;

cout<<hex; // Pengaturan heksadesimal


cout<<bil <<endl;
cout<<setiosflags(ios::uppercase);
cout<<bil <<endl;

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.

5.2.14 Pemakaian resetiosflags ()


Setelah tanda format digunakan (misalnya ios::showbase), diinginkan untuk kembali ke keadaan
semula.Hal ini sering terjadi pada program berukuran besar. Untuk menangani kasus seperti itu, C++
menyediakan manipulator bernama resetiosflags(). Contoh:
setiosflags (ios::left)

telah digunakan. Untuk kembali ke keadaan semula, perintah berikut perlu diberikan:
resetiosflags (ios::left)

5.2.15 MenggabungkanLebih dari Satu Argumenpadasetiosflags () danresetiosflags ()


Manipulator setiosflags () dapat menerima lebih dari sebuah argumen.Hal d`ilakukan dengan
memberikan tanda atau (|) di antara argumen-argumennya.
Sebagai contoh, diinginkan untuk menampilkan sejumlah bilangan heksadesimal disertai awalan 0x. Anda
dapat memberikan dua pernyataan berikut sebelum menampilkan suatu nilai:
cout<< setiosflags (ios::showbase);
cout<< setiosflags (ios::hex);
Dua setiosflags () di atas dapat disederhanakan menjadi satu saja. Pernyataan yang pernyataan
berupa:
cout<< setiosflags (ios::showbase | ios::hex);
Pemberian lebih dari satu argumen tidak hanya dapat diterapkan pada setiosflags(), melainkan pada
resetiosflags().Contoh dapat dilihat di bawah ini.
//-----------------------------------------------
// Contoh pemakaian setisfags () dan reertioflags()
// yang menyatakan lebih dari satu argumen
//-----------------------------------------------
#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
int bil = 26;
cout<< setiosflags(ios::showbase | ios::uppercase);
cout<< hex << 45 <<endl;

cout<< resetiosflags(ios::showbase | ios::uppercase);


cout<< hex << 45 <<endl;
return 0;
}

Jika program di atas dikompilasi dan kemudian dijalankan, hasilnya seperti berikut:

0X2D - Efek setiosflags (ios::showbase | ios::uppercase);


2d - Efek resetiosflags (ios::showbase | ios::uppercase);

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);

5.2.16 Manipulator setprecision ()


Hal yang dapat dilakukan dengan menggunakan manipulator setprecision (). Bentuknya:
setprecision(n)
dengann menyatakan jumlah digit pecahan yang diinginkan.
Contoh,
cout<<setprecision (2) << 123.56789 << endl;
akan menampilkan
123.57
Bagian pecahan terdiri atas dua digit sesuai dengan argumen setprecision ().
Contoh program untuk memperlihatkan efek setprecision ():

//-----------------------------------------------
// 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.

// Contoh untuk menunjukkan efek manipulator


// setprecision() tanpa kehadiran tanda format
// ios::fixed
//-----------------------------------------------
#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
float nilai = 123.45;

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;
}

Hasil program di atas adalah sebagai berikut:

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).

5.3.1Cin dengan SebuahVariabel


Bentuk pernyataan cin untuk membaca data dari keyboard dan meletakkan ke suatu variabel bernama
var:
cin >> var;
Contoh program yang menunjukkan pemakaian cin untuk membaca data bertipe intdan float dapat
dilihat di bawah ini.

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;

cout<<" Masukkan sebuah bilangan bulat: ";


cin>> bil_x;

cout<<" Masukkan sebuah bilangan pecahan: ";


cin>>bil_y;

cout<<" Bilangan bulat = "<< bil_x<<endl;


cout<<" Bilangan pecahan = "<< bil_y<<endl;

return 0;
}

Contoh hasil eksekusi program keyboard.cpp:

Masukkan sebuah bilangan bulat :123


Masukkan sebuah bilangan pecahan :67.8
Bilangan bulat :123
Bilangan pecahan : 67.8

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;

cout<<" Nilai derajat Fahrenheit: ";


cin>> fahren;

celcius = (fahren = 32) *5 / 9;


cout<<" Identik dengan "<<celcius
<<" derajat Celcius"<<endl;

return 0;
}
Contoh hasil eksekusi program fahkecel.cpp:

Nilai derajat Fahrenheit :144


Identik dengan 62.2222 derajat Celcius
79
5.3.2 Cin dengan Lebih dari Satu Variabel
Bentuk cin berupa seperti berikut:
Cin >> bil_x >> bil_y;
Digunakan untuk membaca:
 Bil_x dan
 Bil_y.
Pada contoh ini, dua bilangan dapat dimasukkan dari keyboard dengan pemisah berupa spasi, tab, atau
enter. Contoh:
20 23.2
Pengisian seperti itu akan memberikan
 20 ke bil_x dan
 23.2 ke bil_y.
Hasil yang sama akan diperoleh pemasukkan seperti berikut: 20 dan 23.2
Contoh program satusin.cpp
//-----------------------------------------------
// Contoh pembacaan data bertipe int dan float
// dengan satu cin
//-----------------------------------------------
#include<iostream>
using namespace std;
int main()
{
int bil_x;
float bil_y;

cout<<" Masukkan sebuah bilangan bulat dan "<<endl;


cout<<" Sebuah bilangan pecahan "<<endl;

cin>> bil_x>>bil_y;

cout<<" Bilangan bulat = "<< bil_x<<endl;


cout<<" Bilangan pecahan = "<< bil_y<<endl;

return 0;
}

Contoh hasil eksekusi:

Masukkan sebuah bilangan bulat dan


sebuah bilangan pecahan
20 23.2
Bilangan bulat = 20
Bilangan pecahan = 23.2

5.3.3 cin untuk membaca karakter


//-----------------------------------------------
// Membaca karakter dengan cin
//-----------------------------------------------
#include<iostream>
using namespace std;
int main()
{

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;
}

Masukkan satu karakter :a


Anda mengetikkan a
Masukkan satu karaker :b
Anda mengetikkan b

Tampak bahwa pada contoh di depan, setiap karakter yang dimasukkan dari keyboard diakhiri dengan
enter. Contoh :

Masukkan satu karakter :ab


Anda mengetikkan a
Masukkan satu karakter: Anda mengetikkan
b

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;
}

Contoh hasil eksekusi:

Masukkan satu karakter :ace


Anda mengetikkan a
Masukkan satu karakter :b
Anda mengetikkan b

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.

5.4 Pembacaan string dengan cin

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.

Contoh hasil eksekusi program:

Masukkan nama Anda :Sita Permata Sari


Hai, Sari

//-----------------------------------------------
// 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:

Masukkan nama Anda :Sita Permata


Sari
Hay, Sita Permata Sari!

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

”memori penuh. Program ini tidak dapat dijalankan”


Ke standard output
//-----------------------------------------------
// Contoh penggunaan cerr
//-----------------------------------------------
#include<iostream>
using namespace std;
int main()
{
cout<<" Tulisan ini dikirim ke standar output"<<endl;
cout<<" Tulisan ini dikirim ke standar error"<<endl;
return 0;
}

Jika program di depan dikompilasi dan kemudian dijalankan, hasilnya seperti berikut:

Tulisan ini dikirim ke standard output


Tulisan ini dikirim ke standard error

Terlihat tidak tampak perbedaannya terlihat di bawah ini:


D:\Lat cpp>cerr>tmp
Tulisan ini dikirim ke standard error

D:\Lap cpp>

Tampak bahwa tulisan


Tulisan ini dikirim ke standard output
Tidak lagi ditampilan pada layar (karena telah di arahkan ke filetmp).

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

Gambar 6.1. Diagram Alir IF

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>

using namespace std;

int main()
{
double tot_beli, potongan=0, jum_bayar=0;

cout<<"Total Pembelian Rp. ";


cin>>tot_beli;

if (tot_beli >= 50000)


potongan = 0.2 * tot_beli;

cout<<"Besarnya Potongan Rp. "<<potongan<<endl;


jum_bayar = tot_beli - potongan;
cout<<"Jumlah yang harus dibayarkan Rp. "<<jum_bayar;

getch();
}

Output yang akan dihasilkan, dari program contoh-1 diatas adalah:

Gambar 6.1. Hasil Contoh-1


6.2 Pernyataan IF-ELSE
Pernyataan if mempunyai pengertian, “Jika kondisi bernilai benar, maka perintah-1 akan dikerjakan dan
jika tidak memenuhi syarat maka akan mengerjakan perintah-2. Dari pengertian tersebut dapat dilihat dari
diagram alir beriku

kondisi Salah

Benar

Perintah-1 Perintah-2

Gambar 6.2. Diagram Alir if-else

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;

cout<<"Total Pembelian Rp. ";


cin>>tot_beli;
if (tot_beli >= 50000)
potongan = 0.2 * tot_beli;
else
potongan = 0.05 * tot_beli;
cout<<"Besarnya Potongan Rp. "<<potongan<<endl;
jum_bayar = tot_beli - potongan;
cout<<"Jumlah yang harus dibayarkan Rp. "<<jum_bayar;
getch();
}

86
Output yang akan dihasilkan, dari program contoh-2 diatas adalah:

Gambar 6.2. Hasil Contoh-2

6.3 Pernyataan NESTED IF


Nested if merupakan pernyataan if berada didalam pernyataan if yang lainnya. Bentuk penulisan
pernyataan Nested if 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;

cout<<"Pendapatan Hari ini Rp. ";


cin>>pendptan;
if (pendptan >= 0 && pendptan <= 200000)
{
jasa=10000;
komisi=0.1*pendptan;
}
else
{
if (pendptan > 200000 && pendptan <= 500000)
{
jasa=20000;
komisi=0.15*pendptan;
}
else
{
jasa=30000;
komisi=0.2*pendptan;
}
}
/* menghitung total */
total = komisi+jasa;
cout<<"Uang Jasa Rp. "<<jasa<<endl;
cout<<"Uang Komisi Rp. "<<komisi<<endl;
cout<<"============================="<<endl;
cout<<"Hasil Total Rp. "<<total<<endl;
getch();
}

Output yang akan dihasilkan dari program contoh-3 diatas adalah:

Gambar 6.3. Hasil Contoh-3

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>

using namespace std;

int main()
{
int pendptan, jasa=0, komisi=0, total=0;

cout<<"Pendptan Hari ini Rp. ";


cin >> pendptan;

if (pendptan >= 0 && pendptan <= 200000)


{
jasa=10000;
komisi=0.1*pendptan;
}
else if(pendptan<=500000)
{
jasa=20000;
komisi=0.15*pendptan;
}
else
{
jasa=30000;
komisi=0.2*pendptan;
}
/* menghitung total */
total = komisi+jasa;
cout<<"Uang Jasa Rp. "<<jasa<<endl;
cout<<"Uang Komisi Rp. "<<komisi<<endl;
cout<<"============================="<<endl;
cout<<"Hasil Total Rp. "<<total<<endl;
getch();
}

Output yang akan dihasilkan dari program contoh-4 diatas adalah:

Gambar 6.4. Hasil Contoh-4

6.5 Pernyataan switch-case


Bentuk dari switch-case merupakan pernyataan yang dirancangkan khusus untuk menangani
pengambilan keputusan yang melibatkan sejumlah atau banyak alternatif. Pernyataan switch-case ini
memiliki kegunaan sama seperti if-else bertingkat tetapi penggunaanya untuk memeriksa data yang
bertipe karakter atau integer. Bentuk penulisan perintah ini sebagai berikut:

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();
}

Output yang akan dihasilkan dari program contoh-5 diatas adalah:

Gambar 6.5.1 Hasil Contoh-5

91
Contoh-6:
#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' :
case 'a' :
cout<<"Alat Olah Raga";
break;
case 'B' :
case 'b' :
cout<<"Alat Elelktronik";
break;
case 'C' :
case 'c' :
cout<<"Alat Masak";
break;
default:
cout<<"Anda Salah Memasukan kode";
break;
} getch();
}

Output yang akan dihasilkan dari program contoh-6 diatas adalah:

Gambar 6.5.2. Hasil Contoh-6

92
BAB VII
PROSES PENGULANGAN

7.1 Pernyataan For


Perulangan yang pertama adalah for. Bentuk umum pernyataan for sebagai berikut :
for ( inisialisasi; syarat pengulangan; pengubah nilai
pencacah)

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;
}

Kegunaan dari masing-masing argument for diatas adalah :


 Inisialisasi : merupakan bagian untuk memberikan nilai awal untuk variabel-
variabel tertentu.
 Syarat pengulangan : memegang kontrol terhadap pengulangan, karena bagian ini
yang akan menentukan.
 Pengubah Nilai Pencacah : mengatur kenaikan atau penurunan nilai pencacah.
Contoh:
Sebagai contoh program untuk mencetak bilangan dari 11 hingga 10 secara menarik, secara
menurun dan menampilkan bilangan ganjil, sebagai berikut :
Contoh-1 :
/* --------------------------- */
/* Program for - bilangan naik */
/* --------------------------- */
#include<stdio.h>
#include<conio.h>
#include<iostream>
using namespace std;

main()
{
int a;
for(a = 1; a <= 10; ++a)
cout<<a;
getch();
}

93
Output yang akan dihasilkan, dari program contoh-1 diatas adalah :

Gambar 7.1.1 Hasil contoh-1


Contoh-2
/* ---------------------------- */
/* Program for - bilangan turun */
/* ---------------------------- */
# include <stdio.h>
# include <conio.h>
# include <iostream>
using namespace std;

main()
{
int a;
for(a = 10; a >= 1; --a)
cout<<a;
getch();
}

Output yang akan dihasilkan, dari program contoh-2 diatas adalah :

Gambar 7.1.2 Hasil contoh-2

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();
}

Output yang akan dihasilkan, dari program contoh-3 diatas adalah :

Gambar 7.1.3 Hasil contoh-3


Contoh-4
#include<conio.h>
#include<iomanip>

using namespace std;


main()
{
int a=2, b=2, c=2, d=1, e;
for (int e; 17>e; e++);
{
cout <<"goto e"<<endl;
cout<< "textcolor e"<<endl;
cout<<"cprintf(\nwarna ke-%d,e)"<<endl;
cout<<"textcolor (4+BLINK), cprintf"<<endl;
cout<<"borland C++"<<endl;;
}

return 0;
}

95
Contoh-5 :
/*---------------------*/
/*program menampilkan warna-2*/
/*--------------------------*/

#include<stdio.h>
#include<conio.h>

int main (void)


{
int i;
for (i=0; i<20; i++);
{
"textattr(i+( i+1 << 4 ))";
"cprintf(borland c++\r\n)";
}
getch();
}
7.2 Pernyataan nested-for
Pernyataaan Nested for adalah suatu perulangan for didalam perulangan for yang
lainnya. Bentuk umum pernyataan Nested for sebagai berikut :
for ( inisialisasi; syarat pengulangan; pengubah nilai pencacah )
{
for ( inisialisasi; syarat pengulangan; pengubah nilai pencacah )
{
Pernyataan / perintah;
}
}
Didalam penggunaan nested-for, perulangan yang didalam terlebih dahulu dihitung
hingga selesai, kemudian perulangan yang diluar diselesaikan.
Contoh-6 :
#include <stdio.h>
#include <conio.h>
#include <iostream>

using namespace std;


int main()
{
int a, b;
for (a = 1; a<= 5; a++)
{
printf("\n");
for (b = a; b <= 5; b++)
cout << a << " ";
}
getch ();
}

96
Output yang akan dihasilkan, dari program contoh-6 diatas adalah :

Gambar 7.2. Hasil contoh-6


7.3. Perulangan Tidak Berhingga
Perulangan tak berhingga merupakan perulangan ( loop ) yang tak pernah berhenti atau
mengulang terus, hal ini sering terjadi disebabkan adanya kesalahan penanganan kondisi
yang dipakai untuk keluar dari loop. Sebagai contoh, jika penulisan perintah sebagai
berikut :
Contoh-7 :
#include <stdio.h>
#include <conio.h>
#include <iostream>

using namespace std;


int main()
{
int bil;
for (bil = 60; bil >=10; bil++)
cout << bil << " ";

getch ();
}

Output yang akan dihasilkan, dari program contoh-7 diatas adalah :

Gambar 7.3 Hasil contoh-7


Pada pernyataan ini tidak akan berhenti untuk menampilkan bilangan menurun, kesalahan
terjadi pada pengubah nilai pecahan, seharusnya penulisan yang benar berupa
bil--
akan tetapi yang ditulis adalah :

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.

7.4 Pernyataan goto


Pernyataan goto merupakan instruksi untuk mengarahkan eksekusi program ke
pernyataan yang diawali dengan suatu label. Label merupakan suatu pengenal
(identifier) yang diikuti dengan tanda titik dua ( : ). Bentuk pemakaian goto sebagai
berikut.
goto label;
contoh penggunaan goto, dapat dilihat pada program berikut :
Contoh-8 :
#include <stdio.h>
#include <conio.h>
#include <iostream>

using namespace std;


int main()
{
int a, b;
atas:
char lagi;

cout << "Masukkan Bilangan = ";


cin >> a;

b = a % 2;

printf ("Nilai %d %% adalah = %d", a, b);


printf ("\n\nIngin Hitung Lagi [Y/T] : ");
lagi = getche () ;

if (lagi == 'Y' || lagi == 'Y')


goto atas;

getch ();
}

98
Output yang akan dihasilkan, dari program contoh-8 diatas adalah :

Gambar 7.4 Hasil contoh-8


7.5 Pernyataan while
Pernyataan perulangan while merupakan instruksi perulangan yang mirip dengan
perulangan for. Bentuk perulangan while dikendalikan oleh syarat tertentu, yaitu
perulangan akan terus dilaksanakan selama syarat tersebut terpenuhi.
Bentuk umum perulangan while, sebagai berikut :
while ( syarat )
pernyataan / perintah ;

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>

using namespace std;


int main()
{
int bil=1;
while(bil<=10)

{
cout << bil << " ";
++bil;
}
getch();

99
Output yang akan dihasilkan, dari program contoh-9 diatas adalah :

Gambar 7.5. Hasil contoh-9


Contoh-10 :
#include <stdio.h>
#include <conio.h>
#include <iostream>

using namespace std;


int main()
{
int bil=2;
while (bil<=10)
{
cout << bil << " ";
bil+=2;
}
getch();
}

Output yang akan dihasilkan, program contoh-10 diatas adalah :

Gambar 7.5 Hasil contoh-10


7.6 Pernyataan do-while
Pernyataan perulangan do-while merupakan bentuk perulangan yang melaksanakan
perulangan terlebih dahulu dan pengujian peulangan tersebut dilakukan dibelakang.
Bentuk umum perulangan do-while, dengan lebih dari perintah / pernyataan, sebagai
berikut :

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>

using namespace std;


int main()
{
int bil = 2;
do
{
cout << bil << " ";
bil+=2;
}
while (bil<=10);
getch ();
}

OutPut yang akan dihasilkan, program contoh-11 diatas adalah :

Gambar 7.6. Hasil contoh-11

7.7 Pernyataan break


Pernyataan break telah dibahas pada pernyataan pengambilan keputusan switch. Pernyataan
break ini berfungsi untuk keluar dari struktur switch. Selain itu pernyataan break ini
berfungsi keluar dari perulanhgan ( for, while, dan do-while ). Jika pernyataan

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>

using namespace std;


int main()
{
int bil = 1;

do
{
if (bil >= 6)
break;
cout << bil << " ";
}
while (bil++);

getch();
}
Output yang akan dihasilkan, progam contoh-12 diatas adalah :

Gambar 7.7. Hasil contoh-12


Contoh-13 :
#include <stdio.h>
#include <conio.h>
#include <iostream>

using namespace std;


int main()
{
int a=3, b=2, c=1, bil;
printf("Bil-A | Bil-B | Bil-C\n");
printf("------------------------");
for (bil=1; bil<=10; ++bil)
{
a+=b; b+=c, c+=2;
printf("\n%d \t| %d \t| %d", a,
b, c);
break;
}
getche();
}

102
Output yang akan dihasilkan, dari program contoh-13 diatas adalah :

Gambar 7. 7. Hasil contoh-13


7.8 Pernyataan continue
Pernyataan continue digunakan untuk mengarahkan eksekusi ke iterasi (proses)
berikutnya pada loop yang sama, dengan kata lain mengembalikan proses yang sedang
dilaksanakan ke awal loop lagi, tanpa menjalankan sisa perintah dalam loop tersebut.
Contoh-14:
#include <stdio.h>
#include <conio.h>
#include <iostream>

using namespace std;


int main()
{
int bil;

for (bil=1; bil<=10; ++bil)


{
if(bil==6)
continue;

cout << bil << " ";


}
getch();
}
Output yang akan dihasilkan, dari program contoh-14 diatas adalah :

Gambar 7.8. Hasil contoh-14

103
BAB VIII
OPERASI STRING

8.1. Fungsi Manipulasi String


8.1.1 Fungsi strcat()
Fungsi ini digunakan untuk menambahkan string sumber kebagian akhir dari
string tujuan. File header yang harus disertakan adalah : string.h dan
ctype.h
Bentuk penulisan :
strcat ( tujuan, sumber );

Contoh-1 :
#include <string.h>
#include <ctype.h>
#include <iostream>
using namespace std;

int main()
{
char a1[20];
char a2[20];

cout<<"Masukkan Kata - 1= ";


cin>>a1;
cout<<"Masukkan Kata - 2= ";
cin>>a2;
strcat(a1, a2);
cout<<"Hasil Penggabungannya "<<a1;
getch();
}

Output yang akan dihasilkan, dari program contoh-1 diatas adalah :

Gambar 8.1.1. Hasil contoh-1


8.1.2 Fungsi strcmp()
Fungsi ini digunakan untuk membandingkan string pertama dengan string kedua.
Hasil dari fungsi ini bertipe data integer (int). File header yang harus disertakan
adalah : string.h
Bentuk Penulisan :
var_int = strcmp ( str1, str2 ) ;

104
Contoh-2 :
#include <conio.h>
#include <string.h>
#include <iostream>

using namespace std;


int main()
{
char a1[] = "BSI";
char a2[] = "Bsi";
char b1[] = "BSI";

cout<<"Hasil Perbandingan "<<a1<<" dan "<<a2<<"->";


cout<<strcmp(a1,a2)<<endl;
cout<<"Hasil Perbandingan "<<a2<<" dan "<<a2<<"->";
cout<<strcmp(a2,a1) <<endl;
cout<<"Hasil Perbandingan "<<a1<<" dan "<<b1<<"->";
cout<<strcmp(a1,b1) <<endl;
getch();
}
Output yang akan dihasilkan, dari program contoh-2 diatas adalah :

Gambar 8.1.2. Hasil contoh-2

8.1.3 Fungsi strcpy()


Fungsi ini digunakan untuk menyalin string asal ke-variabel string tujuan, dengan
syarat string tujuan harus mempunyai tipe data dan dan ukuran yang sama dengan
string asal. File header yang harus disertakan adalah : string.h.
Bentuk Penulisan :
strcpy (tujuan, asal) ;

Contoh-3 :
#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <iostream>

using namespace std;


int main()
{
char huruf[20];
char pindah[20];

cout<<"Masukkan Sembarang Kata = ";


gets(huruf);
/* Proses */
strcpy(pindah, huruf);
cout<<"Pemindahannya = "<<pindah;
getch();
}

105
Output yang akan dihasilkan, dari program contoh-3 diatas adalah :

Gambar 8.1.3. Hasil contoh-3


8.1.4 Fungsi strlen()
Fungsi ini digunakan untuk memperoleh banyaknya karakter dalam string. File
header yang harus disertakan adalah : string.h
Bentuk Penulisan :
strlen(str) ;
Contoh-4 :
#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <iostream>

using namespace std;


int main()
{
char huruf[20];
char pindah[20];

cout<<"Masukkan Sembarang Kata = ";


gets(huruf);
cout<<"Panjang Kata Yang Diinputkan = ";
cout<<strlen(huruf);
getch();
}
Output yang akan dihasilkan, dari program contoh-4 diatas adalah :

Gambar 8.1.4. Hasil contoh-4

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>

using namespace std;


int main()
{
char kata[20];
cout<<"Masukan Sembarang Kata = ";
gets(kata);
strrev(kata);
cout<<"Hasil Perubahan = "<<kata;
getch();
}

Output yang akan dihasilkan, dari program contoh-5 diatas adalah :

Gambar 8.1.5. Hasil contoh-5

8.2 Fungsi Konferi String


8.2.1 Fungsi atof()
Fungsi ini digunakan untuk mengubah string (teks) angka menjadi bilangan numerik
float. File header yang harus disertakan adalah : math.h
Contoh-6 :
#include <stdio.h>
#include <conio.h>
#include <math.h>
#include <stdlib.h>
#include <iostream>

using namespace std;


int main()
{
char kata[20];
float angka, a, b;

107
cout<<"Masukan Sembarang Kata berupa angka = ";
gets(kata);
angka = atof(kata);
a = angka + 5;
cout<<"Hasil Perubahan ditambah dengan 5 = "<<a;
getch();
}

Output yang akan dihasilkan, dari program contoh-6 diatas adalah :

Gambar 8.2.1. Hasil contoh-6

8.2.2 Fungsi atoi()


Fungsi ini digunakan untuk mengubah string (teks) angka menjadi bilangan
numerik integer. File header yang harus disertakan adalah : stdlib.h

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;

cout<<"Masukan Sembarang Kata berupa angka = ";


gets(kata);
angka = atoi(kata);
a = angka + 5;
cout<<"Hasil Perubahan ditambah dengan 5 = "<<a;
getch();
}

108
Output yang akan dihasilkan, dari program contoh-7 diatas adalah :

Gambar 8.2.2 Hasil contoh-7


8.2.3 Fungsi atol()
Fungsi ini digunakan untuk mengubah string (teks) angka menjadi bilangan
numerik long integer. File header yang harus disertakan adalah : stdlib.h
Contoh-8 :
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <iostream>
using namespace std;

int main()
{
char kata[20];
float angka, a, b;

cout<<"Masukan Sembarang Kata berupa angka


= ";
gets(kata);
angka = atol(kata);
a = angka + 5;
cout<<"Hasil Perubahan ditambah dengan 5 =
"<<a;
getch();
}

Output yang akan dihasilkan, dari program contoh-8 diatas adalah :

Gambar 8.2.3. Hasil contoh-8

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 :

Gambar 8.2.4. Hasil contoh-9

8.2.5 Fungsi strupr()


Fungsi ini digunakan untuk mengubah setiap huruf kecil dalam string menjadi huruf
kapital ( huruf besar ). File header yang harus disertakan adalah : string.h
Bentuk Penulisan :
strupr(str);
Contoh-10 :
#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 Kecil=";

110
gets(kata);
strupr(kata);
cout<<"Hasil Perubahan = "<<kata;
getch();
}

Output yang akan dihasilkan, dari program contoh-10 diatas adalah :

Gambar 8.2.5 Hasil contoh-10

111

Anda mungkin juga menyukai