Pointer Memory Dinamic.

Slides:



Advertisements
Presentasi serupa
FUNGSI Erizal, S.Si, M.Kom Universitas Respati Yogyakarta
Advertisements

POINTER.
PERTEMUAN IV POINTER Pointer adalah suatu variabel penunjuk yang menunjuk pada suatu alamat memori komputer Pointer merupakan.
Double Linked List.
Fungsi Friend Dalam bahasa C++ kita dapat membuat suatu fungsi yang berada di luar kelas (class) dan dapat meng-ak-ses bagian private suatu kelas. Fungsi.
STRUKTUR DATA (5) Pointer dan Function
Teknik Pemrograman Terstruktur 2
Pointer Konsep Pemrograman.
SL-1201 Pengantar Pemrograman
Pointer.
PEMROGRAMAN SISTEM POINTER Pertemuan X. ALAMAT & POINTER Pointer sesungguhnya berisi alamat memory yang menyimpan data. Pointer sesungguhnya berisi alamat.
LINKED LIST.
POINTER
Konsep Pemrograman Contoh Program C # include int main() { printf("Hello World From About\n"); getche (); return 0; }
Function.
3 Variabel, Konstanta Tipe Data dan dalam Bahasa C/C++ Java dan Bab
By; NILA FEBY PUSPITASARI
PENGENALAN c++ DAN STRUKTUR DASAR C++
Pointer Variabel pointer sering disebut sebagai variabel yang menunjuk obyek lain, karena variabel pointer atau pointer adalah variabel yang berisi alamat.
Person 10Person Variabel Lokal dan Global Suatu variabel lokal dideklarasikan di dalam fungsi ‘a’, dan tidak dapat diakses di luar fungsi (a)
OPERATOR OVERLOADING The ability to provide the operators with a special meaning for a data type but its original meaning is not lost. Example: Operator.
PEMROGRAMAN SISTEM PERNYATAAN DASAR PILIHAN Pertemuan V
Array dan String Array dan String.
Fungsi.
Pemrograman Dasar Pointers.
Pointer Yuliana Setiowati.
Pointer Dr. Lily Wulandari.
POINTER (VAR.PENUNJUK)
Pertemuan 22 POINTER Bag.2 Dasar Pemrograman Renni Angreni, S.Kom.
Pemrograman Berorientasi Obyek1 Sub Pokok Bahasan Array of class. Array Class. Pointer of class. Dynamic Memory Management.
KONSTANTA dan OPERATOR
STRUKTUR DATA Pointer dan Function
#include //bagian modul int hitung(x,y) { return(x+y); } //bagian utama main() { int jumlah,a,b; a=8; b=2; jumlah=hitung(a,b); cout
P O I N T E R. Merupakan sebuah variabel yang berisi alamat dari variabel lain. Suatu pointer dimaksudkan untu menunjukan ke suatu alamat memori sehingga.
Jawaban ujian MID. #include int pil; char tny; main(){ menu: cout
Fungsi Fungsi.
Pointer Pointer.
1 Pertemuan 6 Encapsulation Lanjutan Matakuliah: T0044/Pemrograman Berorientasi Obyek Tahun: 2005 Versi: 1.0.
Pemrograman Berorientasi Obyek1 Sub Pokok Bahasan Pointer. Reference. Function Passing Parameter by Value, by Reference, by Pointer.
Pointer.
Operator Unary Operator Ternary
Bab 05 Tipe Data dan Mengisi Variabel
FUNCTIONS Pertemuan 9 Matakuliah: T0456 / Algoritma dan Metode Object Oriented Programming Tahun: 2007.
Dibuat oleh : Renni Angreni, S.Kom.
POINTER.
1 Pertemuan 2 Function & Pointer Matakuliah: T0044/Pemrograman Berorientasi Obyek Tahun: 2005 Versi: 1.0.
Teknik Pemrog. Terstruktur 2
Pointer (Part 1).
PEMROGRAMAN SISTEM PERNYATAAN DASAR FUNGSI Pertemuan VI
Teknik Pemrog. Terstuktur 2
STRUKTUR PERULANGAN 2 (LOOPING-2)
POINTER Bag.2 Pertemuan 22 Dibuat oleh : Renni Angreni, S.Kom. Triana Elizabeth, S.Kom.
DASAR STRING PEMROGRAMAN SISTEM.
Fungsi, Array dan String
PERSON 20 TUGAS PEMROGRAMAN TERSTRUKTUR C++ CHERIA LOUPATTY MANAJEMEN INFORMATIKA STMIK / AMIK PARNA RAYA MANADO.
Prosedur dan Fungsi Triana Elizabeth, S.Kom.
FUNGSI.
Pemrograman Terstruktur
Informatique Engineering Ahmad Dahlan University May 17, 2004
FUNGSI (Method) Bag.1 Pertemuan 18 Dasar Pemrograman
Pointer FARID WAJDI YUSUF.
ALGORITMA DAN PEMROGRAMAN II
As’ad Djamalilleil Array (Larik) As’ad Djamalilleil
Operator dan Operasi Input Output pada C++ Pertemuan 11
Algoritma dan Struktur Data
Pemograman Berorientasi Object Sistem Informasi Semster III
Algoritme dan Pemrograman
Teknik Pemrog. Terstuktur 2
PERTEMUAN V F U N G S I Tujuan membuat suatu fungsi
Teknik Pemrog. Terstruktur 2
Transcript presentasi:

Pointer Memory Dinamic

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

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 <iostream.h> 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 <<n; return 0; } Output : 8 Memory Dinamic

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 atau pointer = 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.   }; Memory Dinamic

Operator delete digunakan untuk mengatasi masalah ini, 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; atau delete [ ] 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)); Memory Dinamic

FUNGSI calloc FUNGSI realloc 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. Memory Dinamic

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"; } Memory Dinamic

POINTER PADA STRUCTURE 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; Memory Dinamic

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 Memory Dinamic

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 Memory Dinamic