KATA PENGANTAR

Puji dan syukur yang selalu kita panjatkan kepada kehadirat Allah SWT yang telah memberikan banyak nikmat yang tiada habisnya, sehingga saya dapat menyelesaikan makalah Pemrograman Komputer 1 dengan materi Variabel Pointer. Makalah ini di buat atau di susun dalam rangka memenuhi tugas mata kuliah Pemrograman Komputer 1 , pada makalah ini saya akan membahas tentang materi Variabel Pointer dengan program Borland C++ 5.02 . Saya menyadari masih banyak kekurangan dan kesalahan dalam pembuatan makalah ini , karena itu harapan saya adalah saran dan kritik dari pembaca . Semoga makalah ini bermanfaat bagi para pembaca .

Purwkerto, 21 Januari 2012

( Penulis ) BAB 1

*. Dengan kata lain. hanya sebuah lokasi yang memiliki alamat tersebut. -. Bersifaat dinamis Deklarasi : int *a Setiap kali komputer menyimpan data. pointer berisi alamat dari variable yang mempunyai nilai tertentu. Contoh: int *p. maka sistem operasi akan mengorganisasikan lokasi pada memory pada alamat yang unik.PEMBAHASAN Pengertian Pointer Pointer adalah suatu variable yang berisi alamat memory sebagai nilainya dan berbeda dengan variable biasa yang berisi nilai tertentu. Nilai dari alamt inilah yang di tampilkan oleh pointer. Misal untuk alamat memory 1776. Dan alamat 1776 pasti terletak antara 1775 dan 1777. variable dan akan mengahasilkan alamat dari variable Operator ini bersifat menggunakan nilai dari alamat variable yang ditunjuk oleh pointer tersebut. / Membutuhkan operator khusus: “&” yang menunjuk alamat dari suatu variable tertentu. Bentuk pendefinisian dari pada variable pointer dalam bahasa C++ : Type data * nama variable . Operator “&” hanya dapat dilakukan kepada itu. Variable Biasa Berisi data/nilai Pointer Berisi alamat memory dari suatu variabletertentu Operasi yang bisa dilakukan seperti layaknya operasi biasa: +. Contoh: p = &n Yang kedua : Operator “*”. Bersifat statis Deklarasi : int a.

// operator alamat 2. Di mana operator ini menunjukan alamat dari suatu variable. x = 7. sebelum mendeklarasikan sebuah pointer.Tipe data pointer mendefinisikan tipe dari obyek yang ditunjuk oleh Secara teknis. Operator reference yang di lambangkan dengan “ * “ adalah operator yang menunjukan isi / nilai dari variable yang di tunjuk pointer. tidak peduli isi sebenarnya). Karenanya. Pada pointer terdapat beberapa operator yang dapat di gunakan yakni : 1. ketika kita mendeklarasikan pointer dengan tipe int*.walaupun sebenarnya bukan (sebuah pointer int* selalu menganggap bahwa ia menunjuk ke sebuah obyek bertipe integer. OPERASI POINTER  Operasi Penugasan . Operator alamat yang dilambangkan dengan symbol “&” adalah merupakan operator unary yang mengembalikan alamat dari operandnya. kompiler akan menganggap alamat yang ditunjuk menyimpan nilai integer . pastikan tipenya sesuai dengan tipe obyek yang akan ditunjuk. y = &x. Contoh. x = 7. Bahkan operasi pointer dapat dilaksanakan relatif terhadap tipe dasar apapun yang ditunjuk. y = &x. tipe apapun dari pointer dapat menunjukkan lokasi (dimanapun) dalam memory.

//Contoh9_2 #include "iostream.h> .h" void main() { float *x1.Suatu variable pointer seperti halnya variable yang lain.45.y. }  Operasi Aritmatika Suatu variabel pointer hanya dapat dilakukan operasi aritmatika dengan nilai integer saja. x1 = &y. */ cout<<"Nilai variabel y = x1<<"\n". Operasi yang biasa dilakukan adalah operasi penambahan dan pengurangan. */ x2 = x1. juga bisa mengalami operasi penugasan. y = 13. Nilai dari suatu variable pointer dapat disalin ke variable pointer yang lain. clrscr(). Operasi penambahan dengan suatu nilai menunjukkan lokasi data berikutnya (index selanjutnya) dalam memori.h" #include "conio. cout<<"Nilai variabel y = x2<<"\n". *x2. "<<y<< " ada di alamat "<< "<<y<< " ada di alamat "<< /* Isi variabel x1 disalin ke variabel x2 /* Alamat dari y disalin ke variabel x1 //Contoh9_3 #include <iostream. Begitu juga operasi pengurangan. getch().

#include <conio. . *pb.h" void main() { int a = 100. //Contoh9_4 #include<iostream. clrscr(). nilai[0] = 125. *penunjuk. cout<<"Nilai "<<*(penunjuk+2) <<" ada di alamat memori " <<penunjuk+2<<"\n".h> #include "conio. b = 200. nilai[1] = 345. *pa.h> void main() { int nilai[3]. nilai[2] = 750. pa = &a. cout<<"Nilai "<<*(penunjuk+1) <<" ada di alamat memori " <<penunjuk+1<<"\n". penunjuk = &nilai[0]. clrscr(). getch(). cout<<"Nilai "<<*penunjuk <<" ada di alamat memori " <<penunjuk<<"\n". }  Operasi Logika Suatu pointer juga dapat dikenai operasi logika.

} 4 POINTER DAN STRING //Contoh9_5 #include <iostream.h> #include <conio. getch(). void main() { char string[] = "amikom".pb = &b. cout<<"nilai pa= "<<pa<< " nilai pb= "<<pb<<"\n". getch(). cout<< "String sebelum proses adalah " << string <<"\n" . cout<<"String setelah proses adalah "<<string. if(pa < pb) cout<<"pa menunjuk ke memori lebih rendah dari pb\n". if(pa > pb) cout<<"pa menunjuk ke memori lebih tinggi dari pb\n". misteri1(string). } void misteri1(char *s) { while ( *s != '###BOT_TEXT###' ) { if ( *s >= 'a' && *s <= 'z' ) . if(pa == pb) cout<<"pa menunjuk ke memori yang sama dengan pb\n".h> void misteri1(char *).

