• Tidak ada hasil yang ditemukan

LAPORAN PRAKTIKUM ALGORITMA DAN STRUKTUR (6)

N/A
N/A
Protected

Academic year: 2018

Membagikan "LAPORAN PRAKTIKUM ALGORITMA DAN STRUKTUR (6)"

Copied!
15
0
0

Teks penuh

(1)

LAPORAN PRAKTIKUM

ALGORITMA DAN STRUKTUR DATA II

MODUL

Pohon n-er

Disusun Oleh :

Syukur Jaya Mendrofa 201501072

Kelas: C

Dosen Pengampu :

Oskar Ika Adi Nugroho, ST., MT

JURUSAN SISTEM INFORMASI

SEKOLAH TINGGI ILMU KOMPUTER “YOS SUDARSO”

PURWOKERTO

(2)

BAB I

DASAR TEORI

Pohon n-er

Pohon n-er adalah struktur pohon yang memiliki simpul turunan lebih dari dua.

Contoh Pohon n-er :

Pada pohon n-er dapat dilakukan kunjungan pada simpul-simpulnya seperti pada pohon biner.

 Jika dilakukan kunjungan pada simpul-simpul pohon n-er diatas secara preorder akan menghasilkan :

A-B-E-F-C-G-D-H-I-J-K-L-M

 Jika dilakukan kunjungan pada simpul-simpul pohon n-er diatas secara postorder akan menghasilkan :

E-F-B-G-C-H-I-K-L-M-J-D-A

 Jika dilakukan kunjungan pada simpul-simpul pohon n-er diatas secara levelorder akan menghasilkan :

(3)

BAB II

void makeTree(char c, tree *T) {

simpul *node;

node = (simpul *) malloc(sizeof (simpul)); node->info = c;

node->sibling = NULL; node->child = NULL; (*T) .root = node; }

