𝗙𝗿𝗼𝗻𝘁𝗲𝗻𝗱 𝗟𝗶𝗻𝗲𝗮𝗿 𝗗𝗮𝘁𝗮 𝗦𝘁𝗿𝘂𝗰𝘁𝘂𝗿𝗲𝘀
Struktur data linear menyusun elemen dalam sebuah urutan. Setiap elemen memiliki satu pendahulu (predecessor) dan satu penerus (successor).
Arrays Array adalah alat utama dalam JavaScript. Array menggunakan memori yang berurutan (contiguous memory). Hal ini memungkinkan Anda untuk mengakses elemen apa pun melalui indeksnya secara instan.
- push: Menambahkan elemen ke bagian akhir.
- unshift: Menambahkan elemen ke bagian awal. Ini lambat karena elemen lainnya harus bergeser satu posisi ke kanan.
- splice: Menambah atau menghapus elemen di posisi mana pun. Metode ini mengubah array asli. Ini bukan fungsi murni (pure function).
Catatan: Ketika sebuah array tumbuh terlalu besar, JavaScript harus mengalokasikan blok memori yang lebih besar dan menyalin semuanya. Hal ini memakan biaya performa.
Stacks Stack mengikuti aturan LIFO: Last In, First Out. Bayangkan tumpukan piring. Anda hanya menambah atau mengambil dari bagian atas.
- push: Tambahkan ke bagian atas.
- pop: Hapus dari bagian atas.
- peek: Melihat elemen teratas tanpa menghapusnya.
Queues Queue mengikuti aturan FIFO: First In, First Out. Bayangkan antrean di toko.
- push: Tambahkan ke bagian belakang.
- shift: Hapus dari bagian depan.
Peringatan: Menggunakan shift pada array lambat untuk dataset besar. Setiap elemen harus bergeser ke kiri untuk mengisi celah tersebut. Untuk data bervolume tinggi, gunakan linked list sebagai gantinya.
Linked Lists Linked list terdiri dari node. Setiap node menyimpan data dan pointer ke node berikutnya.
- Keuntungan: Menambah atau menghapus node sangat cepat setelah Anda menemukan posisinya. Anda hanya perlu mengubah pointer.
- Kekurangan: Anda tidak dapat langsung melompat ke indeks tertentu. Anda harus mulai dari head dan mengikuti pointer satu per satu. Ini lambat.
Ringkasan Perbandingan:
- Arrays: Terbaik untuk pembacaan yang sering dan data kecil. Akses adalah O(1).
- Linked Lists: Terbaik untuk penulisan yang sering dan data besar. Penyisipan adalah O(1) jika Anda sudah memiliki nodenya.
Pro Tips untuk JavaScript:
- Jangan mencampur tipe data dalam sebuah array. Menjaga tipe data tetap seragam membantu engine menggunakan memori yang berurutan.
- Selalu gunakan fungsi pembanding (comparator function) saat mengurutkan angka.
[10, 2].sort()menghasilkan[10, 2]karena diurutkan sebagai string. - Ingatlah bahwa sebagian besar metode array bawaan mengubah (mutate) array asli.