Konsep Pohon (Tree) Binary Tree Penyajian Tree dengan Array Penyajian Tree dengan Linked List Metode Traversal (Kunjungan Node pada Tree)

dokumen-dokumen yang mirip
Silsilah keluarga Hasil pertandingan yang berbentuk turnamen Struktur organisasi dari sebuah perusahaan

BAB VII Tujuan 7.1 Deskripsi dari Binary Tree

Tenia Wahyuningrum, S.Kom. MT Sisilia Thya Safitri, S.T.,M.T.

BAB IV POHON. Diktat Algoritma dan Struktur Data 2

Silsilah keluarga Hasil pertandingan yang berbentuk turnamen Struktur organisasi dari sebuah perusahaan. B.1 Pohon Biner (Binary Tree)

6. TREE / BINARY TREE

BAB IX TREE (POHON) ISTILAH DASAR

TREE STRUCTURE (Struktur Pohon)

MODUL PRAKTIKUM STRUKTUR DATA

Tree (Struktur Data) Nisa ul Hafidhoh, MT

Pohon dan Pohon Biner

SATUAN ACARA PERKULIAHAN (SAP) Mata Kuliah : Struktur Data Kode : TIS3213 Semester : III Waktu : 2 x 3 x 50 Menit Pertemuan : 10 & 11

Tree. Perhatikan pula contoh tree di bawah ini : Level. Level 2. Level 3. Level 4. Level 5

ALGORITMA DAN STRUKTUR DATA

Binary Tree kosong Gambar 1. Binary Tree dalam kondisi kosong

Politeknik Elektronika Negeri Surabaya

Algoritma dan Struktur Data. Binary Tree & Binary Search Tree (BST)

Ringkasan mengenai Tree (Dari beberapa referensi lain) Nina Valentika

