Anda di halaman 1dari 11

Laporan Modul Praktikum Algoritma dan Struktur Data

“LINKED LIST”

Oleh :
Nama : Ade Prasetyo
NIM : 18102218
Kelas : S1 IF06 G
Hari/ Tanggal : Minggu, 7 April 2019

PROGRAM STUDI S1 TEKNIK INFORMATIKA


FAKULTAS TEKNOLOGI INDUSTRI DAN INFORMATIKA
INSTITUT TEKNOLOGI TELKOM PURWOKERTO
2019
BAB I
SOAL

1. Buatlah program menggunakan Single Linked List Non Circular untuk menyimpan

Nama dan NIM data mahasiswa berikut ini :


Nama NIM
Dede 12347867
Kiki 98765674
Nina 67453279
Andi 83450120
2. Hapus list Andi !
3. Tampilkan di layar hasilnya sbb :

PROGRAM SENARAI BERANTAI


Masukkan nama ke-1 : Dede

Masukkan NIM ke-1 :

Dst

DATA MAHASISWA
Nama NIM
Dede 12347867
Kiki 98765674
Nina 67453279
Andi 83450120

Andi terhapus

DATA MAHASISWA
Nama NIM
Dede 12347867
Kiki 98765674
Nina 67453279
BAB II

PEMBAHASAN
A. Source Code

#include <iostream>

#include <conio.h>

#include <string>

using namespace std;

typedef struct nama

string data_nama;

nama *next_nama;

};

nama *head_nama;

typedef struct nim

int data_nim;

nim *next_nim;

};

nim *head_nim;

void initHead();

int Emptynama();

int Emptynim();

void insertnama(int datanama);

void insertnim(int datanim);

void tampil();

void hapusnama();

void hapusnim();
void initHead()

head_nama = NULL;//NULL <> null!!!

head_nim = NULL;//NULL <> null!!!

int Emptynama()

return (head_nama == NULL) ? 1:0;

int Emptynim()

return (head_nim == NULL) ? 1:0;

void insertnama(string datanama)

nama *baru,*bantu;

baru = new nama;

baru->data_nama = datanama;

baru->next_nama = NULL;

if(Emptynama()==1)

head_nama=baru;

head_nama->next_nama = NULL;

else

bantu=head_nama;

while(bantu->next_nama!=NULL)
{

bantu=bantu->next_nama;

bantu->next_nama = baru;

void insertnim(int datanim)

nim *baru,*bantu;

baru = new nim;

baru->data_nim = datanim;

baru->next_nim = NULL;

if(Emptynim()==1)

head_nim=baru;

head_nim->next_nim = NULL;

else

bantu=head_nim;

while(bantu->next_nim!=NULL)

bantu=bantu->next_nim;

bantu->next_nim = baru;

void hapusnama()
{

nama *hapus,*bantu;

string d;

if (Emptynama()==0)

if(head_nama->next_nama != NULL)

bantu = head_nama;

while(bantu->next_nama->next_nama!=NULL)

bantu = bantu->next_nama;

hapus = bantu->next_nama;

d = hapus->data_nama;

bantu->next_nama = NULL;

delete hapus;

else

d = head_nama->data_nama; head_nama = NULL;

cout<<" "<<d<<" terhapus\n";

else

cout<<" ( Masih kosong )\n";

void hapusnim()

{
nim *hapus,*bantu;

int d;

if (Emptynim()==0)

if(head_nim->next_nim != NULL)

bantu = head_nim;

while(bantu->next_nim->next_nim!=NULL)

bantu = bantu->next_nim;

hapus = bantu->next_nim;

d = hapus->data_nim;

bantu->next_nim = NULL;

delete hapus;

else

d = head_nim->data_nim;

head_nim = NULL;

cout<<" \n";

else

cout<<" ( Masih kosong )\n";

void tampil()

{
nim *bantu;

bantu = head_nim;

nama *help;

help = head_nama;

if(Emptynim()==0 && Emptynama()==0)

cout<<"\tNama\t\tNIM\n";

cout<<"\t------------------------\n";

while(bantu!=NULL && help!=NULL)

cout<<"\t"<<help->data_nama<<"\t\t"<<bantu-
>data_nim<<"\n";

help=help->next_nama;

bantu=bantu->next_nim;

cout<<"\n";

else

cout<<"( Masih kosong )\n";

int main()

cout<<"\t\t\t ===============================\n";

cout<<"\t\t\t PROGRAM SENARAI BERANTAI\n\t\t\t


===============================\n\n";

cout<<"Menyiapkan head...\n";

initHead();

cout<<"done..\n\n\n Tampilkan isi list :\n";


cout<<" ";

tampil();

cout<<"\n Masukkan Nama dan NIM :\n";

string data_nama;

int data_nim;

for(int i=1;i<=4;i++)

cout<<" Masukkan nama ke-"<<i<<" : ";

cin>>data_nama;

insertnama(data_nama);

cout<<" Masukkan nim ke-"<<i<<" : ";

cin>>data_nim; insertnim(data_nim);

cout<<"\n";

cout<<" Tampilkan isi list :\n\n";

tampil();

cout<<"\n Hapus 1 data terakhir\n\n";

for(int i=1;i<2;i++)

hapusnama();

hapusnim();

cout<<"\n";

cout<<" Tampilkan isi list :\n\n";

tampil();

}
B. Screenshot Output

C. Kesimpulan
Linked List merupakan suatu bentuk struktur data yang berisi kumpulan data yang
disebut sebagai node yang tersusun secara sekuensial, saling sambung menyambung,
dinamis, dan terbatas. Linked List sering disebut sebagai senarai berantai. Untuk
menghubungkan satu node dengan node lainnya maka Linked List menggunakan pointer
sebagai penunjuk node selanjutnya. Node sendiri merupakan sebuah struct yang
menempati suatu lokasi memori secara dinamis yang terdiri dari beberapa field, minimal
2 buah field yaitu field untuk isi dari struct datanya sendiri, dan 1 field arbitari bertipe
pointer sebagai penunjuk node selanjutnya. Array dan Linked List memiliki perbedaan
sebagai berikut :

Array

1. Statis
2. Penambahan dan penghapusan data Terbatas
3. Random access
4. Penghapusan array tidak mungkin

Linked List

1. Dinamis
2. Penambahan dan penghapusan data tidak terbatas
3. Sequential access
4. Penghapusan mudah

Salah satu tipe Linked List yang sederhana yaitu Single Linked List. Single Linked List
merupakan Linked List yang memiliki hanya satu pointer penunjuk dengan arah data
hanya satu arah juga. Single Linked List memiliki 2 macam bentuk yaitu Non Circular
dan Circular. Non Circular Linked List merupakan Linked List di mana antara kepala dan
node terakhir tidak memiliki hubungan. Pada Linked List ini maka pointer terakhir selalu
menunjuk NULL sebagai pertanda data terakhir dalam list-nya. Single Linked List Non
Circular dapat digambarkan sebagai gerbong kereta api seperti berikut ini :

Langkah membuat dan operasi pada sebuah Linked List adalah sebagai berikut :

1. Mendeklarasikan struct node


2. Membuat node head
3. Menginisialisasi node head
4. Menambah node baru baik di depan maupun di belakang
5. Menghapus node

Linked List banyak dimanfaatkan pada pemrograman kecerdasan buatan, fuzzy, maze
solving, dan sebagainya.

Anda mungkin juga menyukai