Struktur data: Perbedaan antara revisi

Konten dihapus Konten ditambahkan
kTidak ada ringkasan suntingan
Tag: VisualEditor Suntingan perangkat seluler Suntingan peramban seluler Tugas pengguna baru Newcomer task: copyedit
kTidak ada ringkasan suntingan
Tag: VisualEditor Suntingan perangkat seluler Suntingan peramban seluler Tugas pengguna baru Newcomer task: copyedit
Baris 19:
== Contoh ==
{{main article|Daftar struktur data}}
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>
* ''[[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.
* ''[[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.
* ''[[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 (ilmu komputer)|''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 type|''variant'']], ''variant record'', ''discriminated union'', atau ''disjoint union'') menampung ''field'' tambahan yang menandakan tipenya pada saat ini, agar meningkatkan keamanan tipe.
* [[Objek (ilmu komputer)|''Objek'']] adalah struktur data yang menampung ''field'' data, seperti ''record'', dan juga mengandung [[Metode (pemrograman komputer)|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>
 
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}}).