POINTER. Tim Alpro Teknik Informatika

dokumen-dokumen yang mirip
POINTER. Tim Alpro Teknik Informatika

POINTER. Konsep Dasar

ALGORITMA DAN STRUKTUR DATA POINTER DAN FUNCTION

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

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

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

Pengenalan Struktur Data. Farah Zakiyah Rahmanti 2014

Pemrograman Dasar C. Minggu 9

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

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

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

Variabel, Tipe Data, dan Operator. Oleh : Edi Sugiarto, S.Kom, M.Kom

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

Data Structures. Class 5 Pointer. Copyright 2006 by The McGraw-Hill Companies, Inc. All rights reserved.

VARIABEL, TIPE DATA DAN EKSPRESI Bab 2

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

Pointer. Yuliana Setiowati

Pendahuluan Pemrograman Mikrokontroler

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

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

Achmad Solichin.

VARIABEL, TIPE DATA, KONSTANTA, OPERATOR DAN EKSPRESI. Pemrograman Dasar Kelas X Semester 2

Algoritma Pemrograman. Fery Updi,M.Kom

Pertemuan 4 ELEMEN-ELEMEN BAHASA PEMROGRAMAN

BAB VIII POINTER. Tujuan :

Algoritme dan Pemrograman

OPERATOR BAHASA C. Obyektif : 4. Mengetahui macam-macam operator dalam Bahasa C. 5. Mengetahui dan dapat menggunakan format pada tiap tipe data..

ARRAY. Karakteristik

Algoritma dan Pemrograman Lanjut. Pertemuan Ke-11 Pointer 2

Minggu ke-3 Tipe Data Dalam C

Pemrograman Berorientasi Object

Pointer dan Referensi

BAB 3. OPERATOR DALAM BHS C

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

Tipe Data dan Operator

Achmad Solichin.

DIKTAT MATA KULIAH PEMROGRAMAN I BAB XI POINTER

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

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

POINTER. Algoritma dan Pemrograman Tahar Agastani Teknik Informatika UIN Overview. Definisi Pointer Operasi Pointer Pointer dan Argumen Fungsi

BAB III POINTER. Type *variabel-name

Universitas Komputer Indonesia. Pemrograman dengan C++ Builder 2004 Taryana S.

elemen Dasar Bahasa Pemrograman C

Algoritma dan Struktur Data. Ramos Somya

Pointer 1 A. TUJUAN PEMBELAJARAN

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

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

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

MAKALAH POINTER PADA BAHASA C

PERTEMUAN VI POINTER 6.1 Tujuan Praktikum 6.2 Teori Penunjang Pointer

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

MATERI/BAHAN PRAKTIKUM PENDAHULUAN DAN PENGENALAN (IDENTIFIER)

PSEUDOCODE TIPE DATA, VARIABEL, DAN OPERATOR

Bab 2. Dasar-Dasar Pemrograman C

A. TUJUAN PEMBELAJARAN

MODUL V POINTER DAN STRING

Algoritma dan Struktur Data. Pertemuan 5 Pointer

01. Review Array, Pointer dan Struktur

Struct. Tim ALPRO Teknik Informatika

P 4 Bab 3 : Dasar Pemrograman C

SINGLE LINKED LIST (NON CIRCULAR)

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

Struktur Data adalah : suatu koleksi atau kelompok data yang dapat dikarakteristikan oleh organisasi serta operasi yang didefinisikan terhadapnya.

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

IT234 - Algoritma dan Struktur Data. Ramos Somya

Identifier Tipe Data Yoannita, S.Kom.

PRAKTIKUM 11 POINTER 1


04. Single Linked List

Algoritma Pemrograman & Struktur Data

Modul 1 Dasar Dasar Bahasa Pemrograman C

Tipe Data. Pendahuluan. Objektif. Bahan Bacaan

1 MODUL 8 POINTER MODUL 8 POINTER

Algoritma dan Struktur Data Praktikum 3. Pointer

Algoritma dan Struktur Data. Linked List

Tipe data dasar merupakan tipe data yang disediakan oleh kompailer, sehingga dapat langsung dipakai Dalam algoritma dan pemrograman yang termasuk dala

Dasar Komputer & Pemrograman 2A

Algoritma & Pemrograman

Review : Sifat Implementasi Linear List dengan Array

KONSEP POINTER DAN LINKED LIST

STACK (TUMPUKAN) Tumpukan uang koin Tumpukan kotak Tumpukan Buku. Gambar 1. Macam-macam tumpukan

PRAKTIKUM 2. Variabel, Tipe Data dan Operator. Tipe data dan variabel. - Microsoft Visual Studio 2010

xxxx alamat Praktikum 11 POINTER

Pointer. ted = &andy;

VARIABEL & TIPE DATA PEMROGRAMAN C++

disebut ternary operator. Di dalam suatu operasi dapat terdapat banyak operator. Urutan eksekusi dari operatoroperator

BAB IX LINKED LIST (SENARAI BERANTAI)

LIST. Dewi Sartika, M.Kom

Pointer, File Header & Makro

Pendahuluan Struktur Data. Nisa ul Hafidhoh

