Lompat ke isi

Struktur data: Perbedaan antara revisi

Dari Wikipedia bahasa Indonesia, ensiklopedia bebas
Konten dihapus Konten ditambahkan
Xqbot (bicara | kontrib)
Pengubahan kata dari "tampak" menjadi "terlihat"
Tag: VisualEditor Suntingan perangkat seluler Suntingan peramban seluler Tugas pengguna baru Newcomer task: copyedit
 
(33 revisi perantara oleh 24 pengguna tidak ditampilkan)
Baris 1: Baris 1:
{{rapikan}}
{{rapikan}}
Dalam istilah [[ilmu komputer]], '''struktur data''' adalah cara menyimpan dan mengatur data secara terstruktur pada sistem komputer atau [[pangkalan data]] (''database'') sehingga lebih mudah diakses. Secara teknis, data dalam bentuk angka, huruf, simbol, dan lainnya ini diletakkan dalam kolom-kolom dan susunan tertentu. Contoh struktur data dapat dilihat pada berkas-berkas [[lembar sebar]] (''spreadsheet''), pangkalan data, [[pengolah kata]], [[pemampatan citra|citra yang dipampat]] (''compressed image''), dan pemampatan berkas dengan teknik tertentu yang memanfaatkan struktur data.
Dalam istilah [[ilmu komputer]], sebuah '''struktur data''' adalah cara penyimpanan, penyusunan dan pengaturan data di dalam media penyimpanan komputer sehingga data tersebut dapat digunakan secara efisien.


Dalam teknik pemrograman, struktur data berarti tata letak data yang berisi kolom-kolom data, baik itu kolom yang tampak oleh pengguna (''user'') atau pun kolom yang hanya digunakan untuk keperluan pemrograman yang tidak tampak oleh pengguna. Setiap baris dari kumpulan kolom-kolom tersebut dinamakan catatan (''record''). Lebar kolom untuk data dapat berubah dan bervariasi. Ada kolom yang lebarnya berubah secara dinamis sesuai masukan dari pengguna, dan juga ada kolom yang lebarnya tetap. Dengan sifatnya ini, sebuah struktur data dapat diterapkan untuk pengolahan database (misalnya untuk keperluan data keuangan) atau untuk pengolah kata (''word processor'') yang kolomnya berubah secara dinamis. Contoh struktur data dapat dilihat pada berkas-berkas lembar-sebar (''spreadsheet''), pangkal-data (''database''), pengolahan kata, citra yang dipampat (dikompres), juga pemampatan berkas dengan teknik tertentu yang memanfaatkan struktur data.
Dalam teknik [[pemrograman]], struktur data berarti tata letak data yang berisi kolom-kolom data, baik itu kolom yang terlihat oleh pengguna ataupun kolom yang hanya digunakan untuk keperluan pemrograman yang tidak terlihat oleh pengguna. Setiap baris dari kumpulan kolom-kolom tersebut dinamakan catatan (''[[record]]''). Lebar kolom untuk data dapat berubah dan bervariasi. Ada kolom yang lebarnya berubah secara dinamis sesuai masukan dari pengguna, dan juga ada kolom yang lebarnya tetap. Dengan sifatnya ini, sebuah struktur data dapat diterapkan untuk pengolahan basis data (misalnya untuk keperluan data keuangan) atau untuk pengolah kata yang kolomnya berubah secara dinamis.


== Penggunaan ==
== Daftar struktur data umum ==
Struktur data adalah basis dari [[tipe data abstrak]]. Tipe data abstrak mendefinisikan bentuk logis dari sebuah tipe data, sementara struktur data mengimplementasikan bentuk fisik dari tipe data tersebut.<ref>{{cite web |title=Abstract Data Types |url=https://opendsa-server.cs.vt.edu/ODSA/Books/CS3/html/ADT.html |website=Virginia Tech - CS3 Data Structures & Algorithms}}</ref>


Masing-masing jenis struktur data yang berbeda cocok untuk penggunaan-penggunaan yang berbeda, dan beberapa jenis memang dispesialisakian untuk tugas tertentu. Contohnya, [[basis data relasional]] biasanya menggunakan indeks B-tree untuk data retrieval,<ref>{{cite book|chapter-url=http://searchsecurity.techtarget.com/generic/0,295582,sid87_gci1184450,00.html|title=Beginning Database Design|isbn=978-0-7645-7490-0|author=Gavin Powell|chapter=Chapter 8: Building Fast-Performing Database Models|publisher=[[Wrox Press|Wrox Publishing]]|year=2006}}</ref> sedangkan implementasi [[kompilator]] biasanya menggunakan tabel hash untuk menemukan pengidentifikasi.<ref>{{cite web |title=1.5 Applications of a Hash Table |url=http://www.cs.uregina.ca/Links/class-info/210/Hash/ |website=University of Regina - CS210 Lab: Hash Table |access-date=2020-03-25 |archive-date=2020-03-25 |archive-url=https://web.archive.org/web/20200325084342/http://www.cs.uregina.ca/Links/class-info/210/Hash/ |dead-url=yes }}</ref>
# [[Record]]
# [[Larik]]
# [[List (struktur data)|List]]
# [[Stack (struktur data)|Tumpukan]]
# [[Queue (struktur data)|Queue]]
# [[Pohon (struktur data)|Pohon]]
<!-- Silakan tambahkan -->


Struktur data memberikan cara mengelola data yang banyak secara efisien untuk berbagai penggunaan, misalnya untuk [[basis data]] yang besar dan layanan pengindeksan internet. Biasanya, struktur data yang efisien adalah kunci untuk mendesain [[algoritme]] yang efisien. Beberapa metode desain formal dan [[bahasa pemrograman]] menekankan struktur data, bukan pada algoritme, sebagai faktor kunci dalam mengatur desain perangkat lunak. Struktur data bisa digunakan untuk mengatur penyimpanan dan pengambilan informasi yang disimpan baik di dalam [[Penyimpanan data komputer#Penyimpanan primer|memori utama]] maupun [[Penyimpanan data komputer#Penyimpanan sekunder|memori sekunder]].<ref>{{cite web |title=When data is too big to fit into the main memory |url=http://homes.sice.indiana.edu/yye/lab/teaching/spring2014-C343/datatoobig.php |website=homes.sice.indiana.edu |access-date=2020-03-25 |archive-date=2021-04-27 |archive-url=https://web.archive.org/web/20210427095924/http://homes.sice.indiana.edu/yye/lab/teaching/spring2014-C343/datatoobig.php |dead-url=yes }}</ref>
[[Kategori:Struktur data| ]]


== Contoh ==
[[ar:بنية البيانات]]
{{main article|Daftar struktur data}}
[[ast:Estructura de datos]]
Ada banyak jenis struktur data, yang biasanya dibuat dari tipe data primitif yang lebih sederhana:<ref>{{Cite book|title=Data structures|last=Seymour|first=Lipschutz|date=2014|publisher=McGraw Hill Education|isbn=9781259029967|edition=Revised first|location=New Delhi, India|oclc=927793728}}</ref>
[[bg:Структура от данни]]
* ''[[Larik]]'' ({{asal kata|Inggris|array}}) adalah serangkaian elemen dengan urutan tertentu, biasanya semua elemen memiliki tipe yang sama (tergantung bahasanya, masing-masing elemen bisa harus bertipe sama, atau bisa bertipe apa saja). Setiap elemen bisa diakses menggunakan indeks bilangan bulat yang menentukan elemen mana yang diminta. Implementasinya biasanya mengalokasikan ''word'' memori yang berdampingan untuk elemen-elemen larik (tapi tidak selalu harus begitu). Larik bisa punya panjang yang tetap ataupun resizable.
[[bn:উপাত্ত সংগঠন]]
* ''[[Senarai berantai]]'' ({{asal kata|Inggris|linked list}}) (kadang disebut juga ''senarai'') adalah koleksi linear yang terdiri dari elemen-elemen data berjenis apapun, yang disebut ''node'', di mana setiap ''node'' memiliki sebuah nilai, serta menunjuk ke ''[[Node.js|node]]'' berikutnya di senarai berantai. Keuntungan utama dari senarai berantai dibandingkan dengan larik, adalah nilai-nilainya bisa dimasukkan dan dikeluarkan secara efisien tanpa memindahkan sisa isi senarai. Namun, untuk operasi-operasi lain, seperti melakukan akses acak terhadap elemen tertentu, senarai lebih lambat dibandingkan dengan larik.
[[bs:Struktura podataka]]
* ''[[Record]]'' (disebut juga ''tuple'' atau ''struct'') adalah struktur data agregat. Sebuah ''record'' adalah sebuah nilai yang berisi nilai-nilai lain, biasanya dengan banyak dan urutan nilai yang tetap serta diindeks menggunakan nama. Elemen-elemen ''record'' biasanya disebut ''field'' atau ''member''.
[[ca:Estructura de dades]]
* ''Union'' adalah struktur data yang menentukan sejumlah tipe data yang boleh disimpan dalam instansinya, misalkan ''float'' atau ''long integer''. Bebeda dengan ''[[record]]'', yang misalnya bisa didefinisikan menampung sebuah ''float'' dan sebuah ''integer''; ''union'' hanya menampung satu data pada suatu waktu. Ruang yang dialokasikan untuk ''union'' harus cukup untuk menampung tipe data terbesar anggotanya.
[[da:Datastruktur]]
* ''Tagged union'' (disebut juga ''variant'', ''variant record'', ''discriminated union'', atau ''disjoint union'') menampung ''field'' tambahan yang menandakan tipenya pada saat ini, agar meningkatkan keamanan tipe.
[[de:Datenstruktur]]
* [[Objek (ilmu komputer)|''Objek'']] adalah struktur data yang menampung ''field'' data, seperti ''record'', dan juga mengandung metode yang mengoperasikan isi datanya. Sebuah objek adalah sebuah instansi dalam-memori dari sebuah kelas. Dalam konteks [[pemrograman berorientasi objek]], ''record'' dikenal sebagai ''plain old data structure'' untuk membedakannya dengan objek.<ref>{{cite web|url=http://www.fnal.gov/docs/working-groups/fpcltf/Pkg/ISOcxx/doc/POD.html |accessdate=6 December 2016 |title=C++ Language Note: POD Types |author=Walter E. Brown |publisher=[[Fermi National Accelerator Laboratory]] |date=September 29, 1999|archive-url=https://web.archive.org/web/20161203130543/http://www.fnal.gov/docs/working-groups/fpcltf/Pkg/ISOcxx/doc/POD.html|archive-date=2016-12-03}}</ref>
[[el:Δομή δεδομένων]]

[[en:Data structure]]
Data struktur lainnya yang umum digunakan, diantaranya adalah [[Tumpukan (struktur data)|tumpukan]] ({{asal kata|Inggris|stack}}), [[Antrean (struktur data)|antrean]] ({{asal kata|Inggris|queue}}), dan [[Pohon (struktur data)|pohon]] ({{asal kata|Inggris|tree}}).
[[es:Estructura de datos]]

[[fa:ساختمان داده‌ها]]
== Referensi ==
[[fi:Tietorakenne]]
{{Reflist}}
[[fr:Structure de données]]

[[he:מבנה נתונים]]
== Pranala luar ==
[[hr:Podatkovna struktura]]
* [https://web.archive.org/web/20050624234059/http://www.nist.gov/dads/ Deskripsi] dari ''Dictionary of Algorithms and Data Structures''
[[hu:Adatszerkezet]]

[[is:Gagnagrind]]
[[Kategori:Struktur data| ]]
[[it:Struttura dati]]
[[ja:データ構造]]
[[ko:자료 구조]]
[[lv:Datu struktūras]]
[[ml:ഡാറ്റാ സ്ട്രക്‌ച്ചർ]]
[[ms:Struktur data]]
[[nl:Datastructuur]]
[[no:Datastruktur]]
[[pl:Struktura danych]]
[[pt:Estrutura de dados]]
[[ro:Structură de date]]
[[ru:Структура данных]]
[[simple:Data structure]]
[[sk:Údajová štruktúra]]
[[sl:Podatkovna struktura]]
[[sr:Структура података]]
[[sv:Datastruktur]]
[[th:โครงสร้างข้อมูล]]
[[tr:Veri yapısı]]
[[uk:Структури даних]]
[[vi:Cấu trúc dữ liệu]]
[[zh:数据结构]]

Revisi terkini sejak 13 Maret 2024 02.40

Dalam istilah ilmu komputer, struktur data adalah cara menyimpan dan mengatur data secara terstruktur pada sistem komputer atau pangkalan data (database) sehingga lebih mudah diakses. Secara teknis, data dalam bentuk angka, huruf, simbol, dan lainnya ini diletakkan dalam kolom-kolom dan susunan tertentu. Contoh struktur data dapat dilihat pada berkas-berkas lembar sebar (spreadsheet), pangkalan data, pengolah kata, citra yang dipampat (compressed image), dan pemampatan berkas dengan teknik tertentu yang memanfaatkan struktur data.

Dalam teknik pemrograman, struktur data berarti tata letak data yang berisi kolom-kolom data, baik itu kolom yang terlihat oleh pengguna ataupun kolom yang hanya digunakan untuk keperluan pemrograman yang tidak terlihat oleh pengguna. Setiap baris dari kumpulan kolom-kolom tersebut dinamakan catatan (record). Lebar kolom untuk data dapat berubah dan bervariasi. Ada kolom yang lebarnya berubah secara dinamis sesuai masukan dari pengguna, dan juga ada kolom yang lebarnya tetap. Dengan sifatnya ini, sebuah struktur data dapat diterapkan untuk pengolahan basis data (misalnya untuk keperluan data keuangan) atau untuk pengolah kata yang kolomnya berubah secara dinamis.

Penggunaan[sunting | sunting sumber]

Struktur data adalah basis dari tipe data abstrak. Tipe data abstrak mendefinisikan bentuk logis dari sebuah tipe data, sementara struktur data mengimplementasikan bentuk fisik dari tipe data tersebut.[1]

Masing-masing jenis struktur data yang berbeda cocok untuk penggunaan-penggunaan yang berbeda, dan beberapa jenis memang dispesialisakian untuk tugas tertentu. Contohnya, basis data relasional biasanya menggunakan indeks B-tree untuk data retrieval,[2] sedangkan implementasi kompilator biasanya menggunakan tabel hash untuk menemukan pengidentifikasi.[3]

Struktur data memberikan cara mengelola data yang banyak secara efisien untuk berbagai penggunaan, misalnya untuk basis data yang besar dan layanan pengindeksan internet. Biasanya, struktur data yang efisien adalah kunci untuk mendesain algoritme yang efisien. Beberapa metode desain formal dan bahasa pemrograman menekankan struktur data, bukan pada algoritme, sebagai faktor kunci dalam mengatur desain perangkat lunak. Struktur data bisa digunakan untuk mengatur penyimpanan dan pengambilan informasi yang disimpan baik di dalam memori utama maupun memori sekunder.[4]

Contoh[sunting | sunting sumber]

Ada banyak jenis struktur data, yang biasanya dibuat dari tipe data primitif yang lebih sederhana:[5]

  • Larik (bahasa Inggris: array) adalah serangkaian elemen dengan urutan tertentu, biasanya semua elemen memiliki tipe yang sama (tergantung bahasanya, masing-masing elemen bisa harus bertipe sama, atau bisa bertipe apa saja). Setiap elemen bisa diakses menggunakan indeks bilangan bulat yang menentukan elemen mana yang diminta. Implementasinya biasanya mengalokasikan word memori yang berdampingan untuk elemen-elemen larik (tapi tidak selalu harus begitu). Larik bisa punya panjang yang tetap ataupun resizable.
  • Senarai berantai (bahasa Inggris: linked list) (kadang disebut juga senarai) adalah koleksi linear yang terdiri dari elemen-elemen data berjenis apapun, yang disebut node, di mana setiap node memiliki sebuah nilai, serta menunjuk ke node berikutnya di senarai berantai. Keuntungan utama dari senarai berantai dibandingkan dengan larik, adalah nilai-nilainya bisa dimasukkan dan dikeluarkan secara efisien tanpa memindahkan sisa isi senarai. Namun, untuk operasi-operasi lain, seperti melakukan akses acak terhadap elemen tertentu, senarai lebih lambat dibandingkan dengan larik.
  • Record (disebut juga tuple atau struct) adalah struktur data agregat. Sebuah record adalah sebuah nilai yang berisi nilai-nilai lain, biasanya dengan banyak dan urutan nilai yang tetap serta diindeks menggunakan nama. Elemen-elemen record biasanya disebut field atau member.
  • Union adalah struktur data yang menentukan sejumlah tipe data yang boleh disimpan dalam instansinya, misalkan float atau long integer. Bebeda dengan record, yang misalnya bisa didefinisikan menampung sebuah float dan sebuah integer; union hanya menampung satu data pada suatu waktu. Ruang yang dialokasikan untuk union harus cukup untuk menampung tipe data terbesar anggotanya.
  • Tagged union (disebut juga variant, variant record, discriminated union, atau disjoint union) menampung field tambahan yang menandakan tipenya pada saat ini, agar meningkatkan keamanan tipe.
  • Objek adalah struktur data yang menampung field data, seperti record, dan juga mengandung metode yang mengoperasikan isi datanya. Sebuah objek adalah sebuah instansi dalam-memori dari sebuah kelas. Dalam konteks pemrograman berorientasi objek, record dikenal sebagai plain old data structure untuk membedakannya dengan objek.[6]

Data struktur lainnya yang umum digunakan, diantaranya adalah tumpukan (bahasa Inggris: stack), antrean (bahasa Inggris: queue), dan pohon (bahasa Inggris: tree).

Referensi[sunting | sunting sumber]

  1. ^ "Abstract Data Types". Virginia Tech - CS3 Data Structures & Algorithms. 
  2. ^ Gavin Powell (2006). "Chapter 8: Building Fast-Performing Database Models". Beginning Database Design. Wrox Publishing. ISBN 978-0-7645-7490-0. 
  3. ^ "1.5 Applications of a Hash Table". University of Regina - CS210 Lab: Hash Table. Diarsipkan dari versi asli tanggal 2020-03-25. Diakses tanggal 2020-03-25. 
  4. ^ "When data is too big to fit into the main memory". homes.sice.indiana.edu. Diarsipkan dari versi asli tanggal 2021-04-27. Diakses tanggal 2020-03-25. 
  5. ^ Seymour, Lipschutz (2014). Data structures (edisi ke-Revised first). New Delhi, India: McGraw Hill Education. ISBN 9781259029967. OCLC 927793728. 
  6. ^ Walter E. Brown (September 29, 1999). "C++ Language Note: POD Types". Fermi National Accelerator Laboratory. Diarsipkan dari versi asli tanggal 2016-12-03. Diakses tanggal 6 December 2016. 

Pranala luar[sunting | sunting sumber]

  • Deskripsi dari Dictionary of Algorithms and Data Structures