Tipe-Data dalam C++
Ir. Sihar, MT.
T. Informatika – Fak. Teknik
Bandung - 2009
Algoritma dan Pemrograman – I (4 sks)
Daftar Pustaka
1) Davis, S. R. (2004). C++ for Dummies-5th Edition. Wiley Publishing.
2) Sedgewick, R. (2003). Algorithms-third edition. Addison-Wesley.
3) Shaffer, C. A. (2009). A Practical Introduction to Data Structures
and Algorithm Analysis. Department of Computer Science, Virginia
Tech.
4) Simamora, S.N.M.P. (2002). "Diktat SK-100 Dasar Komputer dan
Pemrograman". Dept. Sistem Komputer, Fak. Teknik. ITHB.
Bandung.
5) Simamora, S.N.M.P. (2009). "Diktat Kuliah TIF301 Algoritma dan
Pemrograman-1". Program studi Teknik Informatika. Univ. BALE.
Bandung.
6) Simamora, S.N.M.P. (2009). "Diktat Kuliah Algoritma dan
Pemrograman-I". Program studi Teknik Informatika. UTAMA.
Bandung.
7) Skiena, S. S. (1998). The Algorithm Design Manual. Springer
Verlag, New York.
Tipe-data: int
Range: -32768 s.d 32767 (TC 3.0); -2147483648 s.d 2147483647 (Dev-C++)
Contoh: Uji apakah konstruksi-algoritma berikut akan mengalami kondisi overflow.
Z←DEC(-32768);
Z←Z−1;
Solusi:
Z←(-32768)−1;
Z ← -32769; karena -32769⇒32767, maka: Z←32767;
Tampilan jalannya program:Algoritma dan pemrograman C++:
overflow
Range untuk tipe-data int pada Dev-C++ lebih lebar
dibandingkan TC 3.0
Contoh: Uji apakah konstruksi-algoritma berikut akan mengalami kondisi overflow jika nilai
z dan u diuji dengan nilai: z=2147483647 dan u=-2147483648
untuk statement: z←z+1; dan u←u-1;
Solusi:
Tampilan jalannya program:Algoritma dan pemrograman C++:
Tipe-data: signed-int
Range: -32768 s.d 32767 (TC 3.0); -2147483648 s.d 2147483647 (Dev-C++)
Contoh: Uji apakah konstruksi-algoritma berikut akan mengalami kondisi overflow.
x←DEC(-32769);
x←x−2;
Solusi:
x←(-32769)−2;
x ← -32771; karena -32771⇒32765, maka: x←32765;
Tampilan jalannya program:Algoritma dan pemrograman C++:
overflow
Range untuk tipe-data signed-int pada Dev-C++
lebih lebar dibandingkan TC 3.0
Contoh: Uji apakah konstruksi-algoritma berikut akan mengalami kondisi overflow jika nilai
z dan u diuji dengan nilai: (+) z=32767 dan u=32768
(+) z=2147483647 dan u=-2147483648
untuk statement: z←z+1; dan u←u-1;Solusi:
Tampilan jalannya program:Algoritma dan pemrograman C++:
Tipe-data: short-int
Range: -32768 s.d 32767 (TC 3.0); -32767 s.d 32768 (Dev-C++)
Contoh: Uji apakah konstruksi-algoritma berikut akan mengalami kondisi overflow.
s←DEC(32767);
s←s+1;
Solusi:
s←32767+1;
s ←32768; karena 32768⇒-32768, maka: s←-32768;
Tampilan jalannya program:Algoritma dan pemrograman C++:
overflow
Range untuk tipe-data short-int pada Dev-C++
relatif sama terhadap TC 3.0
Contoh: Uji apakah konstruksi-algoritma berikut akan mengalami kondisi overflow jika nilai
z dan u diuji dengan nilai: z=32768 dan u=-32769
untuk statement: z←z+1; dan u←u-1;
Solusi:
Tampilan jalannya program:Algoritma dan pemrograman C++:
Tipe-data: unsigned-int
Range: 0 s.d 65535 (TC 3.0); 0 s.d 4294967295 (Dev-C++)
Contoh: Perhatikan konstruksi-algoritma berikut ini:
t←DEC(65534);
t←t+2;
t←65534+2;
t←65536; karena 65536⇒0, maka: t←0;
overflow
Tampilan jalannya program:
Algoritma dan pemrograman C++ (TC 3.0): Algoritma dan pemrograman C++ (Dev-C++):
TC 3.0:
Tipe-data: unsigned short-int
Range: 0 s.d 65535 (TC 3.0); relatif sama juga
dengan Dev-C++
Contoh: Perhatikan konstruksi-algoritma berikut ini:
r←DEC(2);
r←r-4;
r←2−4;
r←-2; karena -2⇒65534, maka: r←65534;
overflow
Tampilan jalannya program:
Algoritma dan pemrograman C++ (TC 3.0): Algoritma dan pemrograman C++ (Dev-C++):
Tipe-data: long-int
Range: -2147483648 s.d 2147483647 (TC 3.0 dan Dev-C++)
Contoh: Perhatikan konstruksi-algoritma berikut ini:
b←DEC(-2147483647);
b←b-3;
b ← -2147483647−3;
b ← -2147483650; karena -2147483650⇒2147483646, maka: b←2147483646;
overflow
Tampilan jalannya program:Algoritma dan pemrograman C++ (TC 3.0):
Range untuk tipe-data long-int pada Dev-C++
sama dengan pada TC 3.0
Contoh: Uji apakah konstruksi-algoritma berikut akan mengalami kondisi overflow jika nilai
z dan u diuji dengan nilai: z=2147483647 dan u=-2147483648
untuk statement: z←z+1; dan u←u-1;
Solusi:
Tampilan jalannya program:Algoritma dan pemrograman C++:
Beberapa hal yang
dapat diformulasikan
dalam penggunaan
tipe-data:
Setiap translator dalam hal
range untuk suatu tipe-data
belum tentu sama.
Pada batas-bawah, overflow terjadi jika
expression pada statement menunjukkan
minimal dikurangkan 1; sedangkan pada
batas-atas, overflow terjadi jika expression
pada statement maksimal ditambahkan 1.
Umumnya untuk
penggunaan
perhitungan
scientific dengan
range tipe-data
yang cukup lebar
digunakan float.
Perbandingan tipe-data: int <<< float <<<
double
float: 3.4 x 10-38 s.d 3.4 x 1038
double: 1.7 x 10-308 s.d 1.7 x 10308
Ket: <<< artinya : lebih-pendek
int lebih-pendek dibandingkan float, dan float
lebih-pendek dibandingkan double
Dalam pemrograman C++, tipe-data
int tergolong float; namun float tidak
dapat dideklarasikan dalam int.
Contoh:
A←DEC(7);
A←A*2;
Alternatif-1:
deklarasi var: A ∈ int;
A←7;
A←A∗2;
tampilkan A;
Hasil: 14
Alternatif-2:
deklarasi var: A ∈ float;
A←7.0;
A←A∗2;
tampilkan A;
Hasil: 14.0
Dengan demikian disarankan dalam hal pendeklarasian tipe-data numerik menggunakan
float, untuk menghindari apabila hasil pemrosesan pada statement mengalami overflow.
Perhatikan, untuk tipe-data float, walaupun A terdeklarasi DEC(7) namun oleh translator
diinterpretasikan DEC(7.0).
Tampilan jalannya program:Algoritma dan pemrograman C++:
Jika A ∈ float dan
A←7, maka oleh
translator nilai 7
diinterpretasikan 7.0
Algoritma:
Contoh:
deklarasi var: X ∈ float;
X←2.0;
X←X∗2;
tampilkan X;
Algoritma dan pemrograman C++:
Tampilan jalannya program:
Tuliskan algoritma dan pemrograman C++ jika Z
didapatkan dari input-value by end-user untuk statement
berikut:
Z←11÷Z;
Solusi: perhatikan statement yang ditetapkan tersebut;
bahwa oleh sebab Z berperan sebagai operand-data
pembagi dan 11 sebagai operand-data konstanta
berkelipatan ganjil, dan bil.prima, maka operand-hasil
pasti bernilai tidak bulat, sehingga Z semestinya
dideklarasikan dalam bentuk float.
Algoritma dan pemrograman C++:
Tampilan jalannya program:
Metode input-
value by end-user

