Summary of Basic Data Structures and Its Applications



Struktur data adalah suatu cara untuk menyimpan data agar dapat digunakan secara efisien dan efektif. Beberapa dasar struktur data yaitu array, struct, linked list, dan class.

Array
Array adalah sebuah struktur data yang digunakan untuk koleksi data secara contiguous (berurutan) dalam memori. Akses data dapat dilakukan secara sangat efisien dengan melakukan perhitungan aritmatika pointer secara O(1).

Struct
Struct adalah sebuah struktur data yang berisi kumpulan data yang berbeda jenisnya. Struct disebut juga sebagai koleksi data (record).

Linked List
Linked list adalah sebuah struktur data yang digunakan untuk koleksi data secara non-contiguous (tidak berurutan) dalam memori. Setiap node akan menunjuk ke setiap node lainnya yang berbeda posisinya di dalam memori.

Class
Class adalah sebuah struktur data yang berisi kumpulan data yang berbeda jenisnya (record). Secara implementasi, class mirip dengan struct, namun dilengkapi dengan access modifier (enkapsulasi). Manipulasi data dalam class dilakukan melalui method (abstraksi).

Abstract Data Type
Tipe data abstrak (ADT) adalah tipe data yang operasinya dilakukan melalui method atau function. Misalnya, untuk menghapus suatu data tidak dilakukan operasi penghapusan secara manual, namun dengan cara menggunakan method atau function delete(). Oleh karena itu, tipe data ini disebut sebagai tipe data abstrak, di mana operasinya tidak terlihat secara kasat mata atau dilakukan melalui sebuah lapisan abstraksi. Terdapat beberapa jenis tipe data abstrak, seperti linked list, stack, queue, hash table, binary tree, AVL tree, Red-Black tree, graph, segment tree, dan sebagainya.
  • Linked List

    Linked list adalah sebuah struktur data yang digunakan untuk koleksi data secara non-contiguous (tidak berurutan) dalam memori. Setiap node akan menunjuk ke setiap node lainnya yang berbeda posisinya di dalam memori. Linked list
    pada umumnya diimplementasikan dalam bentuk tipe data abstrak. Berbeda dengan array yang umumnya operasinya dilakukan secara manual, operasi linked list biasanya dilakukan melalui method atau function, seperti insert(), delete(), dan transverse(). Beberapa jenis linked list yaitu:
    • Singly Linked List
      Linked list dengan satu node pointer.
    • Doubly Linked List
      Linked list dengan node pointer
      ganda.
    • Circular Linked List
      Linked list yang node pointer terakhirnya menunjuk kembali ke node awal (implementasi singly linked list), atau node pointer awal menunjuk kembali ke node terakhir dan node pointer terakhirnya menunjuk kembali ke node awal (implementasi doubly linked list).
    • Header Linked List
      Linked list yang node pertamanya memuat informasi mengenai karakteristik linked list tersebut, seperti ukuran linked list, dan sebagainya.
    • Unrolled Linked List
      Suatu jenis struktur data yaitu array yang berisi dengan beberapa node linked list, sehingga didapatkan performa kecepatan akses mendekati O(1) seperti array dan kecepatan modifikasi elemen mendekati O(1) seperti linked list.
    Penjelasan mengenai circular linked listdoubly linked list, dan header linked list dapat dilihat di link ini.
  • Stack

    Stack
    adalah struktur data yang bersifat seperti tumpukan, yang memiliki prinsip LIFO (Last In, First Out). Stack dapat diimplementasikan dengan linked list atau dynamic array. Operasi yang biasanya dilakukan pada stack adalah get_back(), push_back(), dan pop_back().
  • Queue


    Queue adalah struktur data yang bersifat seperti antrian, yang memiliki prinsip FIFO (First In, First Out). Queue dapat diimplementasikan dengan linked list atau circular array. Operasi yang biasanya dilakukan pada queue adalah get_front(), push_back(), dan pop_front().
  • Hash Table

    Hash Table adalah sebuah struktur data yang menyimpan data secara assosiatif. Indeks dalam struktur data array biasanya berupa angka, sedangkan dalam hash table bisa berupa tipe data apapun, yang dinamakan key. Sedangkan data yang diakses menggunakan key disebut sebagai value.
    Penjelasan mengenai hash table dapat dilihat di link ini.
  • Binary tree

    Tree adalah suatu struktur data yang memiliki hierarki. Dalam implementasinya, tree memiliki beberapa pointer yang menunjuk ke node lainnya. Binary tree adalah tree yang setiap nodenya menunjuk ke paling banyak dua node.
    Penjelasan mengenai binary tree dapat dilihat di link ini.
Aplikasi
DREAMERS market
  • Aplikasi ini dibuat menggunakan doubly linked list.
  • Aplikasi ini dibuat bisa input barang (nama dan kuantitas), bisa edit kuantitas dan bisa menghapus item yang salah.
  • Ketika checkout anda akan ditampilkan hasil total dari perhitungan kuantitas (seperti struk minimarket)
  • Harga yang tertera random, namun hasil penjumlahan benar (totalnya benar).
Source code aplikasi ini dalam bahasa pemrograman C dapat didownload di sini.

Comments