Pengantar Struktur Data


🧭 1. Definisi Struktur Data

https://images.openai.com/static-rsc-4/hBJjCYfLARpj_vlvbTSz32pZ_fqFdHsMZ0oX_1QOI6hIg4XBRacFmUzPj-bTkB0XC5oPJqDkcrM3VWmg23aOuGmLf4CQIefL_4LDVMgUXYrjPn5W2YTB1_1Le0ibxvoDy9vn7XW3Iwr8NCFo2Z86MJ9akVc-mLpys--E7evUcaEvuvGsP8MD0ojFW-ezxJIx?purpose=fullsize
https://images.openai.com/static-rsc-4/8qsfztAJcQMznVbgF8sihNIo9HcK9n1OLy3SCPnYeYhfy95s0n7scynLYbdgXRJ42h-4fOlHMVYvUJMXGiak6GklIXc3Nl1yGGXUAjSG4P7indZwW9YAX_P0mv54tR1mUn7oHmwJjLO684B6JtJHcAI2ipG-OLk4BgGzbqk1FDYl7AP0p-ZkL9Qo9TDRrysO?purpose=fullsize
https://images.openai.com/static-rsc-4/Yc4Hpakk5uJUow_CZDp560nXuT8MZbHtYzfJv8EYYEvP_x0igLVb8d6vf0fYpQ0xYF15G0iHZllROxX0Gscg6B3azOU2z_1PY5PLZR-GqFRKNIQU2SSLRM80zJalxqHiINoJnUwO5joFsegZ1ZyvXEzMg2Lorbp4MwmETaoColrSe_-yMe-3z9xafP6odB1c?purpose=fullsize

7

πŸ“– Pengertian

Struktur data adalah cara menyimpan, mengatur, dan mengelola data di dalam komputer agar dapat digunakan secara efisien.

🧠 Narasi Konseptual

Bayangkan Anda memiliki ribuan data mahasiswa. Tanpa struktur yang jelas, data tersebut akan sulit dicari, diubah, atau dianalisis. Struktur data berfungsi seperti lemari arsip digital yang membuat data:

  • Mudah diakses
  • Cepat diproses
  • Efisien dalam penggunaan memori

🎯 Tujuan Penggunaan Struktur Data

  • Meningkatkan efisiensi algoritma
  • Mengoptimalkan penggunaan memori
  • Mempermudah pengolahan data kompleks
  • Mendukung pengembangan perangkat lunak skala besar

🧩 2. Tipe Data vs Struktur Data

πŸ“Š Tabel Perbandingan

AspekTipe DataStruktur Data
DefinisiJenis nilai yang dapat disimpanCara mengorganisasi data
ContohInteger, Float, CharArray, Linked List
FokusNilai tunggalKumpulan data
TujuanRepresentasi dataPengelolaan data

🧠 Penjelasan

  • Tipe data adalah dasar (misalnya angka atau karakter)
  • Struktur data adalah cara menyusun banyak tipe data menjadi sistem yang terorganisir

πŸ“Œ Analogi:
Tipe data = bahan bangunan
Struktur data = arsitektur bangunan


🧱 3. Klasifikasi Struktur Data

https://images.openai.com/static-rsc-4/zbegWt1IgN0Rv-btZZEQXq3K7Y810KluEYMecs3N4-itaAELfEIjr4Da-wPYFaAbUS50u2l7yE0RWOnNvu9WrjgDATIb9wD3Yk6RLlboTPuD2fFgWpuRDKIvDcgr9Hc2tWyfQ48of7MVQ04xQ4z5FAq6IwekHNNarUNvOZ4Mp6hwSETrz6RTNqymCIcgg5Rj?purpose=fullsize
https://images.openai.com/static-rsc-4/odriCIYxvqDTFV1fQsA5wISxUkFsGFxr2X-k9j8uc7VIkZr2d6CQCGGLxqXCyZBNC7toHivf5474ApsbrWcyg7UPlhfwEpB3vPOE3CoUMYu3fJ6sLzPPHYXXof371S-DzOvjSriPR_-JdRn3H_S3_xd7xph5w2dDnUi1irn8eS3yeaJK1dnJGbvKit6IBf-g?purpose=fullsize
https://images.openai.com/static-rsc-4/6h9MGDJ5Sk1vUsZMFeoMHkTvCBPKQRHEhsobHOKUT4jievV1oRKpL64uh-TsiIhX4_6ElOymfKi-57wl3J2a1RmlnnAUJ42YeFPHPqub1SKXNlJeWYDYHHNn39AnHA9VoyUrJynqCrj-mZZNJdQCCeti4l8oRU55YpWrBopDxX9LjFJdUrqvA5s_ssAx-OYB?purpose=fullsize

