Senin, 09 November 2015

membicarakan senja

Jangankan sekedar menatap senja, bergurau membicarakan masa senja kita berdua.


Untuk membayangkan hari ini, esok dan seterusnya kamu tetap disinipun aku tak punya keberanian.


Apa lah aku yang hanya bisa berangan - angan tanpa ada maksud mengharapkan.


Jika suatu saat nanti kamu memutuskan untuk pergi, tidak jadi masalah. Karena bagiku kamu sudah pernah ada saja suda cukup.


Terimakasih untuk hari - hari yang tidak pernah tergantikan.


Terimakasih untuk waktu yang kita habiskan berdua.


Terimakasih untuk keikhlasan, kesabaran, dan segala wejangan positive yang diberikan.


Terimakasih...

Minggu, 11 Januari 2015

aku dan rindu

Bahkan sampai usia ini aku masih tetap menangis ketika merindukan keluarga kami,,

merindukan bapak yang selalu mencintai kami dalam diam,,

merindukan ibu si pekerja keras yg dalam doanya selalu terselip nama kami,,

Merindukan teman sedarah daging, yg masa kecilnya kami habiskan dengan bertengkar, namun sekarang kami saling merindukan,,

Kami tidak pernah berharap bisa memutar waktu,,
hanya berangan angan,,

semoga suatu saat nanti kami bisa utuh kembali,,
Meski hanya ada dalam bingkai foto yang akan kami kenang sebagai kenangan dimasa depan,,
👨👩👧👦👧👦❤ -hilganza

Jumat, 09 Januari 2015

senja di teras rumah

Kelak akan ku ceritakan pada anak-anakmu
Anak-anak kita...
Tentang aku yang menerima segala cacat yang kau ciptakan ditubuhmu.
Tentang aku yang meyakinkan ibu bahwa kau satu-satunya laki-laki yang aku inginkan.

Kelak akan ku kisahkan kita yang bahagia di masa muda
Tentang tangis dan tawa yang berjalan beriringan dengan usia kita yang kian menua
Tentang kita yang pernah kehilangan tanpa benar-benar sempat memilikinya...

Kelak kan ku katakan pada mereka... anak-anak kita...
nak... ayahmu, dahulu seorang yang pandai meluluhkan hati banyak wanita, membuat mereka nyaman dan merasa dicintai...
Tapi ayahmu tidak pernah benar-benar melepaskan ibu...

Dan mereka terlelap dipangkuanku...
Kita menghabiskan senja di kursi panjang, dengan gemericik air kolam yang di mainkan ekor-ekor ikan peliharaan abang...

Kamis, 31 Juli 2014

hoy sikunir

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,,

Sabtu, 26 Juli 2014

H-1 lebaran, iseng-iseng posting di blog yang terlanjur dibuat,,
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 :

  1. Setiap node / impul maksimal mempunyai dua sub-node
  2. 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;

}
}
}