menu

Selasa, 14 Juni 2011

Pengertian Pointer dan Array pada Lab Windows

POINTER DAN ARRAY
Bahasa C++ maupun CVI membolehkan kita untuk memanipulasi memori dengan cara penggunaan pointer. Hal ini merupakan fitur yang tidak disediakan oleh bahasa pemrograman yang lain. Apabila digunakan secara benar maka akan sangat menguntungkan, tetapi bila salah dalam penggunaan bisa berakibat pada kerusakan (crash atau hang) pada sistem operasi.

Konsep dan Pengertian Pointer
Pointer adalah variabel. Namun berbeda dengan variabel normal, pointer menyimpan alamat pada memori, bukan nilai yang kita masukkan. Perhatikan contoh berikut.
Contoh. Mendeklarasikan pointer.
#include <iostream>
using namespace std;
int main() {
long *Alamat;
long X;
Alamat = &X;
X = 5; // Mengisikan nilai 5 ke dalam variabel X
cout<<"Nilai X : "<<X<<endl;
cout<<"Nilai *Alamat : "<<*Alamat<<endl;
cout<<"Nilai Alamat : "<<Alamat<<endl;
cout<<"Nilai &X : "<<&X<<endl;
*Alamat = 20; // Mengisikan nilai 20 ke dalam *Alamat
cout<<"Nilai X : "<<X<<endl;
cout<<"Nilai *Alamat : "<<*Alamat<<endl;
cout<<"Nilai Alamat : "<<Alamat<<endl;
cout<<"Nilai &X : "<<&X<<endl;
return 0;
}

Pada contoh di atas, kita deklarasikan variabel alamat sebagai pointer dengan menambahkan tanda * di depan nama variabel. Jika kita tidak menggunakan tanda * berarti variabel tersebut akan berfungsi seperti variabel mnormal. Variabel X kita deklarasikan sebagai variabel normal dengan tipe data long. Perhatikan pada baris Alamat = &X. Baris ini menyatakan bahwa variabel Alamat (bukan pointer) akan diisi dengan nilai dari alamat dari X. Tanda & di depan nama variabel berarti kita menginginkan nilai alamat memorinya yang kita gunakan dan bukan nilainya. Apabila kita eksekusi programnya maka akan ada outputnya.
Perhatikan nilai-nilai output pada contoh diatas Nilai seperti 0x22ff88, adalah angka hexadesimal dari alamat variabel. Kalau kalian amati, ketika kitamemasukkan nilai 5 pada variabel X maka variabel *Alamat akan berisi juga nilai . Penggunaan maka akan sangat memboroskan pemakaian memori dan pada akhirnya akan membuat sistem berjalan tidak semestinya.

Perhatikan contoh penggunaan new dan delete berikut ini.
Contoh  Penggunaan new dan delete.
#include <iostream>
using namespace std;
int main() {
int *Alamat;
// Melakukan alokasi memori
Alamat = new int;
// Menggunakan memori yang telah dialokasikan
*Alamat = 100;
cout<<"Nilai *Alamat : "<<*Alamat<<endl;
// membebaskan memori
delete Alamat;
return 0;
}

Array
Seperti telah dijelaskan pada bab-bab sebelumnya, array dapat digunakan untuk menyimpan banyak data yang tipenya sama pada satu nama variabel. Pendefinisian array pada C++ hamper mirip dengan VB atau Java. Hanyasintaks penulisannya yang berbeda. Perhatikan contoh array sederhana berikut ini.
Contoh Array sederhana.
#include <iostream>
using namespace std;
int main() {
// deklarasi array A dengan 5 buah elemen bertipe int
int A[5];
cout<<"A[C]"<<" "<<"B"<<endl;
// Memasukkan nilai ke dalam elemen array
for (int C=0; C<5; C++) {
double B = 5;
A[C] = C;
B = A[C]/B;
cout<<A[C]<<" "<<B<<endl;

}
return 0;
}

Pada contoh di atas kita mendeklarasikan array dengan nama A dan tipe datanya adalah int. C pada kode di atas adalah variabel counter. Untuk memasukkan nilai pada array, perhatikan pada baris A[C] = C. C di sini adalah indeks dari variabel A. Sama seperti halnya pada VB ataupun Java, nilai default awal dari indeks array adalah 0.
Pada contoh di atas kita mendeklarasikan array tanpa inisialisasi nilai. Tapi sebenarnya kita dapat langsung member nilai bersamaan dengan pendeklarasian variabel array. Kemudian kita dapat merubah nilainya ketika
program sedang berjalan atau dibagian lain dari program.
Perhatikan contoh berikut.
Contoh. Deklarasi dan inisialisasi array.
#include <iostream>
using namespace std;
int main() {
// Deklarasikan dan inisialisasi array
char X[3] = { 'A', 'B', 'C' };
// Menampilkan nilai awal elemen array
cout<<"Nilai array awal"<<endl;
cout<<"X[0] = "<<X[0]<<endl;
cout<<"X[1] = "<<X[1]<<endl;
cout<<"X[2] = "<<X[2]<<endl;
// Mengubah elemen ke-1 dan ke-2
X[0] = 'G';
X[1] = 'H';

// Menampilkan nilai perubahan dari elemen array
cout<<"Nilai array setelah dirubah"<<endl;
cout<<"X[0] = "<<X[0]<<endl;
cout<<"X[1] = "<<X[1]<<endl;
cout<<"X[2] = "<<X[2]<<endl;
return 0;
}

Jalankan kode program di atas dan lihat hasilnya.

C++ juga menyediakan fitur untuk membuat array multidimensi. Deklarasi array multidimensi dapat dilakukan dengan cara seperti pada contoh dibawah ini :

Contoh 9.25. Deklarasi array multidimensi.
#include <iostream>
using namespace std;
int main() {
// Deklarasi dan inisialisasi array multidimensi
int Matrik_A[3][2] = { {1,2}, {3,4}, {5,6} };
int Matrik_B[2][3] = { {1,2,3}, {4,5,6} };
// Mendeklarasikan variabel untuk indeks pengulangan
int j, k;
// Menampilkan nilai yang tersimpan dalam elemen array A
cout<<"ISI MATRIKS A"<<endl;
for (j=0; j<3; j++) {
for (k=0; k<2; k++) {
printf("Hasil Array %d\n",j);
}

(*)

Tidak ada komentar:

Posting Komentar