Pengertian dan Contoh Pseudocode Algoritma Tree dalam Struktur Data -PART1

ISALLAB.COM – Halo teman-teman, di postingan kali ini saya akan membahas seputar tentang Tutorial dan Contoh Pseudocode Algoritma Tree dalam Struktur Data -PART 1. Nah sebelum kita bahas algoritma pseudocodenya kita harus mengetahui apakah itu Pseudocode, kamu bisa baca artikel tentang pseudocode di sini :
BACA JUGA : Pengertian Pseudocode Bagi Pemula Yang Ingin Belajar Algoritma
Silahkan baca sampai bawah artikel ini agar kamu lebih paham 🙂
Beberapa hal yang akan saya bahas dalam tutorial Pengertian dan Pseudocode Algoritma Tree dalam Struktur Data yaitu :
(klik link dibawah ini agar langsung ke artikel yang kamu inginkan)
Operasi-Operasi pada Queue :
- Pengertian Tree
- ADT atau Abstrac Data Type
- ADT ATAU ABSTRACT DATA TYPE
- CreateNode()
- FindNode()
- InsertNode
- Traversal – InOrder
- Traversal – PreOrder
- Traversal – PostOrder
- Count Depth of Node
- Count Level of Node
- Count Height of Tree
- Count Leaves of Tree
- Print Leaves of Tree
- Print Descendant of Node (InOrder)
- Print Descendant of Node (PreOrder)
- Print Descendant of Node (PostOrder)
- Print Level Order
- Print Current Order
- Count Internal Node of Tree
- Delete Node of Tree
- delTheMostRight
- delTheMostLeft
1. PENGERTIAN TREE
Tree merupakan salah satu bentuk struktur data tidak linear yang menggambarkan hubungan yang bersifat hirarkis (hubungan one to many) antara elemen-elemen. Tree bisa didefinisikan sebagai kumpulan simpul/node dengan satu elemen khusus yang disebut Root. Dan node lainnya terbagi menjadi himpunan-himpunan yang saling tak berhubungan satu sama lainnya (disebut subtree).
Untuk jelasnya, di bawah akan diuraikan istilah-istilah umum dalam tree :
- Prodecessor : node yang berada diatas node tertentu.
- Successor : node yang berada di bawah node tertentu.
- Ancestor : seluruh node yang terletak sebelum node tertentu dan terletak pada jalur yang sama.
- Descendant : seluruh node yang terletak sesudah node tertentu dan terletak pada jalur yang sama.
- Parent : predecssor satu level di atas suatu node.
- Child : successor satu level di bawah suatu node.
- Sibling : node-node yang memiliki parent yang sama dengan suatu node.
- Subtree : bagian dari tree yang berupa suatu node beserta descendantnya dan memiliki semua karakteristik dari tree tersebut.
- Size : banyaknya node dalam suatu tree.
- Height : banyaknya tingkatan/level dalam suatu tree.
- Root : satu-satunya node khusus dalam tree yang tak punya predecssor.
- Leaf : node-node dalam tree yang tak memiliki seccessor.
- Degree : banyaknya child yang dimiliki suatu node.
2. CODING PSEUDOCODE TREE
Tree merupakan kumpulan node yang saling terhubung satu sama lain dalam suatu kesatuan yang membentuk layakya struktur sebuah pohon. Tree (Pohon) adalah suatu hal yang penting dalam dunia komputer dan teknologi, namun kali ini saya akan membagika Algoritma Pseudocodenya Tree dengan menggunakan metode recursive yang saya pelajari kepada anda semua :
3. ADT ATAU ABSTRACT DATA TYPE
Kamus
type infotype : integer
type address : pointer to node
type node < info :infotype
left , right : address >
root : address
Abstract Data Type (ADT) dapat didefinisikan sebagai model matematika dari objek data yang menyempurnakan tipe data dengan cara mengaitkannya dengan fungsi-fungsi yang beroprasi pada data yang bersangkutan. Merupakan hal yang sangat penting untuk mengenali bahwa operasi-operasi yang akan dimanipulasi data pada objek yang bersangkutan termuat dalam spesifikasi ADT.
BACA JUGA : Tutorial Pseudocode Algoritma Queue dalam Struktur Data Alternative 2
4. CreateNode()
Mengembalikan alamat node yang telah di alokasikan.
Function createNode( X : infotype )→ address
/** mengembalikan alamat node yang telah di alokasikan */
Kamus
p : address
Algoritma
p ← new Node
info(p) ← X
left(p) ← NIL
right(p) ← NIL
5. FindNode()
Mengembalikan alamat node, apabila X ditemukan didalam TREE, dan NIL jika sebaliknya.
Function findNode( root : address , X : infotype )→ address
/** Mengembalikan alamat node, apabila X ditemukan didalam TREE, dan NIL jika sebaliknya
Kamus
Algoritma
if ( root = NIL or info(root) = X )then
→ root
else
if (X < info(root) ) then
→ findNode(left(root), X)
else if(X > info(root) ) then
→ findNode(right(root), X)
{end if}
{end if}
6. InsertNode
Initial State = Terdefinisi suatu root dari TREE (mungkin kosong), dan P yang berisi alamat suatu Node .
Final State = Node di-insert-kan kedalam Binary Search Tree, left < root < right, Duplikat node tidak di inserkan kedalam BST.
Procedure insertNode(input/output root : address , P : address )
/** IS. terdefinisi suatu root dari TREE (mungkin kosong), dan P yang berisi alamat suatu Node
* FS. Node di-insert-kan kedalam Binary Search Tree, left < root < right, Duplikat node tidak di inserkan kedalam BST
Kamus
Algoritma
if (root = NIL) then
root ← P
else
if ( info(P) < info(root) ) then
insertNode(left(root), P)
else if( info(P) > info(root) ) then
insertNode(right(root), P)
{end if}
{end if}
BACA JUGA : Tutorial Pseudocode Algoritma Queue dalam Struktur Data Alternative 2
7. Traversal – InOrder
Initial State = Terdefinisi suatu root dari TREE (mungkin kosong)
Final State = Tree ditampilkan secara inorder (left >> root >> right)
Procedure inOrder( root : address )
/** IS. terdefinisi suatu root dari TREE (mungkin kosong)
* FS. Tree ditampilkan secara inorder (left >> root >> right)
Kamus
Algoritma
if ( root <> NIL ) then
inOrder( left(root) )
output (' info(root)' )
inOrder( right(root) )
{end if}
8. Traversal – PreOrder
Initial State = Terdefinisi suatu root dari TREE (mungkin kosong)
Final State = Tree ditampilkan secara inorder (root >> left >> right)
Procedure preOrder( root : address )
/** IS. terdefinisi suatu root dari TREE (mungkin kosong)
* FS. Tree ditampilkan secara preorder (root >> left >> right)
Kamus
Algoritma
if ( root <> NIL ) then
output (' info(root) ')
preOrder( left(root) )
preOrder( right(root )
{end if}
9. Traversal – PostOrder
Initial State = Terdefinisi suatu root dari TREE (mungkin kosong)
Final State = Tree ditampilkan secara inorder (left >> right >> root)
Procedure postOrder( root : address )
/** IS. terdefinisi suatu root dari TREE (mungkin kosong)
* FS. Tree ditampilkan secara preorder (left >> right >> root)
Kamus
Algoritma
if ( root <> NIL ) then
postOrder( left(root) )
postOrder( right(root) )
output(' info(root) ')
{end if}
10. Count Depth of Node
Mengembalikan kedalaman node didalam tree.
Function countDepthNode(root : address, node : address) → integer
/** mengembalikan kedalaman node didalam tree */
Kamus
Algoritma
if (root = NIL or node = NIL) then
→ 0
else if ( left(root) = node or right(root) = node ) then
→ 1
else
if (info(node)< info(root)) then
→ 1 + countDepthNode(left(root),node)
else if (info(node)> info(root)) then
→ 1 + countDepthNode(right(root),node)
{end if}
{end if}
BACA JUGA : Tutorial Pseudocode Algoritma Stack dalam Struktur Data
11. Count Level of Node
Mengembalikan level node didalam tree
Function countLevelNode(root : address, node : address) → integer
/** mengembalikan level node didalam tree */
Kamus
Algoritma
if ( root = NIL or node = NIL ) then
→ 0
else if ( root = node ) then
→ 1
else
if ( info(node) < info(root) ) then
→ 1 + countLevelNode( left(root),node )
else if ( info(node)> info(root) ) then
→ 1 + countLevelNode( right(root),node )
{end if}
{end if}
12. Count Height of Tree
Mengembalikan height dari suatu TREE
Function countHeight( root : address ) → integer
/** mengembalikan height dari suatu TREE */
Kamus
kiri,kanan : integer
Algoritma
if (root = NIL) then
→ 0
else if (left(root)=NIL and right(root)=NIL) then
→ 0
else
kiri ← countHeight( left(root) )
kanan ← countHeight( right(root) )
if (kiri > right ) then
→ 1 + kiri
else
→ 1 + kanan
{end if}
{end if}
13. Count Leaves of Tree
Mengembalikan jumlah leaf (daun) dari suatu TREE
Function countLeaves( root : address ) -> integer
/** mengembalikan jumlah leaf (daun) dari suatu TREE */
Kamus
Algoritma
if (root = NIL) then
-> 0
else if ( left(root) = NIL and right(root) = NIL ) then
-> 1
else
-> countLeaves( right(root) ) + countLeaves( left(root) )
{end if}
Sampai disini tutorial Tutorial Pengertian dan Pseudocode Algoritma Tree dalam Struktur Data , ikuti terus website ini untuk mendapatkan tutorial dan artikel menarik lainya. Semoga bermanfaat, jangan lupa berkomentar dan bagikan artikel ini jika menurut kamu berguna. 🙂
2 thoughts on “Pengertian dan Contoh Pseudocode Algoritma Tree dalam Struktur Data -PART1”