Ti
a bab berik inya karen kukan m en Ukuran gant ung pa ena it u j anipe Da
Tipe da akt er. Tipe gkauan dar e dat a ini bila ingin am bahasa
at an sebua ang akan d dat a pad :
at a karakt e at a bilangan at a bilangan dirasa kur m enggunak kut nya. Yan na apabila nj adi t idak b
bisa dit am diisi denga diolah di da a bahasa
r n bulat n pecahan. rang, seora kan perint a ng harus d salah dal benar.
yang dipe gkat keras angan dari
rakter
gunakan un dinyat aka i 255 at au m pilkan den
an angka alam bahas
C dan C+ ngan suat u m aka ang ngkat luna asing t ipe d
present asik t ipe cha r ASCI I ke 0
karakt er ka t ersebu yai form at %
arasikan t i ct akan dij rakt er ASC u bilangan.
iberi t anda dnya apabi encant um ka arakt er ASC
Adapun t ipe dat a dalam kat egori ini yang didefinisikan oleh ANSI / I SO C+ + St andard adalah sebagai berikut :
Tabel 3.1 Tabel t ipe dat a karakt er program dengan sint aks di bawah ini:
1
Programmer : Adam Mukharil Bachtiar, S.Kom. */
#include <stdio.h> #include <stdlib.h>
int main(int argc, char *argv[]) {
printf("Memori dari tipe data char: %i\n",sizeof(char));
printf("\nMemori dari tipe data unsigned char: %i\n",sizeof(unsigned char));
printf("\nMemori dari tipe data char: %i\n\n",sizeof(signed char));
Programmer : Adam Mukharil Bachtiar, S.Kom. */
10 11 12 13
14 15
16 17
18 19 20 21
using namespace std;
int main(int argc, char *argv[]) {
cout<<"Memori dari tipe data char :” <<sizeof(char);
cout<<"\n\n";
cout<<"Memori dari tipe data unsigned char :” <<sizeof(unsigned char);
cout<<"\n\n";
cout<<"Memori dari tipe data signed char :” <<sizeof(signed char);
cout<<"\n\n"; system("PAUSE"); return EXIT_SUCCESS; }
Maka hasil eksekusinya adalah sebagai berikut :
Gam bar 3.1 Hasil eksekusi program Lat 3.1
Pem berian nilai pada suat u karakt er dilakukan dengan m enuliskan perint ah sebagai berikut :
1. Karakt er= ’A’; 2. Karakt er= 65;
1
Programmer : Adam Mukharil Bachtiar, S.Kom. */
#include <stdio.h> #include <stdlib.h>
int main(int argc, char *argv[]) {
char A1,A2; A1='A'; A2=A1;
printf("Nilai variabel A1 adalah %c\n",A1);
printf("Nilai variabel A2 dalam bentuk angka (ASCII) = %i\n\n",A2);
Baris perint ah ini adalah unt uk m endeklarasikan variabel bernam a A1 dan A2. Maka set elah baris ini dieksekusi, t erbent uklah dua buah variabel bernam a A1 dan A2 bert ipe dat a karakt er.
2. % i
% i di sini adalah form at dari t ipe dat a int eger. Apabila sebuah variabel berisi dat a karakt er dan dipanggil m enggunakan form at % i m aka hasilnya adalah angka ASCI I dari variabel t ersebut .
1
Programmer : Adam Mukharil Bachtiar, S.Kom. */
#include <cstdlib> #include <iostream>
12 13 14 15 16 17 18 19 20
21 22 23 24
int main(int argc, char *argv[]) {
char A1; int A2; A1='A'; A2=int(A1);
cout<<"Nilai variabel A1 adalah "<<A1; cout<<endl;
cout<<"Nilai variabel A2 dalam bentuk angka (ASCII) = "<<A2;
cout<<"\n\n"; system("PAUSE"); return EXIT_SUCCESS; }
Penj elasan:
Di dalam sint aks di at as t erdapat suat u baris perint ah yang berisi A2= int ( A1) ; . Baris perint ah t ersebut digunakan unt uk m engkonversi t ipe dat a asal suat u dat a ( dalam kasus ini bert ipe karakt er) m enj adi t ipe dat a int eger. Hal ini dilakukan karena dalam bahasa C+ + t idak dikenal adanya form at dat a. Mungkin unt uk sekarang hal ini t erlihat m enyulit kan karena harus m enam bah sat u baris perint ah t et api apabila program yang dibuat m ulai kom pleks m aka bahasa C+ + akan m em perm udah program m ernya karena t idak m em erlukan form at dat a.
Set elah dij alankan m aka hasilnya adalah sebagai berikut :
Tipe Data Bilangan Bulat
Tipe dat a ini digunakan unt uk dat a- dat a angka yang t idak m engandung angka di belakang kom a. Sebagai cont oh 23, 5, 6, dan 1986. Tipe dat a yang t erm asuk dalam kat egori ini dapat dilihat dalam t abel berikut :
Tabel 3.2 Tabel t ipe dat a bilangan bulat
Tipe D a t a M e m or i
( D a la m By t e )
For m a t Re nt a n g
int 2 at au 4 % d at au % i - 32.768 sam pai 32.767 at au
- 2.147.483.648 sam pai 2.147.483.647
unsigned int 2 at au 4 % u 0 sam pai 65.535 at au
0 sam pai 4.294.967.295
signed int 2 at au 4 % i Sam a sepert i int
short int 2 % i - 32.768 sam pai 32.767
unsigned short int 2 % u 0 sam pai 65.535
signed short int 2 % i Sam a sepert i sh or t in t
long int 4 % ld at au
% li
- 2.147.483.648 sam pai 2.147.483.647
signed long int 4 % li Sam a sepert i lon g in t
unsigned long int 4 % lu 0 sam pai 4.294.967.295
Unt uk m em bukt ikan m em ori yang digunakan per m asing- m asing t ipe dat a, buat lah program dengan sint aks di bawah ini:
1 2 3 4 5 6 7 8 9 10 11
/*
Program 3.3
Nama File : Lat-3.3.c
Programmer : Adam Mukharil Bachtiar, S.Kom. */
#include <stdio.h> #include <stdlib.h>
12
printf("Memori dari tipe data unsigned short int : %i\n",sizeof(unsigned short int));
printf("Memori dari tipe data unsigned long int : %i\n\n",sizeof(unsigned long int));
Programmer : Adam Mukharil Bachtiar, S.Kom. */
#include <cstdlib> #include <iostream>
using namespace std;
22
23 24
25 26
27 28
29 30
31 32 33 34
cout<<"Memori dari tipe data unsigned short int : "<<sizeof(unsigned short int);
cout<<endl;
cout<<"Memori dari tipe data signed short int : "<<sizeof(signed short int);
cout<<endl;
cout<<"Memori dari tipe data long int : "<<sizeof(long int);
cout<<endl;
cout<<"Memori dari tipe data signed long int : "<<sizeof(signed long int);
cout<<endl;
cout<<"Memori dari tipe data unsigned long int : "<<sizeof(unsigned long int);
cout<<"\n\n"; system("PAUSE"); return EXIT_SUCCESS; }
Set elah dij alankan m aka hasilnya adalah sebagai berikut :
Gam bar 3.3 Hasil eksekusi program Lat 3.3
Adapun cont oh cara pendeklarasian t ipe dat a bilangan bulat ant ara lain: 1. I nt x,y,z;
Cat at an Perhat ikan ukuran m em ori dan j angkauan nilai per m asing- m asing t ipe dat a unt uk m endapat kan hasil perhit ungan yang benar. Salah m em ilih t ipe dat a m aka perhit ungan yang dilakukan m enj adi t idak valid.
Berikut ini adalah cont oh program dari t ipe dat a bilangan bulat :
1 2 3 4 5 6 7 8 9 10 11 12 13 14
15
16 17 18
/*
Program 3.4
Nama File : Lat-3.4.c
Programmer : Adam Mukharil Bachtiar, S.Kom. */
#include <stdio.h> #include <stdlib.h>
int main(int argc, char *argv[]) {
int x=5000,y=30000000000; unsigned int z=60000;
printf("Nilai x yang telah diberikan adalah %i dan y adalah %i\n",x,y);
printf("Nilai z yang telah diberikan adalah %u\n\n",z);
system("PAUSE"); return 0;
}
Hasil eksekusi:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
17
18 19 20
/*
Program 3.4
Nama File : Lat-3.4.cpp
Programmer : Adam Mukharil Bachtiar, S.Kom. */
#include <cstdlib> #include <iostream>
using namespace std;
int main(int argc, char *argv[]) {
int x=5000,y=300000; unsigned int z=60000;
cout<<"Nilai x yang telah diberikan adalah "<<x<<" dan y adalah "<<y<<endl;
cout<<"Nilai z yang telah diberikan adalah "<<z<<"\n\n";
system("PAUSE"); return EXIT_SUCCESS; }
Hasil eksekusi:
Gam bar 3.5 Hasil eksekusi program Lat 3.4 dalam bahasa C+ +
Tipe Data Bilangan Pecahan
Tipe dat a ini adalah t ipe yang digunakan unt u m erepresent asikan dat a- dat a bilangan yang m engandung angka di belakang kom a. Sebagai cont oh 56.86, 2810.86, dan sebagainya. Tipe dat a yang t erm asuk dalam kat egori ini dapat dilihat pada t abel berikut :
Tabel 3.3 Tabel t ipe dat a bilangan pecahan
Tipe D a t a M e m or i
( D a la m
Byt e )
For m a t Re n t a n g D igit Pr e sisi
float 4 % f 1.2E- 38 sam pai
3.4E+ 38
6 digit
double 8 % f 2.3E- 308 sam pai
1.7E+ 308
15 digit
long double 12 % lf 3.4E- 4932 sam pai
1.1E+ 4932
19 digit
Unt uk m em bukt ikan m em ori yang digunakan per m asing- m asing t ipe dat a, buat lah program dengan sint aks di bawah ini:
1 2 3 4 5 6 7 8 9 10 11 12
13
14
15 16 17
/*
Program 3.5
Nama File : Lat-3.5.c
Programmer : Adam Mukharil Bachtiar, S.Kom. */
#include <stdio.h> #include <stdlib.h>
int main(int argc, char *argv[]) {
printf("Memori dari tipe data float : %i\n",sizeof(float));
printf("Memori dari tipe data double : %i\n",sizeof(double));
printf("Memori dari tipe data long double : %i\n",sizeof(long double));
system("PAUSE"); return 0;
1 2 3 4 5 6 7 8 9 10 11 12
13
14
15
17 18 19
/*
Program 3.5
Nama File : Lat-3.5.cpp
Programmer : Adam Mukharil Bachtiar, S.Kom. */
#include <cstdlib> #include <iostream>
using namespace std;
int main(int argc, char *argv[]) {
cout<<"Memori dari tipe data float : "<<sizeof(float)<<endl;
cout<<"Memori dari tipe data double : "<<sizeof(double)<<endl;
cout<<"Memori dari tipe data long double : "<<sizeof(long double)<<endl;
system("PAUSE"); return EXIT_SUCCESS; }
Hasil eksekusi:
Cont oh program :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
/*
Program 3.6
Nama File : Lat-3.6.c
Programmer : Adam Mukharil Bachtiar, S.Kom. */
#include <stdio.h> #include <stdlib.h>
int main(int argc, char *argv[]) {
float a1=1234567890123456789; double a2=1234567890123456789;
printf("Nilai a1 adalah : %.2f\n",a1); printf("Nilai a2 adalah : %.2f\n\n",a2); system("PAUSE");
return 0; }
Hasil eksekusi:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
/*
Program 3.6
Nama File : Lat-3.6.cpp
Programmer : Adam Mukharil Bachtiar, S.Kom. */
#include <cstdlib> #include <iostream>
using namespace std;
int main(int argc, char *argv[]) {
float a1=1234567; double a2=1234567;
cout<<"Nilai a1 adalah : "<<a1<<endl; cout<<"Nilai a2 adalah : "<<a2<<"\n\n"; system("PAUSE");
return EXIT_SUCCESS; }
Hasil eksekusi:
Tipe Data String
Dalam pem rogram an C, t idak ada perint ah khusus unt uk m enam pung dat a yang bert ipe st ring. St ring akan dianggap sebagai kum pulan karakt er yang diakhiri dengan karakt er kosong. Oleh sebab it u st ring sering disebut j uga sebagai sebuah array karakt er at au sebuah point er ke sebuah variabel char.
Cara pendeklarasiannya adalah sebagai berikut : 1. char nam a[ 50] ;
cara yang pert am a ini kit a m em esan t em pat sebanyak ukuran yang dideklarasikan ( dalam kasus ini sebanyak 50 byt e) . Tapi kit a hanya bisa m engisi variabel nam a sebanyak 49 karakt er. Hal ini dikarenakan t em pat t erakhir yait u byt e ke 50 akan diisi dengan karakt er kosong ( null at au \ 0) . Jadi apabila ingin m em esan m em ori unt uk t ipe dat a st ring, pesanlah dengen rum us sebagai berikut :
Ju m la h m e m or i pe sa n a n = Ju m la h k a r a k t e r m a k sim um + 1
2. char * pekerj aan;
cara yang kedua adalah kit a m enggunakan sebuah variabel point er. Unt uk cara yang kedua ini akan dij elaskan dalam bab point er.
Cont oh program :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
/*
Program 3.7
Nama File : Lat-3.7.c
Programmer : Adam Mukharil Bachtiar, S.Kom. */
#include <stdio.h> #include <stdlib.h>
int main(int argc, char *argv[]) {
char nama[31];
char pekerjaan[21];
printf("Nama : ");fflush(stdin); scanf("%s",nama);
printf("Pekerjaan : ");fflush(stdin); gets(pekerjaan);
19
20 21 22
printf("Nama : %s\nPekerjaan : %s\n\n",nama,pekerjaan); system("PAUSE");
return 0; }
Penj elasan:
1. fflush( st din)
perint ah ini digunakan unt uk m em esan buffer ( m em ori penyangga) unt uk m enam pung dat a st ring dari keyboard secara t em porer unt uk nant inya dim asukkan ke dalam variabel yang dit ent ukan. Apabila perint ah ini dihilangkan m aka set elah pengguna m em asukkan dat a st ring, program akan m engalam i error.
2. scanf( “ &s” ,nam a) ;
fungsi scanf digunakan unt uk m em baca m asukkan dari keyboard. Kit a harus m enent ukan form at t ipe dat a apa yang akan diinput kan. Unt uk selanj ut nya akan dibahas pada bab I V. Fungsi ini hanya bisa m em baca st ring sat u kat a saj a ( t idak bisa m engandung spasi) .
3. get s( pekerj aan)
fungsi ini digunakan unt uk m em baca m asukkan dari keyboard berupa dat a st ring baik yang m engandung spasi m aupun yang t idak m engandung spasi.
Hasil eksekusi:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
/*
Program 3.7
Nama File : Lat-3.7.cpp
Programmer : Adam Mukharil Bachtiar, S.Kom. */
#include <cstdlib> #include <iostream>
using namespace std;
int main(int argc, char *argv[]) {
char nama[31];
char pekerjaan[21];
cout<<"Nama : ";cin.get(nama,30); cout<<"Pekerjaan : ";cin>>pekerjaan;
cout<<"\nData yang telah dimasukan adalah : \n\n"; cout<<"Nama : "<<nama<<endl;
cout<<"Pekerjaan : "<<pekerjaan<<"\n\n"; system("PAUSE");
return EXIT_SUCCESS; }
Penj elasan:
1. cin.get ( nam a,30) ;
Fungsi ini digunakan unt uk m em baca input an dari keyboard berupa st ring sebanyak karakt er yang dit ent ukan ( dalam kasus ini sebanyak 30 karakt er) baik yang m engandung spasi m aupun t idak m engandung spasi.
2. cin> > pekerj aan;
Hasil eksekusi:
Gam bar 3.10 Hasil eksekusi program Lat 3.7 dalam bahasa C+ +
Identifier (Pengenal)
Dat a pada bahasa C dan bahasa C+ + t ersusun dari: 1. Variabel
2. Konst ant a.
Variabel m erupakan kom ponen pent ing pada pem rogram an. Variabel digunakan unt uk m enam pung suat u nilai, dan nilai yang ada padanya dapat diubah selam a eksekusi program berlangsung. Variabel dan konst ant a lebih dikenal sebagai ident ifier.
Dalam m enent ukan ident ifier ada beberapa hal yang harus diperhat ikan, ant ara lain:
1. Bahasa C dan C+ + bersifat case sensit ive, j adi kom piler akan m em bedakan ant ara variabel yang dit ulis dengan huruf besar dengan variabel yang dit ulis dengan huruf kecil. Cont oh:
a. N a m a berbeda dengan n a m a
b. PEKERJAAN berbeda dengan pe k e r j a a n.
2. I dent ifier t idak boleh berupa angka at au diawali dengan karakt er yang berupa angka. Cont oh:
c. int a2 Æ benar.
6. Nam a ident ifier usahakan sederhana dan m udah diingat . 7. Nam a ident ifier t idak boleh sam a.
Konstanta
Ada dua buah cara unt uk m em buat sebuah konst ant a, yait u: 1. Menggunakan # define
Cara penggunaanya adalah sebagai berikut :
# de fin e n a m a _ k onst a nt a nila i_ k on st a n t a ;
a t a u
# de fin e n a m a _ k onst a nt a nila i_ k on st a n t a
Sebagai cont oh: a. # define phi 3.14 b. # define t erbesar 100; c. # define biru BLUE;
2. Menggunakan kat a kunci const
Cara penggunaannya adalah sebagai berikut :
con st t ipe _ da t a n a m a _ k ost a n t a = nila i_ t e t a pa n ;
Sebagai cont oh:
a. const float pi = 3.14; b. const int bil_pert am a = 0;
c. const char universit as[ 10] = “ unikom ” ;
Variabel
Variabel sangat berbeda dengan konst ant a. Perbedaannya t erlet ak pada nilai. Variabel m em punyai nilai yang dinam is. Art i kat a dinam is di sini bahw a nilai variabel t ersebut dapat diubah sesuai kebut uhan dalam program . Cara pendeklarasiannya adalah sebagai berikut :
t ipe _ da t a n a m a _ va r ia be l;
a t a u
t ipe da t a n a m a _ va r ia be l1 , n a m a _ va r ia be l2 , n a m a _ v a r ia be l3 ;
Sebagai cont oh: 1. int x; 2. int x,y,z;
Variabel Global
Variabel global dapat dikenali oleh sem ua lingkungan dalam program yang dibuat . Sebagai cont oh ada t iga fungsi yang t erdapat di dalam program m aka ket iga fungsi t ersebut dapat m engenali variabel global t anpa harus m endeklarasikan ulang di dalam fungsi m asing- m asing.
Variabel global dideklarasikan di luar seluruh fungsi yang ada. Apabila fungsi yang ada hanya fungsi m ain( ) m aka pendeklarasian variabel harus di luar dari fungsi m ain( ) . Sebagai cont oh buat program dengan sint aks di bawah ini:
Programmer : Adam Mukharil Bachtiar, S.Kom. */
#include <stdio.h> #include <stdlib.h>
int terkecil;
int main(int argc, char *argv[]) {
terkecil=0;
printf("Variabel terkecil diisi : %i\n\n",terkecil); system("PAUSE");
Programmer : Adam Mukharil Bachtiar, S.Kom. */
#include <cstdlib> #include <iostream>
using namespace std;
13 14 15 16 17
18 19 20
int main(int argc, char *argv[]) {
terkecil=0;
cout<<"Variabel terkecil diisi : "<<terkecil <<"\n\n";
system("PAUSE"); return EXIT_SUCCESS; }
Hasil eksekusi:
Gam bar 3.11 Hasil eksekusi program Lat 3.8
Variabel Lokal
Varianel lokal hanya dikenali di dalam fungsi yang m endeklarasikannya saj a. Art inya t idak dikenal oleh lingkungan luar dari fungsi t ersebut . Unt uk lebih j elasnya buat program dengan sint aks di bawah ini:
1 2 3 4 5 6 7 8
/*
Program 3.9
Nama File : Lat-3.9.c
Programmer : Adam Mukharil Bachtiar, S.Kom. */
9 10 11 12 13 14 15 16 17
int main(int argc, char *argv[]) {
int terkecil; terkecil=0;
printf("Variabel terkecil diisi : %i\n\n",terkecil); system("PAUSE");
return 0; }
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
17 18 19
/*
Program 3.9
Nama File : Lat-3.9.cpp
Programmer : Adam Mukharil Bachtiar, S.Kom. */
#include <cstdlib> #include <iostream>
using namespace std;
int main(int argc, char *argv[]) {
int terkecil; terkecil=0;
cout<<"Variabel terkecil diisi : "<<terkecil <<"\n\n";
system("PAUSE"); return EXIT_SUCCESS; }
Hasil eksekusi:
Variabel Statis
Variabel st at is adalah variabel yang m enem pat i ruang m em ori kom put er secara perm anen, art inya nilai t erakhir dari variabel ini akan t erus disim pan sam pai eksekusi program selesai. Berbeda dengan variabel biasa yang dat anya akan t idak akan dipert ahankan. Cara pendeklarasiannya adalah sebagai berikut :
st a t ic t ipe _ da t a n a m a _ va r ia be l;
Programmer : Adam Mukharil Bachtiar, S.Kom. */
#include <stdio.h> #include <stdlib.h>
void contoh_biasa() {
int x=0; x=x+1;
printf("x biasa = %i\n",x); }
void contoh_statis() {
int main(int argc, char *argv[]) {
34 35 36
system("PAUSE"); return 0;
Programmer : Adam Mukharil Bachtiar, S.Kom. */
#include <cstdlib> #include <iostream>
using namespace std;
void contoh_biasa() {
int x=0; x=x+1;
cout<<"x biasa = "<<x<<endl; }
void contoh_statis() {
static int x=0; x=x+1;
cout<<"x statis = "<<x<<endl; }
Hasil eksekusi:
Gam bar 3.13 Hasil eksekusi program Lat 3.10
Operator-Operator Perhitungan
Set elah m em pelaj ari t ipe dat a dan variabel m aka variabel- variabel t ersebut nant inya akan dikenai operasi perhit ungan. Unt uk m elakukan operasi perhit ungan diperlukan adanya operat or- operat or perhit ungan. Adapun operat or- operat or perhit ungan yang sering digunakan ant ara lain:
Tabel 3.4 Tabel operat or- operat or perhit ungan
Ope r a t or Con t oh Ar t i
= a= b Variabel a diisi dengan nilai dari variabel b
+ c= a+ b Variabel c diisi dengan isi variabel a dit am bah isi variabel b
- c= a- b Variabel c diisi dengan isi variabel a dikurangi isi variabel b
* c= a* b Variabel c diisi dengan isi variabel a dikali isi variabel b
/ c= a/ b Variabel c diisi dengan isi variabel a dibagi isi variabel b
% c= a% b Variabel c diisi dengan sisa pem bagian variabel a dibagi isi variabel b
+ + a+ + , + + a I si variable a dit am bah 1. Perint ah ini sam a dengan a= a+ 1 at au a+ = 1
+ = c+ = a Variable c dit am bah dengan isi variable a. Sam a dengan
Yang harus diperhat ikan adalah penggunaan operat or + + dan - - . Pelet akan operat or ini berpengaruh t erhadap hasil perhit ungan. Unt uk lebih j elasnya buat program dengan sint aks di bawah ini:
Programmer : Adam Mukharil Bachtiar, S.Kom. */
#include <stdio.h> #include <stdlib.h>
30 31 32 33 34 35 36 37 38
printf("y : %i\n\n",y); --y;
printf("++y di luar printf : %i\n",y); printf("y : %i\n\n",y); printf("--y di dalam printf : %i\n",--y); printf("y terakhir : %i\n\n\n",y); system("PAUSE");
return 0; }
Hasil eksekusi:
1
Programmer : Adam Mukharil Bachtiar, S.Kom. */
#include <cstdlib> #include <iostream>
using namespace std;
Hasil eksekusi: