<?xml version="1.0" encoding="UTF-8" standalone="no"?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><rss xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" version="2.0"><channel><title>Xaviet</title><description></description><managingEditor>noreply@blogger.com (Felicia Angelina)</managingEditor><pubDate>Thu, 5 Sep 2024 07:44:11 -0700</pubDate><generator>Blogger http://www.blogger.com</generator><openSearch:totalResults xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/">5</openSearch:totalResults><openSearch:startIndex xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/">1</openSearch:startIndex><openSearch:itemsPerPage xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/">25</openSearch:itemsPerPage><link>https://xaviete.blogspot.com/</link><language>en-us</language><item><title>Heaps &amp; Tries</title><link>https://xaviete.blogspot.com/2020/05/heaps-tries.html</link><author>noreply@blogger.com (Felicia Angelina)</author><pubDate>Sun, 17 May 2020 03:14:00 -0700</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-2027365241707286187.post-5509905199446188587</guid><description>heaps itu terbagi menjadi 3 jenis:&lt;div&gt;
&lt;ul&gt;
&lt;li&gt;min heap&lt;/li&gt;
&lt;li&gt;max heap&lt;/li&gt;
&lt;li&gt;min-max heap&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
heap itu selalu berurut, jika min heap maka root akan merupakan angka yang paling kecil dan semaikin kebawah semakin besar. dan ketika di insert baru dia akan selalu mencocokkan dengan parentnya terus hinga angka yang diatasnya lebih kecil daripada dia. dan ketika di delete dia akan mencari angka yang lebih kecil antara childnya. hal ini pun juga berlaku untuk max heap.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
sedangkan dengan min-max heap mereka berbeda pada setiap levelnya. misalnya pada level genap akan selalu min dan ganjill max. jadi mereka membandingkan dengan kedua sisi atas bawah.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
tries itu merupakan prefix tree dimana dia akan memanfaatkan huruf yang ada sebelumnya dan mencabang dari sana sehingga menghemat banyak tempat dalam penyimpanannya&lt;/div&gt;
</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>AVL Tree</title><link>https://xaviete.blogspot.com/2020/05/avl-tree.html</link><author>noreply@blogger.com (Felicia Angelina)</author><pubDate>Sun, 3 May 2020 07:03:00 -0700</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-2027365241707286187.post-6101866704406043983</guid><description>&lt;div class="MsoNormal"&gt;
Pada pertemuan kali ini saya mempelejari tentang AVL Tree.
AVL Tree merupakan salah satu contoh dari balanced binary search tree.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
AVL Tree harus memiliki sisi yang jarangnya satu sama lain
tidak boleh lebih dari 1. Jika lebih maka itu tidak balance dan harus segera
diperbaiki. Dan lebih baik apabila tidak ada perbedaan sama sekali agar menjadi benar-benar balance.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
Setiap AVL Tree melakukan insert maupun delete harus
diperhatikan balance atau tidak.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
Jika AVL Tree tersebut tidak balance maka akan ada 2 pilihan
cara membenarkannya: yaitu, single rotation dan double rotation.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
Sisanya secara dasar sama dengan tree biasa. Jika lebih
besar dari parent akan dimasukkan ke sisi kanan dan jika lebih kecil akan
dimasukkan ke sisi kiri.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
Ketika melakukan insertion dapat terjadi 4 kasus dimana
masing-masing tidak seimbang dan harus diperbaiki.&lt;/div&gt;
&lt;div class="MsoListParagraphCxSpFirst" style="mso-list: l0 level1 lfo1; text-indent: -.25in;"&gt;
&lt;/div&gt;
&lt;ol&gt;
&lt;li&gt;&lt;span style="text-indent: -0.25in;"&gt;LL rotation, hal ini dapat diperbaiki dengan
single rotation dengan mudahnya.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin;"&gt;&lt;span style="mso-list: Ignore;"&gt;&lt;span style="font: 7.0pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;RR rotation, sama pula halnya seperti LL
rotation hal ini dapat diperbaiki dengan single rotation&lt;/li&gt;
&lt;li&gt;LR rotation, sedangkan dengan ini tidak bisa
dengan single rotation tapi harus dengan double rotation.&lt;/li&gt;
&lt;li&gt;RL rotation, sama halnya dengan LR rotation hal
ini dapat dipeerbaiki dengan double rotation.&lt;/li&gt;
&lt;/ol&gt;
&lt;!--[if !supportLists]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;br /&gt;


