Bahasa C Bahasa C++ 1 Deference (&) #include <stdio.h> #include <iostream> operator yang using namespace std; int main(){ berfungsi untuk int a = 5; int main(){ menanyakan printf("Alamat Variabel a adalah : int a = 5; alamat dari suatu %p",&a); cout<<"Alamat Variabel a adalah variabel printf("\nNilai Variabel a adalah :"<<&a<<endl; : %d",a); cout<<"Nilai Variabel a adalah return 0; :"<<a<<endl; } return 0; } 2 Reference (*) #include <stdio.h> #include <iostream> operator yang using namespace std; int main(){ berfungsi int a=5; int main(){ menyatakan int *b; //Mendeklarasikan variabel int a=5; suatu variable b sebagai pointer int *b; //Mendeklarasikan variabel b adalahvariabel b = &a; //Mengkopikan alamat sebagai pointer variabel a kedalam variabel b = &a; //Mengkopikan alamat variabel a pointer pointer b kedalam variabel pointer b printf("Nilai variabel a adalah cout<<"Nilai variabel a adalah %d\n",a); "<<a<<endl; printf("Alamat dari variabel a cout<<"Alamat variabel a adalah adalah %p\n",&a); "<<&a<<endl; printf("Isi dari variabel b adalah cout<<"Isi dari variabel b adalah %p\n",b); "<<b<<endl; printf("Nilai yang ditampung dalam cout<<"Nilai yang tertampung dalam variabel b adalah %d",*b); variabel b adalah "<<*b<<endl; } } 3 Mendeklarasikan #include <stdio.h> #include <iostream> variable pointer. int main() using namespace std; { int main() Memasukkan int *x,y; { nilai dan printf("Isi dari variabel y = "); int *x,y; menampilkan scanf("%d",&y); cout<<"Isi dari variabel y = “; data dinamis x=&y; cin>>y; x=&y; serta alamat printf("Alamat dari variabel y = cout<<"Alamat dari variabel y variabel yang %p\n",&y); ="<<&y<<endl; printf("Alamat yang ditunjuk cout<<"Alamat yang ditunjuk pointer x = ditunjuk pointer. pointer x = %p\n",x); "<<x<<endl; printf("Nilai yang ditunjuk cout<<"Nilai yang ditunjuk pointer x pointer x = %d",*x); ="<<*x<<endl; } } 4 Mendeklarasikan #include <stdio.h> #include <iostream> variable pointer. int main() using namespace std; { int main() Memasukkan int *x,y; { nilai dan y=100; int *x,y; menampilkan x=&y; y=100; data statis serta printf ("Isi dari variabel y = x=&y; %d\n",y); cout<<"Isi dari variabel y = alamat variabel printf ("Alamat dari variabel y = "<<y<<endl; yang ditunjuk %p\n",&y); cout<<"Alamat dari variabel y pointer. printf ("Alamat yang ditunjuk ="<<&y<<endl; pointer x = %p\n",x); cout<<"Alamat yang ditunjuk pointer x = printf ("Nilai yang ditunjuk "<<x<<endl; pointer x = %d",*x); cout<<"Nilai yang ditunjuk pointer x } ="<<*x<<endl; } 5 Pointer dalam #include <stdio.h> #include <iostream> //file header input pointer int main(){ output int angka = 10; //deklarasi using namespace std; variable angka dengan nilai 10 int main(void){ //fungsi utama yang int *point; //deklarasi dijalankan program pointer point int angka = 10; //deklarasi int **pointpoint; //deklarasi variable angka dengan nilai 10 pointer pointpoint yang akan diisi int *point; //deklarasi pointer pointer point point point = &angka; //pengisian int **pointpoint; //deklarasi pointer point dengan alamat angka pointer pointpoint yang akan diisi pointpoint = &point; pointer point //pengisian pointer pointpoint point = &angka; //pengisian pointer dengan alamat pointer point point dengan alamat angka printf("%d",**pointpoint); pointpoint = &point; //pengisian //mengkases nilai angka dari pointer pointpoint dengan alamat pointer ke pointer pointer point } cout<<**pointpoint; //mengkases nilai angka dari pointer ke pointer return 0; //mengmbalikan nilai 0 } 6 Penggunaan #include <stdio.h> #include <iostream> pointer dalam using namespace std; int main() int main() operator logika { int a = 100, b = 200, *pa, *pb; { int a = 100, b = 200, *pa, *pb; pa = &a; pa = &a; pb = &b; pb = &b; if(*pa < *pb) if(*pa < *pb) printf("pa menunjuk ke memori cout<<"pa menunjuk ke memori lebih lebih rendah dari pb\n"); rendah dari pb\n"; else if(*pa == *pb) else if(*pa == *pb) printf("pa menunjuk ke memori yang cout<<"pa menunjuk ke memori yang sama sama pb\n"); dengan pb\n"; else else printf("pa menunjuk ke memori cout<<"pa menunjuk ke memori lebih lebih tinggi dari pb\n"); tinggi dari pb\n"; } } 7 Operasi #include <stdio.h> #include <iostream> Aritmatika #include <conio.h> #include <conio.h> int main() using namespace std; pointer { int main() int nilai[3], *penunjuk; { nilai[0] = 125; int nilai[3], *penunjuk; nilai[1] = 345; nilai[0] = 125; nilai[2] = 750; nilai[1] = 345; penunjuk = &nilai[0]; nilai[2] = 750; printf("Nilai %d ada di alamat penunjuk = &nilai[0]; %p\n",*penunjuk,penunjuk); cout<<"Nilai "<<*penunjuk <<" ada di printf("Nilai %d ada di alamat alamat memori " <<penunjuk<<"\n"; %p\n",*(penunjuk+1),penunjuk+1); cout<<"Nilai "<<*(penunjuk+1) <<" ada printf("Nilai %d ada di alamat di alamat memori " <<penunjuk+1<<"\n"; %p\n",*(penunjuk+2),penunjuk+2); cout<<"Nilai "<<*(penunjuk+2) <<" ada } di alamat memori " <<penunjuk+2<<"\n"; } 8 Pointer dan #include <stdio.h> #include <iostream> String using namespace std; using namespace std;
void misteri1(char *s) { void misteri1(char *s) {
while ( *s != '\0' ) { while ( *s != '\0' ) { if ( *s >= 'a' && *s <= 'z' if ( *s >= 'a' && *s <= 'z' ) ) *s -= 32; *s -= 32; ++s; ++s; } } } } int main() { int main() { char string[] = "unram"; char string[] = "unram"; cout<< "String sebelum proses printf("String sebelum adalah " << string <<"\n" ; proses adalah %s\n",string); misteri1(string); misteri1(string); cout<<"String setelah proses printf("String setelah adalah "<<string; proses adalah %s",string); } } 9 Penggunaan #include <stdio.h> #include <iostream> pointer pada main() using namespace std; data string statis { main() int a; { char *nhari[] = int a; {"Minggu","Senin","Selasa","Rabu","Kam char *nhari[] = is","Jum'at","Sabtu"}; {"Minggu","Senin","Selasa","Rabu","Kamis"," printf("Hari ke "); Jum'at","Sabtu"}; scanf("%d",&a); cout<<"Hari ke "; a-=1; cin>>a; printf("%s",*(nhari+a)); a-=1; } cout<<*(nhari+a); } 10 Memberi nilai #include <stdio.h> #include <iostream> array dengan int main() using namespace std; pointer { int main() int x[5], *p, k; { p = x; int x[5], *p, k; x[0] = 5; p = x; x[1] = x[0]; x[0] = 5; x[2] = *p + 2; x[1] = x[0]; x[3] = *(p+1) - 3; x[2] = *p + 2; x[4] = *(x + 2); x[3] = *(p+1) - 3; for(k=0; k<5; k++) x[4] = *(x + 2); printf("x[%d] = %d\n",k,*(x+k)); for(k=0; k<5; k++) } cout<<"x["<<k<<"] = "<< x[k]<<"\n"; } 11 Pointer #include <stdio.h> #include <iostream> menunjukkan int main() using namespace std; suatu array { int main() int tgl_lahir[] = { 13,9,1982 }; { int *ptgl; int tgl_lahir[] = { 13,9,1982 }; ptgl = tgl_lahir; /* ptgl berisi int *ptgl; alamat array */ ptgl = tgl_lahir; /* ptgl berisi alamat printf("Diakses dengan array */ pointer\n"); cout<<"Diakses dengan pointer\n"; printf("Tanggal = %d\n",*ptgl); cout<<"Tanggal = "<< *ptgl<<"\n"; printf("Bulan = %d\n",*(ptgl + cout<<"Bulan = "<< *(ptgl + 1) <<"\n"; 1)); cout<<"Tahun = "<<*(ptgl + 2) <<"\n"; printf("Tahun = %d\n",*(ptgl+2)); cout<<"\nDiakses dengan array biasa\n"; printf("\nDiakses dengan array cout<<"Tanggal = "<< tgl_lahir[0] biasa\n"); <<"\n"; printf("Tanggal = cout<<"Bulan = "<< tgl_lahir[1] <<"\n"; %d\n",tgl_lahir[0]); cout<<"Tahun = "<< tgl_lahir[2] <<"\n"; printf("Bulan = %d\n",tgl_lahir[1]); } printf("Tahun = %d",tgl_lahir[2]); } 12 Mengubah nilai #include <stdio.h> #include <iostream> pada array using namespace std; int main(){ menggunakan int nilaiArray[5] = {2,5,4,6,7}; int main(){ pointer int *pointerArray; int nilaiArray[5] = {2,5,4,6,7}; pointerArray = nilaiArray; int *pointerArray; printf("Nilai Awal\n"); pointerArray = nilaiArray; for(int i=0;i<5;i++) cout<<"Nilai Awal"<<endl; { for(int i=0;i<5;i++) printf("Nilai pada elemen %d { nilaiArray adalah cout<<"Nilai pada elemen "<<i<<" %d\n",i,nilaiArray[i]); nilaiArray adalah = } "<<nilaiArray[i]<<endl; *(pointerArray+2) = 10; //Ubah } nilai elemen ke 3 array *(pointerArray+2) = 10; //Ubah nilai (nilaiArray) menjadi 10 elemen ke 3 array (nilaiArray) menjadi printf("Akses nilai Array setelah 10 diubah\n"); cout<<"Akses nilai setelah for (int i=0; i<5; i++){ diubah"<<endl; printf("Nilai pada elemen %d for (int i=0; i<5; i++){ nilaiArray adalah cout<<"Nilai indeks ["<<i<<"] adalah = %d\n",i,nilaiArray[i]); "<<*(pointerArray+i)<<endl; } } return 0; return 0; } } 13 Pointer sebagai #include <stdio.h> #include <iostream> parameter fungsi penjumlahan(float *bil1,float using namespace std; *bil2) penjumlahan(float *bil1,float *bil2) { { float hasil = *bil1+*bil2; float hasil = *bil1+*bil2; printf("%f+%f=%f",*bil1,*bil cout<<*bil1<<"+"<<*bil2<<" = 2,hasil); "<<hasil; }; }; int main() int main() { { float bilangan1,bilangan2; float bilangan1,bilangan2; printf("Input nilai awal "); cout<<"Inputkan nilai awal "; scanf("%f",&bilangan1); cin>>bilangan1; printf("Input nilai cout<<"Inputkan nilai penjumlah penjumlah "); "; scanf("%f",&bilangan2); cin>>bilangan2; penjumlahan(&bilangan1,&bila penjumlahan(&bilangan1,&bilangan2 ngan2); ); } } 14 Penggunaa #include <stdio.h> #include <iostream> pointer dengan a using namespace std; int *point; //deklarasi pointer rray dan fungsi point int *point; //deklarasi pointer point int **pointpoint; //deklarasi int **pointpoint; //deklarasi pointer pointer ke pointer pointpoint ke pointer pointpoint int naikan(int *poin)//deklarasi int naikan(int *poin)//deklarasi fungsi fungsi naikan naikan { { *point = 60 + *poin; *point = 60 + *poin; //menaikan //menaikan nilai nilai } } int main(){ //fungsi utama program int main(){ //fungsi utama program yang yang akan dijalankan akan dijalankan int kum_nilai[] = int kum_nilai[] = {10,20,30,40,50,60,70,80,90,100}; {10,20,30,40,50,60,70,80,90,100}; //deklarasi array kum_nilai //deklarasi array kum_nilai int nilai; //deklarasi nilai int nilai; //deklarasi nilai char *nama = "Fakhrurrahman"; char *nama = "Fakhrurrahman"; //deklarasi pointer char nama //deklarasi pointer char nama int *akses; //deklarasi int *akses; //deklarasi pointer pointer akses akses
kum_nilai ke akses kum_nilai ke akses nilai = *(akses+1); nilai = *(akses+1); //mengakses //mengakses array dengan pointer array dengan pointer point = &nilai; //memasukan point = &nilai; //memasukan yang yang diambil nilai ke point diambil nilai ke point naikan(point); //memanggil naikan(point); //memanggil fungsi fungsi naikan() naikan() pointpoint = &point; pointpoint = &point; //memasukan //memasukan nilai point ke point nilai point ke point point point cout<<"Nama : "<<nama<<", printf("Nama : %s , Mendapatkan Nilai : "<<**pointpoint; Mendapatkan Nilai : //mengeluarkan hasil %d",nama,**pointpoint); } //mengeluarkan hasil }