Pointer Array dan String Erizal S Si M
- Slides: 18
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 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 variabel dengan memakai adress 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 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 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 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 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. 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> */ 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 - 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. 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. 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 ( ) 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 <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 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> 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
- Contoh program pointer string c++
- Http protocol description
- Constant pointer and pointer to constant
- Constant pointer and pointer to constant
- 9 pointers
- Constant pointer and pointer to constant
- Constant pointer and pointer to constant
- Pointer expressions
- Pointer pointer
- Pointer pointer
- In the statement "int *arr[4];",arr is
- Java array pointer
- Const char *s
- Private string[]
- Str string
- Import java.collections
- Difference between array and string in c
- Java int to byte array
- Land grid array vs pin grid array