Senin, 21 Desember 2009

modul sda 6

Modul 6

Binary Search Tree

Tujuan Praktikum:

1. Memahami Binary search tree dan operasi – operasi terhadap tree

2. Memahami beberapa cara tree treversal

3. Memanfaatkan tree pada persoalan pemrograman tertentu

4. Memahami pembuatan tree dengan array dan linked list

Teori:

Binary tree adalah abstraksi tree dengan aturan setiap node paling banyak memiliki 2 anak node. Binary tree disebut full binary tree jika setiap dahan pada aras yang sama dan setiap node memiliki 2 anak. Jika sebuah full binary memiliki tinggi h maka akan memiliki 2 pangkat h dahan. Sebuah binary tree complit (lengkap adalah sebuah pohon biner penuh atau lainnya yang dapat dibuat penuh hanya pada aras terbawah.

Pohon biner dapat dikunjungi anak – anaknya dengan beberapa cara:

1. Preorder

a. Kunjungi Root

b. Jika tree disebelah kiri tidak kosong, maka lakukan kunjungan preorder padanya.

c. Jika tree disebelah kanan tidak kosong, maka lakukan kunjungan preorder padanya

2. PostOrder

a. Jika tree disebelah kiri tidak kosong, maka lakukan kunjungan postorder padanya

b. Jika tree disebelah kanan tidak kosong, maka lakukan kunjungan postorder padanya

c. Kunjungi Root

3. Inorder

a. Jika Tree disebelah kiri tidak kosong, maka lakukan kunjungan inorder padanya,

b. Kunjungi root

c. Jika tree disebelah kanan tidak kosong, maka lakukan kunjungan inorder padanya.

Praktikum:

Alat dan Bahan:

- IDE C++ (Integrated Development Environtment) seperti Borland C++

- System Operasi Windows

Langkah – langkah Praktikum :

1. Buat Project baru, beri nama Lab06_01 (seperti langkah 1 s/d 5 pada Lab01_01)

2. Buatlah source code berikut:

/************************/

/* Lab06_01.cpp */

/************************/

#include

#include

#include

struct simpul

{

char info;

struct simpul *right;

struct simpul *left;

};

struct tree

{

struct simpul *root;

};

void makeTree(char c, tree *T)

{

simpul *node;

node = (simpul *) malloc(sizeof (simpul));

node->info = c;

node->right = NULL;

(*T).root = node;

}

void addRight(char c, simpul **root)

{

if((*root)->right == NULL)

{

/*jika sub pohon kanan kosong*/

simpul *node;

node = (simpul *) malloc(sizeof (simpul));

node->info = c;

node->right = NULL;

node->left = NULL;

(*root)->right = node;

}

else

{

printf("sub pohon kanan telah terisi \n");

}

}

void addLeft(char c, simpul **root)

{

if((*root)->left == NULL)

{

//Jika sub pohon kiri kosong

simpul *node;

node = (simpul *) malloc(sizeof (simpul));

node->info = c;

node->right = NULL;

node->left = NULL;

(*root)->left = node;

}

else

{

printf("sub pohon kiri telah terisi \n");

}

}

void delRight(simpul **root)

{

simpul *node = (*root)->right;

(*root)->right = NULL;

free(node);

}

void delLeft(simpul **root)

{

simpul *node = (*root)->left;

(*root)->left = NULL;

free(node);

}

void printTreePreOrder(simpul *root)

{

if(root != NULL)

{

printf(" %c ", root->info);

printTreePreOrder(root->left);

printTreePreOrder(root->right);

}

}

void printTreeInOrder(simpul *root)

{

if(root != NULL)

{

printTreeInOrder(root->left);

printf(" %c ", root->info);

printTreeInOrder(root->right);

}

}

void printTreePostOrder(simpul *root)

{

if(root != NULL)

{

printTreePostOrder(root->left);

printTreePostOrder(root->right);

printf(" %c ", root->info);

}

}

void printTreeLevelOrderNext(simpul *root)

{

if(root != NULL)

{

if(root->left != NULL)

{

printf(" %c ", root->left->info);

}

if(root->right != NULL)

{

printf(" %c ", root->right->info);

}

if(root->left != NULL)

{

printTreeLevelOrderNext(root->left);

}

if(root->right != NULL)

{

printTreeLevelOrderNext(root->right);

}

}

}

void printTreeLevelOrder(simpul *root)

{

if(root != NULL)

{

printf(" %c ", root->info);

printTreeLevelOrderNext(root);

}

}

void copyTree(simpul *root1, simpul **root2)

{

if(root1 != NULL)

{

(*root2) = (simpul *)malloc(sizeof (simpul));

(*root2)->info = root1->info;

if(root1->left != NULL )

{

copyTree(root1->left, &(*root2)->left);

}

if(root1->right != NULL)

{

copyTree(root1->right, &(*root2)->right);

}

}

}

bool isEqual(simpul *root1, simpul *root2)

{

bool hasil = true;

if((root1 != NULL) && (root2 != NULL))

{

if(root1->info != root2->info)

{

hasil = false;

}

else

{

isEqual(root1->left, root2->left);

isEqual(root1->right, root2->right);

}

}

else

{

if((root1 != NULL)||(root2!= NULL))

{

hasil = false;

}

}

return hasil;

}

int main()

{

struct tree T;

makeTree('A', &T);

addLeft('B', &T.root);

addRight('C', &T.root);

addLeft('D', &T.root->left);

addRight('E', &T.root->left);

addRight('F', &T.root->right);

printf("===================\n");

printf("preOrder\n");

printTreePreOrder(T.root);

printf("\n=================\n");

printf("inOrder\n");

printTreeInOrder(T.root);

printf("===================\n");

printf("postorder\n");

printTreePostOrder(T.root);

printf("===================\n");

printf("levelOrder\n");

printTreeLevelOrder(T.root);

printf("===================\n");

tree T2;

copyTree(T.root, &T2.root);

if(isEqual(T.root, T2.root) == true)

{

printf("pohon sama\n");

}

else

{

printf("pohon tidak sama\n");

}

delRight(&T.root->left);

delLeft(&T.root->left);

printf("====================\n");

printf("preOrder setelah dihapus\n");

printTreePreOrder(T.root);

printf("====================\n");

getch();

return 0;

}

Pertanyaan Praktikum:

1. Jelaskan dan berikan analisis pada keluaran Lab06_01.cpp!

2. Jelaskan algoritma:

a. makeTree()

b. addLeft() dan addRight()

c. printTreePreOrder()

d. printTreeInOrder()

e. printTreePostOrder()

f. copyTree()

g. delLeft() dan delRight()

Modul 5 SDA

Modul 5

Queue

Tujuan Praktikum :

1. Memahami queue dan operasi-operasi terhadap queue

2. Memanfaatkan queue pada persoalan pemrograman tertentu

3. Memahami pembuatan stack dengan array dan linked-list

Teori :

Queue adalah sebuah struktur data yang mengimplementasikan protokol FIFO (First In First Out). Artinya adalah objek yang dapat diakses dalam queue adalah objek pertama yang dimasukkan. Analogi queue adalah sebuah antrian di bank atau di jalan tol.

Queue sering dipakai dalam simulasi misalnya untuk mensimulasikan pelanggan yang mengantri diteller bank atau antrian paket internet.

Praktikum :

Alat dan Bahan:

- IDE C++ (Integrated Development Environtment) seperti Borland C++

- System Operasi Windows

Langkah-langkah Praktikum :

1. Buat project baru beri nama Lab05_01 (seperti langkah 1 s/d 5 pada Lab01_01)

2. Buatlah source code Lab05_01.cpp

#include

#include

#include

struct nilaiMatkul

{

char nim[10];

char nama[50];

float nilai;

};

struct queue

{

int first;

int last;

nilaiMatkul data[10];

};

void createEmpty(queue *Q)

{

(*Q).first = -1;

(*Q).last = -1;

}

bool isEmpty(queue Q)

{

bool hasil = false;

if(Q.first == -1)

{

hasil = true;

}

return hasil;

}

bool isFull(queue Q)

{

bool hasil = false;

if(Q.last == 9)

{

hasil = true;

}

return hasil;

}

void add(char nim[], char nama[], float nilai, queue *Q)

{

/*Jika queue kosong*/

if(isEmpty(*Q) == true)

{

(*Q).first = 0;

(*Q).last = 0;

strcpy((*Q).data[0].nim, nim);

strcpy((*Q).data[0].nama,nama);

(*Q).data[0].nilai = nilai;

}

else

{

/*Jika queue tidak kosong*/

if(isFull(*Q) != true)

{

(*Q).last = (*Q).last +1;

strcpy((*Q).data[(*Q).last].nim,nim);

strcpy((*Q).data[(*Q).last].nama,nama);

(*Q).data[(*Q).last].nilai = nilai;

}

else

{

printf("Queue penuh\n");

}

}

}

void del(queue *Q)

{

if((*Q).last == 0)

{

(*Q).first = -1;

(*Q).last = -1;

}

else

{

/*Menggeser elemen kedepan*/

int i;

for(i = ((*Q).first + 1); i <= (*Q).last; i++)

{

strcpy((*Q).data[i-1].nim,(*Q).data[i].nim);

strcpy((*Q).data[i-1].nama,(*Q).data[i].nama);

(*Q).data[i-1].nilai = (*Q).data[i].nilai;

}

(*Q).last = (*Q).last -1;

}

}

void printQueue(queue Q)

{

if(Q.first != -1)

{

printf("------isi queue------\n");

int i;

for(i=Q.last; i>=Q.first; i--)

{

printf("====================\n");

printf("elemen ke : %d\n", i);

printf("nim : %s\n",Q.data[i].nim);

printf("nama : %s\n",Q.data[i].nama);

printf("nilai : %f\n",Q.data[i].nilai);

}

printf("---------------------\n");

}

else

{

/*Proses jika queue kosong*/

printf("queue kosong\n");

}

}

int main()

{

queue Q;

createEmpty(&Q);

printQueue(Q);

printf("=================\n");

//Gunakan nama dan NIM masing-masing

add("06406002", "Ana", 90, &Q);

add("06406017", "Rara", 70,&Q);

add("06406018", "clew", 80, &Q);

printQueue(Q);

printf("=================\n");

del(&Q);

del(&Q);

printQueue(Q);

printf("=================\n");

getch();

return 0;

}

Pertanyaan Praktikum:

1. Jelaskan keluaran Lab05_01.cpp!

2. Jelaskan kegunaan fungsi kelas Queue berikut:

a. add()

b. del()

c. printQueue()

d. createEmpty()

Pertanyaan Singkat Modul 5:

1. Apakah Queue bersifat LILO (Last In Last Out) atau bersifat FILO (First In Last Out)?

2. Sebutkan dalam contoh pemrograman apa queue sering diigunakan!

Rabu, 16 Desember 2009

The Princess And The Frog (CAM) )!!!!

Hi Guys...

Here iam...

I love this day and this morning..

make me smile in my world...

i miss someone that i love ...

i was watched the princess and the frog..

i love that movie!!!

i wanna get my prince and hapily ever after...

so make my dream to be come true...

i really dont know what i feel...

i really enjoy to love man...

but im man too...

yeah i know that's so hard to believe for u...

my blog just blog..

he can answered my question...

what happend to me..?


MY God is ALLAH S.W.T

Allah never make a mistake..

Allah always right...

Allah is everything...

Allah try me to get the strength in my life and make me grown up... because Allah love me...

I know what i feel with the man is SIN ... but i dont know how to make this feeling lost and go far away from me...

i wanna turn to the real MAN... but i really dont know how to make that...

i think i need some MUSE, MIRACLE, and HIDAYAH ...

Hidayah is something that Allah give to get people realize what they doing is wrong!!!


and the most important....


"HUMAN IS NOT PERFECT!!!"

never Perfect!!!

"Syukurilah semua nya yang kau dapati dari Allah"

i dont know how tro translate my message that... but u can translate that in my translate...

if u wanna download the princess and the frog.. u can download here FREE or Here !!!

dont forget to give me a comment about my blog...

okay thanks...

by the way the princess and the frog still cam and i didnt get subtitle in there...

