📕Praktikum 1
Last updated
Last updated
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
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.
Verifikasi hasil kompilasi kode program Anda dengan gambar berikut ini.
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.