Struktur Data dibagi menjadi 2:

1.  Static Memory Allocation (Array)

  • Volumenya selalu tetap tidak bergantung pada jumlah data
  • Alokasi memori dilakukan pada saat array didefinisikan
  • Pembebasan memori dilakukan pada saat program berhenti

2.  Dynamic Memory Allocation (Linked List)

  • Ukurannya berubah-ubah disesuaikan dengan kebutuhan
  • Alokasi memori ditentukan pada saat data baru dibuat
  • Pembebasan memori dilakukan setiap ada penghapusan data

 

Array

Merupakan kumpulan data sejenis (homogen).

Memori dalam array disimpan dalam consecutive memory location (index).

Indexnya biasa dimulai dari angka 0 sampai jumlah data dikurang 1 (n-1).

Tipe-tipe array :

  • 1 dimensi (type name[size]);
  • 2 dimensi (type name[size1,size2]);
  • 3 dimensi (type name[size1,size2,size3]);

Ada tiga cara memasukkan array:

  1. Meniginialisasi elemen.
  2. Menginput value dari elemen tersebut.
  3. Mengassign value element tersebut.

Penggunaan Array:

  • Array digunakan untuk suatu database, contoh: tabel.
  • Array digunakan untuk operasi matematika, contoh: vektor.
  • Digunakan dalam bentuk struktur data lain, contoh: list.

Operasi-operasi yang ada di array:

  • Traversal
  • Insertion
  • Searching
  • Deletion
  • Merging
  • Sorting

 

Pointer

Pointer adalah sebuah variabel yang menunjukkan address dari sebuah nilai.

Memiliki bentuk umum berupa:

1.  * : operator reference

2.  & : operator alamat

 

Struktur Data

Tipe-tipe struktur data:

1. Array

 

2. Linked List

Struktur data yang terdiri dari urutan record data dimana setiap record memiliki field yang menyimpan alamat/referensi dari record selanjutnya.

Elemen data yang dihubungkan dengan link pada linked list disebut node.

Terdapat istilah head(kepala) untuk memulai dan tail(ekor) untuk mengakhiri.

 

3. Queue

Bersifat sama seperti sebuah antrian. Tempat paling depan dinamakan front, sedangkan tempat paling akhir dinamakan rear.

Contoh: Q: {Q1, Q2, Q3, …, Qn}

Q1 disebut front.

Qn disebut rear.

Bersifat FIFO (First In First Out).

Ada 2 macam queue:

  • Sircular queue
  • Priority queue

 

4. Stacks

Sebuah kumpulan data yang bersifat linear array. Data yang ada bersifat homogen.

Stacks bersifat LIFO(Last In First Out) / FILO(First In Last Out).

 

5. Binary Tree

Sebuah kumpulan data yang berbentuk seperti pohon.

Kumpulan data di binary tree disebut node.

Setiap node memiliki pointer kiri, pointer kanan, dan elemen datanya masing-masing.

 

6. Hash Tables

 

 

Structure

Structure atau biasa disingkat struct, adalah kumpulan dari berbagai variabel yang bisa berbeda jenis dalam 1 nama.

Deklarasi struct:

struct nama_struct{

elemen_struct1;

elemen_struct2;

}