PRAKTIKUM 12 POINTER 2

dokumen-dokumen yang mirip
PRAKTIKUM 12 POINTER 2

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

POINTER II. Oleh : Mike Yuliana PENS-ITS

BAB VIII POINTER. Tujuan :

PRAKTIKUM 11 POINTER 1

PRAKTIKUM 11 POINTER 1

MAKALAH POINTER PADA BAHASA C

xxxx alamat Praktikum 11 POINTER

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

POINTER DASAR PEMROGRAMAN

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

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

Fungsi (Function) Pendahuluan. Objektif. Bahan Bacaan

Minggu ke-11 Fungsi (Function)

Pointer 1 A. TUJUAN PEMBELAJARAN

Pointer. Yuliana Setiowati

POINTER. Pemrograman Bahasa C++

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

DIKTAT MATA KULIAH PEMROGRAMAN I BAB XI POINTER

Minggu ke-12 Built-in Function

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

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

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

MENGENAL POINTER. Mengetahui Alamat variabel. Output :

Achmad Solichin.

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

POINTER I. Oleh : Mike Yuliana PENS-ITS

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];

ALGORITMA DAN STRUKTUR DATA POINTER DAN FUNCTION

Algoritma dan Struktur Data. Pertemuan 5 Pointer

OPERASI PERNYATAAN KONDISI

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

Modul Praktikum Bahasa Pemrograman 1

BAB 10 POINTER 5.1 Tujuan 5.2 Pengertian Pointer Perubah dinamis pointer

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

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

Fungsi : Penggolongan Variabel & Pemrograman Terstruktur

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

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

PRAKTIKUM 7 FUNGSI 1

Fungsi : Dasar Fungsi

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

POINTER. Tim Alpro Teknik Informatika

Single Linked List (1)

Fungsi DASAR PEMROGRAMAN

Fungsi, Parameter, Rekursi

Pengenalan C++ Oleh : Dewi Sartika

Struct 2 A. TUJUAN PEMBELAJARAN

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

BAB VI BAHASA C Pendahuluan

FUNGSI & PROSEDUR. Pertemuan ke-12 dan 13

PRAKTIKUM 14 STRUKTUR 2

1 MODUL 8 POINTER MODUL 8 POINTER

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

MODUL. Fungsi (Function) Modul Praktikum C++ Dasar Pemrograman Komputer JURUSAN TEKNIK ELEKTRO FAKULTAS TEKNIK

PRAKTIKUM 14 STRUKTUR 2

Algoritma Pemrograman 2B (Pemrograman C++)

Algoritma dan Struktur Data. Pointer Pada Struct

Fungsi Lanjut DASAR PEMROGRAMAN

Array 1 A. TUJUAN PEMBELAJARAN

Struktur Kontrol Pemrograman Java : PERCABANGAN

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA LAB SHEET BAHASA PEMROGRAMAN Fungsi Penggolongan Variabel dan Semester 3

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA

LATIHAN DAN KISI-KISI SOAL JURUSAN TELEKOMUNIKASI POLITEKNIK ELEKTRONIKA NEGERI SURABAYA

Algoritme dan Pemrograman

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

01. Review Array, Pointer dan Struktur

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

LAPORAN PRAKTIKUM ALGORITMA DAN PEMROGRAMAN ( Implementasi Rekursi Pada Java)

PRAKTIKUM 8 FUNGSI 2

BAB 6 FUNGSI TUJUAN PRAKTIKUM

MODUL PRAKTIKUM BAHASA PEMROGRAMAN TESTRUKTUR MODUL 8 POINTER

Modul 1 Dasar Dasar Bahasa Pemrograman C

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

POINTER. Tim Alpro Teknik Informatika

BAB 5 PERULANGAN DAN ARRAY

KONSEP DASAR. menyusunnya menjadi potongan-potongan mudah untuk ditangani dibanding. conquer.

BAB V FUNGSI Tujuan : 5.1 Dasar Fungsi

Bab 9 Pointer. 9.1 Pendeklarasian pointer

Scope Variable. Sebuah variabel di dalam sebuah fungsi memiliki jangkauan tertentu. Skop variabel terdiri dari:

ARRAY, SORTING & SEARCHING

