Nama : Nurlela
Moomin
NIM : 21315198
Kelas : 2
Misi 02
1.
Pengenalan
Program C++
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 menambahkan fasilitas pembebanlebihan
operator dan fungsi yang kemudian melahirkan apa yang disebut C++. 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 ini
sama-sama dapat digunakan untuk mengkompilasi 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++.
2.
Jenis
variable C++
a.
Variabel
numerik dibagi menjadi 3 bagian, yaitu :
1)
Bilangan
Bulat (Integer)
Bilangan ini mampu menampung
bilangan bulat yang berkisar antara -32.768 hingga +32.768
2)
Bilangan
Desimal Berpresisi Tunggal (Floating Point)
Dalam bentuk bilangan berpangkat
Floating Point dapat digunakan untuk
menampung data dari 10^(-38) hingga 10^38, sedangkan dalam bentuk desimal dapat menampung hingga enam desimal (6 angka dibelakang koma).
menampung data dari 10^(-38) hingga 10^38, sedangkan dalam bentuk desimal dapat menampung hingga enam desimal (6 angka dibelakang koma).
3)
Bilangan
Desimal Berpresisi Ganda (Double Precision)
Serupa dengan Floating Point, hanya
saja kapasitas menampung datanya lebih besar. Dalam bentuk bilangan berpangkat,
Double Precision dapat mengolah angka-angka dengan ketelitian yang berkisar
antara 10^(-308) hingga 10^308. Sedangkan dalam bentukdesimal mampu menampung
hingga 15 digit.
b.
Variabel
teks dibedakan atas :
1)
Char
(untuk karakter tunggal)
Selain
dapat digunakan untuk menampung sebuah karakter, variabel ini dapat pula dikonversikan
dalam bentuk bilangan (ASCII code). Bilangan hasil konversi data ini dinyatakan
dengan bilangan bulat yang berkisar antara -128 sampai +127.
2)
String
(untuk rangkaian karakter)
String
pada prinsipnya merupakan rangkaian karakter yang diakhiri dengan karakter null
(‘\0’).
3.
Operator Logika C++
a.
Assignation ( = ), Operator
Assignation digunakan untuk memberikan nilai ke suatu variabel. contohnya :
a=5
Pernyataan di atas berarti kita memberikan nilai integer 5
ke variabel a. Sisi kiri operator disebut lvalue (left value) dan sisi kanan
disebut rvalue (right value). lvalue harus selalu berupa variabel dan rvalue
atau sisi kanan dapat berupa konstanta, variabel, hasil dari suatu operasi atau
kombinasi dari semuanya. Aturan yang paling penting pada assigning (operasi
sama dengan) adalah aturan kanan-ke-kiri: Operasi assignment selalu terjadi
dari kanan ke kiri, dan tidak pernah sebaliknya.
a = b
Pernyataan ini memberikan arti variabel a (lvalue) di beri
harga b (rvalue). Contoh penerapannya begini :
a = 10; //berarti a bernilai 10
b = 4; //berarti a bernilai 10 dan b
bernilai 4
a = b; //berarti a bernilai 4 dan b
bernilai 4. Ingat aturannya, Kanan ke Kiri.
b = 7; //berarti a bernilai 4 dan b
bernilai 7.
Bagaimana,
sudah paham belum? jangan bilang tidak paham ya sobat. Hehehe
4.
Operator Aritmatika
Operator aritmatika yang dapat digunakan di C++ ada 5, yaitu
:
·
+
Penjumlahan
·
-
Pengurangan
·
*
Perkalian
·
/
Pembagian
·
%
Modulo atau modulus
Wah pasti tidak perlu di jelaskan
satu persatu sobat juga pasti sudah paham. Mungkin yang sedikit bingung adalah
operator ( % ) atau modulo. Modulo adalah operasi yang memberikan sisa
dari pembagian dua nilai. Misalnya begini:
a = 11 % 3
Variabel a akan bernilai 2. Nilai 2
didapat dari sisa pembagian 11 dibagi 3. Coba saja di cek kalau tidak percaya.
Tetapi jangan menggunakan kalkulator, karena hasilnya akan bilangan desimal.
Capek deh.
a.
Increase ( ++ ) and Decrease ( -- )
Di C++ kita dapat memperpendek operasi :
Increase (++)
a++;
a+=1;
a=a+1;
b.
Decrease
(--)
a--;a-=1;
a=a-1;
Masih bingung? begini sobat. Misalnya a=3; a++; maka nilai a
yang baru adalah 4. Nah paham kan?
Operator Increase (++) dan Decrease
(--) dapat digunakan sebagai prefix atau suffix. Dengan kata lain dapat
dituliskan sebelum identifier variabel (++a) atau sesudahnya (a++). Operator increase
yang digunakan sebagai prefix (++a), begini perbedaannya:
|
Contoh 1
(Prefix) |
Contoh 2
(Surfix) |
|
B = 3;
A = + + B; // A berisi 4, B berisi 4 |
B = 3;
A = B + +; // A berisi 3, B berisi 4 |
Pada contoh 1, B ditambahkan sebelum nilainya diberikan ke A. Sedangkan contoh 2, Nilai B diberikan terlebih dahulu ke A dan B ditambahkan kemudian.
c.
Relational operators ( ==, !=, >, <, >=,
<= )
Untuk mengevaluasi antara 2 ekspresi, dapat digunakan
operator Relasional di atas. Hasil dari operator ini adalah nilai Boolean yaitu
hanya berupa True atau False, atau dapat juga dalam nilai int, 0 untuk mereprensentasikan
"false" dan 1 untuk merepresentasikan "true".
|
==
|
Sama dengan
|
|
! =
|
Tidak sama dengan
|
|
>
|
Lebih besar dari
|
|
<
|
Kurang dari
|
|
> =
|
Lebih besar dari atau sama dengan
|
|
<=
|
Kurang dari atau sama dengan
|
Contoh :
(7 == 5) // evaluates to false atau hasil perbandingan salah.
(5 > 4) // evaluates to true atau hasil perbandingan benar.
(3 != 2) // evaluates to true atau hasil perbandingan benar.
(6 >= 6) // evaluates to true atau hasil perbandingan benar.
(5 < 5) // evaluates to false atau hasil perbandingan salah.
(7 == 5) // evaluates to false atau hasil perbandingan salah.
(5 > 4) // evaluates to true atau hasil perbandingan benar.
(3 != 2) // evaluates to true atau hasil perbandingan benar.
(6 >= 6) // evaluates to true atau hasil perbandingan benar.
(5 < 5) // evaluates to false atau hasil perbandingan salah.
Selain menggunakan konstanta numerik
seperti di atas, kita dapat menggunakan ekspresi yang valid, termasuk variabel.
Misalkan a = 2, b = 3 dan c = 6 :
(a == 5) // "evaluates to false" karena a tidak samadengan 5.
(a*b >= c) // "evaluates to true" karena (2*3 >= 6) adalah benar.
(b+4 > a*c) // "evaluates to false" karena (3+4 > 2*6) adalah salah.
((b=2) == a) // "evaluates to true".
(a == 5) // "evaluates to false" karena a tidak samadengan 5.
(a*b >= c) // "evaluates to true" karena (2*3 >= 6) adalah benar.
(b+4 > a*c) // "evaluates to false" karena (3+4 > 2*6) adalah salah.
((b=2) == a) // "evaluates to true".
Hati-hati! Operator = (satu tanda
sama) adalah tidak sama dengan operator == (dua tanda yang sama), yang pertama
adalah operator penugasan (memberikan nilai pada haknya untuk variabel di
sebelah kiri) dan yang lainnya (= =) adalah operator kesetaraan yang
membandingkan apakah kedua ekspresi dalam dua sisi itu adalah sama satu sama
lain.
d.
Logic operators ( !, &&, || )
Operator Logika digunakan untuk menghubungkan dua buah
operasi relasi menjadi sebuah ungkapan kondisi. Hasil dari operator logika ini
menghasilkan nilai numerik 1 (True) atau 0 (False).
|
!
|
Operator logika NOT
|
|
&&
|
Operator logika AND
|
|
||
|
Operator logika OR
|
Operator logika NOT ( ! ), Operator logika NOT akan
memberikan nilai kebalikkan dari ekspresi yang disebutkan. Jika nilai yang
disebutkan bernilai BENAR maka akan menghasilkannilai SALAH, begitu pula
sebaliknya.
Misalnya :
Jika nilai a = 3 pada a + 4 < 10 :
Pada ekspresi relasi akan bernilai 1 (true), karena 7 < 10, sedangkan jika digunakan operator NOT akan menjadi !(a + 4 < 10) dan bernilai 0 (false).
Misalnya :
Jika nilai a = 3 pada a + 4 < 10 :
Pada ekspresi relasi akan bernilai 1 (true), karena 7 < 10, sedangkan jika digunakan operator NOT akan menjadi !(a + 4 < 10) dan bernilai 0 (false).
Operator logika AND ( && ),
Operator logika AND digunakan untuk menghubungkan dua atau lebih ekspresi
relasi, akan dianggap BENAR, bila semua ekspresi relasi yang dihubungkan
bernilai BENAR.
Lihat :
Operator &&
Lihat :
Operator &&
|
a
|
b
|
a
&& b
|
|
true
|
true
|
true
|
|
true
|
false
|
false
|
|
false
|
true
|
false
|
|
false
|
false
|
false
|
Contohnya :
Ada 3 relasi, yaitu a + 4 < 10 ; b > a + 5 ; c - 2 >= 4 ; . Jika a = 3 ; b = 3 ; c = 7 ; . maka penggunaan operator logika AND seperti berikut :
Ada 3 relasi, yaitu a + 4 < 10 ; b > a + 5 ; c - 2 >= 4 ; . Jika a = 3 ; b = 3 ; c = 7 ; . maka penggunaan operator logika AND seperti berikut :
·
a
+ 4 < 10 ==> 3 + 4 < 10 ==> 7 < 10
==> Benar
·
b
> a + 5 ==> 3 > 3 + 5 ==> 3 > 8
==> Salah
·
c
- 2 >= 4 ==> 7 - 2 >= 4 ==> 5 >= 4
==> Benar
Jika menggunakan Operator Logika AND
pada ketiga relasi di atas akan bernilai Salah ( 0 ), karena ada satu relasi
yang bernilai Salah, maka semuanya akan bernilai Salah.
a
+ 4 < 10 && b > a + 5 && c - 2 >= 4 ==> Salah
==> 0 nol
Operator logika OR ( || ),
Operator logika OR digunakan untuk menghubungkan dua atau lebih ekspresi
relasi, akan dianggap BENAR, bila salah satu ekspresi relasi yang dihubungkan
bernilai BENAR dan bila semua ekspresi relasi yang dihubungkan bernilai
SALAH,maka akan bernilai SALAH.
Operator ||
|
a
|
b
|
a || b
|
|
true
|
true
|
true
|
|
true
|
false
|
true
|
|
false
|
true
|
true
|
|
false
|
false
|
false
|
Contonya saya buat masih sama
seperti pada kasus Operator Logika AND ( && ).
·
a
+ 4 < 10 ==> 3 + 4 < 10 ==> 7 < 10
==> Benar
·
b
> a + 5 ==> 3 > 3 + 5 ==> 3 > 8
==> Salah
·
c
- 2 >= 4 ==> 7 - 2 >= 4 ==> 5 >= 4
==> Benar
Jika menggunakan Operator Logika OR pada ketiga relasi di
atas akan bernilai Benar ( 1 ), karena jika ada satu relasi saja yang bernilai
Benar, maka semuanya akan bernilai Benar.
a + 4 < 10 || b > a + 5 || c - 2 >= 4 ==>
Benar ==> 1
e.
Conditional operator ( ? )
Conditional operator atau operator bersyarat akan
mengevaluasi ekspresi dan memberikan hasil tergantung dari hasil evaluasi (true
atau false). Sintaks :
condition ?result1 : result2
Jika kondisi true maka akan menghasilkan result1 , jika
tidak akan menghasilkan result2.
Perhatikan :
7==5 ?4 : 3 // hasil 3, karena 7 tidak sama dengan 5.
7==5+2 ?4 : 3 // hasil 4, karena 7 sama dengan 5+2.
5>3 ?a : b // hasil bernilai a, karena 5 lebih besar dari
3.
a>b ?a : b // hasil tergantung nilai variabel mana yang
lebih besar, a atau b.
f.
Bitwise Operators ( &, |, ^, ~, <<,
>>)
Operator Bitwise memodifikasi variabel menurut bit yang
merepresentasikan nilai yang disimpan, atau dengan kata lain dalam representasi
binary.
|
operator
|
asm
equivalent
|
Keterangan
|
|
&
|
AND
|
Bitwise AND
|
|
|
|
OR
|
Bitwise Inclusive OR
|
|
^
|
XOR
|
Bitwise Exclusive OR
|
|
~
|
NOT
|
Unary complement (bit inversion)
|
|
<<
|
SHL
|
Shift Left
|
|
>>
|
SHR
|
Shift Right
|
g.
Explicit type casting operators
Type casting operators memungkinkan
untuk mengkonversikan tipe data yang sudah diberikan ke tipe data yang lain.
Ada beberapa cara yang dapat dilakukan dalam C++, yang paling popular yaitu tipe
baru dituliskan dalam tanda kurung ().
Contoh :
int i; float f = 3.14; i = ( int )
f;
Contoh diatas, mengkonversikan nilai
3.14 menjadi nilai integer (3). Type casting operator yang digunakan ( int ).
h.
Precedence of operators ( Prioritas pada operator )
Maksudnya operasi yang di dahulukan terlebih dahulu. Misal :
a = 4 + 8 / 2 ;
Jawaban atau nilai a adalah 8.
Mengapa bukan 6 ? Ya karena pada C++ pengerjaan operasi di lakukan dari level
yang tinggi ke level yang lebh rendah.
Berikut ini adalah prioritas operator
dari tinggi ke rendah :
|
Level
|
Operator
|
Description
|
Grouping
|
|
1
|
::
|
scope
|
Left-to-right
|
|
2
|
() [] . -> ++ -- dynamic_cast
static_cast reinterpret_cast const_cast typeid
|
postfix
|
Left-to-right
|
|
3
|
++ -- ~ ! sizeof new delete
|
unary (prefix)
|
Right-to-left
|
|
* &
|
indirection and reference
(pointers)
|
||
|
+ -
|
unary sign operator
|
||
|
4
|
(type)
|
type casting
|
Right-to-left
|
|
5
|
.* ->*
|
pointer-to-member
|
Left-to-right
|
|
6
|
* / %
|
multiplicative
|
Left-to-right
|
|
7
|
+ -
|
additive
|
Left-to-right
|
|
8
|
<<>>
|
shift
|
Left-to-right
|
|
9
|
<><= >=
|
relational
|
Left-to-right
|
|
10
|
== !=
|
equality
|
Left-to-right
|
|
11
|
&
|
bitwise AND
|
Left-to-right
|
|
12
|
^
|
bitwise XOR
|
Left-to-right
|
|
13
|
|
|
bitwise OR
|
Left-to-right
|
|
14
|
&&
|
logical AND
|
Left-to-right
|
|
15
|
||
|
logical OR
|
Left-to-right
|
|
16
|
?:
|
conditional
|
Right-to-left
|
|
17
|
= *= /= %= += -= >>=
<<= &= ^= |=
|
assignment
|
Right-to-left
|
|
18
|
,
|
comma
|
Left-to-right
|
5.
Operasi
Dasar c++
a.
Cout
Dengan
menggunakan obyek ini, anda dapat meletakkan suatu informasi ke standard output
(normalnya berupa layar). Untuk menampilkan tulisan "coba cout dengan
ganti baris" yang diikuti dengan ganti baris (newline), anda bisa
menggunakan pernyataan berikut:
cout<<
"coba cout dengan ganti baris\n";
Untuk
menampilkan tulisan "Tanggal : " diikuti dengan isi variabel tgl dan
kemudian karakter newline, pernyataan yang diperlukan:
cout
"Tanggal : " << tgl << '\n';
Pada
contoh di atas terdapat karakter khusus berupa newline yang penulisannya berupa
'\n'. Karakter seperti ini dikenal dengan sebutan escape sequence. Pada
pemrograman C++ terdapat sejumlah karakter yang tergolong sebagai escape
sequence.
b.
Manipulator
Manipulator
umumnya digunakan untuk mengatur tampilan data. Misalnya untuk mengatur agar
sesuatu nilai ditampilkan dengan sepuluh karakter dan diatur rata kanan
terhadap lebar tersebut. Tabel berikut berisikan jumlah manipulator pada bahasa
pemrograman C++.
Tabel A. Manipulator
|
Manipulator
|
Keterangan
|
|
endl
|
Menyisipkan newline dan
mengirimkan isi penyangga keluaran ke piranti keluaran
|
|
ends
|
Menyiapkan karakter null
|
|
flush
|
Mengirimkan isi penyangga keluaran
ke piranti keluaran
|
|
dec
|
Mengonversi ke bilangan basis
sepuluh
|
|
hex
|
Mengonversi ke bilangan basis 16
(oktal)
|
|
oct
|
Mengonversi ke bilangan basis 8
(oktal)
|
|
setbase(int n)
|
Mengonversi ke bilangan basis n
(n=8, 10 atau 16)
|
|
setw(int n)
|
Mengatur lebar field untuk suatu
nilai sebesar n karakter
|
|
setfill(int c)
|
Menyetel karakter pemenuhan berupa
c
|
|
setprecision(int n)
|
Menyetel presisi bilangan pecahan
sebesar n digit
|
|
setiosflags(long f)
|
Menyetel format yang ditentukan
oleh f. f adalah tanda format pada Tabel B
|
|
resetiosflags(long f)
|
Menghapus format yang ditentukan
oleh f. f adalah tanda format pada Tabel B
|
1)
Manipulator endl
Manipulator endl digunakan untuk menyisipkan karakter
newline. Dengan kata lain manipulator ini identik dengan '\n'. Namun endl lebih
disukai daripada '\n' karena lebih memberikan kejelasan. Selain itu,
manipulator ini menjamin data langsung dikirimkan ke piranti keluaran. Hal ini
sangat bermanfaat terutama kalau piranti keluaran berupa file di disk.
Contoh program yang menggunakan manipulator endl:
// barang1.cpp
// program ini menampilkan tiga buah jumlah barang dan
// menggunakan manipulator endl
// Oleh: Benidiktus Sihotang, STP
#include <iostream.h>
#include <conio.h>
void main()
{
int jlhbarisa=100,
int jlhbarisb=232,
int jlhbarisc=888;
clrscr; // menghapus layar
cout << "Barang A = " << jlhbarisa << endl;
cout << "Barang B = " << jlhbarisb << endl;
cout << "Barang C = " << jlhbarisc << endl;
}
// program ini menampilkan tiga buah jumlah barang dan
// menggunakan manipulator endl
// Oleh: Benidiktus Sihotang, STP
#include <iostream.h>
#include <conio.h>
void main()
{
int jlhbarisa=100,
int jlhbarisb=232,
int jlhbarisc=888;
clrscr; // menghapus layar
cout << "Barang A = " << jlhbarisa << endl;
cout << "Barang B = " << jlhbarisb << endl;
cout << "Barang C = " << jlhbarisc << endl;
}
Jika program di atas dikompilasi dan kemudian dijalankan,
hasilnya adalah sebagai berikut:
C:\PRG>barang1 <enter>
Barang A = 100
Barang B = 232
Barang C = 888
Barang B = 232
Barang C = 888
C:\PRG>_
2)
Manipulator setw()
Manipulator setw() bermanfaat untuk mengatur lebar dari
suatu tampilan data. Sebagai contoh data jumlah pada program barang2.cpp dapat
ditampilkan rata kanan dengan cara seperti di bawah ini:
// barang2.cpp
// program ini menampilkan tiga buah jumlah barang dan
// menggunakan manipulator setw
// Oleh: Benidiktus Sihotang, STP
#include <iostream.h>
#include <conio.h>
#include <iomanip.h>
void main()
{
int jlhbarisa=10,
int jlhbarisb=232,
int jlhbarisc=1788;
clrscr; // menghapus layar
cout << "Barang A = " << setw (5) << jlhbarisa << endl;
cout << "Barang B = " << setw (5) << jlhbarisb << endl;
cout << "Barang C = " << setw (5) << jlhbarisc << endl;
}
// program ini menampilkan tiga buah jumlah barang dan
// menggunakan manipulator setw
// Oleh: Benidiktus Sihotang, STP
#include <iostream.h>
#include <conio.h>
#include <iomanip.h>
void main()
{
int jlhbarisa=10,
int jlhbarisb=232,
int jlhbarisc=1788;
clrscr; // menghapus layar
cout << "Barang A = " << setw (5) << jlhbarisa << endl;
cout << "Barang B = " << setw (5) << jlhbarisb << endl;
cout << "Barang C = " << setw (5) << jlhbarisc << endl;
}
Jika program di atas dikompilasi dan kemudian dijalankan,
hasilnya adalah sebagai berikut:
C:\PRG>barang2 <enter>
Barang A = 10
Barang B = 232
Barang C = 1788
Barang B = 232
Barang C = 1788
C:\PRG>_
3)
Manipulator setfill()
Manipulator setfill berguna untuk mengatur karakter yang
dipakai memenuhi bagian field yang ditentukan setw(); yang tidak dipakai untuk
menampilkan data. Misalnya, jika diberikan perintah:
cout<< setw (6) << 234 << endl;
maka 123 akan ditampilkan dengan lebar 6 karakter dan
didahului oleh tiga karakter spasi. Apabila sebelum pernyataan di atas terdapat
pernyataan:
cout<< setfill ('*'); hasilnya berupa: ***123.
4)
Manipulator dec, oct dan hex
Manipulator dec, oct dan hex berguna menampilkan suatu data
dalam bentuk desimal (bilangan basis 10), oktal (bilangan Basis 8) dan
heksadesimal (bilangan basis 16).
// konversi.cpp
// program ini mengonversi ke desimal, oktal
// dan heksadesimal
// Oleh: Benidiktus Sihotang, STP
#include <iostream.h>
#include <iomanip.h>
#include <conio.h>
void main()
{
int nilai=250;
clrscr; // menghapus layar
cout << nilai << endl;
cout << oct << nilai << endl;
cout << hex << nilai << endl;
cout << dec << nilai << endl;
}
// program ini mengonversi ke desimal, oktal
// dan heksadesimal
// Oleh: Benidiktus Sihotang, STP
#include <iostream.h>
#include <iomanip.h>
#include <conio.h>
void main()
{
int nilai=250;
clrscr; // menghapus layar
cout << nilai << endl;
cout << oct << nilai << endl;
cout << hex << nilai << endl;
cout << dec << nilai << endl;
}
Hasil eksekusi:
C:\PRG>konversi <enter>
250
372
fa
250
372
fa
250
C:\PRG>_
Tampak bahwa jika manipulator dec, oct atau hex tidak
digunakan, suatu nilai ditampilkan dalam basis sepuluh.
5)
Manipulator setbase()
Pengonversian ke oktal, desimal atau heksadesimal juga dapat
dilakukan dengan menggunakan manipulator setbase(). Misalnya: setbase(8)
identik dengan: oct.
6)
Manipulator flush
Pada saat mengeluarkan standar data ke standar output, cout
menggunakan suatu penyangga (buffer). Jika penyangga belum penuh, cout tidak
mengirimkan ke standard output. Hal ini dilakukan untuk mengidentifikasikan
pengiriman ke standard output. Agar data yang dikirimkan ke cout langsung
ditransfer ke stardard output, anda dapat menambahkan manipulator flush di
akhir data. Namun perlu diketahui, kalau anda menggunakan endl, sebenarnya
manipulator ini identik dengan newline diikuti dengan flush. Dengan demikian,
tiga buah pernyataan berikut mempunyai makna yang sama:
cout<< "C++\n" << flush;
cout<< "C++" << endl;
cout<< "C++" << '\n' << flush;
7)
Manipulator ends
Berfungsi untuk menambahkan karakter null (ASCII nol) ke
deretan suatu karakter. Hal ini kadang-kadang diperlukan, misalnya jika ingin
mengirim sejumlah karakter ke file disk atau modem dan mengakhirinya dengan
karakter null.
Contoh:
cout<< 'c' << 'd' << 'e' << ends;
Pernyataan di atas mengirimkan tiga buah karakter (c, d dan
e) serta sebuah karakter nul. Pada layar, ends akan menimbulkan sebuah karakter
kosong.
8)
Pemakaian setiosflags()
Manipulator setiosflags() merupakan manipulator yang dapat
dipakai untuk mengontrol sejumlah tanda format yang tercantum pada Tabel B.
Tabel B. Tanda format untuk setiosflags() dan
resetiosflags()
|
Nama tanda format
|
Keterangan
|
|
ios::left
|
Menyetel rata kiri terhadap lebar
field yang diatur melalui setw()
|
|
ios::right
|
Menyetel rata kanan terhadap lebar
field yang diatur melalui setw()
|
|
ios::scientific
|
Memformat keluaran dalam notasi
eksponensial
|
|
ios::fixed
|
Memformat keluaran dalam bentuk
notasi desimal
|
|
ios::dec
|
Memformat keluaran dalam basis 10
(desimal)
|
|
ios::oct
|
Memformat keluaran dalam basis 8
(oktal)
|
|
ios::hex
|
Memformat keluaran dalam basis 16
(heksadesimal)
|
|
ios::uppercase
|
Memformat huruf pada notasi
heksadesimal dalam bentuk huruf kapital
|
|
ios::showbase
|
Menampilkan awalan 0x untuk
bilangan heksadesimal atau 0 (nol) untuk bilangan oktal
|
|
ios::showpoint
|
Menampilkan titik desimal pada
bilangan pecahan yang tidak memiliki bagian pecahan
|
|
ios::showpos
|
Untuk menampilkan tanda + pada
bilangan positif
|
9)
Pemakaian resetiosflags()
Adakalanya setelah tanda format tertentu digunakan (misalnya
ios::showbase), diinginkan untuk kembali ke keadaan semula. Hal ini sering
terjadi pada program yang besar. Untuk menangani kasus seperti ini, pada C++
terdapat manipulator bernama resetiosflags().
Misalnya:
setiosflags(ios::showbase) telah digunakan. Untuk kembali ke
keadaan semula, anda bisa memberikan: resetiosflags(ios::showbase). Lebih
jelasnya, penggunaan manipulatordi atas dilakukan untuk menghilangkan tanda
awalan 0 pada bilangan oktal atau 0x pada bilangan heksadesimal pada
tampilan berikutnya.
10) Manipulator
setprecision()
Apabila anda bekerja dengan bilangan pecahan, anda juga bisa
mengatur jumlah digit pecahan yang ingin ditampilkan. Hal ini dapat dilakukan
dengan menggunakan manipulator setprecision(). Bentuknya: setprecision(n) dengan
n menyatakan jumlah digit pecahan yang diinginkan.
Sebagai contoh:
cout<< setprecision(2) << 123.56789 <<
endl; akan menampilkan: 123.57
Bagian pecahan terdiri dari dua digit sesuai dengan argumen
pada setprecision().
11) Cin
Bahasa pemrograman C++ menyediakan suatu obyek bernama cin (baca:
C in). Obyek ini bermanfaat untuk membaca data dari standard input (normalnya
adalah keyboard).
a)
cin dengan Sebuah Variabel, Bentuk pernyataan cin untuk membaca data dari keyboard dan
meletakkan ke sebuah variabel bernama var: cin>> var, Tanda >> disebut
operator "pengambilan dari".
b)
cin dengan Lebih dari Satu Variabel, Bentuk cin juga dapat seperti berikut: cin>> bil_x
>> bil_y;
Pernyataan di atas digunakan untuk membaca bil_x dan bil_y.
c)
cin untuk Membaca Karakter, cin juga dapat dipakai untuk membaca sebuah karakter: cin>>
karakter
Contoh program cin membaca karakter:
// cinkarakter.cpp
// program ini membaca karakter dengan cin
// Oleh: Benidiktus Sihotang, STP
#include <iostream.h>
#include <iomanip.h>
#include <conio.h>
void main()
{
char karakter;
clrscr(); // menghapus layar
cout << "Masukkan sebuah karakter. ";
cin >> karakter;
cout << "Anda mengetik " << karakter << endl;
}
// program ini membaca karakter dengan cin
// Oleh: Benidiktus Sihotang, STP
#include <iostream.h>
#include <iomanip.h>
#include <conio.h>
void main()
{
char karakter;
clrscr(); // menghapus layar
cout << "Masukkan sebuah karakter. ";
cin >> karakter;
cout << "Anda mengetik " << karakter << endl;
}
Hasil eksekusi:
C:\PRG>cinkarakter <enter>
Masukkan sebuah karakter. x <enter>
Anda mengetik x
Anda mengetik x
C:\PRG>_
d)
Fungsi getch() dan getche()
Fungsi getch() dan getche() berguna
untuk membaca sebuah karakter tanpa perlu menekan enter. Selain itu, fungsi ini
juga dapat dipakai untuk membaca tombol seperti spasi, tab ataupun enter.
Bentuk pemakaiannya: karakter = getch(); karakter = getche();
Kode tombol yang ditekan akan
diberikan ke variabel karakter yang bertipe char. Perbedaan kedua fungsi di
atas yaitu fungsi getch() tidak menampilkan karakter dari tombol yang ditekan,
sedangkan fungsi getche() karakter dari tombol yang ditekan akan ditampilkan.
Apabila fungsi getch() atau getche()
digunakan, file header bernama conio.h perlu disertakan dalam program.
e)
Cerr
Biasanya pesan kesalahan yang ingin
ditampilkan dari suatu program C++ tidak dilakukan dengan cout, melainkan
dengan cerr. Tujuannya adalah agar pesan dikirim ke piranti yang berbeda dengan
dengan informasi yang bukan berupa pesan kesalahan. Dengan demikian jika
dikehendaki nantinya kedua jenis informasi tersebut dapat dipilahkan (melalui
pengalihan arah / redirection).
Sebagai contoh:
cerr<< "Memori penuh.
Program tidak dapat dijalankan\n"; akan mengirimkan string: "Memori
penuh. Program tidak dapat dijalankan\n" ke standard error.
Tidak ada komentar:
Posting Komentar