Jumat, 11 Desember 2009

Selasa, 03 November 2009

Pengertian Pointer
Pointer (variabel penunjuk) adalah suatu variabel yang berisi alamat me¬mo¬ri dari suatu variabel lain. Alamat ini merupakan lokasi dari obyek lain (bia¬sanya variabel lain) di dalam memori. Contoh, jika sebuah variabel berisi alamat da¬ri variabel lain, variabel pertama dikatakan menunjuk ke variabel kedua.

Operator Pointer
Ada 2 operator pointer yang dikenal secara luas, yaitu operator & dan operator *.
Operator &



Operator & merupakan operator alamat. Pada saat pendeklarasian variable, user tidak diharuskan menentukan lokasi sesungguhnya pada memory, hal ini akan dilakukan secara otomatis oleh kompiler dan operating sysem pada saat run-time. Jika ingin mengetahui dimana suatu variable akan disimpan, dapat dilakukan dengan memberikan tanda ampersand (&) didepan variable , yang berarti "address of". Contoh :
ted = &andy;
Penulisan tersebut berarti akan memberikan variable ted alamat dari variable andy. Karena variabel andy diberi awalan karakter ampersand (&), maka yang menjadi pokok disini adalah alamat dalam memory, bukan isi variable. Misalkan andy diletakkan pada alamat 1776 kemudian dituliskan instruksi sbb :
andy = 25;
fred = andy;
ted = &andy;
Maka hasilnya :

Operator *



Operator * merupakan operator reference. Dengan menggunakan po¬inter, kita dapat mengakses nilai yang tersimpan secara langsung dengan mem¬berikan awalan operator asterisk (*) pada identifier pointer, yang ber¬arti "value pointed by". Contoh :
beth = *ted;
(dapat dikatakan:"beth sama dengan nilai yang ditunjuk oleh ted") beth = 25, karena ted dialamat 1776, dan nilai yang berada pada alamat 1776 adalah 25.

Ekspresi dibawah ini semuanya benar, perhatikan :
andy = 25;
&andy = 1776;
ted = 1776;
*ted = 25;

Ekspresi pertama merupakan assignation bahwa andy = 25;. Ke¬dua, meng¬¬gunakan operator alamat (address/derefence operator (&)), se¬hing¬ga akan meng¬embalikan alamat dari variabel andy. Ketiga bernilai be¬nar karena as¬signation untuk ted adalah ted = &andy;. Keempat meng¬gu¬nakan reference ope¬ra¬tor (*) yang berarti nilai yang ada pada alamat yang di¬¬tunjuk oleh ted, yaitu 25. Maka ekspresi dibawah ini pun akan bernilai be¬nar :
*ted = andy;

Deklarasi Pointer
Seperti halnya variabel lain, variabel pointer juga harus dideklarasikan terlebih dahulu sebelum digunakan. Bentuk umum deklarasi pointer adalah :


Dimana Tipe_data merupakan tipe dari data yang ditunjuk, bukan tipe dari pointer-nya. Contoh :
1. Mensubstitusikan address sebuah variabel ke pointer dengan memakai address operator &
int x;
int *ptr;
ptr = &x;
2. Mensubstitusikan address awal sebuah array ke pointer
char t[5];
char *ptr;
ptr = t;
3. Mensubstitusikan address salah satu elemen array dengan address operator
char t[5] ;
char *ptr;
ptr = &t[3];
4. Mensubstitusikan address awal character string ke pointer char
char *ptr;
ptr = ”jakarta”
5. Mensubstitusikan NULL pada pointer. NULL ada pointer kosong, menunjukkan suatu status dimana pointer itu belum diinisialisasikan dengan sebuah address tertentu.
6. Memakai fungsi MALLOC.

Macam – macam Pointer
Pointer Bertipe Void
Pada C++ terdapat pointer yang dapat menunjuk ke tipe data apapun, po¬inter semacam ini dideklarasikan dengan tipe void sehingga sering dikenal de¬ngan is¬ti¬lah Void Pointer. Berikut ini contoh listing program yang meng¬gu¬na¬kan void po¬inter.

