Yap malam satu agustus..
Sekali lagi menikmati indonesia..
Demi apapun, dinginnya menusuk,, tapi bintangnya! Ngga kecewa!
Beribu bintang, dan bulan sabit,,
Kita masih di lereng bukit,, tapi sejuknya berasa diatas bukit,,
Jadi, kita ngecamp di depan danau, api unggunnya lumayan bisa bikin hangat, kopi? Ngga ketinggalan,,
Ngga sendiri pastinya,, ada anak anak jaman SMA yang biasa ngocol bareng, ceritanya lagi nostalgia,,
Foto? Pasti ada, besok subuh liputan langsung dari bukit desa tertinggi di pulau jawa,,
Kamis, 31 Juli 2014
Sabtu, 26 Juli 2014
H-1 lebaran, iseng-iseng posting di blog yang terlanjur dibuat,,
melaporkan langsung dari karangkobar, Banjarnegara,, yeay,, :D
Bisa bayangin acara tanggal 31 agustus nanti? like this,,
melaporkan langsung dari karangkobar, Banjarnegara,, yeay,, :D
don't missing dieng culture festival at 31 Agust 2014,,
Acara budaya tahunan masyarakat dataran tinggi diengyang akan dilaksanakan pada 30 dan 31 agustus 2014,,
Bisa bayangin acara tanggal 31 agustus nanti? like this,,
Sebelum dieng culture festival juga ada acara tanggal 9 Agustus 2014 yang acaranya dijamin ngga kalah seruuuu,,
So, lets join with us guys,, :)
Kamis, 12 Desember 2013
Halaman Tugas Mega Segmen Tiga
Algoritma Transversal (Pre-Order, In-Order, Post-Order)
Preorder Traversal :
Untuk melintasi sebuah pohon biner di Pre-order , setelah operasi dilakukan -out ( i ) Kunjungi akar , ( ii ) Traversal bagian kiri pohon, dan ( iii ) Traversal bagian kanan pohon.
Oleh karena itu, traversal Pre-Order dari pohon di atas akan output :
7 , 1 , 0 , 3 , 2 , 5 , 4 , 6 , 9 , 8 , 10
Inorder traversal : Untuk melintasi sebuah pohon biner di In-order , setelah operasi dilakukan -out ( i ) Traversal bagian pohon paling kiri dimulai dari node eksternal kiri , ( ii ) Kunjungi akar , dan ( iii ) Traversal bagian kanan pohon mulai dari meninggalkan simpul eksternal .
Oleh karena itu, inorder traversal dari pohon di atas akan output :
0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10
Postorder traversal : Untuk melintasi sebuah pohon biner di post-order , setelah operasi dilakukan -out ( i ) Traverse semua node eksternal kiri dimulai dengan yang bagian pohon paling kiri yang kemudian diikuti dengan gelembung - up semua node internal , ( ii ) Traversal yang subtree kanan dimulai dari node eksternal kiri yang kemudian diikuti dengan gelembung - up semua node internal , dan ( iii ) Kunjungi akar .
Oleh karena itu, post-order traversal dari pohon di atas akan output :
0 , 2 , 4 , 6 , 5 , 3 , 1 , 8 , 10 , 9 , 7
Halaman Tugas Mega Segmen Dua
Implementasi Pohon Biner Dalam C++
Salah satu jenis struktur data yang cukup populer adalah Binary Tree atau Pohon Biner. Menurut saya Binary Tree mempunyai kemampuan / efisiensi yang sama baik dengan binary search dalam hal searching. Tapi lebih baik dalam hal insert, delete dan traversal daripada binary search. Karena alokasi memory dari Binary Tree dinamis sedangkan alokasi binary search statis karena menggunakan array. Agar suatu struktur data tree dapat disebut dengan Binary Tree harus dipenuhi syarat sebagai berikut :
- Setiap node / impul maksimal mempunyai dua sub-node
- Nilai pada node sebelah kiri lebih kecil dari pada node disebelah kanan
Berikut ini code untuk Binary Tree dalam bahasa C++ dengan tool yang digunakan CodeBlock 8.02
#include <iostream>
#include <cstdlib>
using namespace std;
class BinarySearchTree
{
private:
struct nodeTree
{
nodeTree* left;
nodeTree* right;
int data;
};
nodeTree* root;
public:
BinarySearchTree()
{
root = NULL;
}
bool isEmpty() const { return root==NULL; }
void print_inorder();
void inorder(nodeTree*);
void print_preorder();
void preorder(nodeTree*);
void print_postorder();
void postorder(nodeTree*);
void insert(int);
void remove(int);
};
void BinarySearchTree::insert(int d)
{
nodeTree* t = new nodeTree;
nodeTree* parent;
t->data = d;
t->left = NULL;
t->right = NULL;
parent = NULL;
if(isEmpty()) root = t;
else
{
nodeTree* current;
current = root;
while(current)
{
parent = current;
if(t->data > current->data) current = current->right;
else current = current->left;
}
if(t->data < parent->data)
parent->left = t;
else
parent->right = t;
}
}
void BinarySearchTree::remove(int d)
{
//Locate the element
bool found = false;
if(isEmpty())
{
cout<<" This Tree is empty! "<<endl;
return;
}
nodeTree* current;
nodeTree* parent;
current = root;
while(current != NULL)
{
if(current->data == d)
{
found = true;
break;
}
else
{
parent = current;
if(d>current->data) current = current->right;
else current = current->left;
}
}
if(!found)
{
cout<<" Data not found! "<<endl;
return;
}
// Node dengan single child
if((current->left == NULL && current->right != NULL)|| (current->left != NULL
&& current->right == NULL))
{
if(current->left == NULL && current->right != NULL)
{
if(parent->left == current)
{
parent->left = current->right;
delete current;
}
else
{
parent->right = current->right;
delete current;
}
}
else
{
if(parent->left == current)
{
parent->left = current->left;
delete current;
}
else
{
parent->right = current->left;
delete current;
}
}
return;
}
// node tidak mempunyai child node
if( current->left == NULL && current->right == NULL)
{
if(parent->left == current ) parent->left = NULL;
else parent->right = NULL;
delete current;
return;
}
//Node dengan 2 child node
// ganti node dengan nilai terkecil di subtree bagain kanan
if (current->left != NULL && current->right != NULL)
{
nodeTree* temp;
temp = current->right;
if((temp->left == NULL) && (temp->right == NULL))
{
current = temp;
delete temp;
current->right = NULL;
}
else
{
if((current->right)->left != NULL)
{
nodeTree* lcurrent;
nodeTree* lcurrp;
lcurrp = current->right;
lcurrent = (current->right)->left;
while(lcurrent->left != NULL)
{
lcurrp = lcurrent;
lcurrent = lcurrent->left;
}
current->data = lcurrent->data;
delete lcurrent;
lcurrp->left = NULL;
}
else
{
nodeTree* tmp2;
tmp2 = current->right;
current->data = tmp2->data;
current->right = tmp2->right;
delete tmp2;
}
}
return;
}
}
void BinarySearchTree::print_inorder()
{
inorder(root);
}
void BinarySearchTree::inorder(nodeTree* p)
{
if(p != NULL)
{
if(p->left) inorder(p->left);
cout<<" "<<p->data<<" ";
if(p->right) inorder(p->right);
}
else return;
}
void BinarySearchTree::print_preorder()
{
preorder(root);
}
void BinarySearchTree::preorder(nodeTree* p)
{
if(p != NULL)
{
cout<<" "<<p->data<<" ";
if(p->left) preorder(p->left);
if(p->right) preorder(p->right);
}
else return;
}
void BinarySearchTree::print_postorder()
{
postorder(root);
}
void BinarySearchTree::postorder(nodeTree* p)
{
if(p != NULL)
{
if(p->left) postorder(p->left);
if(p->right) postorder(p->right);
cout<<" "<<p->data<<" ";
}
else return;
}
int main()
{
BinarySearchTree b;
int ch,tmp,tmp1;
while(1)
{
cout<<endl<<endl;
cout<<" Binary Search Tree Operations "<<endl;
cout<<" ----------------------------- "<<endl;
cout<<" 1. Insertion/Creation "<<endl;
cout<<" 2. In-Order Traversal "<<endl;
cout<<" 3. Pre-Order Traversal "<<endl;
cout<<" 4. Post-Order Traversal "<<endl;
cout<<" 5. Removal "<<endl;
cout<<" 6. Exit "<<endl;
cout<<" Enter your choice : ";
cin>>ch;
switch(ch)
{
case 1 : cout<<" Enter Number to be inserted : ";
cin>>tmp;
b.insert(tmp);
break;
case 2 : cout<<endl;
cout<<" In-Order Traversal "<<endl;
cout<<" -------------------"<<endl;
b.print_inorder();
break;
case 3 : cout<<endl;
cout<<" Pre-Order Traversal "<<endl;
cout<<" -------------------"<<endl;
b.print_preorder();
break;
case 4 : cout<<endl;
cout<<" Post-Order Traversal "<<endl;
cout<<" --------------------"<<endl;
b.print_postorder();
break;
case 5 : cout<<" Enter data to be deleted : ";
cin>>tmp1;
b.remove(tmp1);
break;
case 6 :
return 0;
}
}
}
Halaman Tugas Mega Segmen Satu
Definisi Struktur Data (Tree)
Kumpulan node yang saling terhubung satu sama lain dalam suatu kesatuan yang membentuk layaknya struktur sebuah pohon.
Struktur pohon adalah suatu cara mempresentasikan suatu struktur hirarki (one-to-many) secara grafis yang mirip sebuah pohon, meskipun pohon tersebut hanya tampak sebagai kumpulan node-node dari atas ke bawah.
Suatu struktur data yang tidak linier yang menggambarkan hubungan yang hirarkis (one-to-many) dan tidak linier antara elemen-elemennya.
- Contoh penggunaan struktur pohon :
- Silsilah keluarga
- Parse Tree (pada compiler)
- Struktur File
- Pertandingan
Struktur Pohon
- Operasi-operasi Pada Tree
Insert: menambah node ke dalam Tree secara rekursif. Jika data yang akan dimasukkan lebih besar daripada elemen root, maka akan diletakkan di node sebelah kanan, sebaliknya jika lebih kecil maka akan diletakkan di node sebelah kiri. Untuk data pertama akan menjadi elemen root.
Find: mencari node di dalam Tree secara rekursif sampai node tersebut ditemukan dengan menggunakan variable bantuan ketemu. Syaratnya adalah tree tidak boleh kosong.
Traverse: yaitu operasi kunjungan terhadap node-node dalam pohon dimana masing-masing node akan dikunjungi sekali.
Count: menghitung jumlah node dalam Tree.
Height : mengetahui kedalaman sebuah Tree.Find Min dan Find Max : mencari nilai terkecil dan terbesar pada Tree.Child : mengetahui anak dari sebuah node (jika punya).Daun/leaf : Simpul yang derajat = 0 disebut daun / leafHubungan antar simpul : bapak, ,anak, paman, dllTingkat (level)Derajat (degree)Tinggi (height)/kedalaman (depth) : height = tingkat maksimum – 1Ancestor : semua simpul yang terdapat pada lintasan/jalur dari akar sampai simpul tersebutForest (Hutan) : kumpulan sejumlah pohon yang tidak saling berhubungan.
- Jenis Tree
Berdasarkan banyaknya anak :
binary tree / pedigree chart : Complete Binary Tree tingkat N,Skewed BinaryTreeNon Binary Tree (N-ary) & lineal chart
Dari pentingnya urutan Isi :
Ordered treenon ordered tree
- Jenis Traverse
PreOrder: cetak node yang dikunjungi, kunjungi left, kunjungi right InOrder: kunjungi left, cetak node yang dikunjungi, kunjungi right PostOrder: kunjungi left, kunjungi right, cetak node yang dikunjungi.
- Cara Penulisan Tree :
1. Diagram venn2. Notasi Kurung
- Representasi Lojik
Type Infotype : …………{terdefinisi}Type address : ………{terdefinisi, sesuai dengan representasi fisik}
Type Node : < Info : Infotype,
Left : address,
Right : address >
Type BinTree : address
Jika P adalah binary tree, maka
Left (P) : mendapatkan alamat cabang kiri dari P
right (P) : mendapatkan alamat cabang kanan dari P
info (P) : mendapatkan bagian info dari node yang ditunjuk P
PRIMITIF-PRIMITIF
- Make Tree
- Menyisipkan simpul baru pada binary search Tree
selamat membaca dan selamat jatuh cinta...
menulis bukan sekedar mengisi waktu luang, menulis bukan sekedar iseng iseng menyatukan 26 abjad menjadi satu kumpulan kata yang dirangkai jadi satu kalimat, menulis adalah ungkapan hati pikiran dan perasaan yang semua orang punya karakter dan ciri dari tulisan yang di tulis...
tulisan itu resolusi
menulis itu beresolusi
mari membaca resolusi mega... dari alay ke sedikit lebih tidak alay... (hahahaha)
anak bahasa yang terjebak didunia teknologi yang hanya akan mengenal dua bahasa...
tulisan itu resolusi
menulis itu beresolusi
mari membaca resolusi mega... dari alay ke sedikit lebih tidak alay... (hahahaha)
anak bahasa yang terjebak didunia teknologi yang hanya akan mengenal dua bahasa...
Langganan:
Postingan (Atom)