LINKED LIST
LINKED
LIST
1.
PENGERTIAN LINKED LIST
Single Linked List merupakan
sebuah tempat yang disediakan pada satu area memori tertentu untuk menyimpan
data yang dikenal dengan sebutan node atau simpul. Setiap node memiliki pointer
yang menunjuk ke simpul berikutnya sehingga terbentuk satu untaian, dengan
demikian hanya diperlukan sebuah variabel pointer. Susunan berupa untaian
semacam ini disebut Single Linked List. Biasanya Linked List pada
node terakhir akan menunjuk ke NULL, dimana NULL memilik nilai
khusus yang artinya tidak menunjuk ke mana-mana. Pembuatan Single
Linked List dapat menggunakan 2 metode:
Ø LIFO
(Last In First Out), aplikasinya : Stack (Tumpukan)
Ø FIFO
(First In First Out), aplikasinya : Queue (Antrean)
2.
OPERASI PADA CLASS NODE
Ø getData() digunakan
untuk mendapatkan atau mengetahui sebuah nilai yang terdapat didalam setiap
node.
Ø getNext() metode
yang satu ini digunakan untuk mengetahui nilai yang berada di depannya.
Ø setData() ini
digunakan untuk mengganti nilai yang terkandung di dalam sebuah list.
Ø setNext() merupakan
metode yang digunakan untuk mengatur atau mendeklarasikan data yang ada di
depannya.
Namun
penggunaan class tersebut masih kurang efektif dan kurang enak untuk digunakan.
Jadi, terdapat class tambahan yang bisa digunakan untuk mebuatnya semakin nyaman
dan lebih mudah dipahami, class tersebut bernama ordered list dan un ordered
list. Perbedaan dari kedua list tersebut hanya terdapat pada pengurutan
datanya. Jadi, ordered list ini datanya akan selalu di urut mulai dari yang
besar menuju yang kecil. Jadi ini diperuntukkan bagi item yang menggunakan
angka. dan untuk unordered list list atau data yang dimasukkan kedalam list,
tidak akan diurut, nah untuk penggunaan dalam rangka mempermudah ini, saya akan
menggunakan unordered list karena, list ini bisa digunakan untuk menambahkan
tipe data apa saja. Seperti integer dan string. Jadi akan memudah kan kalian
dalam menggunakan class ini nantinya, nah class dari unordered list ini
memiliki 5 buah metode untuk memberikan kalian kemudahan dalam menggunakan
linked list, nah 5 buah metode dapat Anda lihat di bawah ini.
3.
UNORDEREDLIST
UnOrderedList() membuat suatu
list baru yang kosong. Tidak memerlukan parameter dan mengembalikan suatu list
kosong.
Ø add(item) menambahkan
suatu item baru ke dalam list. Diperlukan item yang akan ditambahkan dan tidak
mengembalikan apapun. Anggapan: item tersebut belum ada dalam list.
Ø remove(item) menghapus
item dari dalam list. Diperlukan item dan akan mengubah list. Anggapan: item
tersebut tersedia di dalam list.
Ø search(item) mencari
item di dalam list. Perlu item dan mengembalikan suatu nilai boolean.
Ø isEmpty() menguji
untuk melihat apakah list dalam keadaan kosong (empty). Tidak memerlukan
parameter dan mengembalikan suatu nilai boolean.
Ø size() mengembalikan
jumlah item di dalam list. Tidak memerlukan parametyer dan mengembalikan suatu
integer
Berikut Source code untuk contoh
Unorderedlist :
class Node:
def __init__(self,initdata):
self.data = initdata
self.next = None
def getData(self):
return self.data
def getNext(self):
return self.next
def setData(self,newdata):
self.data = newdata
def setNext(self,newnext):
self.next = newnext
class Unorderedlist:
def __init__(self):
self.head = None
def show(self):
current = self.head
print('Head ->', end='')
while current != None:
print(current.getData(), end =
'->')
current = current.getNext()
print('None')
def isEmpty(self):
return self.head == None
def add(self, item):
temp = Node(item)
temp.setNext(self.head)
self.head = temp
def size(self):
current = self.head
count = 0
while current != None:
count += 1
current = current.getNext()
return count
def search(self,item):
current = self.head
found = False
while current != None and not found:
if current.getData() == item:
found = True
else:
current = current.getNext()
return found
def remove(self,item):
current = self.head
previous = None
found = False
while not found:
if current.getData() == item:
found = True
else:
previous = current
current = current.getNext()
if previous == None:
self.head = current.getNext()
else:
previous.setNext(current.getNext())
mylist = Unorderedlist()
mylist.add(31)
mylist.add(20)
mylist.add(41)
mylist.show()
Di post oleh :
1. FITRI ANISA (170411100014)
2. DHEA OKY SYAFITRI (170411100006)
Komentar
Posting Komentar