STRUKTUR DATA
PROGRAM TEKNOLOGI INFORMASI DAN ILMU
KOMPUTER
UNIVERSITAS BRAWIJAYA
BAB
NAMA
NIM
TANGGAL
ASISTEN
A. DEFINISI MASALAH
Memodifikasi program di Double Linked List dengan mengganti tipe item data
pada NodeDLL dengan Object. Kemudian menggunakan class Masiswa yang pernah
dibuat pada praktikum 4 untuk diisikan pada DLL. Menggunakan pemasukan data
secara interaktif.
Mahasiswa
String nim
String nama
double ipk
Constructor Mahasiswa
double getIpk
String getNim
String getNama
B. SOURCE CODE
1. DLL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
package ADT_LIST_BARU;
import java.util.Scanner;
class NodeDLL {
Object data = new Mahasiswa();
NodeDLL prev, next;
}
public class DoubleLinkedList {
private NodeDLL pKepala, pEkor;
public DoubleLinkedList() {
pKepala = null;
pEkor = null;
}
public void sisipDipKepala(Object dt) {
NodeDLL baru = new NodeDLL();
baru.data = dt;
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
if (pKepala == null) {
baru.prev = pKepala;
baru.next = pEkor;
pKepala = baru;
pEkor = baru;
} else {
baru.next = pKepala;
pKepala.prev = baru;
pKepala = baru;
}
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
data1.data = maba;
}
data2 = data2.next;
}
data1 = data1.next;
}
do {
System.out.print("Masukan NIM
NIM = input.nextLong();
System.out.print("Masukan Nama
nama = line.nextLine();
System.out.print("Masukan IPK
ipk = input.nextDouble();
: ");
: ");
? ");
lagi = input.next();
System.out.println("");
} while (lagi.equalsIgnoreCase("y"));
DLL.cetak("===== Data Mahasiswa : =====");
}
2. Mahasiswa
1
2
3
4
5
: ");
package ADT_LIST_BARU;
public class Mahasiswa {
Long nim;
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
String nama;
double ipk;
public Mahasiswa() {
}
public Mahasiswa(Long nim, String nama, double ipk) {
this.nim = nim;
this.nama = nama;
this.ipk = ipk;
}
@Override
public String toString(){
return ("Nim : " + nim + "\n"
+ "Nama : " + nama + "\n"
+ "IPK : " + ipk + "\n");
}
}
C. PEMBAHASAN
1. DLL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 -18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
2. Mahasiswa
1
2
3
4
5
6
7
8
9 10
11
12 - 16
17
18
19
20
21
22
23
24
D. SCREENSHOT PROGRAM
E. KESIMPULAN
1. DLL singkatan dari Double Linked List, merupakan salah satu tipe Linked List
yang memiliki keunikan dimana datanya bisa di baca dari dua arah, Node pada
DLL memiliki attribute Node sesudah dan Node sebelum, sehingga program dapat
mengetahui urutan Node pada DLL dari depan maupun dari belakang.
2. Perbedaan SLL dengan DLL diantaranya :
a. Pada SLL, Node hanya dapat dibaca dari depan ke belakang (Head to
Tail), sedangkan pada DLL, Node dapat dibaca dari depan maupun
belakang (dua arah).
b. Node pada SLL memiliki atribut next saja, sedangkan pada DLL memiliki
next dan prev.
3. Implementasi dari DLL yaitu dengan cara menambahkan atribut next dan prev
bertipe Node.
public void Node{
Object data;
Node next, prev;
public Node(){
}
public Node(Object data){
this.data = data;
}
}