Pengantar Struktur Data TREE Diema HS M Kom

  • Slides: 36
Download presentation
Pengantar Struktur Data & TREE Diema HS, M. Kom

Pengantar Struktur Data & TREE Diema HS, M. Kom

Materi Struktur Data Pertemuan Kompetensi Pengajar Tanggal 1 Pengantar Struktur Data Diema HS 10

Materi Struktur Data Pertemuan 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

KRITERIA NILAI • • Presensi/Kehadiran : 20 % Tugas : 15% UTS : 25%

KRITERIA NILAI • • Presensi/Kehadiran : 20 % Tugas : 15% UTS : 25% UAS : 40%

TATA TERTIB ?

TATA TERTIB ?

Referensi l Pengantar Struktur Data (Suryadi H. S) l Struktur Data (Bambang Hariyanto) l

Referensi l Pengantar Struktur Data (Suryadi H. S) l Struktur Data (Bambang Hariyanto) l Struktur Data Menggunakan Turbo Pascal (Insap Santosa) l Struktur Data di Planet Pascal (Dwi Sanjaya) l Bisa gunakan refernsi lain

TOOL Turbo Pascal atau Java

TOOL Turbo Pascal atau Java

Pengantar l Bagaimana cara mengatasi masalah implementasi program dengan komputer? ØPemahaman masalah secara menyeluruh

Pengantar l Bagaimana cara mengatasi masalah implementasi program dengan komputer? ØPemahaman masalah secara menyeluruh dan persiapan data ØKeputusan operasi-operasi yang dilakukan terhadap data ØPenyimpanan 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

Latar Belakang Struktur data menjadi dasar dalam langkah awal perancangan program Algoritma + Struktur

Latar Belakang Struktur data menjadi dasar dalam langkah awal perancangan program Algoritma + Struktur Data = Program

Manfaat Ø Pemakaian struktur data yang tepat di dalam proses pemrograman akan menghasilkan :

Manfaat Ø Pemakaian 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.

Ø Membuat program lebih ringkas, lebih bersih, lebih elegan, lebih mudah dan lebih mampu

Ø 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.

Pengertian Struktur data adalah cara menyimpan atau merepresentasikan data di dalam komputer agar bisa

Pengertian Struktur 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

Perbedaan Tipe Data, Obyek Data & Struktur Data (1) Tipe data adalah jenis data

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 tersebut Menyediakan kumpulan operasi yang mungkin terhadap variabel bertipe data tersebut Jenis obyek data yang mungkin Contoh tipe data di C? Java? Pascal? . NET?

 Obyek Data adalah kumpulan elemen yang mungkin untuk suatu tipe data tertentu. Mis:

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.

Aktivitas Struktur Data Di dalam struktur data kita berhubungan dengan 2 aktivitas: Mendeskripsikan kumpulan

Aktivitas Struktur Data Di dalam struktur data kita berhubungan dengan 2 aktivitas: Mendeskripsikan kumpulan obyek data yang sah sesuai dengan tipe data yang ada Menunjukkan mekanisme kerja operasi-operasinya Contoh: integer (-32768 s/d 32767) dan jenis operasi yang diperbolehkan adalah +, -, *, /, mod, ceil, floor, <, >, != dsb. Struktur data = obyek data + [operasi manipulasi data]

Hubungan SD dan Algoritma Dengan pemilihan struktur data yang baik, maka problem yang kompleks

Hubungan SD dan Algoritma Dengan 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.

Ciri Algoritma Ciri algoritma yang baik menurut Donald E. Knuth: Input: ada minimal 0

Ciri Algoritma Ciri algoritma yang baik menurut Donald E. Knuth: Input: ada minimal 0 input atau lebih Ouput: ada minimal 1 output atau lebih Definite: ada kejelasan apa yang dilakukan Efective: langkah yang dikerjakan harus efektif Terminate: langkah harus dapat berhenti (stop) secara jelas

Tipe Data Standar Tipe data standar merupakan tipe data yang tersedia pada kebanyakan komputer

Tipe Data Standar Tipe data standar merupakan tipe data yang tersedia pada kebanyakan komputer sebagai built-in features. Tipe data standar yaitu : - Integer - Real - Boolean - Char

Integer Tipe Integer merupakan subset dari bilangan bulat yang ukurannya dapat bervariasi pada komputer

