SlideShare a Scribd company logo
1 of 28
Download to read offline
Operasi Dasar Singly linked List
(Primitive List)
Akmal, S.Si, MT
Erick Paulus, M.Kom
Mata Kuliah : Struktur Data
Tujuan
 Mahasiswa dapat : Mengoperasikan dan
membuat program dari semua algoritma
primitive list singly (insert, delete,
traversal dan searching) dengan benar.
Operasi Dasar pada Singly linked list (Primitive List)
 Penyisipan/Insert
 Penyisipan bisa dilakukan di depan (Insert First), di
belakang (Insert Last) dan di tengah (Insert After)
 Penghapusan/Delete
 Penghapusan bisa dilakukan di depan (Delete First), di
belakang (Delete Last) dan di tengah (Delete After)
 Penelusuran beruntun Linked List/Traversal
 Mengunjungi semua elemen list dan biasanya dimulai
dari elemen pertama
 Pencarian elemen list/Searching
 Melakukan searching berdasarkan suatu kunci untuk
mencari apakah data yang diinginkan ada dalam list dan
sekaligus untuk mendapatkan alamat dari elemen yang
dicari.
Create List dan Create Elemen
 Langkah pertama sebelum operasi list dilakukan adalah membuat sebuah
fungsi untuk membuat sebuat list berkait kosong (CreateList).
 Proses yang dilakukan dalam create Element adalah :
 alokasi suatu tempat yang dicatat oleh pointer pBaru
 Mengisi Info
 Memberi nilai NULL pada pointer pengait (next)
 Selanjutnya elemen yang memenuhi kondisi ini disebut sebagai elemen yang sudah
terdefinisi.
void CreateList(List& First) {
First = NULL;
}
void CreateElmt(pointer& pBaru) {
pBaru = new ElemtList; // alokasi
cout << "Masukkan satu huruf : ";
cin >> pBaru->info; // isi info
pBaru->next = NULL; //
}
Insert First (Penyisipan Di Depan)
 Insert First adalah proses penyisipan sebuah elemen list ke
dalam sebuah list dimana penyisipan dilakukan di depan.
 Secara umum langkah-langkah untuk operasi Insert First
adalah :
a. Menciptakan elemen baru (Create Element)
b. Menambahkan elemen baru tersebut ke list dengan cara
 Menambah sebuah elemen list baru di awal list
atau di depan.
 Elemen baru tersebut menjadi elemen pertama
dan di catat oleh pengenal list
 Ada 2 kasus yang harus ditangani yaitu :
 Jika list masih kosong
 Jika list sudah ada isi
Insert First pada List Kosong
 Ada sebuah list yang kosong dengan ciri First==NULL
 Ada sebuah elemen yang sudah terdefinisi yang ingin disisipkan
 Langkah-langkah yang harus dilakukan adalah dengan menjadikan First
menunjuk ke elemen yang dicatat oleh pBaru sebagai bagian dari list.
Initial State Final State
(Keadaan awal) (Keadaan akhir)
A
First
pBaru
A
First
pBaru
1. First = pBaru
1
A
First
Insert First pada List Sudah Ada Isi
 Setelah fungsi selesai bekerja maka pointer pBaru akan lepas (karena
bersifat lokal)
 Keadaan Akhir
B C
A
First
pBaru
1. pBaru->next = First
B C
A
First
pBaru
1
B C
A
First
pBaru
1 2. First = pBaru
2
A B C
First
 Keadaan Awal
Fungsi Insert First
 Hati-hati : ketika menganalisis keadaan list dengan ada
isi, JANGAN sampai tertukar antara tahap 1 dengan
tahap 2, karena akibatnya list akan menjadi rusak.
void insertFirst(List& First, pointer pBaru){
// I.S List First mungkin kosong dan pBaru sudah terdefinisi
// F.S List bertambah satu elemen di depan dengan pBaru
if (First==NULL) // kasus kosong
First=pBaru;
else { // kasus ada isi
pBaru->next=First; // 1
First=pBaru; // 2
}
}
Kesalahan algoritma Insert First
 Perhatikan gambaran keadaan list berikut ketika keadaan ini
dilakukan yaitu :
 First = pBaru
 pBaru->next = First
A B C
First
D
1
2
A B C
First
D
2
LEPAS dan RUSAK
Traversal
 Traversal berarti menelusuri / mengunjungi semua elemen list berkait.
 Dalam hal ini kunjungan dimulai dari elemen pertama (yang dicatat oleh First).
 Untuk itu diperlukan suatu pointer Bantuan (pBantu) untuk mendatangi setiap
elemen satu persatu.
 Selama pointer bantuan tidak bernilai NULL artinya masih ada elemen yang
dikunjungi maka elemen tersebut bisa diproses (dicetak, dll).
 Setelah satu elemen selesai di proses maka pointer bantuan akan berpindah ke
elemen berikutnya
A B C D
First
pBantu
A B C D
First
pBantu
pBantu=NULL
Fungsi Traversal
 Untuk penanganan kasus kosong secara khusus maka bisa dilakukan dengan
suatu pola algoritma sbb :
void traversal(List First){
// I.S List mungkin kosong
// F.s Semua elemen list didatangi dan ditampilkan mulai dari elemenpertama
pointer pBantu;
pBantu=First; // Catat elemen pertama
while(pBantu != NULL) {
cout << pBantu->info; // proses cetak
pBantu = pBantu->next; // berpindah ke berikutnya
}
}
void traversal(List First){
pointer pBantu;
if (First==NULL) {
cout << “List kosong “<<endl;
}
else {
pBantu=First; // Catat elemen pertama
do {
cout << pBantu->info; // proses cetak
pBantu = pBantu->next; // pindah ke berikutnya
} while(pBantu != NULL);
}
}
Fungsi Utama (main)
 Dengan menggunakan fungsi-fungsi yang sudah didefinisikan sebelumnya
(create, insertFirst dan traversal) maka semua fungsi tersebut bisa
dirangkai dalam sebuah program utama sebagai berikut :
main() {
pointer p;
List Ma08;
createList(Ma08); // List kosong
createElmt(p); // C
insertFirst(Ma08,p);
traversal(Ma08); // C
createElmt(p); // B
insertFirst(Ma08,p);
traversal(Ma08); // B C
createElmt(p); // A
inserFirst(Ma08,p);
traversal(Ma08); // A B C
}
Delete First (Penghapusan Di Depan)
 Merupakan penghapusan sebuah elemen yang ada di
depan. Elemen List yang akan dihapus adalah elemen yang
dicatat / ditunjuk oleh First
 Secara umum ada 3 kasus yang perlu ditangani untuk
operasi Delete First yaitu:
a. Kasus List kosong
 Tidak ada elemen yang dihapus
b. Kasus List dengan isi 1 elemen
 Elemen pertama yang dicatat oleh First, dihapus sehingga list
menjadi kosong
c. Kasus List dengan isi lebih dari 1 elemen
 Menghapus elemen yang depan / pertama yang alamatnya
dicatat oleh First, sehingga list akan berkurang 1 elemen.
 Setelah elemen tersebut dihapus maka elemen berikutnya
menjadi elemen pertama yang di tunjuk oleh First
Delete First pada Kasus Kosong
 Tidak ada elemen yg dihapus
First pHapus pHapus=NULL
Delete First pada Kasus Isi 1 Elemen
A
First pHapus
1. pHapus=First
2. First = NULL
1
2 A
First pHapus
Initial State Final State
Delete First pada Kasus Isi > 1 Elemen
A B C
First
pHapus
1
3
A B C
First
pHapus
1
2
3
2
A B C
First
pHapus
Initial State
Final State
1. pHapus = First 2. First = First->next
3. pHapus->next = NULL
Fungsi Delete First
 Hati-hati untuk penghapusan dengan isi list lebih dari 1 elemen,
JANGAN tertukar antar tahap 2 dengan 3 karena bisa
mengakibatkan list menjadi KOSONG! (kenapa ??)
void DeleteFirst(List& First, pointer& pHapus){
// I.S List First mungkin kosong
// F.S. List berkurang satu di depan, yang dihapus
// dikembalikan
if (First==NULL){ // kosong
pHapus=NULL;
cout<<"List kosong, tidak ada yang dihapus"<<endl;
}
else if (First->next==NULL){ //isi 1 elemen
pHapus=First;
First=NULL;
}
else { // isi > 1 elemen
pHapus=First; // 1
First=First->next; // 2
pHapus->next=NULL; // 3
}
}
Insert Last (Penyisipan Di Belakang)
 Insert Last adalah proses penyisipan sebuah elemen list ke
dalam sebuah list dimana penyisipan dilakukan di belakang.
 Secara umum langkah-langkah untuk operasi Insert Last
adalah sama seperti Insert First yaitu:
a. Menciptakan elemen baru (Create Element)
b. Menambahkan elemen baru tersebut ke list dengan cara
 Menambah sebuah elemen list baru di akhir list atau di
belakang.
 Elemen baru tersebut menjadi elemen terakhir yang memiliki
nilai next nya adalah NULL.
 Ada 2 kasus yang harus ditangani yaitu :
 list kosong
 list sudah ada isi
Insert Last pada Kasus Kosong
 Ada sebuah list yang kosong dengan ciri First==NULL
 Ada sebuah elemen yang sudah terdefinisi yang ingin
disisipkan
 Langkah-langkah yang harus dilakukan adalah dengan
menjadikan First menunjuk ke elemen yang dicatat oleh
pBaru sebagai bagian dari list.
A
First
pBaru
A
First
pBaru
1. First = pBaru
1
A
First
Insert Last pada Kasus List Ada Isi (1)
 Langkah-langkah yang dilakukan adalah :
1. Menemukan / mencari elemen terakhir dengan ciri yaitu elemen yang next-nya bernilai NULL.
Pemeriksaan dilakukan mulai dari elemen pertama. Selanjutnya akan diperiksa elemen-
elemen yang next-nya bernilai NULL. Gunakan pointer bantuan (last) untuk mencatat elemen
terakhir tersebut.
last = First;
while (last->next != NULL) {
last = last->next;
}
A B C D
First
pBaru
last
1
Insert Last pada Kasus List Ada Isi (2)
2. Sambungkan elemen terakhir yang dicatat oleh
last dengan elemen yang ditunjuk oleh pBaru
A B C D
First
pBaru
last
2
2. last->next = pBaru
Fungsi Insert Last
void InsertLast(List& First, pointer pBaru){
// I.S List First mungkin kosong dan pBaru sudah terdefinisi
// F.S List bertambah satu elemen di belakang (sesudah last)
pointer last; //last utk mencatat elemen terakhir
cout<<"Insert Last"<<endl;
if (First==NULL){ //kosong
First=pBaru;
}
else { // ada isi
last=First; // menemukan elemen terakhir
while (last->next!=NULL){
last=last->next;
}
last->next=pBaru; // sambungkan
}
}
Delete Last (Penghapusan Di Belakang) (1)
 Merupakan penghapusan sebuah elemen yang ada di belakang.
Elemen List yang akan dihapus adalah elemen yang nextnya
bernilai NULL.
 Secara umum ada 3 kasus yang perlu ditangani untuk operasi
Delete Last yaitu:
a. Kasus List kosong
 Tidak ada elemen yang dihapus
b. Kasus List dengan isi 1 elemen
 Elemen pertama yang dicatat oleh First, dihapus sehingga list menjadi
kosong
c. Kasus List dengan isi lebih dari 1 elemen
 Menemukan / mencari elemen terakhir dengan ciri yaitu elemen yang
next-nya bernilai NULL dengan menggunakan pointer bantuan (last)
last = First;
while (last->next != NULL) {
last = last->next;
}
Delete Last (Penghapusan Di Belakang) (2)
 Untuk bisa memutuskan kaitan antara elemen terakhir dengan
elemen sebelum yang terakhir maka diperlukan lagi suatu pointer
bantuan lagi (precLast)
precLast = First;
while (precLast->next != last) {
precLast = precLast->next;
}
 Menemukan kedua alamat ini bisa dilakukan dalam satu tahap looping
yaitu sbb :
precLast=NULL;
last = First;
while (last->next != NULL) {
precLast=last;
last = last->next;
}
Delete Last pada Kasus Kosong
First pHapus pHapus=NULL
A
First pHapus
1. pHapus=First
2. First = NULL
1
2 A
First pHapus
Initial State Final State
Delete Last pada Kasus Isi 1 Elemen
Delete Last pada Kasus Isi > 1 Elemen
A B C D
First
pHapus
last
A B C D
First
pHapus
precLast
1
last
precLast
2
1. pHapus = last
2. precLast->next = NULL
1
void DeleteLast(List& First, pointer& pHapus){
// I.S List First mungkin kosong
// F.S. List berkurang satu di belakang, yang dihapus
// dikembalikan
pointer last,precLast;
cout<<"Delete Last"<<endl;
if (First==NULL){ // kosong
pHapus=NULL;
cout<<"List kosong, tidak ada yang dihapus"<<endl;
}
else if (First->next==NULL){ //isi 1 elemen
pHapus=First;
First=NULL; // list jadi kosong
}
else { // isi > 1 elemen
last=First; // menemukan elemen terakhir
precLast=NULL;
while (last->next!=NULL){
precLast=last; // preclast mencatat yg akan ditinggalkan Last
last=last->next; // last berpindah
}
pHapus=last;
precLast->next=NULL;
}
}
Latihan
1.Buatlah fungsi untuk menampilkan mahasiswa
yang lulus dan yang gagal dengan ketentuan :
Nilai >= 60 ; keterangan lulus
Nilai < 60 ; keterangan gagal
Informasi pada elemen list mahasiswa adalah
NPM, nama dan nilai. Gunakan skema dasar
traversal
2.Buatlah program lengkap semua primitive list
yang sudah dipelajari dengan pengelolaan
menggunakan suatu menu. Kasus list yang
ditangani adalah list pegawai dengan atribut NIP,
nama, alamat, gol, dan gaji.

More Related Content

What's hot

Linked List dalam Struktur Data
Linked List dalam Struktur DataLinked List dalam Struktur Data
Linked List dalam Struktur DataFajar Sany
 
Perbandingan algoritma brute force , divide and conquer
Perbandingan algoritma brute force , divide and conquerPerbandingan algoritma brute force , divide and conquer
Perbandingan algoritma brute force , divide and conquerohohervin
 
8. Multi List (Struktur Data)
8. Multi List (Struktur Data)8. Multi List (Struktur Data)
8. Multi List (Struktur Data)Kelinci Coklat
 
Pertemuan 10 Kunjungan Pada Pohon Biner
Pertemuan 10 Kunjungan Pada Pohon BinerPertemuan 10 Kunjungan Pada Pohon Biner
Pertemuan 10 Kunjungan Pada Pohon BinerEndang Retnoningsih
 
Pengertian dan Representasi Graph
Pengertian dan Representasi GraphPengertian dan Representasi Graph
Pengertian dan Representasi GraphZaldy Eka Putra
 
Tugas mandiri struktur data
Tugas mandiri struktur dataTugas mandiri struktur data
Tugas mandiri struktur dataAsep Jaenudin
 
aritmatika komputer
aritmatika komputeraritmatika komputer
aritmatika komputerdewi2093
 
Pohon(tree) matematika diskrit
Pohon(tree) matematika diskritPohon(tree) matematika diskrit
Pohon(tree) matematika diskritsaid zulhelmi
 
Penyederhanaan Karnaugh Map
Penyederhanaan Karnaugh MapPenyederhanaan Karnaugh Map
Penyederhanaan Karnaugh MapCheria Asyifa
 
Materi sorting(pengurutan)-Dasar-Dasar Pemprograman
Materi sorting(pengurutan)-Dasar-Dasar PemprogramanMateri sorting(pengurutan)-Dasar-Dasar Pemprograman
Materi sorting(pengurutan)-Dasar-Dasar PemprogramanReskidtc
 
Graf ( Matematika Diskrit)
Graf ( Matematika Diskrit)Graf ( Matematika Diskrit)
Graf ( Matematika Diskrit)zachrison htg
 
3. Pointer dan List Berkait Singly
3. Pointer dan List Berkait Singly3. Pointer dan List Berkait Singly
3. Pointer dan List Berkait SinglyKelinci Coklat
 

What's hot (20)

SISTEM BUS
SISTEM BUSSISTEM BUS
SISTEM BUS
 
Linked List dalam Struktur Data
Linked List dalam Struktur DataLinked List dalam Struktur Data
Linked List dalam Struktur Data
 
Linked List
Linked ListLinked List
Linked List
 
Perbandingan algoritma brute force , divide and conquer
Perbandingan algoritma brute force , divide and conquerPerbandingan algoritma brute force , divide and conquer
Perbandingan algoritma brute force , divide and conquer
 
Algoritma brute force
Algoritma brute forceAlgoritma brute force
Algoritma brute force
 
8. Multi List (Struktur Data)
8. Multi List (Struktur Data)8. Multi List (Struktur Data)
8. Multi List (Struktur Data)
 
Jaringan hebb
Jaringan hebbJaringan hebb
Jaringan hebb
 
Pertemuan 10 Kunjungan Pada Pohon Biner
Pertemuan 10 Kunjungan Pada Pohon BinerPertemuan 10 Kunjungan Pada Pohon Biner
Pertemuan 10 Kunjungan Pada Pohon Biner
 
Pengertian dan Representasi Graph
Pengertian dan Representasi GraphPengertian dan Representasi Graph
Pengertian dan Representasi Graph
 
SLIDE KE:5 NFA
SLIDE KE:5 NFASLIDE KE:5 NFA
SLIDE KE:5 NFA
 
Tugas mandiri struktur data
Tugas mandiri struktur dataTugas mandiri struktur data
Tugas mandiri struktur data
 
aritmatika komputer
aritmatika komputeraritmatika komputer
aritmatika komputer
 
circular linked list
circular linked listcircular linked list
circular linked list
 
Pohon(tree) matematika diskrit
Pohon(tree) matematika diskritPohon(tree) matematika diskrit
Pohon(tree) matematika diskrit
 
Penyederhanaan Karnaugh Map
Penyederhanaan Karnaugh MapPenyederhanaan Karnaugh Map
Penyederhanaan Karnaugh Map
 
JAWABAN Struktur data soal-latihan-2
JAWABAN Struktur data soal-latihan-2JAWABAN Struktur data soal-latihan-2
JAWABAN Struktur data soal-latihan-2
 
Materi sorting(pengurutan)-Dasar-Dasar Pemprograman
Materi sorting(pengurutan)-Dasar-Dasar PemprogramanMateri sorting(pengurutan)-Dasar-Dasar Pemprograman
Materi sorting(pengurutan)-Dasar-Dasar Pemprograman
 
Graf ( Matematika Diskrit)
Graf ( Matematika Diskrit)Graf ( Matematika Diskrit)
Graf ( Matematika Diskrit)
 
Struktur Data Tree
Struktur Data TreeStruktur Data Tree
Struktur Data Tree
 
3. Pointer dan List Berkait Singly
3. Pointer dan List Berkait Singly3. Pointer dan List Berkait Singly
3. Pointer dan List Berkait Singly
 

Similar to OPTIMASI SLL (10)

Sd bab 8a (senarai)
Sd bab 8a (senarai)Sd bab 8a (senarai)
Sd bab 8a (senarai)
 
Linked list
Linked listLinked list
Linked list
 
Modul 2
Modul 2Modul 2
Modul 2
 
Linked List
Linked ListLinked List
Linked List
 
Modul 3 strukdat
Modul 3 strukdatModul 3 strukdat
Modul 3 strukdat
 
Laporan Praktikum Struktur Data Modul 3
Laporan Praktikum Struktur Data Modul 3Laporan Praktikum Struktur Data Modul 3
Laporan Praktikum Struktur Data Modul 3
 
Struktur data
Struktur dataStruktur data
Struktur data
 
queue antrian
queue antrianqueue antrian
queue antrian
 
Materi linked list dan bubble sort
Materi linked list dan bubble sortMateri linked list dan bubble sort
Materi linked list dan bubble sort
 
Pertemuan 6 revisijan2013-mhs
Pertemuan 6 revisijan2013-mhsPertemuan 6 revisijan2013-mhs
Pertemuan 6 revisijan2013-mhs
 

More from Kelinci Coklat

Bab 7 integrasi numerik
Bab 7 integrasi numerikBab 7 integrasi numerik
Bab 7 integrasi numerikKelinci Coklat
 
Bab 5 interpolasi newton lanjutan
Bab 5 interpolasi newton lanjutanBab 5 interpolasi newton lanjutan
Bab 5 interpolasi newton lanjutanKelinci Coklat
 
Bab 4 sistem persamaan linear
Bab 4 sistem persamaan linearBab 4 sistem persamaan linear
Bab 4 sistem persamaan linearKelinci Coklat
 
Bab 3 penyelesaian persamaan tak linear
Bab 3 penyelesaian persamaan tak linearBab 3 penyelesaian persamaan tak linear
Bab 3 penyelesaian persamaan tak linearKelinci Coklat
 
Bab 2 perhitungan galat
Bab 2  perhitungan galatBab 2  perhitungan galat
Bab 2 perhitungan galatKelinci Coklat
 
Bab 8 persamaan differensial-biasa
Bab 8 persamaan differensial-biasaBab 8 persamaan differensial-biasa
Bab 8 persamaan differensial-biasaKelinci Coklat
 
1. Algoritma, Struktur Data dan Pemrograman Terstruktur
1. Algoritma, Struktur Data dan Pemrograman Terstruktur1. Algoritma, Struktur Data dan Pemrograman Terstruktur
1. Algoritma, Struktur Data dan Pemrograman TerstrukturKelinci Coklat
 
2. Array of Record (Struktur Data)
2. Array of Record (Struktur Data)2. Array of Record (Struktur Data)
2. Array of Record (Struktur Data)Kelinci Coklat
 
Anuitas Biasa (Matematika Keuangan)
Anuitas Biasa (Matematika Keuangan)Anuitas Biasa (Matematika Keuangan)
Anuitas Biasa (Matematika Keuangan)Kelinci Coklat
 
Bunga Majemuk (Matematika Keuangan)
Bunga Majemuk (Matematika Keuangan)Bunga Majemuk (Matematika Keuangan)
Bunga Majemuk (Matematika Keuangan)Kelinci Coklat
 
Bunga Sederhana dan Tingkat Diskon (Matematika Keuangan)
Bunga Sederhana dan Tingkat Diskon (Matematika Keuangan)Bunga Sederhana dan Tingkat Diskon (Matematika Keuangan)
Bunga Sederhana dan Tingkat Diskon (Matematika Keuangan)Kelinci Coklat
 
Anuitas Tumbuh dan Variabel (Matematika Keuangan)
Anuitas Tumbuh dan Variabel (Matematika Keuangan)Anuitas Tumbuh dan Variabel (Matematika Keuangan)
Anuitas Tumbuh dan Variabel (Matematika Keuangan)Kelinci Coklat
 
Anuitas di Muka dan Ditunda (Matematika Keuangan)
Anuitas di Muka dan Ditunda (Matematika Keuangan)Anuitas di Muka dan Ditunda (Matematika Keuangan)
Anuitas di Muka dan Ditunda (Matematika Keuangan)Kelinci Coklat
 
Amortisasi dan Penyusutan (Matematika Keuangan)
Amortisasi dan Penyusutan (Matematika Keuangan)Amortisasi dan Penyusutan (Matematika Keuangan)
Amortisasi dan Penyusutan (Matematika Keuangan)Kelinci Coklat
 
Obligasi (Matematika Keuangan)
Obligasi (Matematika Keuangan)Obligasi (Matematika Keuangan)
Obligasi (Matematika Keuangan)Kelinci Coklat
 
Saham, Yield, dan Return (Matematika Keuangan)
Saham, Yield, dan Return (Matematika Keuangan)Saham, Yield, dan Return (Matematika Keuangan)
Saham, Yield, dan Return (Matematika Keuangan)Kelinci Coklat
 
Perdagangan Margin (Matematika Keuangan)
Perdagangan Margin (Matematika Keuangan)Perdagangan Margin (Matematika Keuangan)
Perdagangan Margin (Matematika Keuangan)Kelinci Coklat
 

More from Kelinci Coklat (20)

Bab 7 integrasi numerik
Bab 7 integrasi numerikBab 7 integrasi numerik
Bab 7 integrasi numerik
 
Bab 6 turunan numerik
Bab 6 turunan numerikBab 6 turunan numerik
Bab 6 turunan numerik
 
Bab 5 interpolasi newton lanjutan
Bab 5 interpolasi newton lanjutanBab 5 interpolasi newton lanjutan
Bab 5 interpolasi newton lanjutan
 
Bab 5 interpolasi
Bab 5 interpolasiBab 5 interpolasi
Bab 5 interpolasi
 
Bab 4 sistem persamaan linear
Bab 4 sistem persamaan linearBab 4 sistem persamaan linear
Bab 4 sistem persamaan linear
 
Bab 3 penyelesaian persamaan tak linear
Bab 3 penyelesaian persamaan tak linearBab 3 penyelesaian persamaan tak linear
Bab 3 penyelesaian persamaan tak linear
 
Bab 2 perhitungan galat
Bab 2  perhitungan galatBab 2  perhitungan galat
Bab 2 perhitungan galat
 
Bab 1 pendahuluan
Bab 1 pendahuluanBab 1 pendahuluan
Bab 1 pendahuluan
 
Bab 8 persamaan differensial-biasa
Bab 8 persamaan differensial-biasaBab 8 persamaan differensial-biasa
Bab 8 persamaan differensial-biasa
 
1. Algoritma, Struktur Data dan Pemrograman Terstruktur
1. Algoritma, Struktur Data dan Pemrograman Terstruktur1. Algoritma, Struktur Data dan Pemrograman Terstruktur
1. Algoritma, Struktur Data dan Pemrograman Terstruktur
 
2. Array of Record (Struktur Data)
2. Array of Record (Struktur Data)2. Array of Record (Struktur Data)
2. Array of Record (Struktur Data)
 
Anuitas Biasa (Matematika Keuangan)
Anuitas Biasa (Matematika Keuangan)Anuitas Biasa (Matematika Keuangan)
Anuitas Biasa (Matematika Keuangan)
 
Bunga Majemuk (Matematika Keuangan)
Bunga Majemuk (Matematika Keuangan)Bunga Majemuk (Matematika Keuangan)
Bunga Majemuk (Matematika Keuangan)
 
Bunga Sederhana dan Tingkat Diskon (Matematika Keuangan)
Bunga Sederhana dan Tingkat Diskon (Matematika Keuangan)Bunga Sederhana dan Tingkat Diskon (Matematika Keuangan)
Bunga Sederhana dan Tingkat Diskon (Matematika Keuangan)
 
Anuitas Tumbuh dan Variabel (Matematika Keuangan)
Anuitas Tumbuh dan Variabel (Matematika Keuangan)Anuitas Tumbuh dan Variabel (Matematika Keuangan)
Anuitas Tumbuh dan Variabel (Matematika Keuangan)
 
Anuitas di Muka dan Ditunda (Matematika Keuangan)
Anuitas di Muka dan Ditunda (Matematika Keuangan)Anuitas di Muka dan Ditunda (Matematika Keuangan)
Anuitas di Muka dan Ditunda (Matematika Keuangan)
 
Amortisasi dan Penyusutan (Matematika Keuangan)
Amortisasi dan Penyusutan (Matematika Keuangan)Amortisasi dan Penyusutan (Matematika Keuangan)
Amortisasi dan Penyusutan (Matematika Keuangan)
 
Obligasi (Matematika Keuangan)
Obligasi (Matematika Keuangan)Obligasi (Matematika Keuangan)
Obligasi (Matematika Keuangan)
 
Saham, Yield, dan Return (Matematika Keuangan)
Saham, Yield, dan Return (Matematika Keuangan)Saham, Yield, dan Return (Matematika Keuangan)
Saham, Yield, dan Return (Matematika Keuangan)
 
Perdagangan Margin (Matematika Keuangan)
Perdagangan Margin (Matematika Keuangan)Perdagangan Margin (Matematika Keuangan)
Perdagangan Margin (Matematika Keuangan)
 

Recently uploaded

alat-alat liturgi dalam Gereja Katolik.pptx
alat-alat liturgi dalam Gereja Katolik.pptxalat-alat liturgi dalam Gereja Katolik.pptx
alat-alat liturgi dalam Gereja Katolik.pptxRioNahak1
 
MATERI EKOSISTEM UNTUK SEKOLAH MENENGAH ATAS
MATERI EKOSISTEM UNTUK SEKOLAH MENENGAH ATASMATERI EKOSISTEM UNTUK SEKOLAH MENENGAH ATAS
MATERI EKOSISTEM UNTUK SEKOLAH MENENGAH ATASKurniawan Dirham
 
Panduan Substansi_ Pengelolaan Kinerja Kepala Sekolah Tahap Pelaksanaan.pptx
Panduan Substansi_ Pengelolaan Kinerja Kepala Sekolah Tahap Pelaksanaan.pptxPanduan Substansi_ Pengelolaan Kinerja Kepala Sekolah Tahap Pelaksanaan.pptx
Panduan Substansi_ Pengelolaan Kinerja Kepala Sekolah Tahap Pelaksanaan.pptxsudianaade137
 
Laporan Guru Piket untuk Pengisian RHK Guru Pengelolaan KInerja Guru di PMM
Laporan Guru Piket untuk Pengisian RHK Guru Pengelolaan KInerja Guru di PMMLaporan Guru Piket untuk Pengisian RHK Guru Pengelolaan KInerja Guru di PMM
Laporan Guru Piket untuk Pengisian RHK Guru Pengelolaan KInerja Guru di PMMmulyadia43
 
Lembar Observasi Pembelajaran di Kelas.docx
Lembar Observasi Pembelajaran di  Kelas.docxLembar Observasi Pembelajaran di  Kelas.docx
Lembar Observasi Pembelajaran di Kelas.docxbkandrisaputra
 
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
 
Aksi Nyata Modul 1.1 Calon Guru Penggerak
Aksi Nyata Modul 1.1 Calon Guru PenggerakAksi Nyata Modul 1.1 Calon Guru Penggerak
Aksi Nyata Modul 1.1 Calon Guru Penggeraksupriadi611
 
PPT_AKUNTANSI_PAJAK_ATAS_ASET_TETAP.pptx
PPT_AKUNTANSI_PAJAK_ATAS_ASET_TETAP.pptxPPT_AKUNTANSI_PAJAK_ATAS_ASET_TETAP.pptx
PPT_AKUNTANSI_PAJAK_ATAS_ASET_TETAP.pptxalalfardilah
 
Kelompok 1 Bimbingan Konseling Islami (Asas-Asas).pdf
Kelompok 1 Bimbingan Konseling Islami (Asas-Asas).pdfKelompok 1 Bimbingan Konseling Islami (Asas-Asas).pdf
Kelompok 1 Bimbingan Konseling Islami (Asas-Asas).pdfmaulanayazid
 
Kelompok 2 Karakteristik Negara Nigeria.pdf
Kelompok 2 Karakteristik Negara Nigeria.pdfKelompok 2 Karakteristik Negara Nigeria.pdf
Kelompok 2 Karakteristik Negara Nigeria.pdftsaniasalftn18
 
MODUL 2 BAHASA INDONESIA-KELOMPOK 1.pptx
MODUL 2 BAHASA INDONESIA-KELOMPOK 1.pptxMODUL 2 BAHASA INDONESIA-KELOMPOK 1.pptx
MODUL 2 BAHASA INDONESIA-KELOMPOK 1.pptxarnisariningsih98
 
04-Gemelli.- kehamilan ganda- duo atau triplet
04-Gemelli.- kehamilan ganda- duo atau triplet04-Gemelli.- kehamilan ganda- duo atau triplet
04-Gemelli.- kehamilan ganda- duo atau tripletMelianaJayasaputra
 
1.2.a.6. Demonstrasi Konstektual - Modul 1.2 (Shinta Novianti - CGP A10).pdf
1.2.a.6. Demonstrasi Konstektual - Modul 1.2 (Shinta Novianti - CGP A10).pdf1.2.a.6. Demonstrasi Konstektual - Modul 1.2 (Shinta Novianti - CGP A10).pdf
1.2.a.6. Demonstrasi Konstektual - Modul 1.2 (Shinta Novianti - CGP A10).pdfShintaNovianti1
 
Kesebangunan Segitiga matematika kelas 7 kurikulum merdeka.pptx
Kesebangunan Segitiga matematika kelas 7 kurikulum merdeka.pptxKesebangunan Segitiga matematika kelas 7 kurikulum merdeka.pptx
Kesebangunan Segitiga matematika kelas 7 kurikulum merdeka.pptxDwiYuniarti14
 
IPA Kelas 9 BAB 10 - www.ilmuguru.org.pptx
IPA Kelas 9 BAB 10 - www.ilmuguru.org.pptxIPA Kelas 9 BAB 10 - www.ilmuguru.org.pptx
IPA Kelas 9 BAB 10 - www.ilmuguru.org.pptxErikaPuspita10
 
LAPORAN PKP KESELURUHAN BAB 1-5 NURUL HUSNA.pdf
LAPORAN PKP KESELURUHAN BAB 1-5 NURUL HUSNA.pdfLAPORAN PKP KESELURUHAN BAB 1-5 NURUL HUSNA.pdf
LAPORAN PKP KESELURUHAN BAB 1-5 NURUL HUSNA.pdfChrodtianTian
 
AKSI NYATA MODUL 1.2-1 untuk pendidikan guru penggerak.pptx
AKSI NYATA MODUL 1.2-1 untuk pendidikan guru penggerak.pptxAKSI NYATA MODUL 1.2-1 untuk pendidikan guru penggerak.pptx
AKSI NYATA MODUL 1.2-1 untuk pendidikan guru penggerak.pptxWirionSembiring2
 
