SlideShare a Scribd company logo
1 of 26
LINKED LIST
Sesi 5
Pembelajaran
Tujuan pembelajaran
Materi
Tugas
2
Hal. 3
Hal. 4
Hal. 26
Tujuan Pembelajaran
• Mahasiswa dapat melakukan perancangan
aplikasi menggunakan struktur Linked List
• Mahasiswa mampu melakukan analisis pada
algoritma Linked List yang dibuat
• Mahasiswa mampu mengimplementasikan
algoritma Linked List pada sebuah aplikasi
secara tepat dan efisien
•
3
4
Linked List
• Linked List adalah salah satu bentuk struktur data,
berisi kumpulan data (node) yang tersusun secara
sekuensial, saling sambung-menyambung,
dinamis dan terbatas.
• Linked List sering disebut juga Senarai Berantai
• Linked List saling terhubung dengan bantuan
variabel pointer
• 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.
5
Ilustrasi Linked List
• Double Linked List
• Single Linked List
6
Array VS Linked List
7
Single Linked List
Pengertian:
• Single : artinya field pointer-nya hanya satu buah saja dan
satu arah serta pada akhir node, pointernya menunjuk
NULL
• Linked List : artinya node-node tersebut saling terhubung
satu sama lain.
• 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.
8
Penjelasan:
• 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 haed yang
bertipe pointer dari TNode yang berguna sebagai
kepala linked list.
Deklarasi Single Linked List Non
Circular
typedef struct Tnode
{
int data;
TNode *next;
};
9
Pembuatan Single Linked List non
Circular
• Digunakan keyword new yang berarti
mempersiapkan sebuah node baru
berserta alokasi memorinya, kemudian
node tersebut diisi data dan pointer
nextnya ditunjuk ke NULL.
Deklarasi Node baru
TNode *baru;
baru = new TNode;
baru->data = databaru;
baru->next = NULL;
10
Single Linked List non Circular
menggunakan Head
• Dibutuhkan satu buah variabel pointer: head
• Head akan selalu menunjuk pada node pertama
Deklarasi Pointer Penunjuk Kepala Single Linked List
• 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 sebagai
berikut:
• TNode *head;
11
SLLNC menggunakan Head
Fungsi Inisialisasi Single LinkedList
void init(){
head = NULL;
}
Function untuk mengetahui kosong tidaknya Single
LinkedList
• Jika pointer head tidak menunjuk pada suatu node maka
kosong
int isEmpty(){
if(head == NULL) return 1;
else return 0;
}
12
Penambahan data di depan
• Penambahan node baru akan dikaitkan 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.
13
Fungsi Penambahan Node Di Depan
void insertDepan(int databaru){
TNode *baru;
baru = new TNode;
baru->data = databaru;
baru->next = NULL;
if(isEmpty()==1){
head=baru;
head->next = NULL;
}
else {
baru->next = head;
head = baru;
}
cout<<”Data masukn”;
}
14
SLL dengan Head
15
Penambahan data di belakang
• 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.
16
Fungsi Penambahan Node Di Belakang
void insertBelakang (int databaru){
TNode *baru,*bantu;
baru = new TNode;
baru->data = databaru;
baru->next = NULL;
if(isEmpty()==1){
head=baru;
head->next = NULL;
}
else {
bantu=head;
while(bantu->next!=NULL){
bantu=bantu->next;
}
bantu->next = baru;
}
cout<<"Data masukn";
}
17
Ilustrasi Penambahan Node Di Belakang
18
Fungsi Menampilkan Data
void tampil(){
TNode *bantu;
bantu = head;
if(isEmpty()==0){
while(bantu!=NULL){
cout<<bantu->data<<" ";
bantu=bantu->next;
}
cout<<endl;
} else cout<<"Masih kosongn";
}
19
Fungsi Menampilkan Data
• Function di atas digunakan untuk menampilkan semua isi
list, di mana linked list ditelusuri satu-persatu dari awal
node sampai akhir node. Penelusuran ini dilakukan
dengan menggunakan suatu pointer bantu, karena pada
prinsipnya pointer head yang menjadi tanda awal list tidak
boleh berubah/berganti posisi.
• Penelusuran dilakukan terus sampai node terakhir
ditemukan menunjuk ke nilai NULL. Jika tidak NULL,
maka node bantu akan berpindah ke node selanjutnya dan
membaca isi datanya dengan menggunakan field next
sehingga dapat saling berkait.
• Jika head masih NULL berarti data masih kosong!
20
Fungsi untuk menghapus data terdepan
void hapusDepan (){
TNode *hapus;
int d;
if (isEmpty()==0){
if(head->next != NULL){
hapus = head;
d = hapus->data;
head = head->next;
delete hapus;
} else {
d = head->data;
head = NULL;
}
cout<<d<<" terhapusn";
} else cout<<"Masih kosongn";
}
21
Fungsi Menghapus Data Di Depan
• 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!
22
Fungsi Menghapus Data Di Belakang
void hapusBelakang(){
TNode *hapus,*bantu;
int d;
if (isEmpty()==0){
if(head->next != NULL){
bantu = head;
while(bantu->next->next!=NULL){
bantu = bantu->next;
}
hapus = bantu->next;
d = hapus->data;
bantu->next = NULL;
delete hapus;
} else {
d = head->data;
head = NULL;
}
cout<<d<<" terhapusn";
} else cout<<"Masih kosongn";
}
23
Ilustrasi Menghapus Data Di Belakang
24
Fungsi Menghapus Semua Elemen
void clear(){
TNode *bantu,*hapus;
bantu = head;
while(bantu!=NULL){
hapus = bantu;
bantu = bantu->next;
delete hapus;
}
head = NULL;
}
25
Fungsi Menghapus Data Di Belakang
• 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.
26
SOAL LATIHAN
• Buatlah program lengkap dari semua algoritma dan
function di atas dalam bentuk menu untuk menambah data,
melihat data, dan menghapus data!
• Buatlah function tambahan yang berguna untuk mencari
data yang ada dalam linked list baik secara ber-Head
maupun ber-Head dan Tail!
• Buatlah function untuk menghapus data tertentu dalam
linked list!
• Buatlah penyisipan node setelah atau sebelum data
tertentu.

More Related Content

What's hot (20)

Tistrukdat8 1
Tistrukdat8 1Tistrukdat8 1
Tistrukdat8 1
 
Tugas kelompok mi d3_sore
Tugas kelompok mi d3_soreTugas kelompok mi d3_sore
Tugas kelompok mi d3_sore
 
POWER POINT STRUKTUR DATA AMIK BSI PURWOKERTO
POWER POINT STRUKTUR DATA AMIK  BSI PURWOKERTOPOWER POINT STRUKTUR DATA AMIK  BSI PURWOKERTO
POWER POINT STRUKTUR DATA AMIK BSI PURWOKERTO
 
Linked list
Linked listLinked list
Linked list
 
5 6 single-linked_list
5 6 single-linked_list5 6 single-linked_list
5 6 single-linked_list
 
Linked List
Linked ListLinked List
Linked List
 
mengenal fungsi-fungsi diSQL Server
mengenal fungsi-fungsi diSQL Servermengenal fungsi-fungsi diSQL Server
mengenal fungsi-fungsi diSQL Server
 
Pertemuan 1 revisijan2013-mhs
Pertemuan 1 revisijan2013-mhsPertemuan 1 revisijan2013-mhs
Pertemuan 1 revisijan2013-mhs
 
Circular linked list
Circular linked listCircular linked list
Circular linked list
 
circular linked list
circular linked listcircular linked list
circular linked list
 
Laporan Praktikum Struktur Data Modul 3
Laporan Praktikum Struktur Data Modul 3Laporan Praktikum Struktur Data Modul 3
Laporan Praktikum Struktur Data Modul 3
 
12. data (variable dan list) scratch
12. data (variable dan list) scratch12. data (variable dan list) scratch
12. data (variable dan list) scratch
 
Algoritma dan Struktur Data (Python) - Struktur Data
Algoritma dan Struktur Data (Python) - Struktur DataAlgoritma dan Struktur Data (Python) - Struktur Data
Algoritma dan Struktur Data (Python) - Struktur Data
 
11
1111
11
 
Double linked list
Double linked listDouble linked list
Double linked list
 
Linked list
Linked listLinked list
Linked list
 
Resume praktikum 5__linked_list
Resume praktikum 5__linked_listResume praktikum 5__linked_list
Resume praktikum 5__linked_list
 
Modul 2
Modul 2Modul 2
Modul 2
 
Modul 3 strukdat
Modul 3 strukdatModul 3 strukdat
Modul 3 strukdat
 
Chapter 3 array
Chapter 3   arrayChapter 3   array
Chapter 3 array
 

Similar to OPTIMALKAN LINKED LIST

SINGLE_LINKED_LIST.pptx
SINGLE_LINKED_LIST.pptxSINGLE_LINKED_LIST.pptx
SINGLE_LINKED_LIST.pptxlegiafatah
 
Pertemuan 3.pptx
Pertemuan 3.pptxPertemuan 3.pptx
Pertemuan 3.pptxjonamanalu
 
9.double linked list circular
9.double linked list circular9.double linked list circular
9.double linked list circularHitesh Wagle
 
