Pointer, Array and Introduction to Data Structure-fernando-2101637812

Pointer, Array and Introduction to Data Structure
       Array Review
       Pointer Review
       Types of Data Structures
       Abstract Data Type
1. Array
      Array adalah kumpulan elemen data yang sama, dimana data tersebut memiliki tipe data yang sama (homogen). Tipe data tersebut dapat berupa integer(angka), char(karakter), floating point (angka berkoma), long(angka yang memiliki kapasitas diatas integer - 2^32), dan double (angka berkoma yang memiliki kapasitas yang lebih besar dari floating point).

        Array disimpan dalam memori yang statis, artinya alokasi memori dilakukan saat deklarasi sebuah array. Array sendiri dapat diakses lewat indexnya. Indexnya dimulai dari 0, bukan 1.

        Array dapat berupa array 1-dimensi, array 2-dimensi, array 3-dimensi, hingga array n-dimensi.
Deklarasi sebuah array dapat dilakukan dengan cara sebagai berikut:
Array 1 Dimensi: tipe nama[ukuran], contoh: int arr[10]
Array 2 Dimensi: tipe nama[ukuran1][ukuran2], contoh: int arr[10][10]
Array 3 Dimensi: tipe nama[ukuran1][ukuran2][ukuran3], contoh: int arr[10][10][10]
Index array sendiri dimulai dari 0 hingga ukuran-1. Misalnya int arr[10], maka akan memiliki index dari 0 hingga 9. Index juga berarti array memesan tempat di memori sejumlah index tersebut. Misalnya int arr [10] akan memesan sepuluh tempat di memori.
     
 Cara menyimpan nilai dalam array :
1. Inisialisasi elemen terlebih dahulu.
2. Menginput nilai dari eleme tersebut (user defined).
3. Mendefinisikan nilai dari array terlebih dahulu.

Operasi yang dapat dilakukan di Array antara lain:
1. Traversal
2. Insertion
3. Searching
4. Deletion
5. Merging
6. Sorting

Dalam array sendiri mempunyai isi maksimal pada angka 2 147 483 639( Integer.MAX_VALUE – 8 ) jika mengalokasikan array lebih besar dapat mengakibatkan OutOfMemoryError ”

2. Pointer
    
Pointer adalah tipe data yang memiliki nilai yang menunjuk kepada nilai lain yang disimpan dalam memori komputer, dengan menunjuk pada alamat nilai lain tersebut dalam memori.
Operator yang digunakan antara lain,
1. *, untuk mendefinisikan pointer (deklarasi)
2. &, opeator alamat
contoh: int x;
             int *px;
             px=&x; (nilai px akan sama dengan x)

3. Struktur Data
        Struktur data adalah pengaturan data , baik di memori komputer atau di memori lainnya.  Contoh struktur data antara lain:
1. Array.
2. Linked List
3. Queues
4. Stack
5. Binary Trees
6. Hash Tables
Kita akan mengupasnya satu demi satu :)

Array adalah kumpulan dari data yang homogen dan memiliki tipe data yang sama. Penjelasan lebih lanjut dapat kamu dapatkan di bagian atas :)

Linked list, adalah struktur data yang sangat dinamis, dimana elemen dapat ditambahkan dan dihapus dari mana saja sesuai keinginan. Tiap elemen disebut dengan node.

Queue adalah struktur data yang memiliki konsep seperti antrian, dimana data yang pertama kali masuk adalah yang pertama keluar (First In First Out). Contohnya adalah seperti antrian di kasir supermarket, dimana yang pertama mengantre sudah pasti yang pertama keluar. Bagian awal antrian disebut head, sedangkan bagian belakang antrian disebut rear.

Stack, adalah struktur data yang berkebalikan dengan queue dimana stack memiliki konsep LIFO (Last in first out) dan FILO (first in last out). Stack dapat direpresentasikan sebagai array linear. Contohnya adalah tumpukan piring, dimana kita mengambil tumpukan yang paling atas, bukan yang paling bawah untuk menghidari piring pecah.

Binary tree adalah struktur data yang didefinisikan sebagai kumpulan elemen yang disebut node. Tiap node berisi pointer kiri, pointer kanan, dan isi elemen.

4. Abstract Data Types
        Abstract data types adalah tipe data yang dibuat oleh user sendiri, dimana  dapat didefinisikan sebagai model matematika dari objek data yang menyempurnakan tipe data dengan cara mengaitkannya dengan fungsi-fungsi yang beroprasi pada data yang bersangkutan. Abstract data type disingkat ADT.
ADT di C, disebut struct, sedangkan ADT di c++ disebut class.

5. Introduction To Linked List
A. Structure
       
Structure adalah tipe data abstrak yang dapat dibuat oleh user. Structure dapat menyimpan informasi dan tipe data yang berbeda (heterogen), dibawah satu nama struct.
Contoh deklarasi struct:
struct tdata {
  int   age;
  char  name[100];
  float score;
};

void main (){
tdata x;
//gunakan . (dot) untuk mengakses x.
x.age = 17;
strcpy(x.name, “andi”);
x.score = 82.5
}

Nested structure adalah struct didalam struct. Contoh:

struct profile {
int   age;
char  name[100];
};
struct student {
struct profile p;
int  score;
char grade;
};


student x;
x.score = 92;
x.grade = ‘A’;


x.p.age = 20;
strcpy(x.p.name"Budi");


Array of Struct adalah penggunaan array didalam struct. Contoh:

struct profile {
  int   age;
  char  name[100];
};

struct student {
  struct profile p;
  int  score;
  char grade;
};

student arr[10];
arr[0].score = 92;
arr[0].grade = ‘A’;
arr[0].p.age = 20;
strcpy(arr[0].p.name,”budi”);



arr[1].score = 83;
arr[1].grade = ‘b’;
arr[1].p.age = 19;
strcpy(arr[1].p.name,”chandra”);

B. Memory Allocation
       
 Memory allocation pada linked list adalah alokasi memori secara dinamis. Pada C atau C++, kita dapat menggunakan malloc untuk mengalokasikan memori dan free untuk dealokasi memori.
Cara alokasi memori adalah sebagai berikut:


int  *px = (int *) malloc(sizeof(int));
char *pc = (char *) malloc(sizeof(char));
*px = 205;
*pc = ‘A’;
printf( “%d %c\n”, *px, *pc );
free(px);
free(pc);

C. Linked List
    
Linked list adalah struktur data yang terdiri dari data record terurut, dimana setiap record memiliki field yang berisi reference ke record berikutnya secara berurutan. Bagian depan linked list disebut head, sedangkan bagian belakang atau akhir disebut tail. Tiap nodes(bagian linked list) menunjuk ke alamat data selanjutnya, sedangkan yang terakhir menunjuk ke NULL atau 0.

Linked list dibagai 3, yaitu:
1. Single linked list, yaitu linked list yang hanya dapat maju dari head ke tail.
2. Double linked list, yaitu linked list yang dapat maju (next) dan mundur (prev).
3. Multiple linked list, yaitu linked list yang memiliki penunjuk arah lebih dari dua.

Linked list VS array (Perbedaan Linked list dan array)
Array:
1. Koleksi linear dari elemen data.
2. Menyimpan memori berurutan.
3. Bisa diakses dari mana saja(lewat index).

Linked list:
1. Koleksi linear dari nodes.
2. Data disimpan di memori dengan tidak berurut
3. Hanya dapat diakses secara berurutan.

Komentar

Postingan populer dari blog ini

Tree Concept

Binary Tree