pertemuan 8

14

Click here to load reader

Upload: pengen-it-programmer

Post on 24-Jun-2015

65 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Pertemuan 8

Teknik Pemograman 01

ARRAY & POINTER

ROSIDA SIMAMORAProdi : Teknik Informatika

Page 2: Pertemuan 8

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

Page 3: Pertemuan 8

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';

Page 4: Pertemuan 8

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.)

Page 5: Pertemuan 8

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.)

Page 6: Pertemuan 8

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

Page 7: Pertemuan 8

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 = &num; // 2*ptr = 100; // 3cout << num << “ “;(*ptr)++; // 4cout << num << “ “;(*ptr)*2; // 5cout << num << “\n “;return 0;}

POINTER (cont)

Page 8: Pertemuan 8

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)

Page 9: Pertemuan 8

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)

Page 10: Pertemuan 8

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)

Page 11: Pertemuan 8

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)

Page 12: Pertemuan 8

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)

Page 13: Pertemuan 8

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)

Page 14: Pertemuan 8

Teknik Pemograman 14

Contoh :char a;char * b;char ** c;a = ‘z’ ;

b = &a; c = &b;

POINTER (cont)