MAKALAH DOUBLE LINKED LIST BAHASA C.docx
MAKALAH DOUBLE LINKED LIST BAHASA C.docxMAKALAH DOUBLE LINKED LIST BAHASA C.docx
MAKALAH DOUBLE LINKED LIST BAHASA C.docxDikicandra6
 
DOUBLE LINKED LIST..docx
DOUBLE LINKED LIST..docxDOUBLE LINKED LIST..docx
DOUBLE LINKED LIST..docxSubandi Wahyudi
 
Single Linked List - Insert .pptx
Single Linked List - Insert .pptxSingle Linked List - Insert .pptx
Single Linked List - Insert .pptxUmi Sa'adah
 
Algorithms and Data Structures
 Algorithms and Data Structures Algorithms and Data Structures
Algorithms and Data StructuresNoval C. Kesuma
 
Materi linked list dan bubble sort
Materi linked list dan bubble sortMateri linked list dan bubble sort
Materi linked list dan bubble sortYunan Helmi Nasution
 
MAKALAH SINGLE LINKED LIST DALAM BAHASA.docx
MAKALAH SINGLE LINKED LIST DALAM BAHASA.docxMAKALAH SINGLE LINKED LIST DALAM BAHASA.docx
MAKALAH SINGLE LINKED LIST DALAM BAHASA.docxDikicandra6
 
Asd sesi searching part1
Asd sesi searching part1Asd sesi searching part1
Asd sesi searching part1BintangWijaya5
 
PPT STRUKTUR DATA(1).pptx
PPT STRUKTUR DATA(1).pptxPPT STRUKTUR DATA(1).pptx
PPT STRUKTUR DATA(1).pptxJendralSweet
 

Similar to OPTIMALKAN LINKED LIST (19)

SINGLE_LINKED_LIST.pptx
SINGLE_LINKED_LIST.pptxSINGLE_LINKED_LIST.pptx
SINGLE_LINKED_LIST.pptx
 
Pertemuan 3.pptx
Pertemuan 3.pptxPertemuan 3.pptx
Pertemuan 3.pptx
 
9.double linked list circular
9.double linked list circular9.double linked list circular
9.double linked list circular
 
MAKALAH DOUBLE LINKED LIST BAHASA C.docx
MAKALAH DOUBLE LINKED LIST BAHASA C.docxMAKALAH DOUBLE LINKED LIST BAHASA C.docx
MAKALAH DOUBLE LINKED LIST BAHASA C.docx
 
DOUBLE LINKED LIST..docx
DOUBLE LINKED LIST..docxDOUBLE LINKED LIST..docx
DOUBLE LINKED LIST..docx
 
Single Linked List - Insert .pptx
Single Linked List - Insert .pptxSingle Linked List - Insert .pptx
Single Linked List - Insert .pptx
 
3 Linked List
3   Linked List3   Linked List
3 Linked List
 
teori Struktur data full
teori Struktur data fullteori Struktur data full
teori Struktur data full
 
Persentasi linked list
Persentasi linked listPersentasi linked list
Persentasi linked list
 
Persentasi linked list
Persentasi linked listPersentasi linked list
Persentasi linked list
 
Algorithms and Data Structures
 Algorithms and Data Structures Algorithms and Data Structures
Algorithms and Data Structures
 
Materi linked list dan bubble sort
Materi linked list dan bubble sortMateri linked list dan bubble sort
Materi linked list dan bubble sort
 
Struktur Data Tree
Struktur Data TreeStruktur Data Tree
Struktur Data Tree
 
Tistrukdat10
Tistrukdat10Tistrukdat10
Tistrukdat10
 
MAKALAH SINGLE LINKED LIST DALAM BAHASA.docx
MAKALAH SINGLE LINKED LIST DALAM BAHASA.docxMAKALAH SINGLE LINKED LIST DALAM BAHASA.docx
MAKALAH SINGLE LINKED LIST DALAM BAHASA.docx
 
Struktur affif
Struktur affifStruktur affif
Struktur affif
 
Linked list
Linked listLinked list
Linked list
 
Asd sesi searching part1
Asd sesi searching part1Asd sesi searching part1
Asd sesi searching part1
 
PPT STRUKTUR DATA(1).pptx
PPT STRUKTUR DATA(1).pptxPPT STRUKTUR DATA(1).pptx
PPT STRUKTUR DATA(1).pptx
 

More from Fahuda E

Bab 2 sorting array (1)
Bab 2 sorting array (1)Bab 2 sorting array (1)
Bab 2 sorting array (1)Fahuda E
 
Bab 4 stack (tumpukan)
Bab 4 stack (tumpukan)Bab 4 stack (tumpukan)
Bab 4 stack (tumpukan)Fahuda E
 
Bab 3 searching array (1)
Bab 3 searching array (1)Bab 3 searching array (1)
Bab 3 searching array (1)Fahuda E
 
Materi 2: komponen game
Materi 2: komponen gameMateri 2: komponen game
Materi 2: komponen gameFahuda E
 
Materi 1: gdlc
Materi 1: gdlcMateri 1: gdlc
Materi 1: gdlcFahuda E
 
Materi 5: sprite
Materi 5: spriteMateri 5: sprite
Materi 5: spriteFahuda E
 
Materi 4: lod
Materi 4: lodMateri 4: lod
Materi 4: lodFahuda E
 
Materi 3 rendering graphic dan game
Materi 3   rendering graphic dan gameMateri 3   rendering graphic dan game
Materi 3 rendering graphic dan gameFahuda E
 
Materi 7 perangkat lunak sistem
Materi 7 perangkat lunak sistemMateri 7 perangkat lunak sistem
Materi 7 perangkat lunak sistemFahuda E
 
Materi 6 perangkat lunak aplikasi
Materi 6 perangkat lunak aplikasiMateri 6 perangkat lunak aplikasi
Materi 6 perangkat lunak aplikasiFahuda E
 
Materi 5 penyimpanan eksternal
Materi 5 penyimpanan eksternalMateri 5 penyimpanan eksternal
Materi 5 penyimpanan eksternalFahuda E
 
Materi 4 peranti keluaran
Materi 4 peranti keluaranMateri 4 peranti keluaran
Materi 4 peranti keluaranFahuda E
 
Materi 3 peranti masukan
Materi 3 peranti masukanMateri 3 peranti masukan
Materi 3 peranti masukanFahuda E
 
Rules tugas besar asd
Rules tugas besar asdRules tugas besar asd
Rules tugas besar asdFahuda E
 
Bab 4 queue (antrian)
Bab 4 queue (antrian)Bab 4 queue (antrian)
Bab 4 queue (antrian)Fahuda E
 
Bab 3 stack (tumpukan)
Bab 3 stack (tumpukan)Bab 3 stack (tumpukan)
Bab 3 stack (tumpukan)Fahuda E
 
Bab 2 sorting array
Bab 2 sorting arrayBab 2 sorting array
Bab 2 sorting arrayFahuda E
 

More from Fahuda E (20)

Bab 2 sorting array (1)
Bab 2 sorting array (1)Bab 2 sorting array (1)
Bab 2 sorting array (1)
 
Bab 4 stack (tumpukan)
Bab 4 stack (tumpukan)Bab 4 stack (tumpukan)
Bab 4 stack (tumpukan)
 
Bab 3 searching array (1)
Bab 3 searching array (1)Bab 3 searching array (1)
Bab 3 searching array (1)
 
Materi 2: komponen game
Materi 2: komponen gameMateri 2: komponen game
Materi 2: komponen game
 
Materi 1: gdlc
Materi 1: gdlcMateri 1: gdlc
Materi 1: gdlc
 
Materi 5: sprite
Materi 5: spriteMateri 5: sprite
Materi 5: sprite
 
Materi 4: lod
Materi 4: lodMateri 4: lod
Materi 4: lod
 
Materi 3 rendering graphic dan game
Materi 3   rendering graphic dan gameMateri 3   rendering graphic dan game
Materi 3 rendering graphic dan game
 
Materi 7 perangkat lunak sistem
Materi 7 perangkat lunak sistemMateri 7 perangkat lunak sistem
Materi 7 perangkat lunak sistem
 
Materi 6 perangkat lunak aplikasi
Materi 6 perangkat lunak aplikasiMateri 6 perangkat lunak aplikasi
Materi 6 perangkat lunak aplikasi
 
Materi 5 penyimpanan eksternal
Materi 5 penyimpanan eksternalMateri 5 penyimpanan eksternal
Materi 5 penyimpanan eksternal
 
Materi 4 peranti keluaran
Materi 4 peranti keluaranMateri 4 peranti keluaran
Materi 4 peranti keluaran
 
Materi 3 peranti masukan
Materi 3 peranti masukanMateri 3 peranti masukan
Materi 3 peranti masukan
 
Struct
StructStruct
Struct
 
Rules tugas besar asd
Rules tugas besar asdRules tugas besar asd
Rules tugas besar asd
 
Pointer
PointerPointer
Pointer
 
Bab 4 queue (antrian)
Bab 4 queue (antrian)Bab 4 queue (antrian)
Bab 4 queue (antrian)
 
Bab 3 stack (tumpukan)
Bab 3 stack (tumpukan)Bab 3 stack (tumpukan)
Bab 3 stack (tumpukan)
 
