• Tidak ada hasil yang ditemukan

Struktur Data dan Algoritma 12 2

N/A
N/A
Budsoy Koh

Academic year: 2023

Membagikan "Struktur Data dan Algoritma 12 2"

Copied!
29
0
0

Teks penuh

(1)

Struktur Data dan Algoritma

Pertemuan/Pekan 12

Rahmawan Bagus Trianto, M.Kom

(2)

Struktur Data dan Algoritma

Dosen : Rahmawan Bagus Trianto, M.Kom

SKS : 4 SKS (2 TEORI, 2 PRAKTIKUM)

Kontak : 087746310727 (WA, Telegram)

Email : [email protected]

(3)

Silabus Pembelajaran

1. Kontrak Kuliah, Review Materi Dasar Pemrograman (Array, Prosedur, Fungsi, Pointer) 2. Konsep Dasar Struktur Data dan Algoritma

3. ADT (Abstract Data Type) 4. Linked List

5. Single Linked List 6. Double Linked List 7. Circular Linked List 8. UTS

9. Stack 10. Queue

11. Rekursif pada Fungsi dan Prosedur 12. Tree

13. Graph

14. Sorting dan Searching 15. Hashing

16. UAS

(4)

Deskripsi

Mata Kuliah ini membahas tentang struktur data dan algoritma yang

digunakan pada program komputer. Materi mencakup: ADT (Abstract Data Type), Pointer, Linked List, Stack, Queue, Fungsi/Prosedur Rekursif, Tree, Graph, Sorting, Searching, Hashing. Setelah mengikuti matakuliah ini

mahasiswa diharapkan menyelesaikan masalah pemrograman dengan algoritma yang tepat dengan struktur data yang benar.

(5)

Learning Outcomes

 Pada akhir pertemuan ini mahasiswa diharapkan mampu:

Memahami konsep tree

Memahami dan menjelaskan fungsi dan contoh penerapan tree

(6)

Komponen Penilaian

 Kehadiran : 5 %

 Tugas Mandiri : 25 %

 Tugas Kelompok : 20 %

 Kuis : 10 %

 Ujian Tengah Semester : 20 %

 Ujian Akhir Semester : 20 %

 Memakai pakaian rapi, tidak boleh kaos oblong, sandal,

sandal jepit

(7)

Outline Materi

 Preview Struktur Data Linier

 Definisi Struktur Tree

 Contoh penggunaan tree

 Komponen Tree

 Binary Tree

 Pembentukan Binary Tree

 Struktur Dasar Binary Tree

(8)

Struktur Data Linier

Elemen data yg disusun dengan cara berurutan, setiap elemen saling berdekatan satu sama lain.

Contoh:

Array =>

Linked List =>

Queue =>

Stack => out in

3 1 2 5 6

5 (masuk/belakang) 4 3 2 1 (depan/keluar)

1 5

2 4

3 3

4 2

5 1

(9)

Struktur Tree

Struktur Tree => sekumpulan node yang saling terhubung secara hirarki (one to many), non-linier

Struktur Tree dapat diterapkan untuk memecahkan permasalahan menggunakan konsep seperti pohon, di antaranya:

Pohon keputusan (decision tree)

Pohon keluarga dan klasifikasi dalam dunia botani

dll

(10)

Tree (Lanj)

Tree => struktur data yang terdiri dari entitas (node) yang saling berkaitan melalui sebuah penyambung (edge).

Node paling atas disebut dengan root.

(11)

Tree (Lanj)

Node yang berada pada posisi lebih tinggi disebut dengan parent, dan yang berada dibawahnya disebut children.

Node dengan posisi yang sama disebut sibling.

Node dengan posisi paling rendah disebut leaf.

1 adalah root

1 adalah parent dari 2 dan 3

2 dan 3 adalah children dari 1

2 adalah parent dari 4,5,6

4,5,6 adalah children dari 2

4,5 dan 6 adalah sibling

7 dan 8 adalah children dari 3

7 dan 8 adalah sibling

9 dan 10 adalah leaf

(12)

Tree (lanj)

Tree memiliki:

n buah node

n-1 buah edge

Pada gambar di samping:

10 buah node

9 buah edge

(13)

Tree (lanj)

Depth of Node: jumlah edge dari root ke node

Height of Node: jumlah edge terpanjang dari node ke leaf

Height of Tree: height of root node

Contoh:

Depth of Node 1 adalah 0

Height of node 1 adalah 3 (leaf= 9 dan 10)

Depth of node 4 adalah 2

Height of node 6 adalah 1

Dept of node 10 adalah 3

Height of node 10 adalah 0

Height of tree adalah 3

(14)

Binary Tree

Binary tree => tree dimana setiap node memiliki paling banyak 2 buah children

Children dari setiap node disebut left-child dan right-child

(15)

Binary Tree (lanj)

