ARRAY / RECORD
Array adalah struktur data ayang terdiri dari kumpulan – kumpulan elemen (nilai ataau variable) masing – masing diidentifikasi oleh satu indeks array atau kunci. Array juga salah satu struktur data yang palingtua dan paling penting dan digunakan oleh hampir setiap program. Banyak yang menerapkan struktur data dalam pembuatan daftar dan string.
Array merupakan kumpulan dari nilai-nilai data yang bertipe sama dalam urutan tertentu yang menggunakan sebuah nama yang sama. Nilai-nilai data dari di suatu array disebutelemen-elemen array. Letak urutan dari suatu elemen array ditunjukkan oleh suatu indeks. Array dapat berdimensi, satu, dua, tiga atau lebih. Bentuk dimensi array berupa:Dimensi satu (one-dimensional array) mewakili bentuk vektor Dimensi dua (two-dimensional array) mewakili bentuk dari suatu matriks atau tabel Dimensi tiga (three-dimensional array) mewakili bentuk ruang.
Array biasa digunakan dalam setiap bahasa pemrograman termasuk bahasa C, C++, pascal , java , dll.
Logika sederhananya array itu bisa disamakan dengan dua orang dengan nama yang sama didalam suatu komunitas, untuk membedakan antara nama yang satu atau dengan nama yang lain maka diberikan initial tambahan untuk setiap nama.
Deklarasi Array
Didalam penulisan bahasa pemograman setiap penggunaan array harus dideklarsikan terlebih dahulu. Pendeklarasian array diawali dengan nama variabel array diikuti dengan indeks array yang dituliskan didalam tanda “[ ]” , diikuti dengan kata cadangan of dan tipe data yang dibutuhkan.
Bentuk Umum Penulisan
Tanda_pengenal : array [..tipe index ..] of tipe data;
Contoh :
Var
A       :           array[1..4]_of_integer;
B       :           array[1..5]_of_string;
C       :           array[1..10] of real;
Keterangan :
A,B,C merupakan tanda pengenal/ nama variabel dari array;
1..4 : merupakan tipe indek dari array, yang menunjukan banyaknya data yang mampu disimpan.
Integer : menunjukan bahwa data yang diinput berupa bilangan bulat.

Perbedaan Array statis dan dinamis
Array statis itu tidak dapat diubah lagi banyaknya tempat penyimpananan. Array statis merupakan pointer. Sedangkan array dinamis bisa mengubah banyaknya elemen yang dapat disimpan dan dapat mengembangkan array dinamis dengan menggunakan pointer.
Pemanfaatan Array adalah struktur data yang sering digunakan dalam pemrograman untuk menyimpan data yang akan diolah atau diproses seperti proses sorting aaray adalah struktur data yang terdiri dari kumpulan variable yang bertipe sama.


Array 1 dimensi :
Elemen – elemen array dapat diakses oleh program menggunakan suatu indeks tertentu. Pengaksesan elemen array dapat dilakukan berurutan atau random berdasarkan indeks tertentu secara langsung. Pengisian dan pengambilan nilai pada indeks tertentu dapat dilakukan dengan mengeset nilai atau menampilakna nilai pada indeks yang dimaksud.

Memori statis / variabel statis adalah variabel yang dideklarasikan dan dinamai pada saat penulisan program. Memori yang dipakai oleh variabel ini akan tetap ada (dianggap terpakai) selama program dimana variabel tersebut di deklarasikan sedang dijalankan.

Perbedaan memori dinamis dan statis adalah :
Memori Dinamis :
Variabel yang dibuat dan mungkin juga dihapus / rusak selama eksekusi program.
Variabel dinamis belum nyata ada pada saat program di komplikasi.
Variabel tidak dapat dinamai pada saat program dibuat / ditulis.
Cara mengakses menggunakan pointer.

Memori Statis :
-  Tidak dapat dibuat atau pun dihapus pada saat eksekusi program dan variabel pointer tidak   dapat digunakan sebagai  menunjuk kepada variabel statis.
Dapat diakses hanya dengan menggunakan namanya.
Bila ingin menunjuk pada satu posisi dalam array maka dapat melakukan nya dengan menggunakan indeks / variabel yang bertype seperti indeks dari array.

Sebagai contoh di sini saya akan membahas tentang pengalokasian array, dimana kita harus menggunakan array 1 dimensi dan dimana kita menggunakan array 2 dimensi.
Array adalah kumpulan data – data bertype sama dengan menggunakan nama yang sama. Dengan menggunakan array, sejumlah variabel dapat memakai nama yang sama. Antara satu variabel dengan variabel yang lain di dalam array dibedakan berdasarkan subscript. Sebuah subscipt berupa bilangan di dalma tanda kurung siku. Melalui subscipt inilah masing – masing elemen array dapat di akses. Nilai subscript pertama adalah 0.
Deklarasi :




Array dibagi menjadi dua bagian, yaitu array 1 dimensi dan array 2 dimensi .
Array 1 dimensi yaitu hanya ad baris / hanya ada kolom (satu axis (y/x) )
Array 2 dimensi yaitu ada baris dan kolom (dua axis , x & y).

Penggunaan array 1 dimensi contohnya :
Program di bawah adalah untuk penginputan nama dengan menggunakan array 1 dimensi.
#include<constream.h>
void main()
{
clrscr();
char nama[5], x ;
cout<<"Nama : "; cin>>nama;
cout<<endl;
for (x=0; x<=4; x++)
{
cout<<nama[x];
}
getch();
}

