{"id":4254,"date":"2026-10-11T02:00:28","date_gmt":"2026-10-10T19:00:28","guid":{"rendered":"https:\/\/focusnic.com\/blog\/?p=4254"},"modified":"2026-10-11T02:00:59","modified_gmt":"2026-10-10T19:00:59","slug":"traversal-binary-search-tree","status":"publish","type":"post","link":"https:\/\/focusnic.com\/blog\/traversal-binary-search-tree\/","title":{"rendered":"Traversal pada Binary Search Tree: Inorder, Preorder, Postorder"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Traversal adalah teknik dasar untuk <strong>menjelajahi<\/strong> semua node dalam sebuah struktur data pohon. Pada <strong><a href=\"https:\/\/focusnic.com\/blog\/pengertian-binary-search-tree\/\">Binary Search Tree (BST)<\/a><\/strong>, traversal memainkan peran penting dalam berbagai operasi, mulai dari pencarian hingga pengurutan data. Dengan traversal yang tepat, kita dapat menghasilkan urutan node sesuai kebutuhan, seperti urutan menaik (ascending) atau menuruni (descending), serta memproses simpul sebelum atau sesudah anak-anaknya.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Pentingnya traversal BST meliputi:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Memetakan seluruh data dalam struktur<\/li>\n\n\n\n<li>Mendukung operasi penghapusan dan penyisipan<\/li>\n\n\n\n<li>Menghasilkan output terurut berdasarkan nilai kunci<\/li>\n\n\n\n<li>Dasar untuk algoritma lanjutan seperti balancing dan indexing<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Pemahaman yang mendalam tentang traversal memudahkan programmer merancang solusi optimal untuk aplikasi <strong>database<\/strong>, <strong>search engine<\/strong>, dan sistem rekomendasi.<\/p>\n\n\n\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_88 counter-hierarchy ez-toc-counter ez-toc-light-blue ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Table of Contents<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/focusnic.com\/blog\/traversal-binary-search-tree\/#Macam-Macam_Traversal_dalam_BST\" >Macam-Macam Traversal dalam BST<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/focusnic.com\/blog\/traversal-binary-search-tree\/#1_Traversal_Inorder\" >1. Traversal Inorder<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/focusnic.com\/blog\/traversal-binary-search-tree\/#2_Traversal_Preorder\" >2. Traversal Preorder<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/focusnic.com\/blog\/traversal-binary-search-tree\/#3_Traversal_Postorder\" >3. Traversal Postorder<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/focusnic.com\/blog\/traversal-binary-search-tree\/#4_Traversal_Level_Order\" >4. Traversal Level Order<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/focusnic.com\/blog\/traversal-binary-search-tree\/#Kesimpulan\" >Kesimpulan<\/a><\/li><\/ul><\/nav><\/div>\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Macam-Macam_Traversal_dalam_BST\"><\/span>Macam-Macam Traversal dalam BST<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"1_Traversal_Inorder\"><\/span>1. Traversal Inorder<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Inorder traversal<\/strong> menelusuri simpul dalam urutan: anak kiri, simpul, anak kanan. Karakteristik utamanya menghasilkan urutan data menaik pada BST. Langkah dasar:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Kunjungi subtree kiri secara rekursif<\/li>\n\n\n\n<li>Tampilkan atau proses simpul saat ini<\/li>\n\n\n\n<li>Kunjungi subtree kanan secara rekursif<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">Dengan Inorder, kita dapat menghasilkan daftar terurut tanpa memerlukan proses sorting tambahan, efektif untuk fungsi seperti cetak terurut dan validasi struktur BST.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"2_Traversal_Preorder\"><\/span>2. Traversal Preorder<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Preorder traversal<\/strong> mengikuti urutan: simpul, anak kiri, anak kanan. Biasanya dipakai untuk:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Menduplikasi (clone) struktur pohon<\/li>\n\n\n\n<li>Mengekspor data dalam format prefix<\/li>\n\n\n\n<li>Membangun ulang pohon dari urutan prefix<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Langkah dasar Preorder:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Proses simpul saat ini<\/li>\n\n\n\n<li>Kunjungi subtree kiri<\/li>\n\n\n\n<li>Kunjungi subtree kanan<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"3_Traversal_Postorder\"><\/span>3. Traversal Postorder<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Postorder traversal<\/strong> menelusuri dalam pola: anak kiri, anak kanan, simpul. Kegunaan umum:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Pembersihan memori (free node) atau penghapusan subtree<\/li>\n\n\n\n<li>Evaluasi ekspresi matematika (pohon ekspresi)<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Langkah dasar Postorder:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Kunjungi subtree kiri<\/li>\n\n\n\n<li>Kunjungi subtree kanan<\/li>\n\n\n\n<li>Proses simpul saat ini<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"4_Traversal_Level_Order\"><\/span>4. Traversal Level Order<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Level Order traversal<\/strong> atau breadth-first traversal menelusuri pohon per level dari akar ke daun. Biasanya menggunakan <strong>queue<\/strong> untuk memproses simpul secara berurutan. Aplikasi umum mencakup:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Menentukan kedalaman pohon<\/li>\n\n\n\n<li>Pencarian jalur terpendek pada pohon berarah<\/li>\n\n\n\n<li>Visualisasi struktur pohon per level<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Langkah dasar:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Masukkan simpul akar ke dalam queue<\/li>\n\n\n\n<li>Selama queue tidak kosong, keluarkan simpul terdepan dan proses<\/li>\n\n\n\n<li>Tambahkan anak kiri dan anak kanan ke queue<\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Kesimpulan\"><\/span>Kesimpulan<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Beberapa strategi optimasi serta penerapan traversal pada skenario nyata:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Tail Recursion<\/strong> untuk Inorder, Preorder, dan Postorder dapat diubah menjadi iteratif menggunakan stack manual untuk menghindari overflow.<\/li>\n\n\n\n<li>Gabungkan traversal dengan operasi lain, misalnya menghitung tinggi pohon atau mencari nilai maksimum\/minimum dalam satu kali jelajah.<\/li>\n\n\n\n<li>Morris Traversal untuk Inorder tanpa stack dan tanpa rekursi, memanfaatkan pointer sementara untuk efisiensi ruang O(1).<\/li>\n\n\n\n<li>Gunakan Level Order untuk algoritma crawling pada pohon, seperti serialisasi dan deserialisasi data untuk penyimpanan atau transfer jaringan.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Secara umum, kompleksitas waktu ketiga traversal dasar adalah O(n), di mana n adalah jumlah node. Kompleksitas ruang bervariasi:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Rekursif: O(h) untuk stack panggilan, dengan h tinggi pohon.<\/li>\n\n\n\n<li>Iteratif (Inorder, Pre\/Postorder): O(h) untuk stack manual.<\/li>\n\n\n\n<li>Level Order: O(w) untuk queue, dengan w lebar maksimum pohon.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Memahami kelebihan dan keterbatasan setiap metode traversal membantu pemilihan solusi yang tepat sesuai kebutuhan aplikasi, baik minimalisasi memori maupun kecepatan akses.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Traversal adalah teknik dasar untuk menjelajahi semua node dalam sebuah struktur data pohon. Pada Binary Search Tree (BST), traversal memainkan peran penting dalam berbagai operasi, mulai dari pencarian hingga pengurutan data. Dengan traversal yang tepat, kita dapat menghasilkan urutan node sesuai kebutuhan, seperti urutan menaik (ascending) atau menuruni (descending), serta memproses simpul sebelum atau sesudah [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":4314,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[7],"tags":[],"class_list":["post-4254","post","type-post","status-publish","format-standard","has-post-thumbnail","category-informasi"],"_links":{"self":[{"href":"https:\/\/focusnic.com\/blog\/wp-json\/wp\/v2\/posts\/4254","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/focusnic.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/focusnic.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/focusnic.com\/blog\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/focusnic.com\/blog\/wp-json\/wp\/v2\/comments?post=4254"}],"version-history":[{"count":4,"href":"https:\/\/focusnic.com\/blog\/wp-json\/wp\/v2\/posts\/4254\/revisions"}],"predecessor-version":[{"id":4483,"href":"https:\/\/focusnic.com\/blog\/wp-json\/wp\/v2\/posts\/4254\/revisions\/4483"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/focusnic.com\/blog\/wp-json\/wp\/v2\/media\/4314"}],"wp:attachment":[{"href":"https:\/\/focusnic.com\/blog\/wp-json\/wp\/v2\/media?parent=4254"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/focusnic.com\/blog\/wp-json\/wp\/v2\/categories?post=4254"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/focusnic.com\/blog\/wp-json\/wp\/v2\/tags?post=4254"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}