Integer Tipe Integer merupakan subset dari bilangan bulat yang ukurannya dapat bervariasi pada 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.

 Operator standar pada data bertipe integer adalah : - Penjumlahan (diberi notasi +)

Operator standar pada data bertipe integer adalah : - Penjumlahan (diberi notasi +) - Pengurangan (diberi notasi -) - Perkalian (diberi notasi *) - Pembagian (div). q Operasi pembagian (div) menghasilkan bilangan bulat, dengan mengabaikan sisa pembagian. Sedangkan untuk mendapatkan sisa hasil baginya, gunakan modulus (mod).

Real Tipe Real merupakan subset bilangan real (bukan bilangan bulat) Proses aritmatika pada bilangan

Real Tipe 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.

 Operator standar pada data bertipe Real adalah : - Penjumlahan (diberi notasi +)

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).

Boolean Tipe Boolean adalah tipe data logika yang memiliki dua nilai yaitu true dan

Boolean Tipe 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 ¬)

Char Tipe Char merupakan himpunan karakter yang dapat dicetak Himpunan karakter yang didefinisikan oleh

Char Tipe Char merupakan himpunan karakter yang dapat dicetak Himpunan 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.

 Tipe Char terdiri atas 26 huruf Latin, 10 angka Arab, dan sejumlah karakter

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 □.

Bahasan Struktur Data a. b. Struktur Data, meliputi : Struktur data dasar/sederhana, yaitu array,

Bahasan Struktur Data a. b. Struktur Data, meliputi : Struktur data dasar/sederhana, yaitu array, record/struct dan himpunan Struktur data lanjut/majemuk, yang terdiri dari : - Linier : Stack, Queue, serta List dan Multilist - Non Linier : Pohon Biner dan Graph

Implementasi Pengurutan dengan Array Misal : - Bubblesort - Quicksort - Shellsort, dll Rekursif

Implementasi Pengurutan dengan Array Misal : - Bubblesort - Quicksort - Shellsort, dll Rekursif Misal : - Fungsi Faktorial n!, dll

TREE DEFINISI : struktur data tak linier yang mempunyai sifat-sifat dan ciri-ciri khusus. Struktur

TREE DEFINISI : 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.

Pohon Biner (Binary Tree) • Didefinisikan sebagai suatu kumpulan simpul yang mungkin kosong atau

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.

Implementasi Tree Contoh penggunaan struktur pohon : Silsilah keluarga Parse Tree (pada compiler) Struktur

Implementasi Tree Contoh penggunaan struktur pohon : Silsilah keluarga Parse Tree (pada compiler) Struktur Organisasi Pertandingan

Contoh Tree Silsilah Keluarga

Contoh Tree Silsilah Keluarga

Tree pada Parse

Tree pada Parse

Mendeklarasikan Struktur Pohon Biner Setiap simpul pada pohon terdiri 2 komponen utama: 1. data

Mendeklarasikan Struktur Pohon Biner Setiap simpul pada pohon terdiri 2 komponen utama: 1. data 2. Pointer yang menunjuk ke anak Pointer anak ada 2 macam, yaitu: 1. Pointer yang menunjuk ke anak kiri 2. pointer yang menunjuk ke anak kanan

3 standar dalam menelusuri binary tree Preorder (Node-Left-Right [NLR]) üProses Root üTelusuri subtree kiri

3 standar dalam menelusuri binary tree Preorder (Node-Left-Right [NLR]) üProses Root üTelusuri subtree kiri (Left) secara preeorder üTelusuri subtree kanan (right) secara preorder Inorder (Left-Node-Right [LNR]) ü Telusuri subtree kiri (Left) secara inorder ü Proses Root ü Telusuri subtree kanan (right) secara inorder Postorder (Left-Right-Node [LRN]) üTelusuri subtree kiri (Left) secara postorder üTelusuri subtree kanan (right) secara postorder üProses Root

Contoh

Contoh

Latihan Jika diketahui inorder = EACKFHDBG dan preorder = FAEKCDHGB gambarkan binary treenya dan

Latihan Jika diketahui inorder = EACKFHDBG dan preorder = FAEKCDHGB gambarkan binary treenya dan tentukan postordernya !

TERIMA KASIH

TERIMA KASIH