modul 2 - tipe data_ pusitell

8
S.N.M.P. Simamora - PUSITELL Hal. 1 MODUL PELATIHAN C++ Sesi-I Instruktur: S.N.M.P. Simamora, S.T., M.T. Kampus Univ. BALE Bandung 16 – 19 Mei 2013 Bandung Modul 2 Tipe Data Daftar Pustaka [1]. _______Turbo C++ User's Guide. Borland. 1990. [2]. Knuth, D. E. Art of Computer Programming, Volume 1: Fundamental Algorithms (3rd Edition). Addison-Wesley. 1997. [3]. Perry, G.M. Turbo C++ Programming in 12 Easy Lessons. Sams Publishing. 1994. [4]. Reisdorph, K. Teach Yourself Borland C++ Builder in 21Days. Borland Press. 2002. [5]. Schildt, H. Turbo C/C++: The Complete Reference. Osborne Publishing. 1992. [6]. Sedgewick, R., Wayne, K. Algorithms (4th Edition). Addison-Wesley. 2011. Tujuan: a) Mahasiswa memahami tipe data b) Mahasiswa dapat menggunakan tipe data untuk membangun program I. Konsep dan Definisi Setiap deklarasi data dalam bahasa pemrograman C++ harus melibatkan tipe data yang digunakan. Umumnya jenis data yang dikenal dan digunakan dalam bahasa pemrograman ada dua, yakni: karakter dan bilangan (numerik); bilangan ada dua jenis, yaitu: bilangan bulat dan bilangan pecahan. Misalkan, angka ‘2’, dapat didefinisikan sebagai karakter ‘2’ atau bilangan bulat ‘2’; demikian juga angka ‘0’ s.d ‘9’, dapat didefinisikan sebagai karakter atau bilangan bulat. Sebagai informasi, sebuah karakter didefinisikan sebagai single kode; misalkan: ‘a’, ‘9’, ‘S’. Dengan demikian, ‘a1’ ; ‘77’ ; ‘Ss’ adalah bukan karakter, namun sudah digolongkan sebagai string (kata). Representasi data dalam sistem komputer/komputer dinyatakan dalam bit (binary-digit), dimana satu karakter (character) diidentikkan relatif senilai dengan satu byte, dan 1 byte = 8 bit. String adalah: sejumlah karakter yang tersusun secara indeks membentuk menjadi kata atau kalimat yang memiliki arti. Untuk mendeklarasi suatu karakter, misalkan: ‘5’ #include<iostream.h> void main() { char karakter=’5’; cout << karakter << " adalah contoh karakter\n"; }

Upload: staffpengajar

Post on 12-Feb-2017

63 views

Category:

Education


1 download

TRANSCRIPT

Page 1: Modul 2 - Tipe Data_ pusitell

S.N.M.P. Simamora - PUSITELL Hal. 1

MODUL PELATIHAN C++ Sesi-I Instruktur: S.N.M.P. Simamora, S.T., M.T.

Kampus Univ. BALE Bandung 16 – 19 Mei 2013

Bandung

Modul 2

Tipe Data

Daftar Pustaka

[1]. _______Turbo C++ User's Guide. Borland. 1990. [2]. Knuth, D. E. Art of Computer Programming, Volume 1: Fundamental Algorithms (3rd Edition).

Addison-Wesley. 1997.

[3]. Perry, G.M. Turbo C++ Programming in 12 Easy Lessons. Sams Publishing. 1994.

[4]. Reisdorph, K. Teach Yourself Borland C++ Builder in 21Days. Borland Press. 2002. [5]. Schildt, H. Turbo C/C++: The Complete Reference. Osborne Publishing. 1992.

[6]. Sedgewick, R., Wayne, K. Algorithms (4th Edition). Addison-Wesley. 2011.

Tujuan: a) Mahasiswa memahami tipe data b) Mahasiswa dapat menggunakan tipe data untuk membangun program

I. Konsep dan Definisi

Setiap deklarasi data dalam bahasa pemrograman C++ harus melibatkan tipe data yang

digunakan. Umumnya jenis data yang dikenal dan digunakan dalam bahasa pemrograman ada dua, yakni: karakter dan bilangan (numerik); bilangan ada dua jenis, yaitu: bilangan

bulat dan bilangan pecahan.

Misalkan, angka ‘2’, dapat didefinisikan sebagai karakter ‘2’ atau bilangan bulat ‘2’; demikian juga angka ‘0’ s.d ‘9’, dapat didefinisikan sebagai karakter atau bilangan bulat. Sebagai informasi, sebuah karakter didefinisikan sebagai single kode; misalkan: ‘a’, ‘9’, ‘S’. Dengan

demikian, ‘a1’ ; ‘77’ ; ‘Ss’ adalah bukan karakter, namun sudah digolongkan sebagai string

(kata).

Representasi data dalam sistem komputer/komputer dinyatakan dalam bit (binary-digit), dimana satu karakter (character) diidentikkan relatif senilai dengan satu byte, dan 1 byte = 8

bit.

String adalah: sejumlah karakter yang tersusun secara indeks membentuk menjadi kata atau kalimat yang memiliki arti.

Untuk mendeklarasi suatu karakter, misalkan: ‘5’ #include<iostream.h>

void main()

{

char karakter=’5’;

cout << karakter << " adalah contoh karakter\n";

}

Page 2: Modul 2 - Tipe Data_ pusitell

S.N.M.P. Simamora - PUSITELL Hal. 2

Untuk mendeklarasikan suatu string, misalkan: ‘Widyatama’ #include<iostream.h>

void main()

{

char karakter[100]="Widyatama";

cout << karakter << " adalah contoh string";

}

Untuk bilangan pecahan, misalkan seperti: 0.5 ; 1.77 ; -9.5 ; 17.5 ; dst, dan

mendeklarasikannya dalam sintaks pemrograman C++ yaitu berikut ini: #include<iostream.h>

void main()

{

float pecahan=17.5;

cout << pecahan << " adalah contoh bilangan pecahan";

}

Contoh.1: menampilkan karakter ‘7’ ke layar komputer

source-code: tampil1.cpp #include<iostream.h>

void main()

{

char karakter='7';

cout << karakter;

}

Contoh.2: menampilkan string (kata) ‘Universitas Widyatama’ ke layar komputer

source-code: tampil2.cpp

#include<iostream.h>

void main()

{

char kata[100]="Universitas Widyatama";

cout << kata;

}

II. Klasifikasi Tipe Data

Setiap tipe data memiliki nilai jangkauan, sehingga overflow terjadi apabila nilai numerik

melebihi jangkauan yang dimiliki suatu tipe data. Oleh sebab itu suatu langkah yang tepat

apabila telah mengetahui pemilihan tipe data yang digunakan dalam aplikasi pemrograman

untuk menghindari penggunaan memory dan register sistem komputer/komputer yang

boros (tidak efisien).

Gambar 1. Konsep overflow pada jangkauan tipe data

Page 3: Modul 2 - Tipe Data_ pusitell

S.N.M.P. Simamora - PUSITELL Hal. 3

Beberapa klasifikasi tipe data adalah berikut ini:

a) Integer, terbagi atas berikut ini:

� int, memiliki karakteristik sebagai berikut:

• Panjang data: 16 bit

• Rentang (interval nilai desimal): -32768 s.d +32767

• Pembuktian:

source-code: int.cpp #include<iostream.h>

void main()

{

int tipe=-32768,hasil;

hasil=tipe-1;

cout << hasil;

}

� Praktekkan source-code tsb., dan lihat hasilnya.

Penjelasan: 16 bit = 2 byte, 2 byte identik dengan 1 angka (untuk tipe data int), maka

jangkauan data dapat didapatkan: xxxx xxxx xxxx xxxx → 216 = 65536, sehingga -32768

s.d +32767 (0 s.d 32767 = 32768, dan -1 s.d -32767 = 32768) .

Oleh sebab itu berdasar gambar 1, dapat dijelaskan bahwa -32768 – 1 = 32767

(overflow).

� signed int, memiliki karaktetistik sebagai berikut:

• Panjang data: 16 bit

• Rentang (interval nilai desimal): -32768 s.d +32767

• Pembuktian:

source-code: sint.cpp

#include<iostream.h>

void main()

{

signed int tipe=-32768,hasil;

hasil=tipe-1;

cout << hasil;

}

� Praktekkan source-code tsb., dan lihat hasilnya.

� short int, memiliki karakteristik sebagai berikut:

• Panjang data: 16 bit

• Rentang (interval nilai desimal): -32768 s.d +32767

• Pembuktian:

source-code: shint.cpp #include<iostream.h>

void main()

{

int tipe=32767,hasil;

hasil=tipe+1;

cout << hasil;

}

� Praktekkan source-code tsb., dan lihat hasilnya.

Page 4: Modul 2 - Tipe Data_ pusitell

S.N.M.P. Simamora - PUSITELL Hal. 4