RENCANA + Link2 Materi Pelatihan/BimTek "Teknik Perhitungan & Verifikasi TKDN...
RENCANA + Link2 Materi Pelatihan/BimTek "Teknik Perhitungan & Verifikasi TKDN...RENCANA + Link2 Materi Pelatihan/BimTek "Teknik Perhitungan & Verifikasi TKDN...
RENCANA + Link2 Materi Pelatihan/BimTek "Teknik Perhitungan & Verifikasi TKDN...Kanaidi ken
 
polinomial dan suku banyak kelas 11..ppt
polinomial dan suku banyak kelas 11..pptpolinomial dan suku banyak kelas 11..ppt
polinomial dan suku banyak kelas 11..pptGirl38
 
implementasu Permendikbudristek no 53 2023
implementasu Permendikbudristek no 53 2023implementasu Permendikbudristek no 53 2023
implementasu Permendikbudristek no 53 2023DodiSetiawan46
 

Recently uploaded (20)

alat-alat liturgi dalam Gereja Katolik.pptx
alat-alat liturgi dalam Gereja Katolik.pptxalat-alat liturgi dalam Gereja Katolik.pptx
alat-alat liturgi dalam Gereja Katolik.pptx
 
MATERI EKOSISTEM UNTUK SEKOLAH MENENGAH ATAS
MATERI EKOSISTEM UNTUK SEKOLAH MENENGAH ATASMATERI EKOSISTEM UNTUK SEKOLAH MENENGAH ATAS
MATERI EKOSISTEM UNTUK SEKOLAH MENENGAH ATAS
 
Panduan Substansi_ Pengelolaan Kinerja Kepala Sekolah Tahap Pelaksanaan.pptx
Panduan Substansi_ Pengelolaan Kinerja Kepala Sekolah Tahap Pelaksanaan.pptxPanduan Substansi_ Pengelolaan Kinerja Kepala Sekolah Tahap Pelaksanaan.pptx
Panduan Substansi_ Pengelolaan Kinerja Kepala Sekolah Tahap Pelaksanaan.pptx
 
Laporan Guru Piket untuk Pengisian RHK Guru Pengelolaan KInerja Guru di PMM
Laporan Guru Piket untuk Pengisian RHK Guru Pengelolaan KInerja Guru di PMMLaporan Guru Piket untuk Pengisian RHK Guru Pengelolaan KInerja Guru di PMM
Laporan Guru Piket untuk Pengisian RHK Guru Pengelolaan KInerja Guru di PMM
 
Lembar Observasi Pembelajaran di Kelas.docx
Lembar Observasi Pembelajaran di  Kelas.docxLembar Observasi Pembelajaran di  Kelas.docx
Lembar Observasi Pembelajaran di Kelas.docx
 
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
 
Aksi Nyata Modul 1.1 Calon Guru Penggerak
Aksi Nyata Modul 1.1 Calon Guru PenggerakAksi Nyata Modul 1.1 Calon Guru Penggerak
Aksi Nyata Modul 1.1 Calon Guru Penggerak
 
PPT_AKUNTANSI_PAJAK_ATAS_ASET_TETAP.pptx
PPT_AKUNTANSI_PAJAK_ATAS_ASET_TETAP.pptxPPT_AKUNTANSI_PAJAK_ATAS_ASET_TETAP.pptx
PPT_AKUNTANSI_PAJAK_ATAS_ASET_TETAP.pptx
 
Kelompok 1 Bimbingan Konseling Islami (Asas-Asas).pdf
Kelompok 1 Bimbingan Konseling Islami (Asas-Asas).pdfKelompok 1 Bimbingan Konseling Islami (Asas-Asas).pdf
Kelompok 1 Bimbingan Konseling Islami (Asas-Asas).pdf
 
Kelompok 2 Karakteristik Negara Nigeria.pdf
Kelompok 2 Karakteristik Negara Nigeria.pdfKelompok 2 Karakteristik Negara Nigeria.pdf
Kelompok 2 Karakteristik Negara Nigeria.pdf
 
MODUL 2 BAHASA INDONESIA-KELOMPOK 1.pptx
MODUL 2 BAHASA INDONESIA-KELOMPOK 1.pptxMODUL 2 BAHASA INDONESIA-KELOMPOK 1.pptx
MODUL 2 BAHASA INDONESIA-KELOMPOK 1.pptx
 
04-Gemelli.- kehamilan ganda- duo atau triplet
04-Gemelli.- kehamilan ganda- duo atau triplet04-Gemelli.- kehamilan ganda- duo atau triplet
04-Gemelli.- kehamilan ganda- duo atau triplet
 
1.2.a.6. Demonstrasi Konstektual - Modul 1.2 (Shinta Novianti - CGP A10).pdf
1.2.a.6. Demonstrasi Konstektual - Modul 1.2 (Shinta Novianti - CGP A10).pdf1.2.a.6. Demonstrasi Konstektual - Modul 1.2 (Shinta Novianti - CGP A10).pdf
1.2.a.6. Demonstrasi Konstektual - Modul 1.2 (Shinta Novianti - CGP A10).pdf
 
Kesebangunan Segitiga matematika kelas 7 kurikulum merdeka.pptx
Kesebangunan Segitiga matematika kelas 7 kurikulum merdeka.pptxKesebangunan Segitiga matematika kelas 7 kurikulum merdeka.pptx
Kesebangunan Segitiga matematika kelas 7 kurikulum merdeka.pptx
 
IPA Kelas 9 BAB 10 - www.ilmuguru.org.pptx
IPA Kelas 9 BAB 10 - www.ilmuguru.org.pptxIPA Kelas 9 BAB 10 - www.ilmuguru.org.pptx
IPA Kelas 9 BAB 10 - www.ilmuguru.org.pptx
 
LAPORAN PKP KESELURUHAN BAB 1-5 NURUL HUSNA.pdf
LAPORAN PKP KESELURUHAN BAB 1-5 NURUL HUSNA.pdfLAPORAN PKP KESELURUHAN BAB 1-5 NURUL HUSNA.pdf
LAPORAN PKP KESELURUHAN BAB 1-5 NURUL HUSNA.pdf
 
AKSI NYATA MODUL 1.2-1 untuk pendidikan guru penggerak.pptx
AKSI NYATA MODUL 1.2-1 untuk pendidikan guru penggerak.pptxAKSI NYATA MODUL 1.2-1 untuk pendidikan guru penggerak.pptx
AKSI NYATA MODUL 1.2-1 untuk pendidikan guru penggerak.pptx
 
RENCANA + Link2 Materi Pelatihan/BimTek "Teknik Perhitungan & Verifikasi TKDN...
RENCANA + Link2 Materi Pelatihan/BimTek "Teknik Perhitungan & Verifikasi TKDN...RENCANA + Link2 Materi Pelatihan/BimTek "Teknik Perhitungan & Verifikasi TKDN...
RENCANA + Link2 Materi Pelatihan/BimTek "Teknik Perhitungan & Verifikasi TKDN...
 
polinomial dan suku banyak kelas 11..ppt
polinomial dan suku banyak kelas 11..pptpolinomial dan suku banyak kelas 11..ppt
polinomial dan suku banyak kelas 11..ppt
 
implementasu Permendikbudristek no 53 2023
implementasu Permendikbudristek no 53 2023implementasu Permendikbudristek no 53 2023
implementasu Permendikbudristek no 53 2023
 

OPTIMASI SLL

  • 1. Operasi Dasar Singly linked List (Primitive List) Akmal, S.Si, MT Erick Paulus, M.Kom Mata Kuliah : Struktur Data
  • 2. Tujuan  Mahasiswa dapat : Mengoperasikan dan membuat program dari semua algoritma primitive list singly (insert, delete, traversal dan searching) dengan benar.
  • 3. Operasi Dasar pada Singly linked list (Primitive List)  Penyisipan/Insert  Penyisipan bisa dilakukan di depan (Insert First), di belakang (Insert Last) dan di tengah (Insert After)  Penghapusan/Delete  Penghapusan bisa dilakukan di depan (Delete First), di belakang (Delete Last) dan di tengah (Delete After)  Penelusuran beruntun Linked List/Traversal  Mengunjungi semua elemen list dan biasanya dimulai dari elemen pertama  Pencarian elemen list/Searching  Melakukan searching berdasarkan suatu kunci untuk mencari apakah data yang diinginkan ada dalam list dan sekaligus untuk mendapatkan alamat dari elemen yang dicari.
  • 4. Create List dan Create Elemen  Langkah pertama sebelum operasi list dilakukan adalah membuat sebuah fungsi untuk membuat sebuat list berkait kosong (CreateList).  Proses yang dilakukan dalam create Element adalah :  alokasi suatu tempat yang dicatat oleh pointer pBaru  Mengisi Info  Memberi nilai NULL pada pointer pengait (next)  Selanjutnya elemen yang memenuhi kondisi ini disebut sebagai elemen yang sudah terdefinisi. void CreateList(List& First) { First = NULL; } void CreateElmt(pointer& pBaru) { pBaru = new ElemtList; // alokasi cout << "Masukkan satu huruf : "; cin >> pBaru->info; // isi info pBaru->next = NULL; // }
  • 5. Insert First (Penyisipan Di Depan)  Insert First adalah proses penyisipan sebuah elemen list ke dalam sebuah list dimana penyisipan dilakukan di depan.  Secara umum langkah-langkah untuk operasi Insert First adalah : a. Menciptakan elemen baru (Create Element) b. Menambahkan elemen baru tersebut ke list dengan cara  Menambah sebuah elemen list baru di awal list atau di depan.  Elemen baru tersebut menjadi elemen pertama dan di catat oleh pengenal list  Ada 2 kasus yang harus ditangani yaitu :  Jika list masih kosong  Jika list sudah ada isi
  • 6. Insert First pada List Kosong  Ada sebuah list yang kosong dengan ciri First==NULL  Ada sebuah elemen yang sudah terdefinisi yang ingin disisipkan  Langkah-langkah yang harus dilakukan adalah dengan menjadikan First menunjuk ke elemen yang dicatat oleh pBaru sebagai bagian dari list. Initial State Final State (Keadaan awal) (Keadaan akhir) A First pBaru A First pBaru 1. First = pBaru 1 A First
  • 7. Insert First pada List Sudah Ada Isi  Setelah fungsi selesai bekerja maka pointer pBaru akan lepas (karena bersifat lokal)  Keadaan Akhir B C A First pBaru 1. pBaru->next = First B C A First pBaru 1 B C A First pBaru 1 2. First = pBaru 2 A B C First  Keadaan Awal
  • 8. Fungsi Insert First  Hati-hati : ketika menganalisis keadaan list dengan ada isi, JANGAN sampai tertukar antara tahap 1 dengan tahap 2, karena akibatnya list akan menjadi rusak. void insertFirst(List& First, pointer pBaru){ // I.S List First mungkin kosong dan pBaru sudah terdefinisi // F.S List bertambah satu elemen di depan dengan pBaru if (First==NULL) // kasus kosong First=pBaru; else { // kasus ada isi pBaru->next=First; // 1 First=pBaru; // 2 } }
  • 9. Kesalahan algoritma Insert First  Perhatikan gambaran keadaan list berikut ketika keadaan ini dilakukan yaitu :  First = pBaru  pBaru->next = First A B C First D 1 2 A B C First D 2 LEPAS dan RUSAK
  • 10. Traversal  Traversal berarti menelusuri / mengunjungi semua elemen list berkait.  Dalam hal ini kunjungan dimulai dari elemen pertama (yang dicatat oleh First).  Untuk itu diperlukan suatu pointer Bantuan (pBantu) untuk mendatangi setiap elemen satu persatu.  Selama pointer bantuan tidak bernilai NULL artinya masih ada elemen yang dikunjungi maka elemen tersebut bisa diproses (dicetak, dll).  Setelah satu elemen selesai di proses maka pointer bantuan akan berpindah ke elemen berikutnya A B C D First pBantu A B C D First pBantu pBantu=NULL
  • 11. Fungsi Traversal  Untuk penanganan kasus kosong secara khusus maka bisa dilakukan dengan suatu pola algoritma sbb : void traversal(List First){ // I.S List mungkin kosong // F.s Semua elemen list didatangi dan ditampilkan mulai dari elemenpertama pointer pBantu; pBantu=First; // Catat elemen pertama while(pBantu != NULL) { cout << pBantu->info; // proses cetak pBantu = pBantu->next; // berpindah ke berikutnya } } void traversal(List First){ pointer pBantu; if (First==NULL) { cout << “List kosong “<<endl; } else { pBantu=First; // Catat elemen pertama do { cout << pBantu->info; // proses cetak pBantu = pBantu->next; // pindah ke berikutnya } while(pBantu != NULL); } }
  • 12. Fungsi Utama (main)  Dengan menggunakan fungsi-fungsi yang sudah didefinisikan sebelumnya (create, insertFirst dan traversal) maka semua fungsi tersebut bisa dirangkai dalam sebuah program utama sebagai berikut : main() { pointer p; List Ma08; createList(Ma08); // List kosong createElmt(p); // C insertFirst(Ma08,p); traversal(Ma08); // C createElmt(p); // B insertFirst(Ma08,p); traversal(Ma08); // B C createElmt(p); // A inserFirst(Ma08,p); traversal(Ma08); // A B C }
  • 13. Delete First (Penghapusan Di Depan)  Merupakan penghapusan sebuah elemen yang ada di depan. Elemen List yang akan dihapus adalah elemen yang dicatat / ditunjuk oleh First  Secara umum ada 3 kasus yang perlu ditangani untuk operasi Delete First yaitu: a. Kasus List kosong  Tidak ada elemen yang dihapus b. Kasus List dengan isi 1 elemen  Elemen pertama yang dicatat oleh First, dihapus sehingga list menjadi kosong c. Kasus List dengan isi lebih dari 1 elemen  Menghapus elemen yang depan / pertama yang alamatnya dicatat oleh First, sehingga list akan berkurang 1 elemen.  Setelah elemen tersebut dihapus maka elemen berikutnya menjadi elemen pertama yang di tunjuk oleh First
  • 14. Delete First pada Kasus Kosong  Tidak ada elemen yg dihapus First pHapus pHapus=NULL
  • 15. Delete First pada Kasus Isi 1 Elemen A First pHapus 1. pHapus=First 2. First = NULL 1 2 A First pHapus Initial State Final State
  • 16. Delete First pada Kasus Isi > 1 Elemen A B C First pHapus 1 3 A B C First pHapus 1 2 3 2 A B C First pHapus Initial State Final State 1. pHapus = First 2. First = First->next 3. pHapus->next = NULL
  • 17. Fungsi Delete First  Hati-hati untuk penghapusan dengan isi list lebih dari 1 elemen, JANGAN tertukar antar tahap 2 dengan 3 karena bisa mengakibatkan list menjadi KOSONG! (kenapa ??) void DeleteFirst(List& First, pointer& pHapus){ // I.S List First mungkin kosong // F.S. List berkurang satu di depan, yang dihapus // dikembalikan if (First==NULL){ // kosong pHapus=NULL; cout<<"List kosong, tidak ada yang dihapus"<<endl; } else if (First->next==NULL){ //isi 1 elemen pHapus=First; First=NULL; } else { // isi > 1 elemen pHapus=First; // 1 First=First->next; // 2 pHapus->next=NULL; // 3 } }
  • 18. Insert Last (Penyisipan Di Belakang)  Insert Last adalah proses penyisipan sebuah elemen list ke dalam sebuah list dimana penyisipan dilakukan di belakang.  Secara umum langkah-langkah untuk operasi Insert Last adalah sama seperti Insert First yaitu: a. Menciptakan elemen baru (Create Element) b. Menambahkan elemen baru tersebut ke list dengan cara  Menambah sebuah elemen list baru di akhir list atau di belakang.  Elemen baru tersebut menjadi elemen terakhir yang memiliki nilai next nya adalah NULL.  Ada 2 kasus yang harus ditangani yaitu :  list kosong  list sudah ada isi
  • 19. Insert Last pada Kasus Kosong  Ada sebuah list yang kosong dengan ciri First==NULL  Ada sebuah elemen yang sudah terdefinisi yang ingin disisipkan  Langkah-langkah yang harus dilakukan adalah dengan menjadikan First menunjuk ke elemen yang dicatat oleh pBaru sebagai bagian dari list. A First pBaru A First pBaru 1. First = pBaru 1 A First
  • 20. Insert Last pada Kasus List Ada Isi (1)  Langkah-langkah yang dilakukan adalah : 1. Menemukan / mencari elemen terakhir dengan ciri yaitu elemen yang next-nya bernilai NULL. Pemeriksaan dilakukan mulai dari elemen pertama. Selanjutnya akan diperiksa elemen- elemen yang next-nya bernilai NULL. Gunakan pointer bantuan (last) untuk mencatat elemen terakhir tersebut. last = First; while (last->next != NULL) { last = last->next; } A B C D First pBaru last 1
  • 21. Insert Last pada Kasus List Ada Isi (2) 2. Sambungkan elemen terakhir yang dicatat oleh last dengan elemen yang ditunjuk oleh pBaru A B C D First pBaru last 2 2. last->next = pBaru
  • 22. Fungsi Insert Last void InsertLast(List& First, pointer pBaru){ // I.S List First mungkin kosong dan pBaru sudah terdefinisi // F.S List bertambah satu elemen di belakang (sesudah last) pointer last; //last utk mencatat elemen terakhir cout<<"Insert Last"<<endl; if (First==NULL){ //kosong First=pBaru; } else { // ada isi last=First; // menemukan elemen terakhir while (last->next!=NULL){ last=last->next; } last->next=pBaru; // sambungkan } }
  • 23. Delete Last (Penghapusan Di Belakang) (1)  Merupakan penghapusan sebuah elemen yang ada di belakang. Elemen List yang akan dihapus adalah elemen yang nextnya bernilai NULL.  Secara umum ada 3 kasus yang perlu ditangani untuk operasi Delete Last yaitu: a. Kasus List kosong  Tidak ada elemen yang dihapus b. Kasus List dengan isi 1 elemen  Elemen pertama yang dicatat oleh First, dihapus sehingga list menjadi kosong c. Kasus List dengan isi lebih dari 1 elemen  Menemukan / mencari elemen terakhir dengan ciri yaitu elemen yang next-nya bernilai NULL dengan menggunakan pointer bantuan (last) last = First; while (last->next != NULL) { last = last->next; }
  • 24. Delete Last (Penghapusan Di Belakang) (2)  Untuk bisa memutuskan kaitan antara elemen terakhir dengan elemen sebelum yang terakhir maka diperlukan lagi suatu pointer bantuan lagi (precLast) precLast = First; while (precLast->next != last) { precLast = precLast->next; }  Menemukan kedua alamat ini bisa dilakukan dalam satu tahap looping yaitu sbb : precLast=NULL; last = First; while (last->next != NULL) { precLast=last; last = last->next; }
  • 25. Delete Last pada Kasus Kosong First pHapus pHapus=NULL A First pHapus 1. pHapus=First 2. First = NULL 1 2 A First pHapus Initial State Final State Delete Last pada Kasus Isi 1 Elemen
  • 26. Delete Last pada Kasus Isi > 1 Elemen A B C D First pHapus last A B C D First pHapus precLast 1 last precLast 2 1. pHapus = last 2. precLast->next = NULL 1
  • 27. void DeleteLast(List& First, pointer& pHapus){ // I.S List First mungkin kosong // F.S. List berkurang satu di belakang, yang dihapus // dikembalikan pointer last,precLast; cout<<"Delete Last"<<endl; if (First==NULL){ // kosong pHapus=NULL; cout<<"List kosong, tidak ada yang dihapus"<<endl; } else if (First->next==NULL){ //isi 1 elemen pHapus=First; First=NULL; // list jadi kosong } else { // isi > 1 elemen last=First; // menemukan elemen terakhir precLast=NULL; while (last->next!=NULL){ precLast=last; // preclast mencatat yg akan ditinggalkan Last last=last->next; // last berpindah } pHapus=last; precLast->next=NULL; } }
  • 28. Latihan 1.Buatlah fungsi untuk menampilkan mahasiswa yang lulus dan yang gagal dengan ketentuan : Nilai >= 60 ; keterangan lulus Nilai < 60 ; keterangan gagal Informasi pada elemen list mahasiswa adalah NPM, nama dan nilai. Gunakan skema dasar traversal 2.Buatlah program lengkap semua primitive list yang sudah dipelajari dengan pengelolaan menggunakan suatu menu. Kasus list yang ditangani adalah list pegawai dengan atribut NIP, nama, alamat, gol, dan gaji.