Algoritma dan Pemrograman 2 POINTER. Pointer : variable yang berisi alamat memori dari suatu variable yang berisi suatu nilai tertentu.

dokumen-dokumen yang mirip
pada program di atas, akan ditampilkan alamat memori dari variabel x, bukan nilai x.

PRAKTIKUM 11 POINTER 1

MENGENAL POINTER. Mengetahui Alamat variabel. Output :

PRAKTIKUM 11 POINTER 1

DIKTAT MATA KULIAH PEMROGRAMAN I BAB XI POINTER

BAB 10 POINTER 5.1 Tujuan 5.2 Pengertian Pointer Perubah dinamis pointer

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

Achmad Solichin.

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

PERTEMUAN VI POINTER 6.1 Tujuan Praktikum 6.2 Teori Penunjang Pointer

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

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

POINTER I. Oleh : Mike Yuliana PENS-ITS

Identifier dan Tipe Data

Pertemuan 2 ARRAY DIMENSI 1 & 2

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

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

Pert 2 Struktur Data (mengajarkomputer.wordpress.com) ARRAY DIMENSI 1 & 2

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

POINTER. Pemrograman Bahasa C++

BAB 5 PERULANGAN DAN ARRAY

Modul Praktikum Algoritma dan Struktur Data

P3 Dasar Struktur Data TIF42/SIF42

MODUL V POINTER DAN STRING

Konsep Array dalam PBO

Cara pertama adalah pada saat deklarasi variabel ditambahkan ke- yword const sebelum nama tipe data seperti

Pengenalan C++ Oleh : Dewi Sartika

VARIABEL & TIPE DATA PEMROGRAMAN C++

Algoritma dan Struktur Data Praktikum 3. Pointer

IT234 - Algoritma dan Struktur Data. Ramos Somya

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

Achmad Solichin.

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

Tipe Data dan Operator

xxxx alamat Praktikum 11 POINTER

BAB XI ARRAY (LARIK)

Algoritma dan Pemrograman Lanjut. Pertemuan Ke-10 Pointer 1

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

elemen Dasar Bahasa Pemrograman C

BAB IV LARIK DAN PENUNJUK

LARIK (ARRAY) Latar Belakang Array

POINTER DASAR PEMROGRAMAN

Algoritma dan Pemrograman Lanjut. Pertemuan Ke-11 Pointer 2

Struktur Bahasa C dan C++

Tipe data dasar merupakan tipe data yang disediakan oleh kompailer, sehingga dapat langsung dipakai Dalam algoritma dan pemrograman yang termasuk dala

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

BAB VIII POINTER. Tujuan :

Kuliah III - Dasar Pemrograman

Pertemuan 7. REVIEW dan QUIS

Pengenalan Struktur Data dan Algoritma

01. Review Array, Pointer dan Struktur

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

IT234 - Algoritma dan Struktur Data. Ramos Somya

Pertemuan 2 ARRAY DIMENSI 1 & 2

PENGAKSESAN BERKAS (FILE) DALAM C

PEMROGRAMAN BERORIENTASI OBJEK

Konsep Dasar Pemrograman Dan Pengenalan C++

Array 1 A. TUJUAN PEMBELAJARAN

IT234 - Algoritma dan Struktur Data. Ramos Somya

PRAKTIKUM 9 ARRAY. ARRAY BERDIMENSI SATU Suatu array berdimensi satu dideklarasikan dalam bentuk umum berupa :

JENIS DATA SEDERHANA & INPUT/OUTPUT DATA

Algoritme dan Pemrograman

Algoritma Pemrograman. Fery Updi,M.Kom

MATERI/BAHAN PRAKTIKUM PENDAHULUAN DAN PENGENALAN (IDENTIFIER)

Komentar, Identifier, Konstanta dan Variabel

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

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

Algoritma & Pemrograman #10

Algoritma dan Pemrograman Lanjut. Pertemuan Ke-2 Array (Larik)

DASAR PEMROGRAMAN. Institut Teknologi Sumatera

PERTEMUAN II Tipe Data, Variabel, Konstanta, Operator

PSEUDOCODE TIPE DATA, VARIABEL, DAN OPERATOR

PRAKTIKUM 2. perubah (variabel), konstanta, fungsi, atau obyek lain yang didefinisikan oleh

REVIEW ARRAY. Institut Teknologi Sumatera

Algoritma Pemrograman & Struktur Data

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

BAB VIII SUB PROGRAM : Fungsi Tanpa Pengembalian Nilai

OPERASI FILE DASAR PEMROGRAMAN

Bab 9 Pointer. 9.1 Pendeklarasian pointer

STMIK AMIKOM YOGYAKARTA. Kusnawi, S.Kom, M.Eng

