LIST. Dewi Sartika, M.Kom

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

List Linear (Linked List) Farah Zakiyah Rahmanti 2014

KONSEP POINTER DAN LINKED LIST

Single Linked List (1)

Linked List 6.3 & 7.3 NESTED LOOP

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

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

Algoritma Pemrograman & Struktur Data

MODUL 6 SINGLE & DOUBLE LINKED LIST

BAB IX LINKED LIST (SENARAI BERANTAI)

SENARAI BERANTAI (LINK LIST)

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

Algoritma dan Struktur Data. Pertemuan 7 Linked List

Algoritma Pemrograman & Struktur Data

KONSEP POINTER DAN LINKED LIST

Algoritma dan Struktur Data. Linked List

KONSEP POINTER DAN LINKED LIST

Algoritma dan Struktur Data. Ramos Somya

BAB IX LINKED LIST (SENARAI BERANTAI)

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

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

SINGLE LINKED LIST (NON CIRCULAR)

STRUKTUR DATA (2) Single Linked List

BAB II Senarai Berantai (Linked List)

KONSEP POINTER DAN LINKED LIST

KONSEP POINTER DAN LINKED LIST

Algoritma dan Struktur Data. Pertemuan 9 Circular Linked List

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

DIG1G3 Implementasi Struktur Data

DIG1G3 Implementasi Struktur Data

05. Double Linked List

Modul Praktikum Algoritma dan Struktur Data BAB 6 LINKED LIST

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

Review : Sifat Implementasi Linear List dengan Array

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

PERTEMUAN VI POINTER 6.1 Tujuan Praktikum 6.2 Teori Penunjang Pointer

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

STACK atau TUMPUKAN. Pertemuan 5 STACK (TUMPUKAN)

Gambar 3.1. Circular Single Linked List. Deklarasi bisa dilihat kembali di Single Linked List atau Double Linked List.

Struktur Data II. Single Linked List - Non circular

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

Array VS Linked List

STRUKTUR DATA. Literatur

REPRESENTASI FISIK LIST LINEAR

Lab. Teknik Informatika Struktur Data 1

Praktikum Algoritma dan Struktur Data

TIM ASISTEN PRAKTIKUM ALGORITMA DAN PEMROGRAMAN 2017

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

A. TUJUAN PEMBELAJARAN

PERTEMUAN KE 11. Linked List. Apa Itu Linked List?

04. Single Linked List

ALGORITMA DAN STRUKTUR DATA

Tugas Studi Kasus. Linked List SLLNC dengan Head & Tail

STRUKTUR DATA single linked list non circular

Tutorial - Single Linked List

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

Jadi satu simpul di double linked list adalah sebagai berikut : Info. Kiri. Kanan

Pertemuan 7. REVIEW dan QUIS

LINKED LIST. TUJUAN UMUM Memahami konsep linked list TUJUAN KHUSUS

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

RESUME A B C D. Gambar 1 Double Linked list dengan Empat Simpul

Praktikum Algoritma dan Struktur Data 2010

LAPORAN PRAKTIKUM IX. Oleh:

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

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

Algoritma Dan Struktur Data II

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

Algoritma dan Struktur Data. Pertemuan 8 Doubly Linked List

Algoritma dan Struktur Data

Variasi List Linier (Bagian 2)

DOUBLY LINKED LIST PROGRAM : DOUBLY LINKED LIST (TAMBAH SIMPUL DI BELAKANG)

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

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

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

POINTER. Tim Alpro Teknik Informatika

LIST BERKAIT(LINKED LIST)

A. TUJUAN PEMBELAJARAN

Pengenalan Struktur Data. Farah Zakiyah Rahmanti 2014

Penerapan BFS dan DFS dalam Garbage Collection

Variasi List Linier. Nisa ul Hafidhoh, MT

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

Modul Praktikum Algoritma dan Struktur Data

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

01. Review Array, Pointer dan Struktur

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

BAB VI LINKED LIST. Struktur data dinamis sederhana dapat dibagi menjadi empat jenis, yaitu : 1. Linked list 2. Stack 3. Queue 4.

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

QUEUE (ANTRIAN) Depan=1 Belakang=

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

Lecture Notes On Algorithms and Data Structures. Oleh Thompson Susabda Ngoen

Pengenalan Struktur Data dan Algoritma

LAPORAN PRAKTIKUM RESMI QUEUE

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

BAB IV Antrian(Queue)

STACK. Sistem penyimpanan data dengan mekanisme Last In First Out( LIFO).

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

A. TUJUAN PEMBELAJARAN

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

MAKALAH STRUKTUR DATA. DOSEN PEMBIMBING Nisa miftachurohmah, S.kom., M.Si PENYUSUN SITI JAMILATUL MU ADDIBAH ( )

LOGO STRUKTUR DATA QUEUE

Transkripsi:

LIST

PENDAHULUAN Linked List adalah sejumlah objek yang dihubungkan (linked) satu dengan yang lainnya membentuk suatu list. Objek adalah gabungan dari beberapa data (variable) yang dijadikan satu kelompok (tipe data bentukan) Untuk menghubungkan beberapa objek diperlukan setidaknya satu buah pointer

CONTIGUOUS LIST (ARRAY) Array adalah sejumlah objek yang saling bersambung antara satu dengan lainnya. Pengalokasian array bersifat statis karena jumlah elemennya tetap tidak dapat ditambah maupun dihapus sewaktu proses sedang berlangsung (running). ARRAY A 20 45 25 55

LINKED LIST 30 1 KET : 20 45 2 3 DATA 30 POINTER 55 5 25 4 30 20 45 25 55 1 2 3 4 5