Penggunaan array dengan menggunakan 2 dimensi :
#include <constream.h>
void main()
{
clrscr();
int x;
char nrp[5][7];
int nil[5],total, jumdat;
int rata;
cout<<"=============================="<<endl;
cout<<"| No  |              NRP    |   Nilai |"<<endl;
cout<<"=============================="<<endl;
cout<<"|     |            |         |"<<endl;
cout<<"|     |            |         |"<<endl;
cout<<"|     |            |         |"<<endl;
cout<<"|     |            |         |"<<endl;
cout<<"|     |            |         |"<<endl;
cout<<"=============================="<<endl;
cout<<"Mau Berapa Data(max 20):"; cin>>jumdat;
for (x=1; x<=5; x++)

{
gotoxy(3,x+3);
cout<<x;
gotoxy(11,x+3);
cin>>nrp[x];
gotoxy(25,x+3);
cin>>nil[x];
total=total+nil[x];
}
gotoxy (1,10);
cout<<"totalnya adalah :" <<total<<endl;
cout<<"Rata - Rata adalah :"; cin>>rata;
rata=
getch();
}

Selain itu , array 2 dimensi digunakan pada pertambahan matriks, perkalian matriks, dll. Array 2 dimensi memiloiki dua buah tanda kurung [ ] [].
Contoh :
Char pahlawan [3] [15];
Char pahlawan [0] [15] = “Soekarno”;
Char pahlawan [1] [15] = “Diponegoro”;
Char pahlawan [2] [15] = “Soedirman”;
Array seperti itu lah yang disebut dengan array 2 dimensi.

LINKED LIST
Linked list merupakan salah satu struktur data fundamental dalam membangun program. Sesuai namanya, linked list terdiri dari deretan node (yang berisikan data) dan link ke_node_lainnya.
Merupakan suatu struktur data pengembangan dari konsep ADT (Abstrak Data Type) yang bersifat dinamis. Linked List dapat dimanfaatkan secara effektif sesuai dengan keperluan. Linked List juga dapat benar – benar dihapus / dibersihkan dari memory.Linked List sebenarnya merupakan suatu typedata tersendiri. Ciri – ciri utama dari Linked List adalah, dia mempunyai minimal dua elemen utama. Elemen – elemen itu adalah data dan pointer untuk menunjukkan ke list berikutnya.
Linked List



Kita akan lebih efektif jika kita menggunakan konsep Linked List jika kita memerlukan suatu pengaksesan pada struktur data yang lebih dinamis. Konsep yang lebih cocok menggunakan linked list adalah : Stack, Queue, Tree, dan Graph.
Hal ini dikarenakan oleh sifat dinamis dari Linked List. Kita tidak perlu untuk mengetahui berapa block memory yang akan kita akses. Jadi, jika kita butuh block baru pada memory, tinggal menyisipkan pada kanan atau kiri list yang telah ada.
Untuk deretan node yang memiliki satu link ke node lain, kita menyebutnya sebagai singly-linked list, atau single linked list. Singly-linked list bisa diilustrasikan dengan barisan di mana setiap anggota barisan (node) berbaris menghadap ke satu arah dan anggota barisan memegang bahu anggota di depannya (link). Anggota paling depan cukup memegang udara kosong (null).



Untuk deretan node yang memiliki dua link ke node-node lain, kita menyebutnya sebagai doubly-linked list atau double linked list. Doubly-linked list bisa diilustrasikan dengan deretan orang di mana tangan kiri setiap anggota memegang tangan kanan anggota di sebelah kiri, dan tangan kanannya memegang tangan kiri anggota di sebelah kanan. Tangan kiri anggota paling kiri memegang udara kosong. Demikian juga dengan anggota paling kanan yang memiliki nasib sama: tangan kanannya memegang udara kosong.



Linked list bisa disusun linear atau circular. Ketika disusun circular, pada singly-linked list, anggota barisan yang tadi kita bahas tidak lagi memegang udara kosong, namun memegang bahu anggota paling belakang. Jadi, tidak pegel. Untuk circular doubly-linked list (atau doubly circularly linked list), nasib anggota paling kiri dan paling kanan juga berubah. Tangan kanan anggota paling kanan memegang tangan kiri anggota paling kiri.

Struktur data fundamental ini sangat berguna. Jadi, mahasiswa ilmu komputer yang mempelajari struktur data ini harus sungguh-sungguh mempelajarinya, walaupun harus berpusing-pusing. Linked list sendiri sudah berumur cukup tua dan dikembangkan_sejak_tahun_1955-56.

Struktur Linked List dalam Bahasa C
Struktur Data – Macam – macam Linked List, berikut merupakan macam – macam linked list :
* Singly Linked List :
Setiap node pada linked list mempunyai field yang berisi pointer ke node berikutnya dan juga memiliki field yang berisi data.
Akhir linked list ditandai dengan node terakhir akan menunjuk ke null yang akan digunakan sebagai kondisi berhenti saat pembacaan linked list.
* Double Linked List :
Linked list dengan menggunakan pointer, dimana setiap node memiliki 3 field, yaitu: 1 field pointer yang menunjuk ke pointer berikutnya, 1 field pointer yang menunjuk ke pointer sebelumnya dan field yang berisi data dari node tersebut. Pointer next dan prev-nya menunjuk ke null.
*Single Circular Linked List :
Single Linked List yang pointer next-nya menunjuk ke dirinya sendiri, jika terdiri dari beberapa node maka pointer terakhirnya akan menunjuk ke pointer terdepannya.
* Double Circular Linked List :
Double Linked List yang pointer next dan prev-nya menunjuk ke dirinya sendiri secara circular






Komentar