Pertemuan 3 Variabel/Dinamik Pointer

Slides:



Advertisements
Presentasi serupa
ARRAY.
Advertisements

Pemrograman Terstruktur
Algoritma dan Struktur Data
Pointer. Output? #include int x = 2; void misteri(int a, int b) { a = 2*x; b = y; y = a; } main() { int y; x = 5; y = 7; misteri(x, y); printf("%d %d\n",
Pointer.
Pertemuan 2 STRUKTUR DATA LINKED LIST
ARRAY (Lanjutan).
Algoritma dan Struktur Data Daniel Riano Kaparang.
1 Pointer wijanarto. 2 Topik Introduction to Pointers Pointers dan Parameter Fungsi.
Pointer Variabel pointer sering disebut sebagai variabel yang menunjuk obyek lain, karena variabel pointer atau pointer adalah variabel yang berisi alamat.
Algoritma & Struktur Data Pointer Evangs Mailoa.
Fungsi Lecture 7. Motivation Complexity of programming problem  more difficult to consider the solution as a whole  clue: dividing the problem into.
Alokasi Memori Yuliana Setiowati.
Alokasi memori dinamis
Pengantar Pemrograman
Pointer Memory Dinamic.
Pemrograman Dasar Pointers.
Pointer Yuliana Setiowati.
Algoritma & Struktur Data Linked List Evangs Mailoa.
Pointer Dr. Lily Wulandari.
POINTER (VAR.PENUNJUK)
Pertemuan 22 POINTER Bag.2 Dasar Pemrograman Renni Angreni, S.Kom.
ARRAY RUBY. PENDAHULUAN Ruby's arrays are untyped and mutable. The elements of an array need not all be of the same class, and they can be changed at.
Algoritma dan Struktur Data
Pointer Pointer.
1 Pertemuan 18 Matriks Matakuliah: T0016/Algoritma dan Pemrograman Tahun: 2005 Versi: versi 2.
Pertemuan String Matakuliah : T0616 / Algoritma dan Pemrograman
Class and Object Introduction Specifying a Class Defining Member Function A C++ Program with Class Nesting of Member Functions Private Member Functions.
Structure Data - Array Pertemuan 7 Matakuliah: T0456 / Algoritma dan Metode Object Oriented Programming Tahun: 2007.
Algoritma dan Struktur Data
1 Pertemuan 6 Encapsulation Lanjutan Matakuliah: T0044/Pemrograman Berorientasi Obyek Tahun: 2005 Versi: 1.0.
Bab 05 Tipe Data dan Mengisi Variabel
FUNCTIONS Pertemuan 9 Matakuliah: T0456 / Algoritma dan Metode Object Oriented Programming Tahun: 2007.
POINTER.
Tenia Wahyuningrum pointers Tenia Wahyuningrum
Array, POINTER dan FUNGSI
Matakuliah : T0534/Struktur Data Tahun : 2005 Versi : September 2005
POINTER Bag.2 Pertemuan 22 Dibuat oleh : Renni Angreni, S.Kom. Triana Elizabeth, S.Kom.
Matakuliah : T0016 / Algoritma dan Pemrograman Tahun : 2007 Versi : 6
Algoritma dan Struktur Data
1 Pertemuan 3 Data Komposit Linked list Matakuliah: T0026/Struktur Data Tahun: 2005 Versi: 1/1.
Pertemuan 9 Stack dengan Linked-list
ASD Alokasi Memori Dinamis.  Untuk menggunakan sebuah variabel, kita harus mendeklarasikannya dulu  Pada saat deklarasi, slot memori dipesan untuk dipakai.
1 Pertemuan 6 Unit Testing Matakuliah: H0112 – Pemrograman Bahasa Tingkat Tinggi Tahun: 2005/2006 Versi: >
1 Pertemuan 10 PERFORMANCE SURFACES Matakuliah: H0434/Jaringan Syaraf Tiruan Tahun: 2005 Versi: 1.
Pertemuan 7 Optimasi Pemrograman C
1 Pertemuan 8 Array & Pointer of Class Matakuliah: T0044/Pemrograman Berorientasi Obyek Tahun: 2005 Versi: 1.0.
1 Pertemuan 1 Pengenalan Pemrograman Terstruktur C Matakuliah: H0112 – Pemrograman Bahasa Tingkat Tinggi Tahun: 2005/2006 Versi: xxx/2.
ARRAY Array merupakan struktur data yang sering digunakan dalam pemrograman untuk menyimpan data yang akan diolah.
Pemrograman Terstruktur
Matakuliah : H0112 – Pemrograman Bahasa Tingkat Tinggi
Matakuliah : K0074/Kalkulus III Tahun : 2005 Versi : 1/0
Algoritma dan Struktur Data
POINTER (VAR.PENUNJUK)
Pertemuan 4 Modularitas
Pertemuan 24 Teknik Searching
Tenia Wahyuningrum pointers Tenia Wahyuningrum
Algoritma dan Struktur Data
Algoritma dan Struktur Data
Linked List 6.3 & 7.3 NESTED LOOP.
Algoritma dan Struktur Data
Alokasi Memori Dinamis
Algoritma dan Struktur Data
Algoritme dan Pemrograman
STRUKTUR DATA PERTEMUAN 5.
POINTER (VAR.PENUNJUK)
Variable Static & Linked List
Algoritma dan Struktur Data
Algoritma & Pemrograman 1 Achmad Fitro The Power of PowerPoint – thepopp.com Chapter 4.
Penjumlahan dua buah MATRIX. Penjumlahan dua buah MATRIX.
Transcript presentasi:

