Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

Struktur Data Departemen Ilmu Komputer FMIPA-IPB 2010

Presentasi serupa


Presentasi berjudul: "Struktur Data Departemen Ilmu Komputer FMIPA-IPB 2010"— Transcript presentasi:

1 Struktur Data Departemen Ilmu Komputer FMIPA-IPB 2010
Pertemuan 2 LINKED LIST Struktur Data Departemen Ilmu Komputer FMIPA-IPB 2010

2 untaian atau rangkaian berantai dari node-node yang disusun dengan bantuan pointer.
Masing-masing node merupakan suatu record yang berisi dua bagian, yaitu bagian informasi dan bagian pointer (yang berfungsi untuk menunjuk node berikutnya) Antara node yang satu dengan node berikutnya pada linked list tidak harus disimpan secara terurut dalam memory Linked List

3 Contoh linked list dengan 3 buah node
Linked List (ii)

4 Linked List (iii) Pada C Deklarasi sebuah node dapat dilakukan dengan
struct node{ int data; struct node *selanjutnya; } typedef struct node node; Linked List (iii)

5 Operasi Bentuk operasi pada linked list meliputi
Penambahan data Penghapusan data Pengaksesan data (menampilkan 1 atau seluruh linked list, termasuk pencarian) Update data Seluruh operasi ini menjadi perhatian terkait dengan efisiensi dari aspek waktu eksekusi Operasi

6 Struktur Data Departemen Ilmu Komputer FMIPA-IPB 2009
Penambahan Data Struktur Data Departemen Ilmu Komputer FMIPA-IPB 2009

7 Penambahan data (inserting)
Operasi penambahan data baru pada linked list dapat memiliki 3 mode Di awal list Di antara data yang lain Di akhir list Penambahan data (inserting)

8 Penambahan Data di awal
Node yang akan di masukan harus di alokasikan terlebih dahulu pada memory baru=malloc(sizeof node); Penambahan Data di awal

9 Penambahan Data di awal
Ketika sebuah data (node) baru akan dimasukan pada linked list kondisi linked list bisa kosong ataupun sudah ada isinya Node pertama pada sebuah linked list pada umumnya ditunjuk oleh suatu pointer bantuan (head/awal) Kondisi kosong dapat dicek dengan kondisi awal=NULL Penambahan Data di awal

10 Penambahan Data di awal (ii)
Pada kondisi kosong penambahan dapat dilakukan dengan cara menjadikan node baru tersebut sebagai node yang ditunjuk oleh awal. awal=baru; Pada saat sudah ada isinya penambahan memiliki beberapa tahapan: (1) kondisikan node setelah baru adalah node yang ditunjuk node awal diikuti dengan menjadikan (2) node awal menunjuk ke node baru Penambahan Data di awal (ii)

11 Penambahan Data di awal (iii)
Ilustrasi penambahan di awal Penambahan Data di awal (iii)

12 Penambahan Data di awal (iv)
Sintax dalam C (tentunya dengan inisalisasi terlebih dahulu) node* insertAwal(int dataBaru, node *awal){ node baru; baru=malloc(sizeof(node)); baru->data=dataBaru; if (awal==NULL){ awal=baru; awal->selanjutnya=NULL; } else { baru->selanjutnya=awal; return awal; Penambahan Data di awal (iv)

13 Penambahan Data di Antara
Ilustrasi Penambahan di Antara Penambahan Data di Antara

14 Penambahan Data di Antara (ii)
Tahapan Prosedur misalkan kita ingin menyisipkan Node baru (*NB) antara node ke 4 (*N4) dan ke 5 (*N5) NB->selanjutnya = N5 N4->selanjutnya=NB Bagaimana jika pointer bantuan hanya 1 N4 yang memegang node ke 4? NB->selanjutnya=N4->selanjutnya N4->selanjutnya=NB; Penambahan Data di Antara (ii)

15 Penambahan Data di Akhir
Ilustrasi Penambahan di Akhir Selain di bagian awal pada bagian akhir list pada umumnya ditunjuk suatu pointer (tail/akhir) Penambahan Data di Akhir

16 Penambahan Data di Akhir
Prosedur Pegang node terakhir katakan *Ak Langsung saja Ak->selanjutnya = NB Pastikan NB->selanjutnya=NULL Penambahan Data di Akhir

17 Struktur Data Departemen Ilmu Komputer FMIPA-IPB 2009
Penghapusan Data Struktur Data Departemen Ilmu Komputer FMIPA-IPB 2009

18 Penghapusan Data Operasi penghapusan memiliki 3 mode Di awal list
Di akhir list Data tertentu pada list Penghapusan Data

19 Penghapusan Data di Awal
Ilustrasi (sintax -- free(hapus);) Penghapusan Data di Awal

20 Penghapusan Data tertentu
Ilustrasi (penghapusan node dengan data=4) Penghapusan Data tertentu

21 Penghapusan Data tertentu(ii)
Ilustrasi (lanjutan) Penghapusan Data tertentu(ii)

22 Penghapusan Data di Akhir
Ilustrasi (sintax -- free(hapus);) Ada yang mau maju??? Penghapusan Data di Akhir

23 Pengaksesan & Update Data
Struktur Data Departemen Ilmu Komputer FMIPA-IPB 2009

24 Tidak semudah array yang dapat menggunakan index untuk menuju suatu data tertentu
Suatu node pada linked list dengan pointer tunggal hanya memiliki info lokasi data (node) selanjutnya Penelusuran secara sekuensial (linier) dari awal sampai dengan posisi ataupun node (tujuan) dengan karakteristik data tertentu Kasus terbaik 1 (di awal), terburuk n (di akhir), kasus rata2 (n+1)n/2n Pengaksesan Data

25 Pada dasarnya update data akan diawali penelusuran data yang ingin diubah
Ketika posisi data telah ditemukan secara langsung data terkait pada node dapat langsung diubah dengan data yang baru Update Data

26 Wassalamu’alaikum … Terima Kasih
Departemen Ilmu Komputer FMIPA-IPB 2010


Download ppt "Struktur Data Departemen Ilmu Komputer FMIPA-IPB 2010"

Presentasi serupa


Iklan oleh Google