Data dan Struktur Data
Tipe Data dalam Bahasa C / C++
Floating Point Single Precision Floating Point Double Precision Tipe Data dalam Bahasa C / C++. character integer Floating Point Single Precision Floating Point Double Precision
Tipe Data Dasar (Basic Data Type) yang digunakan oleh Bahasa C / C++. Sebutan Tipe Data Bentuk penulisan dalam Bahasa C/C++ Jumlah Byte Jangkauan nilai numerik char atau signed char 1 -128 s.d. 127 0 s.d. 255 -32768 s.d. 32767 0 s.d. 65535 -2147483648 s.d .2147483647 0 s.d. 4294967295 Character unsigned char 1 int atau signed int atau signed 2 unsigned int atau unsigned 2 Integer long int atau long atau signed long atau signed long int 4 ( 2.1 Milyard) unsigned long atau unsigned long int 4 ( 4.2 Milyard) . Floating Point Single Precision Positip : 3.4E-38 s.d 3.4E38 float 8 Negatip : -3.4E38 s.d -3.4E-38 Positip : 1.7E-308 s.d 1.7E308 Floating Point Double Precision Double 8 Negatip : -1.7E308 s.d -1.7E-308 Pos : 3.4E-4932 s.d 1.14E4932 long double 10 Neg : -1.1E4932 s.d -3.4E4932
Tipe Data : character
Tipe Data : character Isinya dapat dianggap : x x x x x x x x Karakter 1 Byte (8 bit) Isinya dapat dianggap : x x x x x x x x Karakter atau Nilai Numerik
Tipe Data : character signed char unsigned char Dibedakan 2 macam signed char unsigned char
x x x x x x x x Tipe Data Character. Sign : Signed char. 127 0 nilai Positip 1 Nilai negatip : two’s complement Rentang / jangkauan nilai -128 127
x x x x x x x x Tipe Data Character. Sign : Signed char. 127 0000 0000 0 0000 0001 1 0000 0010 2 0000 0011 3 0000 0100 4 0000 0101 5 0001 0001 17 0100 0001 65 0100 0010 66 0111 1111 127 1000 0000 -128 1000 0001 -127 1000 0010 -126 1111 1110 -2 1111 1111 -1 Signed char. x x x x x x x x Sign : 0 nilai Positip 1 Nilai negatip : two’s complement Rentang / jangkauan nilai -128 127
x x x x x x x x Tipe Data Character. unsigned char. 255 Rentang / jangkauan nilai 255
x x x x x x x x Tipe Data Character. unsigned char. 255 0000 0000 0 0000 0000 0 0000 0001 1 0000 0010 2 0000 0011 3 0000 0100 4 0000 0101 5 0001 0001 17 0100 0001 65 0100 0010 66 0111 1111 127 1000 0000 128 1000 0001 129 1000 0010 130 1111 1110 254 1111 1111 255 unsigned char. x x x x x x x x Rentang / jangkauan nilai 255
Tipe Data Character. Signed char. unsigned char. 0000 0000 0 0000 0000 0 0000 0001 1 0000 0010 2 0000 0011 3 0000 0100 4 0000 0101 5 0001 0001 17 0100 0001 65 0100 0010 66 0111 1111 127 1000 0000 -128 1000 0001 -127 1000 0010 -126 1111 1110 -2 1111 1111 -1 0000 0000 0 0000 0001 1 0000 0010 2 0000 0011 3 0000 0100 4 0000 0101 5 0001 0001 17 0100 0001 65 0100 0010 66 0111 1111 127 1000 0000 128 1000 0001 129 1000 0010 130 1111 1110 254 1111 1111 255
0000 0000 0 0000 0001 1 0000 0010 2 0000 0011 3 0000 0100 4 0000 0101 5 0001 0001 17 0100 0001 65 0100 0010 66 0111 1111 127 1000 0000 -128 1000 0001 -127 1000 0010 -126 1111 1110 -2 1111 1111 -1 Contoh-1. C Contoh-1. C++ #include<stdio.h> void main() { char X; X = ‘A’; - } #include<iostram.h> void main() { char X; X = ‘A’; - } A X 0 1 0 0 0 0 0 1 64 1
Beberapa contoh karakter ASCII Menya- takan Karakter Kode ASCII Kombinasi bit Menya- takan Karakter Kode ASCII Kombinasi bit 00 01 02 . 48 49 50 65 66 97 98 127 128 00000000 00000001 00000002 . 00110000 00110001 00110010 01000001 01000010 01100001 01100010 01111111 10000000 1 2 . A B a b Ç 128 129 . 160 161 171 172 192 193 224 225 254 255 10000000 10000001 . 10100000 10100001 10101011 10101100 11000000 11000001 11100000 11100001 11111110 11111111 Ç ü . á í ½ ¼ + - _ ß
karakter dasar ASCII dalam 7 bit ( bit ke-8 / paling kiri = 0 ) TABEL ASCII ( 0 - 127 ), karakter dasar ASCII dalam 7 bit ( bit ke-8 / paling kiri = 0 ) Kode ASCII Kode ASCII Kode ASCII Kode ASCII Kode ASCII Char Char Char Char Char 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 NULL bell tab line feed home form feed Carriage return cursor ke kanan ke kiri ke atas ke bawah 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 Spasi ! “ # $ % & ‘ ( ) * + , - . / 1 2 3 4 5 6 7 8 9 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 [ \ ] ^ _ ` a b c d e f g h I j k l m n o p q r s t u v w x y z 123 124 125 126 127 { | } ~
C A A 65 65 0 1 0 0 0 0 0 1 #include<stdio.h> void main() { char X; X = ‘A’; printf(“%c”, X); } #include<stdio.h> void main() { char X; X = 65; printf(“%c”, X); } A A Tercetak : Tercetak : #include<stdio.h> void main() { char X; X = ‘A’; printf(“%i”, X); } #include<stdio.h> void main() { char X; X = 65; printf(“%i”, X); } 65 65 Tercetak : Tercetak : C 0 1 0 0 0 0 0 1 64 1
C M M 77 77 0 1 0 0 1 1 0 1 #include<stdio.h> void main() { char X; X = ‘M’; printf(“%c”, X); } #include<stdio.h> void main() { char X; X = 77; printf(“%c”, X); } M M Tercetak : Tercetak : #include<stdio.h> void main() { char X; X = ‘M’; printf(“%i”, C); } #include<stdio.h> void main() { char X; X = 77; printf(“%i”, X); } 77 77 Tercetak : Tercetak : C 0 1 0 0 1 1 0 1 4 1 64 8
C 4d 4d 4D 4D 0 1 0 0 1 1 0 1 #include<stdio.h> void main() { char X; X = ‘M’; printf(“%x”, X); } #include<stdio.h> void main() { char X; C = 77; printf(“%x”, X); } 4d 4d Tercetak : Tercetak : #include<stdio.h> void main() { char X; X = ‘M’; printf(“%X”, X); } #include<stdio.h> void main() { char X; X = 77; printf(“%X”, X); } 4D 4D Tercetak : Tercetak : C 0 1 0 0 1 1 0 1 4 1 64 8
C++ A 65 A 65 0 1 0 0 0 0 0 1 #include<iostream.h> void main() { char X; X = ‘A’; cout << X; } #include<iostream.h> void main() { char X; X = ‘A’; cout << int(X); } A 65 Tercetak : Tercetak : #include<iostream.h> void main() { char X; X = 65; cout << X; } #include<iostream.h> void main() { char X; X = 65; cout << int(X); } A 65 Tercetak : Tercetak : C++ 0 1 0 0 0 0 0 1 64 1
C++ 65 65 65 65 0 1 0 0 0 0 0 1 #include<iostream.h> void main() { char X; X = ‘A’; cout << float(X); } #include<iostream.h> void main() { char X; X = ‘A’; cout << double(X); } 65 65 Tercetak : Tercetak : #include<iostream.h> void main() { char X; X = 65; cout << float(X); } #include<iostream.h> void main() { char X; X = 65; cout << double(X); } 65 65 Tercetak : Tercetak : C++ 0 1 0 0 0 0 0 1 64 1
Tipe Data : integer
( berisi bilangan bulat ) Tipe Data : integer ( berisi bilangan bulat )
Tipe Data : integer dibedakan : integer signed int int unsigned int atau signed int unsigned int long integer signed long int long int atau unsigned long int
Tipe Data : integer Isinya dapat dianggap : Karakter Nilai Numerik atau Nilai Numerik
int signed int Rentang / jangkauan nilai atau 2 Byte ( 16 bit ) X X X X X X X X X X X X X X X X Sign : 0 nilai Positip 1 Nilai negatip : two’s complement Rentang / jangkauan nilai -32768 32767
int signed int atau 0000 0000 0000 0000 0000 0000 0000 0001 0000 0000 0000 0010 0000 0000 0100 0001 0000 0000 1111 1111 0111 1111 1111 1111 1000 0000 0000 0000 1000 0000 0000 0001 1111 1111 1111 1110 1111 1111 1111 1111 1 2 65 255 32767 -32768 -32767 -2 -1
unsigned int Rentang / jangkauan nilai 65535 2 Byte ( 16 bit ) X X X X X X X X X X X X X X X X Rentang / jangkauan nilai 65535
unsigned int 0000 0000 0000 0000 0000 0000 0000 0001 0000 0000 0000 0010 0000 0000 0100 0001 0000 0000 1111 1111 0111 1111 1111 1111 1000 0000 0000 0000 1000 0000 0000 0001 1111 1111 1111 1110 1111 1111 1111 1111 1 2 65 255 32767 32768 32769 65534 65535
int %i %d %u Nilai yang akan disimpan apa yang tercetak bila dicetak dengan %i %u Binary digit (bit) Untuk nilai yang akan disimpan Diambil 16 bit terakhir karena disimpan dalam tipe signed int atau unsinged int 65 32767 32768 65535 65536 65546 98304 100 0001 0111 1111 1111 1111 1000 0000 0000 0000 1111 1111 1111 1111 1 0000 0000 0000 0000 1 0000 0000 0000 1010 1 1000 0000 0000 0000 0000 0000 0100 0001 0111 1111 1111 1111 1000 0000 0000 0000 1111 1111 1111 1111 0000 0000 0000 0000 0000 0000 0000 1010 65 32767 -32768 -1 10 65 32767 32768 65535 10
C 65 A 65 A 0000 0000 0100 0001 #include<stdio.h> void main() { int N; N = 65; printf("%i", N); } #include<stdio.h> void main() { int N; N = 65; printf("%c", N); } 65 A Tercetak : Tercetak : #include<stdio.h> void main() { int N; N = ‘A’; printf(“%i”, N); } #include<stdio.h> void main() { int N; N = 'A'; printf("%c", N); } 65 A Tercetak : Tercetak : C 0000 0000 0100 0001 64 1
C++ 65 A 65 A 0000 0000 0100 0001 #include<iostream.h> void main() { int N; N = 65; cout << N; } #include<iostream.h> void main() { int N; N = 65; cout << char(N); } 65 A Tercetak : Tercetak : #include<iostream.h> void main() { int N; N = 'A'; cout << N; } #include<iostream.h> void main() { int N; N = 'A'; cout << char(N); } 65 A Tercetak : Tercetak : 0000 0000 0100 0001 64 1 C++
long int signed long int atau 4 Byte ( 32 bit ) XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX Sign : 0 nilai Positip 1 Nilai negatip : two’s complement Rentang / jangkauan nilai -2147483648 2 147 483 647 (2.1 Milyard) (-2.1 Milyard)
unsigned long int Rentang / jangkauan nilai 4 Byte ( 32 bit ) XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX Rentang / jangkauan nilai 4 294 967 295 (4.2 Milyard)
Tipe Data : floating point single precision
Floating Point Single Precision ( berisi bilangan real ) Tipe Data : Floating Point Single Precision ( berisi bilangan real )
Floating Point Single Precision Tipe Data : Floating Point Single Precision 4 Byte (32 bit) Berisi nilai misal : 0.5 0.25 0.375 0.625 0.875 d.s.b 8 bit untuk pangkat ( E ) 23 bit untuk Mantisa M ( nilai Fraction ) x xxx xxxx x xxx xxxx xxxx xxxx xxxx xxxx satu bit sebagai sign + - 1. M * 2 ( E-127 ) 0 nilai positip 1 nilai negatip
Floating Point Single Precision Tipe Data : Floating Point Single Precision Rentang / jangkauan nilai -3.4 E38 3.4 E38 - 3.4 E-38 3.4 E-38 Catatan : 1.25E02 maksudnya : 1.25 * 102 = 1.25 * 100 = 125 1.25E-02 maksudnya : 1.25 * 10-2 = 1.25 * 0.01 = 0.0125
Floating Point Single Precision Tipe Data : Floating Point Single Precision Rentang / jangkauan nilai -3.4 E38 3.4 E38 Nilai negatip besar sekali Nilai positip besar sekali - 3.4 E-38 3.4 E-38 Nilai negatip kecil sekali Nilai positip kecil sekali
Tipe Data : floating point double precision
Floating Point Double Precision ( berisi bilangan real ) Tipe Data : Floating Point Double Precision ( berisi bilangan real )
Floating Point Double Precision Tipe Data : Floating Point Double Precision 8 Byte (64 bit) Berisi nilai misal : 0.5 0.25 0.375 0.625 d.s.b 11 bit untuk pangkat ( E ) 52 bit untuk Mantisa M ( nilai Fraction ) x xxx xxxx xxxx xxxx xx ………………………xx xxxx xxxx satu bit sebagai sign + - 1. M * 2 ( E-1023 ) 0 nilai positip 1 nilai negatip
Floating Point Double Precision Tipe Data : Floating Point Double Precision Rentang / jangkauan nilai -1.7E308 1.7E308 -1.7E-308 1.7E-308 Catatan : 1.25E02 maksudnya : 1.25 * 102 = 1.25 * 100 = 125 1.25E-02 maksudnya : 1.25 * 10-2 = 1.25 * 0.01 = 0.0125
Floating Point Double Precision Tipe Data : Floating Point Double Precision Rentang / jangkauan nilai -1.7E308 1.7E308 Nilai negatip sangat besar sekali Nilai positip sangat besar sekali -1.7E-308 1.7E-308 Nilai positip sangat kecil sekali Nilai negatip sangat kecil sekali
int signed int atau 0000 0000 0000 0000 0000 0000 0000 0001 0000 0000 0000 0010 0000 0000 0100 0001 0000 0000 1111 1111 0111 1111 1111 1111 1000 0000 0000 0000 1000 0000 0000 0001 1111 1111 1111 1110 1111 1111 1111 1111 1 2 65 255 32767 -32768 -32767 -2 -1
selesai