SINGLE LINKED LIST (SLL)

Slides:



Advertisements
Presentasi serupa
Double Linked List.
Advertisements

Single linked list.
STRUKTUR DATA (7) single linked list circular
STRUKTUR DATA (8.1) double linked list non circular
LINKED LIST.
LINKED LIST.
Pertemuan 2 STRUKTUR DATA LINKED LIST
Mata Kuliah : Struktur Data Pertemuan : V
LINKED LIST Single Linked List.
LINKED LIST.
Linked List Pembuatan Simpul Awal.
LINK LIST Latifah Rifani.
Algoritma dan Struktur Data Daniel Riano Kaparang.
Struktur Data Departemen Ilmu Komputer FMIPA-IPB 2010
SENARAI BERANTAI TUNGGAL
Queue.
Quiz struktur data Genap 2013.
STACK (Tumpukan).
STRUKTUR DATA (6) single linked list non circular
Single Linked List Yuliana Setiowati, S.Kom.
BY YOHANA N Sumber Kepustakaan : yohananugraheni.files.wordpress.com/.../linked- lis... 1 LINKED LIST.
Algoritma & Struktur Data Linked List Evangs Mailoa.
LINKED LIST by Yohana N.
Struktur Data List Linear : Linked List (Double Linkedlist)
Pertemuan ketujuh Struktur data st3telkom.ac.id
Struktur Data List Linear : Linked List (Single Linkedlist)
LINKED LIST.
Struktur Data (Data Structure) – IS 2313
Apakah Stack itu ?. Apakah Stack itu ? Pengertian STACK Secara sederhana diartikan dengan : sebagai tumpukan dari benda sekumpulan data yang seolah-olah.
Algoritma dan Struktur Data
1 Pertemuan 3 Data Komposit Linked list Matakuliah: T0026/Struktur Data Tahun: 2005 Versi: 1/1.
Algoritma dan Struktur Data
LINK LIST “Suatu cara menyimpan data dengan terstruktur sehingga programmer dapat secara otomatis menciptakan suatu tempat baru didalam memori komputer.
Pertemuan 9 Stack dengan Linked-list
SENARAI BERANTAI TUNGGAL
Double linked list non circular
Struktur Data Linked List
STRUKTUR DATA (2) Single Linked List
STRUKTUR DATA Linked List Oleh : Yuli Praptomo PHS, S.Kom.
STRUKTUR DATA Linked List
LINKED LIST by Yohana N.
Single Linked List.
STRUKTUR DATA QUIZ.
REPRESENTASI FISIK LIST LINEAR
Algoritma dan Struktur Data
Struktur Organisasi Data 2
STACK (Tumpukan).
Linked List Oleh: Tim Struktur Data IF - UNIKOM.
Struktur Data – Pertemuan 4 List Linier
Linked List Oleh: Tim Struktur Data IF - UNIKOM.
Doubel Linked List.
STACK (Tumpukan).
Stack.
Linked List Oleh: Tim Struktur Data IF - UNIKOM.
Algoritme dan Stuktur Data
STRUKTUR DATA (7) single linked list circular
Linked List 6.3 & 7.3 NESTED LOOP.
Linked List Oleh: Tim Struktur Data IF - UNIKOM.
Doubel Linked List.
Single Linked List Circular (SLLC)
QUEUE (ANTRIAN) Queue atau antrian didefinisikan sebagai kumpulan dari obyek-obyek yang homogen dengan operasi penambahan elemen (Enqueue) dan pengambilan.
STACK (TUMPUKAN) Stack atau tumpukan didefinisikan sebagai kumpulan dari obyek-obyek yang homogen dengan operasi penambahan dan pengambilan elemen melalui.
LINKED LIST by Yohana N Sumber Kepustakaan : yohananugraheni.files.wordpress.com/.../linked-lis...
STRUKTUR DATA (8.2) double linked list circular
Double Linked List.
Defri Kurniawan VARIASI LIST Defri Kurniawan
Variable Static & Linked List
Algoritma dan Struktur Data
Defri Kurniawan STACK DENGAN LIST Defri Kurniawan
Defri Kurniawan DOUBLE LINKED LIST Defri Kurniawan
Transcript presentasi:

SINGLE LINKED LIST (SLL) STRUKTUR DATA Teknik Informatika S1

MATERI :: TYPE DATA DINAMIS – SINGLE LINKED LIST Array vs Linked List Alokasi Memori Single Linked List Non Circular (SLLNC)

ARRAY VS LINKED LIST

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.

Array VS Linked List

Variabel Statis VS Dinamis (1) Tidak bisa dihapus dan diubah ukurannya Variabel statis dapat diakses hanya dengan menggunakan namanya (bila ingin menunjuk pada suatu posisi dalam array dapat dilakukan dengan menggunakan indeks) Variabel Dinamis: Variabel yang dibuat (dan mungkin juga dihapus) selama eksekusi progam. Variabel dinamis belum nyata ada pada saat program dikompilasi Satu-satunya cara untuk mengakses variabel dinamis adalah dengan menggunakan pointer Memiliki suatu tipe tertentu seperti halnya variabel biasa.

Variabel Statis VS Dinamis (2)

ALOKASI MEMORI