Identifier, Keywords, Variabel, Tipe Data Primitif dan Operator PBO. Ramos Somya

Pengantar dalam Bahasa Pemrograman Turbo Pascal Tonny Hidayat, S.Kom

TIPE, NAMA, DAN NILAI

BAB 4 PENGENALAN BAHASA C

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

Bahasa Pemrograman Java. Yudi Adha. ST. MMSI

LOGIKA ALGORITMA. Pertemuan 9 By: Augury

Fungsi (Function) Pendahuluan. Objektif. Bahan Bacaan

BAB 10 POINTER 5.1 Tujuan 5.2 Pengertian Pointer Perubah dinamis pointer

Transkripsi:

POINTER Tim Alpro Teknik Informatika

Pointer Pointer merupakan salah satu keunggulan dari bahasa C. Komputer mengalokasikan sebuah area pada memori ketika sebuah variabel dideklarasikan. Area tersebut diacu dengan menggunakan sebuah variabel dalam program, namun ketika program di-compile dan berjalan, komputer mengacu area tersebut dengan menggunakan alamat atau lokasi dari memori.

Contoh Variabel Perhatikan contoh berikut: int angka = 50; Dalam hal ini, area pada memori dialokasikan untuk menyimpan nilai integer. Memori tersebut dapat diakses dengan menggunakan nama angka.

Alamat Komputer mengacu kepada area memori dengan menggunakan sebuah alamat. Alamat rinci dari data yang disimpan bergantung kepada jenis komputer, sistem operasi, dan compiler yang digunakan. Jadi, meskipun nama variabel yang digunakan adalah tetap (fixed), alamat dari variabel yang digunakan akan berbeda pada sistem yang berbeda.

Pointer & Alamat Variabel yang dapat menyimpan alamat disebut pointer, dan alamat yang disimpan dalam pointer biasanya adalah variabel lain

Karakteristik Pointer Hal penting yang harus diketahui adalah, compiler harus tahu jenis dari data yang disimpan dalam variabel yang diacu oleh pointer. Sehingga dapat diketahui jumlah memori yang akan dialokasikan atau bagaimana cara untuk menangani isi dari memori yang diacu oleh pointer. Sebuah pointer pada sebuah variabel char mengacu pada nilai dengan alokasi sebesar 1Byte, sedangkan sebuah pointer pada variabel int biasanya mengalokasikan 4Byte.

Karakteristik Pointer Setiap pointer akan dihubungkan dengan jenis variabel tertentu, dan hanya bisa digunakan untuk mengacu jenis variabel tersebut. Sehingga pointer berjenis pointer to int hanya dapat mengacu pada variabel berjenis int, dsb. Secara umum sebuah pointer dari type tertentu ditulis dengan type* untuk setiap nama type

Deklarasi Pointer Bentuk umum deklarasi pointer: Tipe *Nama-variabel-pointer; Tipe : tipe data pointer Nama-variabel-pointer: nama variabel pointer * : operator memori untuk mengembalikan nilai variabel pada alamatnya Contoh pointer sebuah variabel berjenis int : int *almt; Variabel tersebut dapat menyimpan alamat dari variabel apapun yang berjenis int.

Inisialisasi Pointer Pointer yang tidak diinisialisasi sangatlah berbahaya, lebih berbahaya dari variabel biasa yang tidak diinisialisasi. Jadi, sebaiknya selalu lakukan inisialisasi pointer ketika dideklarasikan. Kita dapat menginisialisasi pointer almt sehingga tidak mengacu kemanapun: int *almt = NULL;

Null Pointer NULL adalah sebuah konstanta dalam standard library dan setara dengan nilai 0 untuk sebuah pointer. NULL memastikan sebuah pointer tidak mengacu ke lokasi manapun dalam memori. Hal tersebut dimaksudkan untuk menghindari penimpaan (overwriting) memori.

Operator Bahasa C menyediakan 2 operator untuk operasi pointer yaitu operator * serta operator &. Operator alamat & digunakan untuk mendapatkan alamat memori dari operandnya. &almt -> address Operator * digunakan untuk mendapatkan nilai dari operandnya *almt -> value

Penggunaan Operator Jika ingin menginisialisasi variabel almt dengan alamat dari variabel yang telah dideklarasikan, kita dapat menggunakan operator address of & : int angka = 50; int *almt = &angka; Nilai awal dari almt adalah alamat dari variabel angka. Perlu diingat bahwa deklarasi dari angka harus dilakukan terlebih dahulu sebelum deklarasi dari pointer yang akan digunakan untuk menyimpan alamat tersebut. int var = *almt; Nilai var adalah 50.

Deklarasi Pointer dan Variabel Tidak ada pendeklarasian khusus dari pointer. Kita dapat mendeklarasikan variabel biasa dan pointer dalam satu pernyataan: double nilai, *lokasi, abc; Pernyataan tersebut mendeklarasikan dua variabel jenis double-precision floating-point yaitu nilai dan abc, dan sebuah variabel *lokasi yang berjenis pointer to double

