KATA PENGANTAR
Puji syukur penyusun panjatkan ke hadirat Allah Subhanahu wata?ala, karena berkat rahmat-Nya kami bisa menyelesaikan makalah yang berjudul Catatan Seorang Kuli Panggul. Makalah ini diajukan guna memenuhi tugas mata kuliah MATEMATIKA DISKRIT Kami mengucapkan terima kasih kepada Pihak yang telah membantu sehingga makalah ini dapat diselesaikan tepat pada waktunya. Makalah ini masih jauh dari sempurna, oleh karena itu, kritik dan saran yang bersifat membangun sangat kami harapkan demi sempurnanya makalah ini. Semoga makalah ini memberikan informasi bagi masyarakat dan bermanfaat untuk pengembangan wawasan dan peningkatan ilmu pengetahuan bagi kita semua.
VIN
1
Daftar Isi… Kata Pengantar ………………………………………………………… 1 Daftar Isi ………………………………………………………… 2 Pendahuluan ………………………………………………………… 3 Definisi Pohon ………………………………………………………… 4 Sifat sifat Pohon ………………………………………………………… 4 Pewarnaan Pohon ………………………………………………………… 5 Pohon Merantang ………………………………………………………… 5 Pohon Berakar ………………………………………………………… 9 Termilogi Pada Berakar………………………………………………………… Pohon Berakar ………………………………………………………… 11 Pohon M-ary ………………………………………………………… 12 Pohon Biner ………………………………………………………… 12 Pohon Ekspresi ………………………………………………………… 13 Pohon Keputusan ………………………………………………………… 13 Kode Awalan ………………………………………………………… 14 Kode Huffman ………………………………………………………… 14 Pohon Pencarian ………………………………………………………… 15 Traversal Pohon Biner ………………………………………………………… 16
Pohon 10 Terurut
VIN
2
PENDAHULUAN
Kirchoff (1824 - 1887) mengembangkan teori pohon untuk diterapkan dalam jaringan listrik. Selanjutnya Arthur Cayley (1821 - 1895) mengembangkan graph jenis ini sewaktu mencacah isomer hidrokarbon jenuh CnH2n+2. Sekarang pohon digunakan secara luas dalam linguistik dan ilmu komputer. makala ini terdiri dari 2 . 1 menguraikan tentang sifat-sifat pohon, pohon rentang, pohon berakar dan pohon jumlah. Sedangkan yg ke 2 akan dijelaskan mengenai algoritma Kruskal, algoritma Prim, dan pohon Biner.
VIN
3
1.Definisi Pohon Pohon adalah graf tak-berarah terhubung yang tidak mengandung sirkuit
Beberapa pohon juga dapat membentuk Hutan. Hutan (forest) adalah sekumpulan pohon yang saling lepas. graf tidak terhubung yang tidak mengandung sirkuit. Setiap komponen di dalam graf terhubung tersebut adalah pohon.
VIN
4
2.Sifat Sifat Pohon Misalkan G = (V,E) adalah graf tak-berarah sederhana dan jumlah simpulnya n, maka : 1. G adalah pohon 2. Setiap pasang simpul di dalam G terhubung dengan lintasan tunggal 3. G terhubung dan memiliki m = n -1 buah sisi 4. G tidak mengandung sirkuit dan memiliki m = n – 1 buah sisi 5. G tidak mengandung sirkuit dan penambahan satu sisi pada graf akan membuat hanya satu sirkuit 6. G terhubung dan semua sisinya adalah jembatan (jembatan adalah sisi yang bila dihapus menyebabkan graf terpecah menjadi dua komponen) Jika hutan F dengan k komponen mempunyai m = n – 1 buah sisi Contoh Sebuah pohon mempunyai 2n buah simpul berderajat 1, 3n buah simpul berderajat 2 dan n buah simpul berderajat 3. Tentukan banyaknya simpul dan sisi di dalam pohon tersebut ! Penyelesaian : Berdasarkan lemma jabat tangan : jumlah semua simpul di dalam graf adalah 2 kali jumlah sisi di dalam graf tersebut (2n x 1) + (3n x 2) + (n x 3) = 2 |E| 11n = 2 |E| …………………………… (1) Jumlah sisi pada sebuah pohon adalah jumlah simpul minus satu, sehingga : |E| = (2n + 3n + 1) – 1 = 6n – 1 ………………… (2) Persamaan (1) dan (2) menjadi : 11n = 2 (6n – 1) 11n = 12n – 2 n=2 Jadi : Jumlah simpul pada pohon 6n = 6 x 2 = 12 buah simpul Jumlah sisi 6n – 1 = 11 buah sisi
3. Pewarnaan Pohon Pohon mempunyai bilangan kromatik 2 dengan kata lain, 2 buah warna sudah cukup mewarnai simpul simpul di pohon sedemikian sehingga tidak ada 2 buah simpul bertetangga mempunyai warna sama Pewarnaan pada pohon T dilakukan dengan cara berikut : petakan warna pertama pada sembarang sebuah simpul. Kemudian,petakan warna kedua pada simpul yang bertetangga dengan yg pertama tadi. Selanjutnya, petakan warna VIN
5
pertama ke semua yang bertetangga dengan simpul-simpul yang telah diberi warna kedua. Ulangi proses ini sampai semua simpultelah diwarnai.
4. Pohon Merentang Pohon merentang adalah Subgraf dari graf terhubung berbentuk pohon.
Graf lengkap G dengan 4 buah pohon merentangnya, T1, T2, T3 dan T4 Pohon merentang dari graf terhubung adalah upagraf merentang yang berupa pohon. Pohon merentang diperoleh dengan memutus sirkuit di dalam graf. • Setiap graf terhubung mempunyai paling sedikit satu buah pohon merentang. Graf tak-terhubung dengan k komponen mempunyai k buah hutan merentang yang disebut hutan merentang (spanning forest). Pohon merantang juga memainkan peranan penting dalam jaringan komputer. Jaringan komputer dapatdimodelkan sebagai graf. Simpul pada graf dapat dinyatakan suatu terminal komputer (work station) atau suatu router. Jika suatu komputer mengirim pesan ke komputer lain, maka komputer tersebut mengirimkannya seluruh simpul simpul di jaringan. Jumlah ruas jalan seminimum mungkin yang menghubungkan semua kota sehingga setiap kota tetap terhubung satu sama lain. Perutean (routing) pesan pada jaringan komputer. a 55 b
25
a
45
d
30
c
40
20
5
b
50
15
d
30
c
h
20 15
g
e
10
10
f
(a) Jaringan komputer,
40 5
g
e 35
25
h
f
(b) Pohon merentang multicast
Pohon Merentang Minimum Graf terhubung-berbobot mungkin mempunyai lebih dari 1 pohon merentang. Pohon merentang yang berbobot minimum dinamakan pohon merentang minimum (minimum spanning tree). Pohon Merentang minimum mempunyai terapan luas dalam praktek, misalkan pemerintah akan membangun jalan rel kereta api yg menghubungkan sejumlah kota . membangunkan jalur rel kereta api biayanya mahal, karena itu pembangunan jalur ini tidak perlu menghubungkan lagsung ke 2 kota; tetapi cukup membangun jalur kereta api seperti pohon merentang
VIN
6
Terdapat dua buah algoritma membangun pohon merentang minimum, yang pertama adalah Algoritma Prim, dan yang kedua adalah Algoritma Kruskal
Algoritma Prim Dengan algoritma ini akan ditemukan pohon jumlah minimal (jika ada) untuk sebuah graph berbobot G dengan n titik. Dalam algoritma ini S adalah himpunan titik dan T adalah himpunan sisi. Langkah 1 : ambil sisi dari graf G yang berbobot minimum, masukkan ke dalam T. Langkah 2 : pilih sisi (u, v) yang mempunyai bobot minimum dan bersisian dengan simpul di T, tetapi (u, v) tidak membentuk sirkuit di T. Masukkan (u, v) ke dalam T. Langkah 3 : ulangi langkah 2 sebanyak n – 2 kali.
Contoh
VIN
7
Pohon merentang minimum yang dihasilkan:
Bobot = 10 + 25 + 15 + 20 + 35 = 105 Pohon merentang yang dihasilkan tidak selalu unik meskipun bobotnya tetap sama. Hal ini terjadi jika ada beberapa sisi yang akan dipilih berbobot sama. a
3
b
4
c
5
e
f
5
4
j
4
5
3 i
h 4
j
k
d
2 3
g
a 4
h 4
k
2
l
b
3
c 2
f
e
4
4
l
2
Contoh: Tiga buah pohon merentang minimumnya: c
2
f
e
4
b
3
4
5
6
a
6
g
3 i
d
3
2
4
2
5
3
j
4
k
a 4
h
2
4 l
b
3
5
c
4 2
f
e
4
3 i
d
2
3
g
j
h 4
3 i
k
2
Bobotnya sama yaitu = 36
Algoritma Kruskal VIN
d
2
8
4 l
Perbedaan prinsip antara algoritma prim dan kruskal adalah jika pada algoritma prim sisi yang dimasukan ke dalam T harus bersisian dengan sebuah simpul di T, maka lagoritma kruskal sisi yg dipilih tidak perlu bersisian dengan sebuah T asalkan penambahan sisi tersebut tidak membentuk sikruit (siklus)( (Langkah 0: sisi-sisi dari graf sudah diurut menaik berdasarkan bobotnya – dari bobot kecil ke bobot besar) Langkah 1 : T masih kosong Langkah 2 : pilih sisi (u, v) dengan bobot minimum yang tidak membentuk sirkuit di T. Tambahkan (u, v) ke dalam T. Langkah 3 : ulangi langkah 2 sebanyak n – 1 kali.
5. Pohon Berakar Adalah pohon yang sebuah simpulnya diperlakukan sebagai akar dan sisisisinya diberi arah menjauh dari akar. Akar mempunyai derajat masuk dan derajat keluar sama dengan nol dan simpul-simpul lainnya berderajat masuk sama dengan satu Daun atau simpul terminal adalah : Simpul yang mempunyai derajat keluar sama dengan nol Simpul dalam atau simpul cabang adalah : Simpul yang mempunyai derajat keluar tidak sama dengan nol
a b
a d
c e h i
f j
g
Sebagaib konvensi
e hi VIN
c
f j
9
d
g
Arah panah pada sisi dapat dibuang Sembarang pohon tak-berakar dapat diubah menjadi pohon berakar dengan memilih sebuah simpul sebagai akar. Pemilihan simpul yang berbeda menjadi akar menghasilkan pohon berakar yang berbeda pula Pohon berakar
6. Terminologi Pada Pohon Berakar •
•
Child atau children (Anak) dan parent (orangtua) Child dari simpul x jika ada sisi dari simpul x ke y Parent dari simpul y adalah simpul x Pada gambar di samping : Simpul b,c dan d children dari simpul a Simpul e dan f children dari simpul b Simpul a parent dari simpul b,c dan d Simpul b parent dari simpul e dan f Path (lintasan) Lintasan dari simpul vi ke simpul vk adalah runtunan simpul-simpul v1, v2 ,…, vk sedemikian hingga vi adalah parent dari vi+1 untuk 1 i k
VIN
1 0
Panjang lintasan adalah jumlah sisi yang dilalui dalam suatu lintasan, yaitu k – 1. Pada gambar di samping : Lintasan dari a ke j adalah a,b,e dan j Panjang lintasan dari a ke j adalah 3 Descendant (Keturunan) dan ancestor (leluhur) x adalah ancestor dari simpul y jika terdapat lintasan dari simpul x ke simpul y di dalam pohon Descendant dari simpul x adalah simpul y Pada gambar di samping : Simpul b adalah ancestor dari simpul h Simpul h adalah descendant dari simpul b Sibling (saudara kandung) Sibling satu sama lain adalah simpul yang mempunyai parent sama Pada gambar di samping : Simpul f sibling dari e Simpul g bukan sibling dari e karena parent berbeda Subtree (subpohon) Subtree dengan x sebagai akarnya adalah subgraf T’ = (V’,E’) sedemikian hingga V’ mengandung x dan semua keturunannya; E’ mengandung sisi-sisi dalam semua lintasan yang berasal dari x Pada gambar di samping : V’ = {b,e,f,h,i,j} E’ = {(b,e), (b,f), (e,h), (e,i), (e,j)} b : simpul akar
• •
•
•
Degree (derajat) Derajat sebuah simpul pohon berakar adalah jumlah subtree (jumlah child) pada simpul tersebut Derajat pohon berakar merupakan derajat keluar Pada gambar di samping : Derajat simpul a : 3, simpul b : 2, simpul c : 0 dan simpul d : 1 Derajat tertinggi (maksimum) : 3
• • • •
Leaf (daun) Adalah simpul yang berderajat nol (tidak mempunyai child) Pada gambar di bawah : Merupakan leaf : simpul c,f,h,i,j,l dan m Internal nodes (simpul dalam) Adalah simpul yang mempunyai child Pada gambar di dibawah: Merupakan internal nodes : simpul b,d,e,g dan k Level (tingkat) Akar mempunyai level = 0 Level simpul lainnya = 1 + panjang lintasan dari akar ke simpul tersebut Height (tinggi) atau depth (kedalaman) VIN
1 1
Adalah level maksimum dari suatu pohon Nama lain : panjang maksimum lintasan dari akar ke daun Pada gambar di dibawah : Pohon mempunyai height atau depth : 4
7. Pohon Berakar Terurut Adalah pohon berakar yang urutan children penting, Sistem universal dalam pengalamatan simpul-simpul pada pohon terurut adalah dengan memberi nomor setiap simpulnya seperti penomoran bab (beserta subbab) di dalam sebuah buku.
8. Pohon M-ary Adalah pohon berakar yang setiap simpul cabangnya mempunyai banyak n buah child (anak) , Jika m = 2 Pohon biner (binary tree) Pohon m-ary dikatakan pohon penuh (full) atau pohon teratur jika setiap simpul cabangnya mempunyai tepat m buah child Penggunaan pohon m-ary Penurunan kalimat (dalam bidang bahasa) Direktori arsip di dalam komputer Struktur organisasi Silsilah keluarga (dalam bidang genetika) Struktur bab atau daftar isi di dalam buku VIN
1 2
Bagan pertandingan antara beberapa tim sepak bola Dll
9. Pohon Biner Pohon biner adalah pohon berakar yang setiap titiknya memiliki paling banyak dua anak dan setiap anak ditunjuk sebagai anak kiri atau anak kanan. Jadi, pada pohon biner setiap titik mungkin memiliki 0, 1, atau 2 anak. Anak kiri digambarkan di sebelah kiri dan di bawah orang tuanya, serta anak kanan di sebelah kanan di bawah orang tuanya. Contoh Untuk pohon biner pada Gambar 4.34 (a), A adalah akarnya. Titik A memiliki dua anak, anak kiri B dan anak kanan C. Titik B memiliki satu anak, anak kiri D. Demikian pula titik C memiliki anak kanan E, tetapi tidak memiliki anak kiri. Pada pohon biner Gambar 4.34 (b), titik A memiliki anak kiri B. Berbeda dengan pohon biner pada Gambar 4.34 (c), di sini B merupakan anak kanan.
Gambar 4.34 Pohon biner digunakan dalam ilmu komputer untuk mengolah data.
Pohon Biner Seimbang Pada beberapa aplikasi, diinginkan tinggi upapohon kiri dan tinggi upapohon kanan yang seimbang, yaitu berbeda maksimal 1.
VIN
1 3
10. Pohon Ekspresi Adalah pohon biner dengan daun menyatakan operand dan simpul dalam (termasuk akar) menyatakan operator Tanda kurung tidak lagi diperlukan bila suatu ekspresi aritmetik direpresentasikan sebagai pohon biner Pohon ekspresi digunakan oleh compiler bahasa tingkat tinggi untuk mengevaluasi ekspresi yang ditulis dalam notasi : Infix Operator berada di antara 2 buah operand Prefix (polish notation) Operator mendahului 2 buah operand-nya Postfix (inverse polish notation) Kedua operand mendahului operatornya Contoh : (a + b)*(c/(d + e)) infix *+ab/c+de prefix ab+cde+/* postfix
11. Pohon Keputusan Digunakan untuk memodelkan persoalan yang terdiri dari serangkaian keputusan yang mengarah ke solusi Tiap simpul dalam menyatakan keputusan, dan.Daun menyatakan solusi.
VIN
1 4
12. Kode Awalan Adalah himpunan kode (misalnya kode biner) sedemikian hingga tidak ada anggota kumpulan yang merupakan awalan dari anggota yang lain, Mempunyai pohon biner yang bersesuaian ,Sisi diberi label 0 atau 1, semua sisi kiri diberi label 0 saja (atau 1 saja) sedangkan sisi kanan diberi label 1 saja (atau 0 saja) ,Barisan sisi-sisi yang dilalui oleh lintasan dari akar ke daun menyatakan kode awalan (ditulis di daun) Keguanaan untuk : mengirim pesan pada komunikasi data Setiap karakter di dalam pesan direpresentasikan dengan barisan angka 0 dan 1 Untuk pembentukan kode Huffman dalam pemampatan data (data compression)
13. Kode Huffman Pemampatan data dilakukan dengan mengkodekan setiap karakter di dalam pesan atau di dalam arsip dikodekan dengan kode yang lebih pendek. Sistem kode yang banyak digunakan adalah kode ASCII (setiap karakter dikodekan dalam 8 bit biner) Cara pembentuka kode Huffman dengan membentuk pohon biner (dinamakan dengan pohon Huffman) yaitu :
VIN
1 5
1.
Pilih 2 simbol dengan peluang (probability) paling kecil sebagai child kemudian kedua simbol tersebut dikombinasikan sebagai parent peluang penjumlahan dari kedua simbol tersebut 2. Pilih 2 simbol berikutnya termasuk simbol baru yang mempunyai peluang kecil sebagai child kemudian kedua simbol tersebut dikombinasikan sebagai parent peluang penjumlahan dari kedua simbol tersebut 3. Prosedur yang sama dilakukan pada 2 simbol berikutnya yang mempunyai peluang terkecil sebagai child kemudian kedua simbol tersebut dikombinasikan sebagai parent peluang penjumlahan dari kedua simbol tersebut Kode Huffman tidak bersifat unik, artinya kode untuk setiap karakter berbeda-beda pada setiap pesan bergantung pada kekerapan kemunculan karakter tersebut di dalam pesan. Keputusan apakah suatu simpul pada pohon Huffman diletakkan di kiri atau di kanan menentukan kode yang dihasilkan (tetapi tidak mempengaruhi panjang kodenya).
14. Pohon Pencarian
Adalah pohon biner yang setiap key diatur dalam suatu urutan tertentu Digunakan untuk melakukan operasi Pencarian Penyisipan Penghapusan elemen Simpul pada pohon pencarian berupa field kunci (key) pada : Data record atau Data itu sendiri Key (kunci) adalah : Nilai yang membedakan setiap simpul dengan simpul yang lainnya Key harus unik, karena itu tidak ada 2 buah simpul atau lebih yang mempunyai kunci yang sama Jika R adalah akar dan semua key yang tersimpan pada setiap simpul tidak ada yang sama maka : : Semua simpul pada subpohon kiri mempunyai key lebih kecil dari key R Semua simpul di subpohon kanan mempunyai key nilai lebih besar dari key R
VIN
1 6
15. Travesa Pohon Biner
Misalkan T adalah pohon biner, akarnya R, subpohon kiri T1 dan subpohon kanan T2 maka ada skema mengunjungi simpul-simpul di dalam pohon biner T : Preorder Kunjungi R (sekaligus memproses simpul R) Kunjungi T1 secara preorder Kunjungi T2 secara preorder Inorder Kunjungi T1 secara inorder Kunjungi R (sekaligus memproses simpul R) Kunjungi T2 secara inorder Postorder Kunjungi T1 secara postorder Kunjungi T2 secara postorder Kunjungi R (sekaligus memproses simpul R) Proses yang dilakukan terhadap simpul yang dikunjungi misalnya mencetak informasi yang disimpan di dalam simpul Memanipulasi nilai, dll
VIN
1 7