Alokasi Memori (1) Variabel statis menempati bagian memori yang disebut data segment, sehingga tidak bisa dihapus dari memori begitu program dieksekusi atau tidak bisa diubah ukuran elemennya jika variabel tersebut bertipe array. Variabel statis menempati bagian memori yang disebut data segment yang dibatasi ukurannya oleh compiler(maksimum 64 Kbyte).

Alokasi Memori (2) Variabel dinamis di dalam bagian memori yang disebut dengan heap. Memori heap adalah memori yang masih tersedia setelah program dimuat kedalam memori dan alokasi memori untuk pendeklarasian variabel sudah dilakukan

Alokasi Memori (3) Program yang kemungkinan besar akan membutuhkan jenis, struktur dan ukuran data yang lebih beragam, harus menggunakan variabel dinamis. Penggunaan variabel dinamis mutlak diperlukan untuk membuat program yang menggunakan struktur data dinamis (misalnya linked-list).

Alokasi Memori Secara Statis int x; x 100 113

Alokasi Memori Secara Statis int x; x=10; x 100 113

Alokasi Memori Secara Statis int x; x=10; x 10 100 113

Alokasi Memori Secara Statis int x; x=10; int a[3]; x 10 100 113

Alokasi Memori Secara Statis int x; x=10; int a[3]; 101 a x 10 100 113

Alokasi Memori Secara Statis int x; x=10; int a[3]; a[2]=8; 101 a x 10 100 113

Alokasi Memori Secara Statis int x; x=10; int a[3]; a[2]=8; 101+(2x4) = 109 101 a x 10 100 113

Alokasi Memori Secara Statis int x; x=10; int a[3]; a[2]=8; 101+(2x4) = 109 101 a x 10 100 109 113

Alokasi Memori Secara Statis int x; x=10; int a[3]; a[2]=8; 101+(2x4) = 109 101 a x 8 10 100 109 113

Alokasi Memori Secara Statis int x; x=10; int a[3]; a[2]=8; 101 a x 8 10 100 109 113

Alokasi Memori Secara Statis int x; x=10; x 10 100 113

Alokasi Memori Secara Statis int x; x=10; int a[5]; x 10 100 113

Alokasi Memori Secara Statis int x; x=10; int a[5]; ? ? x 10 100 113

Alokasi Memori Secara Statis int x; x=10; int a[5]; x 117 a 10 100 113

Alokasi Memori Secara Statis int x; x=10; int a[5]; x 117 a 10 100 113

Alokasi Memori Secara Dinamis(1) Fungsi Malloc Malloc adalah fungsi untuk mengalokasikan memory Contoh dari malloc() : int *x; x = (int*) malloc (3 * sizeof(int)); if(x==NULL) { printf(“Error di malloc\n”); exit(0); } else { printf(“Lakukan operasi memori dinamis”); }

Alokasi Memori Secara Dinamis(2) Alokasi memori dibuat tersendiri dengan menggunakan fungsi Alokasi bertipe address untuk parameter data yang akan dimasukkan address Alokasi(infotype X) { P = (address)malloc(sizeof(ElmtList)); if(P!=Nil) { Info(P) = X; Next(P) = Nil; } return (P);

Alokasi Memori Secara Dinamis(2) Penggunaan fungsi free() digunakan untuk mendealokasikan penggunaan data pada memori void Dealokasi(address *P) { free(*P); }

Single linked list non circular

Bentuk Node Single Linked List non Circular(1) 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

Bentuk Node Single Linked List non Circular(2) Pengertian: 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.

Bentuk Node Single Linked List non Circular(3) 8 9 10 100 102

Bentuk Node Single Linked List non Circular(4) 8 9 10 8 9 10 100 103 114 130

Bentuk Node Single Linked List non Circular(5) 8 9 10 Linked list adalah struktur data yang terdiri dari rangkaian node - node 8 114 9 130 10 100 103 114 130

Pembentukan Single Linked List non Circular(1) struct node { int data; node* next; }; Node Node Node 8 114 9 130 10 103 114 130

Pembentukan Single Linked List non Circular(2) Contoh lain Deklarasi Node typedef struct TNode{ int data; TNode *next; }; 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 head yang bertipe pointer dari TNode yang berguna sebagai kepala linked list.

SLLNC MENGGUNAKAN HEAD (1) 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;

SLLNC MENGGUNAKAN HEAD (2) 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;

SLLNC MENGGUNAKAN FIRST Kondisi List Kosong tergantung pada penggunaan variabel yang dideklarasikan (head/first). Contoh ilustrasi lain:

SLLNC MENGGUNAKAN FIRST & LAST Variasi lain dari Single Linked List dengan Penunjuk Head, adalah penggunaan penunjuk Last. Untuk menunjuk node paling akhir

Operasi-operasi pada List Linier Operasi-operasi Dasar/Primitif yang bisa dilakukan: Penambahan Depan (insert first) Penambahan Belakang (insert last) Penambahan Setelah (insert after) Penghapusan Depan (delete first) Penghapusan Belakang (delete last) Penghapusan Setelah (delete after) Pencarian Data dan Alamat Pencarian Nilai Max dan Min Pengurutan (Sorting ASC, DESC) Invers (Pembalikan)

Tugas Kelompok Next Week Presentasi operasi-operasi dasar Single Linked List dengan penunjuk First/Head Kelp 1: Penambahan & Penghapusan Depan Kelp 2: Penambahan & Penghapusan Belakang Kelp 3: Penambahan & Penghapusan Setelah