Bab 2 sorting array
Bab 2 sorting arrayBab 2 sorting array
Bab 2 sorting array
 
Array
ArrayArray
Array
 

Recently uploaded

LATIHAN SOAL SISTEM PENCERNAAN KELAS 11pptx
LATIHAN SOAL SISTEM PENCERNAAN KELAS 11pptxLATIHAN SOAL SISTEM PENCERNAAN KELAS 11pptx
LATIHAN SOAL SISTEM PENCERNAAN KELAS 11pptxnataliadwiasty
 
Teknik Menjawab Kertas P.Moral SPM 2024.pptx
Teknik Menjawab Kertas P.Moral SPM  2024.pptxTeknik Menjawab Kertas P.Moral SPM  2024.pptx
Teknik Menjawab Kertas P.Moral SPM 2024.pptxwongcp2
 
slide presentation bab 2 sain form 2.pdf
slide presentation bab 2 sain form 2.pdfslide presentation bab 2 sain form 2.pdf
slide presentation bab 2 sain form 2.pdfNURAFIFAHBINTIJAMALU
 
MATERI 1_ Modul 1 dan 2 Konsep Dasar IPA SD jadi.pptx
MATERI 1_ Modul 1 dan 2 Konsep Dasar IPA SD jadi.pptxMATERI 1_ Modul 1 dan 2 Konsep Dasar IPA SD jadi.pptx
MATERI 1_ Modul 1 dan 2 Konsep Dasar IPA SD jadi.pptxrofikpriyanto2
 
1.2.a.6 Dekon modul 1.2. DINI FITRIANI.pdf
1.2.a.6 Dekon modul 1.2. DINI FITRIANI.pdf1.2.a.6 Dekon modul 1.2. DINI FITRIANI.pdf
1.2.a.6 Dekon modul 1.2. DINI FITRIANI.pdfsandi625870
 
SKPM Kualiti @ Sekolah 23 Feb 22222023.pptx
SKPM Kualiti @ Sekolah 23 Feb 22222023.pptxSKPM Kualiti @ Sekolah 23 Feb 22222023.pptx
SKPM Kualiti @ Sekolah 23 Feb 22222023.pptxg66527130
 
PLaN & INTERVENSI untuk sekolah yang memerlukan
PLaN & INTERVENSI untuk sekolah yang memerlukanPLaN & INTERVENSI untuk sekolah yang memerlukan
PLaN & INTERVENSI untuk sekolah yang memerlukanssuserc81826
 
Soal accurate terbaru untuk mahasiswa ya
Soal accurate terbaru untuk mahasiswa yaSoal accurate terbaru untuk mahasiswa ya
Soal accurate terbaru untuk mahasiswa yaMonaAmelia
 
PPT TEKS TANGGAPAN KELAS 7 KURIKUKULM MERDEKA
PPT TEKS TANGGAPAN KELAS 7 KURIKUKULM MERDEKAPPT TEKS TANGGAPAN KELAS 7 KURIKUKULM MERDEKA
PPT TEKS TANGGAPAN KELAS 7 KURIKUKULM MERDEKARenoMardhatillahS
 
PAMPHLET PENGAKAP aktiviti pengakap 2024
PAMPHLET PENGAKAP aktiviti pengakap 2024PAMPHLET PENGAKAP aktiviti pengakap 2024
PAMPHLET PENGAKAP aktiviti pengakap 2024MALISAAININOORBINTIA
 
modul 1.2 guru penggerak angkatan x Bintan
modul 1.2 guru penggerak angkatan x Bintanmodul 1.2 guru penggerak angkatan x Bintan
modul 1.2 guru penggerak angkatan x BintanVenyHandayani2
 
Sejarah Perkembangan Teori Manajemen.ppt
Sejarah Perkembangan Teori Manajemen.pptSejarah Perkembangan Teori Manajemen.ppt
Sejarah Perkembangan Teori Manajemen.pptssuser940815
 
Dinamika perwujudan Pancasila sebagai Dasar Negara dan Pandangan Hidup Bangsa
Dinamika perwujudan Pancasila sebagai Dasar Negara dan Pandangan Hidup BangsaDinamika perwujudan Pancasila sebagai Dasar Negara dan Pandangan Hidup Bangsa
Dinamika perwujudan Pancasila sebagai Dasar Negara dan Pandangan Hidup BangsaEzraCalva
 
Buku Saku Layanan Haji Ramah Lansia 2.pdf
Buku Saku Layanan Haji Ramah Lansia 2.pdfBuku Saku Layanan Haji Ramah Lansia 2.pdf
Buku Saku Layanan Haji Ramah Lansia 2.pdfWahyudinST
 
