Anda di halaman 1dari 5

Tugas Kelompok ke-1

Week 2

Nama :

 Wahyu Affandi – 2502157950

Soal Review:

1. Bagaimana Array direpresentasikan dalam memori?

Ketika didefinisikan, elemen – elemen array tersusun secara berurutan.


Susunan tersebutmembuat array memiliki alamat yang bersebelahan/ berdampingan
dalam memori sesuai denganbesar pemakaian memori tipe data yang digunakan.

2. Bagaimana Linked list direpresentasikan dalam memori?

Pertama-tama sistem mencari ruang kosong di memori kemudian


menggunakannya untukmenyimpan informasi. Semakin data berukuran besar,
maka semakin besar juga memori yangdibutuhkan. Sistem operasi dapat mengubah
status memori yang ditempati dari terisi menjadit e r s e d i a k e t i k a k i t a
menghapus sebuah node dari linked list. Sederhananya
k o m p u t e r melakukannya tanpa intervensi dari user atau programmer. Programmer
hanya perlu mengaturcode untuk penyisipan serta penghapusan dalam list.

3. Uraikan secara singkat konsep doubly linked list! Ilustrasikan proses operasi insert dan
delete pada doubly linked list!

Doubly Linked List merupakan jenis linked list yang memiliki 2 buah pointer
(penunjuk) yaitu elemen pada elemen sebelumnya dan elemen berikutnya.
Proses insert pada doubly linked list sebagai berikut :
Baru->Next=Head->Next;
Head->Next=Baru;
Proses delete pada doubly linked list sebagai berikut :

if(Head-> Next == NULL){

cout<<"List Kosong"<<endl;

}else if( Hapus->NPM == NPMHapus){

if(Head->Next==Tail->Next){

Data Structures
Head-> Next = NULL;

Tail->Next =NULL;

}else{

Head->Next=Hapus->Next;

}}else{

Bantu=NULL;

while((NPMHapus != Hapus->NPM ) &&(Hapus->Next != NULL)){

Bantu=Hapus;

Hapus=Hapus->Next;

if(NPMHapus==Hapus->NPM){

if(Hapus->Next==NULL){

Tail->Next=Bantu;

Bantu->Next = 0;

}else{

Bantu->Next=Hapus->Next;

}}else{

cout<<"NPM "<<NPMHapus<<" doesn't

match"<<endl;

}}

Data Structures
4. Analisis kelebihan atau kekurangan singly linked list dan doubly linked list! Sebutkan
contoh program yang membutuhkan singly linked list dan doubly linked list?

Kelebihan :
1.Penambahan elemen tidak terbatas
2.Memungkinkan untuk dihapus
3.D ouble Linked Lis t memil iki 2 pointer terhadap elemen s elanjutnya
dan elemen sebelumnya.
Kekurangan :
1.Singly Linked List Hanya memiliki 1 pointer ke terhadap elemen berikutnya
2.Hanya bisa diakses sekuensial
3.Memerlukan memori yang besar untuk data yang besar juga.

5. Uraikan pengertian circular doubly linked list! Ilustrasikan proses operasi insert dan
delete pada circular doubly linked list?

Circular Doubly Linked List adalah Linked List dimana link simpul terakhir bukan
diisi dengan null, tetapi diisi dengan alamat simpul pertama yaitu simpul yang
ditunjuk oleh pointer FIRST, sehingga menciptakan efek melingkar seperti arah jarum
jam.
- Pointer RIGHT simpul paling kanan berisi alamat simpul paling kiri
- Pointer LEFT simpul paling kiri berisi alamat simpul paling kanan

Operasi insert pada Circular Doubly Linked List

void push(int value)


{
Node last = (start).prev;

Node new_node = new Node();


new_node.data = value;

new_node.next = start;
new_node.prev = last;

last.next = (start).prev = new_node;

start = new_node;

Data Structures
Operasi delete pada Circular Doubly Linked List

void pop_(struct Node** head_ref, int position) {

struct Node *nodeToDelete = *head_ref;


struct Node *temp = *head_ref;
int NoOfElements = 0;

if(temp != NULL) {
NoOfElements++;
temp = temp->next;
}

while(temp != *head_ref) {
NoOfElements++;
temp = temp->next;
}

if(position < 1 || position > NoOfElements) {


printf("\nInavalid position.");
} else if (position == 1) {

if((*head_ref)->next == *head_ref) {
*head_ref = NULL;

} else {

while(temp->next != *head_ref)
temp = temp->next;
*head_ref = (*head_ref)->next;
temp->next = *head_ref;
(*head_ref)->prev = temp;
free(nodeToDelete);

}
} else {

temp = *head_ref;
for(int i = 1; i < position-1; i++)
temp = temp->next;
nodeToDelete = temp->next;
temp->next = temp->next->next;
temp->next->prev = temp;
free(nodeToDelete);
}
}

Data Structures
Soal Case:

Pak Andi memiliki sebuah toko sembako yang menjual berbagai macam kebutuhan pokok. Toko
Pak Andi mulai ramai pengunjung dan beliau mulai kewalahan dalam pencatatan stok barang,
sehingga terlambat dalam mengisi barang dagangan.

Pak Andi meminta bantuan Anda sebagai programmer untuk membuat sebuah program
sederhana yang dapat menyelesaikan permasalahan beliau.

Silakan analisa lebih dalam kebutuhan sistem dan menu apa saja yang sesuai dengan
permasalahan yang dihadapi oleh toko sembako Pak Andi, kemudian buatlah program tersebut
menggunakan konsep doubly linked list!

Analisa Program :

- Program mempunyai 4 menu Utama :

1. Catatan Penjualan

2. Catatan Pembelian

3. Catatan Data Barang

4. Keluar

Program akan menggunakan tipe data Double Linked List karena barang-barang yang ada di
toko Pak Andi selalu bertambah,

Data Structures

Anda mungkin juga menyukai