1 / 44

POINTER

Pemrogramman Terstruktur. POINTER. Teknik Informatika Universitas Muhammadiyah Malang 2012. Tujuan Instruksional. Mahasiswa memahami tentang pointer pada C dan mampu menggunakannya Mahasiswa memahami dan mampu menggunakan pointer. Topik. Variabel Pointer Operasi pointer. P OINTER.

adrina
Télécharger la présentation

POINTER

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. Pemrogramman Terstruktur POINTER Teknik Informatika Universitas Muhammadiyah Malang 2012

  2. Tujuan Instruksional • Mahasiswa memahami tentang pointer pada C dan mampu menggunakannya • Mahasiswa memahami dan mampu menggunakan pointer

  3. Topik • Variabel Pointer • Operasi pointer

  4. POINTER • Pointer adalah variabel yang berisi alamat memori. • Operator ‘&’ digunakan untuk mendapatkan alamat dari variabel • Operator ‘*’ digunakan untuk mendapatkan objek/nilai yang ditunjuk (pointed to) oleh pointer

  5. KELEBIHAN POINTER • Kelebihan penggunaan pointer • Flexibilitas • Kode ringkas • Efisiensi memory • Pointer digunakan dalam: • Array • Fungsi • Struktur

  6. Deklarasi Pointer • Sama seperti variabel, pointer harus dideklarasikan sebelum digunakan. • Format deklarasi pointer : tipe_ data *nama_ var;

  7. Contoh Deklarasi pointer int *nilai_ptr, p; • Artinya : nilai_ptr adalah pointer to int • int menyatakan tipe data yang ditunjuk oleh ptr. • Sedangkan p bukanlah pointer krn tidak ada tanda * sebelum p

  8. Inisialisasi Pointer • Saat pointer dideklarasikan, diatidakmenunjukkemanapun. Andaharusmembuatnyamenunjukkesesuatusebelumdigunakan. • Pointer diinisialisasi dengan alamat variable. Contoh: int *ip, i=100; ip=&i; Error ip = i;

  9. Operator Pointer • Operator alamat (address operator) &  akan menghasilkan alamat memori dari operannya. Contoh : int y = 5; int *yPtr; yPtr = &y; assignment alamat y ke yPtr

  10. Inisialisasi Pointer • Pointer tidak dapat menunjuk : • Pointer tidak dapat langsung diinisialisasi dengan konstanta, contoh : • Pointer harus menunjuk ke alamat variabel tertentu baru bisa di-assignment dengan konstanta. Tetapi sebenarnya yang berubah nilainya adalah variabel yg telah ditunjuk. Dan bukan pointer itu sendiri.

  11. Contoh Pointer

  12. Contoh Pointer

  13. Contoh Program

  14. Operasi pada Pointer • Variabel pointer dapat dioperasikan sebagaimana variabel biasa, antara lain : • Operasi assignment • Operasi aritmatika • Operasi logika

  15. Operasi Assignment

  16. Operasi Aritmatika • Variabel pointer dapat ditambah atau dikurangi dengan nilai integer. • Operasi pertambahan dengan suatu nilai integer merupakan suatu peningkatan nilai pointer yang menunjukkan lokasi data berikutnya di memori

  17. Operasi Aritmatika • Misalnya pointer p menyimpan alamat 1000, maka : • Jika p adalah pointer to int, maka p++ akan menunjuk alamat 1004 (krn int berukuran 4 byte) • Jika p adalah pointer to char, maka p++ akan menunjuk alamat 1001 (krn ukuran char adalah 1 byte)

  18. Operasi Logika • Dua variabel pointer dapat dibandingkan jika keduanya mempunyai tipe yang sama atau keduanya bernilai null.

  19. Operasi Pointer pd Array • Bagaimana mengoperasikan array menggunakan pointer? • Nama array yang ditulis tanpa indeks, menyatakan alamat elemen pertamanya. • Gunakan operasi aritmatika pada pointer

  20. Operasi Pointer untuk Array • Nama array yang ditulis tanpa indeks, menyatakan alamat elemen pertamanya. • Misalnya array X dan pointer P=X : • Alamat masing2 elemennya dpt dituliskan : • Elemen ke-1 : &X[0] atau X atau X+0 atau P atau P+0 • Elemen ke-2 : &X[1] atau X+1 atau P+1 • Elemen ke-n : &X[n-1] atau X+(n-1) atau P+(n-1) • Isi array dpt diakses sbb : • Elemen ke-1 : X[0] atau *(X+0) atau *P atau *(P+0) • Elemen ke-2 : X[1] atau *(X+1) atau *(P+1) • Elemen ke-n : X[n-1] atau *(X+n-1) atau *(P+n-1)

  21. Contoh-contoh

  22. Bagaimanakah menulis seluruh isi array menggunakan pointer?

  23. Latihan Soal • Buatlah sebuah array bertipe char berisi huruf A-J. Tampilkan seluruh elemennya menggunakan pointer! • Buatlah array bertipe int yang berisi bilangan genap antara 0-10. Tampilkan seluruh elemennya menggunakan pointer! • Buatlah program yang akan menerima masukan berupa string dari user. Tanpa menggunakan fungsi strlen, hitunglah berapa panjang string tersebut dengan menggunakan pointer!

  24. Latihan • Tanpa menggunakan fungsi strcpy, salinlah isi sebuah string ke variabel string lainnya (gunakan pointer) • Buat penjumlahan dua buah big integer, dimana jumlah digit dan nilai untuk masing masing bilangan diinputkan oleh user

  25. Perbedaan Array & Pointer • Jika pa adalah pointer dan a adalah array dapat kita lakukan pa = a (yang identik dengan pernyataan pa = &a[0]) dan pa++ • Tetapi karena Array bukanlah pointer sehingga tidak dapat kita lakukan a = pa dan a++

  26. Pointer sbg Array • Kita dapat membuat array yang dinamis ukurannya dengan alokasi • Alokasidinamispada array memungkinkankitauntukmembuat array yang ukurannyadisesuaikandengankebutuhan program. • Fungsialokasi : malloc (adadistdlib.h) • Contoh array dinamis : int *a; a = (int *)malloc (5 *sizeof(int))

  27. Pointer sbg Array

  28. Pointer sbg Array • Contoh : menyimpan string yang berbeda panjangnya

  29. Array Multidimensi & Pointer • Sebuah array 2 dimensi sebenarnya adalah array of array. • Mendeklarasikan array 2 dimensi dg pointer : tipe_data (*nama_array)[banyak_kolom] Contoh : int (*b)[4] mendeklarasikan array b dengan ukuran kolom 4

  30. Jika kita membuat array 2 dimensi : int a[ ][20] identik dengan int (*a)[20]

  31. Exercise • [Poin:5]Buatlah sebuah array bertipe char yang berisi huruf A-Z. Dengan menggunakan perulangan tampilkan seluruh elemennya menggunakan pointer. • [Poin:5]Buatlah array bertipe int yang berisi bilangan genap antara 0-100. Tampilkan seluruh elemennya menggunakan pointer.

  32. 3. [Poin:6]Buatlah program untuk membaca 5 angka dari user dan disimpan ke array. Gunakan pointer untuk menyimpan tiap nilainya. 4. [Poin:6]Buatlah program untuk membaca sebuah string dari user. Tampilkan per-karakter menggunakan pointer.

  33. 5. [Poin:6] Buatlah program yang akan menerima masukan berupa string dari user. Tanpa menggunakan fungsi strlen, hitunglah berapa panjang string tersebut dengan menggunakan pointer. 6. [Poin:6] Tanpa menggunakan fungsi strcpy, salinlah isi sebuah string ke variabel string lainnya (gunakan pointer).

  34. 7. [Poin:6] Dengan menggunakan pointer, buatlah program yang akan menggabungkan 2 buah string (tanpa menggunakan strcpy dan turunannya). 8. Dengan menggunakan pointer, buatlah array untuk menyimpan dan menampilkan data berikut :

  35. 9. Gunakanlah malloc untuk membuat array dari pointer dengan spesifikasi sbb : 10.

  36. Daftar Pustaka • Budi Hartanto, “Pembuatan Program C”, Penerbit Andi, 2004 • Jogiyanto H., “Konsep Dasar Pemrograman Bahasa C”, Penerbit Andi, 2003

More Related