Dasar Pemrograman. Kondisi dan Perulangan. By : Hendri Sopryadi, S.Kom, M.T.I

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

MAKALAH POINTER PADA BAHASA C

A R R A Y. Bentuk umum deklarasi array : type nama_array[ukuran] tipe : menyatakan tipe dasar array ukuran : menyatakan banyaknya elemen pada array

SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER STMIK AMIKOM YOGYAKARTA

Struktur Dasar Bahasa C Tipe Data Dalam bahasa C terdapat lima tipe data dasar, yaitu :

Pointer (Penunjuk) Modul 6

Pointer. Yuliana Setiowati

Makalah. STRUKTUR DATA ( Array )

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

MODUL DUA VARIABEL DAN TIPE VARIABEL

Bahasa C-M6 By Jamilah, Skom 1

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

Part 2 - Algoritma & Pemrograman Konsep dasar Pemrograman

Algoritme dan Pemrograman

Praktikum 11 (1/3) Struktur

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA LABSHEET ALGORITMA DAN STRUKTUR DATA

Identifier Tipe Data Yoannita, S.Kom.

Turbo C adalah tool yang dipakai untuk membuat code program dalam bahasa C ataupun C++. Berikut adalah jendela utama Turbo C

Pendahuluan Struktur Data. Nisa ul Hafidhoh

Transkripsi:

Algoritma dan Pemrograman 2 POINTER Pointer : variable yang berisi alamat memori dari suatu variable yang berisi suatu nilai tertentu. pusia merupakan variabel pointer (pointer) yang menunjuk ke variabel Usia. Isi dari pusia (FFAB0000) merupakan alamat dari variabel Usia. Variabel usia berisi nilai 37. 1. Deklarasi variabel pointer Bentuk deklarasi variabel pointer : tipe_data* namavariabel contoh : int* pnilai; Agar pointer menunjuk ke suatu variabel maka perlu diisi dengan alamat dari variabel yang bersangkutan. Contoh : int Usia; int * pusia; pusia = &Usia; tanda * menunjukkan bahwa variabel dideklarasikan sebagai pointer. pusia menunjuk ke sebuah obyek(usia) yang memiliki tipe integer. & : operator alamat, merupakan operator unary yang mengembalikan alamat dari operand.

Algoritma dan Pemrograman 3 int A=25,*pA; pa=&a; cout<<"a = "<<A<<endl; cout<<"pa = "<<pa<<endl; cout<<"&a = "<<&A<<endl; cout<<"&pa = "<<&pa<<endl; cout<<"*pa = "<<*pa<<endl; *pa=100; cout<<"*pa = "<<*pa<<endl; Hasilnya : A = 25 pa = 0x0012FF7C &A = 0x0012FF7C &pa = 0x0012FF78 *pa = 25 *pa = 100 2. Pointer dan array 1D Pointer dapat digunakan untuk menunjuk ke array dan selanjutnya pointer dapat dipakai untuk mengakses elemen-elemen array. Contoh : int *ptgl, tgllahir[]=24,6,65; ptgl = &tgllahir; atau ptgl = tgllahir; atau ptgl = &ptgl[0]; ptgl = &tgllahir[2]; berarti ptgl menunjuk ke elemen tgllahir dengan subskript/indek 2

Algoritma dan Pemrograman 4 int *ptgl, *ptgl2,tgllahir[]=24,6,65; ptgl=tgllahir;ptgl2=&tgllahir[1]; //Menampilkan isi array dengan pointer for(int i=1;i<=3;i++) cout<<*ptgl<<endl; ptgl++; cout<<*ptgl2<<endl; cout<<*(ptgl2+1)<<endl; Hasilnya : (1) (2) (3) (4) int *P; int A[5]=2,1,7,0,5; P=A; cout<<*p<<endl;p++; cout<<*p<<endl; int *P; int A[5]=2,1,7,0,5; P=A; cout<<*p++<<endl; cout<<*p<<endl; 24 6 65 6 65 int *P; int A[5]=2,1,7,0,5; P=A; cout<<*++p<<endl; cout<<*p<<endl; int *P; int A[5]=2,1,7,0,5; P=A; cout<<++*p<<endl; cout<<*p<<endl;

