{"id":628,"date":"2026-07-14T14:41:02","date_gmt":"2026-07-14T14:41:02","guid":{"rendered":"https:\/\/socs.binus.ac.id\/computer-science\/?p=628"},"modified":"2026-07-14T14:46:06","modified_gmt":"2026-07-14T14:46:06","slug":"mengenal-splay-tree","status":"publish","type":"post","link":"https:\/\/socs.binus.ac.id\/computer-science\/2026\/07\/14\/mengenal-splay-tree\/","title":{"rendered":"Mengenal Splay Tree"},"content":{"rendered":"<p><span data-contrast=\"auto\">Dalam\u00a0dunia\u00a0struktur\u00a0data,\u00a0kita\u00a0tidak\u00a0asing\u00a0dengan\u00a0<em>Self Balancing<\/em><\/span><em>\u00a0<\/em><span data-contrast=\"auto\"><em>Binary Search Tree<\/em> (BST),\u00a0seperti\u00a0<strong>AVL Tree<\/strong>\u00a0atau\u00a0<strong>Red-Black Tree <\/strong>karena kinerjanya yang baik dalam operasi <\/span><i><span data-contrast=\"auto\">search, insert <\/span><\/i><span data-contrast=\"auto\">dan\u00a0<\/span><i><span data-contrast=\"auto\">delete<\/span><\/i><span data-contrast=\"auto\">.\u00a0Namun,\u00a0bagaimana\u00a0jika\u00a0kita\u00a0hanya\u00a0mengakses\u00a0<em>value<\/em> tertentu dan <em>value <\/em>tersebut ada di bagian <em>leaf<\/em>?\u00a0Untuk\u00a0menangani\u00a0kasus\u00a0seperti\u00a0ini, <em>Splay<\/em> <em>Tree<\/em>\u00a0dapat\u00a0menjadi\u00a0solusi\u00a0karena\u00a0kemampuan\u00a0<\/span><i><span data-contrast=\"auto\">self adjusting <\/span><\/i><span data-contrast=\"auto\">nya sesuai dengan <em>value\/key <\/em>yang sering kita akses.<\/span><span data-ccp-props=\"{}\">\u00a0<\/span><\/p>\n<p><b><span data-contrast=\"auto\">Kenapa\u00a0Splay Tree?<\/span><\/b><span data-ccp-props=\"{}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\"><strong>Splay Tree<\/strong>\u00a0merupakan\u00a0BST yang\u00a0memiliki\u00a0kemampuan\u00a0<\/span><i><span data-contrast=\"auto\">self adjusting <\/span><\/i><span data-contrast=\"auto\">yang artinya <em>tree<\/em> ini secara otomatis akan menyesuaikan strukturnya setiap kali dilakukan operasi <\/span><i><span data-contrast=\"auto\">search<\/span><\/i><span data-contrast=\"auto\">,\u00a0<\/span><i><span data-contrast=\"auto\">insert<\/span><\/i><span data-contrast=\"auto\">, dan\u00a0<\/span><i><span data-contrast=\"auto\">delete<\/span><\/i><span data-contrast=\"auto\">. Setiap kali sebuah node diakses, node tersebut akan dipindahkan ke <em>root<\/em> melalui proses yang disebut <\/span><i><span data-contrast=\"auto\">splaying<\/span><\/i><span data-contrast=\"auto\">. Konsep ini pertama kali diperkenalkan oleh Daniel Sleator dan Robert Tarjan pada tahun 1983, dengan tujuan untuk mendekati performa optimal BST secara dinamis, bahkan ketika frekuensi akses tidak diketahui di awal. Berbeda dengan <em>tree<\/em> yang lain, <em>Splay Tree<\/em> merupakan <\/span><i><span data-contrast=\"auto\">optimal<\/span><\/i><span data-contrast=\"auto\">\u00a0BST\u00a0bukan\u00a0<\/span><i><span data-contrast=\"auto\">balance<\/span><\/i><span data-contrast=\"auto\">\u00a0BST.\u00a0<\/span><span data-ccp-props=\"{}\">\u00a0<\/span><\/p>\n<p><span data-ccp-props=\"{}\">\u00a0<\/span><b><span data-contrast=\"auto\">Splaying<\/span><\/b><span data-ccp-props=\"{}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">Setiap\u00a0operasi\u00a0pada <em>Splay Tree<\/em>\u00a0seperti\u00a0<\/span><i><span data-contrast=\"auto\">search, insert <\/span><\/i><span data-contrast=\"auto\">dan\u00a0<\/span><i><span data-contrast=\"auto\">delete<\/span><\/i><span data-contrast=\"auto\">\u00a0akan\u00a0dilakukan\u00a0proses <em>splaying<\/em>. Berikut adalah tiga rotasi dasar dalam proses <em>splaying<\/em>:<\/span><span data-ccp-props=\"{}\">\u00a0<\/span><\/p>\n<ol>\n<li><span data-contrast=\"auto\">Zig<\/span><span data-ccp-props=\"{}\">\u00a0<\/span><\/li>\n<\/ol>\n<p style=\"padding-left: 40px\"><span data-contrast=\"auto\">Digunakan\u00a0ketika\u00a0node yang\u00a0diakses\u00a0adalah\u00a0<\/span><i><span data-contrast=\"auto\">child<\/span><\/i><span data-contrast=\"auto\">\u00a0langsung\u00a0dari\u00a0<em>root<\/em>.\u00a0Cukup\u00a0lakukan\u00a0satu\u00a0rotasi.<\/span><span data-ccp-props=\"{&quot;335559685&quot;:720}\">\u00a0<\/span><\/p>\n<p><span data-ccp-props=\"{&quot;335551550&quot;:2,&quot;335551620&quot;:2,&quot;335559685&quot;:720}\"> <img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-630 aligncenter\" src=\"https:\/\/socs.binus.ac.id\/computer-science\/wp-content\/uploads\/sites\/8\/2026\/07\/Screenshot-2026-07-14-at-9.37.46\u202fPM.png\" alt=\"\" width=\"472\" height=\"306\" \/><\/span><\/p>\n<p style=\"padding-left: 40px\"><span data-contrast=\"auto\">2. Zig-Zig<\/span><span data-ccp-props=\"{}\">\u00a0<\/span><\/p>\n<p style=\"padding-left: 40px\"><span data-contrast=\"auto\">Digunakan ketika node dan <em>parent<\/em>-nya adalah <em>left\/right child<\/em> dari <em>grandparent<\/em>-nya. Dua rotasi ke arah yang sama dilakukan.<\/span><span data-ccp-props=\"{&quot;335559685&quot;:720}\">\u00a0<\/span><\/p>\n<p style=\"padding-left: 40px\"><span data-ccp-props=\"{&quot;335551550&quot;:2,&quot;335551620&quot;:2,&quot;335559685&quot;:720}\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-631\" src=\"https:\/\/socs.binus.ac.id\/computer-science\/wp-content\/uploads\/sites\/8\/2026\/07\/Screenshot-2026-07-14-at-9.38.52\u202fPM.png\" alt=\"\" width=\"514\" height=\"308\" \/><\/span><span data-contrast=\"auto\">3. Zig-Zag<\/span><span data-ccp-props=\"{}\">\u00a0<\/span><\/p>\n<p style=\"padding-left: 40px\"><span data-contrast=\"auto\">Digunakan\u00a0ketika\u00a0node\u00a0adalah\u00a0<em>left child\u00a0<\/em>dari\u00a0<em>parent<\/em>\u00a0yang\u00a0merupakan\u00a0<em>right child<\/em> dari\u00a0<em>grandparent<\/em>, atau sebaliknya dua rotasi ke arah berlawanan dilakukan.<\/span><span data-ccp-props=\"{&quot;335559685&quot;:720}\">\u00a0<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-632\" src=\"https:\/\/socs.binus.ac.id\/computer-science\/wp-content\/uploads\/sites\/8\/2026\/07\/Screenshot-2026-07-14-at-9.39.30\u202fPM.png\" alt=\"\" width=\"936\" height=\"376\" \/><\/p>\n<p><b><span data-contrast=\"auto\">Operasi\u00a0Lainnya<\/span><\/b><span data-ccp-props=\"{&quot;335559685&quot;:0}\">\u00a0<\/span><\/p>\n<ul>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"3\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559685&quot;:360,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;multilevel&quot;}\" data-aria-posinset=\"1\" data-aria-level=\"1\"><b><span data-contrast=\"auto\">Join<\/span><\/b><span data-contrast=\"auto\">:\u00a0menggabungkan\u00a0dua\u00a0<em>subtree<\/em> T\u2081 dan T\u2082 di mana semua elemen di T\u2081 &lt; elemen di T\u2082. Caranya dengan men-<em>splay<\/em> elemen terbesar di T\u2081 lalu menjadikan T\u2082 sebagai anak kanannya.<\/span><span data-ccp-props=\"{}\">\u00a0<\/span><\/li>\n<\/ul>\n<ul>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"3\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559685&quot;:360,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;multilevel&quot;}\" data-aria-posinset=\"2\" data-aria-level=\"1\"><b><span data-contrast=\"auto\">Split<\/span><\/b><span data-contrast=\"auto\">:\u00a0membagi\u00a0<em>tree<\/em> menjadi\u00a0dua subbagian\u00a0berdasarkan\u00a0<em>key\/value<\/em>\u00a0tertentu.<\/span><span data-ccp-props=\"{}\">\u00a0<\/span><\/li>\n<\/ul>\n<ul>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"3\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559685&quot;:360,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;multilevel&quot;}\" data-aria-posinset=\"3\" data-aria-level=\"1\"><b><span data-contrast=\"auto\">Delete<\/span><\/b><span data-contrast=\"auto\">:\u00a0men-<em>splay<\/em>\u00a0elemen\u00a0yang\u00a0ingin\u00a0dihapus\u00a0ke\u00a0<em>root<\/em>,\u00a0lalu\u00a0menggabungkan\u00a0dua <em>subtree<\/em> yang\u00a0tersisa.<\/span><span data-ccp-props=\"{}\">\u00a0<\/span><\/li>\n<\/ul>\n<p><span data-contrast=\"auto\">Visualisasi\u00a0selengkapnya\u00a0dapat\u00a0dicoba\u00a0pada website\u00a0berikut:\u00a0<\/span><a href=\"https:\/\/www.cs.usfca.edu\/~galles\/visualization\/SplayTree.html\"><span data-contrast=\"none\">https:\/\/www.cs.usfca.edu\/~galles\/visualization\/SplayTree.html<\/span><\/a><span data-ccp-props=\"{}\">\u00a0<\/span><\/p>\n<p><span data-ccp-props=\"{}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">Referensi:<\/span><span data-ccp-props=\"{}\">\u00a0<\/span><\/p>\n<ol>\n<li><span data-contrast=\"auto\">Design and Analysis of Algorithms, Chapter 10<\/span><\/li>\n<li>Data structures using C, Chapter 11<\/li>\n<li><em>Splay Tree Visualization<\/em>,\u00a0<a style=\"font-family: inherit\" href=\"https:\/\/www.cs.usfca.edu\/~galles\/visualization\/SplayTree.html\"><span data-contrast=\"none\">https:\/\/www.cs.usfca.edu\/~galles\/visualization\/SplayTree.html<\/span><\/a><span style=\"font-family: inherit\" data-contrast=\"auto\">\u00a0<\/span><\/li>\n<li><em>Splay Tree<\/em>,\u00a0<a style=\"font-family: inherit\" href=\"https:\/\/web.stanford.edu\/class\/archive\/cs\/cs166\/cs166.1146\/lectures\/08\/Small08.pdf\"><span data-contrast=\"none\">https:\/\/web.stanford.edu\/class\/archive\/cs\/cs166\/cs166.1146\/lectures\/08\/Small08.pdf<\/span><\/a><span style=\"font-family: inherit\" data-contrast=\"auto\">\u00a0<\/span><span style=\"font-family: inherit\" data-ccp-props=\"{&quot;335559739&quot;:0}\">\u00a0<\/span><\/li>\n<\/ol>\n<p><span data-ccp-props=\"{}\">\u00a0<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Dalam\u00a0dunia\u00a0struktur\u00a0data,\u00a0kita\u00a0tidak\u00a0asing\u00a0dengan\u00a0Self Balancing\u00a0Binary Search Tree (BST),\u00a0seperti\u00a0AVL Tree\u00a0atau\u00a0Red-Black Tree karena kinerjanya yang baik dalam operasi search, insert dan\u00a0delete.\u00a0Namun,\u00a0bagaimana\u00a0jika\u00a0kita\u00a0hanya\u00a0mengakses\u00a0value tertentu dan value tersebut ada di bagian leaf?\u00a0Untuk\u00a0menangani\u00a0kasus\u00a0seperti\u00a0ini, Splay Tree\u00a0dapat\u00a0menjadi\u00a0solusi\u00a0karena\u00a0kemampuan\u00a0self adjusting nya sesuai dengan value\/key yang sering kita akses.\u00a0 Kenapa\u00a0Splay Tree?\u00a0 Splay Tree\u00a0merupakan\u00a0BST yang\u00a0memiliki\u00a0kemampuan\u00a0self adjusting yang artinya tree ini secara otomatis akan menyesuaikan strukturnya setiap kali dilakukan operasi search,\u00a0insert, [&hellip;]<\/p>\n","protected":false},"author":712,"featured_media":629,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[11],"tags":[],"class_list":["post-628","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-articles"],"_links":{"self":[{"href":"https:\/\/socs.binus.ac.id\/computer-science\/wp-json\/wp\/v2\/posts\/628","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/socs.binus.ac.id\/computer-science\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/socs.binus.ac.id\/computer-science\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/socs.binus.ac.id\/computer-science\/wp-json\/wp\/v2\/users\/712"}],"replies":[{"embeddable":true,"href":"https:\/\/socs.binus.ac.id\/computer-science\/wp-json\/wp\/v2\/comments?post=628"}],"version-history":[{"count":5,"href":"https:\/\/socs.binus.ac.id\/computer-science\/wp-json\/wp\/v2\/posts\/628\/revisions"}],"predecessor-version":[{"id":637,"href":"https:\/\/socs.binus.ac.id\/computer-science\/wp-json\/wp\/v2\/posts\/628\/revisions\/637"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/socs.binus.ac.id\/computer-science\/wp-json\/wp\/v2\/media\/629"}],"wp:attachment":[{"href":"https:\/\/socs.binus.ac.id\/computer-science\/wp-json\/wp\/v2\/media?parent=628"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/socs.binus.ac.id\/computer-science\/wp-json\/wp\/v2\/categories?post=628"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/socs.binus.ac.id\/computer-science\/wp-json\/wp\/v2\/tags?post=628"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}