thanks...


* nulis ini sedang puasa sunnah senin kamis di malam satu suro!!! *

* Nanti malem mau mandi kembang kayaknya *


Sincerely...



Rengga

Sabtu, 05 Desember 2009

*** S.E.L.I.N.G.K.U.H ***

Lupakan ak.. jngan prnah kau mncintaiku lagi karena ak seorang pendusta hati.. bye...bye my love..bye..bye.. my love...bye..bye.. my love...

Bibin kuh... semua aku akui di blog ini...
aku SELINGKUH!
aku nyesel banget sama semuanya...

aku gak bisa jalanin semua ini sama kamu kalau kita terus-terusan jauh.

mungkin cara ini yang paling sulit bagi pasangan LONG DISTANCE RELATIONSHIP...

menurut ku kita itu persis banget sama Radhitya Dika di blog nya Kambing Jantan,,,

sekali lagi maafkan aku yah yang gak bisa kasih kamu cinta...
mungkin udah satnya kali yah untuk kamu punya yang LEBIH BAIK DAN KAYAKNYA EMANG KAMU SALAH PILIH ... AKU GAK PANTES BANGET MILIKIN KAMU...


harusnya emang waktu itu kita gak usah kenalan dan .... tapi nasi sepertinya nasi udah jadi lembek...

