Week 7 Pointer Tujuan Pembelajaran Mahasiswa memahami tentang
Week – 7 Pointer
Tujuan Pembelajaran Mahasiswa memahami tentang pointer pada C dan mampu menggunakannya
Materi Pembelajaran Definisi Pointer Deklarasi Pointer Operator Pointer Operasi Pada Pointer Quizzzz. .
Apa itu Pointer? ? Pointer adalah sebuah variabel yang digunakan untuk menyimpan alamat memori dari variabel lainnya. Berguna untuk pengalokasian memori secara dinamis
POINTER Pointer tidak berisi data. Pointer berisi alamat dari data Pointer digunakan dalam : Array Fungsi Struktur
Operator Pointer adalah variabel yang menyimpan alamat memori variabel lainnya. Operator ‘&’ digunakan untuk mendapatkan alamat dari variabel Operator ‘*’ digunakan untuk mendapatkan objek/nilai yang ditunjuk (pointed to) oleh pointer
Mendeklarasikan Pointer Sama seperti variabel, pointer harus dideklarasikan sebelum digunakan. Contoh : int *p; Artinya : p adalah pointer to int (pointer selalu ditandai dengan *) int menyatakan tipe data yang ditunjuk oleh p. Apa perbedaan int p ; int *p ;
Mendeklarasikan Pointer Format deklarasi pointer : tipe_data *nama_var Pointer tidak dapat menunjuk : Konstanta, contoh : �*p=3; Ekspresi, contoh : �*p= 3*7;
Mendeklarasikan Pointer Saat pointer dideklarasikan, dia tidak menunjuk kemanapun. Anda harus membuatnya menunjuk ke sesuatu sebelum digunakan. Contoh : int *p; *p = 100; // akan error saat dijalankan seharusnya, int *p, i = 100; p= &i;
// my first pointer Contoh #include <stdio. h> void main(){ int firstvalue, secondvalue; int * mypointer; mypointer = &firstvalue; *mypointer = 10; mypointer = &secondvalue; *mypointer = 20; printf("firstvalue is %d ", firstvalue ); printf("secondvalue is %d ", secondvalue ); getch(); }
Perubahan Nilai Pointer Perubahan nilai pada variabel pointer akan mengakibatkan perubahan nilai dari variabel yang alamat-nya ditunjuk oleh pointer. Contoh program : int *x , y = 100; x = &y; *x = 50; Nilai y akan berisi 50.
130 Step 2 100 Step 3 100 Step 1
Apa yang terjadi jika ditambahkan : step 4 *p=5000; 130 Step 2 100 Step 3 *p=5000; // step 4 5000 100 Step 1 Step 4
Berapa nilai x, y, z Keadaan semula X=1 Y=2 Z=3 Keadaan Akhir p = &y y=5 *p = 5 x=5 p = &z *p = 3 y=3 *p = 10 z = 10
Contoh Program Berapa nilai i dan j ? ? ? 25
Contoh- Program 26
27
Operasi pada Pointer Variabel pointer dapat dioperasikan sebagaimana variabel biasa, antara lain : Operasi assignment Operasi aritmatika Operasi logika 28
Contoh Program - Operasi Assignment 29
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 30
Operasi Aritmatika Misalnya pointer X menyimpan alamat 1000, maka : Jika x adalah int, maka x++ akan menunjuk alamat 1002 (krn int berukuran 2 byte) Jika x adalah char, maka x++ akan menunjuk alamat 1001 (krn ukuran char adalah 1 byte) 31
Contoh Program – Operasi Aritmatika 32
Contoh Program – Operasi Aritmatika 33
Operasi Logika Dua variabel pointer dapat dibandingkan jika keduanya mempunyai tipe yang sama atau keduanya bernilai null. 34
35
Operasi Pointer pd Array Bagaimana mengoperasikan array menggunakan pointer? Nama array yang ditulis tanpa indeks, menyatakan alamat elemen pertamanya. Gunakan operasi aritmatika pada pointer 36
Mengakses Elemen Array Misalnya array X dan pointer P=X : Alamat masing 2 elemennya dpt dituliskan : �Elemen ke-1 : &X[0] atau X+0 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) 37
Contoh-contoh 38
Bagaimanakah menulis seluruh isi array menggunakan pointer? 39
Quiz : Apa output dari program di samping
Quiz 2: Apa output program ini?
Exercise 1. [Poin: 5]Buatlah sebuah array bertipe char huruf A-J. Tampilkan seluruh elemennya menggunakan pointer. 2. [Poin: 5]Buatlah array bertipe int yang berisi bilangan genap antara 0 -10. Tampilkan seluruh elemennya menggunakan pointer. 42
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 perkarakter menggunakan pointer. 43
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. 44
- Slides: 44