Rabu, 28 Oktober 2009

pengenalan bahasa C++

Bahasa pemrograman C (C Language). Bahasa pemrograman yang pertama kali dikembangkan oleh Denis Ritchie dan Brian Kerninghan di Bell Laboratories pada tahun 1972. Bahasa C dikenal efisien dan sangat portabel sehingga dapat digunakan di berbagai plattform. Pada pertengahan era 1980-an,

Selasa, 27 Oktober 2009

Tentang Pointer

1 PENGERTIAN POINTER Pointer (variabel penunjuk) adalah suatu variabel yang berisi alamat memori dari suatu variabel lain. Alamat ini merupakan lokasi dari obyek lain (biasanya variabel lain) di dalam memori. Contoh, jika sebuah variabel berisi alamat dari variabel lain, variabel pertama dikatakan menunjuk ke variabel kedua Pointer adalah built-in type di C dan C++, dimana C++ mengambil konsep pointer dari C. Pointer sebenarnya sangat terkait dengan "Abstract C Machine", yaitu model mesin abstrak dimana program C bekerja. Abstract C Machine adalah mesin abstrak dimana mesin tersebut memiliki prosesor untuk menginterpretasikan stream of instruction, dan addressable memory yang terbagi kedalam 3 bagian : automatic memory, static memory dan free memory. Addressable memory adalah memory yang konten-nya dapat diambil jika diketahui alamatnya Operator Pointer ada dua, yaitu : ? Operator & 1. Operator & bersifat unary (hanya memerlukan satu operand saja). 2. Operator & menghasilkan alamat dari operandnya. ? Operator * 1. Operator * bersifat unary (hanya memerlukan satu operand saja). 2. Operator * menghasilkan nilai yang berada pada sebuah alamat. 2 Inisialisasi String(cont.)  Contoh program array dimensi 2 /*Program :array.cpp*/ #include Void printArray(int [] [3]); Main() { int matrik1[2] [3] ={ {1,2,2}, {4,5,6} }, matrik2[2] [3] ={ {1,2,3,4,5,} }, matrik3[2] [3] ={ {1,2}, {4} }, printArray(matrik1) ; printArray(matrik2) ; printArray(matrik3) ; return 0; } Pointer : variabel yang berisi alamat memori Bentuk Umum : Type *variable name;  Type adalah tipe dasar pointer  Variable name adalah nama variabel pointer  * adalah operator memori untuk mengembalikan nilai variabel pada alamatnya yang ditentukan oleh operand. Contoh program pointer //Program :pointer1. cpp #include <'iostream.h'> // cetak p dan *p Void main(void) { int v = 7, *p; p = &v; cout << “Nilai v = “ << v << “ dan *p = “ << *p << “ \nAlamatnya = “ << p << ‘n’; } Hasil dari program adalah sebagai berikut : Nilai v = 7 dan *p = 7 Alamatnya = efffb24 Operator Pointer Ada beberapa operator yang digunakan dalam pointer yaitu operator alamat (&) Contoh : int y = 5; int *yPtr; Maka pernyataan yPtr = &y; Mengandung arti bahwa alamat dari variabel y ditujukan kepada variabel pointer yPtr. Contoh program operator pointer : //Program :pointer2. cpp #include <'iostream.h'> Int main() { int *ptr, num; // 1 ptr = # // 2 *ptr = 100; // 3 cout << num << “ “; (*ptr)++; // 4 cout << num << “ “; (*ptr)*2; // 5 cout << num << “\n “; return 0; } • Operasi Aritmatika ? Suatu variabel pointer hanya dapat dilakukan operasi aritmatika dengan nilai integer saja. Operasi yang biasa dilakukan adalah operasi penambahan dan pengurangan. Operasi penambahan dengan suatu nilai menunjukkan lokasi data berikutnya (index selanjutnya) dalam memori. Begitu juga operasi pengurangan. Contoh Program : #include <'stdio.h'> #include <'conio.h> void main() { int nilai[3], *penunjuk; clrscr(); nilai[0] = 125; nilai[1] = 345; nilai[2] = 750; penunjuk = &nilai[0]; printf(�Nilai %i ada di alamat memori %p\n�, *penunjuk, penunjuk); printf(�Nilai %i ada di alamat memori %p\n�, *(penunjuk+1), penunjuk+1); printf(�Nilai %i ada di alamat memori %p\n�, *(penunjuk+2), penunjuk+2); getch(); } • Operasi Logika ? Suatu pointer juga dapat dikenai operasi logika. Contoh Program : #include <'stdio.h'> #include <'conio.h'> void main() { int a = 100, b = 200, *pa, *pb; clrscr(); pa = &a; pb = &b; if(pa < pb) printf(�pa menunjuk ke memori lebih rendah dari pb\n�); if(pa == pb) printf(�pa menunjuk ke memori yang sama dengan pb\n�); if(pa > pb) printf(�pa menunjuk ke memori lebih tinggi dari pb\n�); getch(); } 4 POINTER DAN STRING Contoh Program 1 : #include <'stdio.h'> #include <'conio.h'> char *nama1 = �SPIDERMAN�; char *nama2 = �GATOTKACA�; void main() { char namax; clrscr(); puts(�SEMULA :�); printf(�Saya suka >> %s\n�, nama1); printf(�Tapi saya juga suka >> %s\n�, nama2); /* Penukaran string yang ditunjuk oleh pointer nama1 dan nama2 */ printf(�SEKARANG :�); printf(�Saya suka >> %s\n�, nama1); printf(�Dan saya juga masih suka >> %s\n�, nama2); getch(); } Contoh Program 2 : #include void misteri1(char *); void main() { char string[] = "characters"; printf("String sebelum proses adalah %s", string); misteri1(string); printf("String setelah proses adalah %s", string); } void misteri1(char *s) { while ( *s != '\0' ) { if ( *s >= 'a' && *s <= 'z' ) *s -= 32; ++s; } } 5 Array Pointer Pointer dapat di-array seperti tipe data lain dalam C++ integer contoh : Int *pi[10]; Contoh Program array pointer //Program :pointer6. cpp #include int main() { Int numbers[5]; Int *p; p = numbers; *p = 10; p++; *p =20; p = &numbers[2]; *p = 30; p = numbers + 3; *p = 40; p = numbers; *(p+4) = 50; for (int n=0; n<5; n++) cout << numbers[n] << “, “; return 0; }

Jumat, 23 Oktober 2009

Satrio.p