Anda di halaman 1dari 25

LAPORAN HASIL PRAKTIKUM

STRUKTUR DATA

NAMA : DHEA KRISTINA


NIM : 203010503008
KELAS :C
MODUL : III (LINKED LIST)

JURUSAN TEKNIK INFORMATIKA


FAKULTAS TEKNIK
UNIVERSITAS PALANGKARAYA
2021
BAB I
PENDAHULUAN

A. Tujuan
1. Mahasiswa memahami struktur data linked list
2. Mahasiswa mampu menggunakan struktur data linked list dalam
menyelesaikan masalah pemrograman

B. Landasan Teori
Linked List adalah suatu cara untuk menyimpan data dengan struktur
sehingga programmer dapat secara otomatis menciptakan suatu tempat baru
untuk menyimpan data kapan saja diperlukan. Linked list dikenal juga dengan
sebutan senarai berantai adalah stuktur data yang terdiri dari urutan record data
dimana setiap record memiliki field yang menyimpan alamat/referensi dari
record selanjutnya (dalam urutan). Elemen data yang dihubungkan dengan link
pada linked list disebut Node. Biasanya dalam suatu linked list, terdapat istilah
head dan tail.
Jenis Linked List (yang akan dipelajari) adalah :
1. Single Linked List
2. Double Linked List
3. Circular Linked List
4. Multiple Linked List

Terdapat 5 proses dasar dalam Linked List, yaitu :


1. Proses Inisialisasi
a. Proses awal → Menyatakan Linked List belum ada
Algoritma :
First = Null ;
Last = Null ;
2. Proses Simpul Baru
Instruksi :
P = (simpul*) malloc(sizeof(simpul));
Algoritma :
void Buat_Simpul (int x) {
P = (simpul*) malloc(sizeof(simpul));
if (P!=NULL)
{P → Info=x;}
Else
cout << “simpul gagal dibuat”; }
3. Membuat Simpul Awal
Syarat :
1. Linked List belum ada
2. Sudah ada simpul yang akan dijadikan simpul awal
Algoritma :
void Awal () {
First = P;
Last =P;
P→Link = NULL; }

4. Menambahkan Simpul Baru ke dalam Linked List (INSERT)


Syarat :
1. Linked List sudah ada.
2. Sudah ada simpul yang akan ditambahkan Linked List.
a. Insert Kanan/Akhir
Algoritma :
void Ins_Akhir () {
Last → Link = P;
Last = P;
P → Link = NULL; }
b. Insert Kiri/Awal
Algoritma :

void Ins_Awal () {
P → Link = First;
First = P; }
c. Insert Tengah
Algoritma :

void Ins_Tengah () {
P → Link = Q → Link;
Q → Link = P; }

5. Menghapus Sebuah Simpul dari Linked List (DELETE)


Syarat :
1. Linked List sudah ada.
a. Delete Kanan/Akhir
Algoritma :

void Del_Akhir () {
Free (Last);
Last = Q;
Last → Link = NULL; }

b. Delete Kiri/Awal
Algoritma :

void Del_Awal () {
Q = First;
First = Q → Link;
Free (Q); }
c. Delete Tengah
Algoritma :

void Del_Tengah () {
R = Q → Link;
Q → Link = R → Link;
Free (R); }

A. Single Linked List

Single Linked List merupakan suatu linked list yang hanya memiliki satu
variabel pointer saja. Dimana pointer tersebut menunjuk ke node selanjutnya.
Biasanya field pada tail menunjuk ke NULL.

B. Double Linked List


Double Linked List merupakan suatu linked list yang memiliki dua
variabel pointer yaitu pointer yang menunjuk ke node selanjutnya dan pointer
yang menunjuk ke node sebelumnya. Setiap head dan tailnya juga menunjuk
ke NULL.
C. Circular Linked List

Circular Linked List merupakan suatu linked list dimana tail (node
terakhir) menunjuk ke head (node pertama). Jadi tidak ada pointer yang
menunjuk NULL. Ada 2 jenis Circular Linked List, yaitu :

1. Circular Single Linked List

2. Circular Double Linked List

D. Multiple Linked List

Multiple Linked List merupakan suatu linked list yang memiliki lebih dar
2 buat variabel pointer.
BAB II
PEMBAHASAN

1. Linked list non circular berisi nama lengkap dan nim


