0% menganggap dokumen ini bermanfaat (0 suara)
258 tayangan20 halaman

Struktur Data Pertemuan1

Struktur data adalah cara menyimpan dan mengatur data secara terstruktur untuk memudahkan pengaksesan data. Dokumen ini membahas pentingnya memahami struktur data bagi programmer dan jenis-jenis struktur data serta operasi yang dapat dilakukan pada struktur data tersebut."

Diunggah oleh

Muhammad Rizal Azmi
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai DOCX, PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
258 tayangan20 halaman

Struktur Data Pertemuan1

Struktur data adalah cara menyimpan dan mengatur data secara terstruktur untuk memudahkan pengaksesan data. Dokumen ini membahas pentingnya memahami struktur data bagi programmer dan jenis-jenis struktur data serta operasi yang dapat dilakukan pada struktur data tersebut."

Diunggah oleh

Muhammad Rizal Azmi
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai DOCX, PDF, TXT atau baca online di Scribd

STRUKTUR DATA

Ichal, M.Kom, CEH


SELASA, 08 – 09 MARET 2022

0821 50 53 59 51
STRUKTUR DATA
Struktur data menjadi salah satu bagian penting yang wajib dipahami oleh para programmer.
Struktur ini memudahkan pengguna mengakses data yang dibutuhkan secara cepat dan tepat. Ini
karena struktur data memiliki format khusus yang berfungsi untuk mengatur, memproses,
mengambil, dan menyimpan data.

Apa itu Struktur Data?


Struktur data adalah cara menyimpan dan mengatur data secara terstruktur pada sistem komputer
atau database sehingga lebih mudah diakses. Secara teknis, data dalam bentuk angka, huruf,
simbol, dan lainnya ini diletakkan dalam kolom-kolom dan susunan tertentu.

Dalam menyusun data, terdapat beberapa istilah yang perlu Kita pahami, yaitu node dan indeks.
Berikut adalah penjelasan tentang kedua istilah tersebut.

Node, yaitu elemen yang terdapat dalam struktur data. Setiap node berisi pointer ke node
selanjutnya.

Indeks, yaitu objek dalam sistem database yang bisa mempercepat proses pencarian data.

Struktur data bisa digunakan untuk mengelola database, melakukan kompres file, hingga mengolah
data lainnya. Praktis, struktur ini menjadi hal yang harus dipelajari karena dapat membantu Kita
untuk menyatukan berbagai elemen data secara efektif. Apalagi, struktur data juga akan
mempengaruhi ketepatan algoritma suatu program.

Mengapa struktur data penting?


Struktur data adalah dasar dari setiap programmer komputer yang solid. Tanpa struktur data yang
tepat, sangat sulit untuk membangun program yang efisien. Program komputer bergantung pada
data, dan sebagainya dan sebagainya ..dan sebagainya…

Kuncinya adalah struktur data..!

Struktur data yang tepat mengatur banyak tipe data secara logis dan dengan cara di mana data
dapat dengan mudah diakses, dimodifikasi, dan dikonfigurasi.

Kegunaan Struktur Data


Dalam pemrograman, struktur data memiliki banyak kegunaan.

Membuat proses pemrograman yang mudah. Struktur data bisa digunakan untuk membuat
perintah dengan bahasa pemrograman dengan lebih mudah.
Menyimpan dan mengatur data. Mudah menyimpan dan mengatur data secara efisien, rapi, dan
terorganisir.

Pertukaran data. Kita bisa membagikan informasi dengan cepat dan mudah walaupun dilakukan
antar aplikasi.

Meningkatkan kualitas algoritma. Struktur data bisa berpengaruh ke tingkat efektivitas algoritma.

Mengantisipasi Masalah Coding. Masalah ketika coding bisa selesai lebih cepat dengan
menggunakan struktur data. Hal ini karena kesalahan atau error bisa segera ditemukan.

Mengelola sumber daya dan layanan. Sumber daya dan layanan dalam sistem operasi bisa diatur
melalui struktur data. Struktur data dalam konteks ini biasanya memuat manajemen direktori file,
alokasi memori, dsb.

Pengindeksan. Struktur data bisa digunakan untuk mengindeks objek yang disimpan dalam
database.

Searching. Indeks yang terdapat pada struktur data akan mempercepat proses pencarian data
tertentu.
Skalabilitas. Struktur data dipakai untuk mengalokasikan dan mengelola penyimpanan data di
seluruh lokasi penyimpanan. Dengan begitu, suatu aplikasi big data bisa terjamin performa dan
kemampuan upgrade-nya.

Apa cara mudah untuk memahami struktur data?