Pertemuan 3 Variabel/Dinamik Pointer Matakuliah : H0112 – Pemrograman Bahasa Tingkat Tinggi Tahun : 2005/2006 Versi : <<versi/revisi>> Pertemuan 3 Variabel/Dinamik Pointer

Learning Outcomes Pada akhir pertemuan ini, diharapkan mahasiswa akan mampu : Menerangkan perbedaan pengertian konstant pointer dengan pengertian variabel pointer

Alokasi Memori Dinamis (Dynamic Memory Allocation) – Variabel Pointer Outline Materi Alokasi Memori Dinamis (Dynamic Memory Allocation) – Variabel Pointer Pointer Aritmatika I, II Const dan pointer Tugas: Gaussian Elimination

Dynamic Memory Allocation Use malloc() and sizeof() for dynamically allocating memory int *a = (int*) malloc(k * sizeof(int)) Don’t: int *b = (int*) malloc(k * 4) // not portable malloc() returns generic pointer (void *), thus typecast it to (int *) Free dynamically allocated memory with free() free(a);

Use pointer arithmetic to access sequence of data cells Pointer Arithmetic I Use pointer arithmetic to access sequence of data cells int a[4], *b = a; b+i points to (i+1)th element of a *(b+n) is the same as a[n] a[0] a[1] a[2] a[3] b b+1 b+2 b+3

Pointer Arithmetic II Note: b+3 does not mean adding 3 to b, rather adding 3 times the size of the data cell to b Subtraction: inverse to adding int *b = &a[3]; b-1 points to a[2] Walking through array int sumArray(int *a, int size) { int i = 0, sum = 0; while (i<size) { sum += *a++; i++;} return sum; }

const * p * const p Apa perbedaan antara const *p dengan * const p? Const dan pointer Apa perbedaan antara const *p dengan * const p? “const” adalah adjektif yang mendeskripsikan istilah berikut: const * p * const p

const *p Const dan pointer Apa yang ditunjuk oleh pointer adalah konstanta Sehingga nilai *p tidak dapat diubah void main (void) { int a = 3; int const * p; p = &a; (*p) ++; a++; p++; printf( “%d”, p); } 100 3 p a warning: increment of read-only location

* const p Const dan pointer Isi pointer (alamat) adalah konstanta p a Sehingga pointer tidak dapat menunjuk ke variabel lain. void main (void) { int a = 3; int const * p; p = &a; (*p) ++; a++; p++; printf( “%d”, p); } 100 3 p a warning:assignment of read-only ‘p’ warning: increment of read-only variabel ‘p’

Topik Minggu Depan Modularitas Tugas 1: Observasi program berikut ini (slide berikutnya) Tugas 2: (Kompleks) Observasi pada program “gaussian elemination” – buku pustaka no 2, khususnya pada penerapan “dynamic memory allocation” (Applied C: An Introduction and more-Chapter 19:Dynamic Arrays).

Example of pointers, malloc, free #include <stdio.h> #include <stdlib.h> void main() { int cost = 5, i; int* cost_ptr; cost_ptr = &cost; /*Let cost_ptr point to "cost“ */ printf("Pointer = %d. Dereference = %d\n", cost_ptr, *cost_ptr); cost_ptr = (int*) malloc( 10 * sizeof(int)); for (i = 0; i < 10; i++) cost_ptr [i] = i*2; /* cost_ptr can be used as an array variable*/ printf("value %d: %d\t", i, cost_ptr[i]); /* You can also explicitly use the memory location of ith element (can be dangerous).*/ *(cost_ptr + sizeof(int) * i) = 2*i ; printf("value %d: %d\n", i, *(cost_ptr + sizeof(int) * i)); } /* Free the allocated mormory if you don't use it in the future */ free( cost_ptr);

Tugas 3: Suatu keypad matrix 4x4 memerlukan driver untuk menentukan tombol mana yang ditekan. Baca (buku pustaka no 2 hal 66) dan cobalah merancang program untuk keypad matrix 4x4 tersebut!