Apliksi Pohon lm Struktur Dt Hsh Trie M. Ishm Azmnsyh F. 13514014 Progrm Stui Teknik Inormtik Sekolh Teknik Elektro n Inormtik Institut Teknologi Bnung, Jl. Gnesh 10 Bnung 40132, Inonesi i@imj.com Abstrk Slh stu struktur t yng sering igunkn lm pengembngn perngkt lunk lh struktur t mp, yng igunkn untuk memetkn sutu nili ke nili yng lin. Nmun, struktur t mp cukup sulit iimplementsikn secr eisien. Mklh ini menjelskn slh stu lternti implementsi struktur t mp, yitu engn menggunkn hsh trie. Trie lh sebuh pohon n- ry terurut engn beberp sit yng memuhkn penggunnny sebgi struktur t mp. Implementsi struktur t mp engn menggunkn hsh trie bis menptkn wktu pencrin, penmbhn, n penghpusn yng konstn. Kt kunci mp, pohon, struktur t, hsh, trie I. PENDAHULUAN Struktur t mp lh slh stu struktur t yng pling sering ipki. Struktur t ini berungsi untuk memetkn sutu t yng isebut key ke t lin yng bis isebut vlue. Apliksi mp lm pengembngn sotwre sngt bnyk. Struktur mp memng merupkn struktur yng sngt lmi n bnyk muncul i kehiupn kit. Contohny, mengkses t mhsisw bersrkn NIMny. Struktur t ini cukup sulit iimplementsikn. Ielny, semu t hrus bis ikses lm wktu yng konstn, tik peuli berp t yng tersimpn. Penmbhn n penghpusn t jug hrus bis ilkukn engn wktu yng konstn. Implementsi struktur t mp suh bnyk, nmun bnyk implementsi yng memiliki kekurngn. Contohny lh hsh tble n binry serch tree. Hsh tble memiliki wktu kses n penghpusn yng konstn, nmun struktur t ini memiliki kpsits yng terbts. Bil t yng bru terus itmbhkn, hrus ilkukn opersi resize yng relti lmbt. Binry serch tree memiliki wktu kses, tmbh, n hpus yng tik konstn, yitu O(log n). Ketik penmbhn n penghpusn jug iperlukn opersi penyeimbngn. Mklh ini kn membhs slh stu jenis implementsi mp yng memiliki wktu kses, tmbh, n hpus yng konstn (O(1)), yitu hsh trie. II. DASAR TEORI Struktur t ini menggunkn beberp konsep mtemtik iskrit n struktur t, yng ijelskn i bb ini. A. Gr Ilustrsi gr. Sumber: https://commons.wikimei.org/wiki/file:6n-gr.svg Gr lh gbungn ri himpunn simpul n himpunn sisi. Simpul lh objek-objek yng sling ihubungkn oleh sisi. Gr memiliki beberp vrisi yng memiliki sit-sit khusus. Slh stu ri vrisi tersebut lh pohon. B. Pohon Ilustrsi pohon. Sumber: https://commons.wikimei.org/wiki/file:tree_grph.svg Pohon lh gr terhubung yng tik memiliki sirkuit. Hl ini berrti hny stu jln i ntr u simpul sembrng. Pohon memiliki beberp sit yng membut merek sering igunkn lm lgoritm. C. Pohon berkr Mklh IF2120 Mtemtik Diskrit Sem. I Thun 2015/2016
https://commons.wikimei.org/wiki/file:trie_exmple.svg Ilustrsi pohon berkr. Sumber: https://en.wikipei.org/wiki/file:binry_tree.svg Pohon berkr lh slh stu vrisi ri pohon. Pohon berkr memiliki stu simpul yng itentukn sebgi kr. Semu sisi p pohon berkr lh sisi berrh yng menjuhi kr. D. Pohon n-ry Pohon n-ry lh pohon berkr yng setip simpulny memiliki pling bnyk n nk. Contohny, setip simpul p pohon biner memiliki pling bnyk u nk. Pohon n-ry lh jenis pohon yng sering ipki lm lgoritm kren kemuhn implementsi n sit-sitny. E. Trie Trie lh sebuh pohon n-ry terurut engn beberp sit khusus. Setip subpohon ri sutu trie menyimpn t engn preiks yng sm. Sit ini sngt membntu pencrin, penmbhn, n penghpusn t p trie. Opersi-opersi tersebut pt ilkukn secr rekursi. Jumlh opersi yng hrus ilkukn lm pencrin, penmbhn, tu penghpusn kn ibtsi engn ukurn key, n tik tergntung engn jumlh elemen. F. Hsh Hsh lh sebuh ungsi yng mengubh t menji t lin yng ukurnny konstn. Mislny sebuh string yng bis berukurn p sj pt iubh oleh ungsi hsh menji t yng besrny 64 bit. Sebuh ungsi hsh yng kn igunkn lm implementsi struktur t hrus memiliki beberp sit penting. Fungsi hsh tersebut hrus cept ihitung n tersebr mert. Keceptn perhitungn ungsi hsh sngt penting kren ungsi ini kn ipnggil berulng kli. Hl ini berbe engn ungsi hsh yng itujukn untuk kriptogri, seperti SHA. Kren itu, bisny lgoritm hsh yng igunkn untuk struktur t n lgoritm hsh yng igunkn untuk kriptogri ipishkn, kren penggunn yng slh bis bermpk negti terhp kulits progrm. Fungsi hsh jug hrus tersebr mert, kren kebnykn lgoritm yng bekerj engn hsh memiliki kinerj pling bik ketik semu t menghsilkn hsh yng berbe. III. ANALISIS Ilustrsi Trie. Sumber: A. Deskripsi Hsh trie lh trie yng menyimpn t menggunkn hsh ri key-ny. Hsh igunkn gr tinggi trie pt ipreiksi n nili-nili yng isimpn tersebr mert. Contoh hsh trie lh seperti i gmbr berikut: Mklh IF2120 Mtemtik Diskrit Sem. I Thun 2015/2016
hsh(aym) = 4 hsh(merpti) = hsh(bebek) = 5c3 5 c 4 3 Aym 35 Merpti 40 P gmbr i ts, sebuh hsh trie igunkn untuk memetkn nm hewn kep sebuh bilngn bult. Dpt iliht bhw cr kerj hsh trie sm persis engn trie bis. Hsh trie yng terliht i ts merupkn pohon 16-ry, n setip sisi menyimpn stu krkter heksesiml. B. Kompleksits Algoritm P hsh trie yng optiml, wktu kses, tmbh, n hpus bis menekti O(1). Dpt iliht bhw wktu ketigny hny tergntung engn ukurn hsh yng Ilustrsi hsh trie. igunkn. Kren ukurn hsh yng igunkn lh konstn, mk wktu ksesny jug konstn. P contoh i ts, pencrin, penmbhn, tu penghpusn t hny perlu menelusuri pointer sebnyk empt kli, tik peuli berp bnyk t yng telh isimpn. Slh stu implementsi hsh trie yng suh ioptimlkn berhsil menptkn wktu kses yng menekti O(1), n engn keceptn u kli lipt ri hsh tble, seperti yng itunjukkn p tbel berikut. Perbningn wktu pencrin hsh trie (HAMTC n HAMTL) n hsh tble (Hsh2K, Hsh64K, n Hsh512K) engn jumlh elemen hingg elpn jut elemen. Wktu engn tn gris mennkn keterbtsn memori sistem. Sumber: Bgwell, P., Iel Hsh Trees, 2000. C. Kelemhn Seperti struktur t lin yng memntkn hsh, hsh trie jug rentn terhp hsh collision, yitu konisi i mn beberp t memiliki nili hsh yng sm. Nmun, hl ini sngt jrng terji sehingg pt ibikn lm kebnykn ksus. Struktur hsh trie jug kn menggunkn lebih bnyk memori ibningkn engn hsh tble. Hl ini isebbkn ukurn pointer yng bnyk igunkn trie ( byte per pointer p sistem 64-bit). D. Pemutkhirn Beberp kelemhn ri hsh trie pt ikurngi engn beberp perubhn ke struktur t ini. Mslh hsh collision pt itngni engn Mklh IF2120 Mtemtik Diskrit Sem. I Thun 2015/2016
menggunkn ungsi hsh yng bis menmbh ukurn hsh seperluny. Mislny, u buh key memiliki hsh yng sm ketik ukurn hsh lh 4 bit. Mk igunkn hsh bit. Bil hsh trie itur untuk menggunkn ukurn hsh yng pling kecil, hl ini jug bis mengurngi penggunn memori. Berikut ilustrsi struktur t hsh trie yng telh imoiiksi: hsh(aym) = 4... hsh(merpti) =... hsh(bebek) = 5c3... Aym 35 Merpti 40 Ilustrsi hsh trie yng telh imoiiksi. Empt noe berhsil ihilngkn untuk menghemt memori. Fungsi hsh yng igunkn pt menghsilkn hsh yng lebih pnjng jik iperlukn progrm. Penghemtn memori lebih lnjut pt iptkn engn meliht cr penyimpnn pointer ke subpohon p trie. Berikut lh contoh koe progrm C yng mengimplementsikn hsh trie ini: 0001010000100000 3 5 3 5 Contoh koe progrm yng mengimplementsikn hsh trie. Penyimpnn nk seperti ini tik eisien, kren bnyk pointer yng kn bernili 0 (null pointer). Cr yng lebih bik lh engn menyimpn pointer mn sj yng tik bernili 0 lm sebuh bitmp, seperti yng itunjukkn p ilustrsi berikut: Ilustrsi penggunn bitmp untuk menghemt memori. Koe progrm yng iperbhrui kn terliht seperti berikut: Contoh koe progrm yng mengimplementsikn hsh trie engn penghemtn memori menggunkn bitmp. Dengn perubhn-perubhn tersebut, sit boros memori ri trie pt itnggulngi. Mklh IF2120 Mtemtik Diskrit Sem. I Thun 2015/2016
IV. PENGGUNAAN Hsh trie merupkn struktur t yng igunkn untuk mengimplementsikn mp p librry Immutble.js yng ikembngkn oleh Fcebook. Hsh trie jug igunkn lm bhs pemrogrmn Hskell. Implementsi hsh trie jug tersei p bnyk bhs pemrogrmn linny. Hsh trie memiliki beberp sit yng membutny muh igunkn sebgi struktur t yng immutble (tik pt iubh). Hl ini isebbkn oleh strukturny yng bersrkn struktur pohon. Contoh sit ini lh sebgi berikut. Mislkn hewn bru ingin itmbhkn ke contoh i ts, tetpi tnp mengubh struktur t sli. Hl ini pt ilkukn engn penggunn memori yng minim sebgi berikut: b hsh(aym) = 4... hsh(merpti) =... hsh(bebek) = 5c3... hsh(kucing) = b3... Kucing 50 Aym 35 Merpti 40 Ilustrsi u hsh trie. Keuny bis igunkn secr inepenen, selm struktur hsh trie tersebut ieinisikn immutble. Dpt iliht bhw penmbhn hewn bru ke hsh trie tersebut hny membutuhkn tmbhn u noe. Hsh trie yng sebelumny tik berubh. Hl ini hny pt ilkukn jik struktur t ini ieklrsikn immutble. VII. UCAPAN TERIMA KASIH Penulis memnjtkn puji n syukur kep Allh SWT ts segl rhmtny sehingg mklh ini pt iselesikn. Penulis jug mengucpkn terim ksih kep osen pengjr Mtemtik Diskrit, Ibu Hrlili n Bpk Rinli Munir untuk semu pengethun yng telh iberikn mengeni semu spek Mtemtik Diskrit, n khususny tentng teori Gr n Pohon yng mensri mklh ini. PERNYATAAN Dengn ini sy menytkn bhw mklh yng sy tulis ini lh tulisn sy seniri, bukn surn, tu terjemhn ri mklh orng lin, n bukn plgisi. Bnung, 10 Desember 2015 M. Ishm Azmnsyh F. 13514014 VIII. DAFTAR PUSTAKA [1] Munir, Rinli. Mtemtik Diskrit. Inormtik, Bnung: 2010. [2] Bgwell, Phil. Iel Hsh Trees. 2000. [3] Tibell, John. Announcing unorere-continers 0.2. Dikses 10 Desember 2015. http://blog.johntibell.com/2012/03/nnouncingunorere-continers-02.html [4] Byron et l. Immutble.js. Dikses 10 Desember 2015. https://cebook.github.io/immutble-js/ Mklh IF2120 Mtemtik Diskrit Sem. I Thun 2015/2016