int *ptgl. ptgl = tgl_lahir. cout<<"Tanggal = "<< *ptgl<<"\n".h" #include "conio. cout<<"Tanggal = "<< tgl_lahir[0] <<"\n". } MEMBERI NILAI ARRAY DENGAN POINTER //contoh9_7 .*s -= 32. cout<<"Bulan = "<< tgl_lahir[1] <<"\n". cout<<"Tahun = "<< tgl_lahir[2] <<"\n". ++s. getch(). /* ptgl berisi alamat array */ cout<<"Diakses dengan pointer\n". cout<<"Tahun = "<<*(ptgl + 2) <<"\n".h" void main() { static int tgl_lahir[] = { 13.1982 }. cout<<"Bulan = "<< *(ptgl + 1) <<"\n". cout<<"\nDiakses dengan array biasa\n". } } 5 POINTER MENUNJUK SUATU ARRAY //Contoh9_6 #include "iostream.9.

p = x. x[3] = *(p+1) . for(k=0.h" void main() { int x[5]. k<5. k++) cout<<"x["<<k<<"] = "<< x[k]<<"\n".h" #include "conio. x[0] = 5. x[1] = x[0]. } . k. getch(). clrscr(). x[2] = *p + 2.3. x[4] = *(x + 2).#include "iostream. *p.

Sebenamya alokasi memori ini. Keduanya merupakan operator baru pada C++. i < 10.i<10. #include <iostream.MEMORI DINAMIS Pada contoh program di samping kiri sejumlah memori secara ekplisit disisihkan untuk menampung array titik yang mempunyai 10 elemen. . titik[i]->x=i. dapat dilakukan secara dinamis yaitu dilakukan pada saat runtime. }.y << "\n".x = i .i< 10.++i) { titik[i] = new ttk. ++i) { titik[i].y=i. struct ttk *titik[10]. struct ttk titik[10]. } << ". main() { int i.h> struct ttk { int x.++i) {cout << titik[i]. for(i=0.++i) { cout << titik[i]->x << } for(i=0. } for (i=0.i< 10. hanya yang dibutuhkan saja. } return 0. " << titik[i].} #include <iostream.} for(i=0. titik[i].++i) { // free(titik[i]).h> struct ttk { int x. Untuk melakukan hal ini kita perlu array yang elemen elemennya adalah pointer ke suatu struktur seperti dijelaskan pada program di samping kanan.x << ". for (i=0. int y. titik[i]->y = i. Alokasi memori secara dinamis dilakukan dengan operator new dan dealokasi dilakukan dengan operator delete. } return 0. " titik[i]->y << "\n". }. delete titik[i]. int y. main() { int i.i< 10.

} cout<<“ Pointer”. I ++) cout <<endl. cout <<“ menempati alamat memori =“. for( i=1 . cout<<endl<<endl.Pointer Pada Array Pointer pada array sangat digunakan untuk pengembangan program yang besar. cin>>nilai [ I ] } { cout<<“ elemen “<<i<<“. for( i=1 . I ++) { cout<<“ masukkan nilai pertama = “ . sebagai contoh sederhana dapat anda lihat pada contoh program berikut : #include<stdio. cout<<&ptrnilai [ i ] . cout<<endl. karena secara internal array juga menyatakan alamat.h> main() { int i. . ptrnilai = nilai. i<=5 . cout<<“ hasil pengaksesan elemen array lewat “ . int nilai [ 5 ] .yaitu pengenal array sama dengan alamat pada elemen pertama pada array. i<=5 . } getche().h> #include<iostream.h> #include<conio.Nilai”nilai [ i ]. int *ptrnilai.

.

cout<<“nama band punk= “ <<band_punk.//menambah nilai penunjuk/pointer main( ) cout<<“nama band metal= “ { <<band_metal<<endl. cout<<“nama band metal= “ <<band_metal<<endl.h> band_punk+=3.h> cout<<“nama band punk= “<<band_punk<<endl. char band_metal[]=“metalica”.Pointer Pada String Penjelasan Pointer pada string dapat anda lihat pada contoh program berikut : #include<iostream. char*band_punk=“ pangky “ getche( ). } Hasil program . #include<conio.

.

.PENUTUP Demikian yang dapat kami sampaikan dalam pembahasan materi ini . .. Salam... tapi hanya inilah yang bisa kami sampaikan.. bagi semua kita semua . kami mengucapkan terima kasih atas perhatian pembaca semua. seperti kata pepatah “ Tak Ada Gading Yang Tak Retak “. Semoga dari pembahasan materi yang telah kami sampaikan sangat bermanfaat .. Mungkin materi ini masih jauh dari sempurna.

2005 Kadir.google .Yogya .Graha Ilmu .”Algoritma &Pemrograman dengan Borland C++ “. Andi Offset – Jogja. Abdul “Pemrograman C++”. Riya .DAFTAR PUSTAKA Utama .Didit N.com .2004 www. & Widayanti.