Pro::BLOG

Seni, wacana, Sains

Foto Saya
Nama:
Lokasi: Yogyakarta, DIY, Indonesia

Jumat, 25 Desember 2009

Pointer


Pointer (variabel penunjuk) adalah suatu variabel yang berisi alamat memori dari suatu variabel lain.

Pointer merupakan variabel yang dapat digunakan untuk menunjuk nilai integer, character, float, atau double dan bahkan tipe-tipe data lain yang didukung oleh bahasa C.

Variabel biasa, sifatnya statis dan sudah pasti, sedangkan pada pointer sifatnya dinamis dan dapat lebih fleksibel.

Variabel pointer yang tidak menunjuk pada nilai apapun berarti memiliki nilai NULL.

Bentuk Umum :
tipe_data *nama_pointer; atau
tipe_data* nama_pointer;

Contoh :
int *nilai;
char *huruf;

Pendeklarasian variabel pointer menggunakan tanda * sebelum nama variabelnya
Untuk menampilkan nilai yang ditunjuk oleh suatu variabel pointer, juga digunakan operator * (tanda asterisk) yang disebut deferencing operator.
Untuk menampilkan alamat tempat penyimpanan nilai yang ditunjuk oleh suatu variabel pointer, digunakan operator & (tanda ampersand) yang disebut operator referensi.

int y = 5; /*deklarasi variabel y*/
int *yPtr; /*deklarasi variabel pointer yPtr*/
 
yPtr = &y; /*mengisi variabel pointer yPtr dengan alamat dari variabel y*/
#include
#include

int main()
{
int n=44;
cout<<"n = "< cout<<"Variabel n berada pada alamat &n = "<<&n< int* pn=&n;
cout<<“Alamat variabel pn= "< cout<<"Nilai dari varibel pointer pn= "<<*pn;
getch();
return 0;
}

Label:


see detail...

Struktur data 1


Fungsi/function adalah bagian dari program yang memiliki nama tertentu, digunakan untuk mengerjakan suatu pekerjaan tertentu, serta letaknya dipisahkan dari bagian program yang menggunakan fungsi tersebut.

Program besar dapat dipisah menjadi program-program kecil.
Dapat dikerjakan oleh beberapa orang sehingga koordinasi mudah.
Kemudahan dalam mencari kesalahan-kesalahan karena alur logika jelas dan kesalahan dapat dilokalisasi dalam suatu modul tertentu saja.

Modifikasi program dapat dilakukan pada suatu modul tertentu saja tanpa mengganggu program keseluruhan.
Mempermudah dokumentasi.
Reusability: Suatu fungsi dapat digunakan kembali oleh program atau fungsi lain.

1. Standard Library Function
Yaitu fungsi-fungsi yang telah disediakan oleh C++ dalam file-file header atau librarynya.
Misalnya: clrscr(), printf(), getch()
Untuk function ini kita harus mendeklarasikan terlebih dahulu library yang akan digunakan, yaitu #include
2. Programmer-Defined Function
Adalah function yang dibuat oleh programmer sendiri.

1. Function Void

Disebut void karena fungsi tersebut tidak mengembalikan suatu nilai keluaran yang didapat dari hasil proses fungsi tersebut.
Tidak adanya keyword return.
Tidak adanya tipe data di dalam deklarasi fungsi.
Menggunakan keyword void.
Tidak memiliki nilai kembalian fungsi.

1. Function Void
Contoh:

void tampilkan_jml(int a,int b)
{
int jml;
jml = a + b;
cout< }

2. Function Non Void

Disebut non-void karena mengembalikan nilai kembalian yang berasal dari keluaran hasil proses function tersebut.
Ada keyword return
Ada tipe data yang mengawali deklarasi fungsi
Tidak ada keyword void
Memiliki nilai kembalian

2. Function Non Void
Contoh:

int tampilkan_jml(int a,int b)
{
int jml;
jml = a + b;
return jml;
}

Sebuah fungsi bisa memiliki argumen yang bersifat opsional.
Argumen-argumen tersebut berfungsi sebagai parameter inputan yang berupa variabel-variabel bagi fungsi tersebut (bersifat lokal).
Argumen harus bertipe data tertentu.
Terdapat 2 jenis parameter:
1. Parameter formal: parameter yang ditulis pada deklarasi fungsi.
2. Parameter aktual: parameter yang diinputkan dalam program pemanggil fungsi tersebut. Dapat berupa variabel atau langsung berupa nilai tertentu sesuai dengan tipe data yang dideklarasikan untuk masing-masing parameter fungsi.

Nilai variabel di dalam fungsi tidak dapat mengubah nilai dalam function main
Sebuah function dapat meng-call function lain
Dua atau lebih function dapat saling call.

Pengiriman Parameter ke suatu Function secara nilai (By Value)
Yang dikirimkan ke fungsi adalah nilainya, bukan alamat memori letak dari datanya
Fungsi yang menerima kiriman nilai ini akan menyimpannya di alamat terpisah dari nilai aslinya yang digunakan oleh program yang memanggil fungsi tersebut
Karena itulah pengubahan nilai di dalam fungsi tidak akan berpengaruh pada nilai asli di program yang memanggil fungsi walaupun keduanya menggunakan nama variabel yang sama.
Pengiriman by value adalah pengiriman searah, dari program pemanggil fungsi ke fungsi yang dipanggilnya
Pengiriman by value dapat dilakukan untuk suatu statement(ex: 5*a+1), tidak hanya untuk suatu variabel, value, array atau konstanta saja.
Secara default, C++ menggunakan parameter by value untuk pembuatan fungsi-fungsinya.

#include
#include
int a=10;
void getglobal(){
cout<<"nilai a global = "<}
void fungsi_by_value(int a){
a=a*3;
cout<<"nilai a by value = "<}
int main(){
int a=5;
getglobal();
cout<<"nilai a main adalah "< fungsi_by_value(a);
cout<<"nilai a main setelah funsi dipanggil adalah "< getch();
return 0;
}

2. Pengiriman Parameter ke suatu Function secara Acuan (by Reference)
Yang dikirimkan adalah alamat memori letak dari nilai datanya, bukan nilai datanya
Fungsi yang menerima parameter ini akan menggunakan alamat yang sama dengan alamat nilai datanya
Karena itulah pengubahan nilai di fungsi akan mengubah juga nilai asli di program pemanggil fungsi tersebut
Pengiriman parameter by reference adalah pengiriman dua arah, yaitu dari program pemanggil fungsi ke fungsi dan sebaliknya dari fungsi ke program pemanggilnya
Pengiriman parameter by reference hanya bisa untuk variabel, konstanta atau elemen array saja.

#include
#include
int a=10;
void getglobal(){
cout<<"nilai a global = "<}
void fungsi_by_value(int *a){
*a=*a*3;
cout<<"nilai a by value = "<<*a<<" alamatnya "<<&a<}
int main(){
int a=5;
getglobal();
cout<<"nilai a main adalah "< fungsi_by_value(&a);
cout<<"nilai a main setelah funsi dipanggil adalah "< getch();
return 0;
}






Label:


see detail...