Mengenal Linked List



Apa itu Linked List?

Linked list adalah salah satu struktur data yang digunakan dalam pemrograman komputer. Ini adalah kumpulan simpul-simpul yang terdiri dari dua bagian utama: data dan referensi atau pointer yang menghubungkan simpul-simpul tersebut. Setiap simpul dalam linked list menyimpan data dan referensi ke simpul berikutnya dalam urutan.
Berbeda dengan array, di mana elemen-elemen disimpan dalam lokasi memori yang terus menerus, linked list memungkinkan penyimpanan data secara dinamis dan fleksibel. Setiap simpul dalam linked list memiliki dua bagian: data, yang menyimpan informasi atau nilai, dan pointer, yang menyimpan alamat memori dari simpul berikutnya.


Dua jenis utama Linked List:

  • Singly Linked List (Daftar Tunggal):
Pada tipe ini, setiap simpul memiliki satu pointer yang menunjuk ke simpul berikutnya dalam urutan. Simpul terakhir dalam linked list memiliki nilai pointer yang menunjuk ke NULL, menandakan akhir dari linked list.
  • Doubly Linked List (Daftar Ganda):
Setiap simpul dalam doubly linked list memiliki dua pointer, satu menunjuk ke simpul sebelumnya dan yang lainnya menunjuk ke simpul berikutnya. Ini memungkinkan navigasi maju dan mundur melalui linked list.

 

Kelebihan dari penggunaan Linked List:

Linked list sering digunakan untuk mengatasi beberapa keterbatasan array, seperti alokasi memori statis, ketidakmampuan menambah atau mengurangi elemen secara dinamis, dan alokasi memori yang terus-menerus untuk array yang besar. 

Kekurangan Linked List:

Linked list juga memiliki beberapa kekurangan, seperti overhead memori akibat penggunaan pointer tambahan dan pencarian elemen yang lebih lambat dibandingkan dengan array jika lokasinya tidak diketahui. Pemilihan struktur data tergantung pada kebutuhan dan karakteristik spesifik dari tugas atau aplikasi tertentu.


Beberapa operasi dasar pada Linked List:

  • Insertion (Penambahan):
    • Insert at the Beginning (Tambah di Awal):
      • Menambahkan elemen di awal linked list.
      • Mengganti head (kepala) linked list dengan elemen baru.
    • Insert at the End (Tambah di Akhir):
      • Menambahkan elemen di akhir linked list.
      • Menggunakan traversal untuk menemukan elemen terakhir dan menggantinya dengan elemen baru.
    • Insert at a Specific Position (Tambah di Posisi Tertentu):
      • Menambahkan elemen di posisi tertentu dalam linked list.
      • Menggunakan traversal untuk menemukan posisi yang tepat dan menyisipkan elemen baru di sana.
  • Deletion (Penghapusan):
    • Delete at the Beginning (Hapus di Awal):
      • Menghapus elemen pertama dari linked list.
      • Mengganti head dengan elemen setelahnya.
    • Delete at the End (Hapus di Akhir):
      • Menghapus elemen terakhir dari linked list.
      • Menggunakan traversal untuk menemukan elemen sebelumnya dan mengatur next-nya menjadi null.
    • Delete at a Specific Position (Hapus di Posisi Tertentu):
      • Menghapus elemen pada posisi tertentu dalam linked list.
      • Menggunakan traversal untuk menemukan elemen sebelumnya dan menggantinya dengan elemen setelahnya.
  • Search (Pencarian):
    • Search for an Element (Cari Elemen):
      • Melakukan traversal untuk mencari elemen dengan nilai tertentu dalam linked list.
      • Mengembalikan indeks atau referensi ke elemen yang ditemukan.
  • Traversal (Penelusuran):
    • Traversal to Print Elements (Penelusuran untuk Mencetak Elemen):
      • Melakukan traversal untuk mencetak semua elemen dalam linked list.
    • Traversal to Count Elements (Penelusuran untuk Menghitung Elemen):
      • Melakukan traversal untuk menghitung jumlah elemen dalam linked list.

Contoh implementasi Linked List:


                                                                            Output:





Komentar