Anda di halaman 1dari 20

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.

Anda mungkin juga menyukai