Advertisement
Guest User

Untitled

a guest
Mar 26th, 2019
181
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 26.08 KB | None | 0 0
  1. QUEUE
  2. Queue pada Struktur Data atau antrian adalah sekumpulan data yang mana penambahan elemen hanya bisa dilakukan pada suatu ujung disebut dengan sisibelakang(rear), dan penghapusan(pengambilan elemen) dilakukan lewat ujung lain (disebut dengan sisi depan atau front).
  3. Pada Stack atau tumpukan menggunakan prinsip“Masuk terakhir keluar pertama”atau LIFO (Last In First Out), Maka pada Queue atau antrian prinsip yang digunakan adalah “Masuk Pertama Keluar Pertama” atau FIFO (First In First Out).
  4. Queue atau antrian banyak kita jumpai dalam kehidupan sehari-hari, ex: antrian Mobil diloket Tol, Antrian mahasiswa Mendaftar, dll.
  5. Contoh lain dalam bidang komputer adalah pemakaian sistem komputer berbagi waktu(time-sharing computer system) dimana ada sejumlah pemakai yang akan menggunakan sistem tersebut secara serempak.
  6. Pada Queue atau antrian Terdapat satu buah pintu masuk di suatu ujung dan satu buah pintu keluar di ujung satunya dimana membutuhkan variabel Head dan Tail ( depan/front, belakang/rear).
  7.  
  8. Karakteristik Queue atau antrian :
  9. 1. elemen antrian
  10. 2. front (elemen terdepan antrian)
  11. 3. tail (elemen terakhir)
  12. 4. jumlah elemen pada antrian
  13. 5. status antrian
  14.  
  15. Operasi pada Queue atau antrian
  16. 1. tambah(menambah item pada belakang antrian)
  17. 2. hapus (menghapus elemen depan dari antrian)
  18. 3. kosong( mendeteksi apakah pada antrian mengandung elemen atau tidak)
  19.  
  20. Operasi-operasi Queue :
  21. 1. Create()
  22. Untuk menciptakan dan menginisialisasi Queue
  23. Dengan cara membuat Head dan Tail = -1
  24.  
  25.  
  26.  
  27.  
  28.  
  29. 2. IsEmpty()
  30. Untuk memeriksa apakah Antrian sudah penuh atau belum
  31. Dengan cara memeriksa nilai Tail, jika Tail = -1 maka empty
  32. Kita tidak memeriksa Head, karena Head adalah tanda untuk kepala antrian (elemen pertama dalam antrian) yang tidak akan berubah-ubah
  33. Pergerakan pada Antrian terjadi dengan penambahan elemen Antrian kebelakang, yaitu menggunakan nilai Tail.
  34.  
  35.  
  36. 3. IsFull
  37. Untuk mengecek apakah Antrian sudah penuh atau belum
  38. Dengan cara mengecek nilai Tail, jika Tail >= MAX-1 (karena MAX-1 adalah batas elemen array pada C) berarti sudah penuh
  39.  
  40.  
  41.  
  42. 4. Enqueue
  43. Untuk menambahkan elemen ke dalam Antrian, penambahan elemen selalu ditambahkan di elemen paling belakang
  44. Penambahan elemen selalu menggerakan variabel Tail dengan cara increment counter Tail terlebih dahulu
  45.  
  46.  
  47. 5. Dequeue()
  48. Digunakan untuk menghapus elemen terdepan/pertama (head) dari Antrian
  49. Dengan cara menggeser semua elemen antrian kedepan dan mengurangi Tail dgn 1
  50. Penggeseran dilakukan dengan menggunakan looping.
  51.  
  52.  
  53.  
  54. 6. Clear()
  55. Untuk menghapus elemen-elemen Antrian dengan cara membuat Tail dan Head = -1
  56. Penghapusan elemen-elemen Antrian sebenarnya tidak menghapus arraynya, namun hanya mengeset indeks pengaksesan-nya ke nilai -1 sehingga elemen-elemen Antrian tidak lagi terbaca
  57.  
  58.  
  59. 7. Tampil()
  60. Untuk menampilkan nilai-nilai elemen Antrian
  61. Menggunakan looping dari head s/d tail
  62.  
  63.  
  64.  
  65.  
  66. CLASS
  67.  
  68. Apa sih yang di maksud dengan class pada Python ?
  69. Nah sebelum kita masuk ke sesi pembuatan class ini, saya akan mengajak kalian terlebih dahulu untuk mengenal apa yang saya maksud mengenai class pada bahasa pemrograman python ini.. Sehingga pembelajarannya akan saya buat secara bertahap.. Sehingga dengan begitu, saya harap kalian dapat dengan mudah memahami materi yang saya bahas pada postingan saya kali ini... Yuk langsung saja kita mulai...
  70.  
  71. Jadi, class merupakan sebuah objek yang di dalam nya biasanya terdapat beberapa metode yang memang merupakan isi dari sebuah class ini. Class dan metode ini biasa di sembut sebagai OOP atau object oriented programing. Dan OOP ini memang fungsinya untuk memudahkan proses atau kegiatan programing kita... Ya mirip degan sebuah metode yang sudah saya bahas sebelumnya, namun, class ini merupakan sebuah objek yang lebih complex dengan di dalamnya berisi beberapa metode.. Jadi, kalau metode berisi berbagai code program, maka class berisi beberapa metode... Gimana ? Sudah jelas kan temen - temen ? Ya saya rasa sudah cukup jelas ya temen - temen..
  72.  
  73. Jadi, jika kita analogikan terhadap kehidupan nyata, konsepnya bisa kita analogikan terhadap sebuah ruang kelas. Dimana ruang kelas nya berfungsi sebagai class nya... Dan benda - benda yang ada di dalamnya seperti meja, kursi, papan, spidol dan yang lainnya adalah sebuah metode yang bisa kita panggil agar aktif bekerja sesuai fungsinya. Seperti sepidol yang berfungsi untuk menulis.
  74. Gimana ? Sudah ada gambaran belum tentang class ini ? Saya harap kalian sudah memiliki sedikit gambaran ya tentang apa yang saya jelaskan di atas... Nah untuk lebih jelasnya kalian bisa simak di sesi selanjutnya..
  75.  
  76.  
  77. Cara membuat sebuah class pada python.
  78. Nah setelah saya menjelaskan atau memperkenalkan kalian terhadap apa itu yang di maksud dengan class, maka sekarang saya akan mencoba untuk mengajak kalian untuk belajar cara membuat sebuah class di dalam bahasa pemrograman python... Nah seperti apa ya cara pembuatannya.. Yuk langsung saja kita simak sama - sama caranya di bawah ini...
  79.  
  80. Jadi, untuk membuat sebuah class ini, harus kita awali dengan sebuah kata kunci. Yaitu “class” yang kemudian di ikuti dengan “nama class nya”.. Dan yang terakhir adalah tanda kurung buka dan tutup serta tanda titik dua “()” dan ‘:’. untuk lebih mudahnya kita bisa lihat atau simak contohnya di bawah ini..
  81.  
  82. class namaClass () :
  83. def metode 1 (self) :
  84. Isi metode
  85. def metode 2 (self) :
  86. Isi metode
  87.  
  88. Nah gimana sudah ada sedikit gambaran kan mengenai apa yang di maksud dengan class ini ? Ya saya harap begitu ya temen - temen... Dan apabila kita perhatikan pada contoh class di atas, maka kita akan melihat semua metode yang ada di sana semuanya memuat kata “self”. Nah apa sih maksudnya ? Itu digunakan untuk mengoper class itu sendiri agar setiap data yang ada di dalam class tersebut dapat di pakai di dalam suatu metode di dalam nya.. Nah gimana masih bingung tentang self ini ? Kalian bisa mempelajarinya lebih lanjut di POSTINGAN SAYA YANG SATU INI. Mohon maaf saya tidak akan membahasnya panjang lebar disini ya... Karena fokus kita kali ini adalah pada class...
  89.  
  90.  
  91. Cara memanggil sebuah class dan metode didalamnya.
  92. Nah, setelah kita belajar pengertian serta cara membuat class ini, mmaka selanjutnya saya akan mengajak kalian untuk belajar cara memanggil sebuah class... Hal ini saya lakukan agar kalian tidak kebingungan saat memanggil class nantinya.. Nah lalu seperti apa ya cara memanggil nya ? Yuk langsung saja kita simak sama - sama cara untuk memanggil suatu class di bawah ini..
  93.  
  94. Jadi, untuk memanggil sebuah class, sama saja seperti layak nya memanggil metode.. Kita cukup menyebutkan nama classnya dengan di akhiri dengan tanda kurung buka dan tutup seperti di bawah ini..
  95.  
  96. namaClass()
  97.  
  98. Nah untuk memanggil metodenya, kita cukup menggunakan memanggil class yang kemudian di ikuti dengan pemanggilan nama metode yang tersedia di dalam class tersebut dengan di pisahkan oleh tanda titik. Seperti di bawah ini..
  99.  
  100. namaClass().namaMetode()
  101.  
  102. Nah seperti itu caranya.. Namun, untuk memudahkan pemanggilan metode ini, kita bisa menampung class nya ke dalam sebuah variabel terlebih dahulu... Yang kemudian kita panggil metodenya seperti di bawah ini..
  103.  
  104. penampung = namaClass()
  105. penampung.namaMetode()
  106.  
  107. Dan satu lagi nih.. Di dalam sebuah class, biasanya terdapat sebuah metode yang namanya sudah di sediakan oleh python... Namanya adalah “__init__”. Dan jika contoh di atas kita tambahkan __init__ maka kurang lebih akan seperti berikut ini..
  108.  
  109.  
  110. class namaClass () :
  111. def __init__() :
  112. Isi yang ingin kalian masukkkan
  113. def metode 1 (self) :
  114. Isi metode
  115. def metode 2 (self) :
  116. Isi metode
  117.  
  118.  
  119. Dan sama seperti metode, kita bisa menggunakan atau mengoper sebuah nilai di dalamnya atau tidak. Untuk mengopernya sama saja.. Kita cukup memasukkan sebuah variabel di dalam tanda Kurung pada metode __init__. Dan ingat, bukan pada tanda kurung milik clannya ya... Seperti dibawah ini..
  120.  
  121. class namaClass () :
  122. def __init__(self, parameter) :
  123. Code program yang akan kalian eksekusi pertama kali.
  124. def metode 1 (self, parameter) :
  125. Isi metode
  126. def metode 2 (self) :
  127. Isi metode
  128.  
  129. Dan untuk memanggil sebuah class yang memiliki parameter, tentu kita harus memasukkan sebuah nilai saat pemanggilannya.. Seperti yang ada di bawah ini..
  130.  
  131. namaClass(isiNilai)
  132.  
  133.  
  134. Nah sedikit penjelasan mengenai __init__, metode ini merupakan metode yang akan langsung dijalankan ketika class kita di panggil nantinya.. Jadi kita tidak perlu memanggil metodenya secara manual seperti metode - metode yang lain seperti yang sudah saya jelaskan di atas...
  135.  
  136.  
  137. Contoh dan pemanfaatan sebuah class pada python.
  138. Nah setelah kita belajar cara membuat dan cara memanggilnya, maka sekarang saya akan mengajark kalian untuk melihat contoh dan pemanfaatan dari sebuah class ini.. Hal ini tentu agar membuat kalian lebih paham mengenai apa yang dimaksud dengan class pada python ini.. Nah langsung saja yuk kita lihat sama - sama contoh programnya di bawah ini... Let’s check it out guys..
  139.  
  140.  
  141. #merupakan sebuah class dengan metode untuk mencari jumlah huruf vokal
  142. class pencariHuruf() :
  143. def __init__(self, teks):
  144. self.kata = teks
  145. self.a = 0
  146. self.i = 0
  147. self.u = 0
  148. self.e = 0
  149. self.o = 0
  150. def A (self) :
  151. for i in range(len(self.kata)):
  152. if self.kata[i] == 'a' or self.kata[i] == 'A' :
  153. self.a = self.a + 1
  154. return self.a
  155. def I (self) :
  156. for i in range(len(self.kata)):
  157. if self.kata[i] == 'i' or self.kata[i] == 'i' :
  158. self.i = self.i + 1
  159. return self.i
  160. def U (self) :
  161. for i in range(len(self.kata)):
  162. if self.kata[i] == 'u' or self.kata[i] == 'u' :
  163. self.u = self.u + 1
  164. return self.u
  165. def E (self) :
  166. for i in range(len(self.kata)):
  167. if self.kata[i] == 'e' or self.kata[i] == 'e' :
  168. self.e = self.e + 1
  169. return self.e
  170. def O (self) :
  171. for i in range(len(self.kata)):
  172. if self.kata[i] == 'o' or self.kata[i] == 'o' :
  173. self.o = self.o + 1
  174. return self.o
  175.  
  176. #proses pemanggilan dan penampungan class "pencariHuruf"
  177. teks = 'ma mi mu me mo'
  178. penampung = pencariHuruf(teks)
  179.  
  180. #pemanggilan metode yang ada di class "pencariHuruf"
  181. jumlahA = penampung.A()
  182. jumlahI = penampung.I()
  183. jumlahU = penampung.U()
  184. jumlahE = penampung.E()
  185. jumlahO = penampung.O()
  186.  
  187. #mencetak hasil proses yang di tampung di dalam variabel di atas.
  188. print(jumlahA)
  189. print(jumlahI)
  190. print(jumlahU)
  191. print(jumlahE)
  192. print(jumlahO)
  193.  
  194. LINKED LIST
  195. nah seperti deque, stack dan yang lainnya, linked list juga memiliki beberapa fungsi untuk mewujudkan setiap fitur – fiturnya... nah terhitung hanya ada 4 metode saja di dalam class Node.. class node inilah yang akan berisi nilai didalam setiap linked list. Nah 4 metode tersebut dapat kaian lihat di bawah ini ya teman – teman...
  196.  
  197. • getData() digunakan untuk mendapatkan atau mengetahui sebuah nilai yang terdapat didalam setiap node.
  198. • getNext() metode yang satu ini digunakan untuk mengetahui nilai yang berada di depannya.
  199. • setData() ini digunakan untuk mengganti nilai yang terkandung di dalam sebuah list.
  200. • setNext() merupakan metode yang digunakan untuk mengatur atau mendeklarasikan data yang ada di depannya.
  201. Nah, 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 ya teman – teman...
  202.  
  203. • unOrderedList() membuat suatu list baru yang kosong. Tidak memerlukan parameter dan mengembalikan suatu list kosong.
  204. • 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.
  205. • remove(item) menghapus item dari dalam list. Diperlukan item dan akan mengubah list. Anggapan: item tersebut tersedia di dalam list.
  206. • search(item) mencari item di dalam list. Perlu item dan mengembalikan suatu nilai boolean.
  207. • isEmpty() menguji untuk melihat apakah list dalam keadaan kosong (empty). Tidak memerlukan parameter dan mengembalikan suatu nilai boolean.
  208. • size() mengembalikan jumlah item di dalam list. Tidak memerlukan parametyer dan mengembalikan suatu integer
  209. nah itu dia teman – teman pengertian dan fungsi - fungsi yang ada di dalam linked list ini.. untuk lebih memahami mengenai materi yang satu ini, terus simak pembahasan saya di postingan kali ini ya...
  210.  
  211. simulasi dari Deque yang menggunakan unOrderedList.
  212.  
  213.  
  214. Nah untuk lebih memahami dari deque ini alangkah lebih baiknya jika kalian menyimak simulasi yang akan saya berikan untuk kalian... simulasi yang akan saya berikan ini akan saya sajikan dalam bentuk tabel.. agar lebih terstruktur dan mudah untuk kalian pahami nantinya...
  215. Oya.. sisini akan saya misalkan huruf ‘u’ adalah variabel yang sudah menampung class unOrderedList.
  216. yuk langsung saja kita lihat simulasi nya pada tabel dibawah ini...
  217.  
  218. Nama fungsi Isi linked list Nilai kembali
  219. u.isEmpty() True
  220. u.add(‘saya’) Saya > None
  221. u.add(1) Saya > 1 > None
  222. u.add(True) Saya > 1 > True > None
  223. u.remove(‘Saya’) 1 > True > None
  224. u.isEmpty() 1 > True > None False
  225. u.size() 1 > True > None 2
  226.  
  227.  
  228.  
  229. Contoh code program linked list.
  230. Nah setelah kita mengetahui simulasi dari class unorderlist ini, maka sekarang waktunya kalian untuk mengetahui code dari class yang satu ini... seperti apakah code programnya? Yuk langsung saja kita lihat dibawah ini..
  231.  
  232.  
  233.  
  234. class Node:
  235. def __init__(self,initdata):
  236. self.data = initdata
  237. self.next = None
  238. def getData(self):
  239. return self.data
  240. def getNext(self):
  241. return self.next
  242. def setData(self,newdata):
  243. self.data = newdata
  244. def setNext(self,newnext):
  245. self.next = newnext
  246.  
  247.  
  248. Nah itu dia class sederhana dari class node yang merupakan simpul yang berisi data nantnya..namun, seperti ynag sudah sayaa katakan diatas, penggunaan class in cukup susah.. sehingga memerlukan class yang baru.. untuk mempermudah penggunaan nya.. nah sebelum saya memberikan code class unOrderList, saya akan membuktikan kekurangan class node apabila kita hanya menggunakannya saja... jadi lihat seperti di bawah ini ya teman – teman ..
  249.  
  250. n = Node(2)
  251. n.next = Node(3)
  252. n2 = node(1)
  253. n2.next(n)
  254.  
  255. nah itu dia contoh penggunaan dari class node apabila kita menggunakannya secara manual.. kita harus mengisi kelanjutannya secara manual.. nah untuk mengisinya secara otomatis, di perlukanlah class tambahan yaitu unOrderList. Code programnya seperti berikut ini...
  256.  
  257.  
  258.  
  259. class Node:
  260. def __init__(self,initdata):
  261. self.data = initdata
  262. self.next = None
  263. def getData(self):
  264. return self.data
  265. def getNext(self):
  266. return self.next
  267. def setData(self,newdata):
  268. self.data = newdata
  269. def setNext(self,newnext):
  270. self.next = newnext
  271.  
  272. class UnorderedList:
  273. def __init__(self):
  274. self.head = None
  275. def isEmpty(self):
  276. return self.head == None
  277. def add(self,item):
  278. temp = Node(item)
  279. temp.setNext(self.head)
  280. self.head = temp
  281. def size(self):
  282. current = self.head
  283. count = 0
  284. while current != None:
  285. count = count + 1
  286. current = current.getNext()
  287. return count
  288. def search(self,item):
  289. current = self.head
  290. found = False
  291. while current != None and not found:
  292. if current.getData() == item:
  293. found = True
  294. else:
  295. current = current.getNext()
  296. return found
  297. def remove(self,item):
  298. current = self.head
  299. previous = None
  300. found = False
  301. while not found:
  302. if current.getData() == item:
  303. found = True
  304. else:
  305. previous = current
  306. current = current.getNext()
  307. if previous == None:
  308. self.head = current.getNext()
  309. else:
  310. previous.setNext(current.getNext())
  311.  
  312.  
  313. nah itu dia code program dari unOrderList ini... cukup panjang yaa... tapi dengan class tersebut, kita hanya perlu memanggil fungsi add untuk menambahkan... tanpa memperhatikan yang lainnya... maka secara otomatis akan bertambah.. tanpa susah - susah untuk mengatur mana data selanjutnya.. untuk lebih jelasnya kalian bisa melihat pada tabel simulasi yang sudah saya berikan sebelumnya...
  314.  
  315.  
  316. Penjelasan code program contoh linked list.
  317. nah untuk lebih memahami code dari class diatas, berikut ini saya akan mencoba untuk menjealaskannya..
  318. class Node: //class ini dapat kita analogikan sebagai simpul atau tempat dimana data atau elemen disimpan.
  319.  
  320.  
  321. class Node: //class ini dapat kita analogikan sebagai simpul atau tempat dimana data atau elemen disimpan.
  322. def __init__(self,initdata): //metode ini merupakan metode yang otomatis akan dipanggil pertama dan secara otomatis ketika kita memanggil class ‘Node’. Dan saat kita memanggil class ‘Node’ kita harus memberikan parameter yang akan dijadikan isi atau data elemen yang ada didalamnya.
  323. self.data = initdata //ini merupakan pendeklarasian variabel ‘data’ yang akan kita isiskan data dari Node ini sendiri. Dan di dapat kan dari parameter yang nanti akan dimasukkan oleh user.
  324. self.next = None //untuk mendeklarasikan varriabel next yang kita beri nila ‘None’ untuk pertama kalinya.
  325. def getData(self): //metode ini digunakan untuk mendapatkan memperoleh isi data.
  326. return self.data //nah ini merupakan isi dari metode getData. Yang merupkan perintah untuk mengembalikan nilai yang ada dalam variabel data.
  327. def getNext(self): //metode ini digunakan untuk mendapatkan nilai next atau data yang terkait selanjutnya.
  328. return self.next //merupakan isi dari metode getNext dan merupakan perintah untuk mengembalikan nilai yang tertampung di dalam variabel next.
  329. def setData(self,newdata)://metode ini digunakan untuk mengubah nilai yang ada dalam variabel ‘data’
  330. self.data = newdata //ini merupakan isi dari metode setData yang merupakan perintah untuk mengubah nilai yang ada di dalam variabel ‘data’.
  331. def setNext(self,newnext): //metode ini digunakan untuk mengubah nilai yang ada di dalam variabel next.
  332. self.next = newnext //nah ini merupakan isi dari metode setNext yang merupakan perintah untuk mengubah nilai dai ‘next’.
  333.  
  334. class UnorderedList: //pembuatan class dengan nama UnordeledList dan tidak memerlukan parameter.
  335. def __init__(self): //merupakan metode yang otomatis dijalankan ketika membuat class UnorderedList.
  336. self.head = None //merupakan isi dari metode __init__ yang berfungsi untuk mendeklarasikan variabel ‘head’.
  337. def isEmpty(self): //metode yang digunakan untuk mengecek list dalam keadaan kosong atau tidak.
  338. return self.head == None //merupakan isi dari metode isEmpty dan merupakan perintah untuk mengembalikan hasil pengecekan kekosongan dari list. Dengan cara membandingkan variabel ‘head’ dengan ‘None’. Jika benar akan mengembalikan nilai True dan jika salah akan mengembalikan nilai False.
  339. def add(self,item): //merupakan metode yang digunakan untuk menambah item kedalam list. Memerlukan parameter yang merupakan data yang akan di masukkan ke dalam list.
  340. temp = Node(item) //merupakan isi dari metode ‘add’ dan merupakan perintah untuk mendeklarasikan variabel ‘temp’ yang berisi class ‘Node’.
  341. temp.setNext(self.head) //merupakan isi dari metode ‘add’ dan merupakan perintah untuk memanggil metode yang ada didalam class node yaitu ‘setNext’. Class ‘node’ tersebut sudah ditampung sebelumnya di variabel ‘tempt’.
  342. self.head = temp //merupakan isi dari metode ‘add’ dan merupakan perintah untuk merupbah nilai variabel ‘head’ menjadi nilai yang ada pada variabel ‘tempt’.
  343. def size(self): //metode ini diguankan untuk mengetaui ukuran atau jumlah data di dalam list.
  344. current = self.head //merupakan isi dari metode ‘size’ dan merupakan perintah untuk mendeklarasikan variabel ‘current’ yang di beri nilai sama seperti nilai dalam variabel ‘head’.
  345. count = 0 //merupakan isi dari metode ‘size’ dan merupakan perintah untuk mendeklarasikan variabel ‘count’ yang di beri nilai 0. Dan digunakan untuk menampung jumlah data atau elemen yang akan hitung nantinya.
  346. while current != None: //merupakan isi dari metode ‘size’ dan merupakan perintah perulangan dengan kondisi variabel ‘current’ tidak bernilai None.
  347. count = count + 1 //merupakan isi dari metode ‘size’ dan dan bagian dari perulangan yang digunakan untuk perintah penambahan nilai di dalam variabel ‘count’ sebanyak 1.
  348. current = current.getNext() //merupakan isi dari metode ‘size’ dan merupakan perintah untuk mendeklarasikan variabel ‘current’ yang di beri nilai sama seperti nilai yang berada pada kelanjutannya.
  349. return count //digunakan untuk mengembalikan hasil perhitungan.
  350. def search(self,item): //metode yang digunakan untuk mencari keberadaan item yang kita masukkan dalam parameter.
  351. current = self.head //merupakan isi dari metode ‘search’ dan merupakan perintah untuk mendeklarasikan variabel ‘current’ yang di beri nilai sama seperti nilai dalam variabel ‘head’.
  352. found = False //merupakan isi dari metode ‘size’ dan merupakan perintah untuk mendeklarasikan variabel ‘found’ yang di beri nilai sama seperti nilai dalam variabel ‘head’.
  353. while current != None and not found: //merupakan isi dari metode ‘search’ dan merupakan perintah perulangan dengan kondisi variabel ‘current’ tidak bernilai None dan found bernilai False dan dikasi not untuk kebalikannya. Perulangan ini digunakan untuk mencari itemnya.
  354. if current.getData() == item: //membandingkan setiap data yang ada di dalam list.
  355. found = True //perintah untuk digunakan untuk mengubah nilai di dalam variabel ‘Found’ menjadi ‘True’ jika ada kesamaan item dan data di dalam list.
  356. else: //code atau perintah di dalam ‘else’ ini akan dijalankan ketika kondisi di dalam if di atas tidak terpenuhi.
  357. current = current.getNext() //digunakan untuk mengubah nilai ‘current’ menjadi data terkait selanjutnya.
  358. return found //digunakan untuk mengembalikan hasil pencarian. ‘True’ jika ada data yang cocok dan ‘False’ jika tidak ada yang cocok.
  359. def remove(self,item): //metode yang digunakan untuk menghapus elemen didalam list.
  360. current = self.head //merupakan isi dari metode ‘remove’ dan merupakan perintah untuk mendeklarasikan variabel ‘current’ yang di beri nilai sama seperti nilai dalam variabel ‘head’.
  361. previous = None //merupakan isi dari metode ‘remove’ dan merupakan perintah untuk mendeklarasikan variabel ‘previous’ yang di beri nilai ‘None’.
  362. found = False ////merupakan isi dari metode ‘remove’ dan merupakan perintah untuk mendeklarasikan variabel ‘found’ yang di beri nilai ‘False’.
  363. while not found: //merupakan isi dari metode ‘remove’ dan merupakan perintah perulangan dengan kondisi variabel found bernilai False dan dikasi not untuk kebalikannya. Perulangan ini digunakan untuk mencari item yang akan dihapus nantinya.
  364. if current.getData() == item: //membandingkan setiap data yang ada di dalam list
  365. found = True //perintah untuk digunakan untuk mengubah nilai di dalam variabel ‘Found’ menjadi ‘True’ jika ada kesamaan item dan data di dalam list.
  366. else: //code atau perintah di dalam ‘else’ ini akan dijalankan ketika kondisi di dalam if di atas tidak terpenuhi.
  367. previous = current //digunakan untuk mengubah nilai ‘current’ menjadi data terkait selanjutnya.
  368. current = current.getNext() //digunakan untuk mengubah nilai ‘current’ menjadi data terkait selanjutnya.
  369. if previous == None: //untuk menanyakan apakah nilai dari variabel previous bernilai ‘None’ atau tidak.
  370. self.head = current.getNext() //diguankan untuk mengubah nilai didalam variabel ‘head’ menjadi nilai yang ada pada ‘current.getNext()’.
  371. else: //code atau perintah di dalam ‘else’ ini akan dijalankan ketika kondisi di dalam if di atas tidak terpenuhi.
  372. previous.setNext(current.getNext()) //mengubah nilai variabel ‘next’ yang ada di dalam class ‘Node’ yang ditampung didalam variabel ‘previous’ dengan cara memanggil fungsi
  373.  
  374. nah itu dia penjelasannya... oya.. perlu di ingat dan ditekan kan lagi.. dalam variabel yang ada di dalam class, harus menggunakan kata “self.” Sebelum nama variabelnya.. contohnya seperti variabel diata.. yaitu “self.data”. ini di gunakan agar variabel ‘data’ bisa di akses oleh metode lainnnya. Bisa kita lihat pada class Node diatas, dengan menggunakan kata ‘self.’ Maka variabel ‘data’ dapa kita panggil di metode getData dan setData.
  375.  
  376. Nah itu dia teman – teman pembahasan saya mengenai linked list ini... apabila ada yang kurang jelas dan ada yang ingin di tanyakan, kalian bisa berkomentar dibawah ini ya.. kurang lebihnya saya mohon maaf dan mohon di maklumi ya... oya jangan lupa dibagikan ketemen – teman sosial media kalian yaa... biar mereka juga bisa menambah ilmu... dan terima kasih sudah membaca postingan saya kali ini...
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement