Struktur data: Perbedaan antara revisi

Konten dihapus Konten ditambahkan
k Membatalkan 1 suntingan oleh Khasanah mulia (bicara) ke revisi terakhir oleh Arya-Bot(Tw)
Tag: Pembatalan
k Perbaiki ejaan, tata bahasa, dan nada bahasa
 
(3 revisi perantara oleh 3 pengguna tidak ditampilkan)
Baris 2:
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 teknik [[pemrograman]], struktur data berarti tata letak data yang berisi kolom-kolom data, baik itu kolom yang tampakterlihat oleh pengguna ataupun kolom yang hanya digunakan untuk keperluan pemrograman yang tidak tampakterlihat 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 ==
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 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''.