Jumat, 20 Juli 2012

Array & Pointer

  1. Array
 Array adalah suatu tipe data terstuktur yang berupa sejumlah data sejenis (bertipe data sama) dibedakan oleh index yang jumlahnya bisa statis ataupu dinamis dan diberi suatu nama tertentu. Elemen-elemen array tersusun secara berderet dan sekuensial di dalam memori sehingga memiliki alamat yang besebelahan/berdampingan. Array dapat berupa array 1 dimensi, 2 dimensi, bahkan n-dimensi. Elemen-elemen array bertipe data sama tapi bisa bernilai sama atau berbeda-beda. Keunggulan Array :
  • Array sangat cocok untuk pengaksesan acak. Sembarang elemen di array dapat diacu secara langsung tanpa melalui elemen-elemen lain.
  •  Jika berada di suatu lokasi elemen, maka sangat mudah menelusuri ke elemenelemen tetangga, baik elemen pendahulu atau elemen penerus.
  •  Jika elemen-elemen array adalah nilai-nilai independen dan seluruhnya harus terjaga, maka penggunaan penyimpanannya sangat efisien.
Kelemahan Array :
  • Array harus bertipe homogen. Kita tidak dapat mempunyai array dimana satu elemen adalah karakter, elemen lain bilangan, dan elemen lain adalah tipe-tipe lain.
  •  Kebanyakan bahasa pemrograman mengimplementasikan array statik yang sulit diubah ukurannya di waktu eksekusi. Bila penambahan dan pengurangan terjadi terus-menerus, maka  representasi statis.
Deklarasi Variable Array :
tipe_data nama_var[banyak]; 
tipe_data : menyatakan jenis tipe data elemen larik (int, char, float, dll)
nama_var : menyatakan nama variabel yang dipakai.
banyak : menunjukkan jumlah maksimal elemen larik. 
Example :
Char nama[9];
Int nilai[4];
int bilangan[]; 

char nama[9]: berarti akan memesan tempat di memori komputer sebanyak 9 tempat dengan indeks dari 0-8, dimana semua elemennya bertipe data karakter semuanya. Kalau satu karakter berukuran 1 byte, berarti membutuhkan memori sebesar 9 byte.  
int nilai[4]: berarti akan memesan tempat di memori komputer sebanyak 4 tempat dengan indeks dari 0-3, dimana semua elemennya bertipe data integer semuanya. Kalau satu integer berukuran 4 bytes, berarti membutuhkan memori sebesar 4 x 4 = 16 bytes. 
int bilangan[]:berarti mendeklarasikan array dengan ukuran maksimum array tidak diketahui, namun ukuran tersebut diketahui berdasarkan inisialisasi yaitu sebanyak 3 elemen, yang isinya 1,2, dan 3.

Mengakses Elemen Array 
Nama_var[index]; 
Pengisian dan pengambilan nilai pada indeks tertentu dapat dilakukan dengan mengeset nilai atau menampilkan nilai pada indeks yang dimaksud. Pengaksesan elemen array dapat dilakukan berurutan atau random berdasarkan indeks tertentu secara langsung.
Contoh : nilai[2];
 
Contoh syntax : 
#include
#include
void main ()
{ int y [] = {1, 2, 7, 4, 5};
int n, r=0;
for ( n=0 ; n<5 ; n++ )
{
r += y[n];
}c
out<<" "<
getch(); }

Array Multidimensi 
Array multidimensi yaitu array yang terdiri dari beberapa subskrip atau index array. Contoh, array 2 dimensi adalah array yang mempunyai 2 index, array 3 dimensi adalah array yang mempunyai 3 index. Array seperti ini sering digunakan untuk pemrosesan matrik.

DEKLARASI ARRAY MULTIDIMENSI 
tipe_data nama_var[banyak_baris][banyak_kolom];
contoh : int matriks[3][4];                     
array ini bisa di ibaratkan table yang mempunya baris dan kolom. 

Contoh pengaksesan : 
matrix[2][3]; 
Maka nilainya ialah 3.


2. Pointer
Pointer adalah suatu variabel penunjuk yang menunjuk pada suatu alamat memori komputer tertentu. Pointer merupakan variabel level rendah yang dapat digunakan untuk menunjuk nilai integer, character, float, double, atau single, 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, dan disebut sebagai dangling pointer karena nilainya tidak diinisialisasi dan tidak dapat diprediksi.

Deklarasi variabel pointer
tipe _data * nama_pointer;
  • Operator Alamat / Dereference Operator(&)
Setiap variabel yang dideklarasikan, disimpan dalam sebuah lokasi memori dan pengguna biasanya tidak mengetahui di alamat mana data tersebut disimpan. Dalam C++, untuk mengetahui alamat tempat penyimpanan data, dapat digunakan tanda ampersand(&) yang dapat diartikan “alamat”.
Contoh :
Bil1 = &Bil2;
dibaca: isi variabel bil1 sama dengan alamat bil2

  • Operator Reference (*)
Penggunaan operator ini, berarti mengakses nilai sebuah alamat yang ditunjuk oleh variabel pointer.
Contoh :
Bil1=*Bil2;
dibaca: bil1 sama dengan nilai yang ditunjuk oleh bil2.

OPERASI POINTER
1. Operasi penugasan
Nilai dari suatu variabel pointer dapat disalin ke variabel pointer yang lain.
contoh: y = 35;
x1 = &y;
x2 = x1;

2. Operasi aritmatika
 Suatu variabel pointer hanya dapat dilakukan operasi aritmatika dengan nilai integer saja.
 Operasi yang biasa dilakukan adalah operasi penambahan dan pengurangan.
 Operasi penambahan dengan suatu nilai menunjukkan lokasi data berikutnya (index selanjutnya) dalam memori.
Begitu juga operasi pengurangan.

3. Operasi Logika
Suatu pointer juga dapat dikenai operasi logika.

#include"constream.h"
void main()
{ int a = 100, b = 200, *pa, *pb;
clrscr();
pa = &a;
pb = &b;
cout<<"nilai pa= "<
if(pa < pb)
cout<<"pa menunjuk ke memori lebih rendah dari pb\n";
if(pa == pb)
cout<<"pa menunjuk ke memori yang sama dengan pb\n";
if(pa > pb)
cout<<"pa menunjuk ke memori lebih tinggi dari pb\n";
getch();
}



Download contoh program C++, Array1, Array2, Array 3 Dimensi, Pointer1, 2, & 3
Selanjutnya kita akan membahasa Linked List !!! Klik Disini Linked List 


Sumber : Antonius Rachmat C, S.Kom,  Ibu Yuli

 

0 komentar:

Posting Komentar

 
Copyright © . Kumpulan Tutorial Sederhana - Posts · Comments
Theme Template by BTDesigner · Powered by Blogger