JADWAL KULIAH/RESPONSI/PRAKTIKUM MATRIKULASI T.A 2014/2015 TINGKAT PERSIAPAN BERSAMA - INSTITUT PERTANIAN BOGOR

MODUL 10 Fungsi 10.1 Kompetensi 10.2 Alat Dan Bahan: 10.3 Ulasan Teori: Dasar Fungsi Deklarasi Fungsi

Fungsi DASAR PEMROGRAMAN

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

STRUKTUR DATA MENGGUNAKAN C++ Windha Mega PD, S.Kom

Objek Data, Variabel, dan Konstanta. Konsep Bahasa Pemrograman Materi 4 Yudianto Sujana, M.Kom

ARRAY. Karakteristik

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

APLIKASI MENGELOLA DATA ACCESS LOG MENGGUNAKAN C# Melihat LOG berdasar Hari, Jam, dan URL Terbanyak diakses

Fungsi 1 DASAR PEMROGRAMAN

Algoritma Pemrograman. Fery Updi,M.Kom

/* File program : tukar1.c Untuk melihat pengaruh pemanggilan nilai pada fungsi untuk penukaran dua data */

Algoritma dan Struktur Data. Ramos Somya

ARRAY & STRUKTUR. Contoh Deklarasi :

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

MODUL 7 FUNGSI A. Tujuan. B. Petunjuk. C. Dasar Teori

KONSEP POINTER DAN LINKED LIST

Mukhlidi Muskhir Modul 2

Transkripsi:

PRAKTIKUM 12 POINTER 2 A. Tujuan 1. Menjelaskan tentang Array of Pointer 2. Menjelaskan tentang Pointer to Pointer 3. Menjelaskan tentang Pointer dalam Fungsi 4. Menjelaskan tentang Pointer sebagai Parameter Fungsi 5. Menjelaskan tentang Pointer sebagai Keluaran Fungsi B. Dasar Teori Array dari Pointer (Array of Pointer) Suatu array bisa digunakan untuk menyimpan sejumlah pointer. Sebagai contoh: char *namahari[10]; merupakan pernyataan untuk mendeklarasikan array pointer. Array namahari terdiri dari 10 elemen berupa pointer yang menunjuk ke data bertipe char. xxx namahari Gambar 8.5 Array pointer Array pointer bisa diinisialisasi sewaktu pendeklarasian. Sebagai contoh: static char *namahari[] = Senin, Selasa, Rabu, Kamis, Jumat, Sabtu, Minggu ; 107

Pada contoh ini, namahari[0] berisi alamat yang menunjuk ke string Senin. namahari[1] berisi alamat yang menunjuk ke string Selasa. namahari[2] berisi alamat yang menunjuk ke string Rabu. dan sebagainya. Pointer menunjuk Pointer (Pointer to Pointer) Suatu pointer bisa saja menunjuk ke pointer lain. Gambar berikut memberikan contoh mengenai pointer menunjuk pointer. Untuk membentuk rantai pointer seperti pada gambar di atas, pendeklarasian yang diperlukan berupa int var_x; int *ptr1; int **ptr2; Perhatikan pada deklarasi di depan: var_x adalah variabel bertipe int. ptr1 adalah variabel pointer yang menunjuk ke data bertipe int. ptr2 adalah variabel pointer yang menunjuk ke pointer int. (itulah sebabnya deklarasinya berupa int **ptr2; ) Agar ptr1 menunjuk ke variabel var_x, perintah yang diperlukan berupa ptr1 = &var_x; Sedangkan supaya ptr2 menunjuk ke ptr1, instruksi yang diperlukan adalah ptr2 = &ptr1; Pointer ptr2 alamat ptr1 Pointer ptr1 alamat ptr1 Variabel var_x nilai Gambar 8.6 Pointer yang menunjuk pointer 108