8

πŸ”Ή A. Struktur Data Linear

Data disusun secara berurutan.

Contoh:

  • Array
  • Linked List
  • Stack
  • Queue

πŸ“Œ Karakteristik:

  • Akses data sekuensial
  • Mudah diimplementasikan

πŸ”Ή B. Struktur Data Non-Linear

Data tidak disusun secara berurutan.

Contoh:

  • Tree
  • Graph

πŸ“Œ Karakteristik:

  • Relasi kompleks antar data
  • Cocok untuk representasi hierarki

🧠 4. Konsep Abstract Data Type (ADT)

πŸ“– Definisi

ADT adalah model logis dari struktur data yang hanya mendefinisikan:

  • Operasi yang bisa dilakukan
  • Tanpa menjelaskan implementasinya

🧠 Narasi

ADT seperti remote TV:

  • Anda tahu tombolnya (fungsi)
  • Tapi tidak perlu tahu bagaimana rangkaiannya bekerja

πŸ“Œ Contoh ADT Stack

Operasi:

  • Push (tambah data)
  • Pop (hapus data)
  • Peek (lihat data teratas)

βš™οΈ 5. Operasi Dasar Struktur Data

πŸ“Š Tabel Operasi

OperasiDeskripsi
TraversalMengunjungi semua elemen
InsertionMenambahkan data
DeletionMenghapus data
SearchingMencari data
SortingMengurutkan data

🧠 Penjelasan

Setiap struktur data memiliki operasi dasar ini, namun:

  • Cara implementasi berbeda
  • Efisiensi berbeda

⏱️ 6. Kompleksitas Waktu dan Ruang

https://images.openai.com/static-rsc-4/qnVti17eSCoHHstpmUk_HmuASRg9WJkQOweTN4JTw3yqmYsiKx4HXQSQUHjiB2E7ByFtAhhL5CO50NpBnAUdaVI9FEg9Pl9JwYmuJJC80InRV6Wtrx82byLbFtvKsKYW2e5B2vNt1huRz2SRLhge7R8WIu_BVMq2BT3xuMFjUdaDTTQI9A6uk_MynBDByrci?purpose=fullsize
https://images.openai.com/static-rsc-4/bHFvDxoMcdYAhppfrszbN_wjhco3qb7rcNe9MACzp8MhRPLgiH82jsHPaN0HaoyOhgbAbR8nAUnwo7PcvKX3iHykHn7vrTydX0zemhPKUtFHXltSprVzJOyvjf_vQkG4x1AP0wp1oXsWM0ZVzRLUYaukQU2LyTPI-jc_E0RskKa-6h8rk3mOv57r4UmpYbSn?purpose=fullsize
https://images.openai.com/static-rsc-4/73dDBdMBaWR3IaZ4X1GCmPCwTFRiC4SbloresUg41zWFkiho0ths2jetGJnibJbveVKArJMwaavMzyxOhqfOI7k2eNWY-FPHHWo_UmJczFTblr6skk0NsT4a1C9p-8osrlAAwXaH-TZ2h8RniTS-cVbKaVtoKY2laFv5A9xOXMUJElRr9jS0dJz_mbwz6ZZM?purpose=fullsize

6

πŸ“– Definisi

Kompleksitas adalah ukuran:

  • Waktu eksekusi (Time Complexity)
  • Penggunaan memori (Space Complexity)

πŸ“Š Notasi Big-O