sebentar lagi itu nasi jadi BASI Semua orang aja bilang aku tuh gak pantes untuk kamu...

apkah aku ini emang terlalu buruk untuk mendapatkan orang seperti kamu?

sekarang aku sadar dengan satu hal yang pasti aku terlalu kehilangan kamu hingga aku mencari pengganti kamu...

tapi GAK ADA YANG SEPERTI KAMU...

kamu TAKKAN PERNAH TERGANTI DAN AKAN SELALU DI HATIKU...

bmakasih banget untuk semuanya... tulisan di blog ini aku tulis dengan sesingkat-singkatnya dan di bawah kesadaran...

dan juga tanpa adanya paksaan dari siapaun...

so thankyou so much ...
I'M SORRY GOOD BYE...


your Ex LOVE.


Sabtu, 07 November 2009

Naomi "The Indigo's Child" - Part 1 - Paralel

“Ka Naomi cepetan bangun…!!!” Sheren membangunkan aku pagi itu. Menjemput mimpi-mimpiku dan aku lekas mengambil langkahku untuk meraih segala asa yang mengembun di pagi hari . “Kakak cepetan… bangun !!!”

“Iya… iya …” aku menguap. “Emang sekarang jam berapa ?”

“Udah jam setengah enam.”

Aku mengangkat ragaku yang lunglai tak berdaya ini , mataku membuka perlahan dan mengambil air wudhu. Aku shalat shubuh. Setelah itu aku menuju ke kamar mandi.

“Kakak cepetan mandinya !! Nanti belum makannya … huuh… !” bawel Sheren dari luar kamar mandi.

Aku seakan dikejar sang waktu, berusaha lari dan menggapai bagian yang paling kusuka, makan pagi atau sarapan atau breakfast.

“Kamu bisanya teriak-teriak aja de, ngagetin orang aja!”

“Abiz kakak kalo pagi- pagi suka bikin orang kecot sih! Bangun paginya susah banget !” Sheren meledekku yang baru keluar dari kamar mandi.

“Namanya juga manusia kali de, ada kekurangannya.” Sheren mengangguk sambil mengunyah nasi goreng yang hampir habis.

