SlideShare a Scribd company logo
ALGORITMA DAN
DASAR PEMROGRAMAN
Pointer (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.
 Misalnya, 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 <stdio.h>
#include <stdlib.h>
main()
{
char *Alamat_X, X;
printf("Contoh Program Pointern");
printf("______________________n");
printf("n");
X = 'J';
Alamat_X = &X;
printf("Nilai dari Variabel X, adalah %c berada di alamat %pn", X,Alamat_X);
printf("n");
system("pause");
}
 Bahasa 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 <stdio.h>
#include <stdlib.h>
main()
{
char *Alamat_X,X,Y,Z;
printf("Contoh Program Operator Pointern");
printf("_______________________________n");
printf("n");
X = 'J';
Alamat_X = &X;
Y = X;
Z = *Alamat_X;
printf("Nilai Variabel X adalah %cn", X);
printf("Nilai Variabel Y adalah %cn", Y);
printf("Nilai Variabel Z adalah %cn", Z);
printf("Nilai Variabel X berada di alamat %pn", Alamat_X);
printf("n");
system("pause");
}
Variabel 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 <stdio.h>
#include <stdlib.h>
main()
{
float Nilai, *Alamat=&Nilai;
printf("Contoh Program Deklarasi Pointern");
printf("________________________________n");
printf("n");
Nilai = 100.00;
printf("Nilai %8.2f berada di alamat memori %pn", Nilai, Alamat);
printf("n");
system("pause");
}
Terdiri dari
1. Operasi Pengerjaan
2. Operasi Aritmatika
3. Operasi Logika
Suatu variabel pointer dapat
dikerjakan ke variabel pointer
lainnya, yaitu nilai suatu
variabel pointer dapat
dipindahkan ke variabel pointer
yang lainnya.
/* ---------------------------------------------------------------------------
Nama Program: ADP_Pointer_4_Operasi_Pengerjaan.cpp
Operasi Pengerjaan Pointer
--------------------------------------------------------------------------- */
#include <stdio.h>
#include <stdlib.h>
main()
{
float Y, *X1, *X2;
printf("Contoh Program Operasi Pengerjaan Pointern");
printf("_________________________________________n");
printf("n");
Y = 150,97;
X1 = &Y;
X2 = X1; //Pengerjaan variabel pointer
printf("Nilai variabel Y ada di alamat %pn", X1);
printf("Nilai variabel Y ada di alamat %pn", X2);
printf("n");
system("pause");
}
 Variabel 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.
Program 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 <stdio.h>
#include <stdlib.h>
main()
{
int I[10], *I_pointer;
double F[10], *F_pointer;
int x;
printf("Contoh Program Operasi Aritmatika Pointern");
printf("________________________________________n");
printf("n");
I_pointer = I;
F_pointer = F;
for(x=0;x<10;x++)
printf("%p %pn", I_pointer+x, F_pointer+x);
printf("n");
system("pause");
}
 Program berikut ini penambahan dan
pengurangan variabel pointer dengan variabel
pointer lainnya.
 P_Awal adalah variabel pointer yang
menunjuk ke alamat memori letak elemen
larik yang pertama dan P_Akhir adalah
variabel pointer yang menunjuk ke alamat
letak elemen larik yang terakhir. Selisih dari
kedua nilai ini adalah nilai integer 4 yang
menunjukkan jumlah dari elemen lariknya.
/* ---------------------------------------------------
Nama Program: ADP_Pointer_5a_Operasi_Aritmatika.cpp
Operasi Aritmatika Pointer
--------------------------------------------------- */
#include <stdio.h>
#include <stdlib.h>
main()
{
int *P_Awal, *P_Akhir;
int X[5] = {20, 40, 60, 80, 100}, I;
int x;
printf("Contoh Program Operasi Aritmatika Pointern");
printf("_________________________________________n");
printf("n");
P_Awal = &X[0];
P_Akhir = &X[4];
printf("Alamat dari nilai elemen awal X[0] adalah %pn", P_Awal);
printf("Alamat dari nilai elemen akhir X[4] adalah %pn", P_Akhir);
printf("Dari X[0] ke X[4] ada sebanyak %d elemennn", P_Akhir-P_Awal);
for(I=0;I<=4;I++){
printf("Nilai elemen ke %d adalah %d di alamat %pn", I,X[I],P_Awal);
P_Awal = P_Awal + 1;
}
printf("n");
system("pause");
}
Operasi logika pada pointer adalah untuk
membandingkan dua buah nilai dari
variabel pointer dengan menggunakan
operator hubungan seperti !=, ==, <, dan >.
Variabel pointer yang dapat dibandingkan
jika keduanya mempunyai tipe yang sama
atau keduanya bernilai null.
/* --------------------------------------------------------------------
Nama Program: ADP_Pointer_6_Operasi_Logika.cpp
Operasi Logika Pointer
-------------------------------------------------------------------- */
#include <stdio.h>
#include <stdlib.h>
main()
{
int Nilai1=100, Nilai2=100, *P_Nilai1, *P_Nilai2, *P_Nilai3;
printf("Contoh Program Operasi Logika Pointern");
printf("_____________________________________n");
printf("n");
P_Nilai1 = &Nilai1;
P_Nilai2 = &Nilai2;
P_Nilai3 = P_Nilai1;
if(P_Nilai1<P_Nilai2) printf("P_Nilai1 menunjuk ke memori lebih rendah dari P_Nilai2n");
if(P_Nilai1==P_Nilai2) printf("P_Nilai1 menunjuk ke memori yang sama dengan P_Nilai2n");
if(P_Nilai1>P_Nilai2) printf("P_Nilai1 menunjuk ke memori yang lebih tinggi dari P_Nilai2n");
if(P_Nilai1<P_Nilai3) printf("P_Nilai1 menunjuk ke memori lebih rendah dari P_Nilai3n");
if(P_Nilai1==P_Nilai3) printf("P_Nilai1 menunjuk ke memori yang sama dengan P_Nilai3n");
if(P_Nilai1>P_Nilai3) printf("P_Nilai1 menunjuk ke memori yang lebih tinggi dari P_Nilai3n");
printf("n");
system("pause");
}
 Pointer dan larik mempunyai hubungan
antara lain dalam hal pengaksesan nilai-nilai
elemen lariknya.
 Hal tersebut dapat dilihat pada contoh
program berikut ini, dimana untuk
pengaksesan elemen-elemen larik yang urut
mulai elemen ke-1 sampai ke-n dapat ditulis
sebagai *(P+0), *(P+1), *(P+2), sampai ke
*(P+n). Karena peningkatannya adalah 1,
maka penulisan tersebut dapat juga ditulis
sebagai *P++.
/* -----------------------------------------------------------------
Nama Program: ADP_Pointer_6_Operasi_Larik.cpp
Operasi Pointer Untuk Larik
----------------------------------------------------------------- */
#include <stdio.h>
#include <stdlib.h>
main()
{
int *P, X[7] = {10,20,30,40,50,60,70};
int I;
printf("Contoh Program Mengakses Elemen Larik Menggunakan Pointern");
printf("_________________________________________________________n");
printf("n");
P = X;
printf("Elemen Alamat Nilain");
for(I=0;I<7;I++)
printf("%4d P+%ld=%p; X+%ld=%p; &X[%ld]=%p x[%d]=%2d;"
"*(P+%ld)=%2d; *(X+%ld)=%2dn",I,I,P+I,I,X+I,I,
&X[I],I,X[I],I,*(P+I),I,*(X+I));
printf("n");
system("pause");
}
Suatu nilai dapat diberikan langsung ke
elemen larik dengan cara pertama yaitu
menggunakan indeks dari larik.
Cara yang kedua yaitu dengan
memberikan nilai ke lokasi memori dimana
alamatnya merupakan alamat letak dari
nilai elemen lariknya. Cara yang kedua ini
dapat dilakukan dengan menggunakan
pointer.
 Contoh program berikut akan memperlihatkan
nilai-nilai elemen larik dimensi satu X akan diisi
dengan nilai-nilai tertentu dengan menggunakan
cara yang pertama.
 Elemen pertama dari larik diberi dengan nilai 5.
Elemen kedua diisi dengan nilai yang sama
dengan nilai elemen pertama, yaitu bernilai 5.
Elemen ketiga diisi dengan nilai yang ada di
elemen ke satu (ditunjukkan oleh ungkapan *P
yang berarti X[0]) ditambah dengan nilai numerik
2, sehingga akan berisi dengan nilai 7 dan
seterusnya.
/* -------------------------------------------------------------------
Nama Program: ADP_Pointer_7a_Operasi_Larik.cpp
Operasi Pointer Untuk Larik
------------------------------------------------------------------- */
#include <stdio.h>
#include <stdlib.h>
main()
{
int *P, X[5];
printf("Contoh Program Memberi Nilai Elemen Larik Menggunakan Pointern");
printf("_____________________________________________________________n");
printf("n");
P = X;
X[0] = 5; //X[0] diisi dengan nilai 5, sehingga X[0]=5
X[1] = X[0]; //X[0] diisi dengan nilai X[0], sehingga X[1]=5
X[2] = *P+2; //X[0] diisi dengan nilai X[0]+2, sehingga X[2]=7
X[3] = *(P+1)-3;//X[0] diisi dengan nilai X[1]-3, sehingga X[3]=2
X[4] = *(X+2); //X[0] diisi dengan nilai X[2], sehingga X[4]=7
printf("%d %d %d %d %dn",X[0], X[1], X[2], X[3],X[4]);
printf("n");
system("pause");
}
 Contoh program berikut akan memperlihatkan
nilai-nilai elemen larik dimensi satu X akan
diisi dengan nilai-nilai tertentu dengan
menggunakan cara yang kedua.
 Nilai elemen pertama dari larik diberi dengan
nilai5. Nilai elemen kedua diberi dengan nilai
yang sama dengan elemen pertama. Nilai
elemen ketiga diberi nilai yang ada di elemen
pertama ditambah dengan nilai numerik 2
sehingga akan berisi dengan nilai 7 dan
seterusnya.
/* -------------------------------------------------------------------
Nama Program: ADP_Pointer_7b_Operasi_Larik.cpp
Operasi Pointer Untuk Larik
-------------------------------------------------------------------- */
#include <stdio.h>
#include <stdlib.h>
main()
{
int *P, X[5];
printf("Contoh Program Memberi Nilai Elemen Larik Menggunakan Pointern");
printf("_____________________________________________________________n");
printf("n");
P = X;
*P = 5; //X[0] diisi dengan nilai 5, sehingga X[0]=5
*(P+1) = X[0]; //X[0] diisi dengan nilai X[0], sehingga X[1]=5
*(X+2) = *P+2; //X[0] diisi dengan nilai X[0]+2, sehingga X[2]=7
*(P+3) = *(P+1)-3; //X[0] diisi dengan nilai X[1]-3, sehingga X[3]=2
*(P+4) = *(X+2); //X[0] diisi dengan nilai X[2], sehingga X[4]=7
printf("%d %d %d %d %dn",X[0], X[1], X[2], X[3],X[4]);
printf("n");
system("pause");
}
 Pemilihan penggunaan indeks atau pointer untuk mengakses
atau memberi nilai elemen-elemen larik tergantung dari
pertimbangan kecepatan proses program dan tingkat
kerumitannnya.
 Jika pengaksesan elemen-elemen larik dilakukan secara urut,
penggunaan pointer akan menghasilkan proses program yang
lebih cepat dibandingkan dengan menggunakan indeks.
 Jika pengaksesan elemen-elemen larik menggunakan rumus-
rumus tertentu yang rumit untuk menunjukkan urutan elemennya,
maka penggunaan indeks lebih disukai, karena penggunaan
pointer akan lebih rumit dan membingungkan.
 Karena biasanya kecepatan proses program seringkali dijadikan
alasan yang utama, maka banyak program-program aplikasi yang
ditulis dengan bahasa C menggunakan pointer untuk
pengaksesan elemen-elemen larik.
Pointer sebagai suatu larik berbeda
dengan suatu lrik yang dioperasikan
dengan menggunakan pointer.
Pointer sebagai suatu larik
maksudnya adalah suatu pointer
digunakan sebagai pengganti suatu
larik.
Kristanto, Andri. (2009). Algoritma &
Pemrograman dengan C++ Edisi 2.
Yogyakarta. Graha Ilmu.
Hartono, Jogiyanto, MBA., Ph.D. (2002).
Konsep Dasar Pemrograman Bahasa C.
Yogyakarta. Andi.

More Related Content

What's hot

Function
FunctionFunction
Function
Akmal Fajar
 
Fungsi dan Array Pada C++
Fungsi dan Array Pada C++Fungsi dan Array Pada C++
Fungsi dan Array Pada C++
Toro Jr.
 
Presentasi Pengenalan konsep pemrograman
Presentasi Pengenalan konsep pemrogramanPresentasi Pengenalan konsep pemrograman
Presentasi Pengenalan konsep pemrograman
Muraba Nasuha
 
C programming language notes (5)
C programming language notes (5)C programming language notes (5)
C programming language notes (5)
nakomuri
 
Algoritma Pemrograman - Perintah Input/Output
Algoritma Pemrograman - Perintah Input/OutputAlgoritma Pemrograman - Perintah Input/Output
Algoritma Pemrograman - Perintah Input/Output
Institut Sains dan Teknologi Nasional
 
Awal dasar belajar c++
Awal dasar belajar c++Awal dasar belajar c++
Awal dasar belajar c++farizky berian
 
07 function 2
07 function 207 function 2
fungsi algoritma
fungsi algoritmafungsi algoritma
fungsi algoritma
Dhan junkie
 
Laporan Praktikum ALPRO-Berhitung Rumus Statistika
Laporan Praktikum ALPRO-Berhitung Rumus StatistikaLaporan Praktikum ALPRO-Berhitung Rumus Statistika
Laporan Praktikum ALPRO-Berhitung Rumus Statistika
Shofura Kamal
 

What's hot (10)

Function
FunctionFunction
Function
 
Fungsi dan Array Pada C++
Fungsi dan Array Pada C++Fungsi dan Array Pada C++
Fungsi dan Array Pada C++
 
Presentasi Pengenalan konsep pemrograman
Presentasi Pengenalan konsep pemrogramanPresentasi Pengenalan konsep pemrograman
Presentasi Pengenalan konsep pemrograman
 
C programming language notes (5)
C programming language notes (5)C programming language notes (5)
C programming language notes (5)
 
Algoritma Pemrograman - Perintah Input/Output
Algoritma Pemrograman - Perintah Input/OutputAlgoritma Pemrograman - Perintah Input/Output
Algoritma Pemrograman - Perintah Input/Output
 
Awal dasar belajar c++
Awal dasar belajar c++Awal dasar belajar c++
Awal dasar belajar c++
 
07 function 2
07 function 207 function 2
07 function 2
 
fungsi algoritma
fungsi algoritmafungsi algoritma
fungsi algoritma
 
Laporan Praktikum ALPRO-Berhitung Rumus Statistika
Laporan Praktikum ALPRO-Berhitung Rumus StatistikaLaporan Praktikum ALPRO-Berhitung Rumus Statistika
Laporan Praktikum ALPRO-Berhitung Rumus Statistika
 
Tistrukdat5
Tistrukdat5Tistrukdat5
Tistrukdat5
 

Similar to 7.pointer

2 adp tipe data dan operator
2   adp tipe data dan operator2   adp tipe data dan operator
2 adp tipe data dan operatorAvenzz Venzz
 
2.1 adp tipe data dan operator
2.1 adp tipe data dan operator2.1 adp tipe data dan operator
2.1 adp tipe data dan operatorHardini_HD
 
2 adp tipe data dan operator
2   adp tipe data dan operator2   adp tipe data dan operator
2 adp tipe data dan operatorFaisal Amir
 
4.adp struktur perulangan
4.adp struktur perulangan4.adp struktur perulangan
4.adp struktur perulangan
Hardini_HD
 
4 adp struktur perulangan
4   adp struktur perulangan4   adp struktur perulangan
4 adp struktur perulanganFisma Ananda
 
4 adp struktur perulangan
4   adp struktur perulangan4   adp struktur perulangan
4 adp struktur perulangan
Avenzz Venzz
 
Ix struktur pointer
Ix struktur pointerIx struktur pointer
Ix struktur pointer
Dhan junkie
 
Pengantar R
Pengantar RPengantar R
Pengantar R
Raden Maulana
 
Pascal (Pengenalan).pdf
Pascal (Pengenalan).pdfPascal (Pengenalan).pdf
Pascal (Pengenalan).pdf
DesaSumbung
 
Pengenalan pascal asli
Pengenalan pascal asliPengenalan pascal asli
Pengenalan pascal asli
Nadya Olivia
 
Dasar dasar turbo pascal
Dasar dasar turbo pascalDasar dasar turbo pascal
Dasar dasar turbo pascal
Duriani
 
Pengenalan bahasa c++
Pengenalan bahasa c++Pengenalan bahasa c++
Pengenalan bahasa c++
Alvin Setiawan
 
Pertemuan6.ppt
Pertemuan6.pptPertemuan6.ppt
Pertemuan6.ppt
ssuser3901ab
 
Algoritma pemrograman 14
Algoritma pemrograman 14Algoritma pemrograman 14
Algoritma pemrograman 14
ZainalAbidin909479
 
Pengenalan pascal
Pengenalan pascalPengenalan pascal
Pengenalan pascal
fhnx
 
6 adp array (larik)
6   adp array (larik)6   adp array (larik)
6 adp array (larik)
Fisma Ananda
 
6 adp array (larik)
6   adp array (larik)6   adp array (larik)
6 adp array (larik)
Faisal Amir
 
6.adp array (larik)
6.adp array (larik)6.adp array (larik)
6.adp array (larik)
Hardini_HD
 
6 adp array (larik)
6   adp array (larik)6   adp array (larik)
6 adp array (larik)
Chabil_Juniar
 
6 adp array (larik)
6   adp array (larik)6   adp array (larik)
6 adp array (larik)Avenzz Venzz
 

Similar to 7.pointer (20)

2 adp tipe data dan operator
2   adp tipe data dan operator2   adp tipe data dan operator
2 adp tipe data dan operator
 
2.1 adp tipe data dan operator
2.1 adp tipe data dan operator2.1 adp tipe data dan operator
2.1 adp tipe data dan operator
 
2 adp tipe data dan operator
2   adp tipe data dan operator2   adp tipe data dan operator
2 adp tipe data dan operator
 
4.adp struktur perulangan
4.adp struktur perulangan4.adp struktur perulangan
4.adp struktur perulangan
 
4 adp struktur perulangan
4   adp struktur perulangan4   adp struktur perulangan
4 adp struktur perulangan
 
4 adp struktur perulangan
4   adp struktur perulangan4   adp struktur perulangan
4 adp struktur perulangan
 
Ix struktur pointer
Ix struktur pointerIx struktur pointer
Ix struktur pointer
 
Pengantar R
Pengantar RPengantar R
Pengantar R
 
Pascal (Pengenalan).pdf
Pascal (Pengenalan).pdfPascal (Pengenalan).pdf
Pascal (Pengenalan).pdf
 
Pengenalan pascal asli
Pengenalan pascal asliPengenalan pascal asli
Pengenalan pascal asli
 
Dasar dasar turbo pascal
Dasar dasar turbo pascalDasar dasar turbo pascal
Dasar dasar turbo pascal
 
Pengenalan bahasa c++
Pengenalan bahasa c++Pengenalan bahasa c++
Pengenalan bahasa c++
 
Pertemuan6.ppt
Pertemuan6.pptPertemuan6.ppt
Pertemuan6.ppt
 
Algoritma pemrograman 14
Algoritma pemrograman 14Algoritma pemrograman 14
Algoritma pemrograman 14
 
Pengenalan pascal
Pengenalan pascalPengenalan pascal
Pengenalan pascal
 
6 adp array (larik)
6   adp array (larik)6   adp array (larik)
6 adp array (larik)
 
6 adp array (larik)
6   adp array (larik)6   adp array (larik)
6 adp array (larik)
 
6.adp array (larik)
6.adp array (larik)6.adp array (larik)
6.adp array (larik)
 
6 adp array (larik)
6   adp array (larik)6   adp array (larik)
6 adp array (larik)
 
6 adp array (larik)
6   adp array (larik)6   adp array (larik)
6 adp array (larik)
 

More from Hardini_HD

Hardini 3201416015 3_b
Hardini 3201416015 3_b Hardini 3201416015 3_b
Hardini 3201416015 3_b
Hardini_HD
 
Delphi
DelphiDelphi
Delphi
Hardini_HD
 
Class dan object
Class dan objectClass dan object
Class dan object
Hardini_HD
 
Using of computer tech
Using of computer tech Using of computer tech
Using of computer tech
Hardini_HD
 
Software
Software Software
Software
Hardini_HD
 
Number system
Number system Number system
Number system
Hardini_HD
 
Komp. dan aplikasi
Komp. dan aplikasi Komp. dan aplikasi
Komp. dan aplikasi
Hardini_HD
 
Jarkom
Jarkom Jarkom
Jarkom
Hardini_HD
 
Introduction to software 2
Introduction to software 2 Introduction to software 2
Introduction to software 2
Hardini_HD
 
Introduction to software1
Introduction to software1 Introduction to software1
Introduction to software1
Hardini_HD
 
Introduce to internet2
Introduce to internet2 Introduce to internet2
Introduce to internet2
Hardini_HD
 
Introduce to internet1
Introduce to internet1 Introduce to internet1
Introduce to internet1
Hardini_HD
 
Intro to e gov
Intro to e gov Intro to e gov
Intro to e gov
Hardini_HD
 
Internet
Internet Internet
Internet
Hardini_HD
 
Hardware
Hardware Hardware
Hardware
Hardini_HD
 
Flowchart dan dfd
Flowchart dan dfd Flowchart dan dfd
Flowchart dan dfd
Hardini_HD
 
File org
File org File org
File org
Hardini_HD
 
Data comm
Data comm Data comm
Data comm
Hardini_HD
 
Business computing
Business computing Business computing
Business computing
Hardini_HD
 
Pti (8) teknologi internet dan web
Pti (8)   teknologi internet dan webPti (8)   teknologi internet dan web
Pti (8) teknologi internet dan web
Hardini_HD
 

More from Hardini_HD (20)

Hardini 3201416015 3_b
Hardini 3201416015 3_b Hardini 3201416015 3_b
Hardini 3201416015 3_b
 
Delphi
DelphiDelphi
Delphi
 
Class dan object
Class dan objectClass dan object
Class dan object
 
Using of computer tech
Using of computer tech Using of computer tech
Using of computer tech
 
Software
Software Software
Software
 
Number system
Number system Number system
Number system
 
Komp. dan aplikasi
Komp. dan aplikasi Komp. dan aplikasi
Komp. dan aplikasi
 
Jarkom
Jarkom Jarkom
Jarkom
 
Introduction to software 2
Introduction to software 2 Introduction to software 2
Introduction to software 2
 
Introduction to software1
Introduction to software1 Introduction to software1
Introduction to software1
 
Introduce to internet2
Introduce to internet2 Introduce to internet2
Introduce to internet2
 
Introduce to internet1
Introduce to internet1 Introduce to internet1
Introduce to internet1
 
Intro to e gov
Intro to e gov Intro to e gov
Intro to e gov
 
Internet
Internet Internet
Internet
 
Hardware
Hardware Hardware
Hardware
 
Flowchart dan dfd
Flowchart dan dfd Flowchart dan dfd
Flowchart dan dfd
 
File org
File org File org
File org
 
Data comm
Data comm Data comm
Data comm
 
Business computing
Business computing Business computing
Business computing
 
Pti (8) teknologi internet dan web
Pti (8)   teknologi internet dan webPti (8)   teknologi internet dan web
Pti (8) teknologi internet dan web
 

Recently uploaded

PERSENTASI PENINGKATAN KUALITAS PRAKTIK PEMBELAJARAN.pdf
PERSENTASI PENINGKATAN KUALITAS PRAKTIK PEMBELAJARAN.pdfPERSENTASI PENINGKATAN KUALITAS PRAKTIK PEMBELAJARAN.pdf
PERSENTASI PENINGKATAN KUALITAS PRAKTIK PEMBELAJARAN.pdf
MunirLuvNaAin
 
power point struktur data tree atau pohon
power point struktur data tree atau pohonpower point struktur data tree atau pohon
power point struktur data tree atau pohon
NoegPutra1
 
Biografi Presiden Republik Indonesia.pdf
Biografi Presiden Republik Indonesia.pdfBiografi Presiden Republik Indonesia.pdf
Biografi Presiden Republik Indonesia.pdf
pristayulianabila
 
AKSI NYATA PENDIDIKAN INKLUSIF (perubahan kecil dengan dampak besar)
AKSI NYATA PENDIDIKAN INKLUSIF (perubahan kecil dengan dampak besar)AKSI NYATA PENDIDIKAN INKLUSIF (perubahan kecil dengan dampak besar)
AKSI NYATA PENDIDIKAN INKLUSIF (perubahan kecil dengan dampak besar)
juliafnita47
 
PPT RENCANA AKSI 2 modul ajar matematika berdiferensiasi kelas 1
PPT RENCANA AKSI 2 modul ajar matematika berdiferensiasi kelas 1PPT RENCANA AKSI 2 modul ajar matematika berdiferensiasi kelas 1
PPT RENCANA AKSI 2 modul ajar matematika berdiferensiasi kelas 1
Arumdwikinasih
 
Modul Ajar PAI dan Budi Pekerti Kelas 5 Fase C Kurikulum Merdeka
Modul Ajar PAI dan Budi Pekerti Kelas 5 Fase C Kurikulum MerdekaModul Ajar PAI dan Budi Pekerti Kelas 5 Fase C Kurikulum Merdeka
Modul Ajar PAI dan Budi Pekerti Kelas 5 Fase C Kurikulum Merdeka
Fathan Emran
 
Perangkat pembelajaran dalam kurikulum merdeka
Perangkat pembelajaran dalam kurikulum merdekaPerangkat pembelajaran dalam kurikulum merdeka
Perangkat pembelajaran dalam kurikulum merdeka
AchmadArifudin3
 
(Fase B ) - Gaya Hidup Berkelanjutan (P5).docx
(Fase B ) - Gaya Hidup Berkelanjutan (P5).docx(Fase B ) - Gaya Hidup Berkelanjutan (P5).docx
(Fase B ) - Gaya Hidup Berkelanjutan (P5).docx
BAHTIARMUHAMAD
 
Aksi Nyata Modul 1.1. Pendidikan Guru Penggerak
Aksi Nyata Modul 1.1. Pendidikan Guru PenggerakAksi Nyata Modul 1.1. Pendidikan Guru Penggerak
Aksi Nyata Modul 1.1. Pendidikan Guru Penggerak
TitisNindiasariAnggr
 
Panduan Survei Kendala Aktivasi Rekening SimPel PIP 2023 -7 Juni.pdf
Panduan Survei Kendala Aktivasi Rekening SimPel PIP 2023 -7 Juni.pdfPanduan Survei Kendala Aktivasi Rekening SimPel PIP 2023 -7 Juni.pdf
Panduan Survei Kendala Aktivasi Rekening SimPel PIP 2023 -7 Juni.pdf
NurHasyim22
 
Alur tujuan pembelajaran bahasa inggris kelas x fase e
Alur tujuan pembelajaran bahasa inggris kelas x fase eAlur tujuan pembelajaran bahasa inggris kelas x fase e
Alur tujuan pembelajaran bahasa inggris kelas x fase e
MsElisazmar
 
Aksi Nyata Buku Non Teks Bermutu Dan Manfaatnya .pdf
Aksi Nyata Buku Non Teks Bermutu Dan Manfaatnya .pdfAksi Nyata Buku Non Teks Bermutu Dan Manfaatnya .pdf
Aksi Nyata Buku Non Teks Bermutu Dan Manfaatnya .pdf
DenysErlanders
 
Bab 7Korupsi sebagai persoalan moral .pptx
Bab 7Korupsi sebagai persoalan moral  .pptxBab 7Korupsi sebagai persoalan moral  .pptx
Bab 7Korupsi sebagai persoalan moral .pptx
Habibatut Tijani
 
laporan komunitas belajar sekolah dasar negeri botoputih
laporan komunitas belajar sekolah dasar negeri botoputihlaporan komunitas belajar sekolah dasar negeri botoputih
laporan komunitas belajar sekolah dasar negeri botoputih
SDNBotoputih
 
PELAKSANAAN (13-14 Juni'24) + Link2 Materi BimTek _"PTK 007 Rev-5 Thn 2023 (P...
PELAKSANAAN (13-14 Juni'24) + Link2 Materi BimTek _"PTK 007 Rev-5 Thn 2023 (P...PELAKSANAAN (13-14 Juni'24) + Link2 Materi BimTek _"PTK 007 Rev-5 Thn 2023 (P...
PELAKSANAAN (13-14 Juni'24) + Link2 Materi BimTek _"PTK 007 Rev-5 Thn 2023 (P...
Kanaidi ken
 
Tugas 3.1_BAB II_Kelompok 2 Tahap Inquiry .pdf
Tugas 3.1_BAB II_Kelompok 2 Tahap Inquiry .pdfTugas 3.1_BAB II_Kelompok 2 Tahap Inquiry .pdf
Tugas 3.1_BAB II_Kelompok 2 Tahap Inquiry .pdf
SafaAgrita1
 
REAKSI MASYARAKAT TERHADAP PENJAJAHAN BARAT DI MESIR (2).pptx
REAKSI MASYARAKAT TERHADAP PENJAJAHAN BARAT DI MESIR (2).pptxREAKSI MASYARAKAT TERHADAP PENJAJAHAN BARAT DI MESIR (2).pptx
REAKSI MASYARAKAT TERHADAP PENJAJAHAN BARAT DI MESIR (2).pptx
ianchin0007
 
Projek Penguatan Profil Pelajar Pancasila SD.pdf.pdf
Projek Penguatan Profil Pelajar Pancasila SD.pdf.pdfProjek Penguatan Profil Pelajar Pancasila SD.pdf.pdf
Projek Penguatan Profil Pelajar Pancasila SD.pdf.pdf
anikdwihariyanti
 
PRESENTASI PROGRAM KERJA TATA USAHA SMP.pptx
PRESENTASI PROGRAM KERJA TATA USAHA SMP.pptxPRESENTASI PROGRAM KERJA TATA USAHA SMP.pptx
PRESENTASI PROGRAM KERJA TATA USAHA SMP.pptx
Hasbullah66
 
PAPARAN PELATIHAN SATKAMLING DALAM RANGKA LOMBA.pptx
PAPARAN PELATIHAN SATKAMLING DALAM RANGKA LOMBA.pptxPAPARAN PELATIHAN SATKAMLING DALAM RANGKA LOMBA.pptx
PAPARAN PELATIHAN SATKAMLING DALAM RANGKA LOMBA.pptx
xtemplat
 

Recently uploaded (20)

PERSENTASI PENINGKATAN KUALITAS PRAKTIK PEMBELAJARAN.pdf
PERSENTASI PENINGKATAN KUALITAS PRAKTIK PEMBELAJARAN.pdfPERSENTASI PENINGKATAN KUALITAS PRAKTIK PEMBELAJARAN.pdf
PERSENTASI PENINGKATAN KUALITAS PRAKTIK PEMBELAJARAN.pdf
 
power point struktur data tree atau pohon
power point struktur data tree atau pohonpower point struktur data tree atau pohon
power point struktur data tree atau pohon
 
Biografi Presiden Republik Indonesia.pdf
Biografi Presiden Republik Indonesia.pdfBiografi Presiden Republik Indonesia.pdf
Biografi Presiden Republik Indonesia.pdf
 
AKSI NYATA PENDIDIKAN INKLUSIF (perubahan kecil dengan dampak besar)
AKSI NYATA PENDIDIKAN INKLUSIF (perubahan kecil dengan dampak besar)AKSI NYATA PENDIDIKAN INKLUSIF (perubahan kecil dengan dampak besar)
AKSI NYATA PENDIDIKAN INKLUSIF (perubahan kecil dengan dampak besar)
 
PPT RENCANA AKSI 2 modul ajar matematika berdiferensiasi kelas 1
PPT RENCANA AKSI 2 modul ajar matematika berdiferensiasi kelas 1PPT RENCANA AKSI 2 modul ajar matematika berdiferensiasi kelas 1
PPT RENCANA AKSI 2 modul ajar matematika berdiferensiasi kelas 1
 
Modul Ajar PAI dan Budi Pekerti Kelas 5 Fase C Kurikulum Merdeka
Modul Ajar PAI dan Budi Pekerti Kelas 5 Fase C Kurikulum MerdekaModul Ajar PAI dan Budi Pekerti Kelas 5 Fase C Kurikulum Merdeka
Modul Ajar PAI dan Budi Pekerti Kelas 5 Fase C Kurikulum Merdeka
 
Perangkat pembelajaran dalam kurikulum merdeka
Perangkat pembelajaran dalam kurikulum merdekaPerangkat pembelajaran dalam kurikulum merdeka
Perangkat pembelajaran dalam kurikulum merdeka
 
(Fase B ) - Gaya Hidup Berkelanjutan (P5).docx
(Fase B ) - Gaya Hidup Berkelanjutan (P5).docx(Fase B ) - Gaya Hidup Berkelanjutan (P5).docx
(Fase B ) - Gaya Hidup Berkelanjutan (P5).docx
 
Aksi Nyata Modul 1.1. Pendidikan Guru Penggerak
Aksi Nyata Modul 1.1. Pendidikan Guru PenggerakAksi Nyata Modul 1.1. Pendidikan Guru Penggerak
Aksi Nyata Modul 1.1. Pendidikan Guru Penggerak
 
Panduan Survei Kendala Aktivasi Rekening SimPel PIP 2023 -7 Juni.pdf
Panduan Survei Kendala Aktivasi Rekening SimPel PIP 2023 -7 Juni.pdfPanduan Survei Kendala Aktivasi Rekening SimPel PIP 2023 -7 Juni.pdf
Panduan Survei Kendala Aktivasi Rekening SimPel PIP 2023 -7 Juni.pdf
 
Alur tujuan pembelajaran bahasa inggris kelas x fase e
Alur tujuan pembelajaran bahasa inggris kelas x fase eAlur tujuan pembelajaran bahasa inggris kelas x fase e
Alur tujuan pembelajaran bahasa inggris kelas x fase e
 
Aksi Nyata Buku Non Teks Bermutu Dan Manfaatnya .pdf
Aksi Nyata Buku Non Teks Bermutu Dan Manfaatnya .pdfAksi Nyata Buku Non Teks Bermutu Dan Manfaatnya .pdf
Aksi Nyata Buku Non Teks Bermutu Dan Manfaatnya .pdf
 
Bab 7Korupsi sebagai persoalan moral .pptx
Bab 7Korupsi sebagai persoalan moral  .pptxBab 7Korupsi sebagai persoalan moral  .pptx
Bab 7Korupsi sebagai persoalan moral .pptx
 
laporan komunitas belajar sekolah dasar negeri botoputih
laporan komunitas belajar sekolah dasar negeri botoputihlaporan komunitas belajar sekolah dasar negeri botoputih
laporan komunitas belajar sekolah dasar negeri botoputih
 
PELAKSANAAN (13-14 Juni'24) + Link2 Materi BimTek _"PTK 007 Rev-5 Thn 2023 (P...
PELAKSANAAN (13-14 Juni'24) + Link2 Materi BimTek _"PTK 007 Rev-5 Thn 2023 (P...PELAKSANAAN (13-14 Juni'24) + Link2 Materi BimTek _"PTK 007 Rev-5 Thn 2023 (P...
PELAKSANAAN (13-14 Juni'24) + Link2 Materi BimTek _"PTK 007 Rev-5 Thn 2023 (P...
 
Tugas 3.1_BAB II_Kelompok 2 Tahap Inquiry .pdf
Tugas 3.1_BAB II_Kelompok 2 Tahap Inquiry .pdfTugas 3.1_BAB II_Kelompok 2 Tahap Inquiry .pdf
Tugas 3.1_BAB II_Kelompok 2 Tahap Inquiry .pdf
 
REAKSI MASYARAKAT TERHADAP PENJAJAHAN BARAT DI MESIR (2).pptx
REAKSI MASYARAKAT TERHADAP PENJAJAHAN BARAT DI MESIR (2).pptxREAKSI MASYARAKAT TERHADAP PENJAJAHAN BARAT DI MESIR (2).pptx
REAKSI MASYARAKAT TERHADAP PENJAJAHAN BARAT DI MESIR (2).pptx
 
Projek Penguatan Profil Pelajar Pancasila SD.pdf.pdf
Projek Penguatan Profil Pelajar Pancasila SD.pdf.pdfProjek Penguatan Profil Pelajar Pancasila SD.pdf.pdf
Projek Penguatan Profil Pelajar Pancasila SD.pdf.pdf
 
PRESENTASI PROGRAM KERJA TATA USAHA SMP.pptx
PRESENTASI PROGRAM KERJA TATA USAHA SMP.pptxPRESENTASI PROGRAM KERJA TATA USAHA SMP.pptx
PRESENTASI PROGRAM KERJA TATA USAHA SMP.pptx
 
PAPARAN PELATIHAN SATKAMLING DALAM RANGKA LOMBA.pptx
PAPARAN PELATIHAN SATKAMLING DALAM RANGKA LOMBA.pptxPAPARAN PELATIHAN SATKAMLING DALAM RANGKA LOMBA.pptx
PAPARAN PELATIHAN SATKAMLING DALAM RANGKA LOMBA.pptx
 

7.pointer

  • 2. Pointer (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.
  • 3.  Misalnya, 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.
  • 4. /* -------------------------------------------- Nama Program: ADP_Pointer_1.cpp Larik String --------------------------------------------- */ #include <stdio.h> #include <stdlib.h> main() { char *Alamat_X, X; printf("Contoh Program Pointern"); printf("______________________n"); printf("n"); X = 'J'; Alamat_X = &X; printf("Nilai dari Variabel X, adalah %c berada di alamat %pn", X,Alamat_X); printf("n"); system("pause"); }
  • 5.
  • 6.  Bahasa 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
  • 7. /* --------------------------------------------------------- Nama Program: ADP_Pointer_2_Operator.cpp Larik String --------------------------------------------------------- */ #include <stdio.h> #include <stdlib.h> main() { char *Alamat_X,X,Y,Z; printf("Contoh Program Operator Pointern"); printf("_______________________________n"); printf("n"); X = 'J'; Alamat_X = &X; Y = X; Z = *Alamat_X; printf("Nilai Variabel X adalah %cn", X); printf("Nilai Variabel Y adalah %cn", Y); printf("Nilai Variabel Z adalah %cn", Z); printf("Nilai Variabel X berada di alamat %pn", Alamat_X); printf("n"); system("pause"); }
  • 8.
  • 9. Variabel 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.
  • 10. /* ----------------------------------------- Nama Program: ADP_Pointer_3_Deklarasi.cpp Larik String ----------------------------------------- */ #include <stdio.h> #include <stdlib.h> main() { float Nilai, *Alamat=&Nilai; printf("Contoh Program Deklarasi Pointern"); printf("________________________________n"); printf("n"); Nilai = 100.00; printf("Nilai %8.2f berada di alamat memori %pn", Nilai, Alamat); printf("n"); system("pause"); }
  • 11.
  • 12. Terdiri dari 1. Operasi Pengerjaan 2. Operasi Aritmatika 3. Operasi Logika
  • 13. Suatu variabel pointer dapat dikerjakan ke variabel pointer lainnya, yaitu nilai suatu variabel pointer dapat dipindahkan ke variabel pointer yang lainnya.
  • 14. /* --------------------------------------------------------------------------- Nama Program: ADP_Pointer_4_Operasi_Pengerjaan.cpp Operasi Pengerjaan Pointer --------------------------------------------------------------------------- */ #include <stdio.h> #include <stdlib.h> main() { float Y, *X1, *X2; printf("Contoh Program Operasi Pengerjaan Pointern"); printf("_________________________________________n"); printf("n"); Y = 150,97; X1 = &Y; X2 = X1; //Pengerjaan variabel pointer printf("Nilai variabel Y ada di alamat %pn", X1); printf("Nilai variabel Y ada di alamat %pn", X2); printf("n"); system("pause"); }
  • 15.
  • 16.  Variabel 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.
  • 17. Program berikut ini akan menampilkan 10 buah data yang masing-masing mempunyai alamat yang berbeda-beda.
  • 18. /* ------------------------------------------------------------------------- Nama Program: ADP_Pointer_5_Operasi_Aritmatika.cpp Operasi Aritmatika Pointer -------------------------------------------------------------------------- */ #include <stdio.h> #include <stdlib.h> main() { int I[10], *I_pointer; double F[10], *F_pointer; int x; printf("Contoh Program Operasi Aritmatika Pointern"); printf("________________________________________n"); printf("n"); I_pointer = I; F_pointer = F; for(x=0;x<10;x++) printf("%p %pn", I_pointer+x, F_pointer+x); printf("n"); system("pause"); }
  • 19.
  • 20.  Program berikut ini penambahan dan pengurangan variabel pointer dengan variabel pointer lainnya.  P_Awal adalah variabel pointer yang menunjuk ke alamat memori letak elemen larik yang pertama dan P_Akhir adalah variabel pointer yang menunjuk ke alamat letak elemen larik yang terakhir. Selisih dari kedua nilai ini adalah nilai integer 4 yang menunjukkan jumlah dari elemen lariknya.
  • 21. /* --------------------------------------------------- Nama Program: ADP_Pointer_5a_Operasi_Aritmatika.cpp Operasi Aritmatika Pointer --------------------------------------------------- */ #include <stdio.h> #include <stdlib.h> main() { int *P_Awal, *P_Akhir; int X[5] = {20, 40, 60, 80, 100}, I; int x; printf("Contoh Program Operasi Aritmatika Pointern"); printf("_________________________________________n"); printf("n"); P_Awal = &X[0]; P_Akhir = &X[4]; printf("Alamat dari nilai elemen awal X[0] adalah %pn", P_Awal); printf("Alamat dari nilai elemen akhir X[4] adalah %pn", P_Akhir); printf("Dari X[0] ke X[4] ada sebanyak %d elemennn", P_Akhir-P_Awal); for(I=0;I<=4;I++){ printf("Nilai elemen ke %d adalah %d di alamat %pn", I,X[I],P_Awal); P_Awal = P_Awal + 1; } printf("n"); system("pause"); }
  • 22.
  • 23. Operasi logika pada pointer adalah untuk membandingkan dua buah nilai dari variabel pointer dengan menggunakan operator hubungan seperti !=, ==, <, dan >. Variabel pointer yang dapat dibandingkan jika keduanya mempunyai tipe yang sama atau keduanya bernilai null.
  • 24. /* -------------------------------------------------------------------- Nama Program: ADP_Pointer_6_Operasi_Logika.cpp Operasi Logika Pointer -------------------------------------------------------------------- */ #include <stdio.h> #include <stdlib.h> main() { int Nilai1=100, Nilai2=100, *P_Nilai1, *P_Nilai2, *P_Nilai3; printf("Contoh Program Operasi Logika Pointern"); printf("_____________________________________n"); printf("n"); P_Nilai1 = &Nilai1; P_Nilai2 = &Nilai2; P_Nilai3 = P_Nilai1; if(P_Nilai1<P_Nilai2) printf("P_Nilai1 menunjuk ke memori lebih rendah dari P_Nilai2n"); if(P_Nilai1==P_Nilai2) printf("P_Nilai1 menunjuk ke memori yang sama dengan P_Nilai2n"); if(P_Nilai1>P_Nilai2) printf("P_Nilai1 menunjuk ke memori yang lebih tinggi dari P_Nilai2n"); if(P_Nilai1<P_Nilai3) printf("P_Nilai1 menunjuk ke memori lebih rendah dari P_Nilai3n"); if(P_Nilai1==P_Nilai3) printf("P_Nilai1 menunjuk ke memori yang sama dengan P_Nilai3n"); if(P_Nilai1>P_Nilai3) printf("P_Nilai1 menunjuk ke memori yang lebih tinggi dari P_Nilai3n"); printf("n"); system("pause"); }
  • 25.
  • 26.  Pointer dan larik mempunyai hubungan antara lain dalam hal pengaksesan nilai-nilai elemen lariknya.  Hal tersebut dapat dilihat pada contoh program berikut ini, dimana untuk pengaksesan elemen-elemen larik yang urut mulai elemen ke-1 sampai ke-n dapat ditulis sebagai *(P+0), *(P+1), *(P+2), sampai ke *(P+n). Karena peningkatannya adalah 1, maka penulisan tersebut dapat juga ditulis sebagai *P++.
  • 27. /* ----------------------------------------------------------------- Nama Program: ADP_Pointer_6_Operasi_Larik.cpp Operasi Pointer Untuk Larik ----------------------------------------------------------------- */ #include <stdio.h> #include <stdlib.h> main() { int *P, X[7] = {10,20,30,40,50,60,70}; int I; printf("Contoh Program Mengakses Elemen Larik Menggunakan Pointern"); printf("_________________________________________________________n"); printf("n"); P = X; printf("Elemen Alamat Nilain"); for(I=0;I<7;I++) printf("%4d P+%ld=%p; X+%ld=%p; &X[%ld]=%p x[%d]=%2d;" "*(P+%ld)=%2d; *(X+%ld)=%2dn",I,I,P+I,I,X+I,I, &X[I],I,X[I],I,*(P+I),I,*(X+I)); printf("n"); system("pause"); }
  • 28.
  • 29. Suatu nilai dapat diberikan langsung ke elemen larik dengan cara pertama yaitu menggunakan indeks dari larik. Cara yang kedua yaitu dengan memberikan nilai ke lokasi memori dimana alamatnya merupakan alamat letak dari nilai elemen lariknya. Cara yang kedua ini dapat dilakukan dengan menggunakan pointer.
  • 30.  Contoh program berikut akan memperlihatkan nilai-nilai elemen larik dimensi satu X akan diisi dengan nilai-nilai tertentu dengan menggunakan cara yang pertama.  Elemen pertama dari larik diberi dengan nilai 5. Elemen kedua diisi dengan nilai yang sama dengan nilai elemen pertama, yaitu bernilai 5. Elemen ketiga diisi dengan nilai yang ada di elemen ke satu (ditunjukkan oleh ungkapan *P yang berarti X[0]) ditambah dengan nilai numerik 2, sehingga akan berisi dengan nilai 7 dan seterusnya.
  • 31. /* ------------------------------------------------------------------- Nama Program: ADP_Pointer_7a_Operasi_Larik.cpp Operasi Pointer Untuk Larik ------------------------------------------------------------------- */ #include <stdio.h> #include <stdlib.h> main() { int *P, X[5]; printf("Contoh Program Memberi Nilai Elemen Larik Menggunakan Pointern"); printf("_____________________________________________________________n"); printf("n"); P = X; X[0] = 5; //X[0] diisi dengan nilai 5, sehingga X[0]=5 X[1] = X[0]; //X[0] diisi dengan nilai X[0], sehingga X[1]=5 X[2] = *P+2; //X[0] diisi dengan nilai X[0]+2, sehingga X[2]=7 X[3] = *(P+1)-3;//X[0] diisi dengan nilai X[1]-3, sehingga X[3]=2 X[4] = *(X+2); //X[0] diisi dengan nilai X[2], sehingga X[4]=7 printf("%d %d %d %d %dn",X[0], X[1], X[2], X[3],X[4]); printf("n"); system("pause"); }
  • 32.
  • 33.  Contoh program berikut akan memperlihatkan nilai-nilai elemen larik dimensi satu X akan diisi dengan nilai-nilai tertentu dengan menggunakan cara yang kedua.  Nilai elemen pertama dari larik diberi dengan nilai5. Nilai elemen kedua diberi dengan nilai yang sama dengan elemen pertama. Nilai elemen ketiga diberi nilai yang ada di elemen pertama ditambah dengan nilai numerik 2 sehingga akan berisi dengan nilai 7 dan seterusnya.
  • 34. /* ------------------------------------------------------------------- Nama Program: ADP_Pointer_7b_Operasi_Larik.cpp Operasi Pointer Untuk Larik -------------------------------------------------------------------- */ #include <stdio.h> #include <stdlib.h> main() { int *P, X[5]; printf("Contoh Program Memberi Nilai Elemen Larik Menggunakan Pointern"); printf("_____________________________________________________________n"); printf("n"); P = X; *P = 5; //X[0] diisi dengan nilai 5, sehingga X[0]=5 *(P+1) = X[0]; //X[0] diisi dengan nilai X[0], sehingga X[1]=5 *(X+2) = *P+2; //X[0] diisi dengan nilai X[0]+2, sehingga X[2]=7 *(P+3) = *(P+1)-3; //X[0] diisi dengan nilai X[1]-3, sehingga X[3]=2 *(P+4) = *(X+2); //X[0] diisi dengan nilai X[2], sehingga X[4]=7 printf("%d %d %d %d %dn",X[0], X[1], X[2], X[3],X[4]); printf("n"); system("pause"); }
  • 35.
  • 36.  Pemilihan penggunaan indeks atau pointer untuk mengakses atau memberi nilai elemen-elemen larik tergantung dari pertimbangan kecepatan proses program dan tingkat kerumitannnya.  Jika pengaksesan elemen-elemen larik dilakukan secara urut, penggunaan pointer akan menghasilkan proses program yang lebih cepat dibandingkan dengan menggunakan indeks.  Jika pengaksesan elemen-elemen larik menggunakan rumus- rumus tertentu yang rumit untuk menunjukkan urutan elemennya, maka penggunaan indeks lebih disukai, karena penggunaan pointer akan lebih rumit dan membingungkan.  Karena biasanya kecepatan proses program seringkali dijadikan alasan yang utama, maka banyak program-program aplikasi yang ditulis dengan bahasa C menggunakan pointer untuk pengaksesan elemen-elemen larik.
  • 37. Pointer sebagai suatu larik berbeda dengan suatu lrik yang dioperasikan dengan menggunakan pointer. Pointer sebagai suatu larik maksudnya adalah suatu pointer digunakan sebagai pengganti suatu larik.
  • 38. Kristanto, Andri. (2009). Algoritma & Pemrograman dengan C++ Edisi 2. Yogyakarta. Graha Ilmu. Hartono, Jogiyanto, MBA., Ph.D. (2002). Konsep Dasar Pemrograman Bahasa C. Yogyakarta. Andi.