Beberapa contoh dapat membantu Kita lebih memahami struktur data. Pertama, kamus. Dalam
kamus, kata-kata disusun menurut abjad. Ini memungkinkan Kita untuk mencari dan menemukan
kata dengan cepat dan efisien.

Selanjutnya, peta kota. sisusun ke dalam geometri, peta kota memiliki skala dan arah dan
memudahkan pencarian lokasi secara efektif. Dengan peta kota, Kita juga dapat menemukan rute
dari satu tempat ke tempat lain.

Laporan data keuangan . Pernyataan ini sering menggunakan skema tabular, atau tabel. Sama
seperti struktur data tertentu, menggabungkan dan mengekstrak data menjadi mudah jika berada
di kolom yang terorganisir.
Program = algoritma + struktur data
struktur data kemungkinan merupakan subjek paling mendasar dan penting dalam ilmu computer

Terminologi Dasar
Struktur data adalah blok bangunan dari setiap program atau perangkat lunak. Memilih struktur
data yang sesuai untuk suatu program adalah tugas yang paling sulit bagi seorang programmer.
Terminologi berikut digunakan sejauh menyangkut struktur data.

Data: Data dapat didefinisikan sebagai nilai dasar atau kumpulan nilai, misalnya nama siswa dan id-
nya adalah data tentang siswa.

Item Grup: Item data yang memiliki item data bawahan disebut item grup, misalnya, nama siswa
dapat memiliki nama depan dan nama belakang.

Record: Record dapat didefinisikan sebagai kumpulan berbagai item data, misalnya, jika kita
berbicara tentang entitas siswa, maka nama, alamat, mata kuliah, dan nilai dapat dikelompokkan
bersama untuk membentuk catatan untuk siswa.
File: File adalah kumpulan berbagai record dari satu jenis entitas, misalnya jika ada 60 siswa di
kelas/class, maka akan ada 20 record di file terkait di mana setiap record berisi data tentang setiap
siswa.

Atribut dan Entitas: Entitas mewakili kelas objek tertentu. itu berisi berbagai atribut. Setiap atribut
mewakili properti tertentu dari entitas itu.

Field: Field adalah satu unit dasar informasi yang mewakili atribut suatu entitas.

Operasi pada struktur data

1) Traversing: Setiap struktur data berisi kumpulan elemen data. Melintasi struktur data berarti
mengunjungi setiap elemen dari struktur data untuk melakukan beberapa operasi tertentu seperti
pencarian atau pengurutan.

Contoh: Jika kita perlu menghitung rata-rata nilai yang diperoleh seorang siswa dalam 6 mata
pelajaran yang berbeda, kita perlu menelusuri susunan nilai yang lengkap dan menghitung jumlah
totalnya, kemudian kita akan membagi jumlah itu dengan jumlah mata pelajaran yaitu 6, untuk
mencari rata-rata.
2) Insertion / Penyisipan: Penyisipan dapat didefinisikan sebagai proses menambahkan elemen ke
struktur data di lokasi mana pun.Jika ukuran struktur data adalah n maka kita hanya dapat
memasukkan n-1 elemen data ke dalamnya.

3) Deletion / Penghapusan: Proses menghapus elemen dari struktur data disebut Penghapusan.
Kita dapat menghapus elemen dari struktur data di lokasi acak mana pun. Jika kita mencoba untuk
menghapus elemen dari struktur data kosong maka terjadi underflow.

4) Searching / Pencarian: Proses menemukan lokasi elemen dalam struktur data disebut Pencarian.
Ada dua algoritma untuk melakukan pencarian, Linear Search dan Binary Search. kita akan
membahas masing-masing dari mereka nanti dalam mata kuliah ini.

5)Updation /pembaruan: Kita juga dapat memperbarui elemen, yaitu, kita dapat mengganti elemen
dengan elemen lain.

6) Sorting: Proses mengatur struktur data dalam urutan tertentu dikenal sebagai Sorting. Ada
banyak algoritma yang dapat digunakan untuk melakukan sorting, misalnya insertion sort, selection
sort, bubble sort, dll.

7) Merging / Penggabungan: Ketika dua daftar Daftar A dan Daftar B masing-masing berukuran M
dan N, dari jenis elemen yang serupa, digabungkan untuk menghasilkan daftar ketiga, Daftar C
berukuran (M+N), maka proses ini disebut penggabungan.
Kebutuhan Struktur Data
Karena aplikasi semakin kompleks dan jumlah data meningkat dari hari ke hari, mungkin timbul
masalah berikut:

Kecepatan prosesor: Untuk menangani jumlah data yang sangat besar, diperlukan pemrosesan
kecepatan tinggi, tetapi karena data tumbuh dari hari ke hari hingga miliaran file per entitas,
prosesor mungkin gagal menangani jumlah data sebanyak itu.

