0% menganggap dokumen ini bermanfaat (0 suara)
175 tayangan7 halaman

Pembahasan Linked List Dan Array

Linked list merupakan struktur data yang bersifat dinamis dimana setiap elemennya terdiri dari data dan pointer untuk menunjuk ke elemen berikutnya, berbeda dengan array yang bersifat statis dan pengalokasian memori dilakukan secara berurutan. Linked list lebih fleksibel untuk penambahan dan penghapusan elemen dibandingkan array.

Diunggah oleh

paskah
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai DOCX, PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
175 tayangan7 halaman

Pembahasan Linked List Dan Array

Linked list merupakan struktur data yang bersifat dinamis dimana setiap elemennya terdiri dari data dan pointer untuk menunjuk ke elemen berikutnya, berbeda dengan array yang bersifat statis dan pengalokasian memori dilakukan secara berurutan. Linked list lebih fleksibel untuk penambahan dan penghapusan elemen dibandingkan array.

Diunggah oleh

paskah
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai DOCX, PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 7

Pembahasan

Linked List
Merupakan suatu struktur data pengembangan dari konsep ADT (Abstrak Data
Type) yang bersifat dinamis. Linked List dapat dimanfaatkan secara effektif
sesuai dengan keperluan. Linked List juga dapat benar benar dihapus /
dibersihkan dari memory.Linked List sebenarnya merupakan suatu typedata
tersendiri. Di bahasa Java, Linked List bisa berupa suatu Class ataupun Record.
Ciri ciri utama dari Linked List adalah, dia mempunyai minimal dua elemen
utama. Elemen elemen itu adalah data dan pointer untuk menunjukkan ke list
berikutnya.Array
Array berbeda dengan Linked List. Array merupakan suatu struktur data yang
bersifat statis. Array harus dialokasikan terlebih dahulu di dalam memory sebelum
kita memakainya.
Perbedaan mendetail antara Array dan Linked List adalah sebagai berikut :
Linked List
- Pengaksesan Dinamis- Pengalokasian
random pada alamat memory- Dapat
dibebaskan dari memory

Array
- Pengaksesan Statis- Pengalokasian
berurut pada alamat memory- Tidak dapat
dibebaskan dari memory

- Tidak menggunakan konsep indexing

- Menggunakan konsep indexing

- Pengaksesan untuk searching /sorting


lambat

- Pengaksesan untuk searching atau


sorting cepat

Linked List

Kita akan lebih efektif jika kita menggunakan konsep Linked List jika kita memerlukan suatu
pengaksesan pada struktur data yang lebih dinamis. Konsep yang lebih cocok menggunakan
linked list adalah : Stack, Queue, Tree, dan Graph.
Hal ini dikarenakan oleh sifat dinamis dari Linked List. Kita tidak perlu untuk mengetahui
berapa block memory yang akan kita akses. Jadi, jika kita butuh block baru pada memory,
tinggal menyisipkan pada kanan atau kiri list yang telah ada.
-

Array

Kita dapat memanfaatkan secara efektif konsep array dengan mengenal metode indexing pada
array. Array merupakan struktur data statis yang mempunyai index penomoran alamat variable
array yang dimaksud. Jadi, secara umum, kita dapat mengaksesnya dengan lebih cepat.
Konsep konsep yang dapat memanfaatkan konsep indexing untuk mempercepat
pengaksesannya adalah Sorting dan Searching.
Hal ini dikarenakan oleh penomoran alamat variable pada memory yang telah diketahui terlebih
dahulu. Jadi, semisal kita menginginkan mencari variable dengan indeks tengah, kita bisa
langsung menujuk ke indeksnya.

Tambahan
-

Single Linked List :

Setiap node pada linked list mempunyai field yang berisi pointer ke node berikutnya dan juga
memiliki field yang berisi data.
Akhir linked list ditandai dengan node terakhir akan menunjuk ke null yang akan digunakan
sebagai kondisi berhenti saat pembacaan linked list.

