7 pointer - copy

50
POINTER ALGORITMA DAN DASAR PEMROGRAMAN

Upload: fisma-ananda

Post on 20-Feb-2017

216 views

Category:

Education


0 download

TRANSCRIPT

Slide 1

POINTERALGORITMA DAN DASAR PEMROGRAMAN

KONSEP DASARPointer (variabel penunjuk) adalah suatu variabel yang berisi dengan alamat lokasi suatu memori tertentu.Jadi suatu pointer bukan berisi dengan suatu nilai data, tetapi berisi suatu alamat.

KONSEP DASARMisalnya, X adalah suatu variabel yang berisi nilai J. X bukan variabel penunjuk. Nilai dari X ini oleh kompiler C akan diletakkan di suatu lokasi memori tertentu. Nilai ini dapat diakses jika diketahui alamat memorinya. Alamat dari nilai X ini dapat diketahui dari ungkapan &X. Misalnya alamat dari nilai X ini akan disimpan di suatu variabel, maka dapat dituliskan sebagai Alamat_X = &X. Alamat_X adalah variabel pointer, atau disebut dengan pointer ke X, karena variabel ini menunjukkan ke lokasi di mana nilai X disimpan.

/* -------------------------------------------- Nama Program: ADP_Pointer_1.cpp Larik String --------------------------------------------- */

#include #include

main(){char *Alamat_X, X;

printf("Contoh Program Pointer\n"); printf("______________________\n"); printf("\n");

X = 'J'; Alamat_X = &X; printf("Nilai dari Variabel X, adalah 'J' berada di alamat %p\n", Alamat_X);

printf("\n"); system("pause");}

HASIL EKSEKUSI

OPERATOR POINTERBahasa C menyediakan dua buah operator untuk operasi pointer, yaitu * dan &. Kedua operator ini adalah operator unary.Operator alamat & digunakan untuk mendapatkan alamat memori dari operandnya.Operator * digunakan untuk mendapatkan nilai dari operandnya. Operand untuk operator * adalah variabel pointer, dengan kata lain, operator * digunakan untuk mendapatkan nilai yang berada di alamat memori yang ditunjukkan oleh variabel pointer

/* --------------------------------------------------------- Nama Program: ADP_Pointer_2_Operator.cpp Larik String --------------------------------------------------------- */

#include #include

main(){char *Alamat_X,X,Y,Z;

printf("Contoh Program Operator Pointer\n"); printf("_______________________________\n"); printf("\n");

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 berada di alamat %p\n", Alamat_X);

printf("\n"); system("pause");}

HASIL EKSEKUSI

DEKLARASI POINTERVariabel pointer dideklarasikan dengan nama variabelnya ditulis dengan diawali karakter asterik *.Bentuk umum deklarasi variabel pointer ini adalah:tipe *nama-variabel-pointer;Variabel pointer yang dideklarasikan dapat juga langsung diberi nilai awal.

/* ----------------------------------------- Nama Program: ADP_Pointer_3_Deklarasi.cpp Larik String ----------------------------------------- */

#include #include

main(){float Nilai, *Alamat=&Nilai;

printf("Contoh Program Deklarasi Pointer\n"); printf("________________________________\n"); printf("\n");

Nilai = 100.00;

printf("Nilai %8.2f berada di alamat memori %p\n", Nilai, Alamat);

printf("\n"); system("pause");}

HASIL EKSEKUSI

OPERASI POINTERTerdiri dari 1. Operasi Pengerjaan2. Operasi Aritmatika3. Operasi Logika

OPERASI PENGERJAANSuatu variabel pointer dapat dikerjakan ke variabel pointer lainnya, yaitu nilai suatu variabel pointer dapat dipindahkan ke variabel pointer yang lainnya.

OPERASI PENGERJAAN/* --------------------------------------------------------------------------- Nama Program: ADP_Pointer_4_Operasi_Pengerjaan.cpp Operasi Pengerjaan Pointer --------------------------------------------------------------------------- */

#include #include

main(){float Y, *X1, *X2;

printf("Contoh Program Operasi Pengerjaan Pointer\n"); printf("_________________________________________\n"); printf("\n");

Y = 150,97; 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);

printf("\n"); system("pause");}

HASIL EKSEKUSI

OPERASI ARITMATIKAVariabel pointer dapat dilakukan operasi aritmatika, namun hanya untuk operasi penambahan dan pengurangan, sedangkan operasi yang lain seperti perkalian, pembagian, dan pemangkatan jarang dilakukan, karena kurang berguna untuk variabel pointer ini.Penambahan dan pengurangan yang dapat dilakukan untuk variabel pointer ini hanya dengan suatu nilai integer saja, sedangkan nilai yang lain tidak dapat dilakukan.

OPERASI ARITMATIKAProgram berikut ini akan menampilkan 10 buah data yang masing-masing mempunyai alamat yang berbeda-beda.

/* ------------------------------------------------------------------------- Nama Program: ADP_Pointer_5_Operasi_Aritmatika.cpp Operasi Aritmatika Pointer -------------------------------------------------------------------------- */

#include #include

main(){int I[10], *I_pointer; double F[10], *F_pointer; int x;

printf("Contoh Program Operasi Aritmatika Pointer\n"); printf("________________________________________\n"); printf("\n");

I_pointer = I; F_pointer = F;

for(x=0;x