“Naomi nanti kamu ke sekolahan nya Sheren yah ambil rapot.” Aku mengangguk dan mengebut makan nasi gorengnya.

“Sama om Icung?”

“Ya donk, kamu bertiga.” mama sedang tidak enak badan.

“Aku, ka Naomi, om Icung?” mama mengangguk.

“Awas yah de kalo rapot mu jelek. “ Sheren mengangguk.

“Aku kan pinter kali kak. Jadi tenang aja. Hahaha.” Sheren tertawa.

Om Icung yang telah ditelepon mama sudah datang menunggu di depan rumah.

“Assalamualaikum…” om Icung menyapa semuanya

“Walaikumsalam…” kami semua pun menjawab salam om Icung.

“Enak nih nasgor...?” om Icung menyambung.

“Iya donk… mau ga om..?” aku menawarkan.

Om Icung menggeleng. “Nyam...” nasi goreng terakhir pun langsung masuk ke mulutku.

“Ya udah yuk de berangkat. Udah jam delapan nih.” Aku dan Sheren berangkat setelah mencium tangan mama.

“Assalamualaikum…” kami bertiga kompak mengucap salam.

Aku berangkat ke sekolah Sheren dengan om Icung. Umurku kini 13 tahun, aku masih SMP. Tapi aku homeschooling. Sesungguh nya aku ingin di sekolah biasa sayangnya kenyataan tak berpihak pada ku.

Aku adalah seorang anak Indigo. Semua udah tau kan maksudnya anak indigo itu apa? Kalo masih ada yang kurang jelas, aku akan kasih tahu.

Anak indigo adalah anak-anak yang dilahirkan dengan insting yang kuat dan memiliki kelebihan. Walaupun terkadang orang disekitar menganggap anak indigo itu anak yang aneh atau autis atau tidak bisa diam alias lincah banget. Terkadang omongan nya tidak jelas. Meski begitu mereka masing-masing memiliki kelebihan diatas orang normal pada umumnya. Contohnya aku yang dapat melihat waktu yang akan terjadi. Atau juga bisa melihat hal-hal yang berhubungan dengan dunia ghaib. Aku percaya aku diberikan kelebihan oleh Allah, untuk kebajikan.

Mama adalah mama yang paling baik di dunia karena mama sangat mengerti aku. Aku tinggal dirumah dengan Mama, Sheren, Om Jack, Om Irfan dan Tante Asih. Eh lupa ada adik Zidan, anaknya Om Irfan dan Tante Asih. Semuanya adalah keluarga ku. Aku sangat menyangi mereka dan mereka pun menyayangiku.

Dari hari ke hari aku merasa slalu saja kesepian. Karena tak ada teman bermain seperti di sekolah pada umumnya dan di lingkungan sekitar rumahku. Alhasil aku hanya bermain dengan adikku, Sheren. Terkadang kalau ada anak nya teman mama datang kerumah baru aku main dengan anak sebaya ku.

“Sheren kira-kira ranking berapa nih?” Om Icung berbicara di motor.

“Beloman kali om. Kan masih semester satu… tapi pengen nya kalo semester dua nanti dapet ranking satu, om.” Aku tertawa.

“Kenapa kakak tertawa?”

“Kamu lucu ajah. Kalau mau ranking satu itu belajar yang rajin. Kamu kan doyan nya main Barbie.” Om Icung ikut tertawa.

Sebentar lagi sampai disekolah Sheren, hatiku menjadi berdebar-debar. Harus nya Sheren yang merasakan hal seperti ini, bukan aku. Lalu motor masuk ke parkiran. Begitu banyak murid-murid dan orang tuanya yang telah mengambil rapor.

“Sheren, om Icung disini aja yah.” Sheren mengangguk.

“Om Icungm, awas yah kabur ninggalin aku sama Sheren.” Aku tersenyum meledek om Icung yang hanya menunggu di motor. Kemudian aku dan Sheren jalan ke ruang kelas Sheren.