Keberagaman-Peserta-Didik-dalam-Psikologi-Pendidikan.pptx
Keberagaman-Peserta-Didik-dalam-Psikologi-Pendidikan.pptxKeberagaman-Peserta-Didik-dalam-Psikologi-Pendidikan.pptx
Keberagaman-Peserta-Didik-dalam-Psikologi-Pendidikan.pptxLeniMawarti1
 
Topik 1 - Pengenalan Penghayatan Etika dan Peradaban Acuan Malaysia.pptx
Topik 1 - Pengenalan Penghayatan Etika dan Peradaban Acuan Malaysia.pptxTopik 1 - Pengenalan Penghayatan Etika dan Peradaban Acuan Malaysia.pptx
Topik 1 - Pengenalan Penghayatan Etika dan Peradaban Acuan Malaysia.pptxsyafnasir
 
APRESIASI SURAT DAN MASUKAN CGP ANGKATAN X.pdf
APRESIASI SURAT DAN MASUKAN CGP ANGKATAN X.pdfAPRESIASI SURAT DAN MASUKAN CGP ANGKATAN X.pdf
APRESIASI SURAT DAN MASUKAN CGP ANGKATAN X.pdfVenyHandayani2
 
aksi nyata pendidikan inklusif.pelatihan mandiri pmm
aksi nyata pendidikan inklusif.pelatihan mandiri pmmaksi nyata pendidikan inklusif.pelatihan mandiri pmm
aksi nyata pendidikan inklusif.pelatihan mandiri pmmeunikekambe10
 
Jurnal Dwi mingguan modul 1.2-gurupenggerak.pptx
Jurnal Dwi mingguan modul 1.2-gurupenggerak.pptxJurnal Dwi mingguan modul 1.2-gurupenggerak.pptx
Jurnal Dwi mingguan modul 1.2-gurupenggerak.pptxBambang440423
 
materi pembelajaran tentang INTERNET.ppt
materi pembelajaran tentang INTERNET.pptmateri pembelajaran tentang INTERNET.ppt
materi pembelajaran tentang INTERNET.pptTaufikFadhilah
 

Recently uploaded (20)

LATIHAN SOAL SISTEM PENCERNAAN KELAS 11pptx
LATIHAN SOAL SISTEM PENCERNAAN KELAS 11pptxLATIHAN SOAL SISTEM PENCERNAAN KELAS 11pptx
LATIHAN SOAL SISTEM PENCERNAAN KELAS 11pptx
 
Teknik Menjawab Kertas P.Moral SPM 2024.pptx
Teknik Menjawab Kertas P.Moral SPM  2024.pptxTeknik Menjawab Kertas P.Moral SPM  2024.pptx
Teknik Menjawab Kertas P.Moral SPM 2024.pptx
 
slide presentation bab 2 sain form 2.pdf
slide presentation bab 2 sain form 2.pdfslide presentation bab 2 sain form 2.pdf
slide presentation bab 2 sain form 2.pdf
 
MATERI 1_ Modul 1 dan 2 Konsep Dasar IPA SD jadi.pptx
MATERI 1_ Modul 1 dan 2 Konsep Dasar IPA SD jadi.pptxMATERI 1_ Modul 1 dan 2 Konsep Dasar IPA SD jadi.pptx
MATERI 1_ Modul 1 dan 2 Konsep Dasar IPA SD jadi.pptx
 
1.2.a.6 Dekon modul 1.2. DINI FITRIANI.pdf
1.2.a.6 Dekon modul 1.2. DINI FITRIANI.pdf1.2.a.6 Dekon modul 1.2. DINI FITRIANI.pdf
1.2.a.6 Dekon modul 1.2. DINI FITRIANI.pdf
 
SKPM Kualiti @ Sekolah 23 Feb 22222023.pptx
SKPM Kualiti @ Sekolah 23 Feb 22222023.pptxSKPM Kualiti @ Sekolah 23 Feb 22222023.pptx
SKPM Kualiti @ Sekolah 23 Feb 22222023.pptx
 
PLaN & INTERVENSI untuk sekolah yang memerlukan
PLaN & INTERVENSI untuk sekolah yang memerlukanPLaN & INTERVENSI untuk sekolah yang memerlukan
PLaN & INTERVENSI untuk sekolah yang memerlukan
 
Soal accurate terbaru untuk mahasiswa ya
Soal accurate terbaru untuk mahasiswa yaSoal accurate terbaru untuk mahasiswa ya
Soal accurate terbaru untuk mahasiswa ya
 
PPT TEKS TANGGAPAN KELAS 7 KURIKUKULM MERDEKA
PPT TEKS TANGGAPAN KELAS 7 KURIKUKULM MERDEKAPPT TEKS TANGGAPAN KELAS 7 KURIKUKULM MERDEKA
PPT TEKS TANGGAPAN KELAS 7 KURIKUKULM MERDEKA
 