NotasiNamaContoh
O(1)KonstanAkses array
O(n)LinearPencarian linear
O(log n)LogaritmikBinary search
O(nΒ²)KuadratikBubble sort

🧠 Narasi

Semakin kecil kompleksitas:
➑️ Semakin cepat program berjalan
➑️ Semakin efisien sistem


πŸ§ͺ 7. Peran Struktur Data dalam Pemrograman

🎯 Penggunaan Nyata

  • Database β†’ menggunakan tree & hashing
  • Sistem operasi β†’ menggunakan queue & stack
  • AI & Machine Learning β†’ graph & tree
  • Aplikasi web β†’ array & hash table

🧠 Studi Kasus Sederhana

Misalnya:

  • Data disimpan dalam array β†’ cepat diakses
  • Tapi sulit disisipkan di tengah

➑️ Solusi: gunakan linked list


🧭 8. Hubungan Struktur Data dan Algoritma

https://images.openai.com/static-rsc-4/O0bVkirY335Tcogvy7phRN2G_JxevN0MB1eLwRZDSJ8vL8Q5r1DU-7b79oaPJGOn5RmJUMcxQz8pMrngpzc4qW1l7w-JlDlvPds7UOdE0ibc4EWiluwPod49Ih57AWoq86KjaXiso_biRrigBWZi1AgpSoxijw17WljQL9ageLMHB5xaJ1jVMgoJ6CB4cihX?purpose=fullsize
https://images.openai.com/static-rsc-4/R9rj-vlbMWqj-pRj8oYcsJvVGJFAcRRGJbOZl-IgAgzO8bECoFtdue3XluhGuuMekt9-BvchM5INLuE02hASbZTP_maq07hgJyx3TAcE22BY90T0FxdaoqwsN_nlmNJLfVcBWYzoWrluz96CEdwTIXDOo99hqPLwl-ZKyv2iW99R_jbTwcNfAUmWY4wG5xzP?purpose=fullsize
https://images.openai.com/static-rsc-4/XVAXJmIN8UvQLjGyAI80CApVmbfOkLU0rq16ibG5mRKZoqeYa7DnaKg0arwvf70Teisk7e4x4Nb6Q_mt2FDi_ZbzO2XdjPvftJ5EgPal-ivSUBoLsKzDHuERC09coGNRjzCzubto_eCWRXHynacXm0txC5iicYU2NFSGe1EN6mbqdEVX8HzJSGRYIw6Mx54y?purpose=fullsize

6

πŸ“– Konsep

Struktur Data + Algoritma = Program Efisien

🧠 Narasi

  • Struktur data = wadah data
  • Algoritma = cara mengolah data

πŸ“Œ Tanpa struktur data yang tepat:
➑️ Algoritma menjadi lambat
➑️ Program tidak optimal


πŸ“Œ 9. Contoh Implementasi Sederhana (Python)

# Contoh struktur data sederhana: Array (List)
data = [10, 20, 30, 40]# Traversal
for x in data:
print(x)# Insertion
data.append(50)# Deletion
data.remove(20)# Searching
if 30 in data:
print("Data ditemukan")

πŸ“š 10. Ringkasan Materi

  • Struktur data adalah fondasi pemrograman
  • Digunakan untuk mengelola data secara efisien
  • Terdiri dari berbagai jenis (linear & non-linear)
  • Memiliki operasi dasar (insert, delete, search, dll)
  • Berkaitan erat dengan algoritma dan kompleksitas

πŸ“ 11. Latihan / Diskusi

✏️ Soal Teori

  1. Jelaskan perbedaan tipe data dan struktur data
  2. Apa itu ADT? Berikan contoh
  3. Jelaskan perbedaan struktur data linear dan non-linear

πŸ’» Soal Praktikum

  1. Buat program array sederhana (input & output data)
  2. Implementasikan pencarian linear
  3. Analisis kompleksitas program yang dibuat

🎯 Penutup

Materi Pengantar Struktur Data adalah fondasi utama sebelum mempelajari:

  • Linked List
  • Stack & Queue
  • Tree & Graph
  • Algoritma kompleks