Aku benci sekali kalau sekolah bertingkat seperti sekolah Sheren ini. Kelas nya di lantai dua. Aku capek banget menaiki puluhan tangga yang harus ku daki dengan kedua kaki.

“Hah…huh …hah..huh…” nafasku terengah-engah.

“Kakak baru segini aja udah kecapekan. Gimana aku yang setahun berada disini dan naik turun melulu.” Sherenbadannya tak sebesar dan selebar tubuhku. Sehingga mudah untuk bergerak kemana pun dia suka. Sedangkan aku sedikit saja sudah terasa sangat berat sekali.

“Kamu kelas berapa sih Sheren?”

“Kelas 4-1!” jawab Sheren sambil menunjuk kelas nya yang sedikit lagi dapat kuraih.

Di dalam sudah ada begitu banyak orangtua murid dan masing-masing anak nya. Menunggu lagi deh. Aku duduk di kursi paling belakang.

Sejak masuk ke kelas Sheren aku memandangi jam dinding diatas kepala guru nya Sheren. Hingga tiga puluh menit telah berlalu. Aku masih tetap menunggu. Tiga puluh menit saja masih terlihat banyak yang ingin mengambil rapor.

Aku menundukan kepala diatas meja. Sangat letih dan sedikit mengantuk rasanya.hawa sejuk menyapa lembut kulitku. Membelai rambutku. Hingga mataku tertutup.

Lalu aku membuka mata. “Hoam…” aku terkejut melihat kelas yang sepi . Apa aku telah ketinggalan? Bagaimana dengan Sheren yang ingin mengambil rapor? Aku celingak celinguk tak jelas. Aku mengucek mata, memastikan bahwa semua hanya karena mataku yang sudah minus atau masih mengantuk. Tapi ternyata tidak. Itu kenyataan. Aku menguap dan bangkit dari tempat duduk menuju keluar kelas. Tapi semua orang seperti menghilang dari sekolah ini, di setiap sudut juga tak kulihat batang hidung semua murid dan orangtua mereka.

Sepertinya aku berada di alam mimpi. Mataku mencari manusia yang kukenal tapi tak ku temukan. Kakiku berjalan ke tangga melanjutkan ke lantai dasar.

Kosong.

Tak kulihat apapun disana.

Apa yang terjadi?

Apa yang aku lakukan di alam mimpi ini?

Mengapa aku hanya sendiri disini?

Aku berdiri ketengah lapangan dan berusaha mencari pintu yang kupikir bisa mengembalikan aku ke dunia nyata. Kemudian sadar dari mimpi ini.

Aku semakin bingung. Aku tak tahu apa yang harus aku lakukan. Aku semakin panik. Entahlah aku sudah tidak tahan lagi, lengang sekali.

“Na…oo…mii...” aku melihat ke sekelilingku.

“Siapa itu ?” aku bertanya sekeras-kerasnya.

“Na……ooo……miiii……!!! “ aku melihat kesekelilingku lagi mencari darimana suara itu berasal.

Aku berusaha untuk memfouskan diriku. Sebersit aku mendapat pertanda. Pertanda ini terlalu riuh, aku menjadi hilang kendali hingga menutup telingaku. Aku berlari kembali ke kelas 4-1 , ragaku masih terpaku di meja kelas. Seketika aku melihat diriku, inikah jiwa? Apa yang harus aku lakukan agar jiwa ini kembali ke raga dan kembali ke dunia nyata?

“ Naomi…!!! Na…oooo...miiiii…!!!” teriakan-teriakan mulai terdengar lagi. Tapi wujudnya tak ada. Aku menggeleng-gelengkan kepala sambil menutup telinga.

“Tidak…!!! Tidak…!!! Tidak…!!! Tolong kalau seperti ini tidak akan selesai masalah kalian!” teriakku berusaha lari, lari dan lari menuju ragaku. Tapi semakin terseret waktu yang menelan setiap detik. Berbagai pertanyaan muncul dalam benak karena jiwaku tersentuh dan semakin terhisap ke satu titik.

Gelap…