📘Praktikum 3

Deskripsi

Pada praktikum 3 ini dilakukan uji coba untuk mengambil data pada linked list dalam 3 kondisi, yaitu mengambil data paling awal, paling akhir dan data pada indeks tertentu dalam linked list. Method mengambil data dinamakan dengan get. Ada 3 method get yang dibuat pada praktikum ini sesuai dengan diagram class DoublyLinkedList.

Langkah Percobaan

  • Buatlah method getFirst() di dalam class DoublyLinkedList untuk mendapatkan data pada awal linked lists.

public int getFirst() throws Exception {
    if (isEmpty()) {
        throw new Exception("Linked List kosong");
    }
    return head.data;
}
  • Selanjutnya, buatlah method getLast() untuk mendapat data pada akhir linked lists.

public int getLast() throws Exception {
    if (isEmpty()) {
        throw new Exception("Linked List kosong");
    }
    Node tmp = head;
    while (tmp.next != null) {
        tmp = tmp.next;
    }
    return tmp.data;
}
  • Method get(int index) dibuat untuk mendapatkan data pada indeks tertentu.

public int get(int index) throws Exception {
    if (isEmpty() || index >= size) {
        throw new Exception("Nilai indeks di luar batas.");
    }
    Node tmp = head;
    for (int i = 0; i < index; i++) {
        tmp = tmp.next;
    }
    return tmp.data;
}
  • Pada main class tambahkan potongan program berikut dan amati hasilnya!

dll.print();
System.out.println("Size : " + dll.size());
System.out.println("==========================");
dll.addFirst(3);
dll.addLast(4);
dll.addFirst(7);
dll.print();
System.out.println("Size : " + dll.size());
System.out.println("==========================");
dll.add(40,1);
dll.print();
System.out.println("Size : " + dll.size());
System.out.println("==========================");
System.out.println("Data awal pada Linked Lists adalah : " + dll.getFirst());
System.out.println("Data akhir pada Linked Lists adalah : " + dll.getLast());
System.out.println("Data indeks ke-1 pada Linked Lists adalah : " + dll.get(1));

Verifikasi Hasil Praktikum

Hasilnya akan seperti berikut,

Pertanyaan

  • Jelaskan method size() pada class DoublyLinkedList!

  • Jelaskan cara mengatur indeks pada doubly linked lists supaya dapat dimulai dari indeks ke-1!

  • Jelaskan perbedaan karakteristik fungsi Add pada doubly linked list dan single linked list!

  • Jelaskan perbedaan logika dari kedua kode program di bawah ini!

  • Kode 1

public boolean isEmpty() {
    if(size==0) {
        return true;
    } else {
        return false;
    }
}
  • Kode 2

public boolean isEmpty() {
    return head == null;
}

Last updated