� signed short int, memiliki karakteristik sebagai berikut:

• Panjang data: 16 bit

• Rentang (interval nilai desimal): -32768 s.d +32767

• Pembuktian:

source-code: sshint.cpp

#include<iostream.h>

void main()

{

signed short int tipe=32766,hasil;

hasil=tipe+2;

cout << hasil;

}

� Praktekkan source-code tsb., dan lihat hasilnya.

� unsigned int, memiliki karakteristik sebagai berikut:

• Panjang data: 16 bit

• Rentang (interval nilai desimal): 0 s.d 65535

• Pembuktian:

source-code: usint.cpp #include<iostream.h>

void main()

{

unsigned int tipe=65535,hasil;

hasil=tipe+1;

cout << hasil;

}

� Praktekkan source-code tsb., dan lihat hasilnya.

� unsigned short int, memiliki karakteristik sebagai berikut:

• Panjang data: 16 bit

• Rentang (interval nilai desimal): 0 s.d 65535

• Pembuktian:

source-code: ushint.cpp #include<iostream.h>

void main()

{

unsigned short int tipe=0,hasil;

hasil=tipe-1;

cout << hasil;

}

� Praktekkan source-code tsb., dan lihat hasilnya.

� long int, memiliki karakteristik sebagai berikut:

• Panjang data: 32 bit

• Rentang (interval nilai desimal): -2147483648 s.d +2147483647

• Pembuktian:

source-code: lint.cpp #include<iostream.h>

void main()

Page 5: Modul 2 - Tipe Data_ pusitell

S.N.M.P. Simamora - PUSITELL Hal. 5

{

long int tipe=-2147483648,hasil;

hasil=tipe-1;

cout << hasil;

}

� Praktekkan source-code tsb., dan lihat hasilnya.

� signed long int, memiliki karakteristik sebagai berikut:

• Panjang data: 32 bit

• Rentang (interval nilai desimal): -2147483648 s.d +2147483647

• Pembuktian:

source-code: slint.cpp

#include<iostream.h>

void main()

{

signed long int tipe=-2147483647,hasil;

hasil=tipe-2;

cout << hasil;

}

� Praktekkan source-code tsb., dan lihat hasilnya.

� unsigned long int, memiliki karakteristik sebagai berikut:

• Panjang data: 32 bit

• Rentang (interval nilai desimal): 0 s.d 4294967295

• Pembuktian:

source-code: uslint.cpp

#include<iostream.h>

void main()

{

unsigned long int tipe=0,hasil;

hasil=tipe-1;

cout << hasil;

}

� Praktekkan source-code tsb., dan lihat hasilnya.

b) Character, terbagi atas berikut ini:

� char, memiliki karakteristik sebagai berikut:

• Panjang data: 8 bit

• Rentang (interval nilai desimal): -128 s.d 127

• Pembuktian:

source-code: char.cpp #include<iostream.h>

void main()

{

char karakter;

cout << sizeof(karakter);

}

� Praktekkan source-code tsb., dan lihat hasilnya.

Page 6: Modul 2 - Tipe Data_ pusitell

S.N.M.P. Simamora - PUSITELL Hal. 6

Penjelasan: 8 bit = 1 byte, 1 byte identik dengan 1 karakter, maka jangkauan data

dapat didapatkan: xxxx xxxx → 28 = 256, sehingga -128 s.d +127.

� signed char, memiliki karakteristik sebagai berikut:

• Panjang data: 8 bit

• Rentang (interval nilai desimal): -128 s.d 127

• Pembuktian:

source-code: schar.cpp #include<iostream.h>

void main()

{

signed char karaktr;

cout << sizeof(karaktr);

}

� Praktekkan source-code tsb., dan lihat hasilnya.

1 byte = 8 bit untuk tipe data char, signed char dan unsigned char

(karakter).

Sintaks sizeof menunjukkan ukuran sebuah tipe data yang dinyatakan dalam

byte.

� unsigned char, memiliki karakteristik sebagai berikut:

• Panjang data: 8 bit

• Rentang (interval nilai desimal): 0 s.d 255

• Pembuktian:

source-code: uschar.cpp

#include<iostream.h>

void main()

{

unsigned char kraktr;

cout << sizeof(kraktr);

}

� Praktekkan source-code tsb., dan lihat hasilnya.

Penjelasan: 8 bit = 1 byte, 1 byte identik dengan 1 karakter, maka jangkauan data

dapat didapatkan: xxxx xxxx → 28 = 256, sehingga 0 s.d +255 (ini merupakan

representasi Tabel ASCII, American Standard Code for Interchange Information).

c) Floating-point, memiliki karakteristik sebagai berikut:

• Panjang data: 32 bit

• Rentang (interval nilai desimal): 3.4(10-38) s.d 3.4(1038)

• Pembuktian:

source-code: float.cpp #include<iostream.h>

#include<math.h>

void main()

{

float tipe=3.4,hasil,x;

x=pow(10,38);

hasil=tipe*x;

Page 7: Modul 2 - Tipe Data_ pusitell

S.N.M.P. Simamora - PUSITELL Hal. 7

hasil=hasil+x;

cout << hasil;

}

� Praktekkan source-code tsb., dan lihat hasilnya.

d) Double, terbagi atas berikut ini:

� double, memiliki karakteristik sebagai berikut:

• Panjang data: 64 bit

• Rentang (interval nilai desimal): 1.7(10-308) s.d 1.7(10308)

• Pembuktian:

source-code: double.cpp #include<iostream.h>

void main()

{

unsigned int tipe=65535,hasil;

hasil=tipe+1;

cout << hasil;

}

� Praktekkan source-code tsb., dan lihat hasilnya.

Pada tipe data char 1 byte = 8 bit, namun untuk tipe data double, 1 angka

direpresentasikan dengan 4 byte dengan rentang 264 = 1.84467 x (10+19).

Oleh sebab itu untuk pemrograman yang membutuhkan jangkauan data yang lebar,

maka tipe data double merupakan pilihan yang tepat.

Sintaks sizeof menunjukkan ukuran sebuah tipe data yang dinyatakan dalam

byte.

� long double, memiliki karakteristik sebagai berikut:

• Panjang data: 80 bit

• Rentang (interval nilai desimal): 3.4(10-38) s.d 3.4(1038)

• Pembuktian:

source-code: ldouble.cpp

#include<iostream.h>

void main()

{

long double LongDouble;

cout << sizeof(LongDouble);

}

� Praktekkan source-code tsb., dan lihat hasilnya.

Contoh kasus:

Sebuah massa 1 kg didorong dengan percepatan 1.75 m.s-2. Tentukanlah berapa Newton gaya yang bekerja pada benda tsb.

Solusi:

Dik. m = 1 kg ; a = 1.75 m.s-2

Dit. F Jawab.

F = m.a = (1)(1.75) = 1.75 kg.m.s-2 = 1.75 N.

Page 8: Modul 2 - Tipe Data_ pusitell

S.N.M.P. Simamora - PUSITELL Hal. 8

Kasus ini bisa diselesaikan dengan menggunakan aplikasi pemrograman yang ditunjukkan

pada sintaks berikut ini dengan nama gaya.cpp dimana massa dan percepatan ditentukan

oleh input-an user. //gaya.cpp

#include<iostream.h>

void main()

{

float F,m,a;

cout << "Tentukan massa (kg): ";

cin >> m;

cout << "Tentukan percepatan (m/s2): ";

cin >> a;

F=m*a;

cout << "\nBesar gaya yang bekerja = " << F << " Newton";

}

III. Latihan dan Demo

1) Tampilkanlah ke layar monitor komputer menggunakan aplikasi pemrograman untuk

kalimat berikut ini:

“Sebuah motor-listrik memiliki kecepatan tetap sama dengan 54.72 km/jam. a. Berapakah jarak yang ditempuh oleh motor-listrik tsb dalam waktu 5 menit? b. Apabila motor-listrik tsb bergerak menuju ke kota B dari kota A dimana jarak kota

A ke B adalah 27.5 km, berapa lamakah waktu tempuh yang dibutuhkan motor-listrik tsb? ”

2) Buatlah sebuah aplikasi pemrograman yang menginformasikan ukuran (panjang) setiap

tipe data.

3) Tentukan berapa ukuran (panjang) data berikut menggunakan pemrograman:

a) ‘S’

b) -128 apabila tipe data: long int

c) 0 apabila tipe data: long double

4) Berapakah X1 apabila X didapatkan dari input-an user, untuk X1←√��

5) Buatlah aplikasi pemrogramannya untuk kasus berikut:

a) Tentukan nilai numerik dari karakter ‘s’. Apakah nilai numeriknya sama dengan

karakter ‘S’ ?

b) Berapakah Z, apabila Z ← A + 1 ; dimana A adalah karakter yang ditentukan melalui

input-an user.

c) Tentukan Z1, apabila Z1 ← (210 + 210) ÷ 210