Daftar Isi :
- Mengenal Single Linked List dalam Struktur Data
- Perbedaan Array dengan Linked List
- Syntax Pembuatan NODE pada pemrograman C
- Inisialisasi NODE pada C
- Single Linked List DenGAN HEAD
- Deklarasi HEAD pada Pemrograman C
- Inisialisasi HEAD pada Single Linked List
- Function dan Ilustrasi Penambahan Data Di DEPAN PADA SINGLE LINKED LIST HEAD
- Function dan Ilustrasi Penambahan Data Di BELAKANG PADA SINGLE LINKED LIST HEAD
- Function dan Ilustrasi PENGHAPUSAN Data Di DEPAN PADA SINGLE LINKED LIST HEAD
- Function dan Ilustrasi PENGHAPUSAN Data Di BELAKANG PADA SINGLE LINKED LIST HEAD
- FULL SOURCE CODE SINGLE LINKED LIST DENGAN HEAD
Apakah anda pernah mendengan istilah Linked List dalam dunia Komputer? Tentu jarang bukan. Linked List adalah salah satu bentuk struktur data, berisi kumpulan data (node) yang tersusun secara sekuensial, saling sambung - menyambung, dinamis. Dalam istilah ilustrasi di dunia nyata Linked List sering disebut juga Senarai Berantai. Dalam Konsepnya Linked List saling terhubung dengan bantuan variabel pointer. Jadi masing-masing data dalam Linked List disebut dengan node (simpul) yang menempati alokasi memori secara dinamis dan biasanya berupa struct yang terdiri dari beberapa field.
Linked List berbeda konsep dengan Array berikut Perbedaan Linked List dengan array :
Dalam Linked List ada 2 macam yaitu :
- Single Linked List
- Double Linked List
Single Linked List
Single Linked List adalah sebuah field pointer-nya hanya satu buah saja dan satu arah serta pada akhir node yang nodenya saling terhubung satu sama lain. Jadi Setiap node pada linked list mempunyai field yang berisi pointer ke node berikutnya, dan juga memiliki field yang berisi data. Node terakhir akan menunjuk ke NULL yang akan digunakan sebagai kondisi berhenti pada saat pembacaan isi linked list.
Untuk membuat Single Linked List dalam Pemrograman C++ diperlukan sebuah Struct untuk menbuat sebuah Node berikut Syntax pembuatan Node pada Pemrograman C++ :
Pada Syntax Tersebut Pembuatan struct bernama TNode yang berisi 2 field, yaitu field data bertipe integer dan field next yang bertipe pointer dari Tnode Setelah pembuatan struct, buat variabel head yang bertipe pointer dari SNode yang berguna sebagai kepala linked list.
Apa itu Struct dalam Bahasa Pemrograman C++? Struct adalah sebuah structure dalam ANSI/C digunakan untuk membuat tipe data yang terdiri dari beberapa anggota (member) dengan tipe tertentu. berbeda dengan array hanya berupa kumpulan variabel yang bertipe data sama. struct bisa memiliki variabel-variabel yang bertipe data sama atau berbeda, bahkan bisa menyimpan variabel yang bertipe data array atau struct itu sendiri. Variabel-variabel yang menjadi anggota struct disebut dengan elemen struct.
Untuk melakukan inisialisasi Node baru pada pemrograman C++ gunakan keyword new yang berarti mempersiapkan sebuah node baru berserta alokasi memorinya, kemudian node tersebut diisi data dan pointer nextnya ditunjuk ke NULL. Berikut contohnya :
Pada Single Linked List biasanya menggunakan Head. Head yang dimaksud ini adalah Kepala dari Single Linked List. Jadi dalam pemrograman diperlukan sebuah variabel pointer head untuk mebuat head Single Linked List. Head akan selalu menunjukkan Node Pertama seperti gambar berikut :
Perlu diperhatikan Manipulasi linked list tidak bisa dilakukan langsung ke node yang dituju, melainkan harus menggunakan suatu pointer penunjuk ke node pertama dalam linked list (dalam hal ini adalah head). Deklarasinya dalam sebuah pemrograman C++ sebagai berikut:
Pada Insialisasi Single Linked List dengan Head wajib menginisalisasinya dengan nilai NUL dan juga jika Pointer head tida menunjukkan pada suatu node maka dianggap kosong seperti berikut :
Jika Sudah melakukan tahap inisilasisasi maka langkah selanjutnya melakukan proses penambahan data di depan pada Single Linked List.
Penambahan Data Di Depan Single Linked List dengan Head
Penambahan node baru akan dikaitan di node paling depan, namun pada saat pertama kali (data masih kosong), maka penambahan data dilakukan dengan cara: node head ditunjukkan ke node baru tersebut. Pada prinsipnya adalah mengkaitkan node baru dengan head, kemudian head akan menunjuk pada data baru tersebut sehingga head akan tetap selalu menjadi data terdepan. Jika dibuatkan dalam bahasa pemrograman C++ seperti fungsi berikut :
Penambahan Data Dibelakang Single Linked List dengan Head
Penambahan yang dimaksud adalah Penambahan data dilakukan di belakang, namun pada saat pertama kali, node langsung ditunjuk oleh head. Penambahan di belakang lebih sulit karena kita membutuhkan pointer bantu untuk mengetahui node terbelakang, kemudian setelah itu, dikaitkan dengan node baru. Untuk mengetahui data terbelakang perlu digunakan perulangan.
Berikut Function untuk Penambahan data dibelakang dan Ilustrasinya :
Tentu jika ada Penambahan tentu anda harus menyiaplan fungsi Hapus di Depan dan Hapus di belakang.
Dan berikut Function dan Ilustrasi Hapus di Depan Single Linked List dengan Head :
Dari ilustrasi gambar diatas dijelaskan Function di atas akan menghapus data teratas (pertama) yang ditunjuk oleh head pada linked list Penghapusan node tidak boleh dilakukan jika keadaan node sedang ditunjuk oleh pointer, maka harus dilakukan penggunakan suatu pointer lain yang digunakan untuk menunjuk node yang akan dihapus, misalnya pointer hapus dan barulah kemudian menghapus pointer hapus dengan menggunakan perintah delete. Sebelum data terdepan dihapus, head harus ditunjukkan ke node sesudahnya terlebih dahulu agar list tidak putus, sehingga node setelah head lama akan menjadi head baru (data terdepan yang baru). Jika head masih NULL maka berarti data masih kosong!
Dan berikut Function dan Ilustrasi untuk Hapus di belakang Single Linked List :
Dari ilustrasi diatas dijelaskan pada function tersebut membutuhkan pointer bantu dan hapus. Pointer hapus digunakan untuk menunjuk node yang akan dihapus, dan pointer bantu digunakan untuk menunjuk node sebelum node yang dihapus yang kemudian selanjutnya akan menjadi node terakhir. Pointer bantu akan digunakan untuk menunjuk ke nilai NULL. Pointer bantu akan selalu bergerak sampai sebelum node yang akan dihapus, baru kemudian pointer hapus diletakkan setelah pointer bantu. Setelah itu pointer hapus akan dihapus, pointe bantu akan menunjuk ke NULL.
Berikut merupakan full source code Single Linked List dengan Head pada pemrograman C++ :
Demikian Mengenai Pengenalan Single Linked List dalam Struktur data Semoga bermanfaat
Referensi :
- Antony Pranata, Pemrograman Borland C++, Andi Offset, Yogyakarta
- Moh. Sjukani, Algoritma dan Struktur data dengan C, C++, dan Java, Mitra Wacana Media , 2005
- Walter Savitch , Problem Solving With C++: The Object of Programming, forth edition, Addison Wesley
- Lamhot Sitorus & David J.M. Sembiring, Konsep dan Implementasi Struktur Data dengan C++, Andi Offset, Yogyakarta
- Online Reading, www://cplusplus.com