Upload presentasi
Presentasi sedang didownload. Silahkan tunggu
1
Pointer, Array dan String
Erizal, S.Si, M.Kom Universitas Respati Yogyakarta
2
POINTER Setiap kali komputer menyimpan data, maka sistem operasi akan mengorganisasikan lokasi pada memori pada alamat yang unik. Misal : untuk alamat memori 1776, hanya sebuah lokasi yang memiliki alamat tersebut. Dan alamat 1776 pasti terletak antara 1775 dan 1777.
3
POINTER Merupakan variabel yang fungsinya menyimpan alamat (address) variabel Fasilitas untuk mengakses suatu variabel dengan memakai adress
4
Kegunaan Pointer Calling by reference
Mengembalikan lebih satu nilai dari satu fungsi Mengirimkan array dan string dari suatu fungsi ke fungsi lain Memudahkan dalam manipulasi array Manipulasi memory dalam system Membuat struktur data dinamis seperti linklist, tree, graph dan sebagainya
5
Operator (1) Dalam pointer, terdapat 2 jenis operator yang biasa digunakan. Operator Alamat / Dereference Operator(&) 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 : Bil1 = &Bil2; Dibaca: isi variabel bil1 sama dengan alamat bil2
6
Operator (2) Operator Reference (*)
Penggunaan operator ini, berarti mengakses nilai sebuah alamat yang ditunjuk oleh variabel pointer. Contoh : Bil1=*Bil2; dibaca: bil1 sama dengan nilai yang ditunjuk oleh bil2
7
Deklarasi Deklarasi variabel pointer
tipe * nama_pointer; Tipe merupakan tipe data yang akan ditunjuk oleh variabel, bukan tipe data dari pointer tersebut. Contoh : int *ptrA; ptrA adalah variabel pointer untuk tipe data integer
8
Contoh Jika misalnya variabel A berisi nilai 23, dan ptrA menunjuk variabel A yang merupakan representasi alamat memory nomor 2, maka hal tersebut dapat diilustrasikan seperti berikut :
9
Proses Dalam kode C dapat dituliskan seperti berikut :
Int A; Int *ptrA; A=23; *ptrA=&A; 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); Jika ingin meng-akses (mencetak) nilai 23 (isi memory) melalui pointer, maka perintahnya adalah : Printf(“%d”,*ptrA);
10
Contoh Program /* Nama File :pointer.c */ #include <stdio.h>
#include <conio.h> void main() { int A;//deklarasi var biasa int *ptrA; //deklarasi var pointer clrscr(); A=23; ptrA=&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("\nptrA = %u",ptrA);//isi dari var pointer ptrA printf("\n*ptrA = %d",*ptrA);//isi di alamat pada var ptrA printf("\n&ptrA = %u",&ptrA);//alamat memory var ptrA getch(); }
11
Contoh Pointer untuk Argumen Fungsi Call by Reference
/*Nama File : tukar2.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("\nNilai x dan y semula"); printf("\nx = %d y = %d",x,y); tukar(&x,&y); printf("\nNilai x dan y kemudian"); getch();
12
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) Berikut contoh program tentang bagaimana mengakses data array menggunakan konsep pointer :
13
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)); }
14
String dan Pointer String adalah array dari tipe character yang diakhiri dengan null character (\0) Data konstan string ditulis dengan diapit oleh tanda petik dua (“…string…”)
15
Deklarasi Tipe String Format : Contoh :
char <nama_variabel>[exp] char <nama_variabel>[ ]={inisial} char *<nama_variabel> Contoh : char nama[ ]; char *alamat; Pemberian nilai inisial ke string dapat dilakukan dengan cara : char nama[]=“Hanif”; atau char nama[]={‘H’,’a’,’n’,’I’,’f’,’\0’};
16
String Deklarasi char *nama menunjukkan bahwa string adalah pointer, atau dapat diakses dengan cara-cara yang sama dengan pointer atau array Contoh program mengakses string dalam function :
17
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("\nMasukkan nama anda :");gets(nm); ubah_nama(nm); printf("\nNama anda sekarang : %s",nm); getch();
18
END OF MODUL - 4
Presentasi serupa
© 2024 SlidePlayer.info Inc.
All rights reserved.