pertemuan 8
TRANSCRIPT
Teknik Pemograman 01
ARRAY & POINTER
ROSIDA SIMAMORAProdi : Teknik Informatika
Teknik Pemograman 02
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 Pemograman 03
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 Pemograman 04
Variabel array dideklarasikan dengan mencantumkan tipe dan nama variabel yang diikuti dengan banyaknya lokasi memori yang ingin dibuatContoh : 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.
Inisialisasi String(cont.)
Teknik Pemograman 05
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;}
Inisialisasi String(cont.)
Teknik Pemograman 06
POINTERPointer : variabel yang berisi alamat memoriBentuk 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 *pVoid 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 = 7Alamatnya = efffb24
Teknik Pemograman 07
Penjelasan :Dari program pointer1, pointer p menunjukkan isi dari variabel v yaitu 7 dan alamat dari pointer adalah
efffb24
Operator PointerAda 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; // 1ptr = # // 2*ptr = 100; // 3cout << num << “ “;(*ptr)++; // 4cout << num << “ “;(*ptr)*2; // 5cout << num << “\n “;return 0;}
POINTER (cont)
Teknik Pemograman 08
Bila dijalankan hasilnya adalah sebagai berikut :
100 101 101
Penjelasan :1. Kondisi variabel num menunjukkan angka 50 dan kondisi variabel
pointer ptr masih kosong2. Variabel pointer ptr menunjuk pada isi dari variabel num sehingga
variabel pointer ptr isinya 503. Variabel num berisi angka 100 sedangkan variabel pointer ptr
isinya tetap 504. Isi variabel num bertambah 1 dari 100 menjadi 1015. Isi variabel num dari 101 menjadi 202. Hasil ini diperoleh dari 101*2
Pointer AritmetikaAda 4 operator aritmetika yang digunakan yaitu : ++, = =, + dan – Contoh program yang dapat menampilkan 10 buah data yang
mempunyai alamat berbeda-beda:
POINTER (cont)
Teknik Pemograman 09
//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 0xeffffd480xeffffda0 0xeffffd500xeffffda4 0xeffffd580xeffffda8 0xeffffd600xeffffdac 0xeffffd680xeffffdb0 0xeffffd700xeffffdb4 0xeffffd780xeffffdb8 0xeffffd800xeffffdbc 0xeffffd880xeffffdc0 0xeffffd90
POINTER (cont)
Teknik Pemograman 10
Pointer PerbandinganPointer 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;}
POINTER (cont)
Teknik Pemograman 11
Konstanta String Dan PointerKonstanta 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
POINTER (cont)
Teknik Pemograman 12
Array PointerPointer 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,
POINTER (cont)
Teknik Pemograman 13
Pointer Dalam PointerC++ memperbolehkan penggunaan pointer dalam pointerYang masing-masing berisi data yang sama atau berbeda.
address value
pointer variable
address value
Pointer tunggal
address
pointer pointer variable
Pointer dalam pointer
POINTER (cont)
Teknik Pemograman 14
Contoh :char a;char * b;char ** c;a = ‘z’ ;
b = &a; c = &b;
POINTER (cont)