MODUL PRAKTIKUM STRUKTUR DATA DAN ALGORITMA LINKED LIST (BAGIAN 1)

dokumen-dokumen yang mirip
MODUL PRAKTIKUM STRUKTUR DATA DAN ALGORITMA LINKED LIST (BAGIAN 2)

MODUL PRAKTIKUM STRUKTUR DATA DAN ALGORITMA STACK

MODUL PRAKTIKUM STRUKTUR DATA DAN ALGORITMA QUEUE

MODUL III ARRAYLIST TUGAS PENDAHULUAN

Algoritma Pemrograman & Struktur Data

Algoritma dan Struktur Data. Queue

Algoritma dan Struktur Data

MODUL 6 SINGLE & DOUBLE LINKED LIST

Gambar 1. Single Linked List

KUM 3 IMPLEMENTASI LIST

Gambar 1. Single Linked List

Gambar 1. Single Linked List

LAPORAN PRAKTIKUM IX. Oleh:

List Linear (Linked List) Farah Zakiyah Rahmanti 2014

MODUL PRAKTIKUM BASIS DATA PENGENALAN STRUKTUR DATA DAN KOMPLEKSITAS WAKTU

Linked List dan Implementasinya dalam Bahasa Java

Data structure :Metode LINK LIST. Kusnawi, S.Kom, M.Eng STMIK AMIKOM Yogyakarta

LIST. Dewi Sartika, M.Kom

KUM 5 IMPLEMENTASI QUEUE

KONSEP POINTER DAN LINKED LIST

Algoritma Dan Struktur Data II

Praktikum Algoritma dan Struktur Data

PRAKTIKUM ALGORITMA DAN STRUKTUR DATA MODUL KE-2 STACK DAN QUEUE

PRAKTIKUM ALGORITMA DAN STRUKTUR DATA DOUBLE LINKED LIST CIRCULAR

Algoritma Pemrograman & Struktur Data

Gambar 1. Single Linked List

Gambar 17.1Representasi Sebuah Node di Double Linked List. Gambar 17.2 Double Linked List

Pertemuan 3. Perubah Dinamis (Dinamic variable) Suatu perubah yang akan dialokasikan hanya pada saat diperlukan, yaitu setelah program dieksekusi.

Double Linked List mempunyai reference front untuk menandai awal node dan reference back untuk menandai akhir list

IX. Implementasi ADT : Stacks & Queues. Operasi dasar Contoh kegunaan Implementasi Array-based dan linked list-based

IMPLEMENTASI STRUKTUR DATA LIST, QUEUE DAN STACK DALAM JAVA

Pertemuan 4. Single Linked List non Circular Menggunakan Head dan Tail

STRUKTUR DATA. Literatur

Struktur Data dan Algoritma

Double Linked List. Double Linked List

PENGENALAN List merupakan sebuah pemikiran/konsep struktur data yang sangat dasar pada pemrograman agar lebih fleksibel. Setiap elemen akan ditambahka

1. Traversing Untuk algoritma traversing sama seperti pada single Link List

KONSEP POINTER DAN LINKED LIST

KONSEP POINTER DAN LINKED LIST

KONSEP POINTER DAN LINKED LIST

Bagian I. Studi Kasus [82] Tanda tangan:

(3) BAHAN KAJIAN (materi ajar)

KONSEP POINTER DAN LINKED LIST

DOUBLE LINKED LIST. Danang Wahyu Utomo Danang Wahyu Utomo, M.Kom, M.CS

List: Pokok Bahasan dan TIK

QUEUE (ANTREAN) Operasi Antrean : FIFO (First In First Out) Elemen yang pertama masuk merupakan elemen yang pertama keluar.

Lab. Teknik Informatika Struktur Data 1

STRUKTUR DATA (2) Single Linked List

Masukan Judul... Infotype àsebuah tipe terdefinisi yang menyimpan informasi sebuah elemen list

Variasi List Linier. Nisa ul Hafidhoh, MT

Struktur Data dan Algoritma

Single Linked List. Single Linked List

IF PEMROGRAMAN LANJUT TUGAS 1. Oleh : Andri Heryandi, M.T.

Algoritma dan Struktur Data. Pertemuan 9 Circular Linked List

ALGORITMA DAN STRUKTUR DATA

Algoritma dan Struktur Data. Pertemuan 7 Linked List