Complete Binary tree => semua level selain level terakhir pada tree terisi lengkap dan semua node sebelah kiri terisi terlebih dahulu

(16)

Binary Tree (lanj)

Perfect Binary tree => semua level pada tree terisi lengkap

Jumlah node maksimal pada Perfect Binary Tree dengan height n adalah 2n+1-1

Height dari perfect binary tree dengan n buah node adalah log2(n+1)-

1Misal: n=3, node maksimal dan height dari perfect binaru tree?

Node maksimal = 2n+1-1 = 2(3+1)-1

= 24-1 = 16-1 = 15 buah node

Height = log2(n+1)-1

=log2(15+1)-1

=log2 (16) – 1 = 4 – 1 = 3

(17)

Pembentukan Binary Tree

Binary tree => dibentuk dengan node yang memiliki Data dan dua buah pointer *Left dan *Right.

(18)

Struktur Dasar Binary Tree

Struktur data tree memiliki kesamaan dengan double linked list yang pernah dibahas pada pertemuan sebelumnya.

Hanya perbedaan penamaan saja.

Beberapa istilah pada binary tree:

Data: berisi informasi sebuah node pada tree

Left: berisi penunjuk alamat/pointer untuk menunjuk tree pada bagian kiri

Right: berisi penunjuk alamat/pointer untuk menunjuk tree pada bagian kanan

Pendeklarasian tree dapat menggunakan struct, seperti:

struct data{

int number;

struct data *left, *right;

}

(19)

Pembentukan Binary Tree

1) Menyiapkan node baru:

Alokasikan memori

Memasukkan informasi

Set pointer kiri dan kanan = NULL 2) Menyisipkan pada posisi yg tepat

Penelusuran => menentukan posisi yang tepat, info yg nilainya lebih besar dari parent akan ditelusuri di sebelah kanan, sebaliknya yg nilainya lebih kecil dari parent akan ditelusuri di sebelah kiri.

Penempatan => info yg nilainya lebih dari parent akan ditempatkan di sebelah kanan dan yg lebih kecil dari parent ditempatkan di sebelah kiri.

(20)

Binary Tree Traversal

Binary Tree traversal

Breadth first : level order

Depth first:

PreOrder

InOrder

postOrder

(21)

Binary Tree Traversal (lanj)

Level Order traversal

Mengunjungi setiap node dari level paling atas dan bergerak ke node sebelah kiri, kemudian dilanjutkan node sebelah kanan pada level di bawahnya.

(22)

Binary Tree Traversal (lanj)

PreOrder traversal

Mengunjungi node terbawah sampai mencapai setiap children node dengan urutan: Parent → Left Children → Right Children

(23)

Binary Tree Traversal (lanj)

InOrder traversal

Mengunjungi node terbawah sampai mencapai setiap children node dengan urutan: Left Children → Parent → Right Children

(24)

Binary Tree Traversal (lanj)

PostOrder traversal

Mengunjungi node terbawah sampai mencapai setiap children node dengan urutan: Left Children→ Right Children → Parent

(25)

Latihan Soal

1) Tentukan root dari masing-masing tree yang akan diberikan berikut.

2) Tentukan leaf untuk masing-masing tree.

3) Ubah dalam bentuk binary tree.

4) Tentukan height dan width dari masing-masing tree.

5) Bentuk dalam 3 aktifitas dalam binary tree:

PreOrder

InOrder

PostOrder

6) Gambar Tree untuk setiap perubahan dari aktifitas.

(26)

Latihan Soal (lanj)

Tree 1

A1 A2 A3

A5

A4 A6

(27)

Latihan Soal (lanj)

Tree 2

1 2

5

3 4

6 7

3

8 10

(28)

Referensi

1. Goodrich Michael T., Tamassia Roberto and Mount David M., Data Structure and Algorithms in C++ Second

Edition, John Wiley & Sons, Inc., 2011

2. Kernighan Brian W. and Dennis M. Ritchie, The C

Programming Language Second Edition, Precentile Hall, 1988

3. Mark Allen Weiss, Data Structures and Algorithm Analysis in C++ Fourth Edition, Pearson, 2013

4. https://repository.dinus.ac.id/docs/ajar/Tree.pdf

(29)

Terimakasih

Referensi

Dokumen terkait

Mahasiswa IT ini tidak mau menggunakan konsep Stack tapi inginnya pakai konsep binary search tree karena dia tahu bahwa algoritma ini lebih efisien lagi daripada konsep

Pada penelitian ini, digunakan metode algoritma Bubble Sort terhadap 2 buah model varian pengurutan data yaitu pengurutan data secara : Ascending bergerak dari Kiri ke

Berikut ini adalah Algoritma untuk menyisipkan ITEM ke dalam list, tepat sesudah simpul A, atau jika LOC = NULL, maka ITEM disisipkan sebagai simpul pertama dari list.. Misalkan