View
249
Download
0
Category
Preview:
Citation preview
1. Materi 2: Tipe Data dan Operator
2.1. Tipe Data
Bahasa C++ menyediakan 7 tipe dasar, yaitu: char, int, short, long,
float, double, dan long double. Cara pendeklarasian variable dan tipe data
adalah:
tipe_data nama_variable;
jika suatu variable telah dideklarasikan, maka variable tersebut dapat diberi nilai, yaitu
dengan cara:
variable = nilai;
tetapi pemberian nilai juga dapat dilakukan langsung saat mendeklarasikan variable,
seperti berikut:
tipe_data nama_variable = nilai;
Ukuran memori untuk masing-masing tipe data sangat bergantung pada
perangkat keras dari komputer yang digunakan. Karena itu jangkauan dari masing-
masing tipe data juga dapat berbeda antara mesin satu dengan mesin yang lain. Ukuran
memori dan jangkauan data untuk masing-masing tipe data dasar pada umumnya
ditunjukkan pada tabel di bawah ini:
Tipe DataUkuranMemori (byte)
Jangkauan nilaiJumlah
digitpresisi
char 1 -128 sampai 127int 2 -32768 sampai 32767long 4 -2147438648 sampai 2147438647float 4 3.4x10-38 sampai 3.4x1038 6 – 7double 8 1.7 x 10-308 sampai 1.7 x 10308 15 – 16long double 10 3.4x10-4932 sampai 3.4x104932 19bool 1 true atau false
Tipe data suatu variable ditentukan oleh jenis data yang akan digunakan pada
variable. Jika variable yang digunakan untuk meyimpan data bilangan bulat saja, maka
pilihannya adalah tipe bilangan bulat yaitu int atau long. Selain jenis data, dalam
menentukan tipe data suatu variable juga harus melihat kemungkinan nilai maksimal
yang akan ditampung. Misalnya suatu variable yang menunjukkan harga buku sebesar
Rp 100.000,00 maka dapat digunakan tipe data int.
Tipe-tipe data diatas memiliki modifikasi, yaitu berkaitan dengan dukungan
terhadap nilai positif dan negatif. Modifikasi yang dimaksud adalah penambahan
keyword signed dan unsigned. Tipe unsigned diterapkan pada tipe data bilangan
bulat, tipe ini akan menyebabkan nilai yang dapat ditampung harus bernilai positif. Sifat
ini juga menyebabkan jangkaun data dari tipe bilangan bulat yang dilengkapi
unsigned akan berubah. Adapun pemodifikasian tipe signed merupakan default
dari tipe-tipe data dasar, yang menyatakan bahwa data bernilai positif dan negatif.
Pemodifikasian tipe Tipe data yang sama Jangkauan nilaisigned char Char -128 sampai 127signed int Int -32768 sampai 32767signed short int short, signed short -32768 sampai 32767signed long int long, long int, signed long -2147438648 sampai
2147438647unsigned char - 0 sampai 255unsigned int - 0 sampai 65535unsigned short int unsigned short 0 sampai 65535unsigned long int unsigned long 0 sampai 4294967295
Dalam beberapa kompiler C++ seperti Dev C++ telah mendukung tipe data
string, data bertipe string berbentuk kumpulan dari karakter-karakter dan data ditulis
diantara dua tanda petik, contoh “hello world”. Jika kompiler tidak mendukung tipe data
string maka untuk membuat string dapat menggunakan array dari char.
2.2.1. Tipe data char
Adalah tipe data karakter yang bisa menyimpan mulai dari: a – z, A –
Z, ‘!’, ‘@’, dsb. Tipe data char ditulis diantara tanda petik tunggal dan hanya
berisi satu karakter. Karakter-karakter yang dikenal adalah karakter yang
terdapat pada tabel ASCII (American Standard Code for Information
Interchange). Contoh: char huruf = ‘c’;
char inisial1 = ‘A’, inisial2 = ‘W’;
char simbol = ‘#’;
char simbol2 = ‘\\’;
Karakter yang diawali dengan simbol \ mempunyai arti tersendiri.
Karakter-karakter tersebut dikenal dengan karakter khusus atau disebut juga
dengan escape sequence character.
Karakter Keterangan\0 Null\a Karakter bel\b Karakter backspace\f Karakter formfeed (ganti halaman)\n Karakter newline (pindah baris)\r Karakter carriage return (ke awal baris) tanpa linefeed\t Karakter tab horisontal\v Karakter tab vertikal\\ Karakter \\’ Karakter petik satu (‘)\” Karakter petik dua (“)\? Karakter tanda tanya (?)
Contoh penulisan karakter biasa dan krakter khusus:
Output dari kode diatas adalah:
Maksud dari kode (int) ch adalah untuk melihat nilai karakter ‘a’ pada tabel
ASCII.
2.2.2. Tipe data int
Variable bertipe int dideklarasikan dengan bentuk:
int bil;
setelah dideklarasikan variable bil dapat digunakan untuk menampung data
bertipe integer. Bilangan bertipe integer adalah bilangan bulat yang terletak
antara -32768 hingga 32767. Contoh penulisan dalam program:
Hasil output dari kode diatas adalah:
Seperti namanya, int hanya bisa bernilai bulat dan bukan pecahan
(desimal). Jika suatu variable digunakan untuk menampung nilai hasil
pembagian dua bilangan dan hasil pembagiannya tidak bulat, seperti contoh:int hasil_bagi_bulat = 5 / 2;
maka hasilnya tetap bilangan bulat (dengan pembulatan ke atas atau ke bawah):2
Hal ini terjadi karena 5 dibagi 2 = 2,5, sedangkan hasil_bagi_bulat adalah
integer (bilangan bulat) 2,5 kemudian dibulatkan menjadi 2.
2.2.3. Tipe data long
Tipe ini digunakan jika akan memproses bilangan bulat yang
nilainyanya lebih besar dari integer. Contoh deklarasi variable bertipe long:
long harga_mobil;
Contoh program:
Output dari kode diatas adalah:
2.2.4. Tipe data float, double, dan long double
Tipe-tipe ini digunakan untuk memproses bilangan yang mengandung
pecahan. Namun ketiganya memiliki perbedaan yaitu dalam hal kepresisian data
dan jangkauan nilai yang dicakup.
Contoh:
Hasil output adalah:
Untuk mengetahui tingkat kepresisian antara tipe data float, double, dan long double dapat digunakan manipulator setprecision yang terdapat pada file header “iomanip.h”.
Hasil output adalah:
2.2.5. Tipe data bool
Tipe data ini hanya berisi salah satu dari dua nilai berikut: true atau
false. Nilai true biasanya disimbolkan dengan angka 1, dan nilai false
disimbolkan dengan angka 0. Tipe data bool digunakan pada pernyataan-
pernyataan yang mengandung logika atau pada pernyataan pemilihan (if -
else). Contoh:
Output program 2.6.cpp adalah
2.2. Operator
Operator merupakan simbol yang biasa dilibatkan dalam program untuk
melakukan suatu operasi atau manipulasi. Misalnya untuk menjumlahkan dua buah
nilai, memberikan nilai ke suatu variable. Nilai yang dioperasikan disebut dengan
operand.
Jika dikelompokkan berdasarkan jumlah operand, operator dapat
dikelompokkan menjadi tiga sifat, yaitu:
Sifat Keterangan ContohUnary Hanya melibatkan satu operand -1Binary Melibatkan dua operand 1 + 2Ternary Melibatkan tiga operand (a > b) ? a:b
Bahasa C dan C++ memiliki banyak sekali operator. Operator-operator dalam
bahasa C maupun C++ memiliki hierarki (tingkat pengerjaan/jenjang/precedence).
3 + 2
operand operandoperator
Maksudnya, jika dalam suatu statement memiliki lebih dari satu operator maka operator
dengan hierarki tertinggi akan dikerjakan terlebih dahulu, contoh:
A = 5 * 8 – 9
Maka hasil dari pengerjaan diatas adalah 31. Karena operator perkalian ( * ) memiliki
tingkat hierarki lebih tinggi daripada operator pengurangan ( - ).
Macam-macam operator, arah proses, dan hierarkinya adalah sebagai berikut:
Hierarchy Operator Description Associativity1 :: Scope resolution
Left-to-right2
++ -- Suffix/postfix increment and decrement
() Function call
[ ] Array subscripting
. Element selection by reference
-> Element selection through pointer
3
++ -- Prefix increment and decrement
Right-to-left
+ - Unary plus and minus
! ~ Logical NOT and bitwise NOT
(type) Type cast
* Indirection (dereference)
& Address-of
sizeof Size-of
4 .* ->* Pointer to member
Left-to-right
5 * / % Multiplication, division, and remainder
6 + - Addition and subtraction
7 << >> Bitwise left shift and right shift
8< <= For relational operators < and ≤ respectively
> >= For relational operators > and ≥ respectively
9 == != For relational = and ≠ respectively
10 & Bitwise AND
11 ^ Bitwise XOR (exclusive or)
12 | Bitwise OR (inclusive or)
13 && Logical AND
14 || Logical OR
15 ?: Ternary conditional Right-to-Left
16 = Direct assignment (provided by default for C++ classes)
+= -= Assignment by sum and difference
*= /= %= Assignment by product, quotient, and remainder
<<= >>= Assignment by bitwise left shift and right shift
&= ^= |= Assignment by bitwise AND, XOR, and OR
17 , Comma Left-to-right
2.2.1. Operator Aritmatika
Operator aritmatika yang tergolong operator unary adalah
Operator Keterangan Contoh- Tanda minus -1+ Tanda plus +2
Operator aritmatika yang tergolong operator binary adalah
Operator Keterangan Contoh* Perkalian 2 * 3/ Pembagian 7 /2% Modulus (sisa pembagian) 5 % 4 = 1+ Penjumlahan 4 + 5- Pengurangan 5 – 6
Contoh:
Output:
2.2.2. Operator Penugasan
Operator penugasan yang berbentuk simbol sama dengan ( = ) berguna
untuk memberikan suatu nilai ke suatu variable. Contoh:a = 1;
c = 2 + (b = 1);
a = b = c = d = e = 1;
2.2.3. Operator Penurunan (decrement) dan Penaikan (increment)
Operator penurunan disimbolkan dengan -- dan berguna untuk
menurunkan nilai variable sebesar satu. Sedangkan operator penaikan
disimbolkan dengan ++ dan berguna untuk menaikkan nilai variable sebesar
satu. Contoh:
x++ sama seperti ungkapan x = x + 1.
y-- sama seperti ungkapan y = y – 1.
Operator penurunan dan penaikan dapat ditempatkan di depan (pre-) atau di
belakang (post-) variable. Efek dari penempatan operator dapat dilihat pada
contoh berikut:a = 7;
b = 2;
c = b + a++;
nilai c adalah 9 bukan 10. Pada contoh tersebut c diisi dengan penjumlahan
antara b dan a. Setelah c terisi dengan hasil penjumlahan tersebut, nilai a baru
dinaikkan satu, sehingga nilai a sekarang adalah 8. Persamaan c tersebut identik
dengan:c = b + a;
a = a + 1;
lain halnya jika operator penaikan diletakkan di depan operand, maka
operand tersebut akan dinaikkan nilainya terlebih dahulu sebelum proses lain
dilakukan. Contoh:a = 7;
b = 2;
c = b + ++a;
persamaan c tersebut identik dengan:a = a + 1;
c = b + a;
sehingga nilai c adalah 10.
2.2.4. Operator Bitwise
Digunakan untuk keperluan memanipulasi data dalam bentuk bit.
Seluruh operator bitwise hanya bisa dikenakan pada operand bertipe data int atau
char. C++ menyediakan enam operator bitwise yaitu
Operator Keterangan Contoh
~ Bitwise NOT ~25
<< Geser bit ke kiri 25 << 2
>> Geser bit ke kiri 25 >> 2
& Bitwise AND 25 & 2
^ Bitwise XOR 25 ^ 2
| Bitwise OR 25 | 2
Contoh:
Output:
8210 = 00000000010100102 dan
2610 = 00000000000110102
Sehingga :
82 << 2 00000001010010002 = 32810
82 >> 2 00000000000101002 = 2010
82 & 26 00000000010100102
00000000000110102
------------------------- &
00000000000100102 = 1810
dan begitu juga untuk operasi OR dan XOR.
~82 digunakan untuk komplemen, yaitu
8210 = 00000000010100102 lalu dinegasikan tiap bitnya menjadi
11111111101011012 kemudian LSB ditambah 1 menjadi
1111111110101110 = 6545410 nilai ini melebihi jangkauan maksimum int yang
berkisar di -32768 sampai 32767, sehingga nilai yang keluar yaitu 83.
2.2.5. Operator Majemuk
Operator ini berguna untuk memendekkan suatu penulisan operasi
penugasan, misalnya x = x + 2 menjadi x += 2.
2.2.6. Operator Hubungan (Perbandingan)
Operator Hubungan digunakan untuk membandingkan hubungan
antara dua buah operand (sebuah nilai atau variable). Operator hubungan dalam
bahasa C++:
2.2.7. Operator Kondisi
Operator kondisi digunakan untuk memperoleh nilai dari dua
kemungkinan, contoh:
ungkapan1 ? ungkapan2 : ungkapan3
Bila nilai ungkapan1 benar, maka nilainya sama dengan ungkapan2, bila tidak
maka nilainya sama dengan ungkapan3.
Contoh dalam program:
2.2.8. Operator Koma
Operator ini berguna untuk meletakkan dua buah ungkapan pada suatu
kaidah yang memerlukan sebuah ungkapan saja. Contoh penggunaan padad
pernyataan perulangan for:for(i=0, j=0; i<10; i++, j--) { ..}
2.2.9. Operator Logika
Operator logika digunakan untuk menghubungkan dua atau lebih
ungkapan menjadi sebuah ungkapan berkondisi.
Operator Keterangan Contoh
&& Logika AND n && m
|| Logika OR n || m
! Logika NOT !n
Contoh:
Output:
2.3. Exercise
1. Jika diketahui x adalah variable bertipe integer, dari nilai-nilai berikut,
manakah yang dapat diberikan pada x?
a. 10b. 5.7c. 40000
2. Ubahlah ekspresi-ekspresi matematika berikut ke dalam bahasa C++
a. A=π r2
b. x=−b±√b2−4 ac2a
c. s=vt +12
a t2
3. Terdapat dua buah variable A dan B yang bertipe integer. Variable A bernilai
10, dan varible B bernilai 20. Buatlah program untuk menukar nilai dua
variable tersebut, sehingga A bernilai 20 dan B bernilai 10.
4. Sebuah program untuk menghitung nilai seorang mahasiswa memiliki 5
variable untuk nama mahasiswa, nomor induk mahasiswa, nilai tugas, nilai
mid semester, dan nilai ujian akhir semester. Nilai akhir dihitung dengan
rumus: (nilai tugas * 20%) + (nilai mid semester * 40%) + (nilai ujian akhir
semester * 40%). Buatlah program tersebut!
5. Tulislah program untuk menampilkan jumlah hari, jam, menit, dan detik dari
masukan yang berupa lamanya waktu dalam detik. Sebagai contoh, input
100.000 detik akan menghasilkan output 1 hari, 3 jam, 46 menit, 40 detik.
Input dari program adalah bilangan bulat bertipe long.
Output program adalah banyaknya hari, jam, menit, dan detik dari input
tersebut.
Recommended