1 / 18

Pointer, Array dan String

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.

aelwen
Télécharger la présentation

Pointer, Array dan String

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  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"); printf("\nx = %d y = %d",x,y); 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 : • 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

More Related