void addChild(char c, simpul **root){ if((*root) != NULL){

(4)

last = last->sibling;

void delChild(char c, simpul **root){

simpul *node = (*root)-> child; if (node != NULL){

while((node->sibling !=(*root)->child)&&(ketemu == 0)){ if (node->info == c){

(5)

/*jika hanya ada 2 anak*/

(6)

&&(ketemu == 0)){

(7)

if(root != NULL){

/*memproses simpul anak terakhir karena belum terproses dalam pengulangan*/ printTreePostOrder(node);

/*memproses simpul anak terakhir karena belum terproses dalam pengulanagn*/ printf(" %c ", node -> info);

/*memproses simpul anak terakhir karena belum terproses dalam pengulangan*/ printTreeLevelOrderNext(node);

(8)

}

void printTreeLevelOrder(simpul *root){ if(root != NULL){

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

(*root2)->info = root1->info; (*root2)->sibling = NULL; (*root2)->child = NULL;

if(root1->child != NULL){

if(root1->child->sibling == NULL){ /*jika memiliki satu anak*/

copyTree(root1->child, &(*root2)->child); }

/*memproses simpul anak terakhir karena belum terproses dalam pengulangan*/ copyTree(node1, &node2);

} } } }

int isEqual(simpul *root1, simpul *root2){ int hasil = 1;

(9)

hasil =

(10)

node = findSimpul('D', T.root);

printf(" WELCOME SYUKUR JAYA MENDROFA \n"); printf(" ================== \n");

node = findSimpul ('J', T.root); if(node != NULL){ printf(" preOrder setelah dihapus \n"); printTreePreOrder(T.root);

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

return 0; }

(11)

ANALISA PRORGRAM

Cara kerja void PrintTreePreOrder

Mempunyai urutan :

 Cetak isi simpul yang dikunjungi (simpul akar)  Kunjungi cabang kiri

 Kunjungi cabang kanan

(12)

Cara Kerja void PrintTreePostOrder

Mempunyai urutan :  Kunjungi cabang kiri  Kunjungi cabang kanan

 Cetak isi simpul yang dikunjungi (simpul akar)

Sehingga output menghasilkan keluaran di layar :

(13)

Urutan pada LevelOrder yaitu melakukan kunjungan berdasarkan nilai/level depth yang terendah sampai yang tertinggi pada depth 0 yaitu A akar, kemudian depth 1 yaitu B C D, lalu depth 2 yaitu E F G H I J dan depth 3 yaitu K L M.

Sehingga output menghasilkan keluaran di layer :

(14)

Penghapusan pada preorder dilakukan berdasarkan kunjungan pada simpul anak yang terakhir di kunjungi yaitu anak (J) = K L M.

Sehingga output menghasilkan keluaran di layar :

Fungsi yang digunakan pada program di atas :

1. void makeTree

Inisialisasi sebuah tree, dengan mengisikan data ke simpul root, serta menetapkan bahwa simpul root tidak memiliki sibling dan child.

2. void addChild

Mengalokasikan suatu simpul baru yang sudah kita isikan dengan data terhadap suatu simpul yang menjadi parent-nya. Lalu ditetapkan juga bahwa simpul baru tersebut tidak memiliki sibling dan child.

3. void delChild

Melakukan proses delete jika child suatu simpul diketahui memiliki child atau sibling terlebih dahulu hingga simpul yang ingin kita hapus anaknya memang sudah 'aman'. Cara lain yang biasa dilakukan adalah kita langsung saja set bahwa childnya null. 4. simpul *findSimpul

Menelusuri setiap simpul hingga dapat ditentukan ditemukan atau tidak simpul dengan informasi tertentu yang sedang dicari. Dan jangan lupa untuk me-return simpul tersebut agar bisa digunakan untuk proses lainnya.

5. void printTreePreOrder

Menampilkan simpul pohon ke Output secara Preorder 6. void printTreePostOrder

Menampilkan simpul pohon ke Output secara Postorder 7. void printTreeLevelOrderNext

Menampilkan simpul pohon ke Output secara Levelorder if(root != NULL){simpul *node = root->child; if(node != NULL){if(node->sibling == NULL)

8. void printTreeLevelOrder

Menampilkan simpul pohon ke Output secara Levelorder if(root != NULL){ printf(" %c ", root -> info);

9. void copyTree

Menyalin pohon biner yang satu dengan pohon biner yang lainnya. 10. int isEqual (fungsi Boolean)

(15)

BAB III

KESIMPULAN

Berdasarkan dari tugas praktikum yang telah saya kerjakan saya dapat mengambil kesimpulan :

 Kunjungan pada pohon n-er merupakan salah satu operasi yang sering dilakukan pada

suatu pohon biner tepat satu kali. Operasi ini terbagi menjadi 3 bentuk : 1. Kunjungan secara Preorder

Mempunyai urutan :

 Cetak isi simpul yang dukunjungi (simpul akar)  Kunjungi cabang kiri

 Kunjungi cabang kanan 2. Kunjungan secara Postorder

Mempunyai urutan :  Kunjungi cabang kiri  Kunjungi cabang kanan

 Cetak isi simpul yang dukunjungi (simpul akar) 3. Kunjungan secara Inorder

Mempunyai urutan :  Kunjungi cabang kiri

 Cetak isi simpul yang dukunjungi (simpul akar)  Kunjungi cabang kanan

 Pohon n-er adalah bentuk lain dari binary tree (pohon biner), namun keduanya masih sama-sama tree, artinya keduanya memiliki fungsi yang sama dalam penggunaannya. Misalnya digunakan untuk menyimpan data yang memiliki hubungan (relasi) berupa turunan (dan sebagainya) dengan data lainnya, juga seringkali digunakan pada DCS (decision support system).

Referensi

Dokumen terkait

Selanjutnya, berdasarkan apa yang telah diuraikan maka saran dalam penelitian ini adalah pertama, jika kesetaraan gender menjadi salah satu solusi dalam peningkatan

Dengan dilakukannya penelitian ini, dapat dilihat bagaimana pengendali daya Hybrid mampu mengendalikan daya antara Baterai dan Solar Cell, kinerja Solar Cell saat UAV

This was a survey study that used the descriptive data, Customer Response Index (CRI) and independent samples t-test to test the difference in effectiveness between the

Dalam penelitian ini memakai metode deskriptif dengan teknik survey test, karena masalah yang diteliti adalah hubungan antara panjang tungkai dengan prestasi lari

Hocamız Mehmed Efendi (ks) Hazretleri o kadar büyük bir tevazu sahibi ve kendisini gizlemekte o kadar mahir idi- ler ki; en iyi bildikleri bir mevzuyu dahi, muhatapları, Ho-

Busur Kepulauan ini sendiri terbentuk akibat adanya proses magmatisme yang disebabkan oleh tumbukan antara lempeng samudra dengan lempeng samudra yang diikuti oleh

Charger sering juga disebut Converter adalah suatu rangkaian peralatan listrik yang digunakan untuk mengubah arus listrik bolak balik (Alternating Current, disingkat AC)

terlihat dimana keluarga sebagai tempat yang aman dan damai untuk istirahat dan belajar serta membantu penguasaan terhadap emosi, diantaranya menjaga hubungan