Gambar 2.1 (Input program)
Program kali ini adalah sebuah program linked list non circular. Bagian
pertama diawali dengan file header, yaitu pada program ini menggunakan
header “iostream”, "iostream" merupakan file program yang mengandung
deklarasi kelas-kelas yang diperlukan. Kemudian dilanjutkan dengan “using
namespace std;”, using namesapce std menyatakan bahwa program di atas akan
menggunakan namespace yang bernama std, sehingga tidak perlu menyertakan
identitas std: pada anggota dari namespace std salah satunya adalah cout.
Setelah itu, dilanjutkan dengan pembuatan struct bernama Tnode yang
berisi tiga field, yaitu field data bertipe integer, field nama dan nim bertipe
string dan field next yang bertipe pointer dari Tnode. Setelah itu, pembuatan
variabel head dan tail yang bertipe pointer dari Tnode yang berguna sebagai
kepala linked list.
Kemudian “void init()”, void init adalah fungsi untuk inisialisasi awal
linked list dan setelah itu “head = tail = NULL;”, yang berarti head dan tail
bernilai NULL. Selanjutnya adalah fungsi insertdepan, diawali dengan sigle
linked list non circular yaitu “TNode *baru; baru = new TNode;”, kemudian
cout nama dan nim, dan menggunakan “getline” untuk menginput data string.
Fungsi selanjutnya adalah insertbelakang, fungsi insertbelakang adalah
penambahan data dilakukan dibelakang. Pada saat pertama kali, node langsung
ditunjuk oleh head.Penambahan di belakang lebih sulit karena kita
membutuhkan pointer bantu untuk mengetahui node terbelakang, kemudian
setelah itu, dikaitkan dengan node baru.
Untuk mengetahui data terbelakang perlu digunakan perulangan.
Selanjutnhya adalah fungsi hapus depan, fungsi hapus depan adalah fungsi
yang digunakan untuk menghapus data teratas yang ditunjuk oleh head pada
liked list.
Setelah fungsi hapus depan, fungsi selanjutnya ada hapus belakang yaitu
fungsi yang digunakan untuk menghapus data belakang, pointer hapus
digunakan untuk menunjuk node sebelum node yang dihapus yang kemudian
selanjutnya akan menjadi node terakhir. Kemudian fungsi tampil yang
digunakan untuk menampilkan isi list, dimana linked list ditelusuri satu-persatu
dari awal node sampai akhir node.
Bagian selanjutnya adalah fuction utama, pada bagian ini dilakukan
pemilihan menu yang menggunakan operasi if else if, yang berarti jika menu
pertama yang dipilih maka akan dilakukan penambahan data depan, jika menu
dua yang dipilih maka akan dilakukan penambahan data belakang, jika menu
tiga yang dipilih maka akan dilakukan penghapusan data teratas, jika menu
empat yang dipilih maka akan dilakukan penghapusan data terakhir, dan jika
dipilih menu lima maka akan menampilkan semua isi list. Output program
seperti gambar dibawah ini :
Gambar 2.2 (Output program menu 1)
Gambar 2.4 (Output program menu 2)
Gambar 2.5 (Output program menu 3)
Gambar 2.6 (Output program menu 4)
Gambar 2.7 (Output program menu 5)
BAB III
KESIMPULAN

Linked list adalah suatu struktur data yg merupakan suatu rangkaian atau
daftar record berjenis sama. Kemudian dihubungkan melalui bantuan pointer.
Pengalokasian daftar dapat dilakukan secara dinamis sehingga isi dari daftar dapat
dimanipulasi. Single linked list terbagi menjadi dua, yaitu single linked list circular
dan single linked list non circular. Perbedaan single linked list circular dan non
circular adalah single linked list non circular, pada node terakhir menunjuk ke
NULL, sedangkan single linked list circular node terakhir menunjuk ke kepala atau
head.
DAFTAR PUSTAKA

Modul Struktur Data Universitas Palangkaraya Diakses pada Sabtu, 10 April 2021
pukul 21.19 WIB.
LAMPIRAN

Program single linked list no circular


Gambar 1 (Input program)
Gambar 2 (Output program menu 1)
Gambar 3 (Output program menu 2)
Gambar 4 (Output program menu 3)
Gambar 5 (Output program menu 4)
Gambar 6 (Output program menu 5)

Anda mungkin juga menyukai