STL DLL STRUKTUR DATA. JULIO ADISANTOSO Departemen Ilmu Komputer IPB. Pertemuan 3 : 29 Juni 2015

PERTEMUAN III OBJEK DAN CLASS TUJUAN PRAKTIKUM

MODUL PRAKTIKUM STRUKTUR DATA DAN ALGORITMA BUBBLE SORT, SELECTION SORT, INSERTION SORT

Politeknik Elektronika Negeri Surabaya

A. TUJUAN Mahasiswa diharapkan mampu : 1. Memahami Konsep Binary Search Tree 2. Mengimplementasaikan Binary Search Tree

BAB II Senarai Berantai (Linked List)

PRAKTIKUM PEMROGRAMAN LANJUT MODUL 1

A. TUJUAN PEMBELAJARAN 1. Memahami konsep dan operasi pada Stack. 2. Mampu mengimplementasikan struktur data Stack pada array dan List.

1. Mana diantara pilihan-pilihan berikut ini yang merupakan penulisan loop yang benar?

INTERAKSI ANTAR OBJECT

Struktur Data II. Single Linked List - Non circular

STL DLL STRUKTUR DATA. JULIO ADISANTOSO Departemen Ilmu Komputer IPB. Pertemuan 3 : 27 Juni 2016

A. TUJUAN PEMBELAJARAN

Algoritma dan Struktur Data. Ramos Somya, S.Kom., M.Cs.

Stack. Gambar 1.1 Stack

Array Multidimensi. Pemrograman Dasar. Java

05. Double Linked List

LAPORAN PRAKTIKUM RESMI QUEUE

Gambar 1. Langkah-langkah pengurutan metode Insertion Sort (1)

PRAKTIKUM ALGORITMA & PEMROGRAMAN III MODUL_06 Stack (Tumpukan)

5. QUEUE (ANTRIAN) TUJUAN PRAKTIKUM

Algoritma dan Struktur Data. Linked List

Praktikum Exception Handling

Ujian Tengah Semester Struktur Data dan Algoritma Fakultas Ilmu Komputer, Universitas Indonesia 9 November 2006

LAPORAN PRAKTIKUM ALGORITMA DAN STRUKTUR DATA FAKULTAS ILMU KOMPUTER UNIVERSITAS BRAWIJAYA

Tugas Studi Kasus. Linked List SLLNC dengan Head & Tail

Konsep Lanjut Pemrograman Objek

Silsilah keluarga Hasil pertandingan yang berbentuk turnamen Struktur organisasi dari sebuah perusahaan. B.1 Pohon Biner (Binary Tree)

Algoritma dan Struktur Data. Ramos Somya

A. TUJUAN PEMBELAJARAN 1. Mengetahui cara menangani exception dengan cara melempar exception. 2. Mengetahui cara membuat sendiri class exception.

TUGAS PENDAHULUAN MODUL 12 PENGENALAN DAN IMPLEMENTASI STRUKTUR DATA STACK

3. DOUBLE LINK LIST. Lab. Teknik Informatika Struktur Data 1

Array VS Linked List

STACK atau TUMPUKAN. Pertemuan 5 STACK (TUMPUKAN)

Kode : IF2121 NIM :... Matakuliah : Algoritma dan Struktur Data Nama :... Hari, Tanggal : Senin, 13 November 2017 Waktu : 150 Menit

Senarai berantai. linked list. Pertemuan keenam Struktur data st3telkom.ac.id. by : tenia wahyuningrum & Sisilia Thya Safitri

Jika Anda ingin bisa/sukses dalam kuliah SDA ini, rajinlah mengimplementasikan ADT dan mengerjakan soal-soal yang diberikan.

SINGLE LINKED LIST (NON CIRCULAR)

Pemrograman Berorientasi Obyek Lanjut (IT251) Ramos Somya, S.Kom., M.Cs.

BAB IV Antrian(Queue)

Modul 4: Iteratif & Rekursif, Binary Tree

KUM 6 IMPLEMENTASI BINARY TREE

Modul Praktikum 3 Pemograman Berorientasi Objek

Array dan Vector Linked List STRUKTUR DATA. JULIO ADISANTOSO Departemen Ilmu Komputer IPB. Pertemuan 2 : 23 Juni 2015

Transkripsi:

