1. Menambah Simpul di Depan
Adalah menambahkan simpul baru yang dimasukkan diawal list. Proses penambahan simpul diawal list diilustrasikan sebagai berikut:
1]. List masih kosong maka awal_ptr bernilai NULL (awal_ptr=NULL)

2]. Masuk simpul baru, misalkan data A

3]. Menambakan simpul diawal simpul A, misalkan simpul B

Baru -> next diisi dengan alamat dimana simpul data A berada, kemudian awal_ptr ditunjukkan ke simpul baru yang diciptakan.

Program:
if(awal_ptr == NULL)
{
awal_ptr=baru;
awal_ptr->next = NULL;
}
else
{
baru->next = awal_ptr;
awal_ptr = baru;
}
2. Menambah Simpul di Tengah
Proses penambahan di tengah berarti proses penyisipan data pada posisi tertentu. Oleh karena itu, posisi penyisipan sangat diperlukan. Ada beberapa kondisi yang harus diperhatikan ketika ingin melakukan penyisipandata, yaitu kondisi ketika linked list masih kosong, dan ketika linked list sudah mempunyai data.
Proses penambahan data ketika linked list sudah mempunyai data. Ada 3 kondisi yang terjadi ketika akan melakukan proses penyisipan pada linked list yang sudah mempunyai data adalah:
- Posisi penyisipan di luar dari jangkauan linked list (posisi kurang dari 1 atau melebihi banyak data yang ada di linked list). Pada proses ini, jika terjadi posisi penyisipan kurang dari 1 maka proses yang dilakukan adalah proses penambahan data di awal, dan jika posisi diluar (>) dari banyak data maka proses yang dilakukan adalah proses penambahan data di akhir.
- Posisi penyisipan di dalam jangkauan linked list. Contoh kalau ingin menyisipkan data pada posisi ke-3 (posisi_sisip=3).

Langkah selanjutnya cari posisi elemen sebelum posisi sisip kemudian simpan dalam suatu variabel dengan nama bantu.

Kemudian sambungkan field next dari Baru ke posisi next dari bantu.

Kemudian pindahkan field next dari bantu ke posisi data baru.

Program:
if(awal_ptr != NULL)
{
cout<<"Akan disisip setelah Data Ke ? : "; cin>>posisi_sisip;
bantu=awal_ptr;
baru =new node;
for(int i=1;i<posisi_sisip-1;i++)
{
if(bantu->next != NULL)
bantu=bantu->next;
else
break;
}
cout << "Masukkan Nama : "; cin >> baru->nama;
cout << "Masukkan Umur : "; cin >> baru->umur;
cout << "Masukkan tingggi : "; cin >> baru->tinggi;
baru->next=bantu->next;
bantu->next=baru;
}
else
{ cout<<"Belum ada data !! silahkan isi data dulu....";
getch();}
}
3. Menambah Simpul di Belakang
Sekarang kita akan mempelajari bagaimana menambah simpul baru ke dalam senerai berantai. Kita anggap bahwa simpul baru yang akan ditambah selalu menempati posisi setelah posisi yang terakhir dari senerai berantai yang diketahui. Untuk menjelaskan operasi ini baiklah kita gunakan deklarasi pointer dan simpul seperti di bawah ini:
struct node {
char nama[20];
int umur;
float tinggi;
node *next;
};
Misalkan simpul baru yang dibentuk diberi nama temp. Untuk menambahkan simpul baru perlu kita uji apakah Linked list masih kosong atau tidak. Linked list yang kosong ditandai dengan awal_ptr bernilai NULL. Jika tidak kosong maka dibaca senarai yang ada mulai dari posisi awal sampai terakhir misalkan dengan menggunakan pointer temp2. Simpul terakhir ditandai dengan medan penyambung dari temp2 bernilai NULL.Jika sudah berada pada simpul terakhir kita tunjukkan medan penyambung temp2 dengan temp.
Program lengkap menambahkan simpul diakhir senarai sebagai berikut:
node *temp, *temp2; // pointer sementara
// Isi data
temp = new node; //menciptakan node baru
cout << "Nama : ";cin >> temp->nama;
cout << "Umur : ";cin >> temp->umur;
cout << "Tinggi : ";cin >> temp->tinggi;
temp->next = NULL;
// Inisialisasi pointer ketika masih kosong
if (awal_ptr == NULL)
{
awal_ptr = temp;
posisi = awal_ptr;
}
else
{
temp2 = awal_ptr;
// list tidak kosong
while (temp2->next != NULL)
{
temp2 = temp2->next;
// pindah ke link berikutnya
}
temp2->next = temp;
}
Sumber
Mata kuliah Struktur Data. STMIK EL Rahma Yogyakarta.
Disusun oleh Eko Riswanto