POINTER. Konsep Dasar

dokumen-dokumen yang mirip
POINTER. Tim Alpro Teknik Informatika

POINTER. Tim Alpro Teknik Informatika

Pointer. Yuliana Setiowati

Pendahuluan Pemrograman Mikrokontroler

ALGORITMA DAN STRUKTUR DATA POINTER DAN FUNCTION

OPERATOR & UNGKAPAN. Contoh operator : a + b Simbol + merupakan operator untuk melakukan operasi penjumlahan dari kedua operandnya ( yaitu a dan b ).

BAB 5 PERULANGAN DAN ARRAY

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

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

Achmad Solichin.

BAB IX LINKED LIST (SENARAI BERANTAI)

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

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

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

BAB 6 FUNGSI TUJUAN PRAKTIKUM

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

TUGAS MATA KULIAH ALGORITMA PEMROGRAMAN 3

DIKTAT MATA KULIAH PEMROGRAMAN I BAB XI POINTER

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

BAB 3. OPERATOR DALAM BHS C

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

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

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

ARRAY PENGANTAR PROGRAM STUDI. Institut Teknologi Sumatera

Algoritma Pemrograman. Fery Updi,M.Kom

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.

PSEUDOCODE TIPE DATA, VARIABEL, DAN OPERATOR

Algoritme dan Pemrograman

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

PRAKTIKUM 11 POINTER 1

Ekspresi, Pernyataan & Operasi Aritmetika/Logika

BAB 10 POINTER 5.1 Tujuan 5.2 Pengertian Pointer Perubah dinamis pointer

Tipe Data dan Variabel. Dosen Pengampu Muhammad Zidny Naf an, M.Kom

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

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

Array Dimensi Satu. Pendahuluan. Slamet Kurniawan, S.Kom

PERTEMUAN VI POINTER 6.1 Tujuan Praktikum 6.2 Teori Penunjang Pointer

Struktur Data. Belajar Struktur Data Menggunakan Pascal Pertemuan-5

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

Bab 9 Pointer. 9.1 Pendeklarasian pointer

elemen Dasar Bahasa Pemrograman C

MATERI/BAHAN PRAKTIKUM PENDAHULUAN DAN PENGENALAN (IDENTIFIER)

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

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

Pertemuan 7. REVIEW dan QUIS

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

BAB IX LINKED LIST (SENARAI BERANTAI)

P 4 Bab 3 : Dasar Pemrograman C

Algoritma dan Pemrograman Lanjut. Pertemuan Ke-11 Pointer 2

BAB VIII POINTER. Tujuan :

BAB III POINTER. Type *variabel-name

Dasar Komputer & Pemrograman 2A

LARIK (ARRAY) Latar Belakang Array

POLITEKNIK CALTEX RIAU

Pertemuan 04. Pemrograman Dasar 2012

xxxx alamat Praktikum 11 POINTER

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

KONSEP POINTER DAN LINKED LIST

Pert 2 Struktur Data (mengajarkomputer.wordpress.com) ARRAY DIMENSI 1 & 2

Pointer (Penunjuk) Modul 6

Pointer 1 A. TUJUAN PEMBELAJARAN

Array 1 A. TUJUAN PEMBELAJARAN

POLITEKNIK CALTEX RIAU

Ekspresi, Pernyataan & Operasi Aritmetika/Logika

LOGIKA ALGORITMA. Pertemuan 9 By: Augury

Tipe Data dan Operator

ALGORITMA (2) Mengupas Kentang

SINGLE LINKED LIST (NON CIRCULAR)

PERTEMUAN II Tipe Data, Variabel, Konstanta, Operator

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

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

LOGIKA ALGORITMA. Pertemuan 4. By: Augury

KONSEP POINTER DAN LINKED LIST

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

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

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

Pertemuan 4 ELEMEN-ELEMEN BAHASA PEMROGRAMAN

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

OPERATOR, PERULANGAN DAN SELEKSI KONDISI

Algoritma Pemrograman & Struktur Data

BAB XI ARRAY (LARIK)

BAB IV LARIK DAN PENUNJUK

P3 Dasar Struktur Data TIF42/SIF42

Typedef dan Struct. Pendahuluan. Objektif. Bahan Bacaan

VARIABEL, TIPE DATA DAN EKSPRESI Bab 2

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

MODUL PRAKTIKUM BAHASA PEMROGRAMAN TESTRUKTUR MODUL 8 POINTER

Badiyanto, S.Kom., M.Kom. PBO java

PRAKTIKUM 11 POINTER 1

ARRAY. Karakteristik

POINTER I. Oleh : Mike Yuliana PENS-ITS

KONSEP POINTER DAN LINKED LIST

Chapter 3.2 : Tipe, Nama dan Nilai

KONSEP POINTER DAN LINKED LIST

ARRAY. Array atau Larik merupakan Struktur Data Sederhana yang dapat didefinisikan sebagai pemesanan alokasi memory sementara pada komputer.

Algoritma & Pemrograman #3

Algoritma dan Struktur Data Praktikum 3. Pointer

Transkripsi:

POINTER Konsep Dasar Suatu pointer(variabel penunjuk) adalah suatu variabel yang berisi dengan alamat lokasi memori tertentu. Jadi suatu pointer bukan berisi dengan suatu nilai data tetapi berisi dengan suatu alamat. Misalnya alamat dari suatu nilai X ini akan disimpan di suatu variabel, maka dapat dituliskan sebagai Alamat_X =&X. Alamat_X adalah variabel pointer, atau disebut pointer ke X, karena variabel ini menunjuk ke suatu lokasi dimana nilai X disimpan. char*alamat_x,x; X= J ; Alamat_X = &X; printf( Nilai variabel X, yaitu J berada di alamat %p\n, Alamat_X); Nilai variabel X, yaitu J berada di alamat FFDD Alamat memori Nilai Disimpan FFDB FFDC FFDD FFDE J FFDD Alamat_X

Operator POINTER Bahasa C menyediakan dua buah operator untuk operasi pointer yaitu operator * dan operator &. Operator alamat & digunakan untuk mendapatkan alamat memori dari operandnya. Operator * digunakan untuk mendapatkan nilai dari operandnya. char*alamat_x,x,y,z; X= J ; Alamat_X = &X; Y = 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); printf( Nilai variabel X adalah berada di alamat %p\n, Alamat_X); Nilai variabel X adalah J Nilai variabel Y adalah J Nilai variabel Z adalah J Nilai variabel X berada di alamat FFDB DEKLARASI POINTER Bentuk umum deklarasi variabel pointer : Tipe *nama-variabel-pointer;

float Nilai, *Alamat=&Nilai; Nilai = 25.55; printf( Nilai %7.2f berada di alamat memori %p\n, Nilai, Alamat); Nilai 25.55 berada di alamat memori FFDA OPERASI POINTER Variabel pointer dapat dioperasikan secara variabel biasa maupun secara aritmatika dan dapat dibandingkan secara operasi logika. Operasi Pengerjaan Maksud dari operasi pengerjaan ini adalah nilai suatu variabel pointer dapat dipindahkan ke variabel pointer yang lainnya. float Y, *X1, *X2; Y = 12.34; X1 = &Y; X2 = X1; /* pengerjaan 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 Aritmatika Suatu variabel pointer dapat ditambah atau dikurangi dengan suatu nilai integer saja. Operasi penambahan pointer dengan suatu nilai integer merupakan suatu peningkatan nilai pointer yang menunjukkan lokasi nilai data berikutnya (bukan byte berikutnya) di memori. 1000 1001 1002 1003 1004 1000+2xn 1000 X X+1 X+2 X+n int Nilai1,Nilai2,Nilai3, *Penunjuk; Nilai1 = 123; Nilai1 = 123; Nilai1 = 123; 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 FFD8 Nilai 345 di alamat memori FFDA Nilai 678 di alamat memori FFDC Operasi Logika Dua buah variabel pointer dapat dibandingkan jika keduanya mempunyai tipe yang sama atau keduanya bernilai null. 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 ); PN1 menunjuk ke memori lebih rendah dari PN2 PN1 menunjuk ke memori yg sama dengan PN3 OPERASI POINTER UNTUK LARIK Pointer dan larik mempunyai hubungan yang sangat erat. Misalnya suatu larik dimensi satu dengan nama X dan variabel pointer dengan nama P. Alamat elemen-elemen larik dimensi satu ini mulai elemen pertama sampai dengan n dapat ditunjukkan sebagai berikut :

Elemen ke 1: &X[0] atau X atau X+0 atau P atau P+0 Elemen ke 2: &X[1] atau X+1 atau P+1 Elemen ke 3: &X[2] atau X +2 atau P+2 Elemen ke n: &X[n-1] atau X +n-1 atau P+n-1 Sedangkan nilai-nilai dari elemen larik dimensi satu ini dapat diakses sebagai berikut ini. Elemen ke 1: &X[0] atau *X atau *(X+0) atau *P atau *(P+0) Elemen ke 2: &X[1] atau *(X+1) atau *(P+1) Elemen ke 3: &X[2] atau *(X +2) atau *(P+2) Elemen ke n: &X[n-1] atau *(X +n-1) atau *(P+n-1) int *P, X[7] = 10,75,50,12,15,55,25; int I; P = X; printf( Elemen Alamat Nilai\n ); printf( ------------------------------------------------------------------------------\n ); for(i=0; I<7; I++) printf( %4d P+%1d=%p;X+%1d=%p;&X[%1d]=%p X[%d]=%2d; \ *(P+%1d)=%2d;*(X+%1d)=%2d\n, I,I,P+I,I,X+I,I,\ &X[I], I, X[I], I, *(P+I), I, *(X+I)); Jika program ini dijalankan, akan didapatkan hasil Elemen Alamat Nilai ---------------------------------------------------- ---------------------------------------- 0 P+0=FFCE;X+0=FFCE; &X[0]=FFCE X[0]=10;*(P+0)=10;*(X+0)=10 1 P+1=FFD0;X+1= FFD0; &X[1]=FFD0 X[1]=75;*(P+1)=75;*(X+1)=75 2 P+2=FFD2;X+2= FFD2; &X[2]=FFD2 X[2]=50;*(P+2)=50;*(X+2)=50 3 P+3=FFD4;X+3= FFD4; &X[3]=FFD4 X[3]=12;*(P+3)=12;*(X+3)=12 4 P+4=FFD6;X+4= FFD6; &X[4]=FFD6 X[4]=15;*(P+4)=15;*(X+4)=15 5 P+5=FFD8;X+5= FFD8; &X[5]=FFD8 X[5]=55;*(P+5)=55;*(X+5)=55 6 P+6=FFDA;X+6=FFDA; &X[6]=FFDA X[6]=25;*(P+6)=25;*(X+6)=25