PAMPHLET PENGAKAP aktiviti pengakap 2024
PAMPHLET PENGAKAP aktiviti pengakap 2024PAMPHLET PENGAKAP aktiviti pengakap 2024
PAMPHLET PENGAKAP aktiviti pengakap 2024
 
modul 1.2 guru penggerak angkatan x Bintan
modul 1.2 guru penggerak angkatan x Bintanmodul 1.2 guru penggerak angkatan x Bintan
modul 1.2 guru penggerak angkatan x Bintan
 
Sejarah Perkembangan Teori Manajemen.ppt
Sejarah Perkembangan Teori Manajemen.pptSejarah Perkembangan Teori Manajemen.ppt
Sejarah Perkembangan Teori Manajemen.ppt
 
Dinamika perwujudan Pancasila sebagai Dasar Negara dan Pandangan Hidup Bangsa
Dinamika perwujudan Pancasila sebagai Dasar Negara dan Pandangan Hidup BangsaDinamika perwujudan Pancasila sebagai Dasar Negara dan Pandangan Hidup Bangsa
Dinamika perwujudan Pancasila sebagai Dasar Negara dan Pandangan Hidup Bangsa
 
Buku Saku Layanan Haji Ramah Lansia 2.pdf
Buku Saku Layanan Haji Ramah Lansia 2.pdfBuku Saku Layanan Haji Ramah Lansia 2.pdf
Buku Saku Layanan Haji Ramah Lansia 2.pdf
 
Keberagaman-Peserta-Didik-dalam-Psikologi-Pendidikan.pptx
Keberagaman-Peserta-Didik-dalam-Psikologi-Pendidikan.pptxKeberagaman-Peserta-Didik-dalam-Psikologi-Pendidikan.pptx
Keberagaman-Peserta-Didik-dalam-Psikologi-Pendidikan.pptx
 
Topik 1 - Pengenalan Penghayatan Etika dan Peradaban Acuan Malaysia.pptx
Topik 1 - Pengenalan Penghayatan Etika dan Peradaban Acuan Malaysia.pptxTopik 1 - Pengenalan Penghayatan Etika dan Peradaban Acuan Malaysia.pptx
Topik 1 - Pengenalan Penghayatan Etika dan Peradaban Acuan Malaysia.pptx
 
APRESIASI SURAT DAN MASUKAN CGP ANGKATAN X.pdf
APRESIASI SURAT DAN MASUKAN CGP ANGKATAN X.pdfAPRESIASI SURAT DAN MASUKAN CGP ANGKATAN X.pdf
APRESIASI SURAT DAN MASUKAN CGP ANGKATAN X.pdf
 
aksi nyata pendidikan inklusif.pelatihan mandiri pmm
aksi nyata pendidikan inklusif.pelatihan mandiri pmmaksi nyata pendidikan inklusif.pelatihan mandiri pmm
aksi nyata pendidikan inklusif.pelatihan mandiri pmm
 
Jurnal Dwi mingguan modul 1.2-gurupenggerak.pptx
Jurnal Dwi mingguan modul 1.2-gurupenggerak.pptxJurnal Dwi mingguan modul 1.2-gurupenggerak.pptx
Jurnal Dwi mingguan modul 1.2-gurupenggerak.pptx
 
materi pembelajaran tentang INTERNET.ppt
materi pembelajaran tentang INTERNET.pptmateri pembelajaran tentang INTERNET.ppt
materi pembelajaran tentang INTERNET.ppt
 

