2. ARRAY (LARIK) - si.ilkom.unsri.ac.idsi.ilkom.unsri.ac.id/wp-content/uploads/2018/11/7.pdf ·...
Transcript of 2. ARRAY (LARIK) - si.ilkom.unsri.ac.idsi.ilkom.unsri.ac.id/wp-content/uploads/2018/11/7.pdf ·...
![Page 1: 2. ARRAY (LARIK) - si.ilkom.unsri.ac.idsi.ilkom.unsri.ac.id/wp-content/uploads/2018/11/7.pdf · Pohon biner merupakan tipe yang sangat penting dari struktur data dan banyak dijumpai](https://reader031.fdocument.pub/reader031/viewer/2022021716/5c93281a09d3f2fb328c3c8b/html5/thumbnails/1.jpg)
1
Pohon (Tree)
1. Definisi Rekurens Dari Pohon Sebuah pohon adalah himpunan terbatas tidak
kosong, dengan elemen yang dibedakan sebagai berikut :
1. Sebuah elemen yang dibedakan dari yang lain yang disebut sebagai AKAR (root) dari pohon
2. Elemen yang lain (jika masih ada) dibagi-bagi menjadi beberapa sub himpunan yang disjoint dan masing-masing sub himpunan tersebut adalah pohon yang disebut sebagai sub pohon dari pohon tersebut.
![Page 2: 2. ARRAY (LARIK) - si.ilkom.unsri.ac.idsi.ilkom.unsri.ac.id/wp-content/uploads/2018/11/7.pdf · Pohon biner merupakan tipe yang sangat penting dari struktur data dan banyak dijumpai](https://reader031.fdocument.pub/reader031/viewer/2022021716/5c93281a09d3f2fb328c3c8b/html5/thumbnails/2.jpg)
2
Beberapa Istilah
1. Hutan
Hutan adalah sequence (list) dari pohon
2. Simpul (Node)
Simpul adalah elemen dari pohon yang memungkinkan akses pada sub pohon dimana simpul tersebut berfungsi sebagai Akar
3. Cabang
Cabang adalah hubungan antara Akar dengan sub pohon
![Page 3: 2. ARRAY (LARIK) - si.ilkom.unsri.ac.idsi.ilkom.unsri.ac.id/wp-content/uploads/2018/11/7.pdf · Pohon biner merupakan tipe yang sangat penting dari struktur data dan banyak dijumpai](https://reader031.fdocument.pub/reader031/viewer/2022021716/5c93281a09d3f2fb328c3c8b/html5/thumbnails/3.jpg)
3
4. Ayah
Akar dari sebuah pohon adalah Ayah dari sub pohon
5. Anak
Anak dari sebuah pohon adalah Sub pohon
6. Saudara
Saudara adalah simpul-simpul yang mempunyai Ayah yang sama
7. Daun
Daun adalah simpul terminal dari pohon. Semua simpul selain Daun adalah simpul bukan terminal
![Page 4: 2. ARRAY (LARIK) - si.ilkom.unsri.ac.idsi.ilkom.unsri.ac.id/wp-content/uploads/2018/11/7.pdf · Pohon biner merupakan tipe yang sangat penting dari struktur data dan banyak dijumpai](https://reader031.fdocument.pub/reader031/viewer/2022021716/5c93281a09d3f2fb328c3c8b/html5/thumbnails/4.jpg)
4
8. Jalan (Path)
Jalan adalah suatu urutan tertentu dari
Cabang
9. Derajat
Derajat sebuah pohon adalah banyaknya
anak dari dari pohon tersebut.
Jika sebuah simpul berderajat N disebut
pohon N-aire
1 disebut pohon 1-aire/uner
2 disebut pohon 2-aire/biner
![Page 5: 2. ARRAY (LARIK) - si.ilkom.unsri.ac.idsi.ilkom.unsri.ac.id/wp-content/uploads/2018/11/7.pdf · Pohon biner merupakan tipe yang sangat penting dari struktur data dan banyak dijumpai](https://reader031.fdocument.pub/reader031/viewer/2022021716/5c93281a09d3f2fb328c3c8b/html5/thumbnails/5.jpg)
5
10. Tingkat (Level)
Level pohon adalah panjangnya jalan dari
Akar sampai dengan simpul yang
bersangkutan. Panjang dari jalan adalah
banyaknya simpul yang dikandung pada
jalan tersebut. Akar mempunyai tingkat sama
dengan 1.
Dua buah simpul disebut sebagai Sepupu jika
mempunyai tingkat yang sama dalam sebuah
pohon.
![Page 6: 2. ARRAY (LARIK) - si.ilkom.unsri.ac.idsi.ilkom.unsri.ac.id/wp-content/uploads/2018/11/7.pdf · Pohon biner merupakan tipe yang sangat penting dari struktur data dan banyak dijumpai](https://reader031.fdocument.pub/reader031/viewer/2022021716/5c93281a09d3f2fb328c3c8b/html5/thumbnails/6.jpg)
6
11. Kedalaman (Tinggi)
Kedalaman (Tinggi) dari pohon adalah nilai maksimum dari tingkat simpul yang ada pada pohon tersebut. Kedalaman adalah panjang maksimum jalan dari Akar menuju ke sebuah daun
12. Lebar
Lebar sebuah Pohon adalah maksimum banyaknya simpul yang ada pada suatu Tingkat (Level)
![Page 7: 2. ARRAY (LARIK) - si.ilkom.unsri.ac.idsi.ilkom.unsri.ac.id/wp-content/uploads/2018/11/7.pdf · Pohon biner merupakan tipe yang sangat penting dari struktur data dan banyak dijumpai](https://reader031.fdocument.pub/reader031/viewer/2022021716/5c93281a09d3f2fb328c3c8b/html5/thumbnails/7.jpg)
7
2. Struktur Pohon Biner Definisi
Sebuah pohon biner (Binary Tree) adalah himpunan terbatas yang :
Mungkin kosong atau
Terdiri dari sebuah simpul yang disebut sebagai Akar dan dua buah himpunan lain yang disjoint yang merupakan pohon biner yang disebut sebagai Sub Pohon Kiri (Left) dan Sub Pohon Kanan (Right) dari pohon biner tersebut.
![Page 8: 2. ARRAY (LARIK) - si.ilkom.unsri.ac.idsi.ilkom.unsri.ac.id/wp-content/uploads/2018/11/7.pdf · Pohon biner merupakan tipe yang sangat penting dari struktur data dan banyak dijumpai](https://reader031.fdocument.pub/reader031/viewer/2022021716/5c93281a09d3f2fb328c3c8b/html5/thumbnails/8.jpg)
8
Pohon biner merupakan tipe yang sangat penting
dari struktur data dan banyak dijumpai
dalam berbagai terapan. Karakteristik yang
dimiliki oleh pohon biner adalah bahwa
setiap simpul paling banyak hanya
memiliki dua buah anak, dan mungkin
tidak punya anak.
Istilah-istilah yang digunakan sama dengan
istilah pada pohon secara umum.
![Page 9: 2. ARRAY (LARIK) - si.ilkom.unsri.ac.idsi.ilkom.unsri.ac.id/wp-content/uploads/2018/11/7.pdf · Pohon biner merupakan tipe yang sangat penting dari struktur data dan banyak dijumpai](https://reader031.fdocument.pub/reader031/viewer/2022021716/5c93281a09d3f2fb328c3c8b/html5/thumbnails/9.jpg)
9
Notasi Prefiks, Infiks dan Postfiks
1. Notasi Prefiks
Notasi Prefiks ditulis dengan cara mengikuti
alur sebagai berikut :
![Page 10: 2. ARRAY (LARIK) - si.ilkom.unsri.ac.idsi.ilkom.unsri.ac.id/wp-content/uploads/2018/11/7.pdf · Pohon biner merupakan tipe yang sangat penting dari struktur data dan banyak dijumpai](https://reader031.fdocument.pub/reader031/viewer/2022021716/5c93281a09d3f2fb328c3c8b/html5/thumbnails/10.jpg)
10
2. Notasi Infiks
Notasi ini ditulis dengan cara mengikuti alur
sebagai berikut :
![Page 11: 2. ARRAY (LARIK) - si.ilkom.unsri.ac.idsi.ilkom.unsri.ac.id/wp-content/uploads/2018/11/7.pdf · Pohon biner merupakan tipe yang sangat penting dari struktur data dan banyak dijumpai](https://reader031.fdocument.pub/reader031/viewer/2022021716/5c93281a09d3f2fb328c3c8b/html5/thumbnails/11.jpg)
11
3. Notasi Posfiks
Notasi ini ditulis dengan cara mengikuti alur
sebagai berikut :
![Page 12: 2. ARRAY (LARIK) - si.ilkom.unsri.ac.idsi.ilkom.unsri.ac.id/wp-content/uploads/2018/11/7.pdf · Pohon biner merupakan tipe yang sangat penting dari struktur data dan banyak dijumpai](https://reader031.fdocument.pub/reader031/viewer/2022021716/5c93281a09d3f2fb328c3c8b/html5/thumbnails/12.jpg)
12
Rekonstruksi Algoritma
{Deklarasi Type}
Type Infotype = … {terdefinisi}
Type node = record <Info : infotype,
Left : address,
Right: address >
Type BinTree : address
{Primitif}
![Page 13: 2. ARRAY (LARIK) - si.ilkom.unsri.ac.idsi.ilkom.unsri.ac.id/wp-content/uploads/2018/11/7.pdf · Pohon biner merupakan tipe yang sangat penting dari struktur data dan banyak dijumpai](https://reader031.fdocument.pub/reader031/viewer/2022021716/5c93281a09d3f2fb328c3c8b/html5/thumbnails/13.jpg)
13
function Akar (P : BinTree) infotype
{Mengirimkan nilai Akar pohon biner P}
function Left (P : BinTree) infotype
{Mengirimkan anak kiri pohon biner P}
function Right (P : BinTree) infotype
{Mengirimkan anak kanan pohon biner P}
![Page 14: 2. ARRAY (LARIK) - si.ilkom.unsri.ac.idsi.ilkom.unsri.ac.id/wp-content/uploads/2018/11/7.pdf · Pohon biner merupakan tipe yang sangat penting dari struktur data dan banyak dijumpai](https://reader031.fdocument.pub/reader031/viewer/2022021716/5c93281a09d3f2fb328c3c8b/html5/thumbnails/14.jpg)
14
function IsEmpty(P : BinTree)boolean
{ Test apakah sebuah pohon kosong, mengirimkan True jika kosong dan False jika tidak}
procedure MakeTree(input Akar : infotype, L : BinTree, R : BinTree, output P : BinTree)
{ K. Awal : sembarang
K. Akhir : Terbentuk sebuah pohon biner
Proses : Menghasilkan sebuah pohon biner dari Akar, L dan R}
![Page 15: 2. ARRAY (LARIK) - si.ilkom.unsri.ac.idsi.ilkom.unsri.ac.id/wp-content/uploads/2018/11/7.pdf · Pohon biner merupakan tipe yang sangat penting dari struktur data dan banyak dijumpai](https://reader031.fdocument.pub/reader031/viewer/2022021716/5c93281a09d3f2fb328c3c8b/html5/thumbnails/15.jpg)
15
{Traversal}
Procedur PreOrder(input P : BinTree)
{K. AWAL : P terdefinisi
K. AKHIR : Semua simpul P sudah
diproses secara preorder}
Procedure InOrder(input P : BinTree)
{K. AWAL : P terdefinisi
K. AKHIR : Semua simpul P sudah
diproses secara inorder}
![Page 16: 2. ARRAY (LARIK) - si.ilkom.unsri.ac.idsi.ilkom.unsri.ac.id/wp-content/uploads/2018/11/7.pdf · Pohon biner merupakan tipe yang sangat penting dari struktur data dan banyak dijumpai](https://reader031.fdocument.pub/reader031/viewer/2022021716/5c93281a09d3f2fb328c3c8b/html5/thumbnails/16.jpg)
16
Procedure PostOrder(input P : BinTree)
{K. AWAL : P terdefinisi
K. AKHIR : Semua simpul P sudah
diproses secara postorder}
Procedure PrintTree(input P : BinTree, h : integer)
{K. AWAL : P terdefinisi, h adalah jarak indentasi
K. AKHIR : Semua simpul P sudah ditulis dengan
indentasi}
![Page 17: 2. ARRAY (LARIK) - si.ilkom.unsri.ac.idsi.ilkom.unsri.ac.id/wp-content/uploads/2018/11/7.pdf · Pohon biner merupakan tipe yang sangat penting dari struktur data dan banyak dijumpai](https://reader031.fdocument.pub/reader031/viewer/2022021716/5c93281a09d3f2fb328c3c8b/html5/thumbnails/17.jpg)
17
{Search}
function Search(P : BinTree, X : infotype)boolean
{Mengirimkan True jika ada node P bernilai X, false
jika tidak}
{fungsi lain}
function NbElmt(P : BinTree)integer
{Mengirimkan banyaknya elemen (node) pohon
biner P}
![Page 18: 2. ARRAY (LARIK) - si.ilkom.unsri.ac.idsi.ilkom.unsri.ac.id/wp-content/uploads/2018/11/7.pdf · Pohon biner merupakan tipe yang sangat penting dari struktur data dan banyak dijumpai](https://reader031.fdocument.pub/reader031/viewer/2022021716/5c93281a09d3f2fb328c3c8b/html5/thumbnails/18.jpg)
18
function NbDaun(P : BinTree) integer
{ Mengirimkan banyaknya daun pohon biner P}
function IsUnerLeft(P : BinTree) boolean
{ Mengirimkan True jika pohon biner tidak
kosong P adalah pohon unerleft yaitu hanya
mempunyai sub pohon kiri}
function IsUnerRight(P : BinTree) boolean
{ Mengirimkan True jika pohon biner tidak
kosong P adalah pohon unerright yaitu hanya
mempunyai sub pohon kanan}
![Page 19: 2. ARRAY (LARIK) - si.ilkom.unsri.ac.idsi.ilkom.unsri.ac.id/wp-content/uploads/2018/11/7.pdf · Pohon biner merupakan tipe yang sangat penting dari struktur data dan banyak dijumpai](https://reader031.fdocument.pub/reader031/viewer/2022021716/5c93281a09d3f2fb328c3c8b/html5/thumbnails/19.jpg)
19
function IsBin(P : BinTree)boolean
{ Mengirimkan True jika pohon biner tidak kosong P adalah pohon biner yaitu mempunyai sub pohon kanan dan sub pohon kiri}
function IsSkewLeft(P : BinTree)boolean
{ Mengirimkan True jika pohon biner P adalah pohon condong kiri}
function IsSkewRight(P : BinTree)boolean
{ Mengirimkan True jika pohon biner P adalah pohon condong kanan}
![Page 20: 2. ARRAY (LARIK) - si.ilkom.unsri.ac.idsi.ilkom.unsri.ac.id/wp-content/uploads/2018/11/7.pdf · Pohon biner merupakan tipe yang sangat penting dari struktur data dan banyak dijumpai](https://reader031.fdocument.pub/reader031/viewer/2022021716/5c93281a09d3f2fb328c3c8b/html5/thumbnails/20.jpg)
20
function Tinggi(P : BinTree)integer
{ Mengirimkan tinggi dari pohon biner P}
function Level(P : BinTree, X : infotype)integer
{ Mengirimkan level dari node X yang merupakan
salah satu simpul dari pohon biner P}
{Operasi Lain}
![Page 21: 2. ARRAY (LARIK) - si.ilkom.unsri.ac.idsi.ilkom.unsri.ac.id/wp-content/uploads/2018/11/7.pdf · Pohon biner merupakan tipe yang sangat penting dari struktur data dan banyak dijumpai](https://reader031.fdocument.pub/reader031/viewer/2022021716/5c93281a09d3f2fb328c3c8b/html5/thumbnails/21.jpg)
21
Procedure AddDaunTerkiri(input/output P:BinTree, input X: infotype)
{K. AWAL : P boleh kosong
K. AKHIR : P bertambah simpulnya, dengan X adalah simpul daun terkiri}
Procedure AddDaun(input/output P:BinTree, input X, Y : infotype, input Kiri : boolean)
{K. AWAL : P tidak boleh kosong, X adalah salah satu daun pohon Biner P
K. AKHIR : P bertambah simpulnya, dengan Y adalah anak kiri X (jika kiri) atau sebagai anak kanan X (jika not kiri)}
![Page 22: 2. ARRAY (LARIK) - si.ilkom.unsri.ac.idsi.ilkom.unsri.ac.id/wp-content/uploads/2018/11/7.pdf · Pohon biner merupakan tipe yang sangat penting dari struktur data dan banyak dijumpai](https://reader031.fdocument.pub/reader031/viewer/2022021716/5c93281a09d3f2fb328c3c8b/html5/thumbnails/22.jpg)
22
Procedure DelDaunTerkiri(input/output P:BinTree, output X: infotype)
{K. AWAL : P tidak kosong
K. AKHIR: P dihapus daun terkirinya dan didealokasi, dengan X adalah info yang semula disimpan pada daun terkiri yang dihapus}
Procedure DelDaun(input/output P:BinTree, output X: infotype)
{K. AWAL : P tidak kosong, X adalah salah satu daun
K. AKHIR : X dihapus dari P}