Double Linked List :

Linked list dengan menggunakan pointer, dimana setiap node memiliki 3 field, yaitu: 1 field
pointer yang menunjuk ke pointer berikutnya, 1 field pointer yang menunjuk ke pointer
sebelumnya dan field yang berisi data dari node tersebut. Pointer next dan prev-nya menunjuk ke
null.
-

Single Circular Linked List :

Single Linked List yang pointer next-nya menunjuk ke dirinya sendiri, jika terdiri dari beberapa
node maka pointer terakhirnya akan menunjuk ke pointer terdepannya.
-

Double Circular Linked List :

Double Linked List yang pointer next dan prev-nya menunjuk ke dirinya sendiri secara circular.
6.

a. Node find(int key)

Suatu method java untuk mencari sebuah nilai pada linkedlist. Algoritma dari Operasi dasar
adalah sebagai berikut :

Node find(int key){ if(now.data==key)return


now;else{ now=now.next;return (find(key));}}
b. Void addFirst(int data)
Method untuk membuat Node untuk pertama kali. Algoritma dari Operasi dasar adalah sebagai
berikut :
void addFirst(Node input){ if (isEmpty()){head = input;tail = input;}else{
input.next = head;
head = input;
}
}

c.

Void addFirst(int data)

Method untuk menambahkan list pada awal linked list. Algoritma dari Operasi dasar adalah
sebagai berikut :
void addLast(Node input){

if (isEmpty()){head = input;tail = input;}else{

tail.next = input;
tail = input;
}
}

d.

Void romoveFirst()

Method untuk menghapus list pertama. Algoritma dari Operasi dasar adalah sebagai berikut :
void removeFirst(){ Node temp = head;if (!isEmpty()){ if (head == tail)head = tail
= null;else{temp = temp.next;
head = temp;

temp = null;
}
}
else
System.out.println(Data is empty!);
}

e.

Void romoveLast()

Method untuk menghapus list terakhir. Algoritma dari Operasi dasar adalah sebagai berikut :
void removeLast(){Node temp = head;if (!isEmpty()){if (tail == head){head = tail =
null;}else {while (temp.next != tail){
temp = temp.next;
}
temp.next = null;
tail = temp;
temp = null;
}
}
else System.out.println(Data is empty!);
}

e.

Void romove(int key)

Method untuk menghapus list yang bersesuaian dengan kata kunci. Algoritma dari Operasi dasar
adalah sebagai berikut :

void remove(int key){ Node temp = head;if (!isEmpty()){while (temp != null){if


(temp.next.data == key){temp.next = temp.next.next;break;}
else if ((temp.data == key)&&(temp == head)){
this.removeFirst();
break;}
temp = temp.next;}
}
else
System.out.println(Data is empty!);
}

f.

void insertAfter(int key,int data)

Method untuk menyisipkan list yang serada setelah list yang dimaksud oleh parameter kata
kunci. Algoritma dari Operasi dasar adalah sebagai berikut :
void insertAfter(int key,Node input){ Node temp = head;do{if (temp.data ==
key){input.next = temp.next;temp.next = input;System.out.println(Insert
data is succeed.);break;
}
temp = temp.next;
}while (temp!=null);
}

g.

void insertBefore(int key,int data)

Method untuk menyisipkan list yang serada setelah list yang dimaksud oleh parameter kata
kunci. Algoritma dari Operasi dasar adalah sebagai berikut :
void insertBefore(int key,Node input){ Node temp = head;while (temp !=
null){ if ((temp.data == key)&&(temp == head))

{ this.addFirst(input);System.out.println(Insert data is succeed.);break;}


else if (temp.next.data == key)
{ input.next = temp.next;
temp.next = input;
System.out.println(Insert data is succeed.);
break;
}
temp = temp.next;
}
}

Anda mungkin juga menyukai