Pengantar Struktur Data & TREE
description
Transcript of Pengantar Struktur Data & TREE
![Page 1: Pengantar Struktur Data & TREE](https://reader036.fdocuments.in/reader036/viewer/2022081418/56813a27550346895da209f3/html5/thumbnails/1.jpg)
Pengantar Struktur Data& TREE
Diema HS, M.Kom
![Page 2: Pengantar Struktur Data & TREE](https://reader036.fdocuments.in/reader036/viewer/2022081418/56813a27550346895da209f3/html5/thumbnails/2.jpg)
Materi Struktur DataPertemuan Kompetensi Pengajar Tanggal
1 Pengantar Struktur Data Diema HS 10 April
2 Tree Fdiema HS 10 April
3 Array Fia M 17 April
4 Sorting Fia M 17 April
5 Searching Fia M 1 Mei
6 Queue Diema HS 8 Mei
9 Stack Diema HS 22 Mei
7 Hash Table Diema HS 29 Mei
8 Linked List Fia M 5 Juni
10 Double Linked List Fia M 12 Juni
11 Graph 1 Diema HS 19 Juni
12 Graph 2 Diema HS 26 Juni
![Page 3: Pengantar Struktur Data & TREE](https://reader036.fdocuments.in/reader036/viewer/2022081418/56813a27550346895da209f3/html5/thumbnails/3.jpg)
KRITERIA NILAI• Presensi/Kehadiran : 20 %• Tugas : 15%• UTS : 25%• UAS : 40%
![Page 4: Pengantar Struktur Data & TREE](https://reader036.fdocuments.in/reader036/viewer/2022081418/56813a27550346895da209f3/html5/thumbnails/4.jpg)
TATA TERTIB
?
![Page 5: Pengantar Struktur Data & TREE](https://reader036.fdocuments.in/reader036/viewer/2022081418/56813a27550346895da209f3/html5/thumbnails/5.jpg)
ReferensiPengantar Struktur Data (Suryadi H.S)Struktur Data (Bambang Hariyanto)Struktur Data Menggunakan Turbo
Pascal (Insap Santosa)Struktur Data di Planet Pascal (Dwi
Sanjaya)Bisa gunakan refernsi lain
![Page 6: Pengantar Struktur Data & TREE](https://reader036.fdocuments.in/reader036/viewer/2022081418/56813a27550346895da209f3/html5/thumbnails/6.jpg)
TOOLTurbo Pascal atauJava
![Page 7: Pengantar Struktur Data & TREE](https://reader036.fdocuments.in/reader036/viewer/2022081418/56813a27550346895da209f3/html5/thumbnails/7.jpg)
Pengantar Bagaimana cara mengatasi masalah implementasi
program dengan komputer?Pemahaman masalah secara
menyeluruh dan persiapan dataKeputusan operasi-operasi yang
dilakukan terhadap dataPenyimpanan data-data pada
memori sehingga tersimpan dan terstruktur secara logis, operasinya efisien
Pengambilan keputusan terhadap bahasa pemrograman mana yang paling cocok untuk jenis data yang ada
![Page 8: Pengantar Struktur Data & TREE](https://reader036.fdocuments.in/reader036/viewer/2022081418/56813a27550346895da209f3/html5/thumbnails/8.jpg)
Latar BelakangStruktur data menjadi dasar dalam langkah
awal perancangan program
Algoritma + Struktur Data = Program
![Page 9: Pengantar Struktur Data & TREE](https://reader036.fdocuments.in/reader036/viewer/2022081418/56813a27550346895da209f3/html5/thumbnails/9.jpg)
ManfaatPemakaian struktur data yang tepat di dalam proses pemrograman akan menghasilkan :
Algoritma yang lebih jelas dan tepat, sehingga menjadikan program secara keseluruhan lebih efisien dan sederhana.
![Page 10: Pengantar Struktur Data & TREE](https://reader036.fdocuments.in/reader036/viewer/2022081418/56813a27550346895da209f3/html5/thumbnails/10.jpg)
Membuat program lebih ringkas, lebih bersih, lebih elegan, lebih mudah dan lebih mampu berkinerja tinggi (karena efisien dalam penggunaan memori dan waktu)
Program berjalan membutuhkan waktu beberapa detik, di mana struktur yang lain mungkin akan membutuhkan ribuan detik.
![Page 11: Pengantar Struktur Data & TREE](https://reader036.fdocuments.in/reader036/viewer/2022081418/56813a27550346895da209f3/html5/thumbnails/11.jpg)
PengertianStruktur data adalah cara menyimpan atau
merepresentasikan data di dalam komputer agar bisa dipakai secara efisien
Data adalah representasi dari fakta dunia nyata
Fakta atau keterangan tentang kenyataan yang disimpan, direkam atau direpresentasikan dalam bentuk tulisan, suara, gambar, sinyal atau simbol
![Page 12: Pengantar Struktur Data & TREE](https://reader036.fdocuments.in/reader036/viewer/2022081418/56813a27550346895da209f3/html5/thumbnails/12.jpg)
Perbedaan Tipe Data, Obyek Data & Struktur Data (1)Tipe data adalah jenis data yang
mampu ditangani oleh suatu bahasa pemrograman pada komputer.
Tiap-tiap bahasa pemrograman memiliki tipe data yang memungkinkan: Deklarasi terhadap variabel tipe data
tersebutMenyediakan kumpulan operasi yang
mungkin terhadap variabel bertipe data tersebut
Jenis obyek data yang mungkinContoh tipe data di C? Java? Pascal? .NET?
![Page 13: Pengantar Struktur Data & TREE](https://reader036.fdocuments.in/reader036/viewer/2022081418/56813a27550346895da209f3/html5/thumbnails/13.jpg)
Obyek Data adalah kumpulan elemen yang mungkin untuk suatu tipe data tertentu. Mis: integer mengacu pada obyek data -32768
s/d 32767, byte 0 s/d 255, string adalah kumpulan karakter maks 255 huruf
Struktur Data adalah cara penyimpanan dan pengorganisasian data-data pada memori komputer maupun file secara efektif sehingga dapat digunakan secara efisien, termasuk operasi-operasi di dalamnya.
![Page 14: Pengantar Struktur Data & TREE](https://reader036.fdocuments.in/reader036/viewer/2022081418/56813a27550346895da209f3/html5/thumbnails/14.jpg)
Aktivitas Struktur DataDi dalam struktur data kita
berhubungan dengan 2 aktivitas:Mendeskripsikan kumpulan obyek data yang
sah sesuai dengan tipe data yang adaMenunjukkan mekanisme kerja operasi-
operasinyaContoh: integer (-32768 s/d 32767) dan jenis operasi
yang diperbolehkan adalah +, -, *, /, mod, ceil, floor, <, >, != dsb.
Struktur data = obyek data + [operasi manipulasi data]
![Page 15: Pengantar Struktur Data & TREE](https://reader036.fdocuments.in/reader036/viewer/2022081418/56813a27550346895da209f3/html5/thumbnails/15.jpg)
Hubungan SD dan AlgoritmaDengan pemilihan struktur data yang
baik, maka problem yang kompleks dapat diselesaikan sehingga algoritma dapat digunakan secara efisien, operasi-operasi penting dapat dieksekusi dengan sumber daya yang lebih kecil, memori lebih kecil, dan waktu eksekusi yang lebih cepat.
Tidak semua struktur data baik dan sesuai. Contoh untuk problem data bank: pengupdate-an harus cepat, sedangkan penambahan/penghapusan data boleh lebih lambat.
![Page 16: Pengantar Struktur Data & TREE](https://reader036.fdocuments.in/reader036/viewer/2022081418/56813a27550346895da209f3/html5/thumbnails/16.jpg)
Ciri Algoritma
Ciri algoritma yang baik menurut Donald E.Knuth:Input: ada minimal 0 input atau lebihOuput: ada minimal 1 output atau lebihDefinite: ada kejelasan apa yang dilakukanEfective: langkah yang dikerjakan harus
efektifTerminate: langkah harus dapat berhenti
(stop) secara jelas
![Page 17: Pengantar Struktur Data & TREE](https://reader036.fdocuments.in/reader036/viewer/2022081418/56813a27550346895da209f3/html5/thumbnails/17.jpg)
Tipe Data StandarTipe data standar merupakan tipe data
yang tersedia pada kebanyakan komputer sebagai built-in features.
Tipe data standar yaitu :- Integer- Real- Boolean
- Char
![Page 18: Pengantar Struktur Data & TREE](https://reader036.fdocuments.in/reader036/viewer/2022081418/56813a27550346895da209f3/html5/thumbnails/18.jpg)
IntegerTipe Integer merupakan subset dari
bilangan bulat yang ukurannya dapat bervariasi pada komputer-komputer yang berbeda-beda.
Semua Operasi pada data bertipe integer pasti berkaitan dengan hukum dasar operasi aritmatika, dan hasil komputasinya akan diinterupsi jika berada di luar jangkauan nilai yang ditentukan.
![Page 19: Pengantar Struktur Data & TREE](https://reader036.fdocuments.in/reader036/viewer/2022081418/56813a27550346895da209f3/html5/thumbnails/19.jpg)
Operator standar pada data bertipe integer adalah :- Penjumlahan (diberi notasi +)- Pengurangan (diberi notasi -) - Perkalian (diberi notasi *) - Pembagian (div).
Operasi pembagian (div) menghasilkan bilangan bulat, dengan mengabaikan sisa pembagian. Sedangkan untuk mendapatkan sisa hasil baginya, gunakan modulus (mod).
![Page 20: Pengantar Struktur Data & TREE](https://reader036.fdocuments.in/reader036/viewer/2022081418/56813a27550346895da209f3/html5/thumbnails/20.jpg)
RealTipe Real merupakan subset bilangan real
(bukan bilangan bulat)Proses aritmatika pada bilangan real
diperbolehkan untuk memberikan hasil yang tidak teliti sampai batas pembulatan kesalahan pada jumlah digit tertentu (jumlah digit di belakang koma). Inilah perbedaan mendasar dari tipe data Integer dengan Real dalam hampir semua bahasa pemrograman.
![Page 21: Pengantar Struktur Data & TREE](https://reader036.fdocuments.in/reader036/viewer/2022081418/56813a27550346895da209f3/html5/thumbnails/21.jpg)
Operator standar pada data bertipe Real adalah :- Penjumlahan (diberi notasi +)- Pengurangan (diberi notasi -) - Perkalian (diberi notasi *) - Pembagian (diberi notasi slash (/)) untuk membedakannya dengan pembagian bulat (div).
![Page 22: Pengantar Struktur Data & TREE](https://reader036.fdocuments.in/reader036/viewer/2022081418/56813a27550346895da209f3/html5/thumbnails/22.jpg)
BooleanTipe Boolean adalah tipe data logika yang
memiliki dua nilai yaitu true dan false.Operator Boolean adalah :
- Konjungsi atau and (diberi notasi ^)- Union atau or (diberi notasi ν)- Negasi atau not (diberi notasi ¬)
![Page 23: Pengantar Struktur Data & TREE](https://reader036.fdocuments.in/reader036/viewer/2022081418/56813a27550346895da209f3/html5/thumbnails/23.jpg)
CharTipe Char merupakan himpunan karakter
yang dapat dicetakHimpunan karakter yang didefinisikan oleh
ISO (International Standard Organization) yang paling banyak digunakan adalah karakter ASCII (American Standard Code for Information Interchange)
ASCII terdiri dari 95 karakter yang dapat dicetak (dan karakter grafik), dan 33 karakter kendali, yang digunakan terutama untuk pengiriman data dan untuk mengendalikan perangkat pencetakan.
![Page 24: Pengantar Struktur Data & TREE](https://reader036.fdocuments.in/reader036/viewer/2022081418/56813a27550346895da209f3/html5/thumbnails/24.jpg)
Tipe Char terdiri atas 26 huruf Latin, 10 angka Arab, dan sejumlah karakter grafik, seperti tanda seru
Karakter dapat berisi karakter kosong yang digunakan sebagai pemisah (spasi)
Karakter kosong (blank) diberi notasi □.
![Page 25: Pengantar Struktur Data & TREE](https://reader036.fdocuments.in/reader036/viewer/2022081418/56813a27550346895da209f3/html5/thumbnails/25.jpg)
Bahasan Struktur DataStruktur Data, meliputi :
a. Struktur data dasar/sederhana, yaitu array, record/struct dan himpunan
b. Struktur data lanjut/majemuk, yang terdiri dari : - Linier : Stack, Queue, serta List dan Multilist- Non Linier : Pohon Biner dan Graph
![Page 26: Pengantar Struktur Data & TREE](https://reader036.fdocuments.in/reader036/viewer/2022081418/56813a27550346895da209f3/html5/thumbnails/26.jpg)
Implementasi Pengurutan dengan Array
Misal : - Bubblesort- Quicksort- Shellsort, dll
RekursifMisal :- Fungsi Faktorial n!, dll
![Page 27: Pengantar Struktur Data & TREE](https://reader036.fdocuments.in/reader036/viewer/2022081418/56813a27550346895da209f3/html5/thumbnails/27.jpg)
TREEDEFINISI :struktur data tak linier yang mempunyai sifat-sifat dan ciri-ciri khusus. Struktur ini biasanya digunakan untuk menggambarkan hubungan yang bersifat hirarkis antara lemen-elemen yang ada.
![Page 28: Pengantar Struktur Data & TREE](https://reader036.fdocuments.in/reader036/viewer/2022081418/56813a27550346895da209f3/html5/thumbnails/28.jpg)
Pohon Biner (Binary Tree) • Didefinisikan sebagai suatu kumpulan simpul
yang mungkin kosong atau mempunyai akar dan dua sub pohon yang saling terpisah yang disebut dengan subpohon kiri (left subtree) dan sub pohon kanan (right subtree). Sub pohon juga disebut dengan cabang.
• Karakteristik yang dimiliki oleh pohon biner adalah bahwa setiap simpul paling banyak hanya mempunyai dua buah anak. Dengan kata lain, derajat tertinggi dari setiap simpul dalam pohon adalah dua. Karakteristik yang lain adalah pohon biner dimungkinkan tidak mempunyai simpul.
![Page 29: Pengantar Struktur Data & TREE](https://reader036.fdocuments.in/reader036/viewer/2022081418/56813a27550346895da209f3/html5/thumbnails/29.jpg)
Implementasi TreeContoh penggunaan struktur pohon :
Silsilah keluarga Parse Tree (pada compiler)Struktur OrganisasiPertandingan
![Page 30: Pengantar Struktur Data & TREE](https://reader036.fdocuments.in/reader036/viewer/2022081418/56813a27550346895da209f3/html5/thumbnails/30.jpg)
Contoh Tree Silsilah Keluarga
![Page 31: Pengantar Struktur Data & TREE](https://reader036.fdocuments.in/reader036/viewer/2022081418/56813a27550346895da209f3/html5/thumbnails/31.jpg)
Tree pada Parse
![Page 32: Pengantar Struktur Data & TREE](https://reader036.fdocuments.in/reader036/viewer/2022081418/56813a27550346895da209f3/html5/thumbnails/32.jpg)
Mendeklarasikan Struktur Pohon BinerSetiap simpul pada pohon terdiri 2
komponen utama:1. data2. Pointer yang menunjuk ke anak
Pointer anak ada 2 macam, yaitu:1. Pointer yang menunjuk ke anak kiri2. pointer yang menunjuk ke anak kanan
![Page 33: Pengantar Struktur Data & TREE](https://reader036.fdocuments.in/reader036/viewer/2022081418/56813a27550346895da209f3/html5/thumbnails/33.jpg)
3 standar dalam menelusuri binary treePreorder (Node-Left-Right [NLR]) Proses Root Telusuri subtree kiri (Left) secara preeorder Telusuri subtree kanan (right) secara preorderInorder (Left-Node-Right [LNR])
Telusuri subtree kiri (Left) secara inorderProses RootTelusuri subtree kanan (right) secara inorder
Postorder (Left-Right-Node [LRN])Telusuri subtree kiri (Left) secara postorderTelusuri subtree kanan (right) secara postorderProses Root
![Page 34: Pengantar Struktur Data & TREE](https://reader036.fdocuments.in/reader036/viewer/2022081418/56813a27550346895da209f3/html5/thumbnails/34.jpg)
Contoh
![Page 35: Pengantar Struktur Data & TREE](https://reader036.fdocuments.in/reader036/viewer/2022081418/56813a27550346895da209f3/html5/thumbnails/35.jpg)
LatihanJika diketahui inorder =
EACKFHDBG dan preorder = FAEKCDHGB gambarkan binary treenya dan tentukan postordernya !
![Page 36: Pengantar Struktur Data & TREE](https://reader036.fdocuments.in/reader036/viewer/2022081418/56813a27550346895da209f3/html5/thumbnails/36.jpg)
TERIMA KASIH