Pendahuluan (Introduction)
Struktur data dapat didefinisikan sebagai kumpulan elemen data yang menyediakan cara efisien untuk menyimpan dan mengorganisasikan data di dalam komputer sehingga dapat digunakan secara efektif.
Beberapa contoh struktur data adalah array, linked list, stack, queue, dan lain-lain.
Struktur data digunakan secara luas dalam hampir setiap aspek ilmu komputer, seperti sistem operasi, desain compiler, kecerdasan buatan (Artificial Intelligence), grafika komputer, dan banyak lagi.
Struktur data merupakan bagian utama dari banyak algoritma dalam ilmu komputer karena memungkinkan programmer untuk mengelola data secara efisien.
Struktur data juga berperan penting dalam meningkatkan performa perangkat lunak atau program, karena fungsi utama software adalah menyimpan dan mengambil data pengguna secepat mungkin.
Terminologi Dasar (Basic Terminology)
Struktur data merupakan blok bangunan (building blocks) dari setiap program atau perangkat lunak. Memilih struktur data yang tepat merupakan salah satu tugas paling sulit bagi seorang programmer.
Berikut adalah beberapa istilah penting dalam struktur data:
1. Data
Data dapat didefinisikan sebagai nilai dasar atau kumpulan nilai.
Contoh: nama mahasiswa dan NIM merupakan data tentang mahasiswa.
2. Group Item
Item data yang memiliki sub-item disebut group item.
Contoh: nama mahasiswa terdiri dari nama depan dan nama belakang.
3. Record
Record adalah kumpulan berbagai item data.
Contoh: data mahasiswa yang terdiri dari nama, alamat, mata kuliah, dan nilai.
4. File
File adalah kumpulan record dari satu jenis entitas.
Contoh: data karyawan dalam sebuah perusahaan, di mana setiap record berisi data satu karyawan.
5. Attribute dan Entity
- Entity (Entitas): merepresentasikan sekumpulan objek tertentu
- Attribute (Atribut): karakteristik atau properti dari entitas
Contoh:
Entitas = Mahasiswa
Atribut = Nama, NIM, Alamat
6. Field
Field adalah unit informasi terkecil yang merepresentasikan atribut dari suatu entitas.
Kebutuhan Struktur Data (Need of Data Structures)
Seiring berkembangnya aplikasi dan meningkatnya jumlah data, muncul beberapa permasalahan berikut:
1. Kecepatan Proses (Processor Speed)
Untuk menangani data dalam jumlah sangat besar dibutuhkan pemrosesan yang cepat.
Namun, jika data terus bertambah hingga miliaran, prosesor dapat mengalami kesulitan.
2. Pencarian Data (Data Search)
Misalnya terdapat 1 juta data dalam suatu sistem.
Jika pencarian dilakukan secara berurutan, maka proses akan menjadi lambat.
3. Permintaan Bersamaan (Multiple Requests)
Jika ribuan pengguna mengakses data secara bersamaan di server, maka sistem dapat mengalami overload.
➡️ Solusi:
Struktur data digunakan untuk mengorganisasi data agar pencarian menjadi cepat tanpa harus memeriksa semua data.
Keuntungan Struktur Data (Advantages of Data Structures)
1. Efisiensi (Efficiency)
Efisiensi program sangat bergantung pada pemilihan struktur data.
Contoh:
- Menggunakan array → pencarian harus satu per satu (linear search)
-
Menggunakan struktur lain → bisa lebih cepat:
- Binary Search Tree
- Hash Table
- Ordered Array
2. Reusability (Dapat Digunakan Kembali)
Struktur data dapat digunakan kembali dalam berbagai program.
Implementasinya bahkan bisa dijadikan library yang digunakan oleh banyak aplikasi.
3. Abstraction (Abstraksi)
Struktur data didefinisikan menggunakan ADT (Abstract Data Type) yang memberikan tingkat abstraksi.
Artinya:
- Programmer hanya menggunakan interface
- Tidak perlu mengetahui detail implementasi di dalamnya
PRIMITIVE TYPE
Primitive data type adalah tipe data dasar yang langsung disediakan oleh bahasa pemrograman dan tidak tersusun dari tipe lain.
Ciri-ciri
- Sederhana dan dasar
- Menyimpan satu nilai
- Langsung didukung oleh bahasa (built-in)
- Operasi sudah tersedia (misalnya: +, -, *, /)
Contoh
-
int→ bilangan bulat -
float/double→ bilangan pecahan -
char→ karakter -
bool→ true/false
ABSTRACT DATA TYPE
Abstract Data Type (ADT) adalah tipe data yang didefinisikan berdasarkan perilaku (operasi), bukan implementasinya.
👉 Fokus pada:
- Apa yang bisa dilakukan (operasi)
- Bukan bagaimana cara implementasinya
Ciri-ciri
- Lebih kompleks dari primitive
- Bisa terdiri dari banyak data
- Menyembunyikan detail implementasi (abstraction)
- Didefinisikan dengan operasi (method)
Contoh ADT
- List
- Stack (push, pop)
- Queue (enqueue, dequeue)
- Tree
- Graph
Contoh Konsep Stack
Operasi:
-
push(x)→ tambah data -
pop()→ ambil data
Implementasi bisa:
- Array
- Linked Lis
Jenis-Jenis Struktur Data Linear
1. Array
Array adalah kumpulan elemen data yang memiliki tipe yang sama, di mana setiap elemen disebut sebagai elemen array.
Tipe data dari elemen array bisa berupa tipe data apa pun yang valid seperti char, int, float, atau double.
Elemen-elemen dalam array memiliki nama variabel yang sama, tetapi masing-masing memiliki indeks (subscript) yang berbeda.
Array dapat berupa:
- Satu dimensi
- Dua dimensi
- Multidimensi
Contoh elemen array:
age[0], age[1], age[2], age[3], ..., age[98], age[99]
2. Linked List
Linked list adalah struktur data linear yang digunakan untuk menyimpan daftar data di dalam memori.
Linked list dapat dipandang sebagai kumpulan node yang disimpan pada lokasi memori yang tidak berurutan (non-contiguous).
Setiap node dalam linked list memiliki:
- Data
- Pointer (referensi) ke node berikutnya
3. Stack
Stack adalah struktur data linear di mana proses penambahan (insertion) dan penghapusan (deletion) hanya dilakukan pada satu sisi, yang disebut top.
Stack merupakan Abstract Data Type (ADT) dan dapat diimplementasikan dalam berbagai bahasa pemrograman.
Disebut stack karena perilakunya seperti tumpukan di dunia nyata, misalnya:
- Tumpukan piring
- Tumpukan kartu
➡️ Prinsip utama:
LIFO (Last In, First Out)
(Data terakhir masuk, pertama keluar)
4. Queue
Queue adalah struktur data linear di mana:
- Penambahan elemen dilakukan di bagian belakang (rear)
- Penghapusan elemen dilakukan di bagian depan (front)
Queue juga merupakan Abstract Data Type (ADT), mirip dengan stack.
Queue terbuka di kedua ujungnya sehingga mengikuti prinsip:
FIFO (First In, First Out)
(Data pertama masuk, pertama keluar)
Jenis-Jenis Struktur Data Non-Linear
1. Tree (Pohon)
Tree adalah struktur data bertingkat (multilevel) yang memiliki hubungan hierarki antar elemen yang disebut node.
- Node paling bawah dalam hierarki disebut leaf (daun)
- Node paling atas disebut root (akar)
Setiap node memiliki pointer (referensi) untuk menunjuk ke node lain yang berdekatan.
Struktur tree didasarkan pada hubungan:
- Parent (induk)
- Child (anak)
Karakteristik:
- Setiap node dapat memiliki lebih dari satu anak (child), kecuali leaf
- Setiap node hanya memiliki maksimal satu parent, kecuali root
- Root tidak memiliki parent
Tree dapat diklasifikasikan menjadi berbagai jenis, yang biasanya dibahas lebih lanjut, seperti:
- Binary Tree
- Binary Search Tree
- AVL Tree
- dan lainnya
Operasi pada Struktur Data
1. Traversing (Penelusuran)
Setiap struktur data terdiri dari sekumpulan elemen data.
Traversing adalah proses mengunjungi setiap elemen dalam struktur data untuk melakukan operasi tertentu seperti pencarian atau pengurutan.
Contoh:
Jika kita ingin menghitung rata-rata nilai dari 6 mata pelajaran, maka kita harus menelusuri seluruh elemen array nilai, menjumlahkannya, lalu membaginya dengan jumlah mata pelajaran (6) untuk mendapatkan nilai rata-rata.
2. Insertion (Penyisipan)
Insertion adalah proses menambahkan elemen ke dalam struktur data pada posisi tertentu.
Jika ukuran struktur data adalah n, maka elemen dapat ditambahkan hingga kapasitas maksimum yang tersedia.
3. Deletion (Penghapusan)
Deletion adalah proses menghapus elemen dari struktur data.
Penghapusan dapat dilakukan pada posisi mana saja dalam struktur data.
Jika kita mencoba menghapus elemen dari struktur data yang kosong, maka akan terjadi kondisi yang disebut underflow.
4. Searching (Pencarian)
Searching adalah proses menemukan lokasi suatu elemen dalam struktur data.
Terdapat dua algoritma umum untuk pencarian:
- Linear Search
- Binary Search
(Keduanya biasanya dibahas lebih lanjut dalam materi algoritma)
5. Sorting (Pengurutan)
Sorting adalah proses mengurutkan elemen dalam struktur data berdasarkan aturan tertentu (misalnya naik atau turun).
Contoh algoritma sorting:
- Insertion Sort
- Selection Sort
- Bubble Sort
6. Merging (Penggabungan)
Merging adalah proses menggabungkan dua struktur data (misalnya list) yang memiliki tipe elemen yang sama menjadi satu struktur data baru.
Contoh:
Jika terdapat:
- List A berukuran M
- List B berukuran N
Maka hasil penggabungannya adalah:
- List C berukuran (M + N)
Kesimpulan
Operasi dasar dalam struktur data meliputi:
- Traversing → menelusuri data
- Insertion → menambah data
- Deletion → menghapus data
- Searching → mencari data
- Sorting → mengurutkan data
- Merging → menggabungkan data
Semua operasi ini sangat penting dalam pengolahan data agar program menjadi efisien dan optimal.
Referensi
https://drive.google.com/file/d/142wsjzK1ANXB83TWq4tmGtRFdUwHfv1u/view?usp=drive_link
https://drive.google.com/file/d/1Kk0cpSBEigCmPTPHtvnaGFmwPi6H1sQY/view?usp=drive_link





No comments:
Post a Comment