Skip to content Skip to sidebar Skip to footer

Widget Atas Posting

Soal dan Jawaban Tugas Pendahuluan & Tugas Akhir Linked List (Struktur Data)

Struktur Data adalah salah satu mata kuliah di Universitas Pamulang Viktor. Saya saat belajar struktur data hanya mencatat dan membuat tugas dan alhamdulilah tugasnya gampang-gampang termasuk Uts dan Uasnya dan alhamdulilah nya lagi di akhir semester mendapatkan nilai A.


Disini saya akan membagikan soal dan jawaban struktur data baik soal pendahuluan atau tugas akhir (soal coding) dari struktur data tersebut di bagian "Linked List".


Soal dan Jawaban Tugas Pendahuluan Linked List

1. Apa yang dimaksud dengan Linked List!
Linked List, struktur berupa rangkaian elemen saling berkait dimana tiap elemen di hubungkan ke elemen lain melalui pointer, pointer juga merupakan alamat dari sebuah elemen.
2. Jelaskan perbedaan antara Singly Linked List, Doubly Linked List, dan Circular Linked List !
  • Singly Linked List, suatu yang hanya memiliki satu variabel pointer saja. Dimana pointer tersebut menunjuk ke node selanjutnya. Biasanya field pada tail menunjuk ke NULL.
  • Doubly Linked List, suatu linked list yang memiliki dua variabel pointer yaitu pointer yang menunjuk ke node sebelumnya. Setiap head dan tailnya juga menujuk ke NULL.
  • Cicular Linked List, suatu linked list dimana tail (node terakhir) menunjuk ke head (node pertama). Jadi tidak ada pointer yang menunjuk NULL.
3. Jelaskan operasi-operasi pada Singly Linked List !
  • Insert, menambahkan simpul baru kedalam suatu linked list.
  • Konstruktor, membuat linked list yang baru dan masih kosong.
  • Isempty, menentukan linked list kosong/tidak.
  • Find First, mencari elemen pertama dari linked list.
  • Find Next, mencari elemen sesudah elemen yang ditunjuk now.
  • Retrieve, mengambil elemen yang ditunjuk oleh now.
  • Update, mengubah elemen yang ditunjuk oleh now.
  • Delete now, menghapus elemen yang ditunjuk oleh now.
4. Jelaskan operasi-operasi pada Doubly Linked List !
  • Insert Tail, menambahkan simpul dibelakang (sebelah kanan) pada sebuah linked list.
  • Insert Head, menambah simpul didepan (sebelah kiri). Fungsi ini tidak berbeda jauh dengan insert tail.
  • Delete Tail, untuk menghapus simpul dari belakang. Fungsi delete tail akan mengarahkan now kepada tail & kemudian memanggil fungsi delete now. 
  • Delete Head, merupakan kebalikan dari delete tail yang menghapus simpul dari belakang, sedangkan delete head akan menghapus simpul dari depan (sebelah kiri) fungsi delete head akan mengarahkan now kepada head dan kemudian memanggil fungsi delete now.

Soal dan Jawaban Tugas Akhir Linked List


1. Buatlah program menu untuk menampilkan 2 program di atas !
#include <iostream>
#include <stdio.h>
#include <conio.h>
#include <iomanip>
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 insertBelakang(int databaru)
{
TNode *baru,*bantu;
baru = new TNode;
baru->data = databaru;
baru->next = NULL;
if(isEmpty()==1)
{
head=baru;
tail=baru;
tail->next = NULL;
  }
  else
{
tail->next = baru;
tail=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 hapusBelakang()
{
TNode *bantu,*hapus;
int d;
if (isEmpty()==0)
{
bantu = head;
    if(head!=tail)
{
    while(bantu->next!=tail)
{
        bantu = bantu->next;
            }
            hapus = tail;
            tail=bantu;
            d = hapus->data;
            delete hapus;
            tail->next = NULL;
        }
else
{
        d = tail->data;
        head=tail=NULL;
        }
      cout<<d<<" terhapus\n";
}
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
{
    cout<<"==========================="<<endl;
    cout<<"PROGRAM LINKED LIST"<<endl;
    cout<<"==========================="<<endl;
    cout<<"1. Insert Depan"<<endl;
    cout<<"2. Insert Belakang"<<endl;
    cout<<"3. Delete Depan"<<endl;
        cout<<"4. Delete Belakang"<<endl;
        cout<<"5. Tampilkan Data"<<endl;
        cout<<"6. Clear Data"<<endl;
        cout<<"7. Exit"<<endl;
        cout<<"==========================="<<endl;
        cout<<"Masukan Pilihan : ";cin>>pil;
        switch (pil)
        {
        case 1:
{
            cout<<"Masukkan Data = ";
            cin>>databaru;
            insertDepan(databaru);
            break;
            }
            case 2:
{
            cout<<"Masukkan Data = ";
            cin>>databaru;
            insertBelakang(databaru);
            break;
            }
            case 3:
{
            hapusDepan();
            break;
            }
            case 4:
{
            hapusBelakang();
            break;
            }
            case 5:
{
            tampil();
            break;
            }
            case 6:
{
            clear();
            break;
            }
            case 7:
{
            return 0;
            break;
            }
            default :
{
            cout<<"\nMaaf, Pilihan yang anda pilih tidak tersedia!";
            }
        }
        getch();
    }
while(pil!=7);
}
Maka hasil outputnya :


output linked list
output linked list
Semoga bermanfaat dan jangan lupa share teman sekelas ya agar bisa dapat nilai A. Masuk bareng lulus juga harus bareng, jangan pelit ilmu antara teman sekelas. Terimakasih!
 
Jangan lupa kunjungi maswijaba untuk artikel bermanfaat lainnya.

Post a Comment for "Soal dan Jawaban Tugas Pendahuluan & Tugas Akhir Linked List (Struktur Data)"