Hasilnya adalah :


Dari hasil yang diberikan oleh program di atas terlihat bahwa sebuah po¬inter yang bertipe void dapat digunakan untuk menunjuk tipe data int, double, dan char

Melewatkan Array Menggunakan Pointer
Selain yang telah disebutkan di atas, pointer juga dapat berfungsi untuk me¬le¬watkan variabel yang bertipe array di dalam sebuah fungsi. Berikut ini ditu¬lis¬kan dua buah contoh program yang dapat menjelaskan pernyataan ini.
Program yang ditulis tanpa menggunakan pointer

Hasilnya adalah :
Program yang ditulis menggunakan pointer

Hasilnya adalah :


Pointer Aritmetika
Elemen-elemen array biasanya diakses melalui indeksnya, sebenarnya ada cara lain yang lebih efisien, yaitu dengan menggunakan pointer. Pointer sema¬cam ini disebut dengan istilah pointer aritmetika. Konsep dasar dari pointer arit¬me¬tika ini adalah melakukan operasi aritmetika terhadap variabel yang bertipe po¬int¬er. Misalnya kita mempunyai 5 buah data bertipe int yang disimpan dalam ben¬tuk array dengan nama A dan digambarkan sebagai berikut :
24 32 81 44 23
P
P+3

Jika kita mempunyai pointer p, maka kita dapat mengakses elemen-ele¬me¬n array di atas dengan cara melakukan operasi terhadap p. Berikut contoh pro¬gram yang akan mengilustrasikan kasus tersebut.


Hasilnya adalah :

Tipe Reference
Pada pembahasan pointer terdapat sebuah tipe data yang kerap kali digunakan, ya¬i¬tu tipe reference. Tipe reference sebenarnya merupakan alias (julukan/ nama lain) dari variabel yang dideklarasikan dengan menggunakan tipe data tertentu. Misal¬nya kita mendeklarasikan sebuah variabel x yang bertipe int dan kita akan mem¬bu¬at alias (dengan nama n) dari variabel tersebut, maka hal yang harus dilakukan ada¬lah mendeklarasikan alias tersebut menggunakan tipe reference yang ditulis¬kan dengan int&. Berikut ini sintak yang menjelaskan contoh di atas.

Alias n dibuat dengan cara mengakses alamat yang ditempati oleh varia¬bel x, yaitu dengan menggunakan tanda &. Oleh karena n merupakan alias dari x, ma¬ka x dan n akan mempunyai nilai yang sama atau dengan kata lain keduanya akan saling mempengaruhi.
Pointer NULL
Pada saat program dijalankan, pointer akan menunjuk ke alamat acak pa¬da memori, sehingga diperlukan inisialisasi agar hal tersebut tidak terjadi. Dalam C++ terdapat sebuah cara untuk membuat pointer tidak menunjuk ke alamat ma¬na¬pun, yaitu dengan mengisikan ponter tersebut dengan nilai NULL. Karena hal inilah maka pointer tersebut sering dinamakan pointer NULL (NULL Pointer). Se¬bagai contoh kita mempunyai pointer p, dan kita ingin melakukan inisialisasi pada pointer tersebut dengan nilai NULL, maka sintaknya adalah sebagai berikut.


Operasi-operasi Pointer
Operasi Penugasan
Suatu variabel pointer seperti halnya variabel yang lain, juga bisa mengalami operasi penugasan. Nilai sari suatu variabel pointer dapat disalin ke variabel pointer yang lain.
Contoh Program :

Operasi Aritmatika
Suatu variabel pointer hanya dapat dilakukan operasi aritmatika dengan nilai integer saja. Operasi yang biasa dilakukan adalah operasi penambahan dan pengurangan.
Contoh program :

Operasi Logika
Operasi logika juga dapat dilakukan pada sebuah variabel pointer. Contoh programnya :


Diposkan oleh Devid Haryalesmana di 22:56 . Minggu, 24 Mei 2009