LINIER SINGLY-LINKED LIST FIRST LAST 20 45 25 55 Simpul pertama dalam list akan ditunjuk oleh pointer FIRST Simpul terakhir dalam list akan ditunjuk oleh pointer LAST. Pointer NEXT dari simpul terakhir ini akan berisikan NULL yang menandakan bahwa tidak ada lagi simpul selain simpul tersebut.

Deklarasi Simpul Simpul merupakan tipe data bentukan yang terdiri dari info untuk menyimpan data/nilai dan pointer next yang dipakai untuk menunjukkan alamat dari simpul selanjutnya P Struct simpul int info; struct simpul *next; ; simpul *P, *first, *last; X P->info P->next

Inisialisasi List Inisialisasi list bertujuan untuk memberikan nilai awal pada suatu list yang masih kosong. Inisialisasi dilakukan menggunakan prosedur void awal() first = null; FIRST

Membuat Sebuah Simpul Gunakan pointer *P yang sudah dideklarasikan untuk menunjuk sebuah simpul baru. Setiap simpul dibuat satu per satu yang nanti akan dihubungkan menjadi sebuah list. jumlah simpul tidak ada batasnya, selama ruang memori masih tersedia maka simpul baru masih bisa dibuat. Jika ruang memori sudah penuh, maka pembuatan simpul dinyatakan gagal. Setiap pembuatan simpul akan dilakukan pengecekan terhadap pointer *P, jika berisi NULL maka pembuatan simpul dinyatakan gagal

Membuat Sebuah Simpul (Lanjutan) void buat_simpul(int x) P = (simpul*) malloc (sizeof(simpul)); if (P!= null) P->info = x; else cout<< Pembuatan simpul gagal ;

Pembuatan Simpul Awal Pembuatan simpul awal dilakukan setelah berhasil membuat sebuah simpul baru. Untuk membuat simpul awal, digunakan pointer *first yang sudah dideklarasikan sebelumnya. Lakukan pemeriksaan terhadap pointer *first, jika tidak berisi null berarti list sudah ada.

Pembuatan Simpul Awal (lanjutan) void simpul_awal() if(first == null) first = p; last = p; p->next = null; else last first P cout<< linked list sudah ada ; X

Insert Insert adalah proses menambah atau menghubungkan list yang sudah ada dengan sebuah simpul baru Insert kanan adalah menambahan simpul baru diakhir list sehingga simpul baru tersebut akan menjadi simpul akhir list (penggunaan pointer last) Insert kiri adalah menambahkan simpul baru diawal list sehingga simpul tersebut menjadi simpul awal list (penggunaan pointer first) Insert tengah adalah menambahkan simpul baru ditengahtengah list (penggunaan pointer tambahan)

Insert Kanan first last P 25 12 30 first last 25 12 30

Insert Kanan (Lanjutan) Syarat : list harus sudah ada, minimal 1 simpul (first tidak null) void insert_kanan() if(first!=null) else last->next = P; last = P; P->next = null; cout<< list belum ada ;

Insert Kiri first last P 25 12 30 first last 30 25 12

Insert Kiri (Lanjutan) Syarat : list harus sudah ada, minimal 1 simpul (first tidak null) void insert_kiri() if(first!=null) else P->next = first; first = P; cout<< list belum ada ;

Insert Tengah first Q last P 25 30 12 8 first last 25 30 8 12

Insert Tengah (Lanjutan) Syarat : list harus sudah ada, minimal 1 simpul (first tidak null) Deklarasikan pointer tambahan bernama pointer *Q dengan tipe simpul (karena akan menunjuk simpul) Lakukan penempatan pointer *Q pada simpul sebelum simpul baru akan diinsertkan

Insert Tengah (Lanjutan) void insert_tengah(int n) int i; Q = first; for(i=1;i<n;i++) Q = Q->next; P->next = Q->next; Q->next = P;

Delete Delete adalah proses menghapus sebuah simpul yang ada didalam list Delete kanan adalah menghapus simpul paling kiri didalam list sehingga pointer last akan menunjuk ke simpul sebelumnya. Delete kiri adalah menghapus simpul paling kiri didalam list sehingga pointer first akan menunjuk ke simpul setelahnya. Delete tengah adalah menghapus simpul yang bukan merupakan simpul awal maupun akhir

Delete Kanan Deklarasikan pointer tambahan bernama pointer *Q dengan tipe simpul (karena akan menunjuk simpul) Lakukan penempatan pointer *Q pada simpul sebelum simpul akhir.

Delete Kanan (Lanjutan) first Q last free 25 30 8 12 first last 25 30 8

Delete Kanan (Lanjutan) void delete_kanan() Q = first; while(q->next!= last) Q = Q->next; free(last); last = Q; last->next = null;

Delete Kiri Deklarasikan pointer tambahan bernama pointer *Q dengan tipe simpul (karena akan menunjuk simpul) Lakukan penempatan pointer *Q pada simpul first yang akan dihapus, sehingga pointer *first dapat dipindahkan pada simpul setelahnya.

Delete Kiri (Lanjutan) Q first free last 25 30 8 12 first last 30 8 12

Delete Kiri (Lanjutan) void delete_kiri() Q = first; first = Q->next; free(q);

Delete Tengah List minimal memiliki lebih dari 2 simpul. Deklarasikan pointer tambahan bernama pointer *Q dan pointer *R dengan tipe simpul (karena akan menunjuk simpul) Lakukan penempatan pointer *Q pada simpul sebelum simpul yang akan dihapus. Pointer *R digunakan untuk menunjuk simpul yang akan dihapus.

Delete Tengah (Lanjutan) first Q R last free 25 30 8 12 first last 25 30 12

Delete Tengah (Lanjutan) void delete_tengah(int n) int i; Q = first; for(i=1;i<n;i++) Q = Q->next; R = Q->next; Q->next = R->next; free(r);

Selesai Terus berlatih!!