ARRAY POINTER Teknik Pemrog Terstruktur 2 1 ARRAY

  • Slides: 14
Download presentation
ARRAY & POINTER Teknik Pemrog. Terstruktur 2 1

ARRAY & POINTER Teknik Pemrog. Terstruktur 2 1

ARRAY p p p Di dalam C++ tidak ada tipe variabel untuk memasukkan sejumlah

ARRAY p p p 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 2

Inisialisasi String p p p Pendeklarasian string mystring dengan suatu nilai bisa dilakukan dengan

Inisialisasi String p p p Pendeklarasian string mystring dengan suatu nilai bisa dilakukan dengan dua cara: char mystring [] = { 'H', 'e', 'l', 'o', '' }; char mystring [] = "Hello"; Untuk mendeklarasikan suatu array dari karakter harus digunakan indeks : mystring[0] mystring[1] mystring[2] mystring[3] mystring[4] mystring[5] = = = 'H'; 'e'; 'l'; 'o'; ''; Teknik Pemrog. Terstruktur 2 3

Inisialisasi String(cont. ) p p p Variabel array dideklarasikan dengan mencantumkan tipe dan nama

Inisialisasi String(cont. ) p p p 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 4

Inisialisasi String(cont. ) p Contoh program array dimensi 2 /*Program : array. cpp*/ #include

Inisialisasi String(cont. ) p Contoh program array dimensi 2 /*Program : array. cpp*/ #include <stdio. h> Void print. Array(int [] [3]); Main() { int matrik 1[2] [3] ={ {1, 2, 2}, {4, 5, 6} }, matrik 2[2] [3] ={ {1, 2, 3, 4, 5, } }, matrik 3[2] [3] ={ {1, 2}, {4} }, print. Array(matrik 1) ; print. Array(matrik 2) ; print. Array(matrik 3) ; return 0; } Teknik Pemrog. Terstruktur 2 5

POINTER Pointer : variabel yang berisi alamat memori Bentuk Umum : Type *variable name;

POINTER Pointer : variabel yang berisi alamat memori Bentuk Umum : Type *variable name; p Type adalah tipe dasar pointer p Variable name adalah nama variabel pointer p * adalah operator memori untuk mengembalikan nilai variabel pada alamatnya yang ditentukan oleh operand. Contoh program pointer //Program : pointer 1. cpp #include <iostream. h> // cetak p dan *p Void main(void) { int v = 7, *p; p = &v; cout << “Nilai v = “ << v << “ dan *p = “ << *p << “ n. Alamatnya = “ << p << ‘n’; } Hasil dari program adalah sebagai berikut : Nilai v = 7 dan *p = 7 Alamatnya = efffb 24 Teknik Pemrog. Terstruktur 2 6

POINTER (cont) Penjelasan : Dari program pointer 1, pointer p menunjukkan isi dari variabel

POINTER (cont) Penjelasan : Dari program pointer 1, pointer p menunjukkan isi dari variabel v yaitu 7 dan alamat dari pointer adalah efffb 24 Operator Pointer Ada beberapa operator yang digunakan dalam pointer yaitu operator alamat (&) Contoh : int y = 5; int *y. Ptr; Maka pernyataan y. Ptr = &y; Mengandung arti bahwa alamat dari variabel y ditujukan kepada variabel pointer y. Ptr. Contoh program operator pointer : //Program : pointer 2. cpp #include <iostream. h> Int main() { int *ptr, num; // 1 ptr = &num; // 2 *ptr = 100; // 3 cout << num << “ “; (*ptr)++; // 4 cout << num << “ “; (*ptr)*2; // 5 cout << num << “n “; return 0; } Teknik Pemrog. Terstruktur 2 7

POINTER (cont) Bila dijalankan hasilnya adalah sebagai berikut : 100 101 Penjelasan : 1.

POINTER (cont) Bila dijalankan hasilnya adalah sebagai berikut : 100 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 8

POINTER (cont) //Program : pointer 3. cpp #include <iostream. h> int main() { int

POINTER (cont) //Program : pointer 3. 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 : 0 xeffffd 9 c 0 xeffffd 48 0 xeffffda 0 0 xeffffd 50 0 xeffffda 4 0 xeffffd 58 0 xeffffda 8 0 xeffffd 60 0 xeffffdac 0 xeffffd 68 0 xeffffdb 0 0 xeffffd 70 0 xeffffdb 4 0 xeffffd 78 0 xeffffdb 8 0 xeffffd 80 0 xeffffdbc 0 xeffffd 88 0 xeffffdc 0 0 xeffffd 90 Teknik Pemrog. Terstruktur 2 9

POINTER (cont) Pointer Perbandingan Pointer dapat dibandingkan dengan Operator hubungan seperti !=, ==, <,

POINTER (cont) Pointer Perbandingan Pointer dapat dibandingkan dengan Operator hubungan seperti !=, ==, <, dan >. //Program : pointer 4. 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 10

POINTER (cont) Konstanta String Dan Pointer Konstanta string terlihat dalam program teks dan disimpan

POINTER (cont) Konstanta String Dan Pointer Konstanta string terlihat dalam program teks dan disimpan dalam tabel. String Contoh Program pointer string //Program : pointer 5. 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 11

POINTER (cont) Array Pointer dapat di-array seperti tipe data lain dalam C++ integer contoh

POINTER (cont) Array Pointer dapat di-array seperti tipe data lain dalam C++ integer contoh : Int *pi[10]; Contoh Program array pointer //Program : pointer 6. 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 12

POINTER (cont) Pointer Dalam Pointer C++ memperbolehkan penggunaan pointer dalam pointer Yang masing-masing berisi

POINTER (cont) Pointer Dalam Pointer C++ memperbolehkan penggunaan pointer dalam pointer Yang masing-masing berisi data yang sama atau berbeda. pointer variable address value Pointer tunggal pointer address variable value Pointer dalam pointer Teknik Pemrog. Terstruktur 2 13

POINTER (cont) Contoh : char a; char * b; char ** c; a =

POINTER (cont) Contoh : char a; char * b; char ** c; a = ‘z’ ; b = &a; c = &b; Teknik Pemrog. Terstruktur 2 14