Teknik Pemrog. Terstruktur 2 ARRAY & POINTER Teknik Pemrog. Terstruktur 2
Teknik Pemrog. Terstruktur 2 ARRAY Di dalam C++ tidak ada tipe variabel untuk memasukkan sejumlah karakter string. Untuk itu digunakan array dari tipe char. Contoh, array berikut ini (atau karakter string): char jenny [20]; dapat menampung karakter sampai 20 karakter Teknik Pemrog. Terstruktur 2
Teknik Pemrog. Terstruktur 2 Inisialisasi String Pendeklarasian string mystring dengan suatu nilai bisa dilakukan dengan dua cara: char mystring [] = { 'H', 'e', 'l', 'l', 'o', '\0' }; char mystring [] = "Hello"; Untuk mendeklarasikan suatu array dari karakter harus digunakan indeks : mystring[0] = 'H'; mystring[1] = 'e'; mystring[2] = 'l'; mystring[3] = 'l'; mystring[4] = 'o'; mystring[5] = '\0'; Teknik Pemrog. Terstruktur 2
Teknik Pemrog. Terstruktur 2 Inisialisasi String(cont.) Variabel array dideklarasikan dengan mencantumkan tipe dan nama variabel yang diikuti dengan banyaknya lokasi memori yang ingin dibuat Contoh : int c[7] Nilai suatu variabel array dapat juga diinisialisasi secara langsung pada saat deklarasi misalnya : int c[7] = {-45,0,6,72,43,4} Struktur array sebagai contoh yang diatas adalah array dimensi satu. Untuk array dimensi 2 contohnya adalah matriks. Teknik Pemrog. Terstruktur 2
Teknik Pemrog. Terstruktur 2 Inisialisasi String(cont.) Contoh program array dimensi 2 /*Program :array.cpp*/ #include <stdio.h> 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; } Teknik Pemrog. Terstruktur 2
Teknik Pemrog. Terstruktur 2 POINTER 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 Teknik Pemrog. Terstruktur 2
Teknik Pemrog. Terstruktur 2 POINTER (cont) Penjelasan : Dari program pointer1, pointer p menunjukkan isi dari variabel v yaitu 7 dan alamat dari pointer adalah 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 (*ptr)*2; // 5 cout << num << “\n “; return 0; } Teknik Pemrog. Terstruktur 2
Teknik Pemrog. Terstruktur 2 POINTER (cont) Bila dijalankan hasilnya adalah sebagai berikut : 100 101 101 Penjelasan : 1. Kondisi variabel num menunjukkan angka 50 dan kondisi variabel pointer ptr masih kosong 2. Variabel pointer ptr menunjuk pada isi dari variabel num sehingga variabel pointer ptr isinya 50 3. Variabel num berisi angka 100 sedangkan variabel pointer ptr isinya tetap 50 4. Isi variabel num bertambah 1 dari 100 menjadi 101 5. Isi variabel num dari 101 menjadi 202. Hasil ini diperoleh dari 101*2 Pointer Aritmetika Ada 4 operator aritmetika yang digunakan yaitu : ++, = =, + dan – Contoh program yang dapat menampilkan 10 buah data yang mempunyai alamat berbeda-beda: Teknik Pemrog. Terstruktur 2
Teknik Pemrog. Terstruktur 2 POINTER (cont) //Program :pointer3. cpp #include <iostream.h> int main() { int i [10], *i_ptr; double f[10], *f_ptr; int x; i_ptr = i; f_ptr = f; for(x=0; x<10; x++) cout << i_ptr+x << “ “ << f_ptr+x << “\n”; return 0; } Output Program : 0xeffffd9c 0xeffffd48 0xeffffda0 0xeffffd50 0xeffffda4 0xeffffd58 0xeffffda8 0xeffffd60 0xeffffdac 0xeffffd68 0xeffffdb0 0xeffffd70 0xeffffdb4 0xeffffd78 0xeffffdb8 0xeffffd80 0xeffffdbc 0xeffffd88 0xeffffdc0 0xeffffd90 Teknik Pemrog. Terstruktur 2
Teknik Pemrog. Terstruktur 2 POINTER (cont) Pointer Perbandingan Pointer dapat dibandingkan dengan Operator hubungan seperti !=, ==,<, dan >. //Program :pointer4. cpp #include <iostream.h> int main() { int num[10]; int *start, *end; start = num; end = &num[9]; while(start != end) { cout << “Masukkan bilangan sebanyak 9 data : ”; cin >> *start; start++; } return 0; Teknik Pemrog. Terstruktur 2
Teknik Pemrog. Terstruktur 2 POINTER (cont) Konstanta String Dan Pointer Konstanta string terlihat dalam program teks dan disimpan dalam tabel. String Contoh Program pointer string //Program :pointer5. cpp #include <iostream.h> int main() { char *s; S = “Pointer mudah digunakan. \n”; cout << s; return 0; } Output : Pointer mudah digunakan Teknik Pemrog. Terstruktur 2
Teknik Pemrog. Terstruktur 2 POINTER (cont) 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 <iostream.h> 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; } Output : 10, 20, 30, 40, 50, Teknik Pemrog. Terstruktur 2
Teknik Pemrog. Terstruktur 2 POINTER (cont) Pointer Dalam Pointer C++ memperbolehkan penggunaan pointer dalam pointer Yang masing-masing berisi data yang sama atau berbeda. address value pointer variable Pointer tunggal Pointer dalam pointer Teknik Pemrog. Terstruktur 2
Teknik Pemrog. Terstruktur 2 POINTER (cont) Contoh : char a; char * b; char ** c; a = ‘z’ ; b = &a; c = &b; Teknik Pemrog. Terstruktur 2