PRAKTIKUM 11 POINTER 1



dokumen-dokumen yang mirip
PRAKTIKUM 11 POINTER 1

Pointer 1 A. TUJUAN PEMBELAJARAN

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

POINTER I. Oleh : Mike Yuliana PENS-ITS

BAB VIII POINTER. Tujuan :

PRAKTIKUM 12 POINTER 2

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

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

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

POINTER DASAR PEMROGRAMAN

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

DIKTAT MATA KULIAH PEMROGRAMAN I BAB XI POINTER

MAKALAH POINTER PADA BAHASA C

xxxx alamat Praktikum 11 POINTER

POINTER II. Oleh : Mike Yuliana PENS-ITS

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

POINTER. Pemrograman Bahasa C++

PRAKTIKUM 12 POINTER 2

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

Achmad Solichin.

BAB 10 POINTER 5.1 Tujuan 5.2 Pengertian Pointer Perubah dinamis pointer

Algoritma dan Struktur Data. Pertemuan 5 Pointer

BAB 5 PERULANGAN DAN ARRAY

Pointer. Yuliana Setiowati

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

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

B. DASAR TEORI B.1 Array Suatu array berdimensi satu dideklarasikan dalam bentuk umum berupa : tipe_data nama_var[ukuran];

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

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

Algoritma Pemrograman. Fery Updi,M.Kom

Array 1 A. TUJUAN PEMBELAJARAN

PRAKTIKUM 7 FUNGSI 1

Fungsi : Dasar Fungsi

MENGENAL POINTER. Mengetahui Alamat variabel. Output :

Pointer. Objektif. Bahan Bacaan

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

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

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

Bab 9 Pointer. 9.1 Pendeklarasian pointer

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

PERTEMUAN VI POINTER 6.1 Tujuan Praktikum 6.2 Teori Penunjang Pointer

PENGENALAN BAHASA C. Praktikum 3

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

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

MODUL V POINTER DAN STRING

MATERI/BAHAN PRAKTIKUM PENDAHULUAN DAN PENGENALAN (IDENTIFIER)

Achmad Solichin.

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

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

MODUL PRAKTIKUM BAHASA PEMROGRAMAN TESTRUKTUR MODUL 8 POINTER

KARAKTER DAN STRING, ARRAY, STRUCT DAN REVIEW PADA BAHASA C

PRAKTIKUM 3 DASAR PEMROGRAMAN C

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

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

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

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

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

1 MODUL 8 POINTER MODUL 8 POINTER

VARIABEL & TIPE DATA PEMROGRAMAN C++

SINGLE LINKED LIST (NON CIRCULAR)

Modul 1 Dasar Dasar Bahasa Pemrograman C

ALGORITMA DAN STRUKTUR DATA

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

ARRAY. Karakteristik

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

BAB I SEKILAS TENTANG C

PRAKTIKUM 3 DASAR PEMROGRAMAN C

Tipe Data dan Operator

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

