Anda di halaman 1dari 5

TeachMeSoft

×
type to search

HOME ALGORITMA DAN PEMROGRAMAN SINGLE LINKED LIST C++ DISERTAI CONTOH,
TUGAS & JAWABAN
Single Linked List C++ Disertai Contoh, Tugas & Jawaban
Imam Ibnu Badri Algoritma dan Pemrograman 07.04
Single Linked List C++ Disertai Contoh, Tugas & Jawaban

DAFTAR ISI
Materi
Contoh
Tugas
Jawaban

Materi
Linked list adalah suatu cara untuk menyimpan suatu data dengan struktur sehingga program
dapat secara otomatis menciptakan suatu tempat baru untuk menyimpan suatu data kapan saja
diperlukan. Secara rinci program dapat menuliskan struct atau definisi kelas yang berisi variabel
yang memegang informasi yang ada didalamnya, dan mempunyai suatu pointer yang
menunjukan ke suatu stuct sesuai dengan tipe datanya.

Single : artinya field pointernya hanya satu buah saja dan satu arahnya hanya satu buah saja
dan satu arah serta pada akhir node, pointernya menunjuk NULL serta pada akhir node, pointer
NULL
Linked list artinya node linked list artinya node node tersebut saling terhubung satu sama node
tersebut saling terhubung satu sama lain.

Setiap node-node pada linked list mempunyai field yang berisi pointer ke node berikutnya, dan
juga memiliki field yang berisi data. Node terakhir akan menujuk ke NULL akan digunakan
sebagai kondisi berhenti pada saat pembacaan isi linked list.

Struktur dinamis ini mempunyai banyak keuntungan dibanding struktur array yang bersifat
statis. Struktur ini lebih dinamis, karena banyak elemen dengan mudah ditambhah atau
dikurangi, berbeda dengan array yang ukurannya bersifat tetap. Disamping itu manipulasi
terhadap setiap elemen seperti menyisipkan, menghapus, menambah dapat dilakukan dengan
mudah.

Definisi link list dapat dituliskan secara sederhanan dengan struktur berikut
Struct Tnode {
Int data;
Struct Tnode *next;
}

Pembuatan struct bernama Tnode yang berisi 2 field, yaitu field data bertipe integer dan field
next yang bertipe pointer dari Tnode. Setelah pembuatan struct, buat variabel head yang
bertipe pointer dari Tnode yang berugna sebagai kepala linked list.

Operasi yang dapat dilakukan pada sebuah link list adalah penambahan dan penghapusan
elemen link list. Penambahan dan penghapusan dapat dilakukan pada posisi depan, posisi
belakang atau posisi tertentu pada link list. Berikut ilustrasi penambahan data di belakang link
list
Ilustrasi penambahan data dibelakang link list
Ilustrasi penambahan data dibelakang link list

Contoh Program
Buatlah program dibawah ini. Ilustrasikan gambarkan Linked list-nya. Tuliskan juga
algoritmanya.
Source code
#include <stdio.h>
#include <iostream>
#include <conio.h>
#include <stdlib.h>

using namespace std;

struct TNode{
int data;
TNode *next;
};

TNode *head, *tail;

void init (){


head = NULL;
tail = NULL;
}
int isEmpty(){
if(tail==NULL)return 1;
else return 0;
}

void insertDepan(int databaru)


{
TNode *baru;
baru = new TNode;
baru->data = databaru;
baru->next = NULL;
if(isEmpty()==1)
{
head=tail=baru;
tail->next=NULL;
}else
{
baru->next = head;
head=baru;
}
cout<<"Data masuk\n";
}

void tampil(){
TNode *bantu;
bantu=head;
if(isEmpty()==0)
{
while(bantu!=NULL)
{
cout<<bantu->data<<" ";
bantu=bantu->next;
}
}else cout <<"Masih kosong\n";
}

void hapusDepan()
{

TNode *hapus;
int d;
if (isEmpty()==0)
{
if(head!=tail)
{
hapus=head;
d=hapus->data;
head=head->next;
delete hapus;
}else
{
d=tail->data;
head=tail=NULL;
}
cout<<d<<"terhapus";
}else cout<<"Masih kosong\n";
}

void clear()
{
TNode *bantu, *hapus;
bantu =head;
while(bantu!=NULL)
{
hapus=bantu;
bantu=bantu->next;
delete hapus;
}
head = NULL;
printf("clear");
}

main()
{
int pil, databaru;
do
{
system("cls");
cout<<endl;
cout<<" ============================"<<endl;
cout<<" = PROGRAM LINKED LIST ="<<endl;
cout<<" ============================"<<endl;
cout<<" = 1. Insert Depan ="<<endl;
cout<<" = 2. Delete Depan ="<<endl;
cout<<" = 3. Tampil Data ="<<endl;
cout<<" = 4. Clear ="<<endl;
cout<<" = 5. Exit ="<<endl;
cout<<" ============================"<<endl;
cout<<" Masukan Pilihan : ";cin>>pil;
switch (pil)
{
case 1: system("cls");{
cout<<"Masukan Data = ";cin>>databaru;
insertDepan(databaru);
break;
}
case 2: system("cls");{
hapusDepan();
break;
}
case 3: system("cls");{
tampil();
break;
}
case 4: system("cls");{
clear();
break;
}
case 5: system("cls");{
return 0;
break;
}
default : system("cls");
{
cout<<"\n Maaf, Pilihan yang anda pilih tidak tersedia!";
}
}
getch();
}
while (pil!=7);

Anda mungkin juga menyukai