ARRAY & POINTER. Listing 8.1. EXPENSES.C demonstrates the use of an array. AP3: Array & Pointer

dokumen-dokumen yang mirip
ALUR PROGRAM. SELEKSI KONDISI Statement If a. Bentuk If tunggal sederhana Sintaks : if ( kondisi ) statement ;

Pointer. ted = &andy;

By : Agus Priyanto, M.Kom ST3 Telkom Purwokerto Structure and Pointer

TUGAS TEORI ALGO LANJUT

ALGORITMA DAN STRUKTUR DATA

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

Pointer, File Header & Makro

MAKALAH POINTER PADA BAHASA C

Pertemuan Pointer. Obyektif Praktikum :

1 MODUL 8 POINTER MODUL 8 POINTER

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

Pointer di C++ Menurut Frieyadie Edisi Revisi Buku Pemrograman C++ dengan Borland C


Kisi-Kisi Ujian Akhir Semester Algoritma dan Pemrograman Lanjut

Minggu ke-10 Pointer. Pendahuluan. Objektif. Bahan Bacaan

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

Algoritme dan Pemrograman

Bahasa C Array. Slide diambil dari MK Dasar-Dasar Pemrograman Fasilkom UI Dimodifikasi dan disesuaikan dngn kebutuhan pengajaran di PTI-Undiksha

ARRAY. Karakteristik

LOGIKA ALGORITMA. Pertemuan 9 By: Augury

Ketika suatu variable dideklarasikan, ada 3 hal yang dapat diassosiasikan yaitu: nama, type data dan alamat pada memori. Contohnya deklarasi

PRAKTIKUM 11 POINTER 1

Pemrograman Dasar C. Minggu 9

BAB III POINTER. Type *variabel-name

Pointer. beth = *ted;

Array 1 A. TUJUAN PEMBELAJARAN

MODUL PRAKTIKUM BAHASA PEMROGRAMAN TESTRUKTUR MODUL 8 POINTER

Program Menggabungkan 2 Tipe String

POINTER. Tim Alpro Teknik Informatika

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

Algoritma & Pemrograman #9. by antonius rachmat c, s.kom, m.cs

Pertemuan 4 ELEMEN-ELEMEN BAHASA PEMROGRAMAN

PERTEMUAN VIII STRUKTUR LANJUT

ALGORITMA DAN STRUKTUR DATA POINTER DAN FUNCTION

Algoritma dan Struktur Data. Pointer Pada Struct

Pointer. Objektif. Bahan Bacaan

Algoritme dan Pemrograman

Algoritma dan Struktur Data. Pertemuan 5 Pointer

ARRAY & STRUKTUR. Contoh Deklarasi :

Algoritma Pemrograman. Fery Updi,M.Kom

Algoritma dan Pemrograman Tahar Agastani Teknik Informatika UIN

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

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

LOGIKA ALGORITMA. Pertemuan 4. By: Augury

VARIABEL & TIPE DATA PEMROGRAMAN C++

POINTER. Tim Alpro Teknik Informatika

PRAKTIKUM 11 POINTER 1

Pointer dan Array Dinamik. IF2121 / Algoritma dan Struktur Data Sem /2018

PRAKTIKUM 6 PENGULANGAN PROSES 2

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

A B C D E \0. Gambar Komposisi penyimpanan string dalam memori

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA LAB SHEET BAHASA PEMROGRAMAN Fungsi : Passing Parameter by Value & Semester 3

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

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

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

Kelompok 10 Array. Nama :

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

DIKTAT MATA KULIAH PEMROGRAMAN I BAB XI POINTER

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

Looping : break, continue, nested loop

3. Struktur Perulangan dalam Bahasa C++

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

POINTER I. Oleh : Mike Yuliana PENS-ITS

BAB II LANDASAN TEORI. dengan hanya melihat kamus bahasa. Terdapat banyak makna dalam kata game.

Pendahuluan Pemrograman Mikrokontroler

Struktur Kontrol. Contoh, Akan tercetak x is 100 jika nilai yang disimpan pada variable x adalah 100:

3. Struktur Perulangan dalam C++

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

Fungsi, Parameter, Rekursi

4. Arrays. int billy [5]; maka setiap elemen array billy akan di-inisialisasikan sebagai 0 :

Pemrograman Dasar C. Minggu 10

String 1 A. TUJUAN PEMBELAJARAN

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA

IT234 - Algoritma dan Struktur Data. Ramos Somya

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

Bab 2. Dasar-Dasar Pemrograman C

ALGORITMA & PEMROGRAMAN II ARRAY

A. TUJUAN PEMBELAJARAN

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

Sejarah C. Dirancang oleh Denis M. Ritchie tahun 1972 di Bell Labs.

Algoritma dan Struktur Data. Pertemuan 6 Alokasi Memori Dinamis

Pertemuan 2. Gambaran Umum C

FUNCTION (FUNGSI) LOGO. Pendidikan Teknik Elektronika FT UNY. Muh. Izzuddin Mahali, M.Cs.

Fungsi DASAR PEMROGRAMAN

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

ASD. Alokasi Memori Dinamis

Pengenalan Struktur Data. Farah Zakiyah Rahmanti 2014

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

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

POINTER DASAR PEMROGRAMAN

Achmad Solichin.

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

Function. Contoh function 1 : // function example #include <stdio.h> int addition (int a, int b){ int r; r=a+b; return (r); }

TIM ASISTEN PRAKTIKUM ALGORITMA DAN PEMROGRAMAN 2017

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

Kurikulum Qt. { Basic OOP } Chapter 4. Function

Tipe Data dan Operator

Pertemuan Arrays. Obyektif Praktikum : 1. Memahami penggunaan Array. 2. Dapat menerapkan array dengan elemen multidimensi

Algoritma Pemrograman 2B (Pemrograman C++)

Operator Precedence dan Associativity DASAR PEMROGRAMAN. JULIO ADISANTOSO Departemen Ilmu Komputer IPB. Pertemuan 2

Transkripsi:

1 ARRAY & POINTER Listing 8.1. EXPENSES.C demonstrates the use of an array. 1: /* EXPENSES.C - Demonstrates use of an array */ 2: 3: #include <stdio.h> 4: 5: /* Declare an array to hold expenses, and a counter variable */ 6: 7: float expenses[13]; 8: int count; 9: 10: main() 11: { 12: /* Input data from keyboard into array */ 13: 14: for (count = 1; count < 13; count++) 15: { 16: printf("enter expenses for month %d: ", count); 17: scanf("%f", &expenses[count]); 18: } 19: 20: /* Print array contents */ 21: 22: for (count = 1; count < 13; count++) 23: { 24: printf("month %d = $%.2f\n", count, expenses[count]); 25: } 26: return 0; 27: } Enter expenses for month 1: 100 Enter expenses for month 2: 200.12 Enter expenses for month 3: 150.50 Enter expenses for month 4: 300 Enter expenses for month 5: 100.50 Enter expenses for month 6: 34.25 Enter expenses for month 7: 45.75 Enter expenses for month 8: 195.00 Enter expenses for month 9: 123.45 Enter expenses for month 10: 111.11 Enter expenses for month 11: 222.20 Enter expenses for month 12: 120.00 Month 1 = $100.00 Month 2 = $200.12 Month 3 = $150.50 Month 4 = $300.00 Month 5 = $100.50 Month 6 = $34.25 Month 7 = $45.75 Month 8 = $195.00 Month 9 = $123.45 Month 10 = $111.11 Month 11 = $222.20 Month 12 = $120.00 AP3: Array & Pointer

2 Listing 8.3. RANDOM.C creates a multidimensional array. 1: /* RANDOM.C - Demonstrates using a multidimensional array */ 2: 3: #include <stdio.h> 4: #include <stdlib.h> 5: /* Declare a three-dimensional array with 1000 elements */ 6: 7: int random_array[10][10][10]; 8: int a, b, c; 9: 10: main() 11: { 12: /* Fill the array with random numbers. The C library */ 13: /* function rand() returns a random number. Use one */ 14: /* for loop for each array subscript. */ 15: 16: for (a = 0; a < 10; a++) 17: { 18: for (b = 0; b < 10; b++) 19: { 20: for (c = 0; c < 10; c++) 21: { 22: random_array[a][b][c] = rand(); 23: } 24: } 25: } 26: 27: /* Now display the array elements 10 at a time */ 28: 29: for (a = 0; a < 10; a++) 30: { 31: for (b = 0; b < 10; b++) 32: { 33: for (c = 0; c < 10; c++) 34: { 35: printf("\nrandom_array[%d][%d][%d] = ", a, b, c); 36: printf("%d", random_array[a][b][c]); 37: } 38: printf("\n"); 39: 40: getchar(); 41: } 42: } 43: return 0; 44: } /* end of main() */ random_array[0][0][0] = 346 random_array[0][0][1] = 130 random_array[0][0][2] = 10982 random_array[0][0][3] = 1090 random_array[0][0][4] = 11656 random_array[0][0][5] = 7117 random_array[0][0][6] = 17595 random_array[0][0][7] = 6415 random_array[0][0][8] = 22948 random_array[0][0][9] = 31126 random_array[0][1][0] = 9004 random_array[0][1][1] = 14558 random_array[0][1][2] = 3571 random_array[0][1][3] = 22879 random_array[0][1][4] = 18492 random_array[0][1][5] = 1360 random_array[0][1][6] = 5412 random_array[0][1][7] = 26721 random_array[0][1][8] = 22463 random_array[0][1][9] = 25047 Press Enter to continue, CTRL-C to quit...... random_array[9][8][0] = 6287 random_array[9][8][1] = 26957 random_array[9][8][2] = 1530 random_array[9][8][3] = 14171 random_array[9][8][4] = 6951 random_array[9][8][5] = 213 random_array[9][8][6] = 14003 random_array[9][8][7] = 29736 random_array[9][8][8] = 15028 random_array[9][8][9] = 18968 random_array[9][9][0] = 28559 random_array[9][9][1] = 5268 random_array[9][9][2] = 20182 random_array[9][9][3] = 3633 random_array[9][9][4] = 24779 random_array[9][9][5] = 3024 random_array[9][9][6] = 10853 random_array[9][9][7] = 28205 random_array[9][9][8] = 8930 random_array[9][9][9] = 2873 AP3: Array & Pointer

