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

dokumen-dokumen yang mirip
Pointer 2 A. TUJUAN PEMBELAJARAN. 1. Memahami tentang Pointer to Array 2. Memahami tentang Pointer to String

BAB VIII POINTER. Tujuan :

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

MAKALAH POINTER PADA BAHASA C

POINTER I. Oleh : Mike Yuliana PENS-ITS

PRAKTIKUM 11 POINTER 1

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

POINTER DASAR PEMROGRAMAN

PRAKTIKUM 11 POINTER 1

DIKTAT MATA KULIAH PEMROGRAMAN I BAB XI POINTER

xxxx alamat Praktikum 11 POINTER

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

Pointer. Yuliana Setiowati

Pointer 1 A. TUJUAN PEMBELAJARAN

BAB 10 POINTER 5.1 Tujuan 5.2 Pengertian Pointer Perubah dinamis pointer

Achmad Solichin.

POINTER. Pemrograman Bahasa C++

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

PRAKTIKUM 12 POINTER 2

PRAKTIKUM 12 POINTER 2

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

Bab 9 Pointer. 9.1 Pendeklarasian pointer

Array 1 A. TUJUAN PEMBELAJARAN

01. Review Array, Pointer dan Struktur

BAB 5 PERULANGAN DAN ARRAY

MODUL V POINTER DAN STRING

LARIK (ARRAY) Latar Belakang Array

ARRAY. Karakteristik

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

LOGIKA ALGORITMA. Pertemuan 9 By: Augury

Algoritma Pemrograman & Struktur Data

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

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

ALGORITMA DAN STRUKTUR DATA POINTER DAN FUNCTION

Fungsi : Dasar Fungsi

PERTEMUAN VI POINTER 6.1 Tujuan Praktikum 6.2 Teori Penunjang Pointer

1 MODUL 8 POINTER MODUL 8 POINTER

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

Makalah. STRUKTUR DATA ( Array )

Algoritma dan Struktur Data. Pertemuan 5 Pointer

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

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

POINTER. Tim Alpro Teknik Informatika

TUGAS TEORI ALGO LANJUT

VARIABEL & TIPE DATA PEMROGRAMAN C++

SINGLE LINKED LIST (NON CIRCULAR)

PENGENALAN BAHASA C. Praktikum 3

Praktikum Dasar Pemrograman 2014 MODUL 3: Array dan String

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

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

PRAKTIKUM 7 FUNGSI 1

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

ALGORITMA DAN STRUKTUR DATA

Pointer. ted = &andy;

KONSEP POINTER DAN LINKED LIST

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

String 1 A. TUJUAN PEMBELAJARAN

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

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

Kelompok 10 Array. Nama :

POINTER. Tim Alpro Teknik Informatika

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

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

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

POINTER II. Oleh : Mike Yuliana PENS-ITS

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

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

BAB III POINTER. Type *variabel-name

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

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

Pertemuan 3. Perubah Dinamis (Dinamic variable) Suatu perubah yang akan dialokasikan hanya pada saat diperlukan, yaitu setelah program dieksekusi.

Pointer. Objektif. Bahan Bacaan

Algoritma Pemrograman. Fery Updi,M.Kom

DASAR PEMROGRAMAN. PENGANTAR BAHASA C ( Sejarah, Struktur Pemrograman, Tipe Data, Operator ) Djoko Soerjanto, M.Kom

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

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

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

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

Bab 2. Dasar-Dasar Pemrograman C

MODUL PRAKTIKUM BAHASA PEMROGRAMAN TESTRUKTUR MODUL 8 POINTER

Pemrograman Dasar C. Minggu 9

Identifier dan Tipe Data

BAB IV LARIK DAN PENUNJUK

VIII MANIPULASI STRING

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

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

A. TUJUAN 1. Mengetahui perbedaan antara variabel lokal, eksternal, statis dan register

BAB 3 MODE AKSES MEMORI, PENGGUNAAN VARIABEL DAN STACK

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

BAB I SEKILAS TENTANG C

OPERASI PERNYATAAN KONDISI

Algoritme dan Pemrograman

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

KONSEP POINTER DAN LINKED LIST

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