# DOSEN :: Siti Sendari S.T, M.T\\handout pointer in c++

Rabu, 07 Oktober 2009

Perkenalan c++

Sumber:belajar sendiri-http://www.belajar-sendiri.com/
Nim:12095663
Nama:Ira Setyowati
Kelas:12.1d.07
Hari:Selasa dan Kamis
Jam:15.30


Berbicara tentang C++, biasanya tidak lepas dari C, sebagai bahasa pendahulunya. C adalah bahasa pemrograman yang dapat dikatakan berada antara bahasa beraras rendah (bahasa yang berorientasi kepada mesin) dan bahasa beraras tinggi (bahasa yang berorientasi pada manusia). Seperti diketahui, bahasa beraras tinggi mempunyai kompabilitas yang tinggi antarplatform. Karena itu, amatlah mudah untuk membuat program pada berbagai jenis mesin. Berbeda halnya kalau menggunakan bahasa beraras rendah, sebab setiap perintahnya bergantung sekali pada jenis mesin.


Pencipta C adalah Brian W. Kerninghan dan Dennis M. Ritchie pada sekitar tahun 1972. C adalah bahasa pemrograman terstruktur, yang membagi program dalam bentuk sejumlah blok. Tujuannya adalah untuk memudahkan dalam pembuatan dan pengembangan program. Program yang ditulis dengan menggunakan C, mudah sekali untuk dipindahkan dari satu jenis mesin ke jenis mesin lainnya. Hal ini berkat adanya standarisasi bahasa C yaitu berupa standar ANSI (American National Standards Institute) yang dijadikan acuan oleh para pembuat kompiler C.

C++ diciptakan satu dekade setelah C. Diciptakan oleh Bjarne Stroustrup, Laboratorium Bell, AT&T, pada tahun 1983. Bahasa ini bersifat kompatibel dengan bahasa pendahulunya, C. Pada mulanya, C++ disebut "a better C". Nama C++ sendiri diberikan oleh Rick Mascitti pada musim panas 1983. Adapun tanda ++ berasal dari nama operator penaikan pada bahasa C.

C diambil sebagai landasan dari C++, mengingat keportabilitasan C yang memungkinkannya diterapkan pada berbagai mesin, dari PC hingga Mainframe, serta pada berbagai sistem operasi (DOS, UNIX, VMS, dan sebagainya).

Keistimewaan yang sangat berarti pada C++ adalah karena bahasa ini mendukung pemrograman yang berorientasi objek (PBO atau OOP / Object Oriented Programming). Tetapi sekali lagi, C++ hanyalah bahasa yang bersifat hibrid , bukan bahasa murni yang berorientasi objek. Karena itu, pemrogram C pada tahap awal dapat berpindah jalur ke C++ setahap demi setahap. Pustaka-pustaka yang dibangun dengan C tetap dapai dipakai di C++, dibaurkan dengan program PBO.

Tujuan utama pembuatan C++ adalah untuk meningkatkan produktivitas pemrograman dalam membuat aplikasi. Kebanyakan pakar setuju bahwa PBO dan C++ dapat mengurangi kekompleksitasan, terutama pada program yang besar yang terdiri dari 10.000 baris atau lebih. Greg Perry pada tahun 1993, mensitir ungkapan para pelopor industri C++ yang pada intinya menyatakan C++ dapat meningkatkan produktivitas pemrogram lebih dari dua kali dibandingkan dengan bahasa prosedural seperti C, Pascal, dan BASIC. Hal ini didasarkan kenyataan bahwa kode yang ditulis dengan C++ lebih mudah untuk digunakan kembali pada program-program lain (bersifat reusability).

Meskipun demikian, kita jangan terlalu berharap untuk memperoleh keuntungan ini ketika kita sedan belajar C++. Yang kita dapatkan barangkali bukan peningkatan produktivitas, melainkan malahan berupa penurunan produktivitas pada awalnya, karena kita harus mempelajari karakteristik dari C++.