Pointer dalam Fungsi Pointer dan kaitannya dengan fungsi yang akan dibahas berikut meliputi : Pointer sebagai parameter fungsi Pointer sebagai keluaran fungsi Pointer Sebagai Parameter Fungsi Penerapan pointer sebagai parameter yaitu jika diinginkan agar nilai suatu variabel internal dapat diubah oleh fungsi yang dipanggil. Sebagai contoh dapat dilihat pada fungsi berikut. void naikkan_nilai (int *x, int *y) *x = *x + 2; *y = *y + 2; Fungsi di atas dimaksudkan agar kalau dipanggil, variabel yang berkenaan dengan parameter aktual dapat diubah nilainya, masing-masing dinaikkan sebesar 2. Contoh pemanggilan : naikkan_nilai(&a, &b); Perhatikan, dalam hal ini variabel a dan b harus ditulis diawali operator alamat (&) yang berarti menyatakan alamat variabel, sebab parameter fungsi dalam pendefinisian berupa pointer. Pointer Sebagai Keluaran Fungsi (return value) Suatu fungsi dapat dibuat agar keluarannya berupa pointer. Misalnya, suatu fungsi menghasilkan keluaran berupa pointer yang menunjuk ke string nama_bulan, seperti pada contoh berikut. char *nama_bulan(int n) static char *bulan[]= Kode bulan salah, Januari, Februari, Maret, April, Mei, Juni, Juli, "Agustus, September, Oktober, Nopember, Desember ; return ( (n<1 n>12) bulan[0] : bulan[n] ); 109

Pada definisi fungsi di atas, char *nama_bulan() menyatakan bahwa keluaran fungsi nama_bulan() berupa pointer yang menunjuk ke obyek char (atau string). Dalam fungsi nama_bulan(), mula-mula array bernama bulan dideklarasikan dan sekaligus diinisialisasi agar menunjuk sejumlah string yang menyatakan nama bulan. Di bagian akhir fungsi, pernyataan return ( (n<1 n>12) bulan[0] : bulan[n] ); menyatakan bahwa hasil fungsi berupa pointer yang menunjuk ke string Kode bulan salah (bulan[0]) jika masukan fungsi n<1 atau n>12 bulan[n] untuk n yang terletak antara 1 sampai dengan 12. C. TUGAS PENDAHULUAN 1. Buat program dengan menggunakan fungsi! Serta gambarkan ilustrasi alokasi memori dari setiap baris pernyataan! int a = 4; int b = 7; int *x, *y; x=&a; y=&b; printf("semula : a = %d b = %d\n", a, b); *x = *x * 4; *y = *y + *x; printf("kini : a = %d b = %d\n", a, b); D. PERCOBAAN 1. Tuliskan alokasi memori dari setiap baris pernyataan berikut serta tampilkan hasilnya! int var_x = 20; 110

int *ptr1; int **ptr2; ptr1 = &var_x; ptr2 = &ptr1; *ptr1=var_x +**ptr2; 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); 2. Berikan ilustrasi dan jelaskan apa yang dilakukan oleh program di bawah ini dan tampilkan hasil eksekusinya. int r, q = 10; 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; q = go_crazy(ptr1, ptr2); r=r*5; q = q + r; 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; 3. Berikan ilustrasi dan jelaskan apa yang dilakukan oleh program di bawah ini dan tampilkan hasil eksekusinya. 111

char stra[80] = "halo apa kabar"; char strb[80]; char *pa, *pb; puts(stra); pa = stra; puts(pa); pb = strb; putchar('\n'); while(*pa!= '\0') *pb++ = *pa++; *pb = '\0'; puts(strb); Proses apakah yang sebenarnya dilakukan pada program tersebut 4. Berikan ilustrasi dan jelaskan apa yang dilakukan oleh program di bawah ini char *my_strcpy(char *, char *); char stra[80]="a string to be used for demonstration"; char strb[80]; my_strcpy(strb, stra); puts(strb); char *my_strcpy(char *destination, char *source) char *p = destination; while (*source!= '\0') *p++ = *source++; *p = '\0'; return destination; 5. Bandingkan fungsi my_strcpy di atas dengan fungsi my_strcpy di bawah ini. Berikan penjelasan terhadap perbedaan proses dari kedua fungsi tersebut char *my_strcpy(char dest[], char source[]) int i = 0; while (source[i]!= '\0') 112

dest[i] = source[i]; i++; dest[i] = '\0'; return dest; E. LAPORAN RESMI 1. Kumpulkan listing program, ilustrasi alokasi memorinya beserta hasil eksekusinya 113