Selasa, 27 Maret 2018

5 – Tree and Binary Tree – 2101651786 – Rio Rafelino

Binary Tree (BT) telah dijelaskan pada pertemuan keempat dan pada hari ini kami belajar mengenai Binary Search Tree(BST). Perbedaan yang mendasar dari BT dan BST adalah kumpulan data pada BST sudah sorted alias sudah urut. 

Metode pengurutan data pada BST:
1. Data angka pertama yang masuk akan jadi root.
2. Data kedua, ketiga, keempat, dst yang masuk akan jadi right chilld atau left child dengan rule dimana jika angka yang masuk lebih besar maka akan menyabang ke kanan, dan jika angka yang masuk lebih kecil maka akan menyabang ke kiri.

Tujuan dari Binary Search Tree ini adalah agar pencarian data makin mudah. Jadi prinsipnya, jika data yang dicari lebih besar maka tinggal turun ke cabang kanan dan jika data yang dicari lebih kecil maka turun ke cabang kiri.

Operasi" pada Binary Search Tree:
1. Find
2. Insert
urut-urutan insert data adalah sebagai berikut: (lebih besar ke kanan, lebih kecil ke kiri)




3. Delete
Kalo pada sistem delete, jika node yang perlu dihapus memiliki descendant maka node tsb akan di replace dengan node dari descendant yang memenuhi syarat. dalam hal ini 35 memenuhi syarat untuk menggantikan 37 karena dia lebih besar dari 30 sehingga pas ditempatkan sebelah kanan 30, dan dia lebih besar dari 32 serta lebih kecil dari 45



Selasa, 20 Maret 2018

4- Introduction to Tree, Binary Tree, and Expression Tree - 2101651786 - RIo Rafelino

Sebelum belajar lebih lanjut mengenai tree, mari belajar istilah istilah penting dalam konsep tree,
1. Node = bulatan / titik/ tempat" yang berisi data, node paling atas disebut dengan root
2. Edge = garis yang mengubungkan parent dengan child
3. Leaf = node yang tidak mempunyai children
4. Sibling = 2 node yang memiliki parent yang sama
5. Degree = level (A di degree 1, B dan C di degree 2)
6. Depth/Height = kedalam dari tree, degree tertinggi, dalam gambar, depth=3
7. Ancestor dan Descendant = jika ada 2 atau lebih node yang saling berhubungan melalui edge, maka semua node yang diatas merupakan ancestor dari node dibawahnya, begitu berlaku sebaliknya.

Konsep Binary Tree = Pohon yang dimulai dari akar tunggal dimana setiap node paling bnyak memiliki 2 children, yang dibagi jadi left child dan right child

Tipe" Binary Tree:
1. Perfect Binary Tree
ada binary tree sempurna, kalau manusia baru tidak ada yang sempurna WKWK. Binary Tree mencapai kesempurnaanya jika tiap node memiliki 2 children, gak ada yang satu anak cukup atau tidak mau punnya anak sama sekali (selalu pakai pengaman) *canda pak, biar apalinnya asik
2. Complete Binary Tree
Complete binary tree adalah binary tree yang tiap tingkat terisi penuh kecuali yang terakhir, jadi binary tree lengkap karena dia pnya segalanya, leaf pun harus ada.
3. Skewed Binary Tree
binary tree yang tiap nodenya punya satu children.


4. Balanced binary Tree
bisa apa aja asal perbedaan kedalaman antara 2 subtree pada suatu node tidak lebih dari 1

Selasa, 13 Maret 2018

3 - Implementation of Linked List II - Rio Rafelino - 2101651786

STACK
Konsep stack ini sendiri dapat dipahami jika kita menganalogikan tumpukan data seperti koin yang dimasukan ke coin holder, jadi data yang masuk terakhir akan diambil pertama, LIFO (last in first out). Jadi data ditumpuk dan diambil dari data pada posisi top (paling atas).

Jadi konsep stack ini merupakan struktur data linear seperti array dan linked list.

Dalam stack ada 3 operasi penting yaitu:
1. Push : menambahkan data ke top
2. Pop : menghapus data dari top
3. Top : menngembalikan data ke data top

ada beberapa cara penulisan aritmatika dalam dunia coding:
1. Prefix evaluation (reverse polish notation)
penulisan operator sebelum operand
2. Postfix evaluation(polish notation)
penulisan operator setelah operand
3. Infix evaluation
penulisan operator diantara operand

QUQUE
ini juga merupakan linked list yang berupa deretan linear data. dimana dalam quque ini kita akan mengambil data dari TOP dan memasukkan data dari BOTTOM, persis dah seperti ANTRIAN BCA, jadi prinsipnya FIFO (First In First Out).

BINARY TREE
Susunan data yang disusun seperti pohon, bermula dari akar, kemudian nyabang" dan seterusnya. Bentuknya seperti ini:

Ada 2 metode pencarian data dalam binary tree seperti yang dulu udah pernah dipelajari di Discrete Math semester 1

misalnya soalnya seperti binary tree dibawah:

Yang pertama, DFS (Depth First Search), prinsip dari metode ini adalah backward after nabrak :D
jadi dalam metode ini, komputer akan mencari melalui cabang kiri dulu, lalu turun ke cabang selnajutnya, jika udah gak ada cabang kiri lagi, maka naik, kemudian ke cabang kanan.
jadi algoritmanya pencariannya: A-B-D-B-A-C-E-C-F

kemudian yang kedua, BFS (Breath First Search), prinsip dari metode ini adalah mencari pada level 1 (A) kemudian ke level 2 (B,C) kemudian ke level 3 (D,E,F) dst.