Struktur data: Perbedaan antara revisi

Konten dihapus Konten ditambahkan
Esther Rossini (bicara | kontrib)
Fitur saranan suntingan: 3 pranala ditambahkan.
k Perbaiki ejaan, tata bahasa, dan nada bahasa
 
(Satu revisi perantara oleh satu pengguna lainnya tidak ditampilkan)
Baris 9:
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>
 
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 algoritmealgoritma, 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>
 
== 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 [[Lincoln Near-Earth Asteroid Research|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'' 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.