&lt;div class="MsoListParagraphCxSpMiddle" style="mso-list: l0 level1 lfo1; text-indent: -.25in;"&gt;
&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class="MsoListParagraphCxSpMiddle" style="mso-list: l0 level1 lfo1; text-indent: -.25in;"&gt;
&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class="MsoListParagraphCxSpLast" style="mso-list: l0 level1 lfo1; text-indent: -.25in;"&gt;
&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;br /&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>Rangkuman</title><link>https://xaviete.blogspot.com/2020/04/rangkuman.html</link><author>noreply@blogger.com (Felicia Angelina)</author><pubDate>Sat, 4 Apr 2020 08:59:00 -0700</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-2027365241707286187.post-3624357393380371184</guid><description>array dan linked list bisa dibilang sama namun tak sama.&lt;br /&gt;
perbedaan array dan linked list adalah&lt;br /&gt;
array&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;kumupulan dari data&lt;/li&gt;
&lt;li&gt;menyimpan datanya di memory yang beruurtan&lt;/li&gt;
&lt;li&gt;bisa mengakses data mana saja secara langsung&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
linked list&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;kumpulan dari node&lt;/li&gt;
&lt;li&gt;menyimpan node di memory yang secara acak&lt;/li&gt;
&lt;li&gt;hanya bisa diakses secara berurutan&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;br /&gt;
array dan linked list memiliki kelebihan dan kekurangan tersendiri.&lt;br /&gt;
contohnya adalah&lt;br /&gt;
kelebihan array&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;mudah digunakan&lt;/li&gt;
&lt;li&gt;lebih cepat megakses data mana saja&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
kekurangan array&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;ukuran tidak dapat dirubah sehingga terkadang memakan banyak memory&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
kelebihan linked list&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;penggunaan memory sesuai banyaknya data yang ada sehingga irit&lt;/li&gt;
&lt;li&gt;sistemnya fleksibel&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
kekurangan linked list&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;pengerjaan lebih komples&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
linked list terdapat banyak macam, beberapa contohnya adalah&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;circular linked list&lt;/li&gt;
&lt;li&gt;double linked list&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
circular linked list dalam permasalahan yang berhubungan dengan head dan tail memang lebih cepat diselesaikan dan juga ia bisa ke node manapun.&lt;/div&gt;
&lt;div&gt;
&lt;div style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;
&lt;/div&gt;
&lt;div style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;
&lt;/div&gt;
namun apa bila tidak di coding dengan benar dapat terjadi infinite loop dan juga&amp;nbsp;karena ia hanya satu arah, ia tidak bisa mundur sehingga jika ia harus mengelilingi list terlebih dahulu untuk mencapai sebuah node jika ia terletak disebelumnya.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
linked list cara kerjanya adalah dengan cara menyimpan alamat satu sama lain bukan dengan menyimpan isi dari alamat tersebut.&lt;br /&gt;
&lt;br /&gt;
setiap alamat akan mempunyai hubungan dengan alamat berikutnya sehingga mereka akan saling menyambung&lt;br /&gt;
&lt;a href="https://media.geeksforgeeks.org/wp-content/cdn-uploads/gq/2013/03/Linkedlist.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img alt="Image result for linked list" border="0" class="n3VNCb" data-noaft="1" height="140" jsaction="load:XAeZkd;" jsname="HiaYvf" src="https://media.geeksforgeeks.org/wp-content/cdn-uploads/gq/2013/03/Linkedlist.png" style="margin-top: 56.05px;" width="640" /&gt;&lt;/a&gt;seperti di atas cara kerjanya data pertama jika di next maka dia akan ke data b karena setelah data a itu tersimpan alamat dari data b.&lt;br /&gt;
&lt;br /&gt;
head akan selalu ada pada data pertama sedangkan pada ujung akan bernama tail dan dia tidak akan menunjuk kemana-mana maka panak tersebut dituliskan NULL.&lt;br /&gt;
&lt;br /&gt;
pada linked list biasa dia tidak bisa bergerak mundur maka ia akan selalu bergerak dari head ke tail.&lt;br /&gt;
&lt;br /&gt;
seperti berikut adalah codingnya&lt;br /&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiYoD5d3dRV6yHRGCRUbxTTsRdeqqnDKimZbJdq0fcIP35Eoep8_Bng-UL9M9nIe-1vtP-byte24p8nvuJt_eqgafwBqYDDyJWJzTr0fPYr9bP8PxdlY1UIKJew8nyldREwwTyjgyv7AZwU/s1600/1583240371061.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" data-original-height="337" data-original-width="667" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiYoD5d3dRV6yHRGCRUbxTTsRdeqqnDKimZbJdq0fcIP35Eoep8_Bng-UL9M9nIe-1vtP-byte24p8nvuJt_eqgafwBqYDDyJWJzTr0fPYr9bP8PxdlY1UIKJew8nyldREwwTyjgyv7AZwU/s1600/1583240371061.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
coding di atas adalah untuk memasukan data kedalam linked list&lt;br /&gt;
&lt;br /&gt;
sedangkan dibawah ini adalah cara menghapus data paling atas dari linked list&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgBE3b6_syW-K_KrOq24oy_MpvwPUn9dW1Y7TNr2ABT8vFH4O4TX43vb9Dp84G_91-yYZ-X3QUZwTyKMZgC76BLhyLARrwp_7JkoTorXYUDQhLNkMSgchPFmTsT1ZNUZ-TiyYivdl6iSPgH/s1600/1583240605180.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" data-original-height="307" data-original-width="545" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgBE3b6_syW-K_KrOq24oy_MpvwPUn9dW1Y7TNr2ABT8vFH4O4TX43vb9Dp84G_91-yYZ-X3QUZwTyKMZgC76BLhyLARrwp_7JkoTorXYUDQhLNkMSgchPFmTsT1ZNUZ-TiyYivdl6iSPgH/s1600/1583240605180.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
double hampir sama dengan linked list biasa namun bedanya dia bisa mundur&lt;br /&gt;
cara kerjanya seperti di bawah ini&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://www.cs.cmu.edu/~adamchik/15-121/lectures/Linked%20Lists/pix/doubly.bmp" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img alt="Image result for types of linked list" border="0" class="n3VNCb" data-noaft="1" jsaction="load:XAeZkd;" jsname="HiaYvf" src="https://www.cs.cmu.edu/~adamchik/15-121/lectures/Linked%20Lists/pix/doubly.bmp" style="margin-top: 81.05px;" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;a href="https://media.geeksforgeeks.org/wp-content/cdn-uploads/gq/2013/03/Linkedlist.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;br /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;h2&gt;
Hashing&lt;/h2&gt;
&lt;div class="MsoNormal"&gt;
&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
Hashing merupakan Teknik untuk menyimpan dan mengambil keys
dengan cara yang cepat.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
Hashing menyimpan keysnya di array yang bernama hash table
dan menggunakan function yang sudah ditentukan yaitu hash function.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
Hashing terdapat 5 jenis:&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class="MsoListParagraphCxSpFirst" style="mso-list: l2 level1 lfo1; tab-stops: list .5in; text-indent: -.25in;"&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style="text-indent: -0.25in;"&gt;Mid-square&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="text-indent: -0.25in;"&gt;Division (paling sering digunakan)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="text-indent: -0.25in;"&gt;Folding&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="text-indent: -0.25in;"&gt;Digit Extraction&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="text-indent: -0.25in;"&gt;Rotating Hash&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="MsoListParagraphCxSpMiddle" style="margin-left: 0in; mso-add-space: auto;"&gt;
Mid
square caranya adalah dengan mempangkatkan angka yang ingin disimpan yang kemudian
akan diambil angka tengahnya.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class="MsoListParagraphCxSpMiddle" style="margin-left: 0in; mso-add-space: auto;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="MsoListParagraphCxSpMiddle" style="margin-left: 0in; mso-add-space: auto;"&gt;
Divison
caranya adalah dengan memodulus angka yang ingin disimpan dengan ukuran dari
size table yang diberikan/digunakan.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class="MsoListParagraphCxSpMiddle" style="margin-left: 0in; mso-add-space: auto;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="MsoListParagraphCxSpMiddle" style="margin-left: 0in; mso-add-space: auto;"&gt;
Folding
caranya adalah dengan membagi setiap angka menjadi 2 bagian yang kemudian akan
saling ditambahkan.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class="MsoListParagraphCxSpMiddle" style="margin-left: 0in; mso-add-space: auto;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="MsoListParagraphCxSpMiddle" style="margin-left: 0in; mso-add-space: auto;"&gt;
Digit
extraction caranya adalah mengambil digit pada letak-letak terntetu yang sudah
ditentukan sebelumnya dan angka tersebut kemudian akan menjadi hash addressnya.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class="MsoListParagraphCxSpMiddle" style="margin-left: 0in; mso-add-space: auto;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="MsoListParagraphCxSpMiddle" style="margin-left: 0in; mso-add-space: auto;"&gt;
Rotating
hash caranya adalah menggunakan mid-square atau division terlebih dahulu buat
dapet hash adressnya dan kemudian dibalik angkanya.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class="MsoListParagraphCxSpMiddle" style="margin-left: 0in; mso-add-space: auto;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
Hashing pada saat ini digunakan dalam blockchain, terutama
dalam cryptocurrency. Hashing sangatlah penting dalam pengaturannya. Hash bagaikan
backbone dalam cryptocurrency.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
Hash membantu dalam menyimpan data yang sangat banyak dalam blockchain.&lt;/div&gt;
&lt;div class="MsoListParagraphCxSpMiddle" style="margin-left: 0in; mso-add-space: auto;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h3 style="margin-left: 0in; mso-add-space: auto;"&gt;
Collision&lt;/h3&gt;
&lt;div class="MsoListParagraphCxSpMiddle" style="margin-left: 0in; mso-add-space: auto;"&gt;
Collasion
terjadi ketika ada string yang memiliki hash key yang sama contohnya seperti
float dan floor dimana sama-sama berawalan f.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class="MsoListParagraphCxSpMiddle" style="margin-left: 0in; mso-add-space: auto;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="MsoListParagraphCxSpMiddle" style="margin-left: 0in; mso-add-space: auto;"&gt;
Collison
bisa diatasi dengan 2 cara:&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class="MsoListParagraphCxSpMiddle" style="mso-list: l4 level1 lfo2; text-indent: -.25in;"&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;Linear probing&lt;/li&gt;
&lt;li&gt;Chaining&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="MsoNormal"&gt;
Linear probing adalah mencari tempat kosong selanjutnya dan menaruhnya
disana. Namun, cara ini sangatlah tidak efisien karena ketika string tersebut
ingin dicari looping yang dilakukan akan banyak.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
Chaining adalah meletakkan string tersebut sebagai linked
list jadi apa bila floor terletak di hash key 5 maka ia linked list ke float
jadi tidak membuang-buang waktu untuk mencarinya.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h2&gt;
Tree&lt;/h2&gt;
&lt;div class="MsoNormal"&gt;
&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
Tree merupakan struktur yang menunjukan hirarki antar non-linear
data.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
Node dalam tree tidak perlu disimpan secara berurut, ia
dapat disimpan secara asal dan kemudian dihubungkan dengan pointer.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
Konsep tree&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class="MsoListParagraphCxSpFirst" style="mso-list: l0 level1 lfo3; text-indent: -.25in;"&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;Node yang paling diatas disebut &lt;b&gt;root&lt;/b&gt;.&lt;/li&gt;
&lt;li&gt;Line yang menghubungankan antara parent dan
child disebut &lt;b&gt;edge&lt;/b&gt;.&lt;/li&gt;
&lt;li&gt;Node yang tidak memiliki children disebut &lt;b&gt;leaf&lt;/b&gt;.
&lt;/li&gt;
&lt;li&gt;Node yang memiliki parent yang sama disebut &lt;b&gt;sibling&lt;/b&gt;.
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Degree&lt;/b&gt; of node mereupakan jumlah dari sub
tree sebuah node.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Height/Depth &lt;/b&gt;merupakan maksimum degree
dalam sebuah tree.&lt;/li&gt;
&lt;li&gt;Jika ada line yang menghubungkan antara p dan q,
maka p disebut &lt;b&gt;ancestor&lt;/b&gt; dari&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;q,
dan q adalah &lt;b&gt;descendant&lt;/b&gt; dari p.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
Binary tree&lt;/h3&gt;
&lt;div class="MsoNormal"&gt;
Konsep binary tree&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class="MsoListParagraphCxSpFirst" style="mso-list: l1 level1 lfo4; text-indent: -.25in;"&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;Binary tree merupakan struktur data tree dimana
setiap node maksimal memiliki 2 node.&lt;/li&gt;
&lt;li&gt;Setiap 2 children tersebut biasanya dibedakan
sebagai left child atau right child.&lt;/li&gt;
&lt;li&gt;Node yang tidak memiliki children disebut leaf. &lt;/li&gt;
&lt;/ul&gt;
&lt;!--[if !supportLists]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;br /&gt;
&lt;div class="MsoListParagraphCxSpMiddle" style="mso-list: l1 level1 lfo4; text-indent: -.25in;"&gt;
&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class="MsoListParagraphCxSpLast" style="mso-list: l1 level1 lfo4; text-indent: -.25in;"&gt;
&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
Tipe binary tree&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class="MsoListParagraphCxSpFirst" style="mso-list: l3 level1 lfo5; text-indent: -.25in;"&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;Perfect binary tree&lt;/li&gt;
&lt;li&gt;Complete binary tree&lt;/li&gt;
&lt;li&gt;Skewed binary tree&lt;/li&gt;
&lt;li&gt;Balanced binary tree&lt;/li&gt;
&lt;/ul&gt;
&lt;!--[if !supportLists]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;br /&gt;
&lt;div class="MsoListParagraphCxSpMiddle" style="mso-list: l3 level1 lfo5; text-indent: -.25in;"&gt;
&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class="MsoListParagraphCxSpMiddle" style="mso-list: l3 level1 lfo5; text-indent: -.25in;"&gt;
&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class="MsoListParagraphCxSpLast" style="mso-list: l3 level1 lfo5; text-indent: -.25in;"&gt;
&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
Perfect binary tree adalah dimana setiap level mempunyai
height/depth yang sama.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
Complete binary tree adalah binary tree yang setiap
levelnya, kecuali yang terakhir terisi penuh dan semua node dipenuhkan pada
sisi kiri tree. Semua perfect binary tree merupakan complete binary tree.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
Skewed binary tree merupakan tree yang setiap nodenya
maksimal memiliki 1 child.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
Balanced binary tree merupakan tree dimana leaf yang satu
tidak boleh lebih jauh levelnya dari leaf yang lain jadi harus seimbang.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;br /&gt;
&lt;h3&gt;
Berikut adalah codingan untuk menu sebuah supermarket dengan double linked list&lt;/h3&gt;
&lt;br /&gt;
#include&amp;lt;stdio.h&amp;gt;&lt;br /&gt;
#include&amp;lt;stdlib.h&amp;gt;&lt;br /&gt;
#include&amp;lt;string.h&amp;gt;&lt;br /&gt;
#include&amp;lt;time.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
struct data{&lt;br /&gt;
&lt;span style="white-space: pre;"&gt; &lt;/span&gt;char nama[100];&lt;br /&gt;
&lt;span style="white-space: pre;"&gt; &lt;/span&gt;int harga;&lt;br /&gt;
&lt;span style="white-space: pre;"&gt; &lt;/span&gt;int qty;&lt;br /&gt;
&lt;span style="white-space: pre;"&gt; &lt;/span&gt;struct data *next;&lt;br /&gt;
&lt;span style="white-space: pre;"&gt; &lt;/span&gt;struct data *prev;&lt;br /&gt;
}*head, *tail;&lt;br /&gt;
&lt;br /&gt;
void push(char vnama[100], int vqty, int vharga){&lt;br /&gt;
&lt;span style="white-space: pre;"&gt; &lt;/span&gt;struct data *node = (struct data*)malloc(sizeof(struct data));&lt;br /&gt;
&lt;span style="white-space: pre;"&gt; &lt;/span&gt;&lt;br /&gt;
&lt;span style="white-space: pre;"&gt; &lt;/span&gt;strcpy(node-&amp;gt;nama, vnama);&lt;br /&gt;
&lt;span style="white-space: pre;"&gt; &lt;/span&gt;node-&amp;gt;qty = vqty;&lt;br /&gt;
&lt;span style="white-space: pre;"&gt; &lt;/span&gt;node-&amp;gt;harga = vharga;&lt;br /&gt;
&lt;span style="white-space: pre;"&gt; &lt;/span&gt;&lt;br /&gt;
&lt;span style="white-space: pre;"&gt; &lt;/span&gt;node-&amp;gt;next = node-&amp;gt;prev = NULL;&lt;br /&gt;
&lt;span style="white-space: pre;"&gt; &lt;/span&gt;&lt;br /&gt;
&lt;span style="white-space: pre;"&gt; &lt;/span&gt;if(head == NULL){&lt;br /&gt;
&lt;span style="white-space: pre;"&gt;  &lt;/span&gt;head = tail = node;&lt;br /&gt;
&lt;span style="white-space: pre;"&gt; &lt;/span&gt;}else if(strcmp(head-&amp;gt;nama, vnama)&amp;gt;0){&lt;br /&gt;
&lt;span style="white-space: pre;"&gt;  &lt;/span&gt;node-&amp;gt;next = head;&lt;br /&gt;
&lt;span style="white-space: pre;"&gt;  &lt;/span&gt;head-&amp;gt;prev = node;&lt;br /&gt;
&lt;span style="white-space: pre;"&gt;  &lt;/span&gt;head = node;&lt;br /&gt;
&lt;span style="white-space: pre;"&gt; &lt;/span&gt;}else if(strcmp(tail-&amp;gt;nama, vnama)&amp;lt;0){&lt;br /&gt;
&lt;span style="white-space: pre;"&gt;  &lt;/span&gt;node-&amp;gt;prev = tail;&lt;br /&gt;
&lt;span style="white-space: pre;"&gt;  &lt;/span&gt;tail-&amp;gt;next = node;&lt;br /&gt;
&lt;span style="white-space: pre;"&gt;  &lt;/span&gt;tail = node;&lt;br /&gt;
&lt;span style="white-space: pre;"&gt; &lt;/span&gt;}else{&lt;br /&gt;
&lt;span style="white-space: pre;"&gt;  &lt;/span&gt;struct data *curr = head;&lt;br /&gt;
&lt;span style="white-space: pre;"&gt;  &lt;/span&gt;while(strcmp(curr-&amp;gt;next-&amp;gt;nama, vnama)&amp;lt;0){&lt;br /&gt;
&lt;span style="white-space: pre;"&gt;   &lt;/span&gt;curr = curr-&amp;gt;next;&lt;br /&gt;
&lt;span style="white-space: pre;"&gt;  &lt;/span&gt;}&lt;br /&gt;
&lt;span style="white-space: pre;"&gt;  &lt;/span&gt;curr-&amp;gt;next-&amp;gt;prev = node;&lt;br /&gt;
&lt;span style="white-space: pre;"&gt;  &lt;/span&gt;node-&amp;gt;next = curr-&amp;gt;next;&lt;br /&gt;
&lt;span style="white-space: pre;"&gt;  &lt;/span&gt;curr-&amp;gt;next = node;&lt;br /&gt;
&lt;span style="white-space: pre;"&gt;  &lt;/span&gt;node-&amp;gt;prev = curr;&lt;br /&gt;
&lt;span style="white-space: pre;"&gt; &lt;/span&gt;}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void pop(char vnama[100]){&lt;br /&gt;
&lt;span style="white-space: pre;"&gt; &lt;/span&gt;if(head != NULL){&lt;br /&gt;
&lt;span style="white-space: pre;"&gt;  &lt;/span&gt;if(head==tail &amp;amp;&amp;amp; strcmp(head-&amp;gt;nama,vnama)==0){&lt;br /&gt;
&lt;span style="white-space: pre;"&gt;   &lt;/span&gt;free(head);&lt;br /&gt;
&lt;span style="white-space: pre;"&gt;   &lt;/span&gt;head =tail = NULL;&lt;br /&gt;
&lt;span style="white-space: pre;"&gt;  &lt;/span&gt;}else if(strcmp(head-&amp;gt;nama,vnama)==0){&lt;br /&gt;
&lt;span style="white-space: pre;"&gt;   &lt;/span&gt;head = head-&amp;gt;next;&lt;br /&gt;
&lt;span style="white-space: pre;"&gt;   &lt;/span&gt;free(head-&amp;gt;prev);&lt;br /&gt;
&lt;span style="white-space: pre;"&gt;   &lt;/span&gt;head-&amp;gt;prev = NULL;&lt;br /&gt;
&lt;span style="white-space: pre;"&gt;  &lt;/span&gt;}else if(strcmp(tail-&amp;gt;nama,vnama)==0){&lt;br /&gt;
&lt;span style="white-space: pre;"&gt;   &lt;/span&gt;tail = tail-&amp;gt;prev;&lt;br /&gt;
&lt;span style="white-space: pre;"&gt;   &lt;/span&gt;free(tail-&amp;gt;next);&lt;br /&gt;
&lt;span style="white-space: pre;"&gt;   &lt;/span&gt;tail-&amp;gt;next = NULL;&lt;br /&gt;
&lt;span style="white-space: pre;"&gt;  &lt;/span&gt;}else{&lt;br /&gt;
&lt;span style="white-space: pre;"&gt;   &lt;/span&gt;data *node = head-&amp;gt;next;&lt;br /&gt;
&lt;span style="white-space: pre;"&gt;   &lt;/span&gt;while(node!=tail &amp;amp;&amp;amp; strcmp(node-&amp;gt;nama, vnama)!=0){&lt;br /&gt;
&lt;span style="white-space: pre;"&gt;    &lt;/span&gt;node = node-&amp;gt;next;&lt;br /&gt;
&lt;span style="white-space: pre;"&gt;   &lt;/span&gt;}&lt;br /&gt;
&lt;span style="white-space: pre;"&gt;   &lt;/span&gt;if(strcmp(node-&amp;gt;nama, vnama)==0){&lt;br /&gt;
&lt;span style="white-space: pre;"&gt;    &lt;/span&gt;node-&amp;gt;prev-&amp;gt;next = node-&amp;gt;next;&lt;br /&gt;
&lt;span style="white-space: pre;"&gt;    &lt;/span&gt;node-&amp;gt;next-&amp;gt;prev = node-&amp;gt;prev;&lt;br /&gt;
&lt;span style="white-space: pre;"&gt;    &lt;/span&gt;free(node);&lt;br /&gt;
&lt;span style="white-space: pre;"&gt;    &lt;/span&gt;node = NULL;&lt;br /&gt;
&lt;span style="white-space: pre;"&gt;   &lt;/span&gt;}else{&lt;br /&gt;
&lt;span style="white-space: pre;"&gt;    &lt;/span&gt;printf("There is no data\n");&lt;br /&gt;
&lt;span style="white-space: pre;"&gt;   &lt;/span&gt;}&lt;br /&gt;
&lt;span style="white-space: pre;"&gt;  &lt;/span&gt;}&lt;br /&gt;
&lt;span style="white-space: pre;"&gt; &lt;/span&gt;}else{&lt;br /&gt;
&lt;span style="white-space: pre;"&gt;  &lt;/span&gt;printf("There is no data\n");&lt;br /&gt;
&lt;span style="white-space: pre;"&gt; &lt;/span&gt;}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void popall(){&lt;br /&gt;
&lt;span style="white-space: pre;"&gt; &lt;/span&gt;while(head!=NULL){&lt;br /&gt;
&lt;span style="white-space: pre;"&gt;  &lt;/span&gt;if(head==tail){&lt;br /&gt;
&lt;span style="white-space: pre;"&gt;   &lt;/span&gt;free(head);&lt;br /&gt;
&lt;span style="white-space: pre;"&gt;   &lt;/span&gt;head =tail = NULL;&lt;br /&gt;
&lt;span style="white-space: pre;"&gt;  &lt;/span&gt;}else{&lt;br /&gt;
&lt;span style="white-space: pre;"&gt;   &lt;/span&gt;data *curr=head;&lt;br /&gt;
&lt;span style="white-space: pre;"&gt;   &lt;/span&gt;head=head-&amp;gt;next;&lt;br /&gt;
&lt;span style="white-space: pre;"&gt;   &lt;/span&gt;free(curr);&lt;br /&gt;
&lt;span style="white-space: pre;"&gt;  &lt;/span&gt;}&lt;br /&gt;
&lt;span style="white-space: pre;"&gt; &lt;/span&gt;}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void edit(char vnama[100], int vqty){&lt;br /&gt;
&lt;span style="white-space: pre;"&gt; &lt;/span&gt;if(head != NULL){&lt;br /&gt;
&lt;span style="white-space: pre;"&gt;  &lt;/span&gt;data *node = head;&lt;br /&gt;
&lt;span style="white-space: pre;"&gt;   &lt;/span&gt;while(node!=NULL &amp;amp;&amp;amp; strcmp(node-&amp;gt;nama, vnama)!=0){&lt;br /&gt;
&lt;span style="white-space: pre;"&gt;    &lt;/span&gt;node = node-&amp;gt;next;&lt;br /&gt;
&lt;span style="white-space: pre;"&gt;   &lt;/span&gt;}&lt;br /&gt;
&lt;span style="white-space: pre;"&gt;   &lt;/span&gt;if(strcmp(node-&amp;gt;nama, vnama)==0){&lt;br /&gt;
&lt;span style="white-space: pre;"&gt;    &lt;/span&gt;node-&amp;gt;qty = vqty;&lt;br /&gt;
&lt;span style="white-space: pre;"&gt;   &lt;/span&gt;}else{&lt;br /&gt;
&lt;span style="white-space: pre;"&gt;    &lt;/span&gt;printf("There is no data\n");&lt;br /&gt;
&lt;span style="white-space: pre;"&gt;   &lt;/span&gt;}&lt;br /&gt;
&lt;span style="white-space: pre;"&gt; &lt;/span&gt;}else{&lt;br /&gt;
&lt;span style="white-space: pre;"&gt;  &lt;/span&gt;printf("There is no data\n");&lt;br /&gt;
&lt;span style="white-space: pre;"&gt; &lt;/span&gt;}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void viewALL(){&lt;br /&gt;
&lt;span style="white-space: pre;"&gt; &lt;/span&gt;int total=0;&lt;br /&gt;
&lt;span style="white-space: pre;"&gt; &lt;/span&gt;if(head==NULL){&lt;br /&gt;
&lt;span style="white-space: pre;"&gt;  &lt;/span&gt;printf("No Items to Checkout\n");&lt;br /&gt;
&lt;span style="white-space: pre;"&gt; &lt;/span&gt;}else{&lt;br /&gt;
&lt;span style="white-space: pre;"&gt;  &lt;/span&gt;data *node = head;&lt;br /&gt;
&lt;span style="white-space: pre;"&gt;  &lt;/span&gt;while(node!=NULL){&lt;br /&gt;
&lt;span style="white-space: pre;"&gt;   &lt;/span&gt;printf("%-15s&amp;nbsp; %-3d&amp;nbsp; Rp.%-5d&amp;nbsp; Rp.%d\n", node-&amp;gt;nama, node-&amp;gt;qty, node-&amp;gt;harga, node-&amp;gt;qty*node-&amp;gt;harga);&lt;br /&gt;
&lt;span style="white-space: pre;"&gt;   &lt;/span&gt;total+=node-&amp;gt;qty*node-&amp;gt;harga;&lt;br /&gt;
&lt;span style="white-space: pre;"&gt;   &lt;/span&gt;node = node-&amp;gt;next;&lt;br /&gt;
&lt;span style="white-space: pre;"&gt;  &lt;/span&gt;}&lt;br /&gt;
&lt;span style="white-space: pre;"&gt;  &lt;/span&gt;printf ("\nHere is Your Total Rp.%d\n", total);&lt;br /&gt;
&lt;span style="white-space: pre;"&gt; &lt;/span&gt;}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void viewcart(){&lt;br /&gt;
&lt;span style="white-space: pre;"&gt; &lt;/span&gt;if(head==NULL){&lt;br /&gt;
&lt;span style="white-space: pre;"&gt;  &lt;/span&gt;printf("\n");&lt;br /&gt;
&lt;span style="white-space: pre;"&gt; &lt;/span&gt;}else{&lt;br /&gt;
&lt;span style="white-space: pre;"&gt;  &lt;/span&gt;data *node = head;&lt;br /&gt;
&lt;span style="white-space: pre;"&gt;  &lt;/span&gt;while(node!=NULL){&lt;br /&gt;
&lt;span style="white-space: pre;"&gt;   &lt;/span&gt;printf("%-15s&amp;nbsp; %-3d\n", node-&amp;gt;nama, node-&amp;gt;qty);&lt;br /&gt;
&lt;span style="white-space: pre;"&gt;   &lt;/span&gt;node = node-&amp;gt;next;&lt;br /&gt;
&lt;span style="white-space: pre;"&gt;  &lt;/span&gt;}&lt;br /&gt;
&lt;span style="white-space: pre;"&gt; &lt;/span&gt;}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
int main(){&lt;br /&gt;
&lt;span style="white-space: pre;"&gt; &lt;/span&gt;int menu;&lt;br /&gt;
&lt;span style="white-space: pre;"&gt; &lt;/span&gt;char nama[100];&lt;br /&gt;
&lt;span style="white-space: pre;"&gt; &lt;/span&gt;int qty, co;&lt;br /&gt;
&lt;span style="white-space: pre;"&gt; &lt;/span&gt;int harga;&lt;br /&gt;
&lt;span style="white-space: pre;"&gt; &lt;/span&gt;srand(time(0));&lt;br /&gt;
&lt;span style="white-space: pre;"&gt; &lt;/span&gt;do{&lt;br /&gt;
&lt;span style="white-space: pre;"&gt;  &lt;/span&gt;printf("\nDREAMMERS MARKET\n");&lt;br /&gt;
&lt;span style="white-space: pre;"&gt;  &lt;/span&gt;printf("^^^^^^^^^^^^^^^^\n");&lt;br /&gt;
&lt;span style="white-space: pre;"&gt;  &lt;/span&gt;&lt;br /&gt;
&lt;span style="white-space: pre;"&gt;  &lt;/span&gt;printf("\nCart:\n");&lt;br /&gt;
&lt;span style="white-space: pre;"&gt;  &lt;/span&gt;viewcart();&lt;br /&gt;
&lt;span style="white-space: pre;"&gt;  &lt;/span&gt;&lt;br /&gt;
&lt;span style="white-space: pre;"&gt;  &lt;/span&gt;printf("\nMenu :\n");&lt;br /&gt;
&lt;span style="white-space: pre;"&gt;  &lt;/span&gt;printf("1. Add goods\n");&lt;br /&gt;
&lt;span style="white-space: pre;"&gt;  &lt;/span&gt;printf("2. Change qty\n");&lt;br /&gt;
&lt;span style="white-space: pre;"&gt;  &lt;/span&gt;printf("3. Delete goods\n");&lt;br /&gt;
&lt;span style="white-space: pre;"&gt;  &lt;/span&gt;printf("4. Checkout\n");&lt;br /&gt;
&lt;span style="white-space: pre;"&gt;  &lt;/span&gt;&lt;br /&gt;
&lt;span style="white-space: pre;"&gt;  &lt;/span&gt;printf("&amp;gt;&amp;gt; Input choice : ");&lt;br /&gt;
&lt;span style="white-space: pre;"&gt;  &lt;/span&gt;scanf("%d", &amp;amp;menu);getchar();&lt;br /&gt;
&lt;span style="white-space: pre;"&gt;  &lt;/span&gt;printf("\n");&lt;br /&gt;
&lt;span style="white-space: pre;"&gt;  &lt;/span&gt;switch(menu){&lt;br /&gt;
&lt;span style="white-space: pre;"&gt;   &lt;/span&gt;case 1:&lt;br /&gt;
&lt;span style="white-space: pre;"&gt;    &lt;/span&gt;&lt;br /&gt;
&lt;span style="white-space: pre;"&gt;    &lt;/span&gt;printf("Masukan Nama Barang: ");&lt;br /&gt;
&lt;span style="white-space: pre;"&gt;    &lt;/span&gt;scanf("%[^\n]", &amp;amp;nama);&lt;br /&gt;
&lt;span style="white-space: pre;"&gt;   &lt;/span&gt;&lt;br /&gt;
&lt;span style="white-space: pre;"&gt;    &lt;/span&gt;printf("Masukan Qty[1-100]: ");&lt;br /&gt;
&lt;span style="white-space: pre;"&gt;    &lt;/span&gt;scanf("%d", &amp;amp;qty);&lt;br /&gt;
&lt;span style="white-space: pre;"&gt;    &lt;/span&gt;&lt;br /&gt;
&lt;span style="white-space: pre;"&gt;    &lt;/span&gt;harga = (rand()%100)*1000;&lt;br /&gt;
&lt;span style="white-space: pre;"&gt;    &lt;/span&gt;&lt;br /&gt;
&lt;span style="white-space: pre;"&gt;    &lt;/span&gt;push(nama,qty,harga);&lt;br /&gt;
&lt;span style="white-space: pre;"&gt;    &lt;/span&gt;&lt;br /&gt;
&lt;span style="white-space: pre;"&gt;    &lt;/span&gt;printf("--- Add goods Success ---\n");&lt;br /&gt;
&lt;span style="white-space: pre;"&gt;    &lt;/span&gt;break;&lt;br /&gt;
&lt;span style="white-space: pre;"&gt;    &lt;/span&gt;&lt;br /&gt;
&lt;span style="white-space: pre;"&gt;   &lt;/span&gt;case 2:&lt;br /&gt;
&lt;span style="white-space: pre;"&gt;    &lt;/span&gt;printf("Masukkan nama barang(pastikan namanya sama saat input): ");&lt;br /&gt;
&lt;span style="white-space: pre;"&gt;    &lt;/span&gt;scanf("%[^\n]", &amp;amp;nama);&lt;br /&gt;
&lt;span style="white-space: pre;"&gt;    &lt;/span&gt;printf("Masukan Qty[1-100]: ");&lt;br /&gt;
&lt;span style="white-space: pre;"&gt;    &lt;/span&gt;scanf("%d", &amp;amp;qty);&lt;br /&gt;
&lt;span style="white-space: pre;"&gt;    &lt;/span&gt;edit(nama,qty);&lt;br /&gt;
&lt;span style="white-space: pre;"&gt;    &lt;/span&gt;printf("--- Change goods qty Success ---\n");&lt;br /&gt;
&lt;span style="white-space: pre;"&gt;    &lt;/span&gt;break;&lt;br /&gt;
&lt;span style="white-space: pre;"&gt;    &lt;/span&gt;&lt;br /&gt;
&lt;span style="white-space: pre;"&gt;   &lt;/span&gt;case 3:&lt;br /&gt;
&lt;span style="white-space: pre;"&gt;    &lt;/span&gt;printf("Masukkan nama barang(pastikan namanya sama saat input): ");&lt;br /&gt;
&lt;span style="white-space: pre;"&gt;    &lt;/span&gt;scanf("%[^\n]", &amp;amp;nama);&lt;br /&gt;
&lt;span style="white-space: pre;"&gt;    &lt;/span&gt;pop(nama);&lt;br /&gt;
&lt;span style="white-space: pre;"&gt;    &lt;/span&gt;printf("--- Delete goods Success ---\n");&lt;br /&gt;
&lt;span style="white-space: pre;"&gt;    &lt;/span&gt;break;&lt;br /&gt;
&lt;span style="white-space: pre;"&gt;    &lt;/span&gt;&lt;br /&gt;
&lt;span style="white-space: pre;"&gt;   &lt;/span&gt;case 4:&lt;br /&gt;
&lt;span style="white-space: pre;"&gt;    &lt;/span&gt;printf("Here is your bill\n\n");&lt;br /&gt;
&lt;span style="white-space: pre;"&gt;    &lt;/span&gt;viewALL();&lt;br /&gt;
&lt;span style="white-space: pre;"&gt;    &lt;/span&gt;printf("\nDo you wish to pay?\n");&lt;br /&gt;
&lt;span style="white-space: pre;"&gt;    &lt;/span&gt;printf("1. Yes\n2. No\n");&lt;br /&gt;
&lt;span style="white-space: pre;"&gt;    &lt;/span&gt;printf("&amp;gt;&amp;gt; Input choice : ");&lt;br /&gt;
&lt;span style="white-space: pre;"&gt;    &lt;/span&gt;scanf("%d", &amp;amp;co);&lt;br /&gt;
&lt;span style="white-space: pre;"&gt;    &lt;/span&gt;if(co == 1){&lt;br /&gt;
&lt;span style="white-space: pre;"&gt;     &lt;/span&gt;printf("Kindness is free\n");&lt;br /&gt;
&lt;span style="white-space: pre;"&gt;     &lt;/span&gt;popall();&lt;br /&gt;
&lt;span style="white-space: pre;"&gt;     &lt;/span&gt;break;&lt;br /&gt;
&lt;span style="white-space: pre;"&gt;    &lt;/span&gt;}else{&lt;br /&gt;
&lt;span style="white-space: pre;"&gt;     &lt;/span&gt;printf("It's okay kindness is free\n");&lt;br /&gt;
&lt;span style="white-space: pre;"&gt;     &lt;/span&gt;popall();&lt;br /&gt;
&lt;span style="white-space: pre;"&gt;     &lt;/span&gt;break;&lt;br /&gt;
&lt;span style="white-space: pre;"&gt;    &lt;/span&gt;}&lt;br /&gt;
&lt;span style="white-space: pre;"&gt;    &lt;/span&gt;&lt;br /&gt;
&lt;span style="white-space: pre;"&gt;  &lt;/span&gt;}&lt;br /&gt;
&lt;span style="white-space: pre;"&gt;  &lt;/span&gt;&lt;br /&gt;
&lt;span style="white-space: pre;"&gt; &lt;/span&gt;}while(menu!=4);&lt;br /&gt;
&lt;span style="white-space: pre;"&gt; &lt;/span&gt;&lt;br /&gt;
}&lt;/div&gt;
</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiYoD5d3dRV6yHRGCRUbxTTsRdeqqnDKimZbJdq0fcIP35Eoep8_Bng-UL9M9nIe-1vtP-byte24p8nvuJt_eqgafwBqYDDyJWJzTr0fPYr9bP8PxdlY1UIKJew8nyldREwwTyjgyv7AZwU/s72-c/1583240371061.jpg" width="72"/><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>HASHING &amp; BINARY TREE</title><link>https://xaviete.blogspot.com/2020/03/hashing-binary-tree.html</link><author>noreply@blogger.com (Felicia Angelina)</author><pubDate>Tue, 10 Mar 2020 05:16:00 -0700</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-2027365241707286187.post-2152765373366357385</guid><description>&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;h2&gt;
Hashing&lt;/h2&gt;
&lt;div class="MsoNormal"&gt;
&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
Hashing merupakan Teknik untuk menyimpan dan mengambil keys
dengan cara yang cepat.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
Hashing menyimpan keysnya di array yang bernama hash table
dan menggunakan function yang sudah ditentukan yaitu hash function.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
Hashing terdapat 5 jenis:&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class="MsoListParagraphCxSpFirst" style="mso-list: l2 level1 lfo1; tab-stops: list .5in; text-indent: -.25in;"&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style="text-indent: -0.25in;"&gt;Mid-square&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="text-indent: -0.25in;"&gt;Division (paling sering digunakan)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="text-indent: -0.25in;"&gt;Folding&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="text-indent: -0.25in;"&gt;Digit Extraction&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="text-indent: -0.25in;"&gt;Rotating Hash&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="MsoListParagraphCxSpMiddle" style="margin-left: 0in; mso-add-space: auto;"&gt;
Mid
square caranya adalah dengan mempangkatkan angka yang ingin disimpan yang kemudian
akan diambil angka tengahnya.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class="MsoListParagraphCxSpMiddle" style="margin-left: 0in; mso-add-space: auto;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="MsoListParagraphCxSpMiddle" style="margin-left: 0in; mso-add-space: auto;"&gt;
Divison
caranya adalah dengan memodulus angka yang ingin disimpan dengan ukuran dari
size table yang diberikan/digunakan.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class="MsoListParagraphCxSpMiddle" style="margin-left: 0in; mso-add-space: auto;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="MsoListParagraphCxSpMiddle" style="margin-left: 0in; mso-add-space: auto;"&gt;
Folding
caranya adalah dengan membagi setiap angka menjadi 2 bagian yang kemudian akan
saling ditambahkan.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class="MsoListParagraphCxSpMiddle" style="margin-left: 0in; mso-add-space: auto;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="MsoListParagraphCxSpMiddle" style="margin-left: 0in; mso-add-space: auto;"&gt;
Digit
extraction caranya adalah mengambil digit pada letak-letak terntetu yang sudah
ditentukan sebelumnya dan angka tersebut kemudian akan menjadi hash addressnya.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class="MsoListParagraphCxSpMiddle" style="margin-left: 0in; mso-add-space: auto;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="MsoListParagraphCxSpMiddle" style="margin-left: 0in; mso-add-space: auto;"&gt;
Rotating
hash caranya adalah menggunakan mid-square atau division terlebih dahulu buat
dapet hash adressnya dan kemudian dibalik angkanya.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class="MsoListParagraphCxSpMiddle" style="margin-left: 0in; mso-add-space: auto;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
Hashing pada saat ini digunakan dalam blockchain, terutama
dalam cryptocurrency. Hashing sangatlah penting dalam pengaturannya. Hash bagaikan
backbone dalam cryptocurrency.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
Hash membantu dalam menyimpan data yang sangat banyak dalam blockchain.&lt;/div&gt;
&lt;div class="MsoListParagraphCxSpMiddle" style="margin-left: 0in; mso-add-space: auto;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h3 style="margin-left: 0in; mso-add-space: auto;"&gt;
Collision&lt;/h3&gt;
&lt;div class="MsoListParagraphCxSpMiddle" style="margin-left: 0in; mso-add-space: auto;"&gt;
Collasion
terjadi ketika ada string yang memiliki hash key yang sama contohnya seperti
float dan floor dimana sama-sama berawalan f.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class="MsoListParagraphCxSpMiddle" style="margin-left: 0in; mso-add-space: auto;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="MsoListParagraphCxSpMiddle" style="margin-left: 0in; mso-add-space: auto;"&gt;
Collison
bisa diatasi dengan 2 cara:&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class="MsoListParagraphCxSpMiddle" style="mso-list: l4 level1 lfo2; text-indent: -.25in;"&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;Linear probing&lt;/li&gt;
&lt;li&gt;Chaining&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="MsoNormal"&gt;
Linear probing adalah mencari tempat kosong selanjutnya dan menaruhnya
disana. Namun, cara ini sangatlah tidak efisien karena ketika string tersebut
ingin dicari looping yang dilakukan akan banyak.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
Chaining adalah meletakkan string tersebut sebagai linked
list jadi apa bila floor terletak di hash key 5 maka ia linked list ke float
jadi tidak membuang-buang waktu untuk mencarinya.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h2&gt;
Tree&lt;/h2&gt;
&lt;div class="MsoNormal"&gt;
&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
Tree merupakan struktur yang menunjukan hirarki antar non-linear
data.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
Node dalam tree tidak perlu disimpan secara berurut, ia
dapat disimpan secara asal dan kemudian dihubungkan dengan pointer.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
Konsep tree&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class="MsoListParagraphCxSpFirst" style="mso-list: l0 level1 lfo3; text-indent: -.25in;"&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;Node yang paling diatas disebut &lt;b&gt;root&lt;/b&gt;.&lt;/li&gt;
&lt;li&gt;Line yang menghubungankan antara parent dan
child disebut &lt;b&gt;edge&lt;/b&gt;.&lt;/li&gt;
&lt;li&gt;Node yang tidak memiliki children disebut &lt;b&gt;leaf&lt;/b&gt;.
&lt;/li&gt;
&lt;li&gt;Node yang memiliki parent yang sama disebut &lt;b&gt;sibling&lt;/b&gt;.
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Degree&lt;/b&gt; of node mereupakan jumlah dari sub
tree sebuah node.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Height/Depth &lt;/b&gt;merupakan maksimum degree
dalam sebuah tree.&lt;/li&gt;
&lt;li&gt;Jika ada line yang menghubungkan antara p dan q,
maka p disebut &lt;b&gt;ancestor&lt;/b&gt; dari&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;q,
dan q adalah &lt;b&gt;descendant&lt;/b&gt; dari p. &lt;/li&gt;
&lt;/ul&gt;
&lt;!--[if !supportLists]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;br /&gt;


&lt;div class="MsoListParagraphCxSpMiddle" style="mso-list: l0 level1 lfo3; text-indent: -.25in;"&gt;
&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class="MsoListParagraphCxSpMiddle" style="mso-list: l0 level1 lfo3; text-indent: -.25in;"&gt;
&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class="MsoListParagraphCxSpMiddle" style="mso-list: l0 level1 lfo3; text-indent: -.25in;"&gt;
&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class="MsoListParagraphCxSpMiddle" style="mso-list: l0 level1 lfo3; text-indent: -.25in;"&gt;
&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class="MsoListParagraphCxSpMiddle" style="mso-list: l0 level1 lfo3; text-indent: -.25in;"&gt;
&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class="MsoListParagraphCxSpLast" style="mso-list: l0 level1 lfo3; text-indent: -.25in;"&gt;
&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class="MsoListParagraphCxSpLast" style="mso-list: l0 level1 lfo3; text-indent: -.25in;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h3&gt;
Binary tree&lt;/h3&gt;
&lt;div class="MsoNormal"&gt;
Konsep binary tree&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class="MsoListParagraphCxSpFirst" style="mso-list: l1 level1 lfo4; text-indent: -.25in;"&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;Binary tree merupakan struktur data tree dimana
setiap node maksimal memiliki 2 node.&lt;/li&gt;
&lt;li&gt;Setiap 2 children tersebut biasanya dibedakan
sebagai left child atau right child.&lt;/li&gt;
&lt;li&gt;Node yang tidak memiliki children disebut leaf. &lt;/li&gt;
&lt;/ul&gt;
&lt;!--[if !supportLists]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;br /&gt;


&lt;div class="MsoListParagraphCxSpMiddle" style="mso-list: l1 level1 lfo4; text-indent: -.25in;"&gt;
&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class="MsoListParagraphCxSpLast" style="mso-list: l1 level1 lfo4; text-indent: -.25in;"&gt;
&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
Tipe binary tree&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class="MsoListParagraphCxSpFirst" style="mso-list: l3 level1 lfo5; text-indent: -.25in;"&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;Perfect binary tree&lt;/li&gt;
&lt;li&gt;Complete binary tree&lt;/li&gt;
&lt;li&gt;Skewed binary tree&lt;/li&gt;
&lt;li&gt;Balanced binary tree&lt;/li&gt;
&lt;/ul&gt;
&lt;!--[if !supportLists]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;br /&gt;


&lt;div class="MsoListParagraphCxSpMiddle" style="mso-list: l3 level1 lfo5; text-indent: -.25in;"&gt;
&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class="MsoListParagraphCxSpMiddle" style="mso-list: l3 level1 lfo5; text-indent: -.25in;"&gt;
&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class="MsoListParagraphCxSpLast" style="mso-list: l3 level1 lfo5; text-indent: -.25in;"&gt;
&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
Perfect binary tree adalah dimana setiap level mempunyai
height/depth yang sama.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
Complete binary tree adalah binary tree yang setiap
levelnya, kecuali yang terakhir terisi penuh dan semua node dipenuhkan pada
sisi kiri tree. Semua perfect binary tree merupakan complete binary tree.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
Skewed binary tree merupakan tree yang setiap nodenya
maksimal memiliki 1 child.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
Balanced binary tree merupakan tree dimana leaf yang satu
tidak boleh lebih jauh levelnya dari leaf yang lain jadi harus seimbang.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
Pada coding diberikut akan terbentuk seperti ini&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;1&amp;nbsp; &amp;nbsp; &amp;lt;-- root&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;/&amp;nbsp; &amp;nbsp;\&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&amp;nbsp; &amp;nbsp; 2&amp;nbsp; &amp;nbsp; &amp;nbsp;3&amp;nbsp;&amp;nbsp;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&amp;nbsp; &amp;nbsp;/&amp;nbsp; &amp;nbsp;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&amp;nbsp; 4&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEht79WsqtWChcBbqB3ZPVo0klcy_6Cur82DUtpT04vwkasxx_CI10tottOpTRs1EMIZmpmG6E54ZqjM0sEedR9W_Y1TA-nlTB5MIM8Dy_WOB9vYpbMh1aLLK1qtYisCorOYQV0OMJXrhd9Q/s1600/Capture.PNG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" data-original-height="629" data-original-width="689" height="584" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEht79WsqtWChcBbqB3ZPVo0klcy_6Cur82DUtpT04vwkasxx_CI10tottOpTRs1EMIZmpmG6E54ZqjM0sEedR9W_Y1TA-nlTB5MIM8Dy_WOB9vYpbMh1aLLK1qtYisCorOYQV0OMJXrhd9Q/s640/Capture.PNG" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEht79WsqtWChcBbqB3ZPVo0klcy_6Cur82DUtpT04vwkasxx_CI10tottOpTRs1EMIZmpmG6E54ZqjM0sEedR9W_Y1TA-nlTB5MIM8Dy_WOB9vYpbMh1aLLK1qtYisCorOYQV0OMJXrhd9Q/s72-c/Capture.PNG" width="72"/><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>Linked list</title><link>https://xaviete.blogspot.com/2020/03/linked-list-1.html</link><author>noreply@blogger.com (Felicia Angelina)</author><pubDate>Tue, 3 Mar 2020 04:43:00 -0800</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-2027365241707286187.post-4511909606880637614</guid><description>&lt;span style="font-size: large;"&gt;Pertemuan GSLC&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
array dan linked list bisa dibilang sama namun tak sama.&lt;br /&gt;
perbedaan array dan linked list adalah&lt;br /&gt;
array&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;kumupulan dari data&lt;/li&gt;
&lt;li&gt;menyimpan datanya di memory yang beruurtan&lt;/li&gt;
&lt;li&gt;bisa mengakses data mana saja secara langsung&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
linked list&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;kumpulan dari node&lt;/li&gt;
&lt;li&gt;menyimpan node di memory yang secara acak&lt;/li&gt;
&lt;li&gt;hanya bisa diakses secara berurutan&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;br /&gt;
array dan linked list memiliki kelebihan dan kekurangan tersendiri.&lt;br /&gt;
contohnya adalah&lt;br /&gt;
kelebihan array&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;mudah digunakan&lt;/li&gt;
&lt;li&gt;lebih cepat megakses data mana saja&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
kekurangan array&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;ukuran tidak dapat dirubah sehingga terkadang memakan banyak memory&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
kelebihan linked list&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;penggunaan memory sesuai banyaknya data yang ada sehingga irit&lt;/li&gt;
&lt;li&gt;sistemnya fleksibel&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
kekurangan linked list&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;pengerjaan lebih komples&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
linked list terdapat banyak macam, beberapa contohnya adalah&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;circular linked list&lt;/li&gt;
&lt;li&gt;double linked list&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
circular linked list dalam permasalahan yang berhubungan dengan head dan tail memang lebih cepat diselesaikan dan juga ia bisa ke node manapun.&lt;/div&gt;
&lt;div&gt;
&lt;div style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;
&lt;/div&gt;
&lt;div style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;
&lt;/div&gt;
namun apa bila tidak di coding dengan benar dapat terjadi infinite loop dan juga&amp;nbsp;karena ia hanya satu arah, ia tidak bisa mundur sehingga jika ia harus mengelilingi list terlebih dahulu untuk mencapai sebuah node jika ia terletak disebelumnya.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-size: large;"&gt;Pertemuan ketiga&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
pada pertemuan ini saya mempelajari cara kerja linked list dalam bentuk codingnya dan double linked list secara singkat.&lt;br /&gt;
&lt;br /&gt;
linked list cara kerjanya adalah dengan cara menyimpan alamat satu sama lain bukan dengan menyimpan isi dari alamat tersebut.&lt;br /&gt;
&lt;br /&gt;
setiap alamat akan mempunyai hubungan dengan alamat berikutnya sehingga mereka akan saling menyambung&lt;br /&gt;
&lt;a href="https://media.geeksforgeeks.org/wp-content/cdn-uploads/gq/2013/03/Linkedlist.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img alt="Image result for linked list" border="0" class="n3VNCb" data-noaft="1" height="140" jsaction="load:XAeZkd;" jsname="HiaYvf" src="https://media.geeksforgeeks.org/wp-content/cdn-uploads/gq/2013/03/Linkedlist.png" style="margin-top: 56.05px;" width="640" /&gt;&lt;/a&gt;seperti di atas cara kerjanya data pertama jika di next maka dia akan ke data b karena setelah data a itu tersimpan alamat dari data b.&lt;br /&gt;
&lt;br /&gt;
head akan selalu ada pada data pertama sedangkan pada ujung akan bernama tail dan dia tidak akan menunjuk kemana-mana maka panak tersebut dituliskan NULL.&lt;br /&gt;
&lt;br /&gt;
pada linked list biasa dia tidak bisa bergerak mundur maka ia akan selalu bergerak dari head ke tail.&lt;br /&gt;
&lt;br /&gt;
seperti berikut adalah codingnya&lt;br /&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiYoD5d3dRV6yHRGCRUbxTTsRdeqqnDKimZbJdq0fcIP35Eoep8_Bng-UL9M9nIe-1vtP-byte24p8nvuJt_eqgafwBqYDDyJWJzTr0fPYr9bP8PxdlY1UIKJew8nyldREwwTyjgyv7AZwU/s1600/1583240371061.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" data-original-height="337" data-original-width="667" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiYoD5d3dRV6yHRGCRUbxTTsRdeqqnDKimZbJdq0fcIP35Eoep8_Bng-UL9M9nIe-1vtP-byte24p8nvuJt_eqgafwBqYDDyJWJzTr0fPYr9bP8PxdlY1UIKJew8nyldREwwTyjgyv7AZwU/s1600/1583240371061.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
coding di atas adalah untuk memasukan data kedalam linked list&lt;br /&gt;
&lt;br /&gt;
sedangkan dibawah ini adalah cara menghapus data paling atas dari linked list&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgBE3b6_syW-K_KrOq24oy_MpvwPUn9dW1Y7TNr2ABT8vFH4O4TX43vb9Dp84G_91-yYZ-X3QUZwTyKMZgC76BLhyLARrwp_7JkoTorXYUDQhLNkMSgchPFmTsT1ZNUZ-TiyYivdl6iSPgH/s1600/1583240605180.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" data-original-height="307" data-original-width="545" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgBE3b6_syW-K_KrOq24oy_MpvwPUn9dW1Y7TNr2ABT8vFH4O4TX43vb9Dp84G_91-yYZ-X3QUZwTyKMZgC76BLhyLARrwp_7JkoTorXYUDQhLNkMSgchPFmTsT1ZNUZ-TiyYivdl6iSPgH/s1600/1583240605180.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
double hampir sama dengan linked list biasa namun bedanya dia bisa mundur&lt;br /&gt;
cara kerjanya seperti di bawah ini&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://www.cs.cmu.edu/~adamchik/15-121/lectures/Linked%20Lists/pix/doubly.bmp" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img alt="Image result for types of linked list" border="0" class="n3VNCb" data-noaft="1" jsaction="load:XAeZkd;" jsname="HiaYvf" src="https://www.cs.cmu.edu/~adamchik/15-121/lectures/Linked%20Lists/pix/doubly.bmp" style="margin-top: 81.05px;" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;a href="https://media.geeksforgeeks.org/wp-content/cdn-uploads/gq/2013/03/Linkedlist.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;br /&gt;&lt;/a&gt;&lt;/div&gt;
</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiYoD5d3dRV6yHRGCRUbxTTsRdeqqnDKimZbJdq0fcIP35Eoep8_Bng-UL9M9nIe-1vtP-byte24p8nvuJt_eqgafwBqYDDyJWJzTr0fPYr9bP8PxdlY1UIKJew8nyldREwwTyjgyv7AZwU/s72-c/1583240371061.jpg" width="72"/><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item></channel></rss>