Bab 9 Pointer. 9.1 Pendeklarasian pointer

dokumen-dokumen yang mirip
1. Mempelajari konsep dasar array, array ganda, pengiriman array ke fungsi dan string 2. Membuat program menggunakan array, array ganda

12/29/2011 ILKOM IPB 1. Algoritme dan Pemrograman. Address and Pointers. Pointer

Algoritme dan Pemrograman

a[0] a[1] a[2] a[3] a[4] a[5] x

Algoritme dan Pemrograman

Algoritme dan Pemrograman

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

Array 1 A. TUJUAN PEMBELAJARAN

PRAKTIKUM 11 POINTER 1

Kuliah III - Dasar Pemrograman

Laporan Praktikum TMD02 Algoritma dan Struktur Data dengan C. Coding 1. NIM/ No. Reg. : : Mhd. Syarif : : Blog

PRAKTIKUM 11 POINTER 1

Seluruh elemen di dalam struktur array mempunyai tipe data yang sama. Random Access

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

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

PERTEMUAN VI POINTER 6.1 Tujuan Praktikum 6.2 Teori Penunjang Pointer

ALGORITMA DAN STRUKTUR DATA POINTER DAN FUNCTION

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

Array merupakan sekumpulan variable dengan tipe yang sama. Elemen dalam array diakses dengan menggunakan indeks-nya.

ARRAY. Karakteristik

ALGORITMA & PEMROGRAMAN II ARRAY

Bahasa C melengkapi fasilitas modular dengan menggunakan fungsi pada setiap SubProgram. Contoh pembagian program menjadi beberapa subprogram.

Algoritma dan Struktur Data. Ramos Somya, S.Kom., M.Cs.

Algoritma dan Pemrograman. Loop control structures: WHILE. Loop control structures: WHILE Perhatikan potongan program berikut: 12/29/2011

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

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

Algoritme dan Pemrograman

Algoritme dan Pemrograman

KONTROL ALIR PERULANGAN

xxxx alamat Praktikum 11 POINTER

BAB VIII POINTER. Tujuan :

POINTER I. Oleh : Mike Yuliana PENS-ITS

BAB V, VI ARRAY, STRING

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

MODUL PRAKTIKUM BAHASA PEMROGRAMAN TESTRUKTUR MODUL 8 POINTER

MATERI/BAHAN PRAKTIKUM PENDAHULUAN DAN PENGENALAN (IDENTIFIER)

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

Pointer. Pointer adalah variabel yang menyimpan alamat dari variabel yang lainnya. Deklarasi pointer : datatype *ptr_name; Contoh:

UJIAN TENGAH SEMESTER GANJIL TAHUN STMIK AMIKOM YOGYAKARTA

Algoritma dan Struktur Data. Ramos Somya

BAB XI ARRAY (LARIK)

Fungsi : Dasar Fungsi

Struktur Kontrol Perulangan (Loop) Algoritme dan Pemrograman. Struktur Kontrol Perulangan: while. Struktur Kontrol Perulangan: while

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

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

BAB 5 PERULANGAN DAN ARRAY

01. Review Array, Pointer dan Struktur

String 1 A. TUJUAN PEMBELAJARAN

Pointer. Yuliana Setiowati

Pendahuluan Pemrograman Mikrokontroler

Algoritme dan Pemrograman

Pointer 1 A. TUJUAN PEMBELAJARAN

Review: Algoritme dan Program 12/29/2011. Algoritme dan Pemrograman. Review: Bagaimana memecahkan masalah dengan komputer?????

Praktikum 7. Pengurutan (Sorting) Insertion Sort, Selection Sort POKOK BAHASAN: TUJUAN BELAJAR: DASAR TEORI:

Array LOGO. Pendidikan Teknik Elektronika FT UNY. Muh. Izzuddin Mahali, M.Cs.

BAB IV LOOPING ( Pengulangan )

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

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA

MODUL ARSIKOM POINTER DAN ARRAY. Disusun oleh : Afif Setyo Nugroho ( ) Agus Setyawan ( ) Maulana Akhsan ( )

POINTER DASAR PEMROGRAMAN

elemen Dasar Bahasa Pemrograman C

DIKTAT MATA KULIAH PEMROGRAMAN I BAB XI POINTER

BAB 6 FUNGSI TUJUAN PRAKTIKUM

Praktikum Dasar Pemrograman 2014 MODUL 3: Array dan String

MODUL. Array (Larik) Modul Praktikum C++ Dasar Pemrograman Komputer JURUSAN TEKNIK ELEKTRO FAKULTAS TEKNIK

Algoritma Pemrograman. Fery Updi,M.Kom

Algoritma dan Pemrograman

