Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

Teknik Pemrograman Terstruktur Memory Dinamic 1/10 Pointer.

Presentasi serupa


Presentasi berjudul: "Teknik Pemrograman Terstruktur Memory Dinamic 1/10 Pointer."— Transcript presentasi:

1 Teknik Pemrograman Terstruktur Memory Dinamic 1/10 Pointer

2 Teknik Pemrograman Terstruktur Memory Dinamic 2/10 Outline Konsep pointer dalam bahasa C++ Variabel static dan dynamic Operator ‘.’ dan ‘->’ Operator new dan delete, konstanta NULL Contoh program

3 Teknik Pemrograman Terstruktur Memory Dinamic 3/10 POINTER UNTUK FUNCTION C++ memperbolehkan operasi dengan pointer pada function. Kegunaan yang utama adalah untuk memberikan satu function sebagai parameter untuk function lainnya. Deklarasi pointer untuk function sama seperti prototype function kecuali nama function dituliskan diantara tanda kurung () dan operator asterisk (*) diberikan sebelum nama. contoh: // pointer to functions #include int addition (int a, int b) { return (a+b); } int subtraction (int a, int b) { return (a-b); } int (*minus) (int,int) = subtraction; int operation (int x, int y, int (*functocall)(int,int)) { int g; g = (*functocall)(x,y); return (g); } int main ( ) { int m,n; m = operation (7, 5, addition); n = operation (20, m, minus); cout <

4 Teknik Pemrograman Terstruktur Memory Dinamic 4/10 DYNAMIC MEMORY OPERATOR new dan new[ ] –Untuk meminta dynamic memory, digunakan operator new. Pernyataan new diikuti dengan tipe data dan jumlah elemen yang dibutuhkan didalam kurung siku []. –Syntax : pointer = new type ataupointer = new type [elements] –Bentuk pertama digunakan untuk meminta memory yang digunakan untuk elemen tunggal. –Bentuk kedua untuk meminta sekumpulan(array) elemen. Contoh : int * bobby; bobby = new int [5]; Contoh diatas akan menetapkan ruang untuk 5 elemen bertipe int dalam heap dan memiliki pointer yang menunjuk ke tempat paling awal. Dynamic memory pada umumnya diatur oleh operating system, dan pada multitask interfaces dapat digunakan bersama beberapa aplikasi, sangat memungkinkan memory habis terpakai. Jika hal ini terjadi, maka akan mengembalikan pointer null. Karena alasan tersebut, maka dianjurkan untuk melakukan pemeriksaan apakah pointer yang diberikan bernilai null. Contoh : int * bobby; bobby = new int [5]; if (bobby == NULL) { // error assigning memory. Take measures. };

5 Teknik Pemrograman Terstruktur Memory Dinamic 5/10 OPERATOR DELETE –Ketika memory yang tadi diminta sudah tidak digunakan lagi maka, memory tersebut harus dibebaskan agar dapat digunakan untuk permintaan dynamic memory lainnya. –Operator delete digunakan untuk mengatasi masalah ini, –syntax :delete pointer; ataudelete [ ] pointer; FUNGSI malloc –Merupakan function yang digunakan untuk menetapkan dynamic memory untuk pointer. –Syntax : void * malloc (size_t nbytes); –Dimana nbytes adalah jumlah dalam byte yang dibutuhkan untuk diberikan ke pointer. –Function akan mengembalikan pointer bertipe void*, karena itu harus diberikan perintah type cast nilai ke tipe pointer tujuan. –contoh :char * ronny; ronny = (char *) malloc (10); atau int * bobby;bobby = (int *) malloc (5 * sizeof(int));

6 Teknik Pemrograman Terstruktur Memory Dinamic 6/10 FUNGSI calloc –hampir sama dengan malloc dalam operasinya, perbedaan utamanya adalah prototype : void * calloc (size_t nelements, size_t size); –Memerlukan 2 buah parameter, elemen pertama adalah jumlah elemen yang diigunakan dan parameter yang kedua adalah ukuran dalam byte untuk setiap elemen. int * bobby; bobby = (int *) calloc (5, sizeof(int)); FUNGSI realloc –Merubah ukuran dari blok memory yang telah ditetapkan sebelumnya. void * realloc (void * pointer, size_t size); –parameter pointer menerima pointer ke blok memory yang telah ada atau null pointer, dan size menetapkan ukuran yang baru untuk blok memory yang diminta. –Function dapat merupak lokasi dari blok memory sehingga ukuran yang baru dapat terpenuhi dan isi dari memory yang lama tidak hilang.

7 Teknik Pemrograman Terstruktur Memory Dinamic 7/10 FUNGSI free –Melepaskan blok dari dynamic memory yang sebelumnya ditetapkan dengan malloc, calloc atau realloc. –Syntax : void free (void * pointer); STRUCT Contoh : // example about structures struct movies_t { char title [50]; int year; } mine, yours; void printmovie (movies_t movie); int main (){ char buffer [50]; strcpy (mine.title, "2001 A Space Odyssey"); mine.year = 1968; cout << "Enter title: "; cin.getline (yours.title,50); cout << "Enter year: "; cin.getline (buffer,50); yours.year = atoi (buffer); cout << "My favourite movie is:\n "; printmovie (mine); cout << "And yours:\n "; printmovie (yours); return 0;} void printmovie (movies_t movie){ cout << movie.title; cout << " (" << movie.year << ")\n"; }

8 Teknik Pemrograman Terstruktur Memory Dinamic 8/10 Output: Enter title: Alien Enter year: 1979 My favourite movie is: 2001 A Space Odyssey (1968) And yours: Alien (1979) POINTER PADA STRUCTURE –Sama seperti pada tipe lainnya, struktur juga dapat ditunjuk oleh pointer. Aturannya sama untuk setiap tipe data. –Pointer harus dideklarasikan sebagai pointer untuk struktur : struct movies_t { char title [50]; int year; };movies_t amovie;movies_t * pmovie; amovie merupakan object dari tipe struct movies_t dan pmovie adalah pointer untuk menunjuk ke objek dari tipe struct movies_t. deklarasi dibawah ini juga benar: pmovie = &amovie;

9 Teknik Pemrograman Terstruktur Memory Dinamic 9/10 Referensi Herbert Schildt, The Complete Reference C++, Fourth Edition, McGraw- Hill/Osborne Antony Pranata, Pemrograman Borland C++, Andi Offset, Yogyakarta Online Reading, www://cplusplus.com

10 Teknik Pemrograman Terstruktur Memory Dinamic 10/10 Kesimpulan Penggunaan memory dinamik dengan perintah malloc, calloc Mengembalikan memory yang tidak digunakan setelah eksekusi dengan perintah free Menggunakan struct sebagai parameter function dengan menggunakan pointer


Download ppt "Teknik Pemrograman Terstruktur Memory Dinamic 1/10 Pointer."

Presentasi serupa


Iklan oleh Google