Konsep Pemrograman. Bab 10. String. Konsep Pemrograman Politeknik Elektronika Negeri Surabaya 2006 PENS-ITS. Umi Sa adah

Tipe Data dan Variabel

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

Pemrograman Dasar C. Minggu 10

Algoritme dan Pemrograman

Transkripsi:

Praktikum 10 (3/5) POINTER A. TUJUAN 1. Menjelaskan tentang Pointer to Array 2. Menjelaskan tentang Pointer to String B. DASAR TEORI Pointer dan Array (pointer to array) Hubungan antara pointer dan array pada C sangatlah erat. Sebab sesungguhnya array secara internal akan diterjemahkan dalam bentuk pointer. Pembahasan berikut akan memberikan gambaran hubungan antara pointer dan array. Misalnya dideklarasikan di dalam suatu fungsi static int tgl_lahir[3] = 01, 09, 64 ; dan int *ptgl; Kemudian diberikan instruksi ptgl = &tgl_lahir[0]; //pointer to array of integer maka ptgl akan berisi alamat dari elemen array tgl_lahir yang berindeks nol. Instruksi di atas bisa juga ditulis menjadi ptgl = tgl_lahir; sebab nama array tanpa tanda kurung menyatakan alamat awal dari array. Sesudah penugasan seperti di atas, *ptgl dengan sendirinya menyatakan elemen pertama (berindeks sama dengan nol) dari array tgl_lahir. 74

Pointer dan String (pointer to string) Contoh hubungan pointer dan string ditunjukkan pada program berikut. /* Program : ptr4.c */ /* pkota menunjuk konstanta string SEMARANG */ char *pkota = SEMARANG ; printf( String yang ditunjuk oleh pkota = ); puts(pkota); // printf( %s\n, pkota); Contoh eksekusi : String yang ditunjuk oleh pkota = SEMARANG Pada program di atas, char *pkota = SEMARANG ; akan menyebabkan kompiler mengalokasikan variabel pkota sebagai variabel pointer yang menunjuk ke obyek bertipe char dan menempatkan konstanta SEMARANG dalam suatu memori kemudian pointer pkota akan menunjuk ke lokasi string SEMARANG. pkota Lokasi awal string S E M A R A N G \0 Gambar 8.4 Pointer menunjuk data Pernyataan di atas menyerupai pernyataan char kota[] = SEMARANG ; tetapi sebenarnya kedua pernyataan inisialisasi di depan tidaklah tepat sama. Sebab pkota adalah pointer (menyatakan alamat) yang dengan mudah dapat diatur agar menunjuk ke 75

string lain (bukan string SEMARANG ), sedangkan kota adalah array (array menyatakan alamat yang konstan, tak dapat diubah). Jadi, ada beberapa cara penulisan ekspresi variabel yang menghasilkan sebuah address memory, di antaranya adalah : 1. Menuliskan ampersand di depan sebuah variabel 'normal' Misalnya a dideklarasikan sebagai sebuah variabel normal, maka &a akan menghasilkan adress memory dari variabel a tersebut 2. Menuliskan nama dari sebuah variabel pointer Misalnya a dideklarasikan sebuah variabel sebagai int *a, maka a akan berisi sebuah address memory yang tersimpan pada variabel a (setelah ada sebuah address memory yang di-assign ke variabel a tersebut) 3. Menuliskan nama sebuah variabel array tanpa indexnya Misalnya dideklarasikan - float nilai[5], maka penulisan nilai artinya sama dengan &nilai[0] - int b[3][4], maka b[3] adalah sama dengan &b[3][0] dan b[0] adalah sama dengan &b[0][0]. Bisa disimpulkan bahwa sebuah variabel array yang dituliskan tanpa kurung siku indexnya adalah sama dengan address memory dari elemen pertama array tersebut. C. PERCOBAAN Untuk setiap program di bawah ini, - gambarkan ilustrasi alokasi memori dari setiap baris pernyataan yang diproses - perkirakan hasil eksekusinya 1. Hubungan antara pointer dan array. Suatu nama array yang ditulis tanpa dengan indeksnya menunjukkan alamat elemen pertama dari array (versi 1). static int tgl_lahir[] = 16, 4, 1974; int *ptgl; 76