MODUL PRAKTIKUM STRUKTUR DATA DAN ALGORITMA LINKED LIST (BAGIAN 1) Deskripsi Singkat Struktur data array memang sederhana namun unsur-unsur pada array terkait rapat sehingga proses menggeser data di dalam array memerlukan waktu yang lebih lama. Selain itu array juga terbatas ukuran, sehingga jika ukuran diset terlalu besar namun yang dipakai sedikit akan mubazir space. Sebaliknya jika data yang dimasukkan terlalu banyak, maka bisa saja melebihi ukuran. Oleh karena itu terdapat struktur data yang fleksibel dari segi ukuran dan kaitan antar item, yaitu linked list. Linked list ini terdiri dari node yang saling terhubung. Node merupakan tipe khusus objek yang mewakili suatu elemen simpanan pada list. Setiap node pasti akan ada data dan reference ke node berikutnya. Pada single linked list, node yang digunakan hanya memiliki satu reference. Sedangkan pada double linked list, node yang digunakan memiliki dua reference ke node lain. Tujuan 1. Memahami konsep linear single linked list dan linear double linked list 2. Memahami konsep circular single linked list dan circular double linked list 3. Menggunakan konsep linear single linked list dan linear double linked list pada program sederhana 4. Menggunakan konsep circular single linked list dan circular double linked list pada program sederhana Materi 1 : Linear Single Linked List Linear single linked list terdiri dari node yang dihubungkan oleh satu reference link menunjuk ke node yang lain secara satu arah. Linear single linked list memiliki 2 atribut yaitu node first dan node last. Elemen awal diakses oleh node first dan elemen akhir diakses oleh node last. Ilustrasinya seperti gambar di bawah. Sebelum kita membuat linked list, maka terlebih dahulu kita membuat class Node. Berikut ini class Node tersebut. public class Node protected int data;

protected Node link; /* Constructor */ public Node() link = null; data = 0; /* Constructor */ public Node(int d,node n) data = d; link = n; /* Function to set link to next Node */ public void setlink(node n) link = n; /* Function to set data to current Node */ public void setdata(int d) data = d; /* Function to get link to next node */ public Node getlink() return link; /* Function to get data from current Node */ public int getdata() return data; Setelah kita membuat class Node, barulah kita buat class SinglyLinkedList, berikut ini kode programnya. Class ini juga menambahkan method main untuk menguji class tersebut. public class SinglyLinkedList protected Node first; protected Node last; public int size; /* Constructor */ public SinglyLinkedList() first = null;

last = null; size = 0; //method untuk mengecek apakah linked list kosong atau tidak public boolean isempty() return first == null; //method untuk mengembalikan ukuran linked list sekarang public int getsize() return size; //method untuk memasukkan node di awal linked list public void insertawal(int val) //buat satu node baru Node nptr = new Node(val, null); if(first == null) //jika linked list masih kosong last = first; nptr.setlink(first); //tambah ukuran linked list size++; //method untuk memasukkan node di akhir linked list public void insertakhir(int val) //buat satu node baru Node nptr = new Node(val, null); if(first == null) //jika linked list masih kosong last = first; last.setlink(nptr); last = nptr;

//tambah ukuran linked list size++; //method untuk memasukkan node di posisi tertentu public void insertatpos(int val, int pos) //buat satu node baru Node nptr = new Node(val, null); if(pos > size) System.out.println("Posisi melebihi batas linked list"); if(pos == 1) insertawal(val); if(pos == size) insertakhir(val); Node ptr = first; pos = pos - 1; for(int i=1; i<size; i++) if(i == pos) //ketemu posisi Node tmp = ptr.getlink(); ptr.setlink(nptr); nptr.setlink(tmp); break; ptr = ptr.getlink(); //tambah ukuran linked list size++; //method untuk menghapus node di awal linked list public void deleteawal() first = first.getlink(); size--; //kurangi ukuran linked list //method untuk menghapus node di akhir linked list public void deleteakhir() Node temp = first;

for(int i=1; i<size-1; i++) temp = temp.getlink(); last = temp; last.setlink(null); size--; //kurangi ukuran linked list //method untuk menghapus node pada posisi tertentu public void deleteatpos(int pos) if(pos > size) System.out.println("Posisi node melebihi ukuran"); if(pos == 1) this.deleteawal(); if(pos == size) this.deleteakhir(); Node ptr = first; pos--; for(int i=1; i<=pos; i++) if(i == pos) Node temp = ptr.getlink(); temp = temp.getlink(); ptr.setlink(temp); break; ptr = ptr.getlink(); size--; //method untuk menampilkan semua unsur dalam linked list public void display() Node ptr = first; while(true) if(ptr == null) break; System.out.print(ptr.getData() + "->"); ptr = ptr.getlink();

