Tuesday, April 28, 2026
Tuesday, April 21, 2026
Linked List
Linked
List
Linked List adalah struktur data yang terdiri dari
kumpulan objek yang disebut node, yang tersimpan secara tidak
berurutan (tidak bersebelahan) di dalam memori.
Berbeda dengan array, elemen pada linked list tidak harus
berada pada alamat memori yang berdekatan
Struktur Node pada Linked List
Setiap node dalam linked list memiliki dua bagian utama,
yaitu:
- Data
- Berisi
nilai atau informasi yang disimpan pada node tersebut.
- Pointer
(Next)
- Berisi
alamat memori dari node berikutnya dalam list.
Node Terakhir
Node terakhir dalam linked list memiliki ciri khusus:
- Pointer-nya
tidak menunjuk ke node lain
- Biasanya
berisi nilai NULL
Artinya, node tersebut adalah akhir dari linked list
Implementasi dalam C++
Referensi
Tuesday, April 14, 2026
Queue
Queue (Antrian) adalah struktur data linear yang merupakan kumpulan elemen. Queue adalah jenis khusus dari list, di mana elemen dimasukkan pada satu ujung yang disebut rear (belakang) dan dihapus dari ujung lainnya yang disebut front (depan).
Prinsip utama dari queue adalah FIFO (First-In-First-Out) atau masuk pertama, keluar pertama.
Queue merupakan struktur data abstrak (Abstract Data Type / ADT) dan sangat berguna dalam pemrograman. Konsepnya mirip dengan antrian tiket di depan bioskop, di mana orang yang pertama kali masuk antrian adalah orang pertama yang mendapatkan tiket.
Contoh dalam kehidupan nyata lainnya adalah jalan satu arah satu jalur, di mana kendaraan yang masuk terlebih dahulu akan keluar terlebih dahulu.
Operasi utama:
-
enqueue()→ tambah data -
dequeue()→ hapus data
Penjelasan Variabel
-
Q: array sebagai penyimpan queue -
MAX: kapasitas maksimum queue -
front: penunjuk elemen depan -
rear: penunjuk elemen belakang -
item: data yang akan dimasukkan
DEQUEUE
Contoh :
Implementasi Array
Implementasi Link List
Monday, April 6, 2026
Studi Kasus Stack
Konversi ke Postfix
Evaluasi Postfix
Multi Digit Postfix
Referensi
Pengumpulan Tugas
Form Monitoring Tugas
Absensi
Tuesday, March 31, 2026
STACK
Definisi
Stack adalah struktur data linear yang menyimpan kumpulan elemen, di mana proses:
- penambahan (insertion / push)
- penghapusan (deletion / pop)
hanya dapat dilakukan pada satu sisi yang disebut top (puncak stack).
Prinsip Stack
Stack menggunakan prinsip:
👉 LIFO (Last In, First Out)
Artinya:
- Elemen yang terakhir dimasukkan akan menjadi yang pertama dikeluarkan
Analogi Sederhana
Seperti tumpukan piring:
- Piring terakhir yang diletakkan di atas → diambil pertama
- Tidak bisa mengambil dari tengah
Operasi Dasar Stack
- Push → menambahkan elemen ke stack
- Pop → menghapus elemen dari stack
- Peek/Top → melihat elemen paling atas
- isEmpty → mengecek apakah stack kosong
- isFull → mengecek apakah stack penuh (untuk array)
Stack dengan Link List
Pada implementasi ini:
- Stack direpresentasikan sebagai Linked List
- Setiap elemen disebut node
-
Setiap node memiliki:
- data
- pointer ke node berikutnya
👉 Top stack = node paling depan (head)
Operasi pada Stack (Linked List)
- Push → menambah node di depan
- Pop → menghapus node di depan
- Peek → melihat data paling atas
- isEmpty → cek apakah stack kosong
Implementasi C++
Penjelasan
-
Push
- Buat node baru
-
Arahkan
nextke top lama -
Update
top
-
Pop
- Simpan node top
- Geser top ke node berikutnya
- Hapus node lama
Kelebihan Stack dengan Linked List
✅ Tidak memiliki batas ukuran (dinamis)
✅ Tidak terjadi overflow seperti array (selama memori tersedia)
Application of Stack: Expression Conversion
Stack sangat banyak digunakan dalam manipulasi ekspresi matematika, khususnya untuk mengubah bentuk ekspresi agar mudah dievaluasi oleh komputer.
Jenis Notasi Ekspresi
Sebelum masuk ke konversi, pahami dulu 3 jenis notasi:
-
Infix → operator di tengah
Contoh:A + B -
Postfix (Reverse Polish Notation) → operator di belakang
Contoh:A B + -
Prefix (Polish Notation) → operator di depan
Contoh:+ A B
Mengapa Perlu Konversi?
- Komputer lebih mudah memproses postfix/prefix
- Tidak perlu tanda kurung
- Tidak ambigu (tidak perlu aturan prioritas)
Infix → Postfix
Contoh
Infix : A + B * C
Postfix : A B C * +
Algoritma (Menggunakan Stack)
- Scan dari kiri ke kanan
- Jika operand → langsung output
- Jika operator → bandingkan prioritas dengan stack
- Gunakan stack untuk menyimpan operator
- Keluarkan operator sesuai prioritas
Intinya
- Stack digunakan untuk menyimpan operator sementara
Referensi
Kebutuhan Struktur Data
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
Absensi
Evaluasi Akhir Semester
Studi Kasus Aplikasi Slide Power Point Latar Belakang Microsoft PowerPoint merupakan aplikasi presentasi yang memungkinkan pengguna membu...
-
Struktur Data Pada mata kuliah ini diajarkan berbagai macam struktur data yang dapat diimplementasikan dalam program komputer, serta bagai...
-
C++ adalah bahasa pemrograman general-purpose yang dikembangkan oleh: 🔹 Bjarne Stroustrup 🔹 Di Bell Labs 🔹 Tahun 1980-an C++ merup...
-
Soal Link Soal Struktur Data Pengumpulan 28 April 2026 Pukul 20.00 Form Evaluasi Dashboard Evaluasi Dashboard Detail Absensi


