Suatu Pointer (variabel penunjuk) adalah suatu variabel yang berisi dengan alamat lokasi suatu memori tertentu. Bahasa C menyediakan 2 buah operator untuk operasi pointer yaitu: operator *, dan operator &. 1 Operator Alamat (Address operator (&)) Pada saat pendeklarasian variable, user tidak diharuskan menentukan lokasi sesungguhnya pada memory, hal ini akan dilakukan secara otomatis oleh compiler dan operating sysem pada saat runtime. Jika ingin mengetahui lokasi dimana suatu variable disimpan, dapat dilakukan dengan memberikan tanda ampersand (&) didepan variable, yang berarti "address of". ted = &andy; Akan memberikan kepada variable ted alamat dari variable andy, karena variable andy diberi awalan karakter ampersand (&), maka yang menjadi pokok disini adalah alamat dalam memory, bukan isi variable. Misalkan andy diletakkan pada alamat 1776 kemudian dituliskan instruksi sbb : andy = 25; fred = andy; ted = &andy; Maka hasilnya: Operator Reference (*) Dengan menggunakan pointer, kita dapat mengakses nilai yang tersimpan secara langsung dengan memberikan awalan operator asterisk (*) pada identifier pointer, yang berarti "value pointed by". beth = *ted; (dapat dikatakan:"beth sama dengan nilai yang ditunjuk oleh ted") beth = 25, karena ted dialamat 1776, dan nilai yang berada pada alamat 1776 adalah 25.

2 Ekspresi dibawah ini semuanya benar, perhatikan: andy == 25 &andy == 1776 ted == 1776 *ted == 25 1. Ekspresi pertama merupakan assignation bahwa andy=25;. 2. Kedua, menggunakan operator alamat (address/derefence operator (&)), sehingga akan mengembalikan alamat dari variabel andy. 3. Ketiga bernilai benar karena assignation untuk ted adalah ted = &andy;. 4. Keempat menggunakan reference operator (*) yang berarti nilai yang ada pada alamat yang ditunjuk oleh ted, yaitu 25. #include <stdio.h> int main () { int value1 = 5, value2 = 15; int * mypointer; mypointer = &value1; } Maka ekspresi dibawah ini pun akan bernilai benar : *ted == andy *mypointer = 10; mypointer = &value2; *mypointer = 20; printf ( value1== %d \n", value1); printf ( value2== %d, value2); return 0; ------------> memiliki alamat yang sama dengan value1 ------------> isi dari value1 dirubah Output: value1==10 value2==20 <-------------- Isi dari value1 setelah dirubah <-------------- Isi dari value2 setelah dirubah

Deklarasi Pointer Variabel pointer dideklarasikan dengan nama variabelnya ditulis dengan diawali karakter asterik. Bentuk umum: Tipe-data *nama-variabel-pointer; Variabel pointer yang dideklarasikan dapat juga langsung diberikan nilai awal. Variabel pointer harus dideklarasikan dengan tipe yang sesuai dengan tipe data di memori yang ditunjuknya. Misalnya data yang ada dimemori bertipe float(4 byte) dan variabel pointer yang menunjukkan kealamat ini adalah bertipe int(2 byte), maka hanya 2 byte pertama saja yang akan diambil dengan hasil yang tidak sesuai dengan yang diharapkan. 3 Array dan Pointer Identifier (nama pengenal) suatu array equivalen dengan alamat dari elemen pertama, pointer equivalen dengan alamat elemen pertama yang ditunjuk. Perhatikan deklarasi berikut: int numbers [20]; int * p; maka deklarasi dibawah ini juga benar : p = numbers; p dan numbers adalah equivalen, dan memiliki sifat (properties) yang sama. Perbedaannya, user dapat menentukan nilai lain untuk pointer p dimana numbers akan selalu menunjuk nilai yang sama seperti yang telah didefinisikan. Dimana p, merupakan variable pointer, numbers adalah constant pointer. Karena itu walaupun instruksi diatas benar, tetapi tidak untuk instruksi dibawah ini: numbers = p; karena numbers adalah array (constant pointer), dan tidak ada nilai yang dapat diberikan untuk identifier konstant (constant identifiers). #include <stdio.h> int main () { int numbers[5]; int * p; p = numbers; *p = 10; p++; *p = 20; p = &numbers[2]; *p = 30; p = numbers + 3; *p = 40; p = numbers; *(p+4) = 50; for (int n=0; n<5; n++) printf ( %d,, numbers*n+); return 0; } Output: 10, 20, 30, 40, 50,