Sabtu, 08 Maret 2014

Link List Implementation

Linked List (Senarai Berantai).

   Seperti yang sudah dijelaskan sebelumnya, merupakan koleksi data yang tersusun secara linear. Penggunaan Linked List memberikan kemudahan dan lebih efektif dalam melakukan penambahan, pengurangan dan pencarian suatu Node/Simpul di dalam Linked List itu sendiri. Hal ini dapat terjadi karena penyimpanan elemen-elemen dari Linked List tidak ditempatkan dalam sebuah blok memori seperti Array. Perlu diingat sebuah Linked List tidak memungkinkan adanya pengaksesan data secara acak, artinya untuk dapat mengakses data pada nomor sekian wajib untuk melewati elemen-elemen sebelum nomor tersebut.

   3 types of Linked List :
1.Singly Linked List

Add caption
      
  Pada gambar di samping, yang dinamakan sebagai node/simpul adalah sebuah kotak, yang isinya terbagi menjadi 2 bagian, yaitu Bagian Data (Medan Informasi) dan Bagian Alamat (Medan Penyambung). Perlu diingat bahwa pada Bagian Alamat (Medan penyambung) adalah pointer yang menunjuk ke node/simpul berikutnya, sehingga isinya dapat berupa alamat lokasi node/simpul berikutnya, ataupun bernilai NULL. Setiap Medan Penyambung node/simpul paling akhir dari Linked List ini harus bernilai NULL.

2.Doubly Linked List

  Dalam Doubly Linked List, setiap node memiliki 2 link, yaitu untuk menunjuk pada node/simpul berikutnya, ataupun menunjuk pada node/simpul sebelumnya.Umumnya disebut sebagai Next dan Previous, atau Forward dan Backwards. Hal ini memudahkan pembacaan data (dari depan /dari belakang), sehingga penambahan dan penghapusan data dapat dilakukan pada node/simpul yang ada di sebelah kanan / kiri pointer.


3.Multiple Linked List


 



  Memliki pointer lebih dari 1, dan setiap pointernya menunjuk pada jenis data yang sama dengan urutan yang berbeda. Pada gambar disamping 2 pointer menunjukkan urutan berdasarkan name dan age. 









Ketika node/simpul terakhir suatu Linked List memiliki pointer pada node pertama sehingga Linked List tersebut tidak memiliki nilai NULL di dalamnya, makan Linked List tersebut dapat dinamakan sebagai Circular Linked List.


Hal yang dapat dilakukan dalam penggunaan Linked List :
  1.Insert
      Dapat dilakukan dengan 3 cara :
             1.Push Depan
             adalah ketika user memasukkan node/simpul baru ke dalam linked list, maka data tersebut akan berada pada alamat current/*curr. Setelah itu alamat yang memiliki data tersebut kemudian akan di "Push" ke arah Head, sehingga data pada current/*curr =head (artinya data telah berpindah ke depan menjadi head)

             2.Push Tengah
            adalah ketika user memasukkan node/simpul ke dalam linked list tetapi diantara kedua node/simpul yang sudah ada.

             3.Push Belakang
             Mirip dengan Push Depan, hanya saya penempatan node/simpulnya ada pada sebelum NULL (pointer node/simpul yang ditambahkan menunjuk pada NULL)


  2.Delete
      Dilakukan dengan memutuskan hubungan rantai node/simpul terlebih dahulu baru kemudian dihapus. Jika node/simpul berada di tengah rangkaian, maka rangkaian yang terputus perlu untuk disambungkan kembali. artinya proses delete dapat dilakukan dengan 3 cara :
            1.Pop Depan
            2.Pop Tengah
            3.Pop Belakang
Langkah-langkah yang digunakan untuk menghapuskan node/simpul :
1. Buat Cursor bantu yang menunjuk pada awal node/simpul.
2. Pindahkan Cursor pada node/simpul berikutnya, kemudian putuskan sambungan antar node awal dengan node berikutnya.
3. Jika berada di akhir rangkaian Linked List, putuskan dengan rangkaian sebelumnya. tetapi jika berada di tengah rangkaian, pindahkan penunjuk node ke berikutnya, atau ke akhir, atau pada node berikutnya setelah node yang akan dihapus


.
www.binus.ac.id || www.skyconnectiva.com
Giga Dharmawan Goeij
1701327806
42PFT


Tidak ada komentar:

Posting Komentar