System.out.println(); public static void main(string[] ar) SinglyLinkedList lk = new SinglyLinkedList(); lk.insertawal(10); lk.insertawal(20); lk.insertakhir(30); lk.insertawal(40); lk.insertatpos(50, 2); lk.insertakhir(60); lk.display(); //lk.deleteawal(); //lk.deleteakhir(); lk.deleteatpos(2); lk.display(); Apakah output dari program di atas? Bagaimana tampilan hasilnya sesudah proses insert dan delete? Materi 2 : Linear Double Linked List Linear double linked list terdiri dari node yang dihubungkan oleh dua reference link menunjuk ke node sebelumnya dan node sesudahnya. Linear double linked list memiliki 2 atribut yaitu node start dan node end. Elemen awal diakses oleh node start dan elemen akhir diakses oleh node end. Ilustrasinya seperti gambar di bawah. Sebelum kita membuat linked list, maka terlebih dahulu kita membuat class Node. Class Node pada double linked list tidak sama dengan single linked list karena nodenya memiliki 3 atribuat yaitu data node next dan node prev. Berikut ini class Node tersebut. public class NodeDoubly protected int data; protected NodeDoubly next, prev; /* Constructor */

public NodeDoubly() next = null; prev = null; data = 0; /* Constructor */ public NodeDoubly(int d, NodeDoubly n, NodeDoubly p) data = d; next = n; prev = p; /* Function to set link to next node */ public void setlinknext(nodedoubly n) next = n; /* Function to set link to previous node */ public void setlinkprev(nodedoubly p) prev = p; /* Funtion to get link to next node */ public NodeDoubly getlinknext() return next; /* Function to get link to previous node */ public NodeDoubly getlinkprev() return prev; /* Function to set data to node */ public void setdata(int d) data = d; /* Function to get data from node */ public int getdata() return data; Setelah kita membuat class Node, barulah kita buat class DoublyLinkedList, berikut ini kode programnya. Class ini juga menambahkan method main untuk menguji class tersebut. public class DoublyLinkedList

protected NodeDoubly first; protected NodeDoubly last; public int size; /* Constructor */ public DoublyLinkedList() first = null; last = null; size = 0; //method untuk mengecek apakah linked list kosong public boolean isempty() return first == null; //method untuk mengembalikan ukuran linked list public int getsize() return size; //method untuk menambah elemen di awal linked list public void insertawal(int val) NodeDoubly nptr = new NodeDoubly(val, null, null); if(first == null) last = first; first.setlinkprev(nptr); nptr.setlinknext(first); size++; //method untuk menambah elemen di akhir linked list public void insertakhir(int val) NodeDoubly nptr = new NodeDoubly(val, null, null); if(first == null) last = first;

nptr.setlinkprev(last); last.setlinknext(nptr); last = nptr; size++; //method untuk menambah elemen di sekitar tengah public void insertatpos(int val, int pos) NodeDoubly nptr = new NodeDoubly(val, null, null); if (pos > size) System.out.println("Posisi melebihi batas linked list"); if (pos == 1) insertawal(val); if (pos == size) insertakhir(val); NodeDoubly ptr = first; for (int i = 2; i <= size; i++) if (i == pos) NodeDoubly tmp = ptr.getlinknext(); ptr.setlinknext(nptr); nptr.setlinkprev(ptr); nptr.setlinknext(tmp); tmp.setlinkprev(nptr); ptr = ptr.getlinknext(); size++ ; //method untuk menghapus node di awal linked list public void deleteawal() if(size == 1) //jika hanya ada 1 node first = null; last = null; size = 0; first = first.getlinknext(); first.setlinkprev(null); size--;

