Selasa, 03 Maret 2020

Linked List

Linked List

Apa sih linked list itu? Jadi, linked list (seranai berantai) adalah struktur data yang mengandung/memiliki urutan record data dimana setiap record data memiliki suatu tempat (field) yang menyimpan alamat dari record data selanjutnya. Elemen-elemen dari suatu data disebut Node.
Lalu, apa bedanya dengan array?? Biasanya, pada array, kita telah mendeklarasikan berapa jumlah yang akan digunakan nantinya, sedangkan linked list tidak. Linked list menggunakan malloc (memory allocation) untuk menambah/mereserve NODE. Selain itu, jika kita mereserve tempat untuk array, address dari setiap index akan berdekatan/memiliki kelipatan yang sama. Sedangkan dalam linked list tidak, karena linked list menggunakan malloc, maka NODE baru dapat memiliki address yang berjauhan dengan NODE sebelumnya (address tersebut dapat random, sesuai dengan memory yang sedang tidak digunakan oleh komputer).
Dalam suatu linked list, akan ada 3 pointer yang akan digunakan, yakni pointer HEAD, TAIL, dan CURRENT.
Pointer HEAD, digunakan untuk menunjuk address dari NODE pertama dalam linked list.
Pointer TAIL, digunakan untuk menunjuk address dari NODE terakhir dalam linked list.
Pointer CURRENT, digunakan sebagai pembantu pointer HEAD dan TAIL.
Sebuah linked list dinyatakan kosong apabila isi dari pointer HEAD adalah NULL. Dalam single linked list, linked list yang telah dibuat tidak dapat menunjuk ke NODE yang ada dibelakangnya (previous) dan hanya bisa menunjuk NODE yang ada di depannya (next), karena single linked list hanya memiliki satu buah tangan yang digunakan untuk menyimpan address dari NODE selanjutnya.
Dalam linked list terdapat 3 fungsi, yaitu:
Push
Push atau insert, digunakan untuk memasukkan data. Push sendiri terdapat 3 macam, yaitu: push depan (NODE baru akan berada di depan NODE yang lama), push belakang (NODE baru akan berada di belakang NODE yang lama), dan push tengah (NODE baru akan berada di tengah-tengah NODE yang lama). Berikut merupakan contoh program yang menggunakan push depan:

Dalam potongan program tersebut dapat diketahui bahwa program tersebut digunakan untuk menambahkan/memasukkan data berupa pensil dengan harga 5000.
Delete
Seperti namanya, delete merupakan fungsi yang digunakan untuk menghapus suatu data dalam linked list. Delete juga memiliki 3 jenis, yaitu delete depan, delete belakang, dan delete tengah. Berikut merupakan contoh program yang menggunakan fungsi delete:

Dalam potongan program tersebut dapat diketahui bahwa program tersebut digunakan untuk menghapus data buku. Mengapa data buku yang terhapus dan bukannya pensil? Karena program tersebut menggunakan push depan, sehingga data ada dalam linked list akan seperti ini: Buku, Pensil. Jika kita menggunakan fungsi delete depan maka, data bukulah yang akan terhapus.
Print
Fungsi print, digunakan untuk menampilkan seluruh data yang ada pada linked list. Berikut merupakan contoh dari fungsi print:

Dalam potongan program tersebut, dapat dilihat bahwa, selama nilai curr->next bukan NULL, maka ia akan ngeprint nilai dari curr.


References:

Tidak ada komentar:

Posting Komentar