Algoritma dan Pemrograman 5 Penjelasan (1) : Pernyataan P=A menyebabkan pointer P menunjuk ke elemen A[0], sehingga pernyataan cout<<*p<<endl mencetak angka 2. Pernyataan P++ menyebabkan pointer P maju 1 langkah menunjuk ke elemen A[1]. Pernyataan cout<<*p<<endl mencetak isi elemen yang sedang ditunjuk oleh P, sehingga tercetak angka 1. Penjelasan (2) : Pernyataan cout<<*p++<<endl mencetak isi elemen yang sedang ditunjuk oleh P, sehingga tercetak angka 2, setelah itu pointer maju satu langkah menunjuk ke A[1] Pernyataan cout<<*p<<endl mencetak isi elemen yang sedang ditunjuk oleh P, sehingga tercetak angka 1. Penjelasan (3) : Pernyataan cout<<*++p<<endl menyebabkan pointer maju satu langkah ke A[1] kemudian mencetak isi array yg sedang ditunjukknya yaitu angka 1. Pernyataan cout<<*p<<endl mencetak isi elemen yang sedang ditunjuk oleh P, sehingga tercetak angka 1 Penjelasan (4) : Elemen yang sedang ditunjuk oleh P adalah A[0] yang isinya 2. Pernyataan cout<<++*p<<endl akan menambah isi elemen A[0] dengan 1 sehingga isinya menjadi 3, kemudian mencetak isi elemennya yaitu angka 3. Pernyataan cout<<*p<<endl mencetak isi elemen yang sedang ditunjuk oleh P, sehingga tercetak angka 3 Posisi awal pointer P : Tentukan posisi P dan isi elemen untuk contoh (2), (3), (4).

Algoritma dan Pemrograman 6 3. Pointer dan array 2D char A[3][5]= 'A','B','C','D','E', 'F','G','H','I','J', 'K','L','M','N','O'; char *P; P=&A[0][0]; cout<<*p<<endl; Dengan perintah char A[3][5] terbentuk array 2D sbb: 0 1 2 3 4 0 A B C D E 1 F G H I J 2 K L M N O Dalam memori komputer akan tersusun sbb : 0,0 0,1 0,2 0,3 0,4 1,0 1,1 1,2 1,3 1,4 2,0 2,1 2,2 2,3 2,4 A B C D E F G H I J K L M N O baris-0 baris-1 baris-2 0,0 artinya A[0][0] Pernyataan P=&A[0][0], menyebabkan pointer menunjuk ke array elemen pertama : 0,0 0,1 0,2 0,3 0,4 1,0 1,1 1,2 1,3 1,4 2,0 2,1 2,2 2,3 2,4 A B C D E F G H I J K L M N O P Instruksi P=&A[0][0], dapat juga ditulis dalam bentuk P=A[0] Array 2D 3 x 5 dianggap sebagai kumpulan array 1D, A[0],A[1], dan A[2], masing-masing 5 elemen. Dengan pernyataan P=A[1] pointer P akan menunjuk ke baris kedua yaitu A[1][0] Pernyataan cout<<*p akan mencetak isi elemen yang ditunjuk oleh pointer P yaitu A[0][0].

Algoritma dan Pemrograman 7 #include<iomanip.h> char A[3][5]= 'A','B','C','D','E', 'F','G','H','I','J', 'K','L','M','N','O'; char *P; P=A[0]; for(int i=0;i<=14;i++) cout<<setw(2)<<*p++; cout<<endl; Outputnya : A B C D E F G H I J K L M N O #include<iomanip.h> char A[3][5]= 'A','B','C','D','E', 'F','G','H','I','J', 'K','L','M','N','O'; char *P; for(int i=0;i<=2;i++) P=A[i]; for(int j=0;j<=4;j++) cout<<setw(2)<<*p++; cout<<endl; Outputnya : A B C D E F G H I J K L M N O

Algoritma dan Pemrograman 8 4. Pointer dan String #include<iomanip.h> char kalimat[]="selamat Belajar Visual C++"; char *pkarakter; int JumlahHurupKecil=0; int JumlahHurupBesar=0; pkarakter=kalimat; while(*pkarakter) char kar=*pkarakter; if(kar>='a' && kar<='z') JumlahHurupKecil++; if(kar>='a' && kar<='z') JumlahHurupBesar++; pkarakter++; cout<<"jumlah Hurup Kecil = "<<JumlahHurupKecil<<endl; cout<<"jumlah Hurup Kapital = "<<JumlahHurupBesar<<endl; Outputnya : Jumlah Hurup Kecil = 17 Jumlah Hurup Kapital = 4

Algoritma dan Pemrograman 9 5. Array dari pointer Array dapat berisi pointer. Deklarasinya dapat dilakukan : char *Baju[4]= Renang, Sekolah, Kerja, Pesta ; Baju[4] menunjukkan deklarasi sebuah array yang terdiri dari 4 elemen. Bagian char * menunjukkan bahwa tiap-tiap elemen dari array Baju berupa pointer terhadap char. #include<stdio.h> #define JML_MHS 10 //Banyaknya Mahasiswa #define JML_MK 5 //Jumlah mata Kuliah int i,k; int *pnilaimhs[jml_mhs],nilai[jml_mhs][jml_mk]; FILE *pf; for(i=0;i<=jml_mhs-1;i++) pnilaimhs[i]=nilai[i]; if((pf=fopen("d:\\kampus\\program\\c++\\array3\\data.txt","r"))==null)

