materi 2: tipe data dan operator - web viewdigunakan pada pernyataan-pernyataan yang mengandung...

19
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 Data Ukuran Memori (byte) Jangkauan nilai Jumla h digit presi si char 1 -128 sampai 127 int 2 -32768 sampai 32767 long 4 -2147438648 sampai 2147438647

Upload: vuduong

Post on 30-Jan-2018

256 views

Category:

Documents


0 download

TRANSCRIPT

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.