printf("nilai yang ditunjuk oleh ptgl = %d\n", *ptgl); printf("nilai dari tgl_lahir[0] = %d\n", tgl_lahir[0]); 2. Hubungan antara pointer dan array. Suatu nama array yang ditulis tanpa dengan indeksnya menunjukkan alamat elemen pertama dari array (versi 2). static int tgl_lahir[] = 16, 4, 1974; int *ptgl, i; ptgl = tgl_lahir; printf("nilai yang ditunjuk oleh ptgl = %d\n", *ptgl); for (i=0; i<3; i++) printf("nilai dari tgl_lahir[i] = %d\n", *(ptgl+i)); 3. Hubungan antara pointer dan array. Suatu nama array yang ditulis tanpa dengan indeksnya menunjukkan alamat elemen pertama dari array (versi 3). static int tgl_lahir[] = 16, 4, 1974; int i; int *ptgl; ptgl = tgl_lahir; printf("nilai yang ditunjuk oleh ptgl = %d\n", *ptgl); for (i=0; i<3; i++) printf("nilai dari tgl_lahir[i] = %d\n", *ptgl++); Analisislah dan jelaskan perbedaan antara aplikasi pada nomor 1, 2 dan 3 77

4. Menukarkan isi 2 string tanpa pemakaian pointer. /* Program : arrnama.c */ #include <string.h> #define PANJANG 20 char nama1[panjang] = "AHMAD"; char nama2[panjang] = "RIFDA"; char namax[panjang]; puts("semula : "); strcpy(namax, nama1); strcpy(nama1, nama2); strcpy(nama2, namax); puts("kini : "); 5. Menukarkan isi 2 string dengan fasilitas pointer. /* Program : ptrnama.c Menukarkan isi 2 string dengan fasilitas pointer */ #include <string.h> char *nama1 = "AHMAD"; char *nama2 = "RIFDA"; char *namax; puts("semula : "); namax = nama1; 78

nama1 = nama2; nama2 = namax; puts("kini : "); Analisislah dan jelaskan perbedaan antara aplikasi pada nomor 4 dengan nomor 5 6. Mengamati persamaan penggunaan variable index pada array dan variable index pada pointer, untuk menunjuk suatu nilai data di dalam suatu variable array. int nilai[10]=86,75,98,66,56,76,80,95,70,60; int index, *ip; printf("mencetak menggunakan array\n"); printf("daftar nilai siswa\n\n"); for(index=0; index<10; index++) printf("%3d",nilai[index]); puts("\n"); printf("mencetak menggunakan pointer dan index\n"); printf("daftar nilai siswa\n\n"); for(index=0; index<10; index++) printf("%3d",*(nilai+index)); puts("\n"); printf("mencetak menggunakan pointer\n"); printf("daftar nilai siswa\n\n"); ip=&nilai; for(index=0; index<10; index++) printf("%3d",*ip++); 79

7. char *text_pointer = "Good morning!"; for( ; *text_pointer!= '\0'; ++text_pointer) printf("%c", *text_pointer); 8. Berikan ilustrasi dan jelaskan apa yang dilakukan oleh potongan program di bawah ini int array1[10], array2[10]; int *ip1, *ip2 = array2; int *akhir = &array1[10]; for(ip1 = &array1[0]; ip1 < akhir; ip1++) *ip2++ = *ip1; 9. Tulislah sebuah program untuk membaca sebuah array (dengan tipe sembarang) menggunakan pointer. Buatlah program untuk membaca array tersebut dalam rangka mencari sebuah nilai tertentu D. LAPORAN RESMI 1. Kumpulkan listing program, ilustrasi alokasi memorinya beserta hasil eksekusinya 2. Sertakan jawaban untuk setiap soal di bawah ini dalam laporan resmi a. Dekrasikan sebuah variabel pointer to integer dengan nama address b. Assignlah alamat dari sebuah variabel float balance ke variabel pointer to float temp. Buatlah deklarasi dari variabel-variabel tersebut. c. Assignlah karakter 'W' kepada sebuah variabel yang ditunjuk oleh sebuah pointer to char letter. d. Deklarasikan sebuah pointer message yang langsung diinisialisasi agar menunjuk ke string Hello 80