๐Ÿ“•Praktikum 1

Deksripsi

Pada praktikum 1 ini akan dibuat class Node dan class DoublyLinkedList yang didalamnya terdapat operasi-operasi untuk menambahkan data dengan beberapa cara (dari bagian depan linked list, belakang ataupun indeks tertentu pada linked list).

Class diagram berikut merupakan acuan utama untuk class Node dan DoublyLinkedList

Langkah Percobaan

  • Buatlah projek baru.

  • Buat kelas Node.

  • Tambahkan atribut berikut pada kelas Node.

  • Tambahkan konstruktor untuk kelas Node.

  • Buat kelas DoublyLinkedList.

  • Pada kelas tersebut, tambahkan atribut berikut,

  • Selanjutnya, buatlah konstruktor untuk kelas DoublyLinkedList.

  • Tambahkan method isEmpty().

  • Kemudian, buat method addFirst(). Method ini akan menjalankan penambahan data di bagian depan linked list.

  • Selain itu pembuatan method addLast() akan menambahkan data pada bagian belakang linked list.

  • Untuk menambahkan data pada posisi yang telah ditentukan dengan indeks, dapat dibuat dengan method add(int item, int index).

  • Jumlah data yang ada di dalam linked lists akan diperbarui secara otomatis, sehingga dapat dibuat method size() untuk mendapatkan nilai dari size.

  • Selanjutnya dibuat method clear() untuk menghapus semua isi linked lists, sehingga linked lists dalam kondisi kosong.

  • Untuk mencetak isi dari linked lists dibuat method print(). Method ini akan mencetak isi linked lists berapapun size-nya. Jika kosong akan dimunculkan suatu pemberitahuan bahwa linked lists dalam kondisi kosong.

  • Selanjutya dibuat class DoublyLinkedListMain untuk mengeksekusi semua method yang ada pada class DoublyLinkedList.

  • Isikan kode berikut pada method main.

Verifiaksi Hasil Praktikum

Verifikasi hasil kompilasi kode program Anda dengan gambar berikut ini.

Pertanyaan

  • Jelaskan perbedaan antara single linked list dengan doubly linked lists!

  • Perhatikan class Node, di dalamnya terdapat atribut next dan prev. Untuk apakah atribut

    tersebut?

  • Perhatikan konstruktor pada class DoublyLinkedList. Apa kegunaan inisialisasi atribut head dan size?

  • Pada method addFirst(), mengapa dalam pembuatan objek dari konstruktor class Node prev dianggap sama dengan null? head = new Node(null, data, null);

  • Perhatikan pada method addFirst(). Apakah arti statement head.prev = newNode?

  • Perhatikan isi method addLast(), apa arti dari pembuatan objek Node dengan mengisikan parameter prev dengan current, dan next dengan null? Node newNode = new Node(current, data, null);

  • Pada method add(), terdapat potongan kode program sebagai berikut. Jelaskan maksud dari potongan kode tersebut.

Last updated