Anda di halaman 1dari 7

PEMBAHASAN

class simpul { public String elemen; simpul kiri; simpul kanan; public void ngisiElemen(String ELEMEN) { elemen = ELEMEN; } } Merupakan sebuah kelas dengan nama simpul, didalam kelas tersebut terdapat tipe data String dengan nama elemen, simpul kiri dan simpulkan kanan. Terdapat pula sebuah method dengan nama ngisiElemen yang dikerjakan pada dengan tipe data String yang dengan nama variabelnya ELEMEN. Dan method tersebut bersifat public sehingga dapat diakses semua method yang ada pada program ini. class pohon { public simpul akar; public void deklarasiPohon() { akar = null; } Merupakan sebuah kelas dengan nama pohon, yang mana di dalam kelas tersebut hanya terdiri simpulkan akar, dan memiliki method dengan nama deklarasiPohon, yang bersifat public dan menyatakan pula bahwa akar sama dengan null. simpul tambahSimpul(simpul Petunjuk, String ELEMEN) { if (Petunjuk == null) { simpul baru = new simpul(); baru.ngisiElemen(ELEMEN); baru.kiri = null; baru.kanan = null; Petunjuk = baru; return(Petunjuk); } Merupakan sebuah method dengan nama tambahSimpul,dengan variable petunjuk dan ELEMENT. Menggunakan pernyataan if yaitu jika penunjuk sama dengan null, berarti node dalam keadaan kosong. Sehinga sebuah objek baru di ciptakan, yaitu dengan nama baru .Maka simpul baru akan masuk dalam pohon dengan perintah atau method ngisiElemen, sehingga simpul baru masuk maka simpul tersebut akan menjadi ELEMEN atau simpul dalam pohon. Saat elemen atau simpul tersebut sudah masuk dalam pohon, maka terdapat satu simpul/node, dan simpul/elemen tersebut pada sisi kiri dari simpul tersebut bernilai null, dan pada sisi kanannya pula akan bernilai null, dan simpul tersebut akan menjadi penunjuk dalam pohon.

else { if (ELEMEN.compareTo(Petunjuk.elemen) < 0) { Petunjuk.kiri = tambahSimpul(Petunjuk.kiri, ELEMEN); return(Petunjuk); Lanjutan dari perintah If di atas, jika penunjuk tidak sama dengan null, maka dihadapkan pula dalam sebuah kondisi. jika ELEMEN dibandingkan dengan petunjuk elemen dan hasilnya lebih kecil dari nol (0), maka akan dikerjakan perintah selanjutnya yiatu petunjuk kekiri sama dengan melakukan tambah simpul, dan simpul penunjuk akan ke kiri dari ELEMEN. Dan akan dilakukan nilai pengembalian penunjuk tersebut sepeti semula. jika elemen atau simpul yang akan masuk dalam pohon dibandingkan dengan petunjuk simpul lebih kecil,maka akan berada pada posisi kiri dari penunjuk tersebut, dan akan dikembalikan lagi nilai penunjuk seperti semula. } else { Petunjuk.kanan = tambahSimpul(Petunjuk.kanan, ELEMEN); return(Petunjuk); } } } Sedangkan jika pernyataan sebelumnya tidak terpenuhi, maka penunjuk ke kanan sama dengan melakukan tambah simpul petunjuk kekanan untuk menjadikan eleman atau simpul dalam pohon, maka setalah perintah tersebut telah dilakukan, akan dikerjakan nilai pengembalian petunjuk seperti semula void preOrder(simpul Penunjuk) { if (Penunjuk != null) { System.out.print(Penunjuk.elemen + ","); preOrder(Penunjuk.kiri); preOrder(Penunjuk.kanan); } } Method dengan nama PreOrder yang merupakan simpul penunjuk. jika simpul penunjuk tidak sama dengan null, maka element pun dicetak. Kemudian preOrder(Penunjuk.kiri); dimulai dari kiri,yang menyatakan bahwa simpul penunjuk akan ke kiri hingga penunjuk bernilai null, maka tidak dikerjakan. Kemudian akan berpindah pada preOrder(Penunjuk.kanan); untuk dikerjakan. void inOrder(simpul Penunjuk) { if (Penunjuk != null) { inOrder(Penunjuk.kiri); System.out.print(Penunjuk.elemen + ","); inOrder(Penunjuk.kanan);

} } Merupakan Method inOrder dengan menggunakan simpul penunjuk sebagai penelusuran dalam pohon. Didalam method ini terdapat sebuah kondisi jika penunjuk tidak sama dengan null, maka dikerjakan perintah inOrder(Penunjuk.kiri);,berarti node dibaca dari kiri.Dan kemudian elemen akan dicetak dengan perintah: System.out.print(Penunjuk.elemen + ",");,Dan setelah dicetak, maka yang akan dikerjakan selanjutnaya adalah membaca node pohon ke kanan, dengan perintah inOrder(Penunjuk.kanan);. void postOrder(simpul Penunjuk) { if (Penunjuk != null) { postOrder(Penunjuk.kiri); postOrder(Penunjuk.kanan); System.out.print(Penunjuk.elemen + ","); } } } Method postOrder dengan menggunakan simpul penunjuk juga sebagai penelusuran dalam pohon. postOrder postOrder(Penunjuk.kiri);,membaca node pohon yang dimulai dari kiri, kemudian akan dikerjakan perintahpostOrder(Penunjuk.kanan);,yang mana simpul penunjuk akan dibaca dari kanan, setelah dilakukan kunjungan pada node dalam pohon dari kiri, maka selanjutnya pada program ini, akan dilakukan ke kanan. Setelah itu, System.out.print(Penunjuk.elemen + ","); merupakan perintah untuk mencetak element.

public class ProgramPohonBiner { nama kelas public static void main(String[] args) { pohon PohonBiner = new pohon(); potongan program diatas merupakan class utama/main class dari program Pohon Biner ini. Dengan menciptakan objek pohon yang baru dan aka dihasilkan output dengan perintah dibawah ini : PohonBiner.deklarasiPohon(); PohonBiner.akar =PohonBiner.tambahSimpul(PohonBiner.akar, "M"); PohonBiner.akar =PohonBiner.tambahSimpul(PohonBiner.akar, "P"); PohonBiner.akar =PohonBiner.tambahSimpul(PohonBiner.akar, "D"); PohonBiner.akar =PohonBiner.tambahSimpul(PohonBiner.akar, "A"); PohonBiner.akar =PohonBiner.tambahSimpul(PohonBiner.akar, "S"); PohonBiner.akar =PohonBiner.tambahSimpul(PohonBiner.akar, "K"); PohonBiner.akar =PohonBiner.tambahSimpul(PohonBiner.akar, "N"); PohonBiner.akar =PohonBiner.tambahSimpul(PohonBiner.akar, "G"); PohonBiner.akar =PohonBiner.tambahSimpul(PohonBiner.akar, "O"); PohonBiner.akar =PohonBiner.tambahSimpul(PohonBiner.akar, "L"); PohonBiner.akar =PohonBiner.tambahSimpul(PohonBiner.akar, "W"); PohonBiner.akar =PohonBiner.tambahSimpul(PohonBiner.akar, "F"); PohonBiner.akar =PohonBiner.tambahSimpul(PohonBiner.akar, "J"); PohonBiner.akar =PohonBiner.tambahSimpul(PohonBiner.akar, "T");

PohonBiner.akar =PohonBiner.tambahSimpul(PohonBiner.akar, "H"); PohonBiner.akar =PohonBiner.tambahSimpul(PohonBiner.akar, "U"); Terdapat 16 simpul yang akan masuk ke dalam pohon, dengan simpul pertama akan menjadi root dalam pohon. Dari data atau simpul/elemen di atas, dapat diketahui bahwa yang menjadi root adalah M. Kemuadian semua simpul akan dikerjakan dengan perintah tambah simpul, dan dilihat letak posisinya yang aka dibandingkan dengan penunjuk simpul. Dari perintah simpul/elemen tersebut adalah dapat dicontohkan salah satu : PohonBiner.akar =PohonBiner.tambahSimpul(PohonBiner.akar, "M"); // simpul dalam pohon biner akan menjadi akar sama dengan pohon biner akan melakukan tambah simbul di dalam pohon, dan huruf atau simpul yang ada diantara petik dua akan amsuk ke dalam pohon biner dan akan menjadi akar. Maka dari 16 simpul tersebut akan ada 16 akar yang akan masuk dalam pohon biner. 16 simpul tersebut dapat dikerjakan dengan menggunakan preOrder, seperti berikut : PohonBiner.preOrder(PohonBiner.akar); } }

TUGAS
Jelaskan hasil output : -pre order -in order -post order Dari logika pohon biner STMIK AKAKOM

Pre Order
Method PreOrder merupakan simpul penunjuk. Jika simpul penunjuk tidak sama dengan null, maka element pun dicetak. Kemudian preOrder (Penunjuk.kiri); dimulai dari kiri,yang menyatakan bahwa simpul penunjuk akan ke kiri hingga penunjuk bernilai null, maka tidak dikerjakan. Kemudian akan berpindah pada preOrder(Penunjuk.kanan); untuk dikerjakan.

In Order
Method InOrder dengan menggunakan simpul penunjuk sebagai penelusuran dalam pohon. Didalam method ini terdapat sebuah kondisi jika penunjuk tidak sama dengan null, maka dikerjakan perintah inOrder(Penunjuk.kiri);berarti node dibaca dari kiri. Dan kemudian elemen akan dicetak dengan perintah: System.out.print(Penunjuk.elemen + ","); Dan setelah dicetak, maka yang akan dikerjakan selanjutnya adalah membaca node pohon ke kanan, dengan perintah inOrder(Penunjuk.kanan);

Post Order
Method PostOrder dengan menggunakan simpul penunjuk juga sebagai penelusuran dalam pohon. postOrder postOrder(Penunjuk.kiri); membaca node pohon yang dimulai dari kiri, kemudian akan dikerjakan perintah postOrder(Penunjuk.kanan); yang mana simpul penunjuk akan dibaca dari kanan, setelah dilakukan kunjungan pada node dalam pohon dari kiri, maka selanjutnya pada program ini, akan dilakukan ke kanan.

KESIMPULAN
Setelah melalkukan praktikum Pohon dapat saya ambil kesimpulan bahwa pohon adalah kumpulan akar, cabang, dan simpul yang saling terhubung secara hirarki. Sedangkan pohon biner adalah pohon dimana setiap simpulnya hanya boleh memiliki maksimal 2 anak yaitu cabang kiri dan cabang kanan.

LAPORAN PRAKTIKUM STRUKTUR DATA PERTEMUAN 7 POHON

Disusun oleh : Nama: Ryan Dwi Handoko NIM: 125410044 Jurusan: Teknik Informatika

JURUSAN TEKNIK INFORMATIKA SEKOLAH TINGGI MANAJEMEN DAN INFORMATIKA AKAKOM YOGYAKARTA 2013

Anda mungkin juga menyukai