//method untuk menghapus node di akhir linked list public void deleteakhir() last = last.getlinkprev(); last.setlinknext(null); size--; //method untuk menghapus node di posisi tertentu public void deleteatpos(int pos) if(pos > size) System.out.println("Posisi node melebihi ukuran"); if(pos == 1) this.deleteawal(); if(pos == size) this.deleteakhir(); NodeDoubly ptr = first.getlinknext(); for(int i=2; i<=size; i++) if(i == pos) NodeDoubly p = ptr.getlinkprev(); NodeDoubly n = ptr.getlinknext(); p.setlinknext(n); n.setlinkprev(p); size--; ptr = ptr.getlinknext(); //method untuk menampilkan semua unsur dalam linked list public void display() NodeDoubly ptr = first; while(true) if(ptr == null) break; System.out.print(ptr.getData() + "->"); ptr = ptr.getlinknext(); System.out.println();

public static void main(string[] ar) DoublyLinkedList dl = new DoublyLinkedList(); dl.insertawal(10); dl.insertawal(20); dl.insertakhir(30); dl.insertatpos(40, 3); dl.insertatpos(50, 3); dl.display(); dl.deleteawal(); dl.deleteakhir(); dl.deleteatpos(2); dl.display(); Apakah output dari program di atas? Bagaimana tampilan hasilnya sesudah proses insert dan delete? Materi 3 : Circular Single Linked List Circular single linked list mirip seperti linear single linked list. Bedanya jika node last pada linear menunjuk ke null, namun pada circular node last akan selalu menunjuk ke first. Sehingga linked list seakan-akan menjadi bentuk circular/lingkaran. Kondisi lainnya tidak berbeda jauh dengan linked list yang linear single. Ilustrasinya seperti gambar di bawah. Node yang digunakan untuk circular single linked list sama seperti node linear single linked list. Jadi kita langsung lanjutkan dengan membuat kode program CircularSinglyLinkedList. public class CircularSinglyLinkedList protected Node first; protected Node last; public int size; /* Constructor */

public CircularSinglyLinkedList() first = null; last = null; size = 0; //method untuk mengecek apakah linked list kosong atau tidak public boolean isempty() return first == null; //method untuk mengembalikan ukuran linked list sekarang public int getsize() return size; //method untuk memasukkan node di awal linked list public void insertawal(int val) //buat satu node baru Node nptr = new Node(val, null); nptr.setlink(first); if(first == null) //jika linked list masih kosong nptr.setlink(first); last = first; last.setlink(nptr); //tambah ukuran linked list size++; //method untuk memasukkan node di akhir linked list public void insertakhir(int val) //buat satu node baru Node nptr = new Node(val, null); nptr.setlink(first); if(first == null) //jika linked list masih kosong

nptr.setlink(first); last = first; last.setlink(nptr); last = nptr; //tambah ukuran linked list size++; //method untuk memasukkan node di posisi tertentu public void insertatpos(int val, int pos) //buat satu node baru Node nptr = new Node(val, null); if(pos > size) System.out.println("Posisi melebihi batas linked list"); if(pos == 1) insertawal(val); if(pos == size) insertakhir(val); Node ptr = first; pos = pos - 1; for(int i=1; i<size; i++) if(i == pos) //ketemu posisi Node tmp = ptr.getlink(); ptr.setlink(nptr); nptr.setlink(tmp); break; ptr = ptr.getlink(); //tambah ukuran linked list size++; //method untuk menghapus node di awal linked list public void deleteawal() if(size == 1)

first = null; last = null; size = 0; first = first.getlink(); last.setlink(first); size--; //kurangi ukuran linked list //method untuk menghapus node di akhir linked list public void deleteakhir() Node temp = first; for(int i=1; i<size-1; i++) temp = temp.getlink(); last = temp; last.setlink(first); size--; //kurangi ukuran linked list //method untuk menghapus node pada posisi tertentu public void deleteatpos(int pos) if(pos > size) System.out.println("Posisi node melebihi ukuran"); if(pos == 1) this.deleteawal(); if(pos == size) this.deleteakhir(); Node ptr = first; pos--; for(int i=1; i<=pos; i++) if(i == pos) Node temp = ptr.getlink(); temp = temp.getlink(); ptr.setlink(temp); break; ptr = ptr.getlink(); size--;