void tukar_xy(struct koordinat *pos_xy){ int z; z = (*pos_xy).x; (*pos_xy).x = (*pos_xy).y; (*pos_xy).y = z;

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

Tipe Data dan Variabel

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

PRAKTIKUM 6 PENGULANGAN PROSES 2

KONSEP POINTER DAN LINKED LIST

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

Pertemuan 04. Pemrograman Dasar 2012

Algoritma dan Struktur Data. Pointer Pada Struct

Ekspresi, Pernyataan & Operasi Aritmetika/Logika

BAB V FUNGSI Tujuan : 5.1 Dasar Fungsi

BAB III POINTER. Type *variabel-name

PERTEMUAN II Tipe Data, Variabel, Konstanta, Operator

POINTER. Tim Alpro Teknik Informatika

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

Dasar-dasar Pemrograman C DASAR PEMROGRAMAN & ALGORITMA

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA

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

PRAKTIKUM 14 STRUKTUR 2

Algoritma Pemrograman & Struktur Data

Pemrograman Dasar C. Minggu 10

Single Linked List (1)

Data bisa dinyatakan dalam bentuk konstanta atau variabel.

Pemrograman Dasar C. Minggu 9

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

Pertemuan 7. REVIEW dan QUIS

Tipe Data Dasar. Berdasarkan jenisnya, data dapat dibagi menjadi lima kelompok dinamakan tipe data dasar, yaitu:

STRUCTURE. Structure

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

KONSEP POINTER DAN LINKED LIST

elemen Dasar Bahasa Pemrograman C

Transkripsi:

PRAKTIKUM 11 POINTER 1 A. Tujuan 1. Menjelaskan tentang konsep dari variabel pointer 2. Menjelaskan tentang pointer array 3. Menjelaskan tentang pointer string B. DASAR TEORI Konsep Dasar Pointer Variabel pointer sering dikatakan sebagai variabel yang menunjuk ke obyek lain. Pada kenyataan yang sebenarnya, variabel pointer berisi alamat dari suatu obyek lain (yaitu obyek yang dikatakan ditunjuk oleh pointer). Sebagai contoh, px adalah variabel pointer dan x adalah variabel yang ditunjuk oleh px. Kalau x berada pada alamat memori (alamat awal) 1000, maka px akan berisi 1000. Sebagaimana diilustrasikan pada gambar 1 di bawah ini px zzzz 1000 Address? 1000 X Gambar 1. Variabel pointer px menunjuk ke variabel x Mendeklarasikan Variabel Pointer Suatu variabel pointer dideklarasikan dengan bentuk sebagai berikut : tipe *nama_variabel dengan tipe dapat berupa sembarang tipe yang sudah dibahas pada bab-bab sebelumnya, maupun bab-bab berikutnya. Adapun nama_variabel adalah nama dari variabel pointer. Praktikum Dasar Programming 1 100

Sebagai contoh : int px; / *contoh 1 */ char *pch1, *pch2; / *contoh 2 */ Contoh pertama menyatakan bahwa px adalah variabel pointer yang menunjuk ke suatu data bertipe int, sedangkan contoh kedua masing pch1 dan pch2 adalah variabel pointer yang menunjuk ke data bertipe char. menyatakan variabel pointer char *pch1, *pch2; tipe data yang ditunjuk oleh variabel pointer tanda akhir pernyataan deklarasi nama variabel pointer Gambar 2. Ilustrasi pendeklarasian variabel pointer Mengatur Pointer agar Menunjuk ke Variabel Lain 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, bersifat unary) bisa dipergunakan, dengan menempatkannya di depan nama variabel. Sebagai contoh, bila x dideklarasikan sebagai variabel bertipe int, maka &x berarti alamat dari variabel x. Adapun contoh pemberian alamat x ke suatu variabel pointer px (yang dideklarasikan sebagai pointer yang menunjuk ke data bertipe int) yaitu : px = &x; Pernyataan di atas berarti bahwa px diberi nilai berupa alamat dari variabel x. Setelah pernyataan tersebut dieksekusi barulah dapat dikatakan bahwa px menunjuk ke variabel x. Mengakses Isi Suatu Variabel Melalui Pointer Jika suatu variabel sudah ditunjuk oleh pointer, variabel yang ditunjuk oleh pointer tersebut dapat diakses melalui variabel itu sendiri (pengaksesan langsung) ataupun melalui Praktikum Dasar Programming 1 101

