-->

I'M Bayu Pradika

Graphic Designer . Web Developer . Programmer

Rabu, 24 Agustus 2022

Algoritma Dan Struktur Data BAB V (Single Linked List 1)

 

Single Linked List 1

printf("Hallo Para Programmer!!"); 

printf("Disini Saya Akan Menjelaskan Sedikit Dasar Mengenai Single Linked List Dalam Bahasa C/C++"); 

printf("Terus Ikuti Blog Ini Untuk Mendapatkan Artikel Bermanfaat Selanjutnya yah");

printf("Selamat Belajar!!");


    Secara konseptual Array adalah struktur data yang memesan tempat secara berurutan untuk jumlah data statis. Sedangkan Memory Allocation (malloc) adalah sebuah fungsi fasilitas untuk memesan tempat secara berurutan untuk tipe data pointer dengan jumlah data dinamis.

    Permasalahan akan timbul jika kita memesan data dengan jumlah yang besar sementara tempat di memori yang berurutan tidak ada. Solusi untuk permasalahan ini adalah dengan menggunakan linked list atau senara berantai. Linked list merupakan deretan elemen yang berdampingan. Akan tetapi, karena elemen-elemen tersebut dialokasikan secara dinamis (menggunakan malloc), sangat penting untuk diingat bahwa kenyataannya, linked list akan terpencar-pencar di memori. Pointer pada suatu elemen berisi alamat untuk data berikutnya sebagai penjamin bahwa semua elemen dapat diakses. Pada Gambar 5.1 ditunjukkan perbedaan array dan Linked list.



 

1. Bagaimana Membangun Linked List

Untuk membangun sebuah linked list, maka terdapat beberapa langkah yang harus disiapkan. Langkah tersebut adalah sebagai berikut

a. Deklarasi

b. Alokasi memori

c. Mengisi data

d. Menyiapkan untuk dihubungkan dengan data baru berikutnya


1.1  Deklarasi Simpul

Linked list terdiri dari elemen-elemen individu, dimana masing-masing dihubungkan dengan pointer tunggal. Masing-masing elemen terdiri dari dua bagian, yaitu sebuah data dan sebuah pointer yang disebut dengan pointer next. Dengan menggunakan struktur two-member seperti ini, linked list dibentuk dengan cara menunjuk pointer next suatu elemen ke elemen yang mengikutinya. Pointer next pada elemen terakhir merupakan NULL, yang menunjukkan akhir dari suatu list.

Pada Gambar 5.2 ditunjukkan deklarasi untuk sebuah simpul menggunakan struktur yang diikuti deklarasi sebuah variable yang menggunakan struktur tersebut.


Dari Gambar 5.2 didapatkan gambaran sebuah simpul pada Gambar 5.3

1.2  Alokasi Memori

    Ketika sebuah variabel dideklarasikan, terlebih dahulu harus diinisialisasi. Demikian juga dengan pengalokasian secara dinamis. Sehingga, fungsi untuk mengalokasikan sebuah node baru, fungsi alokasi_simpul() menggunakan malloc() untuk mendapatkan memori aktual, yang akan menginisialisasi suatu field data. next selalu diinisialisasi sebagai NULL. Untuk melihat kemungkinan alokasi memori gagal, maka fungsi alokasi_simpul() menghasilkan NULL, bila berhasil maka menghasilkan sebuah simpul. Fungsi dari alokasi_simpul() adalah sebagai berikut :

struct simpul* alokasi_simpul()

{

struct simpul * new; new = (struct simpul*)malloc(sizeof(struct simpul)); if(new==NULL)

return NULL;

else

new->next=NULL;

return new; }

 

1.3 Mengisi Data Dan Menyiapkan Dihubungkan Dengan Data Berikutnya 

    Setelah melakukan deklarasi untuk simpul dan terdapat fungsi untuk melakukan alokasi memori maka keduanya kita gunakan untuk membangun sebuah linked list dengan prinsip LIFO (Last In First Out) dengan perintah sebagai berikut:

Dengan perintah pada Gambar 5.4 didapatkan ilustrasi alokasi memori untuk sebuah simpul seperti Gambar 5.5.



2. Operasi Pada Linked list

Terdapat beberapa Operasi yang penting pada linked list, yaitu:

1. Menyisipkan sebagai simpul ujung(awal) dari linked list.

2. Membaca atau menampilkan

3. Mencari sebuah simpul tertentu

4. Menyisipkan sebagai simpul terakhir

5. Menghapus simpul tertentu

6. Menyisipkan setelah simpul tertentu

7. Menyisipkan sebelum simpul tertentu

 

2.1 Menyisipkan Sebagai Simpul Ujung(Awal) Dari Linked list

    Setelah mendeklarasikan, mengisi data dan menyiapkan untuk dihubungkan dengan simpul berikutnya untuk menciptakan simpul pertama seperti yang dilakukan sebelumnya. Kita bisa melanjutkan dengan operasi menyisipkan sebagai simpul ujung dari linked list. 

2.2 Membaca Atau Menampilkan

Langkah-langkah untuk membaca atau menampilkan linked list yang sudah terbentuk di atas adalah sebagai berikut:

1. Inisialisasi sebuah variabel bertipe struct simpul* (tampil) dengan ujung

2. Tampilkan data nama dan nrp yang ada pada tampil

3. Jalankan tampil = tampil->next

4. Ulangi langkah 2 selama tampil tidak sama dengan NULL

 

2.3 Mencari Simpul Tertentu 

Langkah-langkah untuk mencari simpul tertentu pada linked list yang sudah terbentuk di atas adalah sebagai berikut:

1. Inisialisasi sebuah variabel bertipe struct simpul* (cari) dengan ujung

2. Ulangi langkah 3 jika data pada simpul cari tidak sama dengan data yang dicari atau cari tidak sama NULL

3. Jalankan cari = cari->next

 

2.4 Menyisipkan Sebagai Simpul Terakhir

Langkah-langkah untuk menyisipkan simpul baru sebagai simpul terakhir pada linked list yang sudah terbentuk di atas adalah sebagai berikut:

1. Alokasikan memori untuk simpul baru yang akan disisipkan

2. Inisialisasi sebuah variabel bertipe struct simpul* (cari) dengan ujung

3. Lakukan proses pengulangan pencarian sampai cari->next sama dengan NULL

4. Hubungkan cari->next ke simpul baru

 


Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna Veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat.

0 comments:

Categories

Contact Us

BAYU
+62 896-2690-9619
Kampar, Riau, Indonesia