Struktur Data dan Pengertiannya

Posted on Posted in Pencerdasan

Struktur data adalah suatu cara menyimpan dan merepresentasikan data sehingga bisa digunakan / dioperasikan dengan efisien. Sedangkan data yang dimaksud disini bisa berupa apa saja yang tentunya ingin kita olah atau operasikan. Penggunaan struktur data tidak hanya terbatas pada bahasa pemrograman  sederhana saja, melainkan bisa digunakan untuk melakukan pemodelan permasalahan di bidang Teknik Informatika atau Ilmu Komputer.

Struktur data dapat diimplementasikan dengan menggunakan satu atau lebih tipe data sederhana. Penggunaannya pun disesuaikan dengan permasalahan yang dihadapi. Semisal bila dibutuhkan struktur data yang dapat menyimpan berbagai jenis data dalam suatu kesatuan, maka dapat menggunakan Struct. Bila butuh menyimpan data yang sifatnya berderet (linear) tetapi tidak mempunyai batasan jumlah yang pasti, maka dapat menggunakan Linked List. Masih banyak lagi penggunaan struktur data yang akan kita bahas.

Secara umum, struktur data yang ‘tingkat’ nya lebih tinggi menggunakan struktur data yang lebih sederhana untuk implementasinya. Beberapa tipe struktur data yang umum digunakan adalah sebagai berikut :

  • Array
    Array adalah sejumlah element yang disusun berurutan dan memiliki index masing – masing. Array hanya bisa terdiri dari elemen – elemen yang memiliki tipe data sama.
    ilustrasi array
  • Structure
    Structure adalah tipe struktur data yang digunakan untuk menyimpan beberapa elemen yang memiliki tipe data berbeda ke dalam satu kesatuan. Sehingga, ketika kita ingin mengolah salah satu elemen di dalamnya, maka tak perlu repot menghubungkannya lagi. Semisal, kita memiliki struct Mahasiswa yang memiliki elemen, nama, nomor induk dan nomor HP. Bila ingin mengurutkan bedasarkan namanya, maka tak perlu pusing datanya akan kacau. Sebab, secara otomatis, nomor induk dan nomor HP ikut terurutu bedasarkan namanya
  • Linked List
    Sesuai namanya, Linked List adalah suatu daftar terhubung yang implementasinya menggunakan struct. Satu elemen struct memiliki koneksi dengan elemen – elemen yang lain, sehingga membentuk sebuah rangkaian yang panjang, dapat dianalogikan seperti sebuah gerbong kereta yang satu gerbong ke gerbong lain terhubung dengan satu kait. Dalam implementasi linked list menggunakan struct, kita dapat menghubungkan satu struct dengan yang lain dengan menggunakan pointer yang berfungsi sebagai kait menuju ke struct lain.
    ilustrasi linked list
  • Stack
    Sesuai namanya secara harafiah yang berarti tumpukan, Stack adalah struktur data yang menyerupai suatu tumpukan. Elemen yang boleh diakses di Stack hanyalah yang berada di posisi teratas. Sehingga stack memiliki sifat Last In First Out (LIFO). Beberapa operasi yang umum pada stack adalah Push (menyimpan data ke stack), Pop (mengambil data dari stack), Clear (mengosongkan stack), isEmpty (memeriksa apakah stack kosong), isFull (memeriksa apakah stack penuh). Implementasi dari stack dapat menggunakan linked list atau array.
    ilustrasi stack
  • Queue
    Queue adalah tipe struktur data yang menyerupai sebuah antrian (sesuai namanya). Dimana elemen yang bisa diakses adalah elemen yang berada di posisi paling depan / pertama kali masuk, karena Queue memiliki sifat First In First Out (FIFO). Queue dapat diimplementasikan menggunakan array atau queue. Beberapa operasi yang terkenal dari queue adalah Enqueue (memasukkan data ke dalam queue), Dequeue (mengeluarkan data dari queue), isEmpty (memeriksa apakah queue kosong), isFull (memeriksa apakah queue penuh).
    ilustrasi queue
  • Tree
    Tree adalah struktur data yang tiap nodenya memiliki cabang lagi, sehingga bentuknya menyerupai pohon. Setiap node yang memiliki cabang (child node) disebut sebagai parent node, node yang terletak di puncak suatu tree disebut sebagai root. Implementasinya dalam bahasa pemrograman biasanya menggunakan linked list.  Tree adalah salah satu struktur data yang cukup banyak digunakan. Tree ini sendiri nantinya akan memiliki pengembangan lebih lanjut seperti Binary Search Tree (BST) dan Balanced Binary Search Tree (BBST) / AVL Tree.
    ilustrasi tree
  • Graph
    Graph adalah struktur data yang terdiri dari vertex dan edge. Vertex adalah record – record data yang disimpan sedangkan edge yang menghubungkan antar vertex. Graph banyak digunakan untuk merepresentasikan permasalahan yang melibatkan pencarian solusi dengan cost terkecil.
    ilustrasi graphMungkin anda bertanya, apa bedanya tree dengan graph?

    Tree hanya memiliki hubungan dengan satu node parent dan node childnya, di dalam tree DIPASTIKAN node – node yang berada di bawah tidak memiliki hubungan langsung dengan node – node lain selain parent dan childnya. Sehingga, dapat dipastikan juga bahwa di dalam tree tidak mungkin terbentuk sebuah looping (node – node yang saling berhubungan membentuk sebuah lingkaran tertutup).

Dari yang saya jelaskan diatas hanyalah sebagian kecil dari struktur data yang ada dan digunakan saat ini. Ini adalah struktur data yang umum digunakan di perkuliahan Teknik Infomatika. Berikutnya, saya akan memberikan tutorial mengenai implementasi dari masing – masing struktur data diatas.

Leave a Reply

Your email address will not be published. Required fields are marked *