SlideShare a Scribd company logo
Algoritma dan Struktur Data
Single Linked List – Operasi INSERT
Umi Sa’adah
Tita Karlita
Entin Martiana K
Arna Fariza
2021
Overview
Linked List Operasi Insert
PENGERTIAN
●Linked list terdiri atas elemen-
elemen individu yang masing2
dihubungkan dengan pointer
tunggal.
●Setiap elemen terdiri atas 2
bagian :
● data/informasi yang disimpan
● next, yaitu pointer yang
menyimpan alamat elemen
selanjutnya
Elemen Individu
?
data next
Dalam single linked
list, list hanya dapat
dilintasi satu arah
dari head ke tail
1000
head
Nilai 2000
1000
Nilai
2000
2000
tail
Ilustrasi
PENGERTIAN
Linked List
• Pada realitanya, posisi linked list
terpencar-pencar di memori
• Pointer dari elemen ke elemen berarti
sebagai penjamin bahwa semua
elemen dapat diakses.
Representasi Linked List
6
b
h
e
a
d
c
typedef struct simpul Node;
struct simpul {
char data;
Node *next;
};
Node *head;
•Tiap simpul terdiri atas 2 bagian :
data dan pointer next.
•Pointer head menunjuk ke simpul
pertama dr linked list
Linked List
7
b
h
e
a
d
c
typedef struct simpul Node;
struct simpul {
char data;
Node *next;
};
Node *head;
head->next->next
head->next
head->next->data
head->data
Linked List
8
b
h
e
a
d
c
p
p->data
p->next
Pointer next dari simpul
terakhir = NULL
Simpul pertama ditunjuk
oleh sebuah pointer : head
p=head-
>next;
Empty linked list
9
h
e
a
d
• Linked list yang masih
kosong ditunjukkan oleh
pointer head yang bernilai
NULL.
• Ingat, pointer head menunjuk
ke simpul pertama dalam
sebuah linked list.
• Jika list masih kosong, maka
tidak terdapat simpul pertama.
h
e
a
d
Utk singkatnya,
biasanya sel
pointernya tidak
digambar.
ALGORITMA INSERT SLL
1. Siapkan node baru yang akan disisipkan.
2. Cari posisi yang akan disisipkan.
3. Sambungkan dengan existing linked list.
Operasi Insert SLL
INSERT SLL
{
AWAL
AKHIR
AFTER
BEFORE
Insert awal
PENGERTIAN
Insert Awal adalah menambahkan data
(simpul baru) di ujung kiri dalam sebuah
linked list.
ILUSTRASI
Pointer-pointer bantuan yang digunakan dalam Insert
Awal :
1. p = digunakan untuk memesan alokasi node baru.
2. head = pointer yang akan menunjuk data pertama dalam
linked list.
1. SIAPKAN NODE BARU
YANG AKAN DISISIPKAN
P
p = (Node *)malloc(size of(Node));
p data = Nilai;
p next = NULL;
Nilai = 4
2000
? ?
2000 4
THE FIRST
CASE
2. CARI POSISI YANG AKAN
DISISIPKAN
2000
P
4
if (head==NULL)
head = p;
else
p next = head;
head = p; 2000
head
3. SAMBUNGKAN DENGAN
EXISTING LINKED LIST
2000
P
4
if (head==NULL)
head = p;
else
p next = head;
head = p; 2000
head
2000
HASIL AKHIR
2000
P
4
2000
head
2000
THE SECOND
CASE
2. CARI POSISI YANG AKAN
DISISIPKAN
2000
P
4 3000
if (head==NULL)
head = p;
else
p next = head;
head = p;
2000
3000
head
2 4000
3000
5
4000
Karena insert awal, maka node baru pasti akan
menjadi data pertama yang ditunjuk oleh head
3. SAMBUNGKAN DENGAN
EXISTING LINKED LIST
2000
P
4
2000
3000
head
2 4000
3000
5
4000
2000
if (head==NULL)
head = p;
else
p next = head;
head = p;
3000
HASIL AKHIR
2000
head
2 4000
3000
5
4000
2000
P
4
2000
3000
Insert akhir
PENGERTIAN
Insert Akhir adalah menambahkan data
(simpul baru) di ujung kanan dalam sebuah
linked list.
ILUSTRASI
Pointer-pointer bantuan yang digunakan dalam Insert Akhir :
1. p = digunakan untuk memesan alokasi node baru.
2. head = pointer yang akan menunjuk data pertama dalam
linked list.
3. tail = pointer yang digunakan untuk mencari letak simpul
terakhir dalam linked list.
1. SIAPKAN NODE BARU
YANG AKAN DISISIPKAN
P
p = (Node *)malloc(size of(Node));
p data = Nilai;
p next = NULL;
Nilai = 5
4000
? ?
4000 5
THE FIRST
CASE
2. CARI POSISI YANG AKAN
DISISIPKAN
if (head==NULL)
head = p;
else{
tail = head;
while (tail next != NULL){
tail = tail next;}
}
head
4000
P
5
4000
tail
?
3. SAMBUNGKAN DENGAN
EXISTING LINKED LIST
4000
P
5
4000
head
if (head==NULL)
head = p;
else{
tail = head;
while (tail next != NULL)
tail = tail next;
}
4000
tail
?
HASIL AKHIR
4000
P
5
4000
head
4000
THE SECOND
CASE
2. CARI POSISI YANG AKAN
DISISIPKAN
2000
head
1 3000
2000
7
3000
tail
3000
2000
if (head==NULL)
head = p;
else{
tail = head;
while (tail next != NULL){
tail = tail next;}
}
?
tail next = p;
tail = tail next;
2000
head
1 3000
2000
7
3000
tail
3. SAMBUNGKAN DENGAN
EXISTING LINKED LIST
4000
P
5
4000
4000
3000
4000
HASIL AKHIR
2000
head
7 4000
3000
5
4000
4000
P
1
2000
3000
4000
tail
Insert After
PENGERTIAN
Insert After adalah menambahkan data
(simpul baru) sesudah data yang bertindak
sebagai key.
ILUSTRASI
Pointer-pointer bantuan yang digunakan dalam Insert After :
1. p = digunakan untuk memesan alokasi node baru.
2. head = pointer yang akan menunjuk data pertama dalam linked list.
3. after = pointer yang digunakan untuk mencari key yang diinputkan
oleh user.
1. SIAPKAN NODE BARU
YANG AKAN DISISIPKAN
P
p = (Node *)malloc(size of(Node));
p data = Nilai;
p next = NULL;
Nilai = 7
3000
? ?
3000 7
THE FIRST
CASE
2. CARI POSISI YANG
AKAN DISISIPKAN
after = head;
while (after data != key){
if (after next == NULL){
puts(“Key Tidak Ada”);
}else{
after = after next;
}
}
Key = 4
1000
head
2 2000
1000
9
2000
after
1000
2000
Key Tidak Ada
?
THE SECOND
CASE
2. CARI POSISI YANG AKAN
DISISIPKAN
Key = 4
1000
head
2 2000
1000
4
2000
after
1000
2000
after = head;
while (after data != key){
if (after next == NULL){
puts(“Key Tidak Ada”);
}else{
after = after next;
}
}
?
P next = after next;
after next = P;
3. SAMBUNGKAN DENGAN
EXISTING LINKED LIST
Key = 4
1000
head
2 2000
1000
4
2000
after
2000
3000
P
7
3000
Karena tidak ada data lagi setelah after next,
maka p next tetap bernilai NULL.
3000
HASIL AKHIR
1000
head
4 3000
2000
7
3000
3000
P
2
1000
2000
Insert before
PENGERTIAN
Insert Before adalah menambahkan data
(simpul baru) sebelum data yang bertindak
sebagai key.
ILUSTRASI
Pointer-pointer bantuan yang digunakan dalam Insert Before :
1. p = digunakan untuk memesan alokasi node baru.
2. head = pointer yang akan menunjuk data pertama dalam linked list.
3. bef = singkatan dari pointer before yang digunakan untuk mencari key yang
diinputkan oleh user.
4. pbef = singkatan dari pointer previous before yang digunakan untuk penanda node
yang berada sebelum node yang ditunjuk oleh pointer bef.
1. SIAPKAN NODE BARU
YANG AKAN DISISIPKAN
P
p = (Node *)malloc(size of(Node));
p data = Nilai;
p next = NULL;
Nilai = 5
2500
? ?
2500 5
THE FIRST
CASE
2. CARI POSISI YANG AKAN
DISISIPKAN
if (head data == key){
insertawal;
}else{
bef = head;
do{
pbef = bef;
if(bef next == NULL){
puts(“Key Tidak Ada”);
}else{
bef = bef next;
}while(bef data != key);}
Key = 3
1000
head
3 2000
1000
9
2000
insertawal;
bef
pbef
? ?
HASIL AKHIR
2500
head
3 2000
1000
9
2000
2500
P
5
2500
1000
P.S Hasil akhir di dapat setelah melakukan insertawal.
THE SECOND
CASE
2. CARI POSISI YANG AKAN
DISISIPKAN
Key = 3
1000
head
6 2000
1000
9
2000
Key Tidak Ada
if (head data == key){
insertawal;
}else{
bef = head;
do{
pbef = bef;
if(bef next == NULL){
puts(“Key Tidak Ada”);
}else{
bef = bef next;
}while(bef data != key);}
bef
pbef
? ?
1000
1000
2000
2000
THE THIRD
CASE
2. CARI POSISI YANG AKAN
DISISIPKAN
Key = 3
1000
head
6 2000
1000
3
2000
bef
pbef
1000
2000
if (head data == key){
insertawal;
}else{
bef = head;
do{
pbef = bef;
if(bef next == NULL){
puts(“Key Tidak Ada”);
}else{
bef = bef next;
}while(bef data != key);}
? ?
1000
P next = bef;
pbef next = P;
3. SAMBUNGKAN DENGAN
EXISTING LINKED LIST
Key = 3
1000
head
6
1000
3
2000
2000
bef
1000
pbef
2500
P
5 2000
2500
2000
2500
HASIL AKHIR
1000
head
5 2000
2500
3
2000
2500
P
6
1000
2500
Disusun oleh:
FAHMI R
KURNIAWAN
2110161010
DEYANA
KUSUMA
WARDANI
2110161015
RIFKI DWI
ACHSANI T
2110161028
1 D4 TEKNIK INFORMATIKA A
Referensi
60
1. Brian W. Kerninghan, Dennis M. Ritchie (2012): The C Programming
Language : Ansi C Version 2 Edition, PHI Learning
2. Byron Gottfried (2010) : Programming with C, Tata McGraw - Hill
Education
3. Kochan Stephen (20040 : Programming in C, 3rd Edition, Sams
4. K. N. King (2008) : C Programming: A Modern Approach, 2nd Edition, W.
W. Norton & Company
5. Abdul Kadir (2012) : Algoritma & Pemrograman Menggunakan C & C++,
Andi Publisher, Yogyakarta
6. http://www.gdsw.at/languages/c/programming-bbrown/
7. https://www.petanikode.com/tutorial/c/
8. http://www.cprogramming.com/tutorial/c-tutorial.html
Single Linked List - Insert .pptx

More Related Content

PPTX
POINTERS IN C
PPTX
Presentation on pointer.
PPTX
Pointer in c
PPTX
Pointer arithmetic in c
PDF
Design and analysis of algorithm
PDF
Pointers in C
PPTX
Array implementation and linked list as datat structure
PDF
C Pointers
POINTERS IN C
Presentation on pointer.
Pointer in c
Pointer arithmetic in c
Design and analysis of algorithm
Pointers in C
Array implementation and linked list as datat structure
C Pointers

What's hot (20)

PPTX
Multiple Inheritance
PPT
detailed information about Pointers in c language
PPT
Stack & queue
PPTX
Multiplication algorithm
PPTX
Pointer in C
PPTX
PPT
Hardware implementation for Addition and subtraction in Digital Hardware
PPT
Singly link list
PPTX
Linked List
PPTX
Pointer in C++
PPT
header, circular and two way linked lists
PPTX
Link list
PPT
Introduction to pointers and memory management in C
PPTX
Pointers in c v5 12102017 1
PDF
Pointers
PPTX
Pointers in c++
PPTX
UNIT 10. Files and file handling in C
PPTX
Pointer in c program
PPTX
Top horror places in India, Most Haunted Places in India
Multiple Inheritance
detailed information about Pointers in c language
Stack & queue
Multiplication algorithm
Pointer in C
Hardware implementation for Addition and subtraction in Digital Hardware
Singly link list
Linked List
Pointer in C++
header, circular and two way linked lists
Link list
Introduction to pointers and memory management in C
Pointers in c v5 12102017 1
Pointers
Pointers in c++
UNIT 10. Files and file handling in C
Pointer in c program
Top horror places in India, Most Haunted Places in India
Ad

Similar to Single Linked List - Insert .pptx (20)

PDF
Pertemuan 4 revisijan2013-mhs
PPT
Tistrukdat7
DOCX
DOUBLE LINKED LIST..docx
PPT
Bab 6 singly_linked_list
PPT
Tistrukdat8 2
PPT
Tugas kelompok mi d3_sore
PDF
9.double linked list circular
PPT
Tistrukdat8 1
PPT
Bab 7 double_linked_list
PPT
Bab 5 linked list
PPT
Tistrukdat6
PDF
Resume praktikum 5__linked_list
PPTX
SINGLE_LINKED_LIST.pptx
DOCX
Stack with linked list(algodat)
PPTX
Pemahaman dasar tentang Struktur Data Linked List dan Algoritmanya
PPTX
Linked list
PPTX
04-STRUKDAT-LINKED LIST - Linked List adalah objek di-link atau dihubungkan y...
DOC
Modul 3 strukdat
PPTX
Pert.5 linked list
Pertemuan 4 revisijan2013-mhs
Tistrukdat7
DOUBLE LINKED LIST..docx
Bab 6 singly_linked_list
Tistrukdat8 2
Tugas kelompok mi d3_sore
9.double linked list circular
Tistrukdat8 1
Bab 7 double_linked_list
Bab 5 linked list
Tistrukdat6
Resume praktikum 5__linked_list
SINGLE_LINKED_LIST.pptx
Stack with linked list(algodat)
Pemahaman dasar tentang Struktur Data Linked List dan Algoritmanya
Linked list
04-STRUKDAT-LINKED LIST - Linked List adalah objek di-link atau dihubungkan y...
Modul 3 strukdat
Pert.5 linked list
Ad

More from Umi Sa'adah (20)

DOC
Bunga rampai pemikiran islam
PPTX
Materi IBC 17 Makna Kematian
PPTX
Tanggung Jawab Intelektual Muslim dalam Mewujudkan Islam Rahmatan Lil Alamin
PPTX
Materi IBC 23 Metode Penarikan Hukum Syariat
PPTX
Materi IBC 21 Penilaian Standar Perbuatan Manusia
PPTX
Materi IBC 12 Dosa Investasi
PPTX
Materi IBC 24 Sunnah Rosul
PPTX
Materi IBC 25 Metode Ijtihad
PPTX
Materi IBC 19 Meraih Amalan Tertinggi
PPTX
Materi IBC 22 Hukum Syariat
PPTX
Materi IBC 18 Kedudukan Doa
PPTX
Materi IBC16 Makna Rejeki
PPTX
Materi IBC 20 Sandar Perbuatan
PPTX
Materi IBC15 Makna Tawakkal
PPTX
Materi IBC 14 Petunjuk dan Kesesatan
PPTX
Materi IBC 13 Qodlo dan Qodar
PPTX
Materi IBC 11 Membuktikan Kebenaran Al Quran
PPTX
Materi IBC 10 Dari Mana Manusia Berasal
PPTX
Materi IBC 9 Teori Berfikir Tingkat 3
PPTX
Materi ibc 8 Teori Berfikir Tingkat 2
Bunga rampai pemikiran islam
Materi IBC 17 Makna Kematian
Tanggung Jawab Intelektual Muslim dalam Mewujudkan Islam Rahmatan Lil Alamin
Materi IBC 23 Metode Penarikan Hukum Syariat
Materi IBC 21 Penilaian Standar Perbuatan Manusia
Materi IBC 12 Dosa Investasi
Materi IBC 24 Sunnah Rosul
Materi IBC 25 Metode Ijtihad
Materi IBC 19 Meraih Amalan Tertinggi
Materi IBC 22 Hukum Syariat
Materi IBC 18 Kedudukan Doa
Materi IBC16 Makna Rejeki
Materi IBC 20 Sandar Perbuatan
Materi IBC15 Makna Tawakkal
Materi IBC 14 Petunjuk dan Kesesatan
Materi IBC 13 Qodlo dan Qodar
Materi IBC 11 Membuktikan Kebenaran Al Quran
Materi IBC 10 Dari Mana Manusia Berasal
Materi IBC 9 Teori Berfikir Tingkat 3
Materi ibc 8 Teori Berfikir Tingkat 2

Recently uploaded (20)

DOCX
Modul Ajar Deep Learning PAI & BP Kelas 10 SMA Terbaru 2025
PDF
Gangguan Penglihatan Mata - presentasi biologi
PDF
PPT IPS Geografi SMA Kelas X_Bab 1 Pengantar Geografi_May.pdf
PPTX
Presentasi_Pembelajaran_Mendalam_Lengkap.pptx
DOCX
Modul Ajar Pembelajaran Mendalam Senbud Seni Teater Kelas XII Terbaru 2025
PDF
lembar kerja LMS tugas pembelajaran mendalam
PDF
883668952-KP-4-Modul-2-Kerangka-Pembelajaran-Mendalam.pdf
PPTX
PENGIMBASAN PEMBELAJARAN MENDALAM (DEEP LEARNING)
DOCX
Modul Ajar Deep Learning Prakarya Kerajinan Kelas 12 SMA Terbaru 2025
PPTX
Keterbatasan-Fasilitas-dalam-Mengajar-KKA.pptx
PDF
Deck Rumah Pendidikan untuk Mendukung Program Prioritas Kemendikdasmen.pdf
PDF
Materi Seminar AITalks AI dan Suku Digital
DOCX
Lembar Kerja Mahasiswa Information System
PPTX
PPT SURAT AL FIL LOMBA MAPSI SEKOLAH DASAR
DOCX
Modul Ajar Deep Learning PAI & BP Kelas 11 SMA Terbaru 2025
DOCX
Modul Ajar Pembelajaran Mendalam Senbud Seni Rupa Kelas XII Terbaru 2025
DOCX
Modul Ajar Pembelajaran Mendalam Senbud Seni Musik Kelas XII Terbaru 2025
PDF
Digital Statecraft Menuju Indonesia Emas 2045: Diplomasi Digital, Ketahanan N...
PPTX
9ICP - Hubungan antara Pancasila dengan UUD 1945Bhinneka Tunggal Ika.pptx
DOCX
Modul Ajar Deep Learning PKWU Rekayasa Kelas 12 SMA Terbaru 2025
Modul Ajar Deep Learning PAI & BP Kelas 10 SMA Terbaru 2025
Gangguan Penglihatan Mata - presentasi biologi
PPT IPS Geografi SMA Kelas X_Bab 1 Pengantar Geografi_May.pdf
Presentasi_Pembelajaran_Mendalam_Lengkap.pptx
Modul Ajar Pembelajaran Mendalam Senbud Seni Teater Kelas XII Terbaru 2025
lembar kerja LMS tugas pembelajaran mendalam
883668952-KP-4-Modul-2-Kerangka-Pembelajaran-Mendalam.pdf
PENGIMBASAN PEMBELAJARAN MENDALAM (DEEP LEARNING)
Modul Ajar Deep Learning Prakarya Kerajinan Kelas 12 SMA Terbaru 2025
Keterbatasan-Fasilitas-dalam-Mengajar-KKA.pptx
Deck Rumah Pendidikan untuk Mendukung Program Prioritas Kemendikdasmen.pdf
Materi Seminar AITalks AI dan Suku Digital
Lembar Kerja Mahasiswa Information System
PPT SURAT AL FIL LOMBA MAPSI SEKOLAH DASAR
Modul Ajar Deep Learning PAI & BP Kelas 11 SMA Terbaru 2025
Modul Ajar Pembelajaran Mendalam Senbud Seni Rupa Kelas XII Terbaru 2025
Modul Ajar Pembelajaran Mendalam Senbud Seni Musik Kelas XII Terbaru 2025
Digital Statecraft Menuju Indonesia Emas 2045: Diplomasi Digital, Ketahanan N...
9ICP - Hubungan antara Pancasila dengan UUD 1945Bhinneka Tunggal Ika.pptx
Modul Ajar Deep Learning PKWU Rekayasa Kelas 12 SMA Terbaru 2025

Single Linked List - Insert .pptx

  • 1. Algoritma dan Struktur Data Single Linked List – Operasi INSERT Umi Sa’adah Tita Karlita Entin Martiana K Arna Fariza 2021
  • 3. PENGERTIAN ●Linked list terdiri atas elemen- elemen individu yang masing2 dihubungkan dengan pointer tunggal. ●Setiap elemen terdiri atas 2 bagian : ● data/informasi yang disimpan ● next, yaitu pointer yang menyimpan alamat elemen selanjutnya Elemen Individu ? data next
  • 4. Dalam single linked list, list hanya dapat dilintasi satu arah dari head ke tail 1000 head Nilai 2000 1000 Nilai 2000 2000 tail Ilustrasi PENGERTIAN
  • 5. Linked List • Pada realitanya, posisi linked list terpencar-pencar di memori • Pointer dari elemen ke elemen berarti sebagai penjamin bahwa semua elemen dapat diakses.
  • 6. Representasi Linked List 6 b h e a d c typedef struct simpul Node; struct simpul { char data; Node *next; }; Node *head; •Tiap simpul terdiri atas 2 bagian : data dan pointer next. •Pointer head menunjuk ke simpul pertama dr linked list
  • 7. Linked List 7 b h e a d c typedef struct simpul Node; struct simpul { char data; Node *next; }; Node *head; head->next->next head->next head->next->data head->data
  • 8. Linked List 8 b h e a d c p p->data p->next Pointer next dari simpul terakhir = NULL Simpul pertama ditunjuk oleh sebuah pointer : head p=head- >next;
  • 9. Empty linked list 9 h e a d • Linked list yang masih kosong ditunjukkan oleh pointer head yang bernilai NULL. • Ingat, pointer head menunjuk ke simpul pertama dalam sebuah linked list. • Jika list masih kosong, maka tidak terdapat simpul pertama. h e a d Utk singkatnya, biasanya sel pointernya tidak digambar.
  • 10. ALGORITMA INSERT SLL 1. Siapkan node baru yang akan disisipkan. 2. Cari posisi yang akan disisipkan. 3. Sambungkan dengan existing linked list.
  • 11. Operasi Insert SLL INSERT SLL { AWAL AKHIR AFTER BEFORE
  • 13. PENGERTIAN Insert Awal adalah menambahkan data (simpul baru) di ujung kiri dalam sebuah linked list.
  • 14. ILUSTRASI Pointer-pointer bantuan yang digunakan dalam Insert Awal : 1. p = digunakan untuk memesan alokasi node baru. 2. head = pointer yang akan menunjuk data pertama dalam linked list.
  • 15. 1. SIAPKAN NODE BARU YANG AKAN DISISIPKAN P p = (Node *)malloc(size of(Node)); p data = Nilai; p next = NULL; Nilai = 4 2000 ? ? 2000 4
  • 17. 2. CARI POSISI YANG AKAN DISISIPKAN 2000 P 4 if (head==NULL) head = p; else p next = head; head = p; 2000 head
  • 18. 3. SAMBUNGKAN DENGAN EXISTING LINKED LIST 2000 P 4 if (head==NULL) head = p; else p next = head; head = p; 2000 head 2000
  • 21. 2. CARI POSISI YANG AKAN DISISIPKAN 2000 P 4 3000 if (head==NULL) head = p; else p next = head; head = p; 2000 3000 head 2 4000 3000 5 4000 Karena insert awal, maka node baru pasti akan menjadi data pertama yang ditunjuk oleh head
  • 22. 3. SAMBUNGKAN DENGAN EXISTING LINKED LIST 2000 P 4 2000 3000 head 2 4000 3000 5 4000 2000 if (head==NULL) head = p; else p next = head; head = p; 3000
  • 25. PENGERTIAN Insert Akhir adalah menambahkan data (simpul baru) di ujung kanan dalam sebuah linked list.
  • 26. ILUSTRASI Pointer-pointer bantuan yang digunakan dalam Insert Akhir : 1. p = digunakan untuk memesan alokasi node baru. 2. head = pointer yang akan menunjuk data pertama dalam linked list. 3. tail = pointer yang digunakan untuk mencari letak simpul terakhir dalam linked list.
  • 27. 1. SIAPKAN NODE BARU YANG AKAN DISISIPKAN P p = (Node *)malloc(size of(Node)); p data = Nilai; p next = NULL; Nilai = 5 4000 ? ? 4000 5
  • 29. 2. CARI POSISI YANG AKAN DISISIPKAN if (head==NULL) head = p; else{ tail = head; while (tail next != NULL){ tail = tail next;} } head 4000 P 5 4000 tail ?
  • 30. 3. SAMBUNGKAN DENGAN EXISTING LINKED LIST 4000 P 5 4000 head if (head==NULL) head = p; else{ tail = head; while (tail next != NULL) tail = tail next; } 4000 tail ?
  • 33. 2. CARI POSISI YANG AKAN DISISIPKAN 2000 head 1 3000 2000 7 3000 tail 3000 2000 if (head==NULL) head = p; else{ tail = head; while (tail next != NULL){ tail = tail next;} } ?
  • 34. tail next = p; tail = tail next; 2000 head 1 3000 2000 7 3000 tail 3. SAMBUNGKAN DENGAN EXISTING LINKED LIST 4000 P 5 4000 4000 3000 4000
  • 37. PENGERTIAN Insert After adalah menambahkan data (simpul baru) sesudah data yang bertindak sebagai key.
  • 38. ILUSTRASI Pointer-pointer bantuan yang digunakan dalam Insert After : 1. p = digunakan untuk memesan alokasi node baru. 2. head = pointer yang akan menunjuk data pertama dalam linked list. 3. after = pointer yang digunakan untuk mencari key yang diinputkan oleh user.
  • 39. 1. SIAPKAN NODE BARU YANG AKAN DISISIPKAN P p = (Node *)malloc(size of(Node)); p data = Nilai; p next = NULL; Nilai = 7 3000 ? ? 3000 7
  • 41. 2. CARI POSISI YANG AKAN DISISIPKAN after = head; while (after data != key){ if (after next == NULL){ puts(“Key Tidak Ada”); }else{ after = after next; } } Key = 4 1000 head 2 2000 1000 9 2000 after 1000 2000 Key Tidak Ada ?
  • 43. 2. CARI POSISI YANG AKAN DISISIPKAN Key = 4 1000 head 2 2000 1000 4 2000 after 1000 2000 after = head; while (after data != key){ if (after next == NULL){ puts(“Key Tidak Ada”); }else{ after = after next; } } ?
  • 44. P next = after next; after next = P; 3. SAMBUNGKAN DENGAN EXISTING LINKED LIST Key = 4 1000 head 2 2000 1000 4 2000 after 2000 3000 P 7 3000 Karena tidak ada data lagi setelah after next, maka p next tetap bernilai NULL. 3000
  • 47. PENGERTIAN Insert Before adalah menambahkan data (simpul baru) sebelum data yang bertindak sebagai key.
  • 48. ILUSTRASI Pointer-pointer bantuan yang digunakan dalam Insert Before : 1. p = digunakan untuk memesan alokasi node baru. 2. head = pointer yang akan menunjuk data pertama dalam linked list. 3. bef = singkatan dari pointer before yang digunakan untuk mencari key yang diinputkan oleh user. 4. pbef = singkatan dari pointer previous before yang digunakan untuk penanda node yang berada sebelum node yang ditunjuk oleh pointer bef.
  • 49. 1. SIAPKAN NODE BARU YANG AKAN DISISIPKAN P p = (Node *)malloc(size of(Node)); p data = Nilai; p next = NULL; Nilai = 5 2500 ? ? 2500 5
  • 51. 2. CARI POSISI YANG AKAN DISISIPKAN if (head data == key){ insertawal; }else{ bef = head; do{ pbef = bef; if(bef next == NULL){ puts(“Key Tidak Ada”); }else{ bef = bef next; }while(bef data != key);} Key = 3 1000 head 3 2000 1000 9 2000 insertawal; bef pbef ? ?
  • 52. HASIL AKHIR 2500 head 3 2000 1000 9 2000 2500 P 5 2500 1000 P.S Hasil akhir di dapat setelah melakukan insertawal.
  • 54. 2. CARI POSISI YANG AKAN DISISIPKAN Key = 3 1000 head 6 2000 1000 9 2000 Key Tidak Ada if (head data == key){ insertawal; }else{ bef = head; do{ pbef = bef; if(bef next == NULL){ puts(“Key Tidak Ada”); }else{ bef = bef next; }while(bef data != key);} bef pbef ? ? 1000 1000 2000 2000
  • 56. 2. CARI POSISI YANG AKAN DISISIPKAN Key = 3 1000 head 6 2000 1000 3 2000 bef pbef 1000 2000 if (head data == key){ insertawal; }else{ bef = head; do{ pbef = bef; if(bef next == NULL){ puts(“Key Tidak Ada”); }else{ bef = bef next; }while(bef data != key);} ? ? 1000
  • 57. P next = bef; pbef next = P; 3. SAMBUNGKAN DENGAN EXISTING LINKED LIST Key = 3 1000 head 6 1000 3 2000 2000 bef 1000 pbef 2500 P 5 2000 2500 2000 2500
  • 59. Disusun oleh: FAHMI R KURNIAWAN 2110161010 DEYANA KUSUMA WARDANI 2110161015 RIFKI DWI ACHSANI T 2110161028 1 D4 TEKNIK INFORMATIKA A
  • 60. Referensi 60 1. Brian W. Kerninghan, Dennis M. Ritchie (2012): The C Programming Language : Ansi C Version 2 Edition, PHI Learning 2. Byron Gottfried (2010) : Programming with C, Tata McGraw - Hill Education 3. Kochan Stephen (20040 : Programming in C, 3rd Edition, Sams 4. K. N. King (2008) : C Programming: A Modern Approach, 2nd Edition, W. W. Norton & Company 5. Abdul Kadir (2012) : Algoritma & Pemrograman Menggunakan C & C++, Andi Publisher, Yogyakarta 6. http://www.gdsw.at/languages/c/programming-bbrown/ 7. https://www.petanikode.com/tutorial/c/ 8. http://www.cprogramming.com/tutorial/c-tutorial.html