Pointer Array dan String Erizal S Si M

  • Slides: 18
Download presentation
Pointer, Array dan String Erizal, S. Si, M. Kom Universitas Respati Yogyakarta erizalmik@yahoo. com

Pointer, Array dan String Erizal, S. Si, M. Kom Universitas Respati Yogyakarta erizalmik@yahoo. com http: //erizal. wordpress. com

POINTER Setiap kali komputer menyimpan data, maka sistem operasi akan mengorganisasikan lokasi pada memori

POINTER Setiap kali komputer menyimpan data, maka sistem operasi akan mengorganisasikan lokasi pada memori pada alamat yang unik. n Misal : untuk alamat memori 1776, hanya sebuah lokasi yang memiliki alamat tersebut. Dan alamat 1776 pasti terletak antara 1775 dan 1777. n

POINTER Merupakan variabel yang fungsinya menyimpan alamat (address) variabel n Fasilitas untuk mengakses suatu

POINTER Merupakan variabel yang fungsinya menyimpan alamat (address) variabel n Fasilitas untuk mengakses suatu variabel dengan memakai adress n

Kegunaan Pointer Calling by reference n Mengembalikan lebih satu nilai dari satu fungsi n

Kegunaan Pointer Calling by reference n Mengembalikan lebih satu nilai dari satu fungsi n Mengirimkan array dan string dari suatu fungsi ke fungsi lain n Memudahkan dalam manipulasi array n Manipulasi memory dalam system n Membuat struktur data dinamis seperti linklist, tree, graph dan sebagainya n

Operator (1) n n Dalam pointer, terdapat 2 jenis operator yang biasa digunakan. Operator

Operator (1) n n Dalam pointer, terdapat 2 jenis operator yang biasa digunakan. Operator Alamat / Dereference Operator(&) n n n Setiap variabel yang dideklarasikan, disimpan dalam sebuah lokasi memori dan pengguna biasanya tidak mengetahui di alamat mana data tersebut disimpan. Dalam C++, untuk mengetahui alamat tempat penyimpanan data, dapat digunakan tanda ampersand(&) yang dapat diartikan “alamat”. Contoh : n n Bil 1 = &Bil 2; Dibaca: isi variabel bil 1 sama dengan alamat bil 2

Operator (2) n Operator Reference (*) Penggunaan operator ini, berarti mengakses nilai sebuah alamat

Operator (2) n Operator Reference (*) Penggunaan operator ini, berarti mengakses nilai sebuah alamat yang ditunjuk oleh variabel pointer. n Contoh : n n Bil 1=*Bil 2; n dibaca: bil 2 bil 1 sama dengan nilai yang ditunjuk oleh

Deklarasi n Deklarasi variabel pointer n tipe * nama_pointer; Tipe merupakan tipe data yang

Deklarasi n Deklarasi variabel pointer n tipe * nama_pointer; Tipe merupakan tipe data yang akan ditunjuk oleh variabel, bukan tipe data dari pointer tersebut. n Contoh : n int *ptr. A; n ptr. A adalah variabel pointer untuk tipe data integer n

Contoh n Jika misalnya variabel A berisi nilai 23, dan ptr. A menunjuk variabel

Contoh n Jika misalnya variabel A berisi nilai 23, dan ptr. A menunjuk variabel A yang merupakan representasi alamat memory nomor 2, maka hal tersebut dapat diilustrasikan seperti berikut :

Proses n Dalam kode C dapat dituliskan seperti berikut : Int A; Int *ptr.

Proses n Dalam kode C dapat dituliskan seperti berikut : Int A; Int *ptr. A; A=23; *ptr. A=&A; n n Jadi operator * digunakan untuk menyatakan isi (content of) pointer, sedangkan operator & digunakan untuk menyatakan alamat memory (adress of) variabel. Jika ingin meng-akses (mencetak) nilai 23 (isi memory) melalui variabel biasa, maka perintahnya adalah : Printf(“%d”, A); n Jika ingin meng-akses (mencetak) nilai 23 (isi

Contoh Program /* Nama File : pointer. c #include <stdio. h> #include <conio. h>

Contoh Program /* Nama File : pointer. c #include <stdio. h> #include <conio. h> */ void main() { int A; //deklarasi var biasa int *ptr. A; //deklarasi var pointer clrscr(); A=23; ptr. A=&A; printf("n A = %d", A); //isi dari var A printf("n&A = %u", &A); //alamat memory var A printf("n*(&A) = %u", *(&A)); //isi di alamat pada var A printf("nptr. A = %u", ptr. A); //isi dari var pointer ptr. A printf("n*ptr. A = %d", *ptr. A); //isi di alamat pada var ptr. A printf("n&ptr. A = %u", &ptr. A); //alamat memory var ptr. A getch(); }

Contoh Pointer untuk Argumen Fungsi Call by Reference /*Nama File : tukar 2. c

Contoh Pointer untuk Argumen Fungsi Call by Reference /*Nama File : tukar 2. c - Prinsip Call by reference*/ #include <stdio. h> #include <conio. h> void tukar(int *a, int *b) { int temp; temp=*a; *a=*b; *b=temp; } void main() { clrscr(); int x=3, y=5; printf("n. Nilai x dan y semula"); printf("nx = %d y = %d", x, y); tukar(&x, &y); printf("n. Nilai x dan y kemudian"); printf("nx = %d y = %d", x, y); getch();

Array dan Pointer Nama array adalah alamat memory (pointer) pertama dari elemen array tersebut.

Array dan Pointer Nama array adalah alamat memory (pointer) pertama dari elemen array tersebut. Jika A adalah array berdimensi satu maka alamat memory dari elemen pertama adalah &A[0] atau A saja. Sehingga &A[i] sama dengan (A+i). Maka A[i] pun sama dengan *(A+i) n Berikut contoh program tentang bagaimana mengakses data array menggunakan konsep pointer : n

Contoh Program /* Nama file : p_array. c */ #include <stdio. h> #include <conio.

Contoh Program /* Nama file : p_array. c */ #include <stdio. h> #include <conio. h> void main() { int Nilai[5]={55, 75, 60, 90, 80}; clrscr(); for(int i=0; i<5; i++) { //akses dengan indeks array printf("n Nilai[%d] = %d", i, Nilai[i]); //akses dengan pointer printf("n *(Nilai+%d)= %u", i, *(Nilai+i)); } }

String dan Pointer String adalah array dari tipe character yang diakhiri dengan null character

String dan Pointer String adalah array dari tipe character yang diakhiri dengan null character () n Data konstan string ditulis dengan diapit oleh tanda petik dua (“…string…”) n

Deklarasi Tipe String n Format : n n Contoh : n n n char

Deklarasi Tipe String n Format : n n Contoh : n n n char <nama_variabel>[exp] char <nama_variabel>[ ]={inisial} char *<nama_variabel> char nama[ ]; char *alamat; Pemberian nilai inisial ke string dapat dilakukan dengan cara : n char nama[]=“Hanif”; atau n char nama[]={‘H’, ’a’, ’n’, ’I’, ’f’, ’’};

String Deklarasi char *nama menunjukkan bahwa string adalah pointer, atau dapat diakses dengan cara-cara

String Deklarasi char *nama menunjukkan bahwa string adalah pointer, atau dapat diakses dengan cara-cara yang sama dengan pointer atau array n Contoh program mengakses string dalam function : n

Contoh Program /*Nama file : p_string. c */ #include <stdio. h> #include <string. h>

Contoh Program /*Nama file : p_string. c */ #include <stdio. h> #include <string. h> void ubah_nama(char *nama) { nama=strcat(nama, " Nasution"); } void main() { char *nm; clrscr(); printf("n. Masukkan nama anda : "); gets(nm); ubah_nama(nm); printf("n. Nama anda sekarang : %s", nm); getch(); }

END OF MODUL - 4

END OF MODUL - 4