Pencarian Data: Pertimbangkan ukuran inventaris 106 item di toko, Jika aplikasi kita perlu mencari
item tertentu, aplikasi harus melintasi 106 item setiap kali, mengakibatkan memperlambat proses
pencarian.

Beberapa permintaan / multiple request : Jika ribuan pengguna mencari data secara bersamaan di
server web, maka ada kemungkinan server yang sangat besar dapat gagal selama proses itu

Untuk mengatasi masalah di atas, digunakan struktur data. Data diatur untuk membentuk struktur
data sedemikian rupa sehingga semua item tidak perlu dicari dan data yang dibutuhkan dapat
dicari secara instan.
Keuntungan dari Struktur Data
Efisiensi: Efisiensi suatu program tergantung pada pilihan struktur data. Sebagai contoh: misalkan,
kita memiliki beberapa data dan kita perlu melakukan pencarian untuk record tertentu. Dalam hal
ini, jika kita mengatur data kita dalam sebuah array, kita harus mencari elemen demi elemen secara
berurutan. karenanya, menggunakan array mungkin tidak terlalu efisien di sini. Ada struktur data
yang lebih baik yang dapat membuat proses pencarian menjadi efisien seperti array ordered, binary
search tree atau hash table.

Reusability: Struktur data dapat digunakan kembali, yaitu setelah kita mengimplementasikan
struktur data tertentu, kita dapat menggunakannya di tempat lain. Implementasi struktur data
dapat dikompilasi ke dalam perpustakaan/library yang dapat digunakan oleh pengguna/client yang
berbeda.

Abstraksi(pemodelan): Struktur data ditentukan oleh ADT ( Abstract Data Type) yang menyediakan
tingkat abstraksi. Program klien menggunakan struktur data melalui antarmuka saja, tanpa masuk
ke detail implementasi.
Jenis Struktur Data
Ada dua jenis struktur data:

1. Struktur data primitif


2. Struktur data non-primitif

Struktur Data Primitif


Struktur data primitif adalah tipe data primitif. Int, char, float, double, dan pointer adalah
struktur data primitif yang dapat menampung satu nilai.

Struktur Data Non-Primitif


Struktur data non-primitif dibagi menjadi dua jenis:
1. Struktur data linier
Arrays
Stacks
Queues
Linked Lists
Hash Tables
2. Struktur data non-linier
Trees
Graphs
Tries
Struktur Data Linier

Susunan data secara berurutan dikenal sebagai struktur data linier. Struktur data yang
digunakan untuk tujuan ini adalah Array, Linked list, Stacks, dan Queues. Dalam struktur data ini,
satu elemen terhubung hanya satu elemen lainnya dalam bentuk linier.

struktur data non-linear

Ketika satu elemen terhubung ke 'n' jumlah elemen. Contoh terbaik adalah pohon dan grafik.
Dalam hal ini, unsur-unsur disusun secara acak.

Struktur data juga dapat diklasifikasikan sebagai:

Struktur data statis: Ini adalah jenis struktur data di mana ukurannya dialokasikan pada waktu
kompilasi. Oleh karena itu, ukuran maksimumnya tetap.
Struktur data dinamis: Ini adalah jenis struktur data di mana ukurannya dialokasikan pada saat
dijalankan. Oleh karena itu, ukuran maksimumnya fleksibel.
Mau Memakai Struktur Data Yang Mana?

Struktur data adalah cara mengatur data sehingga dapat digunakan secara efisien. Di sini, kita
telah menggunakan kata secara efisien, baik dari segi ruang maupun waktu. Misalnya, stack
adalah ADT (Tipe data abstrak) yang menggunakan array atau struktur data daftar tertaut untuk
implementasinya. Oleh karena itu, kita menyimpulkan bahwa kita memerlukan beberapa
struktur data untuk mengimplementasikan ADT tertentu.

Sebuah ADT memberitahu apa yang harus dilakukan dan struktur data memberitahu bagaimana
hal itu harus dilakukan. Dengan kata lain, kita dapat mengatakan bahwa ADT memberi kita cetak
biru sementara struktur data menyediakan bagian implementasi. Sekarang muncul pertanyaan:
bagaimana seseorang dapat mengetahui struktur data mana yang akan digunakan untuk ADT
tertentu?.

Karena struktur data yang berbeda dapat diimplementasikan dalam ADT tertentu, tetapi
implementasi yang berbeda dibandingkan untuk waktu dan ruang. Misalnya, Stack ADT dapat
diimplementasikan oleh Array dan daftar tertaut. Misalkan array menyediakan efisiensi waktu
sementara daftar tertaut menyediakan efisiensi ruang, sehingga yang paling cocok untuk
kebutuhan pengguna saat ini akan dipilih.
CONTOH : Sebuah program pencarian rute terdekat di kota banjarmasin mempunyai peta seperti di
bawah ini
Dengan jarak (meter):