OPTIMALKAN LINKED LIST

  • 3. Tujuan Pembelajaran • Mahasiswa dapat melakukan perancangan aplikasi menggunakan struktur Linked List • Mahasiswa mampu melakukan analisis pada algoritma Linked List yang dibuat • Mahasiswa mampu mengimplementasikan algoritma Linked List pada sebuah aplikasi secara tepat dan efisien • 3
  • 4. 4 Linked List • Linked List adalah salah satu bentuk struktur data, berisi kumpulan data (node) yang tersusun secara sekuensial, saling sambung-menyambung, dinamis dan terbatas. • Linked List sering disebut juga Senarai Berantai • Linked List saling terhubung dengan bantuan variabel pointer • 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.
  • 5. 5 Ilustrasi Linked List • Double Linked List • Single Linked List
  • 7. 7 Single Linked List Pengertian: • Single : artinya field pointer-nya hanya satu buah saja dan satu arah serta pada akhir node, pointernya menunjuk NULL • Linked List : artinya node-node tersebut saling terhubung satu sama lain. • 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.
  • 8. 8 Penjelasan: • 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 haed yang bertipe pointer dari TNode yang berguna sebagai kepala linked list. Deklarasi Single Linked List Non Circular typedef struct Tnode { int data; TNode *next; };
  • 9. 9 Pembuatan Single Linked List non Circular • Digunakan keyword new yang berarti mempersiapkan sebuah node baru berserta alokasi memorinya, kemudian node tersebut diisi data dan pointer nextnya ditunjuk ke NULL. Deklarasi Node baru TNode *baru; baru = new TNode; baru->data = databaru; baru->next = NULL;
  • 10. 10 Single Linked List non Circular menggunakan Head • Dibutuhkan satu buah variabel pointer: head • Head akan selalu menunjuk pada node pertama Deklarasi Pointer Penunjuk Kepala Single Linked List • 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 sebagai berikut: • TNode *head;
  • 11. 11 SLLNC menggunakan Head Fungsi Inisialisasi Single LinkedList void init(){ head = NULL; } Function untuk mengetahui kosong tidaknya Single LinkedList • Jika pointer head tidak menunjuk pada suatu node maka kosong int isEmpty(){ if(head == NULL) return 1; else return 0; }
  • 12. 12 Penambahan data di depan • Penambahan node baru akan dikaitkan 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.
  • 13. 13 Fungsi Penambahan Node Di Depan void insertDepan(int databaru){ TNode *baru; baru = new TNode; baru->data = databaru; baru->next = NULL; if(isEmpty()==1){ head=baru; head->next = NULL; } else { baru->next = head; head = baru; } cout<<”Data masukn”; }
  • 15. 15 Penambahan data di belakang • 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.
  • 16. 16 Fungsi Penambahan Node Di Belakang void insertBelakang (int databaru){ TNode *baru,*bantu; baru = new TNode; baru->data = databaru; baru->next = NULL; if(isEmpty()==1){ head=baru; head->next = NULL; } else { bantu=head; while(bantu->next!=NULL){ bantu=bantu->next; } bantu->next = baru; } cout<<"Data masukn"; }
  • 18. 18 Fungsi Menampilkan Data void tampil(){ TNode *bantu; bantu = head; if(isEmpty()==0){ while(bantu!=NULL){ cout<<bantu->data<<" "; bantu=bantu->next; } cout<<endl; } else cout<<"Masih kosongn"; }
  • 19. 19 Fungsi Menampilkan Data • Function di atas digunakan untuk menampilkan semua isi list, di mana linked list ditelusuri satu-persatu dari awal node sampai akhir node. Penelusuran ini dilakukan dengan menggunakan suatu pointer bantu, karena pada prinsipnya pointer head yang menjadi tanda awal list tidak boleh berubah/berganti posisi. • Penelusuran dilakukan terus sampai node terakhir ditemukan menunjuk ke nilai NULL. Jika tidak NULL, maka node bantu akan berpindah ke node selanjutnya dan membaca isi datanya dengan menggunakan field next sehingga dapat saling berkait. • Jika head masih NULL berarti data masih kosong!
  • 20. 20 Fungsi untuk menghapus data terdepan void hapusDepan (){ TNode *hapus; int d; if (isEmpty()==0){ if(head->next != NULL){ hapus = head; d = hapus->data; head = head->next; delete hapus; } else { d = head->data; head = NULL; } cout<<d<<" terhapusn"; } else cout<<"Masih kosongn"; }
  • 21. 21 Fungsi Menghapus Data Di Depan • 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!
  • 22. 22 Fungsi Menghapus Data Di Belakang void hapusBelakang(){ TNode *hapus,*bantu; int d; if (isEmpty()==0){ if(head->next != NULL){ bantu = head; while(bantu->next->next!=NULL){ bantu = bantu->next; } hapus = bantu->next; d = hapus->data; bantu->next = NULL; delete hapus; } else { d = head->data; head = NULL; } cout<<d<<" terhapusn"; } else cout<<"Masih kosongn"; }
  • 24. 24 Fungsi Menghapus Semua Elemen void clear(){ TNode *bantu,*hapus; bantu = head; while(bantu!=NULL){ hapus = bantu; bantu = bantu->next; delete hapus; } head = NULL; }
  • 25. 25 Fungsi Menghapus Data Di Belakang • 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.
  • 26. 26 SOAL LATIHAN • Buatlah program lengkap dari semua algoritma dan function di atas dalam bentuk menu untuk menambah data, melihat data, dan menghapus data! • Buatlah function tambahan yang berguna untuk mencari data yang ada dalam linked list baik secara ber-Head maupun ber-Head dan Tail! • Buatlah function untuk menghapus data tertentu dalam linked list! • Buatlah penyisipan node setelah atau sebelum data tertentu.