Algoritma dan Struktur Data. Pertemuan 7 Linked List

dokumen-dokumen yang mirip
Algoritma dan Struktur Data. Pertemuan 8 Doubly Linked List

Algoritma dan Struktur Data. Pertemuan 9 Circular Linked List

Algoritma dan Struktur Data. Linked List

SENARAI BERANTAI (LINK LIST)

Senarai berantai. linked list. Pertemuan keenam Struktur data st3telkom.ac.id. by : tenia wahyuningrum & Sisilia Thya Safitri

LIST. Dewi Sartika, M.Kom

1. Traversing Untuk algoritma traversing sama seperti pada single Link List

DIG1G3 Implementasi Struktur Data

KONSEP POINTER DAN LINKED LIST

List Linear (Linked List) Farah Zakiyah Rahmanti 2014

05. Double Linked List

BAB IX LINKED LIST (SENARAI BERANTAI)

Algoritma Pemrograman & Struktur Data

Pertemuan 3. Perubah Dinamis (Dinamic variable) Suatu perubah yang akan dialokasikan hanya pada saat diperlukan, yaitu setelah program dieksekusi.

Single Linked List (1)

BAB II Senarai Berantai (Linked List)

ALGORITMA DAN STRUKTUR DATA

Data structure :Metode LINK LIST. Kusnawi, S.Kom, M.Eng STMIK AMIKOM Yogyakarta

KONSEP POINTER DAN LINKED LIST

Algoritma Pemrograman & Struktur Data

Masukan Judul... Infotype àsebuah tipe terdefinisi yang menyimpan informasi sebuah elemen list

LINKED LIST. TUJUAN UMUM Memahami konsep linked list TUJUAN KHUSUS

ALGORITMA & PEMROGRAMAN

KONSEP POINTER DAN LINKED LIST

KONSEP POINTER DAN LINKED LIST

04. Single Linked List

KONSEP POINTER DAN LINKED LIST

PENGENALAN List merupakan sebuah pemikiran/konsep struktur data yang sangat dasar pada pemrograman agar lebih fleksibel. Setiap elemen akan ditambahka

List Linier (Bag. I) IF2121/Algoritma dan Struktur Data Sem. I 2016/ /25/2017 IF2121/Sem I 2017/2018 1

STRUKTUR DATA (2) Single Linked List

STRUKTUR DATA. Literatur

MODUL 6 SINGLE & DOUBLE LINKED LIST

Struktur Data II. Single Linked List - Non circular

DOUBLE LINKED LIST. Danang Wahyu Utomo Danang Wahyu Utomo, M.Kom, M.CS

Array VS Linked List

SINGLE LINKED LIST (NON CIRCULAR)

1. Inggriani Liem Catatan Kuliah Algoritma & Pemrograman, Jurusan Teknik Informatika ITB

Review : Sifat Implementasi Linear List dengan Array

: Mahasiswa mampu menjelaskan teknik pemrograman menggunakan Linked List. Single Linked List

LIST BERKAIT(LINKED LIST)

Algoritma dan Struktur Data. Ramos Somya, S.Kom., M.Cs.

BAB IX LINKED LIST (SENARAI BERANTAI)

Praktikum Algoritma dan Struktur Data

Kode : IF2121 NIM :... Matakuliah : Algoritma dan Struktur Data Nama :... Hari, Tanggal : Senin, 13 November 2017 Waktu : 150 Menit

A. TUJUAN PEMBELAJARAN

Linked List. Bandung 2013

Tugas Studi Kasus. Linked List SLLNC dengan Head & Tail

STRUKTUR DATA single linked list non circular

Lab. Teknik Informatika Struktur Data 1

Algoritma dan Struktur Data

STACK atau TUMPUKAN. Pertemuan 5 STACK (TUMPUKAN)

Praktikum Algoritma dan Struktur Data 2010

Data Structure STRUKTUR DATA QUEUE. Chapter 3. Dahlia Widhyaestoeti, S.Kom

A. TUJUAN PEMBELAJARAN

Struktur Data. Tumpukan : Definisi & Operasi. Pertemuan 4 PROBLEM ALGORITHM DATA IMPLEMENTATION. Pert. 4b Struktur Data - FMIPA USD

//membuat sebuah tipe data baru yang terdiri dari. //field data bertipe integer //field next merupakan pointer dari list

SINGLE LINKED LIST NON CIRCULAR (SENARAI BERANTAI TUNGGAL TIDAK BERPUTAR)

2. Mahasiswa dapat membuat dan menggunakan array dan linked list dalam suatu kasus.

LAPORAN PRAKTIKUM IX. Oleh:

Tutorial - Single Linked List

Linked List 6.3 & 7.3 NESTED LOOP

Algoritma dan Struktur Data. Ramos Somya

Single Linked List. Single Linked List

Menghapus Pointer Statement yang digunakan untuk menghapus pointer adalah Dispose, yang mempunyai bentuk umum : Dispose(peubah) ;

ARRAY DINAMIS. Type. Pengenal = Simpul Simpul = Type. (Nama var) : ( Type data)

Gambar 1. Single Linked List

Modul Praktikum Algoritma dan Struktur Data BAB 6 LINKED LIST

LAPORAN PRAKTIKUM RESMI QUEUE

KERUGIAN DAN KEUNTUNGAN LINKED LIST

Struktur. Bab 4: Linked LIst 4/8/2015

A. TUJUAN PEMBELAJARAN

Pada kondisi ini proses penghapusan tidak bisa dilakukan Kondisi linked list memiliki hanya 1 data{satu simpul} Akhir. Akhir

DIG1G3 Implementasi Struktur Data

03 LINKED LIST. Slide 0 voice. Slide 1 voice. Slide 2 voice. Thompson Susabda Ngoen 1 P a g e

Struktur Data. Queue (Antrian)

TREE ALGORITMA & STRUKTUR DATA. Materi ASD Fakultas Teknik Elektro & Komputer UKSW ( Download Dari :

Bagian I. Studi Kasus [82] Tanda tangan:

Algoritma Dan Struktur Data II

STACK (TUMPUKAN) Tumpukan uang koin Tumpukan kotak Tumpukan Buku. Gambar 1. Macam-macam tumpukan

Penerapan BFS dan DFS dalam Garbage Collection

Pertemuan 4. Single Linked List non Circular Menggunakan Head dan Tail

REPRESENTASI FISIK LIST LINEAR

QUEUE (ANTREAN) Operasi Antrean : FIFO (First In First Out) Elemen yang pertama masuk merupakan elemen yang pertama keluar.

Double linked list. Gambar 1. Double linket list dengan empat simpul Deklarasi Double Linked List di dalam Pascal :

TIM ASISTEN PRAKTIKUM ALGORITMA DAN PEMROGRAMAN 2017

Struktur Data & Algoritma

Binary Tree. Binary Tree dapat digambarkan berdasarkan kondisinya, sebagai berikut: Pointer ke akar (root) dari tree

Bab 4 Pointer dan Struktur Data Dinamik 16 BAB IV POINTER DAN STRUKTUR DATA DINAMIK TUJUAN PRAKTIKUM TEORI PENUNJANG

ALGORITMA DAN STRUKTUR DATA POINTER DAN FUNCTION

MODUL PRAKTIKUM STRUKTUR DATA DAN ALGORITMA LINKED LIST (BAGIAN 1)

01. Review Array, Pointer dan Struktur

Buku Ajar Struktur Data

MODUL PRAKTIKUM STRUKTUR DATA DAN ALGORITMA LINKED LIST (BAGIAN 2)

MODUL PRAKTIKUM STRUKTUR DATA. Dosen Pengampu M.Bahrul Ulum, S.Kom., M.Kom. Asisten Lab Mia Kastina PROGRAM STUDI TEKNIK INFORMATIKA

(3) BAHAN KAJIAN (materi ajar)

Praktikum 5. Antrian (Queue)

STL DLL STRUKTUR DATA. JULIO ADISANTOSO Departemen Ilmu Komputer IPB. Pertemuan 3 : 29 Juni 2015

3. DOUBLE LINK LIST. Lab. Teknik Informatika Struktur Data 1

List Linier. IF2030/Algoritma dan Struktur Data. 11/6/2009 FNA+WDS/IF2030/Sem

STRUKTUR DATA Pertemuan 1 s.d 8

Transkripsi:

Algoritma dan Struktur Data Pertemuan 7 Linked List

Definitions Linked List Struktur data yang terdiri atas sekumpulan data bertipe sama Memperhatikan urutan Array Struktur data yang terdiri atas sekumpulan data bertipe sama Memperhatikan urutan Apa perbedaannya?

Array vs linked list Banyaknya anggota Banyaknya elemen array ditentukan di awal & jumlahnya tetap Elemen linked list dibuat di memori ketika dibutuhkan (ingat pertemuan 6). Jumlahnya dinamis, dapat bertambah dan berkurang sesuai keperluan Cara mengakses elemen Elemen array diakses lewat indeks Untuk mengakses elemen linked list, harus dilakukan penelusuran elemen list

Struktur linked List phead A B C Node (elemen) linked list saling berkait melalui pointer. Bagian next sebuah node menunjuk alamat node selanjutnya phead: pointer yang menunjuk node pertama

Struktur linked List phead A B C Node terakhir menunjuk NULL Setiap node terdiri atas Isi data Next, yaitu pointer ke node selanjutnya pada list

Struktur Sebuah Node struct node { //bagian data tipedata data 1; tipedata data 2; tipedata data n; //pointer ke node selanjutnya struct node *next; }; typedef struct node node;

Deklarasi head Sebelum membuat linked list, perlu dideklarasikan dan diinisialisasikan head, yaitu pointer yang menunjuk node pertama dari linked list node *phead = NULL;

Operasi dasar linked list 1. Menambah sebuah node. 2. Menghapus sebuah node. 3. Mencari sebuah node. 4. List tranversal

Menambahkan node pada linked list Terdapat empat tahap untuk menambah node linked list: Membuat node baru. Mendapatkan node yang terletak sebelum node baru disisipkan () Atur next node baru agar menunjuk node sesudah posisi penyisipan. Atur next agar menunjuk node baru. Nilai () dapat berisi : it can contain the address of a node (i.e. you are adding somewhere after the first node in the middle or at the end) it can be NULL (i.e. you are adding either to an empty list or at the beginning of the list)

Menambahkan node ke list kosong Before: pnew phead 39 Code: pnew -> next = phead; // set link to NULL phead = pnew;// point list to first node After: pnew 39 phead

Menambahkan node ke awal list Before: pnew 39 Code (same): pnew -> next = phead; // set link to NULL phead = pnew;// point list to first node phead 75 124 After: pnew 39 phead 75 124

Menambahkan node di tengah list Before: pnew 64 Code pnew -> next = -> next; -> next = pnew; 55 124 After: pnew 64 55 124

Menambahkan node akhir list Before: pnew 144 Code pnew -> next = NULL; -> next = pnew; 55 124 After: pnew 144 55 124

Kode untuk menambah data ke linked list Untuk menambah data pada linked list, harus diketahui head pointer (phead), pointer yang menunjuk node sebelum tempat penyisipan () data yang akan disisipkan (item). //insert a node into a linked list struct node *pnew; pnew = (struct node *) malloc(sizeof(struct node)); pnew -> data = item; if ( == NULL){ //add before first logical node or to an empty list pnew -> next = phead; phead = pnew; } else { //add in the middle or at the end pnew -> next = -> next; -> next = pnew; }

Menghapus node dari linked list Untuk menghapus sebuah node: Cari node yang akan dihapus (pcur) dan node pendahulunya (). Ubah ->next agar menunjuk pcur->next. Hapus pcur menggunakan fungsi free

Menghapus node pertama dari linked list Before: phead 75 124 Code: phead = pcur -> next; free(pcur); pcur After: phead Recycled 124 pcur

Menghapus node dari linked list kasus umum Before: 75 96 124 Code: -> next = pcur -> next; free(pcur); pcur After: Recycled 75 124 pcur

Kode untuk menghapus node dari linked list Untuk menghapus node dari linked list, harus diketahui head pointer (phead), node yang akan dihapus (pcur), serta pendahulunya, //delete a node from a linked list if ( == NULL) //deletion is on the first node of the list phead = pcur -> next; else //deleting a node other than the first node of the list -> next = pcur -> next; free(pcur).

Mencari node yang mengandung data tertentu dari linked list Operasi insert dan delete membutuhkan pencarian pada list untuk menentukan posisi penyisipan atau pointer yang menunjuk data yang akan dihapus //search the nodes in a linked list = NULL; pcur = phead; //search until the target value is found or the end of the list is reached while (pcur!= NULL && pcur -> data!= target) { = pcur; pcur = pcur -> next; } //determine if the target is found or ran off the end of the list if (pcur!= NULL) found = 1; else found = 0;

Traversing a Linked List mengunjungi semua node yang ada pada list dari head sampai node terakhir //traverse a linked list Struct node *pwalker; pwalker = phead; printf( List contains:\n ); while (pwalker!= NULL){ } printf( %d, pwalker -> data); pwalker = pwalker -> next;