pointer (pengaksesan tak langsung). Pengaksesan tak langsung dilakukan dengan menggunakan operator indirection (tak langsung) berupa simbol * (bersifat unary). Contoh penerapan operator * yaitu : *px yang menyatakan isi atau nilai variabel/data yang ditunjuk oleh pointer px. Sebagai contoh jika y bertipe int, maka sesudah dua pernyataan berikut px = &x; y = *px; y akan berisi nilai yang sama dengan nilai x. Mengakses dan Mengubah isi Suatu Variabel Pointer Contoh berikut memberikan gambaran tentang pengubahan isi suatu variabel secara tak langsung (yaitu melalui pointer). Mula-mula pd dideklarasikan sebagai pointer yang menunjuk ke suatu data bertipe float dan d sebagai variabel bertipe float. Selanjutnya d = 54.5; digunakan untuk mengisikan nilai 54,5 secara langsung ke variabel d. Adapun pd = &d; digunakan untuk memberikan alamat dari d ke pd. Dengan demikian pd menunjuk ke variabel d. Sedangkan pernyataan berikutnya *pd = *pd + 10; (atau: *pd += 10; ) merupakan instruksi untuk mengubah nilai variabel d secara tak langsung. Perintah di atas berarti jumlahkan yang ditunjuk pd dengan 10 kemudian berikan ke yang ditunjuk oleh pd, atau identik dengan pernyataan d = d + 10; Akan tetapi, seandainya tidak ada instruksi pd = &d; Praktikum Dasar Programming 1 102

maka pernyataan *pd = *pd + 10; tidaklah sama dengan d = d + 10; Pointer dan 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 int tgl_lahir[3] = 01, 09, 64 ; dan int *ptgl; Kemudian diberikan instruksi ptgl = &tgl_lahir[0]; 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. Praktikum Dasar Programming 1 103

Kesimpulan Tipe variabel pointer adalah tipe variabel yang berisi alamat dari variabel yang sebenarnya. Tipe variabel pointer harus sama dengan tipe variabel yang ditunjuk. Hubungan antara pointer dan array pada C sangatlah erat, sebab sesungguhnya array secara internal akan diterjemahkan dalam bentuk pointer Variabel pointer bisa berupa string, array atau tipe variabel yang lainnya. C. TUGAS PENDAHULUAN 1. Buat program untuk menampilkan sebaris string seperti contoh berikut ; Selamat Pagi menggunakan variable pointer (pointer to string). 2. Buat potongan program untuk mencetak huruf ketiga ( L ) dari kata : P O L I T E K N I K dengan menggunakan variabel pointer D. PERCOBAAN Untuk setiap program di bawah ini, - gambarkan ilustrasi alokasi memori dari setiap baris pernyataan yang diproses - perkirakan hasil eksekusinya 1. #include <stdio.h> int x = 3, y = 4; int *ip; ip = &x; y = *ip; x = 10; *ip = 3; printf( x = %d, y = %d, x, y); Praktikum Dasar Programming 1 104

2. #include <stdio.h> int count = 16, sum = 17, *x, *y; x = *x = 27; y = x; x = &count; *x = count; sum = *x / 2 * 3; printf("count = %d, sum = %d, *x = %d, *y = %d\n", count,sum,*x,*y); 3. #include <stdio.h> int r, q = 8; int go_crazy(int *, int *); int *ptr1 = &q; int *ptr2 = &q; r = go_crazy(ptr2, ptr1); printf("q = %d, r = %d, *ptr1 = %d, *ptr2 = %d\n", q, r,*ptr1,*ptr2); ptr1 = &r; go_crazy(ptr1, ptr2); printf("q = %d, r = %d, *ptr1 = %d, *ptr2 = %d\n", q, r,*ptr1,*ptr2); int go_crazy(int *p1, int *p2) int x = 5; r = 12; *p2 = *p1 * 2; p1 = &x; return *p1 * 3; Praktikum Dasar Programming 1 105

4. #include <stdio.h> int var_x = 273; int *ptr1; int **ptr2; ptr1 = &var_x; ptr2 = &ptr1; printf("nilai var_x = *ptr1 = %d\n", *ptr1); printf("nilai var_x = **ptr2 = %d\n\n", **ptr2); printf("ptr1 = &var_x = %p\n", ptr1); printf("ptr2 = &ptr1 = %p\n", ptr2); printf(" &ptr2 = %p\n", &ptr2); 5. int array1[10], array2[10]; int *ip1, *ip2 = array2; int *akhir = &array1[10]; for(ip1 = &array1[0]; ip1 < akhir; ip1++) *ip2++ = *ip1; E. LAPORAN RESMI 1. Kumpulkan listing program, ilustrasi alokasi memorinya beserta hasil eksekusinya Praktikum Dasar Programming 1 106