Kamis, April 4

Array, Pointer, & Linked List

1.ARRAY

Array adalah suatu struktur yang terdiri dari sejumlah
elemen yang memiliki tipe datayang sama. Elemen-elemen
array tersusun secara sekuensial dalam memori komputer.

a)Array Satu Dimensi

Array Satu dimensi tidak lain adalah kumpulan
elemen-elemen identik yang tersusun dalam satu baris.
Elemen-elemen tersebut memiliki tipe data yang sama,
tetapi isi darielemen tersebut boleh berbeda.
Bentuk umum:
NamaArray[n] = {elemen0, elemen1, elemen2,.....,n};
n = jumlah elemen

b)Array Dua Dimensi

Array dua dimensi sering digambarkan sebagai sebuah matriks,
merupakan perluasandari array satu dimensi.
Bentuk umum:
NamaArray [m][n];
Atau
NamaArray [m][n] = { {a,b,..z},{1,2,...,n-1} };
Contoh:
double matrix[4][4];
bool papan[2][2] = { {true,false},{true,false} };
Pendeklarasian array dua dimensi hampir sama
dengan pendeklarasian array satudimensi,
kecuali bahwa array dua dimensi terdapat dua
jumlah elemen yang terdapat di dalam kurung
siku dan keduanya boleh tidak sama.

2. STRUCTURE

Structure merupakan sekumpulan elemen data yang dikelompokkan secara bersama-sama dengan sebuah nama. Elemen dari anggotanya dapat memiliki tipe data dan panjang yang berbeda
Deklarasi Structure
struct structure_name
{
member_type1 member_name1;
member_type2 member_name2;
member_type3 member_name3;
….
} object_names;

3.POINTER

Pointer merupakan tipe data berukuran 32 bit yang berisi satu
nilai yang berpadanandengan alamat memori tertentu.
Sebagai contoh, sebuah variabel P bertipe pointer bernilai 0x0041FF2A,
berarti P menunjuk pada alamat memori 0041FF2A. Pointer dideklarasikan
seperti variabel biasa dengan menambahkan tanda * (asterik) yang
mengawali nama variabel.
Bentuk Umum:
namaVariabel;
Contoh:
float * px;
Dalam pointer, terdapat 2 jenis operator yang biasa
digunakan :

a. 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

b. Operator Reference (*)

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

4.LINKED LIST

Hanya menggunakan satu variabel pointer saja
untuk menyimpan banyak data dengan metode yang kita
sebut Linked List.
Linked list adalah sekumpulan elemen bertipe sama,
yang mempunyai keterurutan tertentu, yang setiap
elemennya terdiri dari dua bagian.
Bentuk Umum :
Typedef struct telmtlist
{
Infotype info;
Address next;
}elmlist;
infotype sebuah tipe terdefinisi yang menyimpan informasi sebuah elemen list
next address dari elemen berikutnya (suksesor)
Jika L adalah list, dan P adalah address, maka alamat elemen pertama list L dapat diacu
dengan notasi :
first(L)
Sebelum digunakan harus dideklarasikan terlebih dahulu :
#define first (L) (L)
Elemen yang diacu oleh P dapat dikonsultasi informasinya dengan notasi :
Info (P) deklasrasi #define info (P) (P)-> info
Next (P) deklasrasi #define next (P) (P)-> next

a.Single Linked List

Linked List merupakan sekumpualan elemen bertipe sama ,
yang mempunyai urutan tertentu , yang setiap elemennya
terdiri dati dua bagian .Dimana jika dibandingkan dengan array

*LIFO ( Last In First Out)

Lifo adalah suatu metode pembuatan Linked List di mana data
yang masuk paling akhiradalah data yang keluar paling awal. Hal ini
dapat dianalogikan (dalam kehidupansehari-hari) dengan saat Anda menumpuk barang seperti digambarkan dibawah ini.Pembuatan
sebuah simpul dalam suatu linked list.

*FIFO (Fisrt In Fisrt Out)

FIFO adalah suatu metode pembuatan Linked List di mana
data yang masuk palingawal adalah data yang keluar paling awal juga.

b).Double Linked List

Salah satu kelemahan single linked list adalah pointer (penunjuk) hanya dapat bergerak
satu arah saja, maju/ mundur, atau kanan/kiri sehingga pencarian data pada single
linked list hanya dapat bergerak dalam satu arah saja. Untuk mengatasi kelemahan
tersebut, anda dapat menggunakan metode double linked list. Linked list ini dikenal
dengan nama Linked list berpointer Ganda atau Double Linked List.

c).Circular Double Linked List

Ini adalah double linked list yang simpul terakhirnya menunjuk ke simpul terakhirnya
menunjuk ke simpul awalnya menunjuk ke simpul akhir sehingga membentuk suatu
lingkaran.

Tidak ada komentar:

Poskan Komentar