Suatu konstanta string ditulis dengan diawali dan diakhiri tanda petik ganda, misalnya:

LOGIKA ALGORITMA. Pertemuan 9 By: Augury

Algoritma Pemrograman & Struktur Data

Tipe Data Dasar. Data bisa dinyatakan dalam bentuk konstanta atau variabel.

Pengumuman ALGORITME DAN PEMROGRAMAN

Modul 1 Dasar Dasar Bahasa Pemrograman C

BAB VII STRING Konstanta String Suatu konstanta string ditulis dengan diawali dan diakhiri tanda petik ganda, misalnya:

BAB 3 SEARCHING A. TUJUAN

MATRIKS. Algoritma dan Pemrograman Tahar Agastani Teknik Informatika UIN Overview

LARIK (ARRAY) Latar Belakang Array

SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER STMIK AMIKOM YOGYAKARTA

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

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA

VI. FUNGSI. Fungsi Main ( ) Fungsi a ( ) Fungsi b ( ) Fungsi c ( ) Fungsi c1 ( ) Fungsi c2 ( ) Fungsi c3 ( ) Bentuk umumnya :

PROCEDURE DAN FUNCTION

Bab 2. Dasar-Dasar Pemrograman C

TIPE DATA DAN OPERASI I/O

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

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

Algoritma dan Pemrograman Tahar Agastani Teknik Informatika UIN

PRAKTIKUM 10 STRING A B C D E \0. Gambar 11.1 Komposisi penyimpanan string dalam memori

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA

A. TUJUAN 1. Menjelaskan tentang prinsip dasar fungsi. 2. Menjelaskan tentang.parameter formal dan parameter aktual

Konsep Dasar Pemrograman Dan Pengenalan C++

Modul V Pemrograman Bahasa C ( bagian II )

BAHASA PEMROGRAMAN C LANGUAGE

A. TUJUAN 1. Memecah program dalam fungsi fungsi yang sederhana. 2. Menjelaskan tentang pemrograman terstruktur.

Praktikum 3 DASAR-DASAR PEMROGRAMAN C

Penger6an struct. Algoritme dan Pemrograman. Cara membuat struct. Deklarasi struct. Pointer pada struct 12/10/14 ILKOM IPB 1

BAB VI BAHASA C Pendahuluan

Dasar-dasar Pemrograman C DASAR PEMROGRAMAN & ALGORITMA

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

Modul Praktikum Algoritma dan Struktur Data

Transkripsi:

Bab 9 Pointer 9.1 Pendeklarasian pointer Pointer adalah variabel yang menyimpan alamat memori dari variabel yang lain. Pointer juga memiliki tipe seperti halnya variabel biasa. Pointer dideklarasikan dengan cara menuliskan tipe data dari alamat memori yang ingin disimpan dan nama pointer didahului dengan tanda bintang (*). int *p; Setelah sebuah variabel pointer dideklarasikan, kita dapat meng-assign nilai ke pointer tersebut berupa alamat memori dari variabel yang lain dengan tipe yang sesuai. Untuk mendapatkan alamat memori dari sebuah variabel, digunakan tanda apostrophe (&). int *p; int x = 5; p = &y; Pada contoh di atas, p sekarang berisi nilai alamat memori dari y. Kita dapat menampilkan nilai alamat memori ini dengan menggunakan fungsi pustaka printf() dengan format %p. printf( %p, p); Untuk mendapatkan isi dari alamat memori yang ditunjuk oleh sebuah pointer, tuliskan nama pointer didahului dengan tanda bintang (*). Tipe data yang dikembalikan akan sesuai dengan tipe data pointer yang telah dideklarasikan sebelumnya. printf( %d, *p) ; 9.2 Pointer dan Array Pointer dan array memiliki hubungan yang erat. Nama variabel dari sebuah array, apabila tidak diikuti oleh tanda indeks array ([]), ekuivalen dengan alamat memori dari elemen pertama array tersebut. int array[5]; int *x; 1