//method untuk menampilkan semua unsur dalam linked list public void display() Node ptr = first; while(true) System.out.print(ptr.getData() + "->"); if(ptr == last) break; ptr = ptr.getlink(); System.out.println(); public static void main(string[] ar) CircularSinglyLinkedList lk = new CircularSinglyLinkedList(); lk.insertawal(10); lk.insertawal(20); lk.insertakhir(30); lk.insertawal(40); lk.insertatpos(50, 2); lk.insertakhir(60); lk.insertakhir(70); lk.display(); lk.deleteawal(); lk.deleteakhir(); lk.deleteatpos(2); lk.display(); Apakah output dari program di atas? Bagaimana tampilan hasilnya sesudah proses insert dan delete? Materi 4 : Circular Double Linked List Circular double linked list mirip seperti linear double linked list. Bedanya jika node last pada linear menunjuk ke null, namun pada circular node last akan selalu menunjuk ke first. Sehingga linked list seakan-akan menjadi bentuk circular/lingkaran. Kondisi lainnya tidak berbeda jauh dengan linked list yang linear double. Ilustrasinya seperti gambar di bawah.

Node yang digunakan untuk circular double linked list sama seperti node linear double linked list yaitu class NodeDoubly. Jadi kita langsung lanjutkan dengan membuat kode program CircularDoublyLinkedList. public class CircularDoublyLinkedList protected NodeDoubly first; protected NodeDoubly last; public int size; /* Constructor */ public CircularDoublyLinkedList() first = null; last = null; size = 0; //method untuk mengecek apakah linked list kosong public boolean isempty() return first == null; //method untuk mengembalikan ukuran linked list public int getsize() return size; //method untuk menambah elemen di awal linked list public void insertawal(int val) NodeDoubly nptr = new NodeDoubly(val, null, null); if(first == null) nptr.setlinknext(nptr); nptr.setlinkprev(nptr); last = first; nptr.setlinkprev(last); last.setlinknext(nptr);

first.setlinkprev(nptr); nptr.setlinknext(first); size++; //method untuk menambah elemen di akhir linked list public void insertakhir(int val) NodeDoubly nptr = new NodeDoubly(val, null, null); if(first == null) nptr.setlinknext(nptr); nptr.setlinkprev(nptr); last = first; nptr.setlinkprev(last); last.setlinknext(nptr); first.setlinkprev(nptr); nptr.setlinknext(first); last = nptr; size++; //method untuk menambah elemen di sekitar tengah public void insertatpos(int val, int pos) NodeDoubly nptr = new NodeDoubly(val, null, null); if (pos > size) System.out.println("Posisi melebihi batas linked list"); if (pos == 1) insertawal(val); if (pos == size) insertakhir(val); NodeDoubly ptr = first; for (int i = 2; i <= size; i++) if (i == pos) NodeDoubly tmp = ptr.getlinknext(); ptr.setlinknext(nptr); nptr.setlinkprev(ptr); nptr.setlinknext(tmp); tmp.setlinkprev(nptr);

ptr = ptr.getlinknext(); size++ ; //method untuk menghapus node di awal linked list public void deleteawal() if(size == 1) //jika hanya ada 1 node first = null; last = null; size = 0; first = first.getlinknext(); first.setlinkprev(last); last.setlinknext(first); size--; //method untuk menghapus node di akhir linked list public void deleteakhir() last = last.getlinkprev(); last.setlinknext(first); first.setlinkprev(last); size--; //method untuk menghapus node di posisi tertentu public void deleteatpos(int pos) if(pos > size) System.out.println("Posisi node melebihi ukuran"); if(pos == 1) this.deleteawal(); if(pos == size) this.deleteakhir(); NodeDoubly ptr = first.getlinknext(); for(int i=2; i<=size; i++) if(i == pos) NodeDoubly p = ptr.getlinkprev(); NodeDoubly n = ptr.getlinknext();

p.setlinknext(n); n.setlinkprev(p); size--; ptr = ptr.getlinknext(); //method untuk menampilkan semua unsur dalam linked list public void display() NodeDoubly ptr = first; while(true) System.out.print(ptr.getData() + "->"); if(ptr == last) break; ptr = ptr.getlinknext(); System.out.println(); public static void main(string[] ar) CircularDoublyLinkedList dl = new CircularDoublyLinkedList(); dl.insertawal(10); dl.insertawal(20); dl.insertakhir(30); dl.insertatpos(40, 3); dl.insertatpos(50, 3); dl.display(); dl.deleteawal(); dl.deleteakhir(); dl.deleteatpos(2); dl.display(); Apakah output dari program di atas? Bagaimana tampilan hasilnya sesudah proses insert dan delete?

LATIHAN 1 Buat semua class-class yang ada dalam praktikum ini. Apakah yang dapat anda simpulkan? SOAL-SOAL 1.