A -> B = 330

A -> F = 690

B -> C = 250

B ->E = 280

C ->D = 86

D ->E = 80

D -> H = 203

E ->G = 200

F ->G = 140

G ->H = 95

(Diasumsikan semua jalan 2 arah)

Bagaimana cara menyimpan data peta tersebut ke memori?


Solusi 1 disusun dalam Array 2 Dimensi
Bagaimana kalau persimpangan yang ada itu 10.000 persimpangan?

Masalah yang muncul adalah :

perlu matrik yang besar yang mengakibatkan kebutuhan memori yang besar untuk menampung
datanya. Matrik kebanyakan berisi data yang berisi angka 0 (memori terbuang)

Solusi 2 disusun dalam Array 1 dimensi yang setiap elemennya memiliki linked-list
Solusi 2 mungkin menjadi solusi yang dapat dipertimbangkan,tetapi dengan struktur data seperti
tadi, maka dibutuhkan pendekatan algoritma khusus dalam pembuatan strukturnya,penyimpanan,
penambahan, penelusuran, penghapusan dan pencariannya.

Common questions

Didukung oleh AI

Data structures improve data indexing and searching by organizing data to facilitate quick lookups and modifications. Indexing data structures, like B-trees or hash tables, provide pathways to access specific data points rapidly, behaving like maps of data locations. This reduces the time complexity of searches compared to linear scans and helps efficiently handle large volumes of data, essential for database management systems where fast retrieval is crucial .

Linear data structures are organized sequentially, where each element is connected to the next, like in arrays, stacks, and queues. They are suitable for simple data management where operations are performed in a defined order. Non-linear data structures, such as trees and graphs, allow elements to connect in multiple directions, supporting complex relationships. These differences impact their application, as linear structures simplify tasks like iteration, whereas non-linear structures efficiently model hierarchical data and networks, which require more complex navigation and relationships .

Merging data structures can enhance data management by combining disparate datasets into a cohesive form, facilitating centralized data operations and reducing redundancy. In applications processing large data, this is implemented through algorithms that efficiently unify datasets while maintaining order and data integrity, such as merge sort. Merging helps in data consolidation, ensuring consistent data points for analytics and processing .

Data structures contribute to scalability by providing an organized way to manage growing datasets without compromising performance. They allow for efficient data retrieval, insertion, and deletion, which helps applications scale to handle increasing user requests and data volumes. For instance, scalable applications often use data structures like B-trees or hash tables to support quick data operations, ensuring consistent performance as they expand .

The use of data structures influences the performance of algorithms and applications by affecting their efficiency and resource allocation. A properly chosen data structure can make an algorithm more efficient by optimizing operations such as searching, sorting, and updating data, thus reducing execution time and resource consumption. For example, using a hash table can accelerate searches compared to a linear array. Choosing the incorrect data structure might lead to inefficient data access and manipulation, impacting the overall program performance .

Choosing the right data structure is critical for handling large datasets because it impacts memory usage, processing speed, and scalability. Efficient data structures minimize memory overhead and enable fast access and updates, which are vital for real-time data processing in applications like search engines and social networks. For instance, using a structured index can significantly accelerate queries in large databases, while a poor choice could lead to inefficiencies and slow responses .

Data structures significantly impact complex software development by providing the foundational frameworks for data handling, which influences overall software design, architecture, and performance. They help developers model real-world scenarios through abstract representations, thereby improving code maintainability, scalability, and efficiency. Proper utilization of data structures can make complex processes more manageable, reducing development time and resource usage and preventing bottlenecks during execution .

Dynamic data structures are preferred over static ones in scenarios where the data size fluctuates unpredictably, such as streaming data applications or variable-length transaction logs. Unlike static data structures with fixed sizes, dynamic structures like linked lists or dynamically allocated arrays adjust their size at runtime, allowing efficient memory use and flexibility in expanding or contracting based on the data load .

Abstract Data Types (ADTs) provide a conceptual framework for defining the operations that can be performed on a data structure without specifying the implementation details. ADTs promote abstraction and modularity, allowing developers to implement various data structures like stacks or queues in ways that best suit their application's needs and constraints. They serve as an interface, facilitating reuse and substitution of different concrete data structure implementations, which can optimize performance or memory usage depending on specific requirements .

The ability to traverse data structures is essential because it enables access to each element for processing, updating, or retrieving information. It is typically implemented using iterative or recursive techniques, depending on the structure's nature, like loops in arrays and linked lists or recursion in trees. Efficient traversal aids in operations such as filtering, aggregation, and transformation, which are pivotal in many algorithms .

Anda mungkin juga menyukai