POINTER. Pemrograman Bahasa C++

dokumen-dokumen yang mirip
BAB VIII POINTER. Tujuan :

xxxx alamat Praktikum 11 POINTER

MAKALAH POINTER PADA BAHASA C

DIKTAT MATA KULIAH PEMROGRAMAN I BAB XI POINTER

main() { int y, x = 87; /* x & y bertipe int */ int *px; /* var pointer yg menunjuk ke data yang bertipe int */

PRAKTIKUM 11 POINTER 1

pada program di atas, akan ditampilkan alamat memori dari variabel x, bukan nilai x.

void naikkan_nilai (int *x, int *y) { *x = *x + 2; *y = *y + 2; }

PRAKTIKUM 11 POINTER 1

PRAKTIKUM 12 POINTER 2

Achmad Solichin.

POINTER DASAR PEMROGRAMAN

A. TUJUAN 1. Menjelaskan tentang konsep dari variabel pointer. zzzz. Address. Gambar 8.1 Variabel pointer px menunjuk ke variabel x

MENGAKSES ELEMEN STRUKTUR

PRAKTIKUM 12 POINTER 2

8. Pointer. S. Indriani L, M.T

Pointer 1 A. TUJUAN PEMBELAJARAN

BAB 10 POINTER 5.1 Tujuan 5.2 Pengertian Pointer Perubah dinamis pointer

POINTER I. Oleh : Mike Yuliana PENS-ITS

Konsep Pemrograman. Bab 13. Pointer 3. Konsep Pemrograman Politeknik Elektronika Negeri Surabaya 2006 PENS-ITS. Umi Sa adah

MENGENAL POINTER. Mengetahui Alamat variabel. Output :

1. Tipe Data Sederhana Hanya dimungkinkan untuk menyimpan sebuah nilai data dalam sebuah variabel Ada 5 macam : int, float, double, char, boolen

Pointer 2 A. TUJUAN PEMBELAJARAN. 1. Memahami tentang Pointer to Array 2. Memahami tentang Pointer to String

POINTER. Praktikum 10 (3/5) A. TUJUAN 1. Menjelaskan tentang Pointer to Array 2. Menjelaskan tentang Pointer to String

Konsep Pemrograman. Bab 11. Pointer 1. Konsep Pemrograman Politeknik Elektronika Negeri Surabaya 2006 PENS-ITS. Umi Sa adah

Praktikum 1. Suatu array berdimensi satu dideklarasikan dalam bentuk umum berupa : tipe_data nama_var[ukuran];

ARRAY PENGANTAR PROGRAM STUDI. Institut Teknologi Sumatera

ALGORITMA DAN PEMROGRAMAN 2. 3 SKS By : Sri Rezeki Candra Nursari

MODUL. Pointer. Modul Praktikum C++ Dasar Pemrograman Komputer JURUSAN TEKNIK ELEKTRO FAKULTAS TEKNIK

PERTEMUAN VI POINTER 6.1 Tujuan Praktikum 6.2 Teori Penunjang Pointer

Pointer (Part 1) Alamat dan Pointer. Dadang mulyana. sederhana.

Pertemuan 7. REVIEW dan QUIS

Algoritma dan Pemrograman Lanjut. Pertemuan Ke-10 Pointer 1

FUNGSI. tipe Tipe nilai yang dihasilkan oleh fungsi. Jika tidak dinyatakan, hasil fungsi dianggap bilangan bulat (int)

MODUL V POINTER DAN STRING

Algoritma dan Struktur Data Praktikum 3. Pointer

FUNGSI & PROSEDUR. Pertemuan ke-12 dan 13

FUNGSI II. Variabel Statis. Sifat variabel statis: Sintaks: static tipe_data nama_variabel; Contoh: static int angka;

Pointer. Yuliana Setiowati

Pengenalan Array. Array Satu Dimensi

REVIEW ARRAY. Institut Teknologi Sumatera

Identifier dan Tipe Data

MODUL V PERULANGAN. Perulangan digunakan untuk menjalankan satu atau lebih perintah secara berulang selama kondisi tertentu.

PERTEMUAN V PEMROGRAMAN TERSTRUKTUR DENGAN VISUAL C Setiap bahasa C mempunyai satu fungsi dengan nama main (program utama).

ARRAY DIMENSI 1 & 2. Array dapat didefinisikan sebagai suatu himpunan hingga elemen yang terurut dan homogen.

Konsep Pemrograman. Bab 12. Pointer 2. Konsep Pemrograman Politeknik Elektronika Negeri Surabaya 2006 PENS-ITS. Umi Sa adah

LATIHAN SOAL (FUNGSI & PROSEDUR)

Komentar, Identifier, Konstanta dan Variabel

MATERI/BAHAN PRAKTIKUM PENDAHULUAN DAN PENGENALAN (IDENTIFIER)

OPERATOR, PERULANGAN DAN SELEKSI KONDISI

INF-103 Pemrograman II VECTOR & STRING. Dr. Taufik Fuadi Abidin, M.Tech Irvanizam Zamanhuri, M.Sc. Program Studi Informatika FMIPA UNIVERSITAS KUALA

int fungsi_2() { int main() { fungsi_1(); fungsi_2(); return 0;

P3 Dasar Struktur Data TIF42/SIF42

SUB PROGRAM (FUNGSI)

Pertemuan 2 ARRAY DIMENSI 1 & 2

Tipe Data dan Operator

DISUSUN OLEH BAB XI POINTER. alamat. memori. sepenuhnya. pointer. dan Pointer. menggunakan. menyebabkan. Alamat. untuk.

Struktur Data adalah : suatu koleksi atau kelompok data yang dapat dikarakteristikan oleh organisasi serta operasi yang didefinisikan terhadapnya.

PERTEMUAN 7 REVIEW (QUIZ)

Array ARRAY BERDIMENSI SATU. Representasi (Pemetaan) di memori. Lihat gambar dibawah ini, nilai data A (18) dismpan mulai dari alamat 1136 di memori.

ALGORITMA DAN STRUKTUR DATA POINTER DAN FUNCTION

PEMROGRAMAN BERORIENTASI OBJEK

DASAR STRING. Sama halnya seperti array-array sebelumnya, inisialisasi pada string adalah: char mystring[] = { 'H', 'e', 'l', 'l', 'o', '\0' };

BAB XI ARRAY (LARIK)

Pointer. Objektif. Bahan Bacaan

Algoritma Pemrograman & Struktur Data

SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER STMIK AMIKOM YOGYAKARTA

E STRUKTUR DATA & E PRAKTIK STRUKTUR DATA. Pointer & Function. Alfa Faridh Suni, S.T., M.T. PTIK

PERTEMUAN II Tipe Data, Variabel, Konstanta, Operator

Tabel Informasi. Hal di atas dapat dilakukan dengan menambah dan mengambil atribut identifier yang digunakan pada program, melalui tabel informasi.

Larik/ Array int a1, a2, a3, a4, a5;

VARIABEL & TIPE DATA PEMROGRAMAN C++

SOAL C++ Created by Yuli Astuti,S.Kom Copyright 2009

Pengenalan C++ Oleh : Dewi Sartika

Pertemuan 2 ARRAY DIMENSI 1 & 2

PERTEMUAN 3 KONSEP TIPE DATA

BAB 5 PERULANGAN DAN ARRAY

Algoritma dan Pemrograman Lanjut. Pertemuan Ke-11 Pointer 2

Kurikulum Qt. Chapter 5 Pointer dan References. Agenda. Apa itu Pointer? Memory Komputer. Mengambil Alamat Memory dari Variabel

PERULANGAN (LOOP) PERNYATAAN WHILE

01. Review Array, Pointer dan Struktur

PENGENALAN BAHASA C. A. Struktur Kode Program dalam Bahasa C Secara garis besar, suatu kode program dalam bahasa C memiliki struktur umum seperti ini:

ALGORITMA DAN PEMROGRAMAN 2. 3 SKS By : Sri Rezeki Candra Nursari

ELEMEN DASAR C++ C++ mempunyai cara untuk menyatakan karakter-karakter yang tidak mempunyai kode tombol (seperti karakter tombol) misalnya \n.

P 4 Bab 3 : Dasar Pemrograman C

INPUT OUTPUT. cout. Digunakan untuk mencetak suatu informasi ke layar Contoh : cout << Halo Teknik Informatika

BAB III POINTER. Type *variabel-name

UJIAN TENGAH SEMESTER KU1072/PENGENALAN TEKNOLOGI INFORMASI B SEM /2014

ARRAY / LARIK. Oleh : Agus Priyanto, M.Kom SEKOLAH TINGGI TEKNOLOGI TELEMATIKA TELKOM. Smart, Trustworthy, And Teamwork

LARIK (ARRAY) Latar Belakang Array

Algoritma Pemrograman. Fery Updi,M.Kom

ilmu bahasa pemrograman ilmu c++ Copyright izie ilmu c++

BAB I. LARIK (ARRAY) Array (larik) ialah penampung sejumlah data sejenis (homogen) yang menggunakan satu identifier (pengenal).

Konsep Dasar Pemrograman Dan Pengenalan C++

OPERATOR BAHASA C. Obyektif : 4. Mengetahui macam-macam operator dalam Bahasa C. 5. Mengetahui dan dapat menggunakan format pada tiap tipe data..

PROCEDURE DAN FUNCTION

Struktur Bahasa C dan C++

LAPORAN PRAKTIKUM ALGORITMA DAN PEMROGRAMAN ( Implementasi Rekursi Pada Java)

MODUL DUA VARIABEL DAN TIPE VARIABEL

SUB PROGRAM P E N G A N TA R P R O G R A M S T U D I. Institut Teknologi Sumatera

Transkripsi:

1 POINTER Setiap byte di dalam memori komputer memiliki sebuah alamat. Alamat memori dimulai dari 0. Pada komputer yang memiliki memori 640Kb, alamat memori tertinggi yaitu 655.359. Didalam memori inilah variabel disimpan. Tetapi tentu saja pemogram tidak perlu menyebutkan alamat dari suat variabel secara eksplisit. Pada saat program dimuat di dalam memori, variabel akan diletakkan dengan sendirinya pada alamat tertentu. Pointer banyak dilibatkan dalam program C++, misalnya untuk melewatkan string dari suatu fungsi ke fungsi yang lain. Penerapan pointer yang paling umum yaitu untuk menciptakan variabel dinamis yang memungkinkan untuk memakai memori bebas (memori yang belum dipakai) selama eksekusi program. Variabel pointer sering dikatakan sebagai variabel yang menunjuk ke obyek lain. Pada kenyataan yang sebenarnya, variabel pointer berisi alamat dari suatu objek lain yaitu objek yang dikatakan ditunjuk oleh pointer. Sebagai contoh, px adalah pointer dan x adalah variabel yang ditunjuk oleh px. Jika px berada pada alamat memori (alamat awal) 1000, maka px akan berisi 1000. Agar suatu pointer menunjuk ke variabel lain, mula-mula pointer harus diisi dengan alamat dari variabel yang akan ditunjuk. Untuk menyatakan alamat dari suatu variabel, operator & (operator alamat, yang bersifat unary) bisa digunakan dengan cara menempatkan operator di depan nama variabel. int alpha=11; int beta=22; int charlie=33; cout <<"Isi variabel :" <<endl; cout <<"alpha = " <<alpha <<endl; cout <<"beta = " <<beta <<endl; cout <<"charlie = " <<charlie <<endl; cout <<"Alamat variabel :" <<endl; cout <<"alpha = " <<&alpha <<endl; cout <<"beta = " <<&beta <<endl; cout <<"charlie = " <<&charlie <<endl;

2 Suatu variabel pointer dideklarasikan dengan bentuk : tipe_data *nama_variabel; tipe_data berupa sembarang tipe nama_variabel adalah nama dari variabel pointer. Jika suatu variabel sudah ditunjuk pointer, variabel tersebut dapat diakses melalui variabel itu sendiri (dikatakan sebagai pengaksesan langsung) ataupun melalui pointer (dikatakan sebagai pengaksesan tidak langsung). Pengaksesan tak langsung dilakukan dengan menggunakan operator indirection berupa simbol * (bersifat unary). int x, y; int *px; // px adalah pointer yang menunjuk objek bertipe int x=44; px=&x; y=*px; cout <<"Nilai x = " <<x <<endl; cout <<"Nilai &x = " <<&x <<endl; cout <<"Nilai px=&x adalah " <<px <<endl; cout <<"Isi *px = " <<*px <<endl; cout <<"Nilai y=*px adalah " <<y;

3 Antara tipe pointer dan tipe objek yang akan ditunjuk oleh pointer haruslah sejenis. /* Pemakaian pointer yang salah */ float *pu; float nu; int u = 1234; pu=&u; //pernyataan ini salah karena tipe pu dan u berbeda nu = *pu; cout <<"Nilai u = " <<u <<endl; cout <<"Nilai nu = " <<nu; Program di bawah ini memberikan gambaran tentang pengubahan isi suatu variabel secara tak langsung. float d, *pd; d=54.5; cout <<"Isi d semula = " <<d <<endl; pd=&d; *pd = *pd + 10; // identik dengan d = d + 10 cout <<"Isi d kini = " <<d; POINTER dan ARRAY Hubungan antara pointer dan array pada C++ sangatlah erat, sebab sesunguhnya array secara internal akan diterjemahkan dalam bentuk pointer. static int tgl_lahir[]=24, 12, 1970; int i, *ptgl;

4 ptgl = tgl_lahir; // ptgl berisi alamat array for (i=0; i<3; i++) cout <<"Elemen subscript ke-" <<i <<" adalah " <<*(ptgl+i) <<endl; POINTER dan STRING Program di bawah ini menggambarkan pertukaran dua string yang dilakukan melalui pertukaran isi array melalui pointer. Perhatikan bahwa dengan pointer, penyalinan isi arrray tidak perlu dilakukan. Sebagai efeknya bisa menghemat waktu eksekusi. char *nama1 = "CAT WOMAN"; char *nama2 = "BATMAN"; char *namax; cout <<"Kata Semula :" <<endl; cout <<"Nama-1 = " <<nama1 <<endl; cout <<"Nama-2 = " <<nama2 <<endl; namax=nama1; /* penukaran string dengan pointer */ nama1=nama2; nama2=namax; cout <<"Setelah ditukar :" <<endl; cout <<"Nama-1 = " <<nama1 <<endl; cout <<"Nama-2 = " <<nama2;

5 POINTER MENUNJUK POINTER Suatu pointer bisa saja menunjuk ke pointer lain. Definisi untuk membentuk rantai pointer adalah sebagai berikut : int x; int *px1; int **px2; dimana: x adalah variabel bertipe int px1 adalah variabel pointer yang menunjuk ke x px2 adalah variabel pointer yang menunjuk ke pointer px1 dengan menggunakan dua tanda * Agar px1 menunjuk ke variabel x digunakan perintah : px1 = &x; Agar px2 menunjuk ke px1 digunakan perintah : px2=&px1; int x = 44; int *px1; int **px2; px1=&x; px2=&px1; cout <<"Nilai x=44" <<endl; cout <<"Nilai &x = " <<&x <<endl; cout <<"Nilai &px1 = " <<&px1 <<endl; cout <<"Nilai *px1 = " <<*px1 <<endl; cout <<"Nilai **px2 adalah : " <<**px2 <<endl; POINTER dan FUNGSI Pointer dan kaitannya dengan fungsi meliputi : Pointer sebagai parameter fungsi Penerapan pointer sebagai parameter yaitu jika diinginkan agar nilai suatu variabel internal dapat diubah oleh fungsi yang dipanggil. void rubah(int *x, int *y);

6 int a=3; int b=7; cout <<"Nilai semula : " <<endl; cout <<"a = " <<a <<endl; cout <<"b = " <<b <<endl; rubah(&a,&b); cout <<"Nilai setelah fungsi : " <<endl; cout <<"a = " <<a <<endl; cout <<"b = " <<b <<endl; void rubah(int *x, int *y) *x = *x + 2; *y = *y + 2; Pointer sebagai keluaran fungsi Suatu fungsi dapat dibuat agar keluarannya berupa pointer. Misalnya suatu fungsi menghasilkan keluaran berupa pointer yang menunjuk ke string. char *nama_bulan(int n); int bl; char lagi; do cout <<"Masukkan Kode Bulan [1..12] : "; cin >> bl; cout <<"Kode bulan : " <<bl <<", nama bulan = " <<nama_bulan(bl) <<endl; cout <<"Input lagi [y/t] : "; lagi=getch(); while (lagi == 'y' lagi == 'Y');

7 char *nama_bulan(int n) static char *bulan[] = "Kode bulan salah", "Januari", "Februari", "Maret", "April", "Mei", "Juni", "Juli", "Agustus", "September", "Oktober", "November", "Desember" ; return ((n<1 n>12)? bulan[0] : bulan[n]); LATIHAN 1. Buat program dengan menggunakan pointer sehingga menghasilkan keluaran sebagai berikut : D ND AND LAND RLAND ORLAND BORLAND