Anda di halaman 1dari 14

ARRAY & POINTER

Teknik Pemrog. Terstruktur 2 1


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 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 :

 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 3


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 4


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 5
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 6


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 = &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 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 :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 9
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 10
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 11


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 12


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 pointer variable

address address value

Pointer dalam pointer

Teknik Pemrog. Terstruktur 2 13


POINTER (cont)
Contoh :
char a;
char * b;
char ** c;
a = ‘z’ ;
b = &a;
c = &b;

Teknik Pemrog. Terstruktur 2 14

Anda mungkin juga menyukai