Dokumen tersebut membahas tentang list berkait ganda (doubly linked list) dan operasi-operasinya seperti penambahan, penghapusan, dan pencarian elemen pada list tersebut. Terdapat penjelasan mengenai konsep dasar doubly linked list, deklarasi struktur data, dan fungsi-fungsi untuk melakukan operasi penambahan di depan, belakang, dan tengah list, serta penghapusan di depan, belakang, dan tengah list. Juga dibahas tentang
Dokumen tersebut membahas tentang linked list, yaitu struktur data yang terdiri dari kumpulan elemen yang saling terhubung melalui pointer. Terdapat beberapa jenis linked list seperti single linked list, double linked list, dan circular double linked list. Dokumen juga menjelaskan beberapa operasi yang dapat dilakukan pada linked list seperti insert, delete, dan retrieve.
Dokumen tersebut membahas tentang list berkait ganda (doubly linked list) dan operasi-operasinya seperti penambahan, penghapusan, dan pencarian elemen pada list tersebut. Terdapat penjelasan mengenai konsep dasar doubly linked list, deklarasi struktur data, dan fungsi-fungsi untuk melakukan operasi penambahan di depan, belakang, dan tengah list, serta penghapusan di depan, belakang, dan tengah list. Juga dibahas tentang
Dokumen tersebut membahas tentang linked list, yaitu struktur data yang terdiri dari kumpulan elemen yang saling terhubung melalui pointer. Terdapat beberapa jenis linked list seperti single linked list, double linked list, dan circular double linked list. Dokumen juga menjelaskan beberapa operasi yang dapat dilakukan pada linked list seperti insert, delete, dan retrieve.
4.1 Operasi Dasar Singly Linked List 1 (primitive list)Kelinci Coklat
Dokumen tersebut membahas operasi dasar pada singly linked list meliputi penyisipan (insert), penghapusan (delete), penelusuran (traversal), dan pencarian (searching) elemen. Terdapat penjelasan algoritma dan fungsi untuk operasi insert first, insert last, delete first, delete last, serta traversal untuk menelusuri seluruh elemen list.
Dokumen tersebut membahas tentang bahasa query formal basis data relasional yaitu SQL dan aljabar relasional. Aljabar relasional merupakan kumpulan operasi yang diterapkan pada relasi untuk menghasilkan relasi baru, meliputi seleksi, proyeksi, produk kartesian, penyatuan, perbedaan himpunan, penamaan ulang, irisan himpunan, join, outer join, dan pembagian.
Dokumen tersebut membahas tentang kode Huffman, yaitu algoritma kompresi data yang memberi kode terpendek untuk simbol yang sering muncul dan kode terpanjang untuk simbol yang jarang muncul. Kode tersebut dibuat berdasarkan pohon biner Huffman yang disusun berdasarkan frekuensi kemunculan simbol. Contoh penerapannya untuk kata "SCIENCE" dan "TELKOMSEL" juga dijelaskan.
Queue adalah kumpulan data yang hanya memungkinkan penambahan elemen di satu ujung dan penghapusan elemen di ujung lainnya, menggunakan prinsip FIFO. Queue dapat diimplementasikan menggunakan array linear maupun circular, dengan operasi enqueue, dequeue, dan lainnya.
Menyederhanakan fungsi boolean dengan menggunakan metode quin1BAIDILAH Baidilah
Dokumen tersebut membahas tentang metode Quine-McCluskey untuk menyederhanakan fungsi Boolean. Metode ini lebih tepat digunakan untuk fungsi Boolean dengan jumlah variabel lebih dari empat karena metode aljabar dan peta Karnaugh sulit menyederhanakannya. Metode Quine-McCluskey melibatkan dua langkah yaitu menentukan prime implicant dan memilih prime implicant inti untuk mendapatkan hasil penyederhanaan.
Dokumen tersebut membahas tentang SQL (Structured Query Language) yang merupakan bahasa query untuk memanipulasi dan mengekstraksi data dari basis data relasional. Dokumen ini menjelaskan konsep dasar SQL meliputi DDL, DML, DCL, serta contoh-contoh query SQL seperti pembuatan tabel, insert, update, delete, select dan join data.
Array Dimensi banyak struktur data pertemuan ke 3said zulhelmi
Array yang sangat banyak elemen nol-nya dikenal sebagai Sparse Array. Array yang seluruh elemen di bawah diagonal utamanya bernilai nol dikenal sebagai Lower Triangular Array. Jumlah elemen dari Array A [3][4][5] adalah 60.
Teks tersebut membahas tentang kombinatorika dan konsep-konsep dasarnya seperti permutasi dan kombinasi. Secara singkat, teks tersebut menjelaskan cara menghitung jumlah kemungkinan susunan objek-objek tanpa harus menyebutkan satu per satu susunannya menggunakan aturan perkalian dan penjumlahan, serta rumus-rumus permutasi dan kombinasi.
Dokumen ini menjelaskan algoritma input dan output data matriks. Matriks didefinisikan sebagai array 2 dimensi dengan indeks baris dan kolom. Algoritma input melibatkan perulangan untuk memasukkan data ke setiap elemen matriks, sedangkan algoritma output melibatkan perulangan untuk mencetak isi matriks. Kedua algoritma diimplementasikan dalam program Pascal lengkap dengan flowchartnya.
Half subtractor dan full subtractor merupakan rangkaian logika yang digunakan untuk mengurangi bilangan biner. Half subtractor dapat mengurangi 1 bit input dan menghasilkan 2 bit output yaitu sum dan carry, sedangkan full subtractor dapat mengurangi lebih dari 1 bit input dan menghasilkan sum dan carry. Kedua rangkaian dapat dibuat menggunakan gerbang logika AND, OR, dan NOT.
ERD digunakan untuk menjelaskan hubungan antar data dalam basis data berdasarkan objek data dan relasinya. Ia menggambarkan entitas, atribut, dan relasi antara entitas. Terdapat tiga jenis relasi: satu ke satu, satu ke banyak, dan banyak ke banyak. Contoh kasusnya menggambarkan hubungan antara mahasiswa, mata kuliah, dan dosen dalam suatu perguruan tinggi.
4.1 Operasi Dasar Singly Linked List 1 (primitive list)Kelinci Coklat
Dokumen tersebut membahas operasi dasar pada singly linked list meliputi penyisipan (insert), penghapusan (delete), penelusuran (traversal), dan pencarian (searching) elemen. Terdapat penjelasan algoritma dan fungsi untuk operasi insert first, insert last, delete first, delete last, serta traversal untuk menelusuri seluruh elemen list.
Dokumen tersebut membahas tentang bahasa query formal basis data relasional yaitu SQL dan aljabar relasional. Aljabar relasional merupakan kumpulan operasi yang diterapkan pada relasi untuk menghasilkan relasi baru, meliputi seleksi, proyeksi, produk kartesian, penyatuan, perbedaan himpunan, penamaan ulang, irisan himpunan, join, outer join, dan pembagian.
Dokumen tersebut membahas tentang kode Huffman, yaitu algoritma kompresi data yang memberi kode terpendek untuk simbol yang sering muncul dan kode terpanjang untuk simbol yang jarang muncul. Kode tersebut dibuat berdasarkan pohon biner Huffman yang disusun berdasarkan frekuensi kemunculan simbol. Contoh penerapannya untuk kata "SCIENCE" dan "TELKOMSEL" juga dijelaskan.
Queue adalah kumpulan data yang hanya memungkinkan penambahan elemen di satu ujung dan penghapusan elemen di ujung lainnya, menggunakan prinsip FIFO. Queue dapat diimplementasikan menggunakan array linear maupun circular, dengan operasi enqueue, dequeue, dan lainnya.
Menyederhanakan fungsi boolean dengan menggunakan metode quin1BAIDILAH Baidilah
Dokumen tersebut membahas tentang metode Quine-McCluskey untuk menyederhanakan fungsi Boolean. Metode ini lebih tepat digunakan untuk fungsi Boolean dengan jumlah variabel lebih dari empat karena metode aljabar dan peta Karnaugh sulit menyederhanakannya. Metode Quine-McCluskey melibatkan dua langkah yaitu menentukan prime implicant dan memilih prime implicant inti untuk mendapatkan hasil penyederhanaan.
Dokumen tersebut membahas tentang SQL (Structured Query Language) yang merupakan bahasa query untuk memanipulasi dan mengekstraksi data dari basis data relasional. Dokumen ini menjelaskan konsep dasar SQL meliputi DDL, DML, DCL, serta contoh-contoh query SQL seperti pembuatan tabel, insert, update, delete, select dan join data.
Array Dimensi banyak struktur data pertemuan ke 3said zulhelmi
Array yang sangat banyak elemen nol-nya dikenal sebagai Sparse Array. Array yang seluruh elemen di bawah diagonal utamanya bernilai nol dikenal sebagai Lower Triangular Array. Jumlah elemen dari Array A [3][4][5] adalah 60.
Teks tersebut membahas tentang kombinatorika dan konsep-konsep dasarnya seperti permutasi dan kombinasi. Secara singkat, teks tersebut menjelaskan cara menghitung jumlah kemungkinan susunan objek-objek tanpa harus menyebutkan satu per satu susunannya menggunakan aturan perkalian dan penjumlahan, serta rumus-rumus permutasi dan kombinasi.
Dokumen ini menjelaskan algoritma input dan output data matriks. Matriks didefinisikan sebagai array 2 dimensi dengan indeks baris dan kolom. Algoritma input melibatkan perulangan untuk memasukkan data ke setiap elemen matriks, sedangkan algoritma output melibatkan perulangan untuk mencetak isi matriks. Kedua algoritma diimplementasikan dalam program Pascal lengkap dengan flowchartnya.
Half subtractor dan full subtractor merupakan rangkaian logika yang digunakan untuk mengurangi bilangan biner. Half subtractor dapat mengurangi 1 bit input dan menghasilkan 2 bit output yaitu sum dan carry, sedangkan full subtractor dapat mengurangi lebih dari 1 bit input dan menghasilkan sum dan carry. Kedua rangkaian dapat dibuat menggunakan gerbang logika AND, OR, dan NOT.
ERD digunakan untuk menjelaskan hubungan antar data dalam basis data berdasarkan objek data dan relasinya. Ia menggambarkan entitas, atribut, dan relasi antara entitas. Terdapat tiga jenis relasi: satu ke satu, satu ke banyak, dan banyak ke banyak. Contoh kasusnya menggambarkan hubungan antara mahasiswa, mata kuliah, dan dosen dalam suatu perguruan tinggi.
Dokumen tersebut membahas tentang senarai (list) sebagai struktur data yang fleksibel untuk menyimpan data. Ia menjelaskan bahwa senarai terdiri dari simpul-simpul yang saling terhubung, dimana setiap simpul berisi nilai dan pointer ke simpul berikutnya. Dokumen tersebut juga mendemonstrasikan definisi dan contoh implementasi senarai menggunakan bahasa C++.
Senarai adalah struktur data yang mirip dengan array namun ukurannya dapat berubah. Senarai terdiri dari simpul-simpul yang saling terhubung, dimana setiap simpul berisi nilai dan pointer ke simpul berikutnya. Contoh implementasi senarai menggunakan bahasa C++ mendemonstrasikan pendefinisian simpul, alokasi simpul ke dalam senarai, dan operasi pencarian pada senarai.
Dokumen tersebut membahas tentang struktur data graf dan tree. Graf didefinisikan sebagai kumpulan simpul yang dihubungkan oleh sisi, sedangkan tree adalah struktur data hierarkis non-linear yang menghubungkan root dengan anak-anaknya. Dokumen ini juga membedah jenis-jenis graf dan operasi pada tree serta graf.
Pencarian biner adalah metode pencarian yang lebih efisien dibandingkan pencarian berurutan. Pencarian biner membagi data menjadi dua bagian secara berulang sampai data yang dicari ditemukan atau tidak ada di antara kedua bagian tersebut. Proses pencarian biner memerlukan waktu O(log n) secara rata-rata.
Laporan praktikum ini membahas tentang struktur data tree dan implementasinya dalam bahasa C++. Terdiri dari bab pengenalan tree, penjelasan program yang mengimplementasikan tree, dan kesimpulan tentang ketiga jenis kunjungan pada tree yaitu preorder, inorder, dan postorder.
Teks tersebut membahas tentang struktur data tree dan implementasinya dalam pemrograman. Secara singkat, teks tersebut menjelaskan tentang:
1) Definisi tree sebagai struktur data yang menggambarkan hubungan hirarkis antar elemen,
2) Jenis-jenis tree seperti binary tree dan binary search tree,
3) Operasi dasar pada tree seperti insert dan delete,
4) Cara implementasi tree dalam pemrograman menggunakan node dan pointer.
Algoritma dan Struktur Data - Binary SearchKuliahKita
Dokumen ini membahas tentang algoritma pencarian biner, yaitu metode pencarian yang lebih efisien dibandingkan pencarian berurutan. Algoritma pencarian biner bekerja dengan membagi data menjadi dua bagian secara berulang sampai data yang dicari ditemukan atau tidak ada di antara kedua bagian tersebut. Prosesnya diawali dengan membandingkan data tengah dengan data yang dicari, kemudian membagi data menjadi dua bagian berdasarkan hasil
Dokumen tersebut membahas tentang struktur data pohon, meliputi definisi pohon biner, jenis-jenis pohon seperti pohon ekspresi, pohon huffman, dan pohon pencarian biner, serta konsep-konsep kunci seperti kunjungan pohon, representasi pohon, heap tree, dan red-black tree.
Pohon biner adalah struktur data yang banyak digunakan untuk merepresentasikan hubungan hirarki antar elemen, seperti klasifikasi mahluk hidup dan sistem file. Setiap simpul pada pohon biner hanya boleh memiliki dua anak paling banyak. Root adalah simpul paling atas dengan derajat masuk nol dan derajat keluar positif. Daun adalah simpul tanpa anak. Tinggi pohon ditentukan dari level maksimum sedangkan lebar
Dokumen tersebut membahas tentang struktur data tree dan graph. Tree dijelaskan sebagai struktur data berhierarki yang terdiri dari root, node internal dan eksternal. Graph dijelaskan sebagai kumpulan simpul yang dihubungkan oleh sisi, dapat berarah atau tidak. Algoritma pencarian minimum spanning tree seperti Prim juga dijelaskan.
Queue adalah antrian yang menggunakan prinsip FIFO (first in first out) dimana elemen pertama masuk akan keluar pertama. Pohon merupakan kumpulan simpul yang terhubung dimana setiap simpul paling banyak memiliki dua anak. Pohon biner adalah pohon dimana setiap simpul hanya memiliki dua anak secara maksimum.
Dokumen tersebut membahas tentang struktur data pohon (tree) dan manipulasinya. Terdapat penjelasan tentang konsep dasar tree seperti node, root, subtree, representasi tree, jenis tree seperti binary tree, dan operasi-operasi pada tree seperti insert, search, traverse, hitung jumlah node dan kedalaman. Juga dijelaskan cara implementasi program tree menggunakan linked list secara rekursif.
Dokumen tersebut membahas tentang struktur pohon (tree) termasuk istilah-istilah dasar, sifat utama pohon berakar, contoh pohon berakar, cara menggambarkan pohon, pohon biner, dan latihan soal.
Dokumen tersebut membahas tentang struktur data linked list. Terdapat penjelasan tentang konsep dasar linked list, cara kerja, dan implementasinya dalam bahasa pemrograman termasuk penambahan, penghapusan, dan penyisipan node. Juga dibahas metode-metode yang dapat dilakukan pada linked list seperti pengecekan kondisi kosong, pengaksesan ukuran dan data, serta operasi-operasi lainnya.
Array statis merupakan tipe data terstruktur yang terdiri dari elemen yang sama dan diakses melalui indeks. Array memiliki jumlah elemen yang tetap dan elemen disusun secara berurutan dalam memori. Dokumen menjelaskan tentang deklarasi, proses-proses dasar seperti penciptaan, traversal, pencarian, dan pengurutan data pada array satu dimensi menggunakan beberapa algoritma seperti linear search dan selection sort.
Dokumen tersebut membahas tentang struktur data tree, termasuk definisi tree, contoh penggunaannya, representasi tree, jenis-jenis tree seperti binary tree, operasi-operasi pada tree seperti insert, search, traverse, dan implementasinya dalam bahasa pemrograman.
Similar to Algoritma dan Struktur Data - pohon biner (20)
Dokumen ini membahas tentang struktur data dan algoritma. Struktur data digunakan untuk mengorganisasi data di program sehingga dapat disimpan dan diakses secara efisien. Beberapa contoh struktur data yang dijelaskan adalah definisi tipe, stack, queue, array, list, dan tree.
Dokumen ini membahas tentang objek dalam pemrograman berorientasi objek. Objek merupakan instansiasi dari kelas yang merepresentasikan objek nyata dalam bentuk variabel dan metode. Contohnya adalah pemain dalam game yang memiliki atribut seperti kekuatan dan metode seperti bergerak. Kumpulan objek dapat direpresentasikan lewat koleksi yang mendukung operasi seperti penambahan dan penghapusan elemen.
Tipe Data Abstrak (TDA) adalah definisi tipe data dan operasi primitif yang beroperasi pada struktur data. TDA dapat mengandung TDA lain dan merupakan tipe bentukan yang didefinisikan. Contoh TDA adalah waktu yang terdiri dari jam dan tanggal. TDA Jam memiliki komponen Hour, Minute, Second dan primitif seperti getHour untuk mengakses nilai jam dan setHour untuk mengubah nilai jam.
Dokumen ini membahas tentang struktur data pohon yang merupakan bentuk struktur data rekursif. Pohon memiliki simpul, cabang, level, lebar, induk, anak, akar, dan daun. Pohon dapat digunakan untuk memanipulasi data hierarkis dan mempermudah pencarian data.
Antrian adalah struktur data yang menyimpan elemen sesuai urutan masuk (FIFO). Terdapat beberapa metode utama pada antrian seperti enqueue untuk menambahkan elemen, dequeue untuk mengambil elemen pertama, dan peek untuk melihat elemen pertama tanpa menghapusnya. Antrian dapat diimplementasikan menggunakan array dengan menyimpan indeks elemen terakhir.
Algoritma dan Struktur Data - pengurutan insertionGeorgius Rinaldo
Algoritma pengurutan insertion menyisipkan elemen ke posisi yang tepat dengan membandingkan elemen berurutan dan menukar posisinya jika perlu. Proses ini dilakukan dari indeks ke-2 hingga akhir untuk mengurutkan elemen dari yang terkecil hingga terbesar. Algoritma ini memiliki kompleksitas O(n2) pada kasus terburuk namun dapat mengurutkan dalam waktu linier jika data sudah hampir terurut.
Algoritma dan Struktur Data - pengurutan selectionGeorgius Rinaldo
Dokumen ini menjelaskan algoritma selection sort untuk mengurutkan elemen data. Selection sort bekerja dengan mencari elemen terkecil di setiap iterasi dan menempatkannya di posisi yang sesuai. Proses ini diulang hingga semua elemen terurut dengan kompleksitas rata-rata O(n2). Contoh kode C++ juga ditunjukkan beserta pseudocode umum algoritmanya.
Merge sort adalah algoritma pengurutan yang bekerja dengan memecah elemen menjadi bagian yang lebih kecil dan menggabungkannya kembali dengan cara membandingkan dan menyusun elemen-elemennya secara terurut. Algoritma ini memiliki kompleksitas waktu sebesar O(n log n) pada kasus rata-rata dan terburuk.
Bubble sort adalah algoritma sorting yang mengiterasi dan membandingkan pasangan elemen, mengubah posisi elemen yang lebih besar ke belakang. Prosesnya melakukan pembandingan dan pertukaran posisi berulang sampai tidak ada lagi yang perlu ditukar. Kompleksitas waktunya adalah O(n2) pada kasus terburuk.
Dokumen ini membahas tentang rekursi dalam algoritma dan struktur data. Rekursi adalah teknik pengulangan yang melibatkan fungsi memanggil dirinya sendiri. Fungsi rekursif dapat digunakan untuk memodelkan operasi matematika seperti faktorial, fibonacci, dan fourier. Contoh fungsi rekursif untuk menghitung faktorial ditunjukkan dengan memanggil fungsi factorial secara berulang sampai mencapai kondisi basis.
Himpunan (set) adalah struktur data yang dapat menyimpan nilai-nilai tertentu tanpa mempertimbangkan urutannya. Himpunan menerapkan konsep matematika tentang kumpulan nilai yang unik dan tidak berurutan, serta mendukung operasi seperti penggabungan, irisan, perbedaan, dan subset. Himpunan pada C++ didefinisikan dalam pustaka standar dan dapat diimplementasikan menggunakan array.
Larik adalah tempat penyimpanan kumpulan data yang disusun secara sistematis dengan menempatkan setiap data pada indeks tertentu. Larik dapat berbentuk satu atau lebih dimensi, misalnya larik dua dimensi yang dikenal sebagai matriks. Ukuran larik dapat ditentukan sebelumnya atau dinamis.
Dokumen ini membahas tentang operasi berkas pada C++ menggunakan tiga pustaka utama yaitu ofstream, ifstream, dan fstream untuk menulis, membaca, dan melakukan operasi tulis baca pada berkas. Diberikan contoh kode untuk membuka, menulis, membaca, dan menutup berkas.
Algoritma dan Struktur Data - fungsi dan prosedur c++Georgius Rinaldo
Fungsi dan prosedur merupakan blok kode yang dapat digunakan berulang kali untuk melakukan operasi tertentu. Fungsi akan mengembalikan nilai hasil sedangkan prosedur tidak. Keduanya dapat digunakan untuk mendefinisikan kode yang akan dipakai berulang kali dengan aturan tertentu seperti tipe kembalian, nama, dan argumen.
Dokumen ini membahas tentang pengulangan dalam bahasa pemrograman C++. Terdapat dua jenis pengulangan yaitu for dan while, di mana for mengulang kode sampai batas tertentu sedangkan while mengulang sampai kondisi terpenuhi. Dokumen ini juga memberikan contoh penggunaan pengulangan dalam fungsi untuk menjumlahkan nilai array.
ANALISIS PENGARUH INDUSTRI BATU BARA TERHADAP PENCEMARAN UDARA.pdfnarayafiryal8
Industri batu bara telah menjadi salah satu penyumbang utama pencemaran udara global. Proses ekstraksi batu bara, baik melalui penambangan terbuka maupun penambangan bawah tanah, menghasilkan debu dan gas beracun yang dilepaskan ke atmosfer. Gas-gas tersebut termasuk sulfur dioksida (SO2), nitrogen oksida (NOx), dan partikel-partikel halus (PM2.5) yang berbahaya bagi kesehatan manusia dan lingkungan. Selain itu, pembakaran batu bara di pembangkit listrik dan industri menyebabkan emisi karbon dioksida (CO2), yang merupakan penyebab utama perubahan iklim global dan pemanasan global.
Pencemaran udara yang disebabkan oleh industri batu bara juga memiliki dampak lokal yang signifikan. Di sekitar area penambangan, debu batu bara yang dihasilkan dapat mengganggu kesehatan masyarakat dan ekosistem lokal. Paparan terus-menerus terhadap debu batu bara dapat menyebabkan masalah pernapasan seperti asma dan bronkitis, serta berkontribusi pada penyakit paru-paru yang lebih serius. Selain itu, hujan asam yang disebabkan oleh emisi sulfur dioksida dapat merusak tanaman, air tanah, dan ekosistem sungai, mengancam keberlanjutan lingkungan di sekitar lokasi industri batu bara.
2. Pohon Biner
Binary Tree adalah struktur data
yang maksimal memiliki 2 cabang
(kiri | kanan)
Meski tidak seimbang, asalkan
maksimal cabang pada tree adalah 2,
tetap dikatakan pohon biner.
3. Sifat Pohon Biner
Binary mungkin kosong atau terdiri dari sebuah akar dan
dua anak dengan lebar maksimal 2 pada tiap levelnya,
akan tetapi tidak memiliki batas kedalaman.
Apabila sebuah pohon memiliki sub-tree pada salah satu
sisi yang lebih banyak maka pohon tersebut disebut pohon
condong - kiri atau kanan (skewed tree)
4. Contoh Struktur Pohon Biner
left item right
left item right left item right
left item right left item right left item
item
Root
Node
Leaf /
Node tanpa cabang
6. TDA Pohon Biner
{ Deklarasi Type }
type node < info : infotype,
left : address,
right : address >
type BinTree : address
type Elmtnode < info : infotype,
Next : address>
type ListofNode : address { list linier yang elemennya Elmtnode }
7. Penjelasan TDA Pohon Biner
Pohon biner memiliki konsep yang mirip dengan senarai
atau list.
Perbedaannya, pada list hanya dihubungkan tepat satu
buah simpul sedangkan pohon biner menghubungkan dua
buah simpul yaitu left dan right.
Jika pohon biasa, maka simpul yang dihubungkan dapat
berjumlah lebih dari dua.
8. Penjelasan TDA Pohon Biner - 2
Simpul pada pohon biner terdapat info yang menyimpan
informasi dengan tipe tertentu seperti list.
Selain itu juga terdapat right dan left, yang menyimpan
alamat dari simpul berikutnya. Dengan begitu sebuah
simpul dapat terhubung dengan simpul.
Terdapat juga sebuah parent yang menunjuk alamat dari
induk simpulnya. Dengan parent, simpul dapat menelusuri
ke dua arah yaitu ke anaknya dan induknya.
9. TDA Pohon Biner - Primitif
{ Inisialisasi }
procedure MakeTree (input Akar:infotype, input/output P: BinTree, L:
BinTree, R:BinTree)
{ I.S. sembarang }
{ F.S. Menghasilkan sebuah pohon P }
{Menghasilkan sebuah pohon biner P dari A, L dan R , jika alokasi
berhasil}
{Menghasilkan pohon P yang kosong (Nil) jika alokasi gagal }
{ PRIMITIF }
{ Selektor }
function GetAkar (P: BinTree) → infotype
{ Mengirimkan nilai Akar pohon biner P }
function GetLeft (P: BinTree) → BinTree
{ Mengirimkan Anak Kiri pohon biner P }
function GetRight (P: BinTree) → BinTree
{ Mengirimkan Anak Kanan pohon biner P }
10. TDA Pohon Biner - Operasi
{ Search }
function Pencarian (P: BinTree,X:infotype) → boolean
{ Mengirimkan true jika ada node dari P yang bernilai X }
{ fungsi lain }
11. Contoh Kode C++
#include <iostream>
using namespace std;
typedef char Infotype; // Infotype didefinisikan sebagai alias dari tipe karakter
typedef struct tElmtTree *address;
typedef struct tElmtTree {
Infotype Info; // Info adalah informasi dari sebuah simpul pohon bertipe Infotype yang
terdefinisi
address Left; // Cabang kiri dari sebuah pohon bertipe alamat menuju ke sebuah simpul kiri
address Right; // Cabang kanan juga memilikit tipe alamat menuju sebuah simpul
address Parent; // Parent adalah alamat dari sebuah simpul yang posisinya di atas dirinya
} ElmtTree; // Semua ini dibungkus dalam sebuah tipe dan merupakan definisi dari simpul
#define Info(P) (P)->Info
#define Left(P) (P)->Left
#define Right(P) (P)->Right
#define Parent(P) (P)->Parent
12. Contoh Kode C++ - Lanjutan
...
/* Pembuatan simpul baru */
ElmtTree buatSimpul(Infotype x) {
ElmtTree elem; // definisikan ElmtList sebagai simpul
elem.Info = x; // isi informasi pada simpul
elem.Left = NULL; // alamat left dan right baru adalah kosong atau NULL
elem.Right = NULL; // alamat next dari simpul yang baru adalah kosong atau NULL
elem.Parent = NULL; // alamat next dari simpul yang baru adalah kosong atau NULL
return elem;
}
...
13. Contoh Kode C++ - Lanjutan
…
/* Pembuatan dan inisialisasi pohon baru */
void MakeTree (Infotype akar, Tree *P, Tree L, Tree R) {
*P = (address) malloc(sizeof(ElmtTree)); // definisikan pohon
if (*P != NULL) { // jika berhasil, inisialisasikan
Info(*P) = akar; // masukkan nilai dari akar
Parent(*P) = NULL; // Pohon baru tidak memiliki induk karena dia adalah akar
Left(*P) = L; // Jika terdapat upa-pohon sebagai anak di sisi kiri
Right(*P) = R; // Jika terdapat upa-pohon sebagai anak di sisi kanan
}
}
…
14. Contoh Kode C++ - Lanjutan
…
int main(){
ElmtTree akar = buatSimpul('X');
ElmtTree node1 = buatSimpul('A');
ElmtTree node2 = buatSimpul('B');
Tree T1,T2,T3;
// Inisialisasi instan
T2 = &node2; // menghasilkan null pada anak kiri dan kanan
T3 = &node3;
// Inisialisasi Lengkapnya dengan
MakeTree('A', &T2, NULL, NULL);
MakeTree('B', &T2, NULL, NULL);
MakeTree('Z', &T1, T2, T3);
cout << T1->Left->Info;
return 0;
}
15. Contoh Pencarian Pohon Biner
Terdapat tree sebagai
seperti pada gambar di
samping.
Kita akan mencari nilai
apakah terdapat nilai 8 pada
pohon.
13
8 18
3 10
9 11
30
16. Contoh Pencarian Pohon Biner
1. Lihat elemen pertama (13), apakah 9.
Karena elemen pertama > 9, maka kita ke
kiri.
2. Lihat elemen ke-2 yang dibandingkan (8).
Karena elemen kedua bukan 9 dan < 9,
maka ke kanan.
3. Lihat Elemen ke-3 yang dibandingkan
(10). Karena elemen ketiga bukan 9 dan >
9, maka ke kiri
4. Lihat Elemen ke-4 (9). Karena tidak ada
childnya, akan langsung mengembalikan
false jika tidak ditemukan. Karena 9 = 9,
maka kembalikan true
13
8 18
3 10
9 11
30
17. Pencarian Pohon Biner
Pencarian terhadap binary tree dilakukan secara rekursif.
Berikut adalah pseudocodenya.
function pencarianBinaryTree(key, node)
/* Jika elemen pada node atau key = nilai yang dicari -> sebagai basis */
if node = Null or node.key = key then
return node
else if key < node.key then
return pencarianBinaryTree(key, node.left)
else
return pencarianBinaryTree(key, node.right)
end if