TREE ALGORITMA & STRUKTUR DATA. Materi ASD Fakultas Teknik Elektro & Komputer UKSW ( Download Dari :

Buku Ajar Struktur Data

KUM 6 IMPLEMENTASI BINARY TREE

A. TUJUAN PEMBELAJARAN

Pertemuan 9 STRUKTUR POHON & KUNJUNGAN POHON BINER

Pohon Biner (Bagian 1)

Praktikum 4. Tumpukan (Stack)

PERTEMUAN VI POINTER 6.1 Tujuan Praktikum 6.2 Teori Penunjang Pointer

B C D E F G H I J K L M N O P Q R S T. Tinaliah, S.Kom POHON BINER

Binary Tree. Binary Tree dapat digambarkan berdasarkan kondisinya, sebagai berikut: Pointer ke akar (root) dari tree

Soal Pendahuluan Modul 3

Praktikum 2. Senarai Berantai (Linked List) POKOK BAHASAN: TUJUAN BELAJAR: DASAR TEORI:

Praktikum 3. Konsep double linked list Struktur double linked list Implementasi double linked list dalam Bahasa C

Praktikum 1. Suatu array berdimensi satu dideklarasikan dalam bentuk umum berupa : tipe_data nama_var[ukuran];

Binary Search Tree (BST)

Algoritma dan Struktur Data. Tree

STRUKTUR POHON & KUNJUNGAN POHON BINER

KUNJUNGAN PADA POHON BINER

Struktur Data & Algoritma

INFIX, POSTFIX, dan PREFIX Bambang Wahyudi

Implementasi Skema Pohon Biner yang Persistent dalam Pemrograman Fungsional

Binary Tree. Binary Tree dapat digambarkan berdasarkan kondisinya, sebagai berikut: Pointer ke akar (root) dari tree

Senarai berantai. linked list. Pertemuan keenam Struktur data st3telkom.ac.id. by : tenia wahyuningrum & Sisilia Thya Safitri

IT234 Algoritma dan Struktur Data. Tree

STRUKTUR DATA Pertemuan 1 s.d 8

A. TUJUAN PEMBELAJARAN

Praktikum 6. Konsep Rekursi Perbandingan Perulangan biasa dan Rekursi Implementasi Rekursi dalam Bahasa C

Algoritma Pemrograman & Struktur Data

STRUKTUR POHON (TREE) Pohon atau Tree adalah salah satu bentuk Graph terhubung yang tidak mengandung sirkuit.

Linked List 6.3 & 7.3 NESTED LOOP

2. Mahasiswa dapat membuat dan menggunakan array dan linked list dalam suatu kasus.

Pohon (TREE) Matematika Deskrit. Hasanuddin Sirait, MT 1

Kode MK/ Pemrograman Terstruktur 2. ZK Abdurahman Baizal. KK Algoritma dan Komputasi. Tree (Pohon)

JURUSAN SISTEM INFORMASI SEKOLAH TINGGI ILMU KOMPUTER YOS SUDARSO PURWOKERTO 2014

JURUSAN SISTEM INFORMASI

Algoritma dan Struktur Data. Ramos Somya, S.Kom., M.Cs.

Matematika Diskret (Pohon) Instruktur : Ferry Wahyu Wibowo, S.Si., M.Cs.

Data Structure TREE & BINARY TREE. Chapter 5b. Dahlia Widhyaestoeti, S.Kom

Praktikum 7. Pengurutan (Sorting) Insertion Sort, Selection Sort POKOK BAHASAN: TUJUAN BELAJAR: DASAR TEORI:

STRUKTUR POHON (TREE) Pohon atau Tree adalah salah satu bentuk Graph terhubung yang tidak mengandung sirkuit.

STACK atau TUMPUKAN. Pertemuan 5 STACK (TUMPUKAN)

Pohon. Bahan Kuliah IF2120 Matematika Diskrit. Program Studi Teknik Informatika ITB. Rinaldi M/IF2120 Matdis 1

Penerapan BFS dan DFS dalam Garbage Collection

Pohon Biner Bagian 2 (Pohon Seimbang, Pohon Biner Terurut, Pembangunan Pohon Biner dari Pita Karakter/String)

DEFINISI. Pohon adalah graf tak-berarah terhubung yang tidak mengandung sirkuit. pohon pohon bukan pohon bukan pohon 2

Bab 1 Pengantar Struktur Data

MODUL PRAKTIKUM STRUKTUR DATA. Dosen Pengampu M.Bahrul Ulum, S.Kom., M.Kom. Asisten Lab Mia Kastina PROGRAM STUDI TEKNIK INFORMATIKA

TUGAS MAKALAH INDIVIDUAL. Mata Kuliah : Matematika Diskrit / IF2153 Nama : Dwitiyo Abhirama NIM :

04. Single Linked List

ANALISIS ALGORITMA PEMBANGUN POHON EKSPRESI DARI NOTASI PREFIKS DAN POSTFIKS

Praktikum 5. Antrian (Queue)

Algoritma dan Struktur Data. Ramos Somya

LIST. Dewi Sartika, M.Kom

Algoritma Pemrograman & Struktur Data

BAB VII POHON BINAR POHON

Pertemuan 9 STRUKTUR POHON (TREE) Sifat utama Pohon Berakar ISTILAH-ISTILAH DASAR

A B C E F G K Contoh Tree

Definisi. Pohon adalah graf tak-berarah, terhubung, dan tidak mengandung sirkuit. pohon pohon bukan pohon bukan pohon (ada sikuit) (tdk terhubung)

POHON CARI BINER (Binary Search Tree)

KLASIFIKASI BINARY TREE

Termilogi Pada Pohon Berakar 10 Pohon Berakar Terurut

Membuat Binary Search Tree Menggunakan STL Vector C++

STACK (TUMPUKAN) Tumpukan uang koin Tumpukan kotak Tumpukan Buku. Gambar 1. Macam-macam tumpukan

SENARAI BERANTAI (LINK LIST)

Definisi. Pohon adalah graf tak-berarah terhubung yang tidak mengandung sirkuit. pohon pohon bukan pohon bukan pohon

13/12/2013. Binary Tree. Contoh Tree

Penambahan Simpul (Node)

Pemrograman Algoritma Dan Struktur Data

Mata Kuliah : Struktur Data Semester : Genap Kode Mata Kuliah : 307 Waktu : 180 Menit Bobot : 4 sks. Jurusan : MI

Algoritma dan Struktur Data

STRUKTUR DATA Pertemuan 1 s.d 8

GARIS-GARIS BESAR PROGRAM PENGAJARAN (GBPP)

STRUKTUR DATA. By : Sri Rezeki Candra Nursari 2 SKS

ARNA FARIZA YULIANA SETIOWATI

Kode : IF2121 NIM :... Matakuliah : Algoritma dan Struktur Data Nama :... Hari, Tanggal : Senin, 13 November 2017 Waktu : 150 Menit

ALGORITMA DAN STRUKTUR DATA

Politeknik Elektronika Negeri Surabaya

MODUL PRAKTIKUM STRUKTUR DATA Modul ke-1, Pertemuan ke-1 Nama file : P01-XXX (XXX adalah 3 digit terakhir NIM) Deskripsi: Senarai, Traversal

Tumpukan(Stack)!! " # $ %&' $ %& ( ) ( * +, / ( (

BAB IV Antrian(Queue)

Algoritma dan Struktur Data. Linked List

Praktikum 9. Pengurutan (Sorting) Quick Sort, Merge Sort

Transkripsi:

Praktikum 10 Pohon (Tree) POKOK AASAN: Konsep Pohon (Tree) inary Tree Penyajian Tree dengan Array Penyajian Tree dengan Linked List Metode Traversal (Kunjungan Node pada Tree) TUJUAN LAJAR: Setelah melakukan praktikum dalam bab ini, mahasiswa diharapkan mampu: Mampu membuat struktur pohon (tree) dengan menggunakan array. Mampu membuat flowchart pembentukan tree dengan menggunakan struktur data list. Mampu mengimplementasikan tree sesuai flowchart yang sudah dibuat. ASAR TOR: Struktur pohon (tree) biasanya digunakan untuk menggambarkan hubungan yang bersifat hirarkis antara elemen-elemen yang ada. ontoh penggunaan struktur pohon : Silsilah keluarga asil pertandingan yang berbentuk turnamen Struktur organisasi dari sebuah perusahaan 10.1 POON NR (NARY TR) Sebuah binary tree adalah sebuah pengorganisasian secara hirarki dari beberapa buah simpul, dimana masing-masing simpul tidak mempunyai anak lebih dari 2. Simpul 100

PRAKTKUM 10 POON (TR) 101 yang berada di bawah sebuah simpul dinamakan anak dari simpul tersebut. Simpul yang berada di atas sebuah simpul dinamakan induk dari simpul tersebut. Masing-masing simpul dalam binary tree terdiri dari tiga bagian yaitu sebuah data dan dua buah pointer yang dinamakan pointer kiri dan kanan. Simpul juga mempunyai sibling, descendants, dan ancestors. Sibling dari sebuah simpul adalah anak lain dari induk simpul tersebut. escendants dari sebuah simpul adalah semua simpul-simpul merupakan cabang (berada di bawah) simpul tersebut. Anchestors dari sebuah simpul adalah semua simpul yang berada di atas antara simpul tersebut dengan root. Penampilan dari sebuah tree akan ditampilkan dengan berat dari tree tersebut, angka yang menunjukkan jumlah level yang ada di dalamnya. Tingkat suatu simpul ditentukan dengan pertama kali menentukan akar sebagai bertingkat 1. Jika suatu simpul dinyatakan sebagai tingkat N, maka simpul-simpul yang merupakan anaknya akan berada pada tingkatan N + 1. Tinggi atau kedalaman dari suatu pohon adalah tingkat maksimum dari simpul dalam pohon dikurangi dengan 1. Selain tingkat, juga dikenal istilah derajad (degree) dari suatu simpul. erajad suatu simpul dinyatakan sebagai banyaknya anak atau turunan dari simpul tersebut. Level 0 44 Level 1 39 67 Level 2 20 42 60 75 Level 3 03 25 59 65 72 89 ambar 10.1 lustrasi Sebuah Pohon iner (inary Tree) Keterangan: simpul akar induk dari 60 & ancestor dari 03 & anak dari 67 simpul daun descendant dari sibling cabang

PRAKTKUM 10 POON (TR) 102 10.2 KLARAS POON 10.2.1 PNYAJAN NAN ARRAY Pohon biner dapat disajikan secara berurutan dengan menggunakan array atau file. Untuk itu diperlukan adanya satu aturan tertentu dengan mengingat definisi pohon biner. Pohon yang mempunyai kedalaman N mempunyai simpul maksimum 2 (N-1), dengan N adalah kedalaman simpul. Sebagai contoh pohon dengan kedalaman 4, mempunyai simpul secara keseluruhan (dari tingkat 1 sampai dengan 4) adalah 15 buah. engan demikian, penyajian pohon biner secara berurutan dalam sebuah array adalah sebagai berikut. Akar pohon (simpul tingkat pertama) selalu menempati elemen pertama array. Simpul-simpul tingkat 2 diletakkan sebagai elemen ke-2 dan 3. Simpulsimpul pada tingkat 3 diletakkan sebagai elemen ke-4, 5, 6, 7. Simpul-simpul tingkat 4 diletakkan sebagai elemen ke-8 sampai ke-15. A J K L M N O 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 A J K L M N O akar (tk.1) tk. 2 tk. 3 tk. 4 ambar 10.2 lustrasi Penyajian Tree dengan Array ara penyimpanan seperti ini hanya baik jika pohon binernya berupa pohon biner lengkap. Jika pohon binernya tidak lenkap, pemakaian memori tidak efisien.

PRAKTKUM 10 POON (TR) 103 A 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 A ambar 10.3 ontoh Penyajian Pohon iner Menggunakan Array yang Tidak fisien 10.2.2 PNYAJAN NAN LNK LST Simpul dalam pohon biner dapat disajikan dengan list sebagai berikut: Kiri nfo Kanan eklarasi struktur pohon : typedef char Typenfo; typedef struct Simpul *Tree; struct Simpul Typenfo nfo; tree Kiri, /* cabang kiri */ tree Kanan; /* cabang kanan */ ; 10.3 PMNTUKAN POON NR iketahui suatu persamaan ( A + ) * ( ( ) + )

PRAKTKUM 10 POON (TR) 104 Maka pembentukan pohon biner dapat dilihat pada table di bawah ini : Karakter yang dibaca Tumpukan operator Tumpukan operand Pohon biner yang terbentuk ( ( A ( A + (+ A (+ A ) + + A * * + ( *( + ( *(( + *(( + - *((- + *((- + ) (* +- + - A + *(+ +- *(+ +- ) * ++ + + - A 10.4 MTO TRAVRSAL Proses traversing dari sebuah binary tree artinya melakukan kunjungan pada setiap simpul pada suatu pohon biner tepat satu kali. Kunjungan dapat dilakukan dengan tiga cara, yaitu kunjungan secara preorder, inorder, dan secara postorder. Selain itu, berdasarkan kedudukan setiap simpul dalam pohon, juga bisa dilakukan kunjungan

PRAKTKUM 10 POON (TR) 105 secara levelorder. Ketiga macam kunjungan yang pertama bisa dilaksanakan secara rekursif. 10.4.1 KUNJUNAN PRORR Kunjungan preorder dilakukan dengan mencetak simpul yang dikunjungi, kunjungan cabang kiri, dan kunjungan cabang kanan. Untuk lebih jelasnya perhatikan pohon biner pada gambar 11.4. A ambar 10.4 ontoh Pohon iner Kunjungan preorder, juga disebut dengan depth first order, menggunakan urutan: - etak isi simpul yang dikunjungi - Kunjungi cabang kiri - Kunjungi cabang kanan ari gambar 10.5 nampak pelacakan kunjungan PreOrder. asil dari pelacakan kunjungan secara PreOrder tersebut akan didapatkan hasil A.

PRAKTKUM 10 POON (TR) 106 etak Simpul A etak Simpul etak Simpul PreOrder etak Simpul etak Simpul etak Simpul etak Simpul etak Simpul etak Simpul ambar 10.5 Kunjungan PreOrder dari pohon biner pada ambar 10.4 10.4.2 KUNJUNAN NORR Kunjungan secara inorder, juga sering disebut dengan symmetric order, menggunakan urutan: - Kunjungi cabang kiri - etak isi simpul yang dikunjungi - Kunjungi cabang kanan ari gambar 10.6 nampak pelacakan kunjungan norder. asil dari pelacakan kunjungan secara norder tersebut akan didapatkan hasil A.

PRAKTKUM 10 POON (TR) 107 etak Simpul etak Simpul norder etak Simpul A etak Simpul etak Simpul etak Simpul etak Simpul etak Simpul etak Simpul ambar 10.6 Kunjungan norder dari pohon biner pada ambar 10.4 10.4.3 KUNJUNAN POSTORR Kunjungan secara postorder menggunakan urutan: - Kunjungi cabang kiri - Kunjungi cabang kanan - etak isi simpul yang dikunjungi ari gambar 10.7 nampak pelacakan kunjungan PostOrder. asil dari pelacakan kunjungan secara PostOrder tersebut akan didapatkan hasil A.

PRAKTKUM 10 POON (TR) 108 etak Simpul etak Simpul etak Simpul etak Simpul etak Simpul etak Simpul norder etak Simpul etak Simpul etak Simpul A ambar 10.7 Kunjungan PostOrder dari pohon biner pada ambar 10.4 TUAS PNAULUAN Pada dasarnya pembentukan pohon (tree) menggunakan implementasi tumpukan (stack) dengan double linked list. uatlah flowchart untuk pembentukan pohon biner untuk suatu persamaan yang diinputkan (asumsi : persamaan yang diinputkan harus selalu benar). Lihat pembentukan tree pada contoh table diatas dengan ketentuan sebagai berikut : uatlah dua buah stack, tumpukan operator dan tumpukan operand. ek karakter yang diinputkan :

PRAKTKUM 10 POON (TR) 109 1. ila karakter yang dibaca berupa operator ( +, -, *, / ) dan tanda ( maka masukkan karakter tersebut ke tumpukan operator. 2. ila karakter yang dibaca berupa operand A.. Z maka masukkan ke tumpukan operand. 3. ila karakter yang dibaca adalah tanda ( lakukan hal berikut : o Pop tumpukan operator sampai dengan tanda ) dan tandai operator yang berada diantaranya ( +, -, *, / ). o entuklah sebuah Simpul dengan nfo adalah karakter operator tersebut dengan Kiri dan Kanan bernilai null. o Pada tumpukan operand, pop 2 karakter teratas. Apabila karakter pertama berupa karakter A.. Z bentuk Simpul dengan nfo adalah karakter operand dan pointer Kiri dan Kanan bernilai null. Apabila berupa operator, bentuk pohon dengan menunjuk pointer Kiri dari Simpul operator ke Simpul karakter pertama. ek untuk karakter kedua dengan cara yang sama. Apabila karakter kedua berupa operator, bentuk pohon dengan menunjuk pointer Kanan dari Simpul operator ke Simpul karakter kedua. o Kemudian karakter operator hasil pop yang sudah ditandai masukkan ke tumpukan operand. o Ulangi langkah 3 sampai pembentukan pohon selesai. 4. asil output berupa penelusuran linked list dari pohon teratas secara preorder. PROAAN 1. uatlah workspace untuk praktikum Struktur ata dengan menggunakan Visual ++. 2. uatlah project untuk praktikum KSPULU. 3. obalah untuk masing-masing percobaan di bawah ini. 4. mplementasikan flowchart yang anda buat pada Tugas Pendahuluan.

PRAKTKUM 10 POON (TR) 110 Percobaan 1 : Membangun Tree aru #include <stdio.h> #include <stdlib.h> #include <string.h> typedef struct tree *pohon; /* eklarasi dari tree dengan menggunakan linked list */ struct tree char info; pohon kiri; pohon kanan; ; /* ungsi untuk membuat simpul yang pertama */ pohon baru(char hrf) pohon br; br=(pohon)malloc(sizeof(struct tree)); br->info=hrf; br->kiri=null; br->kanan=null; return (br); /* ungsi untuk menyisipkan simpul pada tree yang sudah dibangun */ void sisip (pohon ph, pohon sp) pohon P,Q; P = ph; Q = ph; while((sp->info!= ph->info)&&(q!=null)) P = Q; if (sp->info < P->info) Q = P->kiri; else Q = P->kanan; if(sp->info == P->info) printf("sudah ada"); else if(sp->info < P->info) P->kiri=sp; else P->kanan=sp;

PRAKTKUM 10 POON (TR) 111 /* ungsi-fungsi untuk metode traversal secara rekursif */ void preorder(pohon ph) if (ph!= NULL) printf("%c ", ph->info); preorder(ph->kiri); preorder(ph->kanan); void inorder(pohon ph) if (ph!= NULL) inorder(ph->kiri); printf("%c ", ph->info); inorder(ph->kanan); void postorder(pohon ph) if (ph!= NULL) postorder(ph->kiri); postorder(ph->kanan); printf("%c ", ph->info); main() int j=0;char input,jawab[2]; pohon br, ssp; while(1) printf("ketikkan huruf :");scanf("%c",&input); fflush(stdin); if (j==0) br = baru(input); else ssp = baru(input); sisip(br,ssp); printf("ada data lagi(y/t):"); scanf("%s",&jawab); fflush(stdin);

PRAKTKUM 10 POON (TR) 112 if((strcmp(jawab,"y")==0) (strcmp(jawab,"y")==0)) j++;continue; else if ((strcmp(jawab,"t")==0) (strcmp(jawab,"t")==0)) break; preorder(br); printf("\n"); inorder(br); printf("\n"); postorder(br); LATAN 1. mplementasikan tree untuk persamaan matematika seperti yang ada dalam asar Teori, yang mana flowchart-nya sudah anda buat dalam Tugas Pendahuluan, dengan langkah sebagai berikut: a) uatlah struktur data stack untuk tumpukan operator. b) uatlah struktur data stack untuk tumpukan operand. c) uatlah struktur data tree seperti pada dasar teori. d) Pada program utama inputkan persamaan yang akan dibentuk tree nya : i) POON NR UNTUK PRSAMAAN MATMATKA ii) nputkan Persamaan : _ e) uatlah prosedur nitializestack untuk inisialisasi tumpukan operator dan tumpukan operand. f) uatlah prosedur nitializetree untuk inisialisasi pohon yang dibentuk. g) uatlah fungsi mpty untuk memeriksa apakah stack dalam keadaan kosong. h) uatlah fungsi ull untuk memeriksa apakah stack dalam keadaan penuh. i) uatlah prosedur Tree_Process untuk pembentukan tree. j) uatlah prosedur Tree_Preorder untuk menampilkan tree secara preorder. k) uatlah prosedur Tree_Postorder untuk menampilkan tree secara postorder. 2. uatlah fungsi yang menampilkan isi dari tree dengan metode traversal tanpa proses rekursif.