Tipe-Data Dalam C++ Programming-language

  • 1.
    Tipe-Data dalam C++ Ir.Sihar, MT. T. Informatika – Fak. Teknik Bandung - 2009 Algoritma dan Pemrograman – I (4 sks)
  • 2.
    Daftar Pustaka 1) Davis,S. R. (2004). C++ for Dummies-5th Edition. Wiley Publishing. 2) Sedgewick, R. (2003). Algorithms-third edition. Addison-Wesley. 3) Shaffer, C. A. (2009). A Practical Introduction to Data Structures and Algorithm Analysis. Department of Computer Science, Virginia Tech. 4) Simamora, S.N.M.P. (2002). "Diktat SK-100 Dasar Komputer dan Pemrograman". Dept. Sistem Komputer, Fak. Teknik. ITHB. Bandung. 5) Simamora, S.N.M.P. (2009). "Diktat Kuliah TIF301 Algoritma dan Pemrograman-1". Program studi Teknik Informatika. Univ. BALE. Bandung. 6) Simamora, S.N.M.P. (2009). "Diktat Kuliah Algoritma dan Pemrograman-I". Program studi Teknik Informatika. UTAMA. Bandung. 7) Skiena, S. S. (1998). The Algorithm Design Manual. Springer Verlag, New York.
  • 3.
    Tipe-data: int Range: -32768s.d 32767 (TC 3.0); -2147483648 s.d 2147483647 (Dev-C++) Contoh: Uji apakah konstruksi-algoritma berikut akan mengalami kondisi overflow. Z←DEC(-32768); Z←Z−1; Solusi: Z←(-32768)−1; Z ← -32769; karena -32769⇒32767, maka: Z←32767; Tampilan jalannya program:Algoritma dan pemrograman C++: overflow
  • 4.
    Range untuk tipe-dataint pada Dev-C++ lebih lebar dibandingkan TC 3.0 Contoh: Uji apakah konstruksi-algoritma berikut akan mengalami kondisi overflow jika nilai z dan u diuji dengan nilai: z=2147483647 dan u=-2147483648 untuk statement: z←z+1; dan u←u-1; Solusi: Tampilan jalannya program:Algoritma dan pemrograman C++:
  • 5.
    Tipe-data: signed-int Range: -32768s.d 32767 (TC 3.0); -2147483648 s.d 2147483647 (Dev-C++) Contoh: Uji apakah konstruksi-algoritma berikut akan mengalami kondisi overflow. x←DEC(-32769); x←x−2; Solusi: x←(-32769)−2; x ← -32771; karena -32771⇒32765, maka: x←32765; Tampilan jalannya program:Algoritma dan pemrograman C++: overflow
  • 6.
    Range untuk tipe-datasigned-int pada Dev-C++ lebih lebar dibandingkan TC 3.0 Contoh: Uji apakah konstruksi-algoritma berikut akan mengalami kondisi overflow jika nilai z dan u diuji dengan nilai: (+) z=32767 dan u=32768 (+) z=2147483647 dan u=-2147483648 untuk statement: z←z+1; dan u←u-1;Solusi: Tampilan jalannya program:Algoritma dan pemrograman C++:
  • 7.
    Tipe-data: short-int Range: -32768s.d 32767 (TC 3.0); -32767 s.d 32768 (Dev-C++) Contoh: Uji apakah konstruksi-algoritma berikut akan mengalami kondisi overflow. s←DEC(32767); s←s+1; Solusi: s←32767+1; s ←32768; karena 32768⇒-32768, maka: s←-32768; Tampilan jalannya program:Algoritma dan pemrograman C++: overflow
  • 8.
    Range untuk tipe-datashort-int pada Dev-C++ relatif sama terhadap TC 3.0 Contoh: Uji apakah konstruksi-algoritma berikut akan mengalami kondisi overflow jika nilai z dan u diuji dengan nilai: z=32768 dan u=-32769 untuk statement: z←z+1; dan u←u-1; Solusi: Tampilan jalannya program:Algoritma dan pemrograman C++:
  • 9.
    Tipe-data: unsigned-int Range: 0s.d 65535 (TC 3.0); 0 s.d 4294967295 (Dev-C++) Contoh: Perhatikan konstruksi-algoritma berikut ini: t←DEC(65534); t←t+2; t←65534+2; t←65536; karena 65536⇒0, maka: t←0; overflow Tampilan jalannya program: Algoritma dan pemrograman C++ (TC 3.0): Algoritma dan pemrograman C++ (Dev-C++): TC 3.0:
  • 10.
    Tipe-data: unsigned short-int Range:0 s.d 65535 (TC 3.0); relatif sama juga dengan Dev-C++ Contoh: Perhatikan konstruksi-algoritma berikut ini: r←DEC(2); r←r-4; r←2−4; r←-2; karena -2⇒65534, maka: r←65534; overflow Tampilan jalannya program: Algoritma dan pemrograman C++ (TC 3.0): Algoritma dan pemrograman C++ (Dev-C++):
  • 11.
    Tipe-data: long-int Range: -2147483648s.d 2147483647 (TC 3.0 dan Dev-C++) Contoh: Perhatikan konstruksi-algoritma berikut ini: b←DEC(-2147483647); b←b-3; b ← -2147483647−3; b ← -2147483650; karena -2147483650⇒2147483646, maka: b←2147483646; overflow Tampilan jalannya program:Algoritma dan pemrograman C++ (TC 3.0):
  • 12.
    Range untuk tipe-datalong-int pada Dev-C++ sama dengan pada TC 3.0 Contoh: Uji apakah konstruksi-algoritma berikut akan mengalami kondisi overflow jika nilai z dan u diuji dengan nilai: z=2147483647 dan u=-2147483648 untuk statement: z←z+1; dan u←u-1; Solusi: Tampilan jalannya program:Algoritma dan pemrograman C++:
  • 13.
    Beberapa hal yang dapatdiformulasikan dalam penggunaan tipe-data: Setiap translator dalam hal range untuk suatu tipe-data belum tentu sama. Pada batas-bawah, overflow terjadi jika expression pada statement menunjukkan minimal dikurangkan 1; sedangkan pada batas-atas, overflow terjadi jika expression pada statement maksimal ditambahkan 1. Umumnya untuk penggunaan perhitungan scientific dengan range tipe-data yang cukup lebar digunakan float. Perbandingan tipe-data: int <<< float <<< double float: 3.4 x 10-38 s.d 3.4 x 1038 double: 1.7 x 10-308 s.d 1.7 x 10308 Ket: <<< artinya : lebih-pendek int lebih-pendek dibandingkan float, dan float lebih-pendek dibandingkan double
  • 14.
    Dalam pemrograman C++,tipe-data int tergolong float; namun float tidak dapat dideklarasikan dalam int. Contoh: A←DEC(7); A←A*2; Alternatif-1: deklarasi var: A ∈ int; A←7; A←A∗2; tampilkan A; Hasil: 14 Alternatif-2: deklarasi var: A ∈ float; A←7.0; A←A∗2; tampilkan A; Hasil: 14.0 Dengan demikian disarankan dalam hal pendeklarasian tipe-data numerik menggunakan float, untuk menghindari apabila hasil pemrosesan pada statement mengalami overflow. Perhatikan, untuk tipe-data float, walaupun A terdeklarasi DEC(7) namun oleh translator diinterpretasikan DEC(7.0). Tampilan jalannya program:Algoritma dan pemrograman C++: Jika A ∈ float dan A←7, maka oleh translator nilai 7 diinterpretasikan 7.0
  • 15.
    Algoritma: Contoh: deklarasi var: X∈ float; X←2.0; X←X∗2; tampilkan X; Algoritma dan pemrograman C++: Tampilan jalannya program: Tuliskan algoritma dan pemrograman C++ jika Z didapatkan dari input-value by end-user untuk statement berikut: Z←11÷Z; Solusi: perhatikan statement yang ditetapkan tersebut; bahwa oleh sebab Z berperan sebagai operand-data pembagi dan 11 sebagai operand-data konstanta berkelipatan ganjil, dan bil.prima, maka operand-hasil pasti bernilai tidak bulat, sehingga Z semestinya dideklarasikan dalam bentuk float. Algoritma dan pemrograman C++: Tampilan jalannya program: Metode input- value by end-user