This is Enakei which i edit but who made it not me. You can enjoy how beautiful enakei.
Which do you prefer?
12/28/11
12/26/11
Go around the world Before 30 years old
This is my life
My dream is my destiny
Who body knows one person will to be
But your life is not depend on fate
Your life is your effort
When you have an ambition or dream, don't give up to reach it. Believe in your heart, it will be reached.
I know, i'm just ordinary girl, but i have full imagination, nobody knows we still live any longer in the world.
So, don't be usefull for your life. I have a lot of weakness and i have to try harder than any person because my weakness make me different from other person.
So Do you still let your life flow like water?
Contemplate what we want to do for our life
The tittle just a little from my billions dream , i have to imagine what i have to do while go abroad...
other motivation about it, any else?
Don't regret if you can't reach your dream
This life, Choosen or Choose?
My dream is my destiny
Who body knows one person will to be
But your life is not depend on fate
Your life is your effort
When you have an ambition or dream, don't give up to reach it. Believe in your heart, it will be reached.
I know, i'm just ordinary girl, but i have full imagination, nobody knows we still live any longer in the world.
So, don't be usefull for your life. I have a lot of weakness and i have to try harder than any person because my weakness make me different from other person.
So Do you still let your life flow like water?
Contemplate what we want to do for our life
The tittle just a little from my billions dream , i have to imagine what i have to do while go abroad...
other motivation about it, any else?
Don't regret if you can't reach your dream
This life, Choosen or Choose?
12/24/11
Sinopsisnya Aurora versi Korea (part 1)
Freeze Love
Alkisah cerita berawal dari tahun 1990, ada 3 remaja perempuan berusia 18 tahun yang masih bersekolah dan bersahabat. Mereka memiliki impian yang sama untuk menjadi seorang penari terkenal. Im yoonah yang merupakan main hero merupakan gadis yang cantik baik hati, pintar dan berprestasi, serta paling menonjol daripada kedua temannya, dia sangat senang berlatih menari walaupun kakinya sudah beberapa kali terkilir tapi dia tetap berusaha dan pantang menyerah. Kemudian ada Chae Jungahn yang mempunyai sifat yang keras dan selalu ingin yang paling unggul, dia adalah gadis yang gigih dan melakukan apapun demi impiannya, dia telah berpacaran dengan Han jungsoo yang merupakan pria yang 5 tahun lebih tua darinya yang telah menjadi bussiness man. Kemudian Choi Kanghee yang sangat terobsesi menjadi artis, sangat suka shopping dan gadis yang periang, namun dibalik sifatnya itu, dia iri terhadap yoona yang memiliki keluarga lengkap dan kaya raya serta selalu dituruti semua kemauannya, sedangkan Kanghee dibesarkan di keluarga yang broken, ibunya yang mengasuhnya sendiri sejak dia berusia 5 tahun dan hidup apa adanya.
Pada suatu hari ketiga mereka bertiga telah selesai tampil menari di sebuah drama musikal, ada seorang koreografer tari yang bernama Song ilgook. Ilgook langsung jatuh hati melihat tarian yang dibawakan yoona, setelah pertunjukan tersebut ilgook langsung mencari tahu tentang Yoona. Ilgook merupakan koreografer tari yang juga bekerja sebagai karyawan dan merupakan duda 1 anak yang baru berusia 25 tahun. Dia telah berpisah dari istrinya 2 tahun yang lalu karena istrinya mengejar pria kaya. Sedangkan Ilgook hanya karyawan biasa yang hidup apa adanya.
Merekapun berkenalan dan dalam tahap-tahap selanjutnya yoona juga telah jatuh hati pada ilgook, tidak peduliakan status, usia , atau pun kekayaan yang dimiliki ilgook. Yoona tidak menceritakan bahwa keluarga kaya raya, karena takut ilgook akan berpaling darinya. Mereka menjalani hubeungan tersebut dengan suka cita, namun diam-diam kanghee juga menaruh rasa terhadap lelaki yang telah menjadi koreografer tarinya tersebut. Kanghee pun menyusun sebuah rencana untuk memisahkan mereka berdua. Kanghee pun bekerja sama dengan Chulho yang juga teman dari ilgook yang telah jatuh hati dengan yoona juga.
Pada ulang tahun yoona yang ke-18 , yoona memutuskan untuk mengumumkan ilgook merupakan orang yang paling penting baginya. Namun Kanghee dan chulho telah berencana untuk menjebak yoona. Mereka membuat rencana yang menyebabkan salah paham antara ilgook dan yoona, ilgook mengira bawhwa selama ini yoona menyukai sahabatnya, chulho. Rencana tersebut berhasil dan Ilgookpun tidak iingin bertemu dengan yoona. Yoona berusaha menjelaskan semuanya tetapi percuma.
Namun tanpa disangka-sangka yoona telah hamil dan mengandung anak ilgook, namun ayahnya melarang yoona berhubungan dengan ilgook dengan alasan status sosial serta status dudanya. Yoonapun dikirim ke luar negri sampai melahirkan anaknya. Namun yoona berusaha kabur tetapi dia tetap tidak bisa kabur dan diapun melahirkan bayi perempuan. Kanghee yang dalam waktu itu mendekati ilgook namun tidak berhasi karena ilgook ternyata masih mencintai yoona namun tidak tahu keberadaan yoona. Kangheepun putus asa akan cintanya terhadap Ilgook dan memutuskan menikah dengan dokter kaya yang usianya 12 tahun lebih tua darinya dengan harapan kekayaan bisa merubah hidupnya walaupun dia tidak mencintai suaminya. Sedangkan Jungahn juga sedang hamil anak Jungsoo namun jungsoo menolak menikahinya dan tetap akan menemani jungahn dan mengakui anaknya.Produser mereka bertiga sangat marah dikarenakan ketidakberesan mereka bertiga yang sudah tidak melanjutkan karir mereka sebagai penari yang menyebabkan kerugian ada perusaahnnya karena kehilangan 3 talenta remaja tersebut.
Beberapa saat setelah Yoona melahirkan bayinya, iya terkena penyakit yang belum ada obatnya, Sang ayah, Im Sungmo mengusahakan segalanya demi kesembuhan anak tunggal. Namun ilmu kedokterannya belum bisa menghasilkan obat bagi yoona. Namun dia memikirkan keselamatan yoona dengan cara menaruh tubuh yoona pada kapsul kriptogenik yang dapat membekukan tubuh yoona sementara waktu dan menjaga organ tubuh yoona agar yoona tetap hidup.
18 tahun berlalu, apa yang terjadi?
Ingin tahu kelanjutannya?
Tetap ikuti blog saya...
Terimakasih telah membaca, silahkan postkan komentar bagi yang ingin mengkritik dan memberikan saran
Aurora (telenovela) Korean version of me Synopsis and Cast
This
story about complicated love story. This story based on Aurora
(telenovela) please check
http://en.wikipedia.org/wiki/Aurora_%28telenovela%29.
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Labels:
imagination,
kdrama,
korea,
novel,
story,
telenovela
12/16/11
Struktur data part 3
Berhubung saya suka sama cara dosen ngejelasinnya mata kuliah ini, maka saya mau bahas tentang tubes saya. Apa yang dijelasin di algoritma yang udah saya post sebelumnya.
Yang saya bahas cuma double linked list dan binnary tree aja, soalnya tubesnya cuman dua itu aja...
1. Algoritma tree c++
Tree merupakan salah satu bentuk struktur data tidak linear yang menggambarkan
hubungan yang bersifat hierarkis (hubungan one to many) antara elemen-elemen.
Tree biasa didefinisikan sebagai kumpulan simpul/node dengan elemen khusus yang disebut Root.
Node lainnya terbagi menjadi himpunan-himpunan yang saling tak berhubungan
satu sama lain (disebut Subtree). Untuk lebih jelasnya, di bawah akan diuraikan istilah-
istilah umum dalam tree.
Predecessor : Node yang berada di atas node tertentu
Successor : Node yang berada dibawah node tertentu
Ancestor : Seluruh node yang terletak sebelum node tertentu dan terletak pada jalur yang sama
Descendant : Seluruh node yang terletak sebelum node tertentu dan terletak pada jalur yang sama
Parent : Predecessor 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 punyak predecessor
Leaf : Node-node dalam tree yang tak memiliki successor
Degree : Banyaknya child yang dimiliki suatu node
Binary Tree
Binary Tree adalah tree dengan syarat bahwa tiap node hanya boleh memiliki maksimal
dua subtree dan kedua subtree tersebut harus terpisah. Sesuai dengan definisi tersebut
tiap node dalam binary tree hanya boleh memiliki paling banyak dua child.
Implementasi Binary Tree
Binary tree dapat diimplementasikan dalam C++ dengan menggunakan double
linkedlist.
dikutip dari : modul algoritma dan struktur data II stikom bali
2. Double linked list
implementasi binary tree
Elemen-elemen dihubungkan dengan dua pointer dalam satu elemen. Struktur ini
menyebabkan list melintas baik ke depan maupun ke belakang.
Masing-masing elemen pada double linked list terdiri dari tiga bagian, disamping
data dan pointer next, masing-masing elemen dilengkapi dengan pointer prev yang
menunjuk ke elemen sebelumnya. Double linked list dibentuk dengan menyusun
sejumlah elemen sehingga pointer next menunjuk ke elemen yang mengikutinya dan
pointer prev menunjuk ke elemen yang mendahuluinya.
Untuk menunjukkan head dari double linked list, maka pointer prev dari elemen
pertama menunjuk NULL. Untuk menunjukkan tail dari double linked list tersebut, maka
pointer next dari elemen terakhir menunjuk NULL. Susunan elemen yang dihubungkan
dalam bentuk double linked list dapat dilihat pada Gambar 2.3
Untuk melintas kembali melalui double linked list, kita gunakan pointer prev darielemen yang berurutan pada arah tail ke head. Double linked list mempunyai fleksibilitas
yang lebih tinggi daripada single linked list dalam perpindahan pada list. Bentuk ini
sangat berguna ketika akan meletakkan suatu elemen pada list dan dapat memilih
dengan lebih bijaksana bagaimana memindahkannya. Sebagai contoh, salah satu
fleksibilitas dari double linked list adalah dalam hal memindahkan elemen daripada
menggunakan single linked list.
12/15/11
struktur data part 2
ok, next post still abou my "big assignments" which i search in google and find out people blog. still about data structure.
i hope it can be useful, lets check it out
#include <iostream.h>
#include <stdlib.h>
class BinarySearchTree
{
//private:
struct nodeTree
{
nodeTree* kiri;
nodeTree* kanan;
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->kiri = NULL;
t->kanan = NULL;
parent = NULL;
if(isEmpty()) root = t;
else
{
nodeTree* current;
current = root;
while(current)
{
parent = current;
if(t->data > current->data) current = current->kanan;
else current = current->kiri;
}
if(t->data < parent->data)
parent->kiri = t;
else
parent->kanan = t;
}
}
void BinarySearchTree::remove(int d)
{
//Locate the element
bool found = false;
if(isEmpty())
{
cout<<" pohon kosong "<<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->kanan;
else current = current->kiri;
}
}
if(!found)
{
cout<<" data tidak di dirikan "<<endl;
return;
}
// Node dengan single child
if((current->kiri == NULL && current->kanan != NULL)|| (current->kiri != NULL
&& current->kanan == NULL))
{
if(current->kiri == NULL && current->kanan != NULL)
{
if(parent->kiri == current)
{
parent->kiri = current->kanan;
delete current;
}
else
{
parent->kanan = current->kanan;
delete current;
}
}
else
{
if(parent->kiri == current)
{
parent->kiri = current->kiri;
delete current;
}
else
{
parent->kanan = current->kiri;
delete current;
}
}
return;
}
// node tidak mempunyai child node
if( current->kiri == NULL && current->kanan == NULL)
{
if(parent->kiri == current ) parent->kiri = NULL;
else parent->kanan = NULL;
delete current;
return;
}
//Node dengan 2 child node
// ganti node dengan nilai terkecil di subtree bagain kanan
if (current->kiri != NULL && current->kanan != NULL)
{
nodeTree* temp;
temp = current->kanan;
if((temp->kiri == NULL) && (temp->kanan == NULL))
{
current = temp;
delete temp;
current->kanan = NULL;
}
else
{
if((current->kanan)->kiri != NULL)
{
nodeTree* lcurrent;
nodeTree* lcurrp;
lcurrp = current->kanan;
lcurrent = (current->kanan)->kiri;
while(lcurrent->kiri != NULL)
{
lcurrp = lcurrent;
lcurrent = lcurrent->kiri;
}
current->data = lcurrent->data;
delete lcurrent;
lcurrp->kiri = NULL;
}
else
{
nodeTree* tmp2;
tmp2 = current->kanan;
current->data = tmp2->data;
current->kanan = tmp2->kanan;
delete tmp2;
}
}
return;
}
}
void BinarySearchTree::print_inorder()
{
inorder(root);
}
void BinarySearchTree::inorder(nodeTree* p)
{
if(p != NULL)
{
if(p->kiri) inorder(p->kiri);
cout<<" "<<p->data<<" ";
if(p->kanan) inorder(p->kanan);
}
else return;
}
void BinarySearchTree::print_preorder()
{
preorder(root);
}
void BinarySearchTree::preorder(nodeTree* p)
{
if(p != NULL)
{
cout<<" "<<p->data<<" ";
if(p->kiri) preorder(p->kiri);
if(p->kanan) preorder(p->kanan);
}
else return;
}
void BinarySearchTree::print_postorder()
{
postorder(root);
}
void BinarySearchTree::postorder(nodeTree* p)
{
if(p != NULL)
{
if(p->kiri) postorder(p->kiri);
if(p->kanan) postorder(p->kanan);
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. Input nilai "<<endl;
cout<<" 2. In-Order Traversal "<<endl;
cout<<" 3. Pre-Order Traversal "<<endl;
cout<<" 4. Post-Order Traversal "<<endl;
cout<<" 5. Hapus "<<endl;
cout<<" 6. Exit "<<endl;
cout<<" Masukkan Pilihan : ";
cin>>ch;
switch(ch)
{
case 1 : cout<<" Input Angka : ";
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<<" Masukkan data yang akan dihapus : ";
cin>>tmp1;
b.remove(tmp1);
break;
case 6 :
return 0;
}
}
}
i hope it can be useful, lets check it out
binnery seacrh
#include <stdio.h>
void tukar(int *, int *);
int angka,angka1,angka2, key1,key2,key3, pilih, tampung[10], tampung1[10], tampung2[10] , kondisi,mode,jml,jml1,jml2,data[10],data1[10],data2[10];
void selection(int x[], int n)
{
int i, j, find, index, ubah=0;
for(i=0; i<n; i++)
printf("%d ", tampung[i]);
for(i=0; i < n-1; i++) {
find = i;
kondisi = 0;
for(j=i+1; j<n; j++) {
if(mode == 1)
kondisi = x[j] < x[find];
else
kondisi = x[j] > x[find];
if(kondisi) {
find = j;
ubah = 1;
}
}
if(ubah) {
tukar(&x[find], &x[i]);
puts("");
for(index=0; index<n; index++)
printf("%d ", x[index]);
}
}
}
int modeUrut()
{
int pil;
do {
printf("\n\2\2\2\2\2\2\2\2\2\2\2\2\2\2\2\2\2\2\2\2\2\2\2\2\2\2");
puts("");
puts("Pengurutan yang dipilih : ");
puts("1. Ascending");
puts("2. Descending");
printf("Pilihan anda [1/2] : ");
scanf("%d", &pil);
printf("\2\2\2\2\2\2\2\2\2\2\2\2\2\2\2\2\2\2\2\2\2\2\2\2\2\2\n");
} while((pil<1) || (pil>2));
if(pil == 1)
return 1;
else
return 2;
}
void tukar (int *a, int *b)
{
int temp;
temp = *a;
*a = *b;
*b = temp;
}
void input_angka()
{int i;
printf("\nPROGRAM BINARY SEARCH MENGGUNAKAN METODE SELECTION SEARCH\n ");
printf("\nMASUKKAN JUMLAH ELEMENNYA(max 10) = ");
scanf("%d", &jml);
for(i=0; i<jml; i++)
{
printf("data ke-%d = ",i);
scanf("%d", &data[i]);
tampung[i] = data[i];
}
for(i=0; i<jml; i++)
data[i] = tampung[i];
mode = modeUrut();
selection(data, jml);
}
int binary (int k[], int key, int n)
{
int low, hi, mid;
low=0;
hi=n-1;
while (low<=hi)
{
mid=(low+hi)/2;
if (key==k[mid])
return(mid);
if (key<k[mid])
hi=mid-1;
else
low=mid+1;
}
return (-1);
}
void main()
{
int hasil;
char ulang;
input_angka();
do
{
printf("\ncari: ");
scanf("%d", &key1);
hasil=binary(data, key1, jml);
if(hasil==-1)
printf("\nANGKA TIDAK DITEMUKAN\n");
else
printf("\nANGKA %d KETEMU PADA INDEX KE %d\n", key1, hasil);
fflush(stdin);
printf("APAKAH ANDA INGIN MENGULANG PENCARIAN (y/t)? ");
scanf("%c", &ulang);
}
while(ulang=='y'||ulang=='Y');
}
void tukar(int *, int *);
int angka,angka1,angka2, key1,key2,key3, pilih, tampung[10], tampung1[10], tampung2[10] , kondisi,mode,jml,jml1,jml2,data[10],data1[10],data2[10];
void selection(int x[], int n)
{
int i, j, find, index, ubah=0;
for(i=0; i<n; i++)
printf("%d ", tampung[i]);
for(i=0; i < n-1; i++) {
find = i;
kondisi = 0;
for(j=i+1; j<n; j++) {
if(mode == 1)
kondisi = x[j] < x[find];
else
kondisi = x[j] > x[find];
if(kondisi) {
find = j;
ubah = 1;
}
}
if(ubah) {
tukar(&x[find], &x[i]);
puts("");
for(index=0; index<n; index++)
printf("%d ", x[index]);
}
}
}
int modeUrut()
{
int pil;
do {
printf("\n\2\2\2\2\2\2\2\2\2\2\2\2\2\2\2\2\2\2\2\2\2\2\2\2\2\2");
puts("");
puts("Pengurutan yang dipilih : ");
puts("1. Ascending");
puts("2. Descending");
printf("Pilihan anda [1/2] : ");
scanf("%d", &pil);
printf("\2\2\2\2\2\2\2\2\2\2\2\2\2\2\2\2\2\2\2\2\2\2\2\2\2\2\n");
} while((pil<1) || (pil>2));
if(pil == 1)
return 1;
else
return 2;
}
void tukar (int *a, int *b)
{
int temp;
temp = *a;
*a = *b;
*b = temp;
}
void input_angka()
{int i;
printf("\nPROGRAM BINARY SEARCH MENGGUNAKAN METODE SELECTION SEARCH\n ");
printf("\nMASUKKAN JUMLAH ELEMENNYA(max 10) = ");
scanf("%d", &jml);
for(i=0; i<jml; i++)
{
printf("data ke-%d = ",i);
scanf("%d", &data[i]);
tampung[i] = data[i];
}
for(i=0; i<jml; i++)
data[i] = tampung[i];
mode = modeUrut();
selection(data, jml);
}
int binary (int k[], int key, int n)
{
int low, hi, mid;
low=0;
hi=n-1;
while (low<=hi)
{
mid=(low+hi)/2;
if (key==k[mid])
return(mid);
if (key<k[mid])
hi=mid-1;
else
low=mid+1;
}
return (-1);
}
void main()
{
int hasil;
char ulang;
input_angka();
do
{
printf("\ncari: ");
scanf("%d", &key1);
hasil=binary(data, key1, jml);
if(hasil==-1)
printf("\nANGKA TIDAK DITEMUKAN\n");
else
printf("\nANGKA %d KETEMU PADA INDEX KE %d\n", key1, hasil);
fflush(stdin);
printf("APAKAH ANDA INGIN MENGULANG PENCARIAN (y/t)? ");
scanf("%c", &ulang);
}
while(ulang=='y'||ulang=='Y');
}
*******************************************************************************
Algoritma tree c++
#include <stdlib.h>
class BinarySearchTree
{
//private:
struct nodeTree
{
nodeTree* kiri;
nodeTree* kanan;
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->kiri = NULL;
t->kanan = NULL;
parent = NULL;
if(isEmpty()) root = t;
else
{
nodeTree* current;
current = root;
while(current)
{
parent = current;
if(t->data > current->data) current = current->kanan;
else current = current->kiri;
}
if(t->data < parent->data)
parent->kiri = t;
else
parent->kanan = t;
}
}
void BinarySearchTree::remove(int d)
{
//Locate the element
bool found = false;
if(isEmpty())
{
cout<<" pohon kosong "<<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->kanan;
else current = current->kiri;
}
}
if(!found)
{
cout<<" data tidak di dirikan "<<endl;
return;
}
// Node dengan single child
if((current->kiri == NULL && current->kanan != NULL)|| (current->kiri != NULL
&& current->kanan == NULL))
{
if(current->kiri == NULL && current->kanan != NULL)
{
if(parent->kiri == current)
{
parent->kiri = current->kanan;
delete current;
}
else
{
parent->kanan = current->kanan;
delete current;
}
}
else
{
if(parent->kiri == current)
{
parent->kiri = current->kiri;
delete current;
}
else
{
parent->kanan = current->kiri;
delete current;
}
}
return;
}
// node tidak mempunyai child node
if( current->kiri == NULL && current->kanan == NULL)
{
if(parent->kiri == current ) parent->kiri = NULL;
else parent->kanan = NULL;
delete current;
return;
}
//Node dengan 2 child node
// ganti node dengan nilai terkecil di subtree bagain kanan
if (current->kiri != NULL && current->kanan != NULL)
{
nodeTree* temp;
temp = current->kanan;
if((temp->kiri == NULL) && (temp->kanan == NULL))
{
current = temp;
delete temp;
current->kanan = NULL;
}
else
{
if((current->kanan)->kiri != NULL)
{
nodeTree* lcurrent;
nodeTree* lcurrp;
lcurrp = current->kanan;
lcurrent = (current->kanan)->kiri;
while(lcurrent->kiri != NULL)
{
lcurrp = lcurrent;
lcurrent = lcurrent->kiri;
}
current->data = lcurrent->data;
delete lcurrent;
lcurrp->kiri = NULL;
}
else
{
nodeTree* tmp2;
tmp2 = current->kanan;
current->data = tmp2->data;
current->kanan = tmp2->kanan;
delete tmp2;
}
}
return;
}
}
void BinarySearchTree::print_inorder()
{
inorder(root);
}
void BinarySearchTree::inorder(nodeTree* p)
{
if(p != NULL)
{
if(p->kiri) inorder(p->kiri);
cout<<" "<<p->data<<" ";
if(p->kanan) inorder(p->kanan);
}
else return;
}
void BinarySearchTree::print_preorder()
{
preorder(root);
}
void BinarySearchTree::preorder(nodeTree* p)
{
if(p != NULL)
{
cout<<" "<<p->data<<" ";
if(p->kiri) preorder(p->kiri);
if(p->kanan) preorder(p->kanan);
}
else return;
}
void BinarySearchTree::print_postorder()
{
postorder(root);
}
void BinarySearchTree::postorder(nodeTree* p)
{
if(p != NULL)
{
if(p->kiri) postorder(p->kiri);
if(p->kanan) postorder(p->kanan);
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. Input nilai "<<endl;
cout<<" 2. In-Order Traversal "<<endl;
cout<<" 3. Pre-Order Traversal "<<endl;
cout<<" 4. Post-Order Traversal "<<endl;
cout<<" 5. Hapus "<<endl;
cout<<" 6. Exit "<<endl;
cout<<" Masukkan Pilihan : ";
cin>>ch;
switch(ch)
{
case 1 : cout<<" Input Angka : ";
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<<" Masukkan data yang akan dihapus : ";
cin>>tmp1;
b.remove(tmp1);
break;
case 6 :
return 0;
}
}
}
*********************************************************************************
source : segokarak.blogspot.com
Struktur data part 1
THIS time to make my "big assignment" , but i have to do it with my spirits...
I haven't been able to do algoritm, so i find out from people blog.
i will share what i take, check it out
I haven't been able to do algoritm, so i find out from people blog.
i will share what i take, check it out
single linked list
#include "stdio.h"
#include "stdlib.h"
#include "iostream.h"
struct node
{
int no;
char nama[10];
float datang, keluar;
struct node *next;
};
typedef struct node *simpul; char nama[10];
void main()
{
simpul baru, head=NULL, tail=NULL, temp;
int pilih;
do {
printf("**************************\n");
printf("* MENU NASABAH *\n");
printf("* 1. Insert Data *\n");
printf("* 2. View Data *\n");
printf("* 3. Search Data *\n");
printf("* 4. Delete Data *\n");
printf("* 5. Update Data *\n");
printf("* 6. Exit Program *\n");
printf("**************************\n");
printf(" Silahkan Anda Pilih: ");
scanf("%d", &pilih);
printf("__________________________\n");
switch(pilih)
{case 1:
char OK;
do {
baru = (simpul) malloc(sizeof (struct node));
printf("Masukkan Nomor Nasabah: ");
scanf("%d", &baru->no);
fflush(stdin);
printf("Masukkan Nama: ");
gets(baru->nama);
fflush(stdin);
printf("Masukkan Waktu Kedatangan: ");
scanf("%g",&baru->datang);
fflush(stdin);
printf("Masukkan Waktu Keluar: ");
scanf("%g",&baru->keluar);
fflush(stdin);
baru->next = NULL;
if (head == NULL)
{ head = baru; tail = baru; }
else
{ tail->next = baru; tail = baru; }
cout<<"Apakah Anda Ingin Mengulang Meng-Insert Data (y/n) ? ";
cin>>OK;
cout<<endl; }
while(OK=='y');
break;
case 2: do { int a;
printf("tampilkan secara\n1. maju\nmasukkan pilihan:");
scanf("%d",&a);
if(a==1)
{ temp = head;
while(temp!=NULL)
{ printf("\n%d ", temp->no);
printf("%s\n",temp->nama);
printf("%g\n",temp->datang);
printf("%g\n",temp->keluar);
temp = temp->next; } printf("\n"); }
cout<<"Apakah Anda Ingin Mengulang Meng-View Data (y/n) ? ";
cin>>OK;
cout<<endl; }
while(OK=='y');
break;
case 3: do { int cari,a;
printf("Cari Angka: "); scanf("%d", &cari);
printf("pencarian secara\n1. maju\nmasukkan pilihan:");
scanf("%d",&a);
if(a==1)
{ temp = head;
while((temp!=NULL)&&(temp->no!=cari))
{ temp = temp->next; }
if(temp != NULL && temp->no == cari)
printf("SELAMAT...!!! Data Ditemukan\n");
else
printf("MAAF...!!! Data Tidak Ditemukan\n");
printf("\n"); }
cout<<"Apakah Anda Ingin Mengulang Meng-Search Data (y/n) ? ";
cin>>OK;
cout<<endl; }
while(OK=='y');
break;
case 4: do { int hapus; char jwb; simpul next = NULL;
printf("Hapus Nasabah: "); scanf("%d", &hapus); temp = head;
while((temp!=NULL)&&(temp->no!=hapus))
{ temp = temp->next; }
if(temp != NULL && temp->no == hapus)
{ cout<<"Yakin Dihapus? (y/t)"; cin>>jwb;
if(jwb == 'y')
{ if(temp->next != NULL )
{ temp->next; }
else if (temp == head && head->next == NULL)
{ head = NULL; }
else if (temp == head && head->next != NULL)
{ (head->next)->next=NULL; head = head->next; }
free(temp); }
else
printf("OK...!?!!?!, Data Batal Dihapus");}
else
printf("MAAF...!!! Data Tidak Ditemukan\n\n\n");
cout<<"Apakah Anda Ingin Mengulang Meng-Delete Data (y/n) ? ";
cin>>OK;
cout<<endl; }
while(OK=='y');
break;
case 5:
do
{
//prev=NULL;
int cari;
printf("Cari No Nasabah: ");
scanf("%d", &cari);
temp = head;
while((temp!=NULL)&&(temp->no!=cari))
{
temp = temp->next;
}
if(temp != NULL && temp->no == cari)
{
printf("masukkan no baru = ");
scanf("%d",&temp->no);
printf("masukkan nama baru = ");
scanf("%s",&temp->nama);
printf("Masukkan Waktu Kedatangan: ");
scanf("%g",&baru->datang);
printf("Masukkan Waktu Keluar: ");
scanf("%g",&baru->keluar);
}
else
printf("MAAF...!!! Data Tidak Ditemukan\n");
cout<<"Apakah Anda Ingin Mengulang Meng-Update Data (y/n) ? ";
cin>>OK;
cout<<endl;
}
while(OK=='y');
break;
}
}while (pilih!=6); }
#include "stdlib.h"
#include "iostream.h"
struct node
{
int no;
char nama[10];
float datang, keluar;
struct node *next;
};
typedef struct node *simpul; char nama[10];
void main()
{
simpul baru, head=NULL, tail=NULL, temp;
int pilih;
do {
printf("**************************\n");
printf("* MENU NASABAH *\n");
printf("* 1. Insert Data *\n");
printf("* 2. View Data *\n");
printf("* 3. Search Data *\n");
printf("* 4. Delete Data *\n");
printf("* 5. Update Data *\n");
printf("* 6. Exit Program *\n");
printf("**************************\n");
printf(" Silahkan Anda Pilih: ");
scanf("%d", &pilih);
printf("__________________________\n");
switch(pilih)
{case 1:
char OK;
do {
baru = (simpul) malloc(sizeof (struct node));
printf("Masukkan Nomor Nasabah: ");
scanf("%d", &baru->no);
fflush(stdin);
printf("Masukkan Nama: ");
gets(baru->nama);
fflush(stdin);
printf("Masukkan Waktu Kedatangan: ");
scanf("%g",&baru->datang);
fflush(stdin);
printf("Masukkan Waktu Keluar: ");
scanf("%g",&baru->keluar);
fflush(stdin);
baru->next = NULL;
if (head == NULL)
{ head = baru; tail = baru; }
else
{ tail->next = baru; tail = baru; }
cout<<"Apakah Anda Ingin Mengulang Meng-Insert Data (y/n) ? ";
cin>>OK;
cout<<endl; }
while(OK=='y');
break;
case 2: do { int a;
printf("tampilkan secara\n1. maju\nmasukkan pilihan:");
scanf("%d",&a);
if(a==1)
{ temp = head;
while(temp!=NULL)
{ printf("\n%d ", temp->no);
printf("%s\n",temp->nama);
printf("%g\n",temp->datang);
printf("%g\n",temp->keluar);
temp = temp->next; } printf("\n"); }
cout<<"Apakah Anda Ingin Mengulang Meng-View Data (y/n) ? ";
cin>>OK;
cout<<endl; }
while(OK=='y');
break;
case 3: do { int cari,a;
printf("Cari Angka: "); scanf("%d", &cari);
printf("pencarian secara\n1. maju\nmasukkan pilihan:");
scanf("%d",&a);
if(a==1)
{ temp = head;
while((temp!=NULL)&&(temp->no!=cari))
{ temp = temp->next; }
if(temp != NULL && temp->no == cari)
printf("SELAMAT...!!! Data Ditemukan\n");
else
printf("MAAF...!!! Data Tidak Ditemukan\n");
printf("\n"); }
cout<<"Apakah Anda Ingin Mengulang Meng-Search Data (y/n) ? ";
cin>>OK;
cout<<endl; }
while(OK=='y');
break;
case 4: do { int hapus; char jwb; simpul next = NULL;
printf("Hapus Nasabah: "); scanf("%d", &hapus); temp = head;
while((temp!=NULL)&&(temp->no!=hapus))
{ temp = temp->next; }
if(temp != NULL && temp->no == hapus)
{ cout<<"Yakin Dihapus? (y/t)"; cin>>jwb;
if(jwb == 'y')
{ if(temp->next != NULL )
{ temp->next; }
else if (temp == head && head->next == NULL)
{ head = NULL; }
else if (temp == head && head->next != NULL)
{ (head->next)->next=NULL; head = head->next; }
free(temp); }
else
printf("OK...!?!!?!, Data Batal Dihapus");}
else
printf("MAAF...!!! Data Tidak Ditemukan\n\n\n");
cout<<"Apakah Anda Ingin Mengulang Meng-Delete Data (y/n) ? ";
cin>>OK;
cout<<endl; }
while(OK=='y');
break;
case 5:
do
{
//prev=NULL;
int cari;
printf("Cari No Nasabah: ");
scanf("%d", &cari);
temp = head;
while((temp!=NULL)&&(temp->no!=cari))
{
temp = temp->next;
}
if(temp != NULL && temp->no == cari)
{
printf("masukkan no baru = ");
scanf("%d",&temp->no);
printf("masukkan nama baru = ");
scanf("%s",&temp->nama);
printf("Masukkan Waktu Kedatangan: ");
scanf("%g",&baru->datang);
printf("Masukkan Waktu Keluar: ");
scanf("%g",&baru->keluar);
}
else
printf("MAAF...!!! Data Tidak Ditemukan\n");
cout<<"Apakah Anda Ingin Mengulang Meng-Update Data (y/n) ? ";
cin>>OK;
cout<<endl;
}
while(OK=='y');
break;
}
}while (pilih!=6); }
*****************************************************************************88
double linked list
#include "stdio.h"
#include "stdlib.h"
#include "iostream.h"
struct node
{
int npm;
char nama[10];
struct node *next;
struct node *prev;
};
typedef struct node *simpul;
void main()
{
simpul baru, head=NULL, tail=NULL, temp, prev;
int pilih;
do
{
printf("**************************\n");
printf("* MENU *\n");
printf("* 1. Insert Data *\n");
printf("* 2. View Data *\n");
printf("* 3. Search Data *\n");
printf("* 4. Delete Data *\n");
printf("* 5. Update Data *\n");
printf("* 6. Exit Program *\n");
printf("**************************\n");
printf(" Silahkan Anda Pilih: ");
scanf("%d", &pilih);
printf("__________________________\n");
switch(pilih)
{case 1:
char OK;
do
{
baru = (simpul) malloc(sizeof (struct node));
printf("Masukkan NPM: "); scanf("%d", &baru->npm);fflush(stdin);
printf("Masukkan Nama: "); gets(baru->nama);
baru->next = NULL;
baru->prev = NULL;
if (head == NULL)
{
head = baru; tail = baru;
}
else
{ baru->prev = tail;
tail->next = baru; tail = baru;
}
cout<<"Apakah Anda Ingin Mengulang Meng-Insert Data (y/n) ? ";
cin>>OK;
cout<<endl;
}
while(OK=='y');
break;
case 2: do
{ int a;
printf("tampilkan secara\n1. maju\n2. mundur\nmasukkan pilihan:");
scanf("%d",&a);
if(a==1)
{ temp = head;
while(temp!=NULL)
{
printf("\n%d ", temp->npm);
cout<<temp->nama<<endl;
temp = temp->next;
}
printf("\n");
}
if(a==2)
{ temp = tail;
while(temp!=NULL)
{
printf("\n%d ", temp->npm);
cout<<temp->nama<<endl;
temp = temp->prev;
}
printf("\n");
}
cout<<"Apakah Anda Ingin Mengulang Meng-View Data (y/n) ? ";
cin>>OK;
cout<<endl;
}
while(OK=='y');
break;
case 3: do
{ int cari,a;
printf("Cari Angka: "); scanf("%d", &cari);
printf("pencarian secara\n1. maju\n2. mundur\nmasukkan pilihan:");
scanf("%d",&a);
if(a==1)
{ temp = head;
while((temp!=NULL)&&(temp->npm!=cari))
{
temp = temp->next;
}
if(temp != NULL && temp->npm == cari)
printf("SELAMAT...!!! Data Ditemukan\n");
else
printf("MAAF...!!! Data Tidak Ditemukan\n");
printf("\n");
}
if (a==2)
{ temp = tail;
while((temp!=NULL)&&(temp->npm!=cari))
{
temp = temp->prev;
}
if(temp != NULL && temp->npm == cari)
printf("SELAMAT...!!! Data Ditemukan\n");
else
printf("MAAF...!!! Data Tidak Ditemukan\n");
printf("\n");
}
cout<<"Apakah Anda Ingin Mengulang Meng-Search Data (y/n) ? ";
cin>>OK;
cout<<endl;
}
while(OK=='y');
break;
case 4: do
{ int hapus; char jwb; simpul prev = NULL;
printf("Hapus Angka: "); scanf("%d", &hapus); temp = head;
while((temp!=NULL)&&(temp->npm!=hapus))
{
prev = temp; temp = temp->next;
}
if(temp != NULL && temp->npm == hapus)
{
cout<<"Yakin Dihapus? (y/t)"; cin>>jwb;
if(jwb == 'y')
{
if(temp->next != NULL && temp->prev != NULL)
{
prev->next = temp->next;
(temp->next)->prev=prev;
}
else if (temp->next == NULL)
{
prev->next = NULL;
}
else if (temp == head && head->next == NULL)
{
head = NULL;
}
else if (temp == head && head->next != NULL)
{
(head->next)->prev=NULL;
head = head->next;
}
free(temp);
}
else
printf("OK...!?!!?!, Data Batal Dihapus");
}
else
printf("MAAF...!!! Data Tidak Ditemukan\n\n\n");
cout<<"Apakah Anda Ingin Mengulang Meng-Delete Data (y/n) ? ";
cin>>OK;
cout<<endl;
}
while(OK=='y');
break;
case 5:
do
{
prev=NULL;
int cari;
printf("Cari Angka: ");
scanf("%d", &cari);
temp = head;
/*while((temp!=NULL)&&(temp->npm!=cari))
{
temp = temp->next;
}*/
if(temp != NULL && temp->npm == cari)
{
printf("masukkan NPM baru = ");
scanf("%d",&temp->npm);
printf("masukkan Nama baru = ");
scanf("%s",&temp->nama);
}
else //if(temp == NULL)
printf("MAAF...!!! Data Tidak Ditemukan\n");
cout<<"Apakah Anda Ingin Mengulang Meng-Update Data (y/n) ? ";
cin>>OK;
cout<<endl;
}
while(OK=='y');
break;
}
}while (pilih!=6);
}
#include "stdlib.h"
#include "iostream.h"
struct node
{
int npm;
char nama[10];
struct node *next;
struct node *prev;
};
typedef struct node *simpul;
void main()
{
simpul baru, head=NULL, tail=NULL, temp, prev;
int pilih;
do
{
printf("**************************\n");
printf("* MENU *\n");
printf("* 1. Insert Data *\n");
printf("* 2. View Data *\n");
printf("* 3. Search Data *\n");
printf("* 4. Delete Data *\n");
printf("* 5. Update Data *\n");
printf("* 6. Exit Program *\n");
printf("**************************\n");
printf(" Silahkan Anda Pilih: ");
scanf("%d", &pilih);
printf("__________________________\n");
switch(pilih)
{case 1:
char OK;
do
{
baru = (simpul) malloc(sizeof (struct node));
printf("Masukkan NPM: "); scanf("%d", &baru->npm);fflush(stdin);
printf("Masukkan Nama: "); gets(baru->nama);
baru->next = NULL;
baru->prev = NULL;
if (head == NULL)
{
head = baru; tail = baru;
}
else
{ baru->prev = tail;
tail->next = baru; tail = baru;
}
cout<<"Apakah Anda Ingin Mengulang Meng-Insert Data (y/n) ? ";
cin>>OK;
cout<<endl;
}
while(OK=='y');
break;
case 2: do
{ int a;
printf("tampilkan secara\n1. maju\n2. mundur\nmasukkan pilihan:");
scanf("%d",&a);
if(a==1)
{ temp = head;
while(temp!=NULL)
{
printf("\n%d ", temp->npm);
cout<<temp->nama<<endl;
temp = temp->next;
}
printf("\n");
}
if(a==2)
{ temp = tail;
while(temp!=NULL)
{
printf("\n%d ", temp->npm);
cout<<temp->nama<<endl;
temp = temp->prev;
}
printf("\n");
}
cout<<"Apakah Anda Ingin Mengulang Meng-View Data (y/n) ? ";
cin>>OK;
cout<<endl;
}
while(OK=='y');
break;
case 3: do
{ int cari,a;
printf("Cari Angka: "); scanf("%d", &cari);
printf("pencarian secara\n1. maju\n2. mundur\nmasukkan pilihan:");
scanf("%d",&a);
if(a==1)
{ temp = head;
while((temp!=NULL)&&(temp->npm!=cari))
{
temp = temp->next;
}
if(temp != NULL && temp->npm == cari)
printf("SELAMAT...!!! Data Ditemukan\n");
else
printf("MAAF...!!! Data Tidak Ditemukan\n");
printf("\n");
}
if (a==2)
{ temp = tail;
while((temp!=NULL)&&(temp->npm!=cari))
{
temp = temp->prev;
}
if(temp != NULL && temp->npm == cari)
printf("SELAMAT...!!! Data Ditemukan\n");
else
printf("MAAF...!!! Data Tidak Ditemukan\n");
printf("\n");
}
cout<<"Apakah Anda Ingin Mengulang Meng-Search Data (y/n) ? ";
cin>>OK;
cout<<endl;
}
while(OK=='y');
break;
case 4: do
{ int hapus; char jwb; simpul prev = NULL;
printf("Hapus Angka: "); scanf("%d", &hapus); temp = head;
while((temp!=NULL)&&(temp->npm!=hapus))
{
prev = temp; temp = temp->next;
}
if(temp != NULL && temp->npm == hapus)
{
cout<<"Yakin Dihapus? (y/t)"; cin>>jwb;
if(jwb == 'y')
{
if(temp->next != NULL && temp->prev != NULL)
{
prev->next = temp->next;
(temp->next)->prev=prev;
}
else if (temp->next == NULL)
{
prev->next = NULL;
}
else if (temp == head && head->next == NULL)
{
head = NULL;
}
else if (temp == head && head->next != NULL)
{
(head->next)->prev=NULL;
head = head->next;
}
free(temp);
}
else
printf("OK...!?!!?!, Data Batal Dihapus");
}
else
printf("MAAF...!!! Data Tidak Ditemukan\n\n\n");
cout<<"Apakah Anda Ingin Mengulang Meng-Delete Data (y/n) ? ";
cin>>OK;
cout<<endl;
}
while(OK=='y');
break;
case 5:
do
{
prev=NULL;
int cari;
printf("Cari Angka: ");
scanf("%d", &cari);
temp = head;
/*while((temp!=NULL)&&(temp->npm!=cari))
{
temp = temp->next;
}*/
if(temp != NULL && temp->npm == cari)
{
printf("masukkan NPM baru = ");
scanf("%d",&temp->npm);
printf("masukkan Nama baru = ");
scanf("%s",&temp->nama);
}
else //if(temp == NULL)
printf("MAAF...!!! Data Tidak Ditemukan\n");
cout<<"Apakah Anda Ingin Mengulang Meng-Update Data (y/n) ? ";
cin>>OK;
cout<<endl;
}
while(OK=='y');
break;
}
}while (pilih!=6);
}
*********************************************************************
source: segokarak.blogspot.com
Subscribe to:
Posts (Atom)