ANALISA ALGORITMA
TREE / POHON
Binary Tree
Binary Tree merupakan salah satu bentuk struktur data tidak linear yang menggambarkan
hubungan yang bersifat hirarkis (hubungan one to many) antara elemen-elemen. Binary Tree
adalah tree dengan syarat bahwa tiap node hanya boleh memiliki maksimal dua subtree dan
kedua subtree tersebut harus terpisah. Binary Tree merupakan himpunan vertex-vertex yang
terdiri dari 2 subtree (dengan disjoint) yaitu subtree kiri dan subtree kanan. Setiap vertex dalam
binary tree mempunyai derajat keluar max = 2.
Sebuah pohon biner adalah grafik asiklis yang terhubung dimana setiap tingkatan dari susut
tidak lebih dari 3. Ini dapat ditunjukkan bahwa dalam pohon biner manapun, terdapat persis
dua atau lebih simpul dengan tingkat satu daripada yang terdapat dengan tingkat tiga, tetapi
bisa terdapat angka apa saja dari simpul dengan tingkat dua. Sebuah pohon biner berakar
merupakan sebuah grafik yang mempunyai satu dari sudutnya dengan tingkat tidak lebih dari
dua sebagai akar.
Dengan akar yang dipilih, setiap sudut akan memiliki ayah khusus, dan diatas dua anak
bagaimanapun juga, sejauh ini terdapat keterbatasan informasi untuk membedakan antara anak
kiri atau kanan. Jika kita membuang keperluan yang tak terkoneksi, membolehkan bermacam
koneksi dalam komponen di grafik, kita memanggil struktur sebuah hutan.
Sebuah jalan lain untuk mendefinisikan pohon biner melalui definisi rekursif pada grafik
langsung. Sebuah pohon biner dapat berarti :
- Sebuah sudut tunggal.
- Sebuah graf yang dibentuk dengan mengambil dua pohon biner, menambahkan sebuah sudut,
dan menambahkan sebuah panah langsung dari sudut yang baru ke akar dai setiap pohon biner.
Pohon biner dapat dikontruksi dari bahasa pemrogaraman primitif dalam berbagai cara. Dalam
bahasa yang menggunakan records dan referensi. Pohon biner secara khas dikontruksi dengan
mengambil sebuah struktur simpul pohon yang memuat beberapa data dan referensi ke anak
kiri dan anak kanan. Kadang-kadang itu juga memuat sebuah referensi ke ayahnya yang khas.
Jika sebuah simpul mempunyai kurang dari dua anak, beberapa penunjuk anak diaatur kedalam
nilai nol khusus atau kesebuah simpul sentinel.
Pohon biner dapat juga disimpan sebagai struktur data implisit dalam array, dan jika pohon
tersebut merupakan sebuah pohon biner lengkap, metode ini tidak boros tempat. Dalam
penyusunan yang rapat ini, jika sebuah simpul memiliki indeks i, anaknya dapat ditemukan
pada indeks ke-2i+1 dan 2i+2, meskipun ayahnya (jika ada) ditemukan pada indeks lantai ((i-
1)/2) (asumsikan akarnya memiliki indeks kosong). Metode ini menguntungkan dari banyak
penyimpanan yang rapat dan memiliki referensi lokal yang lebih baik, teristimewa selama
sebuah preordeer traversal.
1. Jika Pohon mempunyai Simpul sebanyak n, maka banyaknya ruas atau edge adalah (n-1).
2. Mempunyai Simpul Khusus yang disebut Root, jika Simpul tersebut memiliki derajat keluar
>= 0, dan derajat masuk = 0.
3. Mempunyai Simpul yang disebut sebagai Daun / Leaf, jika Simpul tersebut berderajat keluar
= 0, dan berderajat masuk = 1.
4. Setiap Simpul mempunyai Tingkatan / Level yang dimulai dari Root yang Levelnya = 1
sampai dengan Level ke - n pada daun paling bawah. Simpul yang mempunyai Level sama
disebut Bersaudara atau Brother atau Stribling.
5. Pohon mempunyai Ketinggian atau Kedalaman atau Height, yang merupakan Level tertinggi
6. Pohon mempunyai Weight atau Berat atau Bobot, yang banyaknya daun (leaf) pada Pohon.
7. Banyaknya Simpul Maksimum sampai Level N adalah :
2 (N) - 1
8. Banyaknya Simpul untuk setiap Level I adalah :
N
∑ 2 ( I – 1)
I=1
Sesuai dengan definisi tersebut, maka tiap node dalam binary tree hanya boleh
memiliki paling banyak dua child.
Binary Tree yang tiap nodenya (kecuali leaf) memiliki dua child dan tiap subtree harus
mempunyai panjang path yang sama.
Mirip dengan Full Binary Tree, namun tiap subtree boleh memiliki panjang path yang
berbeda. Node kecuali leaf memiliki 0 atau 2 child.
yakni Binary Tree yang semua nodenya (kecuali leaf) hanya memiliki satu child.
Implementasi Binary Tree
Binary Tree dapat diimplemntasikan dalam Pascal dengan menggunakan double Linked List.
Untuk nodenya, bisa dideklarasikan sbb :
Type Tree = ^node;
Node = record
Isi : TipeData;
Left,Right : Tree;
end;
Contoh ilustrasi Tree yang disusun dengan double linked list :
Tree bisa didefinisikan sebagai kumpulan simpul/node dengan satu elemen khusus
yang disebut Root dan node lainnya ( disebut subtree). Dalam tree terdapat jenis-jenis tree yang
memiliki sifat khusus, diantaranya adalah binary tree. Binary Tree adalah non linear linked list
dimana masing-masing nodenya menunjuk paling banyak 2 node yang lain. Gambaran pohon
biner ini seperti gambar berikut :
BT
Data
Node List
Node(int) preorderTraversal()
sisipDt(int) inorderTraversal()
postorderTraversal()
B. Pembahasan
Praktikum 1
1. class simpul {
2. public
3. String elemen;
4. simpul kiri;
5. simpul kanan;
6. public
7. void ngisiElemen(String ELEMEN) {
8. elemen = ELEMEN;
9. }
10. }
11. class pohon {
12. public simpul akar;
13. public
14. void deklarasiPohon() {
15. akar = null;
16. }
17. simpul tambahSimpul(simpul Penunjuk, String ELEMEN) {
18. if (Penunjuk == null) {
19. simpul baru = new simpul();
20. baru.ngisiElemen(ELEMEN);
21. baru.kiri = null;
22. baru.kanan = null;
23. Penunjuk = baru;
24. return(Penunjuk);
25. }
26. else {
27. if (ELEMEN.compareTo(Penunjuk.elemen) < 0) {
28. Penunjuk.kiri = tambahSimpul (Penunjuk.kiri, ELEMEN);
29. return(Penunjuk);
30. }
31. else {
32. Penunjuk.kanan = tambahSimpul(Penunjuk.kanan, ELEMEN);
33. return(Penunjuk);
34. }
35. }
36. }
37.
38. void preOrder(simpul Penunjuk) {
39. if (Penunjuk !=null) {
40. System.out.print(Penunjuk.elemen + ",");
41. preOrder(Penunjuk.kiri);
42. preOrder(Penunjuk.kanan);
43. }
44. }
45. void inOrder(simpul Penunjuk) {
46. if(Penunjuk !=null) {
47. inOrder(Penunjuk.kiri);
48. System.out.print(Penunjuk.elemen + ",");
49. inOrder(Penunjuk.kanan);
50. }
51. }
52. void postOrder (simpul Penunjuk) {
53. if(Penunjuk != null) {
54. postOrder(Penunjuk.kiri);
55. postOrder(Penunjuk.kanan);
56. System.out.print(Penunjuk.elemen + ",");
57. }
58. }
59. }
60. class ProgramPohonBiner {
61. public static void main(String[] args) {
62. pohon PohonBiner = new pohon();
63. PohonBiner.deklarasiPohon();
64. PohonBiner.akar = PohonBiner.tambahSimpul(PohonBiner.akar, "M");
65. PohonBiner.akar = PohonBiner.tambahSimpul(PohonBiner.akar, "P");
66. PohonBiner.akar = PohonBiner.tambahSimpul(PohonBiner.akar, "D");
67. PohonBiner.akar = PohonBiner.tambahSimpul(PohonBiner.akar, "A");
68. PohonBiner.akar = PohonBiner.tambahSimpul(PohonBiner.akar, "S");
69. PohonBiner.akar = PohonBiner.tambahSimpul(PohonBiner.akar, "K");
70. PohonBiner.akar = PohonBiner.tambahSimpul(PohonBiner.akar, "N");
71. PohonBiner.akar = PohonBiner.tambahSimpul(PohonBiner.akar, "G");
72. PohonBiner.akar = PohonBiner.tambahSimpul(PohonBiner.akar, "O");
73. PohonBiner.akar = PohonBiner.tambahSimpul(PohonBiner.akar, "L");
74. PohonBiner.akar = PohonBiner.tambahSimpul(PohonBiner.akar, "W");
75. PohonBiner.akar = PohonBiner.tambahSimpul(PohonBiner.akar, "F");
76. PohonBiner.akar = PohonBiner.tambahSimpul(PohonBiner.akar, "J");
77. PohonBiner.akar = PohonBiner.tambahSimpul(PohonBiner.akar, "T");
78. PohonBiner.akar = PohonBiner.tambahSimpul(PohonBiner.akar, "H");
79. PohonBiner.akar = PohonBiner.tambahSimpul(PohonBiner.akar, "U");
80. PohonBiner.preOrder(PohonBiner.akar);
Baris ke 66 objek pohon biner mengakses atribut akar sama dengan pohon biner mengakses
method tambahSimpul dengan parameter pohonbiner mengakses atribut akar ,
dan huruf (D)
Baris ke 67 objek pohon biner mengakses atribut akar sama dengan pohon biner mengakses
method tambahSimpul dengan parameter pohonbiner mengakses atribut akar ,
dan huruf (A)
Baris ke 68 objek pohon biner mengakses atribut akar sama dengan pohon biner mengakses
method tambahSimpul dengan parameter pohonbiner mengakses atribut akar ,
dan huruf (S)
Baris ke 69 objek pohon biner mengakses atribut akar sama dengan pohon biner mengakses
method tambahSimpul dengan parameter pohonbiner mengakses atribut akar ,
dan huruf (K)
Baris ke 70 objek pohon biner mengakses atribut akar sama dengan pohon biner mengakses
method tambahSimpul dengan parameter pohonbiner mengakses atribut akar ,
dan huruf (N)
Baris ke 71 objek pohon biner mengakses atribut akar sama dengan pohon biner mengakses
method tambahSimpul dengan parameter pohonbiner mengakses atribut akar ,
dan huruf (G)
Baris ke 72 objek pohon biner mengakses atribut akar sama dengan pohon biner mengakses
method tambahSimpul dengan parameter pohonbiner mengakses atribut akar ,
dan huruf (O)
Baris ke 73 objek pohon biner mengakses atribut akar sama dengan pohon biner mengakses
method tambahSimpul dengan parameter pohonbiner mengakses atribut akar ,
dan huruf (L)
Baris ke 74 objek pohon biner mengakses atribut akar sama dengan pohon biner mengakses
method tambahSimpul dengan parameter pohonbiner mengakses atribut akar ,
dan huruf (W)
Baris ke 75 objek pohon biner mengakses atribut akar sama dengan pohon biner mengakses
method tambahSimpul dengan parameter pohonbiner mengakses atribut akar ,
dan huruf (F)
Baris ke 76 objek pohon biner mengakses atribut akar sama dengan pohon biner mengakses
method tambahSimpul dengan parameter pohonbiner mengakses atribut akar ,
dan huruf (J)
Baris ke 77 objek pohon biner mengakses atribut akar sama dengan pohon biner mengakses
method tambahSimpul dengan parameter pohonbiner mengakses atribut akar ,
dan huruf (T)
Baris ke 78 objek pohon biner mengakses atribut akar sama dengan pohon biner mengakses
method tambahSimpul dengan parameter pohonbiner mengakses atribut akar ,
dan huruf (H)
Baris ke 79 objek pohon biner mengakses atribut akar sama dengan pohon biner mengakses
method tambahSimpul dengan parameter pohonbiner mengakses atribut akar ,
dan huruf (U)
Baris ke 80 objek pohon biner mengakses method preOrder mengeluarkan nilai
preOrder(Pohonbiner mengakses )
Praktikum 2
1. public
2. class simpul {
3. String elemen;
4. simpul kiri;
5. simpul kanan;
6. public
7. void ngisiElemen(String ELEMEN) {
8. elemen = ELEMEN;
9. }
10. }
11. class pohon {
12. public simpul akar;
13. public
14. void deklarasiPohon() {
15. akar = null;
16. }
17. simpul tambahSimpul(simpul Penunjuk, String ELEMEN) {
18. if (Penunjuk == null) {
19. simpul baru = new simpul();
20. baru.ngisiElemen(ELEMEN);
21. baru.kiri = null;
22. baru.kanan = null;
23. Penunjuk = baru;
24. return(Penunjuk);
25. }
26. else {
27. if (ELEMEN.compareTo(Penunjuk.elemen) < 0) {
28. Penunjuk.kiri = tambahSimpul (Penunjuk.kiri, ELEMEN);
29. return(Penunjuk);
30. }
31. else {
32. Penunjuk.kanan = tambahSimpul(Penunjuk.kanan, ELEMEN);
33. return(Penunjuk);
34. }
35. }
36. }
37.
38. void preOrder(simpul Penunjuk) {
39. if (Penunjuk !=null) {
40. System.out.print(Penunjuk.elemen + ",");
41. preOrder(Penunjuk.kiri);
42. preOrder(Penunjuk.kanan);
43. }
44. }
45. void inOrder(simpul Penunjuk) {
46. if(Penunjuk !=null) {
47. inOrder(Penunjuk.kiri);
48. System.out.print(Penunjuk.elemen + ",");
49. inOrder(Penunjuk.kanan);
50. }
51. }
52. void postOrder (simpul Penunjuk) {
53. if(Penunjuk != null) {
54. postOrder(Penunjuk.kiri);
55. postOrder(Penunjuk.kanan);
56. System.out.print(Penunjuk.elemen + ",");
57. }
58. }
59. }
60. class ProgramPohonBiner {
61. public static void main(String[] args) {
62. pohon PohonBiner = new pohon();
63. PohonBiner.deklarasiPohon();
64. PohonBiner.akar = PohonBiner.tambahSimpul(PohonBiner.akar, "M");
65. PohonBiner.akar = PohonBiner.tambahSimpul(PohonBiner.akar, "P");
66. PohonBiner.akar = PohonBiner.tambahSimpul(PohonBiner.akar, "D");
67. PohonBiner.akar = PohonBiner.tambahSimpul(PohonBiner.akar, "A");
68. PohonBiner.akar = PohonBiner.tambahSimpul(PohonBiner.akar, "S");
69. PohonBiner.akar = PohonBiner.tambahSimpul(PohonBiner.akar, "K");
70. PohonBiner.akar = PohonBiner.tambahSimpul(PohonBiner.akar, "N");
71. PohonBiner.akar = PohonBiner.tambahSimpul(PohonBiner.akar, "G");
72. PohonBiner.akar = PohonBiner.tambahSimpul(PohonBiner.akar, "O");
73. PohonBiner.akar = PohonBiner.tambahSimpul(PohonBiner.akar, "L");
74. PohonBiner.akar = PohonBiner.tambahSimpul(PohonBiner.akar, "W");
75. PohonBiner.akar = PohonBiner.tambahSimpul(PohonBiner.akar, "F");
76. PohonBiner.akar = PohonBiner.tambahSimpul(PohonBiner.akar, "J");
77. PohonBiner.akar = PohonBiner.tambahSimpul(PohonBiner.akar, "T");
78. PohonBiner.akar = PohonBiner.tambahSimpul(PohonBiner.akar, "H");
79. PohonBiner.akar = PohonBiner.tambahSimpul(PohonBiner.akar, "U");
80. PohonBiner.preOrder(PohonBiner.akar);
81. PohonBiner.inOrder(PohonBiner.akar);
Baris ke -1 class simpul
Baris ke 2-5 delkarasi elemen tipe data String,simpul kanan dan simpul kiri
Baris ke 6-8 method ngisielemen dengan parameter Elemen tipe datanya Sring,elemen sama
Sama dengan ELEMEN
Baris ke 11 class pohon
Baris ke 12-16 public simpul akar,method deklarasi pohon ,akar sama dengan null.
Baris ke 17-37 method tambahsimpul dengan parameter simpul petunjuk,ELEMEN dengan
tipe data string.Jika suatu kondisi penunjuk = null maka simpul membuat
objek baru,objek baru mengakses method ngisielemen dengan atribut
ELEMEN. Objek baru mengakses atribut kiri =null, objek baru mengakses
atribut kanan =null,penunjuk = baru,mengembalikan nilai penunjuk.Dan jika
bukan maka masuk percabangan lagi jika suatu kondisi ELEMEN.compareTo
(Penunjuk.elemen) < 0 Atrribut ELEMEN mengakses untuk membandingkan
atribut penunjuk yang mengakses elemen dengan kurang dari nol,maka
atribut penunjuk mengakses atribut kiri sama dengan method tambah simpul
dengan parameter atribut penunjuk mengakses atribut kiri ,ELEMEN.
mengembalikan nilai penunjuk .Dan jika bukan maka penunjuk mengakses
kanan sama dengan method tambahsimpul dengan parameter atribut
penunjuk mengakses atribut kanan,ELEMEN.mengembalikan nilai penunjuk.
Baris ke 38-44 method preOrder dengan parameter simpul penunjuk .jika kondisi penunjuk
tidak sama dengan null maka nilai method preOrder petunjuk mengakses kiri
, maka nilai method preOrder petunjuk mengakses kanan,output nya nilai
penunjuk mengakses ELEMEN (Penunjuk.ELEMEN) ditambah dengan (,).
Baris ke 45-51 method inOlder dengan parameter simpul penunjuk .jika kondisi penunjuk
tidak sama dengan null maka nilai method inOlder petunjuk mengakses kiri
,output nya nilai penunjuk mengakses ELEMEN (Penunjuk.ELEMEN)
ditambah dengan (,).
Baris ke 52-59 method postOrder dengan parameter simpul penunjuk .jika kondisi penunjuk
tidak sama dengan null maka nilai method postOrder petunjuk mengakses
kiri, maka nilai method postOrder petunjuk mengakses kanan,output nya
nilai penunjuk mengakses ELEMEN (Penunjuk.ELEMEN) ditambah dengan
(,).
Baris ke 60 class program pohon biner
Baris ke 61-63 method utama (yang pertama kali dieksekusi),membuat objek baru
Pohonbiner.pohonbiner mengakses method deklarasi pohon.
Baris ke 64 objek pohon biner mengakses atribut akar sama dengan pohon biner mengakses
method tambahSimpul dengan parameter pohonbiner mengakses atribut akar ,
dan huruf (M)
Baris ke 65 objek pohon biner mengakses atribut akar sama dengan pohon biner mengakses
method tambahSimpul dengan parameter pohonbiner mengakses atribut akar ,
dan huruf (P)
Baris ke 66 objek pohon biner mengakses atribut akar sama dengan pohon biner mengakses
method tambahSimpul dengan parameter pohonbiner mengakses atribut akar ,
dan huruf (D)
Baris ke 67 objek pohon biner mengakses atribut akar sama dengan pohon biner mengakses
method tambahSimpul dengan parameter pohonbiner mengakses atribut akar ,
dan huruf (A)
Baris ke 68 objek pohon biner mengakses atribut akar sama dengan pohon biner mengakses
method tambahSimpul dengan parameter pohonbiner mengakses atribut akar ,
dan huruf (S)
Baris ke 69 objek pohon biner mengakses atribut akar sama dengan pohon biner mengakses
method tambahSimpul dengan parameter pohonbiner mengakses atribut akar ,
dan huruf (K)
Baris ke 70 objek pohon biner mengakses atribut akar sama dengan pohon biner mengakses
method tambahSimpul dengan parameter pohonbiner mengakses atribut akar ,
dan huruf (N)
Baris ke 71 objek pohon biner mengakses atribut akar sama dengan pohon biner mengakses
method tambahSimpul dengan parameter pohonbiner mengakses atribut akar ,
dan huruf (G)
Baris ke 72 objek pohon biner mengakses atribut akar sama dengan pohon biner mengakses
method tambahSimpul dengan parameter pohonbiner mengakses atribut akar ,
dan huruf (O)
Baris ke 73 objek pohon biner mengakses atribut akar sama dengan pohon biner mengakses
method tambahSimpul dengan parameter pohonbiner mengakses atribut akar ,
dan huruf (L)
Baris ke 74 objek pohon biner mengakses atribut akar sama dengan pohon biner mengakses
method tambahSimpul dengan parameter pohonbiner mengakses atribut akar ,
dan huruf (W)
Baris ke 75 objek pohon biner mengakses atribut akar sama dengan pohon biner mengakses
method tambahSimpul dengan parameter pohonbiner mengakses atribut akar ,
dan huruf (F)
Baris ke 76 objek pohon biner mengakses atribut akar sama dengan pohon biner mengakses
method tambahSimpul dengan parameter pohonbiner mengakses atribut akar ,
dan huruf (J)
Baris ke 77 objek pohon biner mengakses atribut akar sama dengan pohon biner mengakses
method tambahSimpul dengan parameter pohonbiner mengakses atribut akar ,
dan huruf (T)
Baris ke 78 objek pohon biner mengakses atribut akar sama dengan pohon biner mengakses
method tambahSimpul dengan parameter pohonbiner mengakses atribut akar ,
dan huruf (H)
Baris ke 79 objek pohon biner mengakses atribut akar sama dengan pohon biner mengakses
method tambahSimpul dengan parameter pohonbiner mengakses atribut akar ,
dan huruf (U)
Baris ke 80 objek pohon biner mengakses method preOrder mengeluarkan nilai
preOrder(Pohonbiner mengakses ) maka outputnya nilai preOrder
Baris ke 81 objek pohon biner mengakses method preOrder mengeluarkan nilai
inOrder(Pohonbiner mengakses ) maka outputnya nilai inOrder
Praktikum 3
1. public
2. class simpul {
3. String elemen;
4. simpul kiri;
5. simpul kanan;
6. public
7. void ngisiElemen(String ELEMEN) {
8. elemen = ELEMEN;
9. }
10. }
11. class pohon {
12. public simpul akar;
13. public
14. void deklarasiPohon() {
15. akar = null;
16. }
17. simpul tambahSimpul(simpul Penunjuk, String ELEMEN) {
18. if (Penunjuk == null) {
19. simpul baru = new simpul();
20. baru.ngisiElemen(ELEMEN);
21. baru.kiri = null;
22. baru.kanan = null;
23. Penunjuk = baru;
24. return(Penunjuk);
25. }
26. else {
27. if (ELEMEN.compareTo(Penunjuk.elemen) < 0) {
28. Penunjuk.kiri = tambahSimpul (Penunjuk.kiri, ELEMEN);
29. return(Penunjuk);
30. }
31. else {
32. Penunjuk.kanan = tambahSimpul(Penunjuk.kanan, ELEMEN);
33. return(Penunjuk);
34. }
35. }
36. }
37.
38. void preOrder(simpul Penunjuk) {
39. if (Penunjuk !=null) {
40. System.out.print(Penunjuk.elemen + ",");
41. preOrder(Penunjuk.kiri);
42. preOrder(Penunjuk.kanan);
43. }
44. }
45. void inOrder(simpul Penunjuk) {
46. if(Penunjuk !=null) {
47. inOrder(Penunjuk.kiri);
48. System.out.print(Penunjuk.elemen + ",");
49. inOrder(Penunjuk.kanan);
50. }
51. }
52. void postOrder (simpul Penunjuk) {
53. if(Penunjuk != null) {
54. postOrder(Penunjuk.kiri);
55. postOrder(Penunjuk.kanan);
56. System.out.print(Penunjuk.elemen + ",");
57. }
58. }
59. }
60. class ProgramPohonBiner {
61. public static void main(String[] args) {
62. pohon PohonBiner = new pohon();
63. PohonBiner.deklarasiPohon();
64. PohonBiner.akar = PohonBiner.tambahSimpul(PohonBiner.akar, "M");
65. PohonBiner.akar = PohonBiner.tambahSimpul(PohonBiner.akar, "P");
66. PohonBiner.akar = PohonBiner.tambahSimpul(PohonBiner.akar, "D");
67. PohonBiner.akar = PohonBiner.tambahSimpul(PohonBiner.akar, "A");
68. PohonBiner.akar = PohonBiner.tambahSimpul(PohonBiner.akar, "S");
69. PohonBiner.akar = PohonBiner.tambahSimpul(PohonBiner.akar, "K");
70. PohonBiner.akar = PohonBiner.tambahSimpul(PohonBiner.akar, "N");
71. PohonBiner.akar = PohonBiner.tambahSimpul(PohonBiner.akar, "G");
72. PohonBiner.akar = PohonBiner.tambahSimpul(PohonBiner.akar, "O");
73. PohonBiner.akar = PohonBiner.tambahSimpul(PohonBiner.akar, "L");
74. PohonBiner.akar = PohonBiner.tambahSimpul(PohonBiner.akar, "W");
75. PohonBiner.akar = PohonBiner.tambahSimpul(PohonBiner.akar, "F");
76. PohonBiner.akar = PohonBiner.tambahSimpul(PohonBiner.akar, "J");
77. PohonBiner.akar = PohonBiner.tambahSimpul(PohonBiner.akar, "T");
78. PohonBiner.akar = PohonBiner.tambahSimpul(PohonBiner.akar, "H");
79. PohonBiner.akar = PohonBiner.tambahSimpul(PohonBiner.akar, "U");
80. PohonBiner.preOrder(PohonBiner.akar);
81. PohonBiner.inOrder(PohonBiner.akar);
82. PohonBiner.postOrder(PohonBiner.akar);
Baris ke -1 class simpul
Baris ke 2-5 delkarasi elemen tipe data String,simpul kanan dan simpul kiri
Baris ke 6-8 method ngisielemen dengan parameter Elemen tipe datanya Sring,elemen sama
Sama dengan ELEMEN
Baris ke 11 class pohon
Baris ke 12-16 public simpul akar,method deklarasi pohon ,akar sama dengan null.
Baris ke 17-37 method tambahsimpul dengan parameter simpul petunjuk,ELEMEN dengan
tipe data string.Jika suatu kondisi penunjuk = null maka simpul membuat
objek baru,objek baru mengakses method ngisielemen dengan atribut
ELEMEN. Objek baru mengakses atribut kiri =null, objek baru mengakses
atribut kanan =null,penunjuk = baru,mengembalikan nilai penunjuk.Dan jika
bukan maka masuk percabangan lagi jika suatu kondisi ELEMEN.compareTo
(Penunjuk.elemen) < 0 Atrribut ELEMEN mengakses untuk membandingkan
atribut penunjuk yang mengakses elemen dengan kurang dari nol,maka
atribut penunjuk mengakses atribut kiri sama dengan method tambah simpul
dengan parameter atribut penunjuk mengakses atribut kiri ,ELEMEN.
mengembalikan nilai penunjuk .Dan jika bukan maka penunjuk mengakses
kanan sama dengan method tambahsimpul dengan parameter atribut
penunjuk mengakses atribut kanan,ELEMEN.mengembalikan nilai penunjuk.
Baris ke 38-44 method preOrder dengan parameter simpul penunjuk .jika kondisi penunjuk
tidak sama dengan null maka nilai method preOrder petunjuk mengakses kiri
, maka nilai method preOrder petunjuk mengakses kanan,output nya nilai
penunjuk mengakses ELEMEN (Penunjuk.ELEMEN) ditambah dengan (,).
Baris ke 45-51 method inOlder dengan parameter simpul penunjuk .jika kondisi penunjuk
tidak sama dengan null maka nilai method inOlder petunjuk mengakses kiri
,output nya nilai penunjuk mengakses ELEMEN (Penunjuk.ELEMEN)
ditambah dengan (,).
Baris ke 52-59 method postOrder dengan parameter simpul penunjuk .jika kondisi penunjuk
tidak sama dengan null maka nilai method postOrder petunjuk mengakses
kiri, maka nilai method postOrder petunjuk mengakses kanan,output nya
nilai penunjuk mengakses ELEMEN (Penunjuk.ELEMEN) ditambah dengan
(,).
Baris ke 60 class program pohon biner
Baris ke 61-63 method utama (yang pertama kali dieksekusi),membuat objek baru
Pohonbiner.pohonbiner mengakses method deklarasi pohon.
Baris ke 64 objek pohon biner mengakses atribut akar sama dengan pohon biner mengakses
method tambahSimpul dengan parameter pohonbiner mengakses atribut akar ,
dan huruf (M)
Baris ke 65 objek pohon biner mengakses atribut akar sama dengan pohon biner mengakses
method tambahSimpul dengan parameter pohonbiner mengakses atribut akar ,
dan huruf (P)
Baris ke 66 objek pohon biner mengakses atribut akar sama dengan pohon biner mengakses
method tambahSimpul dengan parameter pohonbiner mengakses atribut akar ,
dan huruf (D)
Baris ke 67 objek pohon biner mengakses atribut akar sama dengan pohon biner mengakses
method tambahSimpul dengan parameter pohonbiner mengakses atribut akar ,
dan huruf (A)
Baris ke 68 objek pohon biner mengakses atribut akar sama dengan pohon biner mengakses
method tambahSimpul dengan parameter pohonbiner mengakses atribut akar ,
dan huruf (S)
Baris ke 69 objek pohon biner mengakses atribut akar sama dengan pohon biner mengakses
method tambahSimpul dengan parameter pohonbiner mengakses atribut akar ,
dan huruf (K)
Baris ke 70 objek pohon biner mengakses atribut akar sama dengan pohon biner mengakses
method tambahSimpul dengan parameter pohonbiner mengakses atribut akar ,
dan huruf (N)
Baris ke 71 objek pohon biner mengakses atribut akar sama dengan pohon biner mengakses
method tambahSimpul dengan parameter pohonbiner mengakses atribut akar ,
dan huruf (G)
Baris ke 72 objek pohon biner mengakses atribut akar sama dengan pohon biner mengakses
method tambahSimpul dengan parameter pohonbiner mengakses atribut akar ,
dan huruf (O)
Baris ke 73 objek pohon biner mengakses atribut akar sama dengan pohon biner mengakses
method tambahSimpul dengan parameter pohonbiner mengakses atribut akar ,
dan huruf (L)
Baris ke 74 objek pohon biner mengakses atribut akar sama dengan pohon biner mengakses
method tambahSimpul dengan parameter pohonbiner mengakses atribut akar ,
dan huruf (W)
Baris ke 75 objek pohon biner mengakses atribut akar sama dengan pohon biner mengakses
method tambahSimpul dengan parameter pohonbiner mengakses atribut akar ,
dan huruf (F)
Baris ke 76 objek pohon biner mengakses atribut akar sama dengan pohon biner mengakses
method tambahSimpul dengan parameter pohonbiner mengakses atribut akar ,
dan huruf (J)
Baris ke 77 objek pohon biner mengakses atribut akar sama dengan pohon biner mengakses
method tambahSimpul dengan parameter pohonbiner mengakses atribut akar ,
dan huruf (T)
Baris ke 78 objek pohon biner mengakses atribut akar sama dengan pohon biner mengakses
method tambahSimpul dengan parameter pohonbiner mengakses atribut akar ,
dan huruf (H)
Baris ke 79 objek pohon biner mengakses atribut akar sama dengan pohon biner mengakses
method tambahSimpul dengan parameter pohonbiner mengakses atribut akar ,
dan huruf (U)
Baris ke 80 objek pohon biner mengakses method preOrder mengeluarkan nilai
preOrder(Pohonbiner mengakses ) maka outputnya nilai preOrder
Baris ke 81 objek pohon biner mengakses method inOrder mengeluarkan nilai
inOrder(Pohonbiner mengakses ) maka outputnya nilai inOrder
Baris ke 82 objek pohon biner mengakses method postOrder mengeluarkan nilai
postOrder (Pohonbiner mengakses ) maka outputnya nilai postOrder.
Latihan
simpul {
public
String elemen;
simpul kiri;
simpul kanan;
elemen = ELEMEN;
class pohon {
akar = null;
if (Penunjuk == null) {
baru.ngisiElemen(ELEMEN);
baru.kiri = null;
baru.kanan = null;
Penunjuk = baru;
return(Penunjuk);
else {
if (ELEMEN.compareTo(Penunjuk.elemen) < 0) {
return(Penunjuk);
else {
return(Penunjuk);
if (Penunjuk !=null) {
System.out.print(Penunjuk.elemen + ",");
preOrder(Penunjuk.kiri);
preOrder(Penunjuk.kanan);
if(Penunjuk !=null) {
inOrder(Penunjuk.kiri);
System.out.print(Penunjuk.elemen + ",");
inOrder(Penunjuk.kanan);
postOrder(Penunjuk.kiri);
postOrder(Penunjuk.kanan);
System.out.print(Penunjuk.elemen + ",");
class ProgramPohonBiner1 {
String pilihan;
System.out.println("================================");
System.out.println("Key");
System.out.println(" A = PreOrder");
System.out.println("");
System.out.println(" B = inOrder");
System.out.println("");
System.out.println(" C = postOrder");
System.out.println("");
System.out.println("================================");
pilihan = m.nextLine();
switch(pilihan) {
case "A":
System.out.println("PreOrder");
PohonBiner.preOrder(PohonBiner.akar);
System.out.println("");
break;
case "B":
System.out.println("inOrder");
PohonBiner.inOrder(PohonBiner.akar);
System.out.println("");
break;
case "C":
System.out.println("postOrder");
PohonBiner.postOrder(PohonBiner.akar);
System.out.println("");
break;
default:
System.out.println("eror");
Tugas
package tree;
import java.util.Scanner;
class simpul {
public
String elemen;
simpul kiri;
simpul kanan;
elemen = ELEMEN;
class pohon {
akar = null;
baru.ngisiElemen(ELEMEN);
baru.kiri = null;
baru.kanan = null;
Penunjuk = baru;
return(Penunjuk);
else {
if (ELEMEN.compareTo(Penunjuk.elemen) < 0) {
return(Penunjuk);
else {
return(Penunjuk);
if (Penunjuk !=null) {
System.out.print(Penunjuk.elemen + ",");
preOrder(Penunjuk.kiri);
preOrder(Penunjuk.kanan);
}
public void inOrder(simpul Penunjuk) {
if(Penunjuk !=null) {
inOrder(Penunjuk.kiri);
System.out.print(Penunjuk.elemen + ",");
inOrder(Penunjuk.kanan);
if(Penunjuk != null) {
postOrder(Penunjuk.kiri);
postOrder(Penunjuk.kanan);
System.out.print(Penunjuk.elemen + ",");
String jawab;
tree Naik = new tree();
Naik.tampilmenu();
while(running) {
jawab = m.nextLine();
if( jawab.equalsIgnoreCase("ya") ){
running = false;
else if(jawab.equalsIgnoreCase("tidak")){
Naik.tampilmenu();
else{
System.out.println("Error");
String pilihan;
System.out.println("================================");
System.out.println("Key");
System.out.println(" A = PreOrder");
System.out.println("");
System.out.println(" B = inOrder");
System.out.println("");
System.out.println(" C = postOrder");
System.out.println("");
System.out.println("================================");
pilihan = m.nextLine();
switch(pilihan) {
case "A":
System.out.println("PreOrder");
PohonBiner.preOrder(PohonBiner.akar);
System.out.println("");
break;
case "B":
System.out.println("inOrder");
PohonBiner.inOrder(PohonBiner.akar);
System.out.println("");
break;
case "C":
System.out.println("postOrder");
PohonBiner.postOrder(PohonBiner.akar);
System.out.println("");
break;
default:
System.out.println("eror");
}
C. Kesimpulan
1. Binary Tree adalah sebuah pohon biner, dimana tiap node memiliki tepat 2 sub-tree
(memiliki maksimal 2 cabang/degree). Binary tree digunakan untuk data yang terurut
secara hirarki.
2. Binary Tree dapat direpresentasikan dengan menggunakan Array maupun linked list.
Contohnya untuk membuat program tingkatan pegawai dalam perusahaan.
1.Praktikum 1 Hasil apakah yang didapat? Catatlah dalam laporan anda dan jelaskan mengapa bisa
demikian.
2. Praktikum 2 Hasil apakah yang didapat? Catatlah dalam laporan anda dan jelaskan mengapa bisa
demikian.
3. Praktikum 3 Hasil apakah yang didapat? Catatlah dalam laporan anda dan jelaskan mengapa bisa
demikian.
Jawab
Praktikum 1
1. class simpul {
2. public
3. String elemen;
4. simpul kiri;
5. simpul kanan;
6. public
7. void ngisiElemen(String ELEMEN) {
8. elemen = ELEMEN;
9. }
10. }
11. class pohon {
12. public simpul akar;
13. public
14. void deklarasiPohon() {
15. akar = null;
16. }
17. simpul tambahSimpul(simpul Penunjuk, String ELEMEN) {
18. if (Penunjuk == null) {
19. simpul baru = new simpul();
20. baru.ngisiElemen(ELEMEN);
21. baru.kiri = null;
22. baru.kanan = null;
23. Penunjuk = baru;
24. return(Penunjuk);
25. }
26. else {
27. if (ELEMEN.compareTo(Penunjuk.elemen) < 0) {
28. Penunjuk.kiri = tambahSimpul (Penunjuk.kiri, ELEMEN);
29. return(Penunjuk);
30. }
31. else {
32. Penunjuk.kanan = tambahSimpul(Penunjuk.kanan, ELEMEN);
33. return(Penunjuk);
34. }
35. }
36. }
37.
38. void preOrder(simpul Penunjuk) {
39. if (Penunjuk !=null) {
40. System.out.print(Penunjuk.elemen + ",");
41. preOrder(Penunjuk.kiri);
42. preOrder(Penunjuk.kanan);
43. }
44. }
45. void inOrder(simpul Penunjuk) {
46. if(Penunjuk !=null) {
47. inOrder(Penunjuk.kiri);
48. System.out.print(Penunjuk.elemen + ",");
49. inOrder(Penunjuk.kanan);
50. }
51. }
52. void postOrder (simpul Penunjuk) {
53. if(Penunjuk != null) {
54. postOrder(Penunjuk.kiri);
55. postOrder(Penunjuk.kanan);
56. System.out.print(Penunjuk.elemen + ",");
57. }
58. }
59. }
60. class ProgramPohonBiner {
61. public static void main(String[] args) {
62. pohon PohonBiner = new pohon();
63. PohonBiner.deklarasiPohon();
64. PohonBiner.akar = PohonBiner.tambahSimpul(PohonBiner.akar, "M");
65. PohonBiner.akar = PohonBiner.tambahSimpul(PohonBiner.akar, "P");
66. PohonBiner.akar = PohonBiner.tambahSimpul(PohonBiner.akar, "D");
67. PohonBiner.akar = PohonBiner.tambahSimpul(PohonBiner.akar, "A");
68. PohonBiner.akar = PohonBiner.tambahSimpul(PohonBiner.akar, "S");
69. PohonBiner.akar = PohonBiner.tambahSimpul(PohonBiner.akar, "K");
70. PohonBiner.akar = PohonBiner.tambahSimpul(PohonBiner.akar, "N");
71. PohonBiner.akar = PohonBiner.tambahSimpul(PohonBiner.akar, "G");
72. PohonBiner.akar = PohonBiner.tambahSimpul(PohonBiner.akar, "O");
73. PohonBiner.akar = PohonBiner.tambahSimpul(PohonBiner.akar, "L");
74. PohonBiner.akar = PohonBiner.tambahSimpul(PohonBiner.akar, "W");
75. PohonBiner.akar = PohonBiner.tambahSimpul(PohonBiner.akar, "F");
76. PohonBiner.akar = PohonBiner.tambahSimpul(PohonBiner.akar, "J");
77. PohonBiner.akar = PohonBiner.tambahSimpul(PohonBiner.akar, "T");
78. PohonBiner.akar = PohonBiner.tambahSimpul(PohonBiner.akar, "H");
79. PohonBiner.akar = PohonBiner.tambahSimpul(PohonBiner.akar, "U");
80. PohonBiner.preOrder(PohonBiner.akar);
Output
Praktikum 2
1. public
2. class simpul {
3. String elemen;
4. simpul kiri;
5. simpul kanan;
6. public
7. void ngisiElemen(String ELEMEN) {
8. elemen = ELEMEN;
9. }
10. }
11. class pohon {
12. public simpul akar;
13. public
14. void deklarasiPohon() {
15. akar = null;
16. }
17. simpul tambahSimpul(simpul Penunjuk, String ELEMEN) {
18. if (Penunjuk == null) {
19. simpul baru = new simpul();
20. baru.ngisiElemen(ELEMEN);
21. baru.kiri = null;
22. baru.kanan = null;
23. Penunjuk = baru;
24. return(Penunjuk);
25. }
26. else {
27. if (ELEMEN.compareTo(Penunjuk.elemen) < 0) {
28. Penunjuk.kiri = tambahSimpul (Penunjuk.kiri, ELEMEN);
29. return(Penunjuk);
30. }
31. else {
32. Penunjuk.kanan = tambahSimpul(Penunjuk.kanan, ELEMEN);
33. return(Penunjuk);
34. }
35. }
36. }
37.
38. void preOrder(simpul Penunjuk) {
39. if (Penunjuk !=null) {
40. System.out.print(Penunjuk.elemen + ",");
41. preOrder(Penunjuk.kiri);
42. preOrder(Penunjuk.kanan);
43. }
44. }
45. void inOrder(simpul Penunjuk) {
46. if(Penunjuk !=null) {
47. inOrder(Penunjuk.kiri);
48. System.out.print(Penunjuk.elemen + ",");
49. inOrder(Penunjuk.kanan);
50. }
51. }
52. void postOrder (simpul Penunjuk) {
53. if(Penunjuk != null) {
54. postOrder(Penunjuk.kiri);
55. postOrder(Penunjuk.kanan);
56. System.out.print(Penunjuk.elemen + ",");
57. }
58. }
59. }
60. class ProgramPohonBiner {
61. public static void main(String[] args) {
62. pohon PohonBiner = new pohon();
63. PohonBiner.deklarasiPohon();
64. PohonBiner.akar = PohonBiner.tambahSimpul(PohonBiner.akar, "M");
65. PohonBiner.akar = PohonBiner.tambahSimpul(PohonBiner.akar, "P");
66. PohonBiner.akar = PohonBiner.tambahSimpul(PohonBiner.akar, "D");
67. PohonBiner.akar = PohonBiner.tambahSimpul(PohonBiner.akar, "A");
68. PohonBiner.akar = PohonBiner.tambahSimpul(PohonBiner.akar, "S");
69. PohonBiner.akar = PohonBiner.tambahSimpul(PohonBiner.akar, "K");
70. PohonBiner.akar = PohonBiner.tambahSimpul(PohonBiner.akar, "N");
71. PohonBiner.akar = PohonBiner.tambahSimpul(PohonBiner.akar, "G");
72. PohonBiner.akar = PohonBiner.tambahSimpul(PohonBiner.akar, "O");
73. PohonBiner.akar = PohonBiner.tambahSimpul(PohonBiner.akar, "L");
74. PohonBiner.akar = PohonBiner.tambahSimpul(PohonBiner.akar, "W");
75. PohonBiner.akar = PohonBiner.tambahSimpul(PohonBiner.akar, "F");
76. PohonBiner.akar = PohonBiner.tambahSimpul(PohonBiner.akar, "J");
77. PohonBiner.akar = PohonBiner.tambahSimpul(PohonBiner.akar, "T");
78. PohonBiner.akar = PohonBiner.tambahSimpul(PohonBiner.akar, "H");
79. PohonBiner.akar = PohonBiner.tambahSimpul(PohonBiner.akar, "U");
80. PohonBiner.preOrder(PohonBiner.akar);
81. PohonBiner.inOrder(PohonBiner.akar);
Output
Praktikum 3
1. public
2. class simpul {
3. String elemen;
4. simpul kiri;
5. simpul kanan;
6. public
7. void ngisiElemen(String ELEMEN) {
8. elemen = ELEMEN;
9. }
10. }
11. class pohon {
12. public simpul akar;
13. public
14. void deklarasiPohon() {
15. akar = null;
16. }
17. simpul tambahSimpul(simpul Penunjuk, String ELEMEN) {
18. if (Penunjuk == null) {
19. simpul baru = new simpul();
20. baru.ngisiElemen(ELEMEN);
21. baru.kiri = null;
22. baru.kanan = null;
23. Penunjuk = baru;
24. return(Penunjuk);
25. }
26. else {
27. if (ELEMEN.compareTo(Penunjuk.elemen) < 0) {
28. Penunjuk.kiri = tambahSimpul (Penunjuk.kiri, ELEMEN);
29. return(Penunjuk);
30. }
31. else {
32. Penunjuk.kanan = tambahSimpul(Penunjuk.kanan, ELEMEN);
33. return(Penunjuk);
34. }
35. }
36. }
37.
38. void preOrder(simpul Penunjuk) {
39. if (Penunjuk !=null) {
40. System.out.print(Penunjuk.elemen + ",");
41. preOrder(Penunjuk.kiri);
42. preOrder(Penunjuk.kanan);
43. }
44. }
45. void inOrder(simpul Penunjuk) {
46. if(Penunjuk !=null) {
47. inOrder(Penunjuk.kiri);
48. System.out.print(Penunjuk.elemen + ",");
49. inOrder(Penunjuk.kanan);
50. }
51. }
52. void postOrder (simpul Penunjuk) {
53. if(Penunjuk != null) {
54. postOrder(Penunjuk.kiri);
55. postOrder(Penunjuk.kanan);
56. System.out.print(Penunjuk.elemen + ",");
57. }
58. }
59. }
60. class ProgramPohonBiner {
61. public static void main(String[] args) {
62. pohon PohonBiner = new pohon();
63. PohonBiner.deklarasiPohon();
64. PohonBiner.akar = PohonBiner.tambahSimpul(PohonBiner.akar, "M");
65. PohonBiner.akar = PohonBiner.tambahSimpul(PohonBiner.akar, "P");
66. PohonBiner.akar = PohonBiner.tambahSimpul(PohonBiner.akar, "D");
67. PohonBiner.akar = PohonBiner.tambahSimpul(PohonBiner.akar, "A");
68. PohonBiner.akar = PohonBiner.tambahSimpul(PohonBiner.akar, "S");
69. PohonBiner.akar = PohonBiner.tambahSimpul(PohonBiner.akar, "K");
70. PohonBiner.akar = PohonBiner.tambahSimpul(PohonBiner.akar, "N");
71. PohonBiner.akar = PohonBiner.tambahSimpul(PohonBiner.akar, "G");
72. PohonBiner.akar = PohonBiner.tambahSimpul(PohonBiner.akar, "O");
73. PohonBiner.akar = PohonBiner.tambahSimpul(PohonBiner.akar, "L");
74. PohonBiner.akar = PohonBiner.tambahSimpul(PohonBiner.akar, "W");
75. PohonBiner.akar = PohonBiner.tambahSimpul(PohonBiner.akar, "F");
76. PohonBiner.akar = PohonBiner.tambahSimpul(PohonBiner.akar, "J");
77. PohonBiner.akar = PohonBiner.tambahSimpul(PohonBiner.akar, "T");
78. PohonBiner.akar = PohonBiner.tambahSimpul(PohonBiner.akar, "H");
79. PohonBiner.akar = PohonBiner.tambahSimpul(PohonBiner.akar, "U");
80. PohonBiner.preOrder(PohonBiner.akar);
81. PohonBiner.inOrder(PohonBiner.akar);
82. PohonBiner.postOrder(PohonBiner.akar);
Output
Latihan
import java.util.Scanner;
class simpul {
public
String elemen;
simpul kiri;
simpul kanan;
elemen = ELEMEN;
class pohon {
akar = null;
if (Penunjuk == null) {
baru.ngisiElemen(ELEMEN);
baru.kiri = null;
baru.kanan = null;
Penunjuk = baru;
return(Penunjuk);
else {
if (ELEMEN.compareTo(Penunjuk.elemen) < 0) {
Penunjuk.kiri = tambahSimpul (Penunjuk.kiri, ELEMEN);
return(Penunjuk);
else {
return(Penunjuk);
if (Penunjuk !=null) {
System.out.print(Penunjuk.elemen + ",");
preOrder(Penunjuk.kiri);
preOrder(Penunjuk.kanan);
if(Penunjuk !=null) {
inOrder(Penunjuk.kiri);
System.out.print(Penunjuk.elemen + ",");
inOrder(Penunjuk.kanan);
if(Penunjuk != null) {
postOrder(Penunjuk.kiri);
postOrder(Penunjuk.kanan);
System.out.print(Penunjuk.elemen + ",");
}
class ProgramPohonBiner1 {
String pilihan;
System.out.println("================================");
System.out.println("Key");
System.out.println(" A = PreOrder");
System.out.println("");
System.out.println(" B = inOrder");
System.out.println("");
System.out.println(" C = postOrder");
System.out.println("");
System.out.println("================================");
pilihan = m.nextLine();
switch(pilihan) {
case "A":
System.out.println("PreOrder");
PohonBiner.preOrder(PohonBiner.akar);
System.out.println("");
break;
case "B":
System.out.println("inOrder");
PohonBiner.inOrder(PohonBiner.akar);
System.out.println("");
break;
case "C":
System.out.println("postOrder");
PohonBiner.postOrder(PohonBiner.akar);
System.out.println("");
break;
default:
System.out.println("eror");
}
Output
Tugas
package tree;
import java.util.Scanner;
class simpul {
public
String elemen;
simpul kiri;
simpul kanan;
elemen = ELEMEN;
class pohon {
akar = null;
if (Penunjuk == null) {
baru.ngisiElemen(ELEMEN);
baru.kiri = null;
baru.kanan = null;
Penunjuk = baru;
return(Penunjuk);
}
else {
if (ELEMEN.compareTo(Penunjuk.elemen) < 0) {
return(Penunjuk);
else {
return(Penunjuk);
if (Penunjuk !=null) {
System.out.print(Penunjuk.elemen + ",");
preOrder(Penunjuk.kiri);
preOrder(Penunjuk.kanan);
if(Penunjuk !=null) {
inOrder(Penunjuk.kiri);
System.out.print(Penunjuk.elemen + ",");
inOrder(Penunjuk.kanan);
}
public void postOrder (simpul Penunjuk) {
if(Penunjuk != null) {
postOrder(Penunjuk.kiri);
postOrder(Penunjuk.kanan);
System.out.print(Penunjuk.elemen + ",");
String jawab;
Naik.tampilmenu();
while(running) {
jawab = m.nextLine();
if( jawab.equalsIgnoreCase("ya") ){
running = false;
else if(jawab.equalsIgnoreCase("tidak")){
Naik.tampilmenu();
}
else{
System.out.println("Error");
String pilihan;
System.out.println("================================");
System.out.println("Key");
System.out.println(" A = PreOrder");
System.out.println("");
System.out.println(" B = inOrder");
System.out.println("");
System.out.println(" C = postOrder");
System.out.println("");
System.out.println("================================");
pilihan = m.nextLine();
switch(pilihan) {
case "A":
System.out.println("PreOrder");
PohonBiner.preOrder(PohonBiner.akar);
System.out.println("");
break;
case "B":
System.out.println("inOrder");
PohonBiner.inOrder(PohonBiner.akar);
System.out.println("");
break;
case "C":
System.out.println("postOrder");
PohonBiner.postOrder(PohonBiner.akar);
System.out.println("");
break;
default:
System.out.println("eror");