ADT Dinamis : Singly Linked List & Soubly Linked List

Download Report

Transcript ADT Dinamis : Singly Linked List & Soubly Linked List

ADT Dinamis :
Singly Linked List & Soubly Linked List
Konsep Dasar List (Senarai)
Konsep Dasar List (Senarai)
° Dari konsepnya, list dapat didefinisikan sebagai urutan
dinamis (dynamic ordering) dari :
L = (l1, l2, ….., ln)
Di mana l1 adalah elemen yang ke-i pada List.
Penggunaan kata dinamis memberi tekanan bahwa elemen-elemen
dalam List nilainya dan jumlahnya dapat berubah-ubah.
3
Konsep Dasar List (Senarai)
L = (l1, l2, ….., ln)
• Elemen yang pertama pada list disebut head List
• Elemen yang terakhir dirujuk sebagai ekor (tail) List
• Jumlah elemen ditulis sebagai | L | yang juga dirujuk sebagai
panjang list
• Maka list kosong direpresentasikan sebagai (), memiliki panjang
().
• Sehingga list di atas memiliki |L| = n
• Jika semua elemen bertipa sama  homogen, berbeda 
heterogen
4
Konsep Dasar List (Senarai)
L = ((3), (4, 2, 5), (12, 7, (8, 4), 1), 0)
• ADT List di atas memiliki 4 elemen
• Elemen 1 : bilangan bulat bernilai 3
• Elemen 2 : list dengan elemen bilangan bulat (4,2,5)
• Elemen 3 : bilangan bulat 12,7, list (8,4), dan 0
• Elemen 4 : 0
5
Struktur Alokasi Memori Komputer RAM
Free Ptr
Memori Tersisa
HeapPtr
Heap yang bergerak naik ke
memori
HeapOrg
Memori yang ditempati data
(DataSegment)
Dseg
Memori yang ditempati program
(CodeSegment)
Memori untuk program residen
CSeg
Sistem Operasi
• Heap : bagian memori
yang belum dialokasikan
atau belum digunakan oleh
sistem operasi
• Program residen : berisi
program-program residen
(program yang menetap
dalam memori misal
antivirus, driver, mouse,
Umumnya, List akan disimpan dalam bagian
memori sebagai Heap
dsb)
6
Terapan List
° Ada berbagai terapan List, di antaranya :
• Singly-Linked List
-
List berkait tunggal
• Doubly-Linked List
-
List berkait ganda
° Beberapa fungsi dalam terapan List :
• Insert() / add()
• Remove()
7
Singly-Linked List
8
Permasalahan penerapan linked-list pada Java
° Seperti telah diketahui, ADT berbasis node menyimpan
data dalam bentuk simpul (node) pada suatu List
° Kita dapat membayangkan :
• Node adalah elemen yang memiliki satu atau lebih
pointer
• Pointer digunakan untuk menunjukkan ke elemen
lainnya
° Masalah : Java tidak mengenal terminologi pointer
9
Solusi
° Karena tidak mengenal pointer  perlakukan objek
sebagai pointer
° Sehingga di Java, struktur node memiliki elemen data
yang merujuk ke node lain
° 2 macam node :
• Parent node
• Child node
10
Class Java untuk Struktur Data Singly-Linked List
° Untuk implementasi Singly-Linked List, setidaknya kita
perlu 2 struktur class :
• Class untuk satu child-node
-
Dlm matkul ini diberi nama : onenodeoneptr
• Class untuk menghubungkan tiap child node
-
Dlm matkul ini diberi nama : linkedonenodeondeptr
11
Metoda pada class onenodeoneptr
° Berisi metode-metode get dan set terhadap nilai-nilai
pada node
° Nilai yang ada pada node yaitu :
• Data
-
Metoda untuk set : setDatanode()
Metoda untuk get : getDatanode()
• 1 Pointer ke node lain
-
Metoda untuk set : setPointerkenodeberikut()
Metoda untuk get : getPointerkenodeberikut()
12
Variabel pada onenodeoneptr
13
Konstruktor onenodeoneptr
14
Metoda set pada onenodeoneptr
15
Metoda get pada onenodeoneptr
16
Mengubah nilai data ke bentuk String pada onenodeoneptr
17
Metoda pada class linkedonenodeoneptr
° Mengecek node kosong ato tidak  apaKosong()
° Menentukan banyaknya node  banyaknyaNode()
° Menambah node baru di awal  tambahdiawal()
° Menghapus node di awal  hapusdiawal()
° Menambah node di akhir  tambahdiakhir()
° Menghapus node di akhir  hapusdiakhir()
° Ambil nilai di node  ambilNilai()
18
Variable pada linkedonenodeoneptr
19
Konstruktor pada linkedonenodeoneptr
20
apaKosong() & banyaknyaNode()
21
tambahdiawal()
22
hapusdiawal()
23
tambahdiakhir()
24
hapusdiakhir()
25
ambilNilai()
26
Pengujian linkedonenodeoneptr (1)
27
Pengujian linkedonenodeoneptr (1)
28
Doubly-Linked List
MINGGU DEPAN
29