x = &array[0]; /* Ekuivalen dengan x = array */ x = array; Lebih lanjut, setiap elemen dari array tersebut dapat diakses dengan menggunakan pointer yang telah ditunjuk dengan cara menambahkan indeks yang diinginkan ke pointer. printf( %d, *(x+2)) /*Ekuivalen dengan printf( %d, array[2]);*/ Secara umum, untuk sebuah array satu dimensi A, penulisan A[n] dimana n adalah sebuah indeks, ekuivalen dengan *(A+n), sedangkan &A[n] ekuivalen dengan A+n. Untuk sebuah array ganda, pengindeksan dengan pointer harus dilakukan dengan menggunakan pointer dari pointer. Sebagai contoh, apabila A adalah sebuah array dua dimensi, maka kedua pernyataan di bawah ini adalah ekuivalen. A &A[0][0]; Pengaksesan elemen dari sebuah array ganda dengan pointer menggunakan indeks secara sekuensial yang dihitung terurut mulai elemen pertama (indeks [0][0]). Sebagai contoh, apabila A adalah sebuah array dua dimensi dengan ukuran 10x5, maka elemen A[0][5] dapat diakses dengan menggunakan *((int*) A + 5). Sedangkan elemen A[2][3] dapat diakses dengan menggunakan *((int*) A + 23). Secara umum, untuk sebuah array ganda A berukuran mxn, pengaksesan elemen A[i][j] dapat dilakukan dengan menggunakan: *((tipe data*) A + (i*m + j)) dengan asumsi j<= n. Perhatikan contoh di bawah ini: int main() { int a[2][3]; int c, i, j; c = 0; for(i=0; i<2; i++) for(j=0;j<3;j++) a[i][j] = c++; //printf("%d", c); for(i=0; i<2; i++) for(j=0;j<3;j++) printf("%d, ", *((int*)a + (3*i + j))); 2

Bab 9 Lembar Kerja Praktikum Nama : Tanggal Praktikum : NRP : Waktu Praktikum : Nilai : Nama Asisten : Penjelasan Asisten (30 menit) Asisten akan menjelaskan mengenai definisi pointer. konsep dan kegunaan pointer, hubungan pointer dan array, serta pointer sebagai argumen fungsi. Lembar Kerja Bagian I (45 menit) Tuliskan program-program berikut, simpan nama file sesuai dengan nama yang sudah ditentukan pada folder (nama folder sesuaikan dengan NRP), kemudian jawablah pertanyaan singkat terkait dengan program tersebut pada tempat yang telah disediakan. Gambarkan alokasi memori dan perubahan masing-masing variabel pada kotak di sebelah kanan program. Dilarang menggunakan getch() dan system(pause) di dalam program. Gunakan command prompt untuk melakukan kompilasi dan menjalankan program. Program 1 Program 1 Nama Program: pointer1.c Perubahan variabel int main() x { int x = 3, y = 4; y int *z; z z = &x; y = *z; x = 10; *z = 3; printf( x = %d, y = %d, x, y); Apakah output yang dicetak program di atas? Statement apa yang harus ditambahkan agar program dapat mencetak isi dari variabel z dan mencetak isi memori yang ditunjuknya? 3

Program 2 Program 2 Nama Program: pointer2.c Perubahan variabel int main() { x int a=4, b=10, *x, *y; x = &b; y *x = 20; a y = x; x = &a; b *x = a; b = *x / 2 * 4 + *y; printf("a = %d, b = %d, *x = %d, *y = %d\n",a,b,*x,*y); Apakah output program? Jika pada program di atas sebelum printf ditambahkan statement a=x+y, apa yang terjadi? Program 3 Program 3 Nama Program: pointer3.c Hasil trace main() { int i; int a[5]={10,20,30,40,50; int *b=&a[1]; for (i=0; i<3; i++) { printf("%d ", b[0]); b++; Apa output program tersebut? Tuliskan proses untuk mendapatkan output tersebut pada kotak di sebelah kanan program. 4

Program 4 Nama Program: pointer4.c int what(int *a, int b) { int t=*a; *a=b; b=t; return (*a+b); main() { int a=5, b=10, c; printf("%d %d %d\n", a, b, what(&a,b)); Apa yang dilakukan program di atas, dan apakah outputnya? Program 5 Nama Program: pointer5.c #define SIZE 5 main() { chara[][size]={{'a','y','o',{'t','e','b','a','k',{'h','u','r','u','f'; char *p = &a[0][0]; char *q = a[2]; char *r = a[1]; printf("%c",*(r + SIZE)); printf("%c", *(p + SIZE + 1) ); printf("%c", p[2 * SIZE + 2]); printf("%c", p[2 * SIZE + 1] ); printf("%c", *(q - (SIZE + 3)) ); printf("%c", *r ); printf("%c", *r ); printf("%c", *(r - 3)); Apakah output dari program di atas? Dari program di atas, dapatkah Anda menyebutkan beberapa cara dalam mengakses elemen array? 5

Lembar Kerja Bagian II (45 menit) Buatlah program sesuai dengan instruksi yang diberikan simpan nama file sesuai dengan yang tertera pada soal di dalam folder NRP Anda. Tugas 10 Nama Program: tugas10.c Buatlah sebuah program untuk mencari berapa jumlah bilangan (dari n bilangan) yang nilainya di atas rata-rata n bilangan tersebut. Gunakan array untuk melakukan penyimpanan dan pointer untuk mengakses array tersebut 6