Contoh Program Struktur Data Binary Tree(Pohon)
Jumat, Desember 23, 2022Selamat datang di tutorial ini! Kita akan belajar bagaimana mengimplementasikan Binary Tree di Python. Binary Tree merupakan salah satu struktur data yang sangat penting dan sering digunakan dalam pemrograman. Struktur data ini memiliki banyak kelebihan dan aplikasi yang luas dalam berbagai bidang, seperti pengolahan data, pencarian data, dan lain-lain.
Pada tutorial ini, kita akan membahas cara membuat Binary Tree dari nol dan menjelajahi struktur data tersebut dengan menggunakan beberapa metode pemrograman Python yang sederhana. Kita juga akan membahas beberapa contoh aplikasi Binary Tree dalam pemrograman dan mengimplementasikannya menggunakan kode Python.
Jadi, mari kita mulai belajar tentang Binary Tree di Python!
Apa Itu Struktur Data Binary Tree(Pohon)
Binary tree adalah salah satu struktur data yang digunakan untuk menyimpan informasi dalam bentuk hierarki. Setiap elemen dalam struktur ini disebut dengan "node" atau "daun". Setiap node dapat memiliki maksimal dua anak, yang disebut dengan "left child" dan "right child". Node yang tidak memiliki anak disebut dengan "leaf node" atau "daun".
Sebagai contoh, binary tree dapat digunakan untuk menyimpan data dari sebuah organisasi, dimana setiap node menyimpan informasi tentang seorang karyawan, dan setiap anak dari node tersebut mewakili orang yang diberikan oleh karyawan tersebut.
Binary tree memiliki beberapa properti yang penting, yaitu:
- The root: Node yang terletak di paling atas dari tree.
- Depth: Jumlah node yang terletak antara node tertentu dan root.
- Height: Jumlah node yang terletak antara node tertentu dan leaf node terdekat.
- Parent: Node yang memiliki anak tertentu.
- Child: Node yang merupakan anak dari node lain.
Ada beberapa jenis binary tree, diantaranya adalah:
- Full binary tree: Binary tree yang setiap node-nya memiliki dua anak atau tidak memiliki anak sama sekali.
- Complete binary tree: Binary tree yang diisi dari kiri ke kanan, dan setiap level-nya terisi penuh kecuali mungkin level terakhir.
- Balanced binary tree: Binary tree yang memiliki ketinggian yang seimbang, yaitu ketinggian kiri dan kanan subtree-nya berbeda tidak lebih dari satu.
Binary tree biasanya digunakan dalam berbagai aplikasi, seperti pencarian data, evaluasi ekspresi matematika, dan pengurutan data.
Source Code Program Binary Tree Python
# Kelas Node untuk membuat node pohon
class Node:
def __init__(self, data):
self.left = None
self.right = None
self.data = data
# Fungsi untuk mencetak pohon secara in-order
def in_order_traversal(node):
if node is not None:
in_order_traversal(node.left)
print(node.data, end=' ')
in_order_traversal(node.right)
# Fungsi untuk mencetak pohon secara pre-order
def pre_order_traversal(node):
if node is not None:
print(node.data, end=' ')
pre_order_traversal(node.left)
pre_order_traversal(node.right)
# Fungsi untuk mencetak pohon secara post-order
def post_order_traversal(node):
if node is not None:
post_order_traversal(node.left)
post_order_traversal(node.right)
print(node.data, end=' ')
#input node
node1 = input('Node: ')
node2 = input('Node: ')
node3 = input('Node: ')
node4 = input('Node: ')
node5 = input('Node: ')
node6 = input('Node: ')
node7 = input('Node: ')
# Driver code
if __name__ == '__main__':
root = Node(node1)
root.left = Node(node2)
root.right = Node(node3)
root.left.left = Node(node4)
root.left.right = Node(node5)
root.right.left = Node(node6)
root.right.right = Node(node7)
print("In-order traversal: ", end='')
in_order_traversal(root)
print("\nPre-order traversal: ", end='')
pre_order_traversal(root)
print("\nPost-order traversal: ", end='')
post_order_traversal(root)
Penjelasan Source Code Binary Tree Python
Source code tersebut merupakan implementasi pohon binari dengan menggunakan bahasa pemrograman Python. Pohon binari merupakan struktur data yang terdiri dari node-node yang terhubung satu sama lain. Setiap node terdiri dari data dan dua anak node, yang disebut left dan right.
Pada source code di atas, terdapat kelas Node yang digunakan untuk membuat node pohon. Kelas ini memiliki method init yang digunakan untuk menginisialisasi node dengan menetapkan left dan right node menjadi None, serta menetapkan data yang akan disimpan pada node tersebut.
Selanjutnya, terdapat tiga buah fungsi yaitu in_order_traversal, pre_order_traversal, dan post_order_traversal. Fungsi-fungsi tersebut digunakan untuk mencetak pohon secara in-order, pre-order, dan post-order. In-order traversal mencetak pohon dengan mengunjungi left node terlebih dahulu, kemudian data node, dan baru ke right node. Pre-order traversal mencetak pohon dengan mengunjungi data node terlebih dahulu, kemudian left node, dan baru ke right node. Sedangkan post-order traversal mencetak pohon dengan mengunjungi left node terlebih dahulu, kemudian right node, dan baru ke data node.
Setelah itu, terdapat input node yang akan digunakan untuk membentuk pohon binari. Kemudian, terdapat kode yang digunakan untuk membuat root node dengan menggunakan input yang telah diinput sebelumnya. Kemudian, left dan right node dari root node juga dibuat dengan menggunakan input yang telah diinput sebelumnya. Setelah itu, left dan right node dari left node serta left dan right node dari right node juga dibuat dengan menggunakan input yang telah diinput sebelumnya.
Terakhir, terdapat kode yang mencetak pohon binari yang telah dibuat secara in-order, pre-order, dan post-order dengan menggunakan fungsi-fungsi yang telah didefinisikan sebelumnya.
Sekian yang dapat kami sampaikan pada tutorial kali ini semoga bermanfaat untuk Anda, akhir kata jangan lupa titik koma.
Coba cari lagi apa yang ada inginkan pada kolom berikut: