Struktur data adalah cara penyimpanan, penyusunan, dan
pengaturan data didalam media penyimpanan computer sehinggga data tersebut
dapat digunakan secara efisien, struktur data juga bisa
berarti tata letak data yang berisi kolom-kolom data, baik itu kolom yang
tampak oleh pengguna (user) ataupun kolom yang hanya digunakan untuk keperluan
pemrograman yang tidak tampak oleh pengguna.
Hubungan antara Algoritma dan Struktur data ; program adalah
kumpulan instruksi computer, sedangkan metode dan tahapan sistematis dalam
program adalah Algorima. Program ditulis dengan menggunakan bahasa pemrograman.
Jadi bisa kita sebut bahwa program adalah suatu implementasi bahasa
pemrograman. Beberapa pakar memberi formula bahwa :
Program = struktur data + Algoritma
Algoritma yang baik tanpa pemilihan struktur data yang tepat
akan membuat program menjadi kurang baik, demikian juga sebaliknya.
Yang
termasuk dalam struktur data antara lain yaitu senarai berantai, antrian, tumpukan,
dan pohon biner. Adapun yang dimaksud Algoritma yaitu suatu langkah atau
prosedur yang ditujukan untuk memanipulasi data. Sebagai contoh, algoritma
diperlukan untuk memasukkan data ke dalam suatu struktur data atau untuk
mencari suatu data yang tersimpan dalam struktur data.
Kelebihan dan kekurangan dari struktur data :
1. Array :
Kelebihan :
Struktur data paling mudah
Memori ekonomis, bila semua elemen terisi
Waktu akses sama kesetiap elemen
Kekurangan :
Boros memori jika banyak elemen yang tidak digunakan
Struktur data statis.
2. Array yang
terurutkan
Kelebihan : lebih
cepat dalam urusan pencarian data jika dibandingkan dengan array biasa.
Kekurangan : lambat dalam pengisian
data dan penghapusan data, selain itu ukurannya tetap, walaupun array tidak
terisi penuh.
3. Tumpukan
Kelebihan :
Penambahan dan penghapusan data dapat dilakukan dengan
cepat, yaitu O (1)
Selama memori masih tersedia, penambahan data bias terus
dilakukan. Dengan demikian tidak ada kekhawatiran terjadinya stack overflow.
Kekurangan :
Setiap sel tidak hanya menyimpan value saja, melainkan juga
pointer ke sel berikutnya. Hal ini menyebabkan implementasi stack memakai
linked list akan memerlukan memori yang lebih banyak dari pada kalau di
implementasikan dengan Array.
Tiap elemen pada linked
list hanya bisa diakses dengan cara sekuensial, sehingga lambat, yaitu O (n).
4. Antrian
Kelebihan :
Data yang pertama masuk maka akan pertama dilayani.
Kekurangan :
Data yang terakhir masuk, bila waktu pelayanan habis kemungkinan
bisa tidak dilayani.
5. Senarai Berantai
Kelebihan : Penyisipan dan penghapusan data mudah
Kekurangan : Pencarian Lama.
6. Pohon
Biner
Kelebihan : Pencarian dan penyisipan mudah
Kekurangan : Penghapusan Kompleks.
7. Tabel
Hash
Kelebihan : Akses cepat bila kunci diketahui,
Penyisipan data cepat
Kekurangan : Algoritma penghapusan ada yang
sederhana ada pula yang kompleks, Akses pelan kalau kunci tidak diketahui.