Algoritma dan Pemrograman 10 printf("file tidak dapat dibuka\n"); else for(i=0;i<jml_mhs;i++) for(k=0;k<jml_mk;k++) fscanf(pf,"%d",&nilai[i][k]); for(i=0;i<jml_mhs;i++) for(k=0;k<jml_mk;k++) printf("%d ",*pnilaimhs[i]++); printf("\n"); fclose(pf);

Algoritma dan Pemrograman 11 Data yang tersimpan dalam file data.txt : 00 10 20 30 40 01 11 21 31 41 02 12 22 32 42 03 13 23 33 43 04 14 24 34 44 05 15 25 35 45 06 16 26 36 46 07 17 27 37 47 08 18 28 38 48 09 19 29 39 49 Hasilnya : 00 10 20 30 40 01 11 21 31 41 02 12 22 32 42 03 13 23 33 43 04 14 24 34 44 05 15 25 35 45 06 16 26 36 46 07 17 27 37 47 08 18 28 38 48 09 19 29 39 49 6. Pointer menunjuk ke pointer Untuk membentuk hubungan seperti disamping diperlukan pendeklarasian : int *pb; int **pa; int nilaix; pa adalah pointer yang menunjuk ke tipe pointer pb adalah pointer yang menunjuk ke tipe int nilaix adalah variabel bertipe int Agar pointer pb menunjuk ke variabel nilaix : pb=&nilaix Agar pa menunjuk ke pointer pb : pa=&pb

Algoritma dan Pemrograman 12 int *pb; int **pa; int nilaix=100; pb=&nilaix; pa=&pb; cout<< Isi nilaix via pb = <<*pb<<endl; cout<< Isi nilaix via pa = <<**pa<<endl; Hasilnya : Isi nilaix via pb = 100 Isi nilaix via pa = 100 7. Pengalokasian memori secara dinamis Dengan menggunakan pointer dapat dilakukan pengalokasian memori secara dinamis, yaitu pointer menunjuk ke lokasi memori yang diciptakan ketika program sedang berjalan. Memori yang dialokasikan dapat dihapus kembali (dealokasi memori) kalau sudah diperlukan lagi. Lokasi memori tersebut dikenal dengan nama heap. Operator yang digunakan untuk alokasi memori : new Operator yang digunakan untuk dealokasi memori : delete Contoh : int *pint; pint= new int;

Algoritma dan Pemrograman 13 Setelah int *pint dieksekusi Setelah pint=new int dieksekusi #include<iomanip.h> const int KOLOM=2;int(*pDuaDim)[KOLOM]; pduadim=new int[3][kolom]; pduadim[0][0]=10; pduadim[0][1]=20; pduadim[1][0]=30; pduadim[1][1]=40; pduadim[2][0]=50; pduadim[2][1]=60; for(int i=0;i<=2;i++) for(int j=0;j<=kolom-1;j++) cout<<setw(3)<<pduadim[i][j]; cout<<endl; delete []pduadim; Hasilnya : 10 20 30 40 50 60 int(*pduadim)[kolom] digunakan untuk mendeklarasikan pointer yang menunjuk ke array berdimensi dua. pduadim=new int[3][kolom] digunakan untuk mengalokasikan array berdimensi dua, yang mengandung 3 buah baris dan 2 kolom.

Algoritma dan Pemrograman 14 8. Referensi Referensi merupakan jenis pointer khusus yang memungkinkan suatu pointer diperlakukan seperti variabel biasa. Referensi digunakan untuk memberikan nama alias suatu variabel : Contoh : int &ref=namavariabel; int nilaix=100; int &refx=nilaix; cout<<"nilaix = "<<refx<<endl; refx=200; cout<<"nilaix = "<<refx<<endl; refx++; cout<<"nilaix = "<<refx<<endl; Hasilnya: nilaix=100 nilaix=200 nilaix=201

Algoritma dan Pemrograman 15 Soal : (Gunakan pointer untuk mengakses array) 1. Buatlah program untuk menghitung dan mencetak nilai rata-rata, nilai tertinggi, dan nilai terendah dari sekelompok bilangan bulat positip (integer). Jumlah data tidak diketahui, dimasukan melalui keyboard. 2. Buatlah program untuk menghitung dan mencetak IP seorang mahasiswa dengan rincian sbb : No Mata Kuliah Nilai SKS 1 Kalkulus 4 2 Fisika Dasar 3 3 PTI 2 4 Sistim Digital 2 5 PSO 2 6 Logika Matematika 2 7 Bahasa Inggris 2 8 Agama 2 Bobot Nilai : A = 4 B = 3 C = 2 D = 1 E = 0