Pointer VS Variabel Perhatikan contoh lain berikut ini: int *p, q; Pernyataan tersebut mendeklarasikan pointer p berjenis int*, dan sebuah variabel q yang berjenis int. Kesalahan umum yang sering terjadi adalah dengan menganggap variabel p dan q adalah pointer

Contoh Deklarasi Pointer Indirection operator * digunakan untuk mengakses nilai dari variabel yang diacu oleh pointer. Operator tersebut dikenal juga sebagai dereference operator karena digunakan untuk men-dereference sebuah pointer. Perhatikan deklarasi variabel-variabel berikut: int angka = 20; int *pointer = &angka; int hasil = 0;

Mengakses Nilai Melalui Pointer Variabel pointer menampung alamat dari variabel angka, sehingga kita dapat menggunakan ekspresi berikut untuk menghitung nilai yang baru dari variabel hasil: hasil = *pointer + 5; Ekspresi *pointer akan mengevaluasi nilai yang terdapat pada alamat di dalam pointer. Nilai yang tersimpan pada variabel angka adalah 20, sehingga nilai hasil akan menjadi 20 + 5 yaitu 25.

Latihan Deklarasi var X, Y, Z, pointer Alamat X dengan tipe char Nilai var X adalah J Isikan nilai var X ke var Y Mengisi pointer Alamat X dengan alamat memori var X Mengisi nilai dalam pointer Alamat X ke var Z Tampilkan nilai var X, Y, Z

char *Alamat_X,X,Y,Z; X= J ; Y = X; Alamat_X = &X; Z = *Alamat_X; printf( Nilai variabel X adalah %c\n, X); printf( Nilai variabel Y adalah %c\n, Y); printf( Nilai variabel Z adalah %c\n, Z);

Ada Pertanyaan?

Array & Pointer Pointer pada array memerintahkan pointer agar menunjuk ke alamat yang telah dialokasikan oleh array tersebut. Definisi pointer: int *P; kemudian kita tunjuk ke alamat Array A P = &A[0]; P akan menunjuk alamat pertama Array

Array Deklarasi array int A[10]; Kita memerintahkan compiler untuk menyediakan alamat memori sebesar 10 * sizeof(int). Bila ukuran int adalah 4 byte, maka compiler akan mengalokasikan sebesar 10 * 4 byte = 40 byte memori untuk A.

Malloc() Fungsi untuk mengalokasikan memori Prototipe void * malloc(size_n) Fungsi malloc() akan mengembalikan pointer ke sejumlah n byte ruang memory yang belum diinisialisasi. Apabila tidak terpenuhi, maka fungsi ini akan mengembalikan nilai NULL. Deklarasi int array[10]; int *p; p = (int *) malloc(10 * sizeof(int)); // p = (int*) malloc(40)

Operasi Pointer - Assignment Nilai suatu variabel pointer dapat dipindahkan ke variabel pointer yang lain Contoh float Y, *X1, *X2; Y = 12.34; X1 = &Y; X2 = X1; /*assignment variabel pointer*/ printf( Nilai variabel Y ada di alamat %p\n, X1); printf( Nilai variabel Y ada di alamat %p\n, X2); Nilai variabel Y ada di alamat FFDA Nilai variabel Y ada di alamat FFDA

Operasi Pointer - Aritmatika Suatu variabel pointer dapat ditambah atau dikurangi dengan suatu nilai integer Operasi penambahan pointer dengan suatu nilai integer merupakan suatu peningkatan nilai pointer yang menunjukkan lokasi nilai data berikutnya (bukan byte berikutnya) di memori.

Operasi Pointer - Aritmatika Contoh int Nilai1,Nilai2,Nilai3, *Penunjuk; Nilai1 = 123; Nilai2 = 345; Nilai3 = 678; Penunjuk = &Nilai1; printf( Nilai %d di alamat memori %p\n, *Penunjuk, Penunjuk); printf( Nilai %d di alamat memori %p\n, *(Penunjuk+1), Penunjuk+1); printf( Nilai %d di alamat memori %p\n, *(Penunjuk+2), Penunjuk+2); Nilai 123 di alamat memori 1000 Nilai 345 di alamat memori 1002 Nilai 678 di alamat memori 1004

Operasi Pointer -Logika Nilai suatu variabel pointer dapat dipindahkan ke variabel pointer yang lain Contoh int Nilai1=100,Nilai2=200, *PN1,*PN2,*PN3; PN1 = &Nilai1; PN2 = &Nilai2; PN3 = PN1; Penunjuk = &Nilai1; If(PN1<PN2) printf( PN1 menunjuk ke memori lebih rendah dari PN2\n ); If(PN1= =PN2) printf( PN1 menunjuk ke memori yg sama dengan PN2\n ); If(PN1>PN2) printf( PN1 menunjuk ke memori lebih rendah dari PN2\n ); If(PN1<PN3) printf( PN1 menunjuk ke memori lebih rendah dari PN3\n ); If(PN1= =PN3) printf( PN1 menunjuk ke memori yg sama dengan PN3\n ); If(PN1>PN3) printf( PN1 menunjuk ke memori lebih rendah dari PN3\n );

TERIMAKASIH