CIRCULAR LINKED LIST
Oleh :
Kelompok 2
• Yusuf Daozi (16832017)
• Hanhan Hanafi (1683)
• Desi Kania Vella (16832019)
• Doni Romdoni (1683)
• Sansan Gunawan (1683)
CIRCULAR LINKED LIST
Circular Linked List adalah bentuk lain dari linked list
yang memberikan fleksibilitas dalam melewatkan elemen.
Circular Linked List bisa berupa single linked list atau double
linked list. Pada single linked list dan double linked list , node
terakhirnya (tail) menunjuk ke node awal (head), dan node
awalnya menunjuk ke node akhir atau dapat disebut linked list
yang dibuat seakan-akan merupakan sebuah lingkaran dengan
titik awal dan titik akhir saling bersebelahan. Circular Linked List
tidak memiliki nilai nil/NULL untuk medan sambungannya.
CIRCULAR LINKED LIST
Circular single linked list Circular double linked list
Circular single linked list
Operasi-operasi yang ada pada Circular Single Linked
List hampir sama pada Single Linked List, bahwa dibutuhkan
sebuah kait untuk menghubungkan node-node data yang
ada, dimana pada node terakhir atau tail yang semula
menunjukkan NULL diganti dengan menunjuk ke kepala
atau head.
Operasi-Operasi Circular Single Linked List :
1. Penciptaan, Penciptaan adalah memberikan nilai nil terhadap variabel pointer awal dan
variabel pointer akhir
2. Penyisipan
a. Penyisipan di depan/awal, Operasi ini berguna untuk menambahkan satu node
baru diposisi pertama. Langkah pertama untuk penambahan data adalah
pembuatan node baru dan mengisinya dengan data pada field infonya. Pointer yang
menunjuk ke node tersebut dipanggil dengan nama baru.
b. Penyisipan di Tengah, Proses penyisipan ditengah sama seperti pada single linked
list, karena tidak mengubah struktur circularnya.
c. Penyisipan di Akhir, berguna untuk menambahkan node baru di posisi akhir
langkahnya sama seperti penyisipan di awal hanya bedanya disisipkan di akhir.
3. Penghapusan, Pada dasarnya proses penghapusan di circular sama seperti pada linear linked
list. Ada 3 kondisi yang perlu diperhatikan yaitu kondisi linked list masih kosong, kondisi linked
list hanya memiliki satu data, dan kondisi linked list yang memiliki lebih dari satu data (satu
elemen)
a. Penghapusan di depan/awal, Penghapusan data diawal adalah proses menghapus node
pertama (yang di tunjuk pointer awal akan berpindah ke node berikutnya, dan medan
sambungan kanan(next) dari node yang ditunjuk oleh pointer akhir akan menunjuk node
pertama yang baru (yang ditunjuk oleh pointer awal).
b. Penghapusan di Tengah, Proses penghapusan ditengah sama seperti single linked list,
karena tidak mengubah struktur dari list, tapi kalau node yang akan di hapus ketemu di
akhir, maka akan memanggil modul (prosedur) hapus di akhir/belakang.
c. Penghapusan di Akhir, Penghapusan data di akhir adalah proses menghapus node
terakhir (yang di tunjuk oleh variabel pointer akhir), sehingga variabel pointer akhir akan
berpindah ke node sebelumnya, dan medan sambungan kanan (next) dari node yang di
tunjuk oleh pointer akhir yang baru akan menunjuk ke node prertama(yang di tunjuk
pointer awal)
Circular double linked list
Operasi-operasi yang ada pada circular double linked
list hampir sama seperti pada double linked list yang telah di
bahas sebelumnya.
Operasi-Operasi Circular Double Linked List :
1. Penciptaan, Penciptaan adalah memberikan nilai nil terhadap variabel pointer awal dan
variabel pointer akhir
2. Penyisipan
a. Penyisipan di depan/awal, Operasi ini berguna untuk menambahkan satu node
baru diposisi pertama. Langkah pertama untuk penambahan data adalah
pembuatan node baru dan mengisinya dengan data pada field infonya. Pointer yang
menunjuk ke node tersebut dipanggil dengan nama baru.
b. Penyisipan di Tengah, Proses penyisipan ditengah sama seperti pada double
linked list, karena tidak mengubah struktur circularnya.
c. Penyisipan di Akhir, operasi ini berguna untuk menambahkan elemen baru di
posisi akhir. Langkah pertama untuk penambahan data adalah pembuatan elemen
baru dan pengisisan nilai infonya. Pointer yang menunjuk ke data tersebut dipanggil
dengan nama baru.
3. Penghapusan
a. Penghapusan di depan/awal, operasi ini berguna untuk menghapus data pada posisi
pertama.
b. Penghapusan di Tengah, proses penghapusan di tengah sama dengan single linked list,
Karena tidak mengubah struktur dari list, tapi kalau simpul yang akan di hapus ketemu di
akhir, maka akan memanggil modul (prosedur) hapus di akhir/belakang.
c. Penghapusan di Akhir, Penghapusan data di akhir adalah proses menghapus node
terakhir (yang di tunjuk oleh variable pointer akhir), sehingga variabel pointer akhir akan
berpindah ke node sebelumnya, dan medan sambungan kanan (next) dari node yang di
tunjuk oleh pointer akhir yang baru akan menunjuk ke simpul pertama (yang di tunjuk
oleh pointer awal), dan medan sambungan kiri(prev) dari simpul yang di tunjuk oleh
pointer awal menunjuk ke simpul terkahir (yang ditunjuk oleh pinter akhir).
4. Penelusuran/traversal, Prosesnya secara umum sama seperti penelusuran pada
single linked list atau double linked list.
5. Pencarian/searching, Prosesnya secara umum sama seperti penelusuran pada
single linked list atau double linked list.
6. Pengurutan/sorting, Prosesnya secara umum sama seperti penelusuran pada
single linked list atau double linked list.
7. Penghancuran/destroy, Proses penghancuran bisa dengan cara memanggil
modul/subrutin penghapusan di awal atau penghapusan di akhir secara terus
menerus sampai list kosong,

Circular linked list

  • 1.
    CIRCULAR LINKED LIST Oleh: Kelompok 2 • Yusuf Daozi (16832017) • Hanhan Hanafi (1683) • Desi Kania Vella (16832019) • Doni Romdoni (1683) • Sansan Gunawan (1683)
  • 2.
    CIRCULAR LINKED LIST CircularLinked List adalah bentuk lain dari linked list yang memberikan fleksibilitas dalam melewatkan elemen. Circular Linked List bisa berupa single linked list atau double linked list. Pada single linked list dan double linked list , node terakhirnya (tail) menunjuk ke node awal (head), dan node awalnya menunjuk ke node akhir atau dapat disebut linked list yang dibuat seakan-akan merupakan sebuah lingkaran dengan titik awal dan titik akhir saling bersebelahan. Circular Linked List tidak memiliki nilai nil/NULL untuk medan sambungannya.
  • 3.
    CIRCULAR LINKED LIST Circularsingle linked list Circular double linked list
  • 4.
    Circular single linkedlist Operasi-operasi yang ada pada Circular Single Linked List hampir sama pada Single Linked List, bahwa dibutuhkan sebuah kait untuk menghubungkan node-node data yang ada, dimana pada node terakhir atau tail yang semula menunjukkan NULL diganti dengan menunjuk ke kepala atau head.
  • 5.
    Operasi-Operasi Circular SingleLinked List : 1. Penciptaan, Penciptaan adalah memberikan nilai nil terhadap variabel pointer awal dan variabel pointer akhir 2. Penyisipan a. Penyisipan di depan/awal, Operasi ini berguna untuk menambahkan satu node baru diposisi pertama. Langkah pertama untuk penambahan data adalah pembuatan node baru dan mengisinya dengan data pada field infonya. Pointer yang menunjuk ke node tersebut dipanggil dengan nama baru. b. Penyisipan di Tengah, Proses penyisipan ditengah sama seperti pada single linked list, karena tidak mengubah struktur circularnya. c. Penyisipan di Akhir, berguna untuk menambahkan node baru di posisi akhir langkahnya sama seperti penyisipan di awal hanya bedanya disisipkan di akhir.
  • 6.
    3. Penghapusan, Padadasarnya proses penghapusan di circular sama seperti pada linear linked list. Ada 3 kondisi yang perlu diperhatikan yaitu kondisi linked list masih kosong, kondisi linked list hanya memiliki satu data, dan kondisi linked list yang memiliki lebih dari satu data (satu elemen) a. Penghapusan di depan/awal, Penghapusan data diawal adalah proses menghapus node pertama (yang di tunjuk pointer awal akan berpindah ke node berikutnya, dan medan sambungan kanan(next) dari node yang ditunjuk oleh pointer akhir akan menunjuk node pertama yang baru (yang ditunjuk oleh pointer awal). b. Penghapusan di Tengah, Proses penghapusan ditengah sama seperti single linked list, karena tidak mengubah struktur dari list, tapi kalau node yang akan di hapus ketemu di akhir, maka akan memanggil modul (prosedur) hapus di akhir/belakang. c. Penghapusan di Akhir, Penghapusan data di akhir adalah proses menghapus node terakhir (yang di tunjuk oleh variabel pointer akhir), sehingga variabel pointer akhir akan berpindah ke node sebelumnya, dan medan sambungan kanan (next) dari node yang di tunjuk oleh pointer akhir yang baru akan menunjuk ke node prertama(yang di tunjuk pointer awal)
  • 7.
    Circular double linkedlist Operasi-operasi yang ada pada circular double linked list hampir sama seperti pada double linked list yang telah di bahas sebelumnya.
  • 8.
    Operasi-Operasi Circular DoubleLinked List : 1. Penciptaan, Penciptaan adalah memberikan nilai nil terhadap variabel pointer awal dan variabel pointer akhir 2. Penyisipan a. Penyisipan di depan/awal, Operasi ini berguna untuk menambahkan satu node baru diposisi pertama. Langkah pertama untuk penambahan data adalah pembuatan node baru dan mengisinya dengan data pada field infonya. Pointer yang menunjuk ke node tersebut dipanggil dengan nama baru. b. Penyisipan di Tengah, Proses penyisipan ditengah sama seperti pada double linked list, karena tidak mengubah struktur circularnya. c. Penyisipan di Akhir, operasi ini berguna untuk menambahkan elemen baru di posisi akhir. Langkah pertama untuk penambahan data adalah pembuatan elemen baru dan pengisisan nilai infonya. Pointer yang menunjuk ke data tersebut dipanggil dengan nama baru.
  • 9.
    3. Penghapusan a. Penghapusandi depan/awal, operasi ini berguna untuk menghapus data pada posisi pertama. b. Penghapusan di Tengah, proses penghapusan di tengah sama dengan single linked list, Karena tidak mengubah struktur dari list, tapi kalau simpul yang akan di hapus ketemu di akhir, maka akan memanggil modul (prosedur) hapus di akhir/belakang. c. Penghapusan di Akhir, Penghapusan data di akhir adalah proses menghapus node terakhir (yang di tunjuk oleh variable pointer akhir), sehingga variabel pointer akhir akan berpindah ke node sebelumnya, dan medan sambungan kanan (next) dari node yang di tunjuk oleh pointer akhir yang baru akan menunjuk ke simpul pertama (yang di tunjuk oleh pointer awal), dan medan sambungan kiri(prev) dari simpul yang di tunjuk oleh pointer awal menunjuk ke simpul terkahir (yang ditunjuk oleh pinter akhir).
  • 10.
    4. Penelusuran/traversal, Prosesnyasecara umum sama seperti penelusuran pada single linked list atau double linked list. 5. Pencarian/searching, Prosesnya secara umum sama seperti penelusuran pada single linked list atau double linked list. 6. Pengurutan/sorting, Prosesnya secara umum sama seperti penelusuran pada single linked list atau double linked list. 7. Penghancuran/destroy, Proses penghancuran bisa dengan cara memanggil modul/subrutin penghapusan di awal atau penghapusan di akhir secara terus menerus sampai list kosong,