30
|
LAPORAN PRAKTIKUM
STRUKTUR DATA
Modul 07
Disusun
Oleh :
HERI PURNAMA
125410101
TI 02
UPT LABORATORIUM
Sekolah Tinggi Manajemen Informatika dan Komputer
AKAKOM
Yogyakarta
2013
POHON
1).PEMBAHASAN
·
Listing
class Simpul
{ public
String elemen;
Simpul kiri;
Simpul kanan;
public
void ngisiElemen(String ELEMEN)
{ elemen=ELEMEN;}
}
|
Ø
Baris-baris sintak program diatas adalah Merupakan pendeklarasian
class Simpul,yang mana dalam sintak ini untuk
mendeklarasikan tipe data yang digunakan yakni untuk variable elemen,kiri,dan
kanan menggunakan tipe data “string”.Dalam kelas
simpul terdapat satu method yakni :
o
Method “ngisiElemen” mempunyai parameter ELEMEN yang bertipe string. Dimana variabel elemen disamakan dengan
variabel ELEMEN.
class
Pohon
{ public
Simpul akar;
|
Ø Baris-baris sintak program diatas adalah Merupakan pendeklarasian class Simpul,yang
mana dalam sintak ini untuk mendeklarasikan variabel simpul akar.
public
void deklarasiPohon()
{
akar=null;
}
Simpul tambahSimpul(Simpul
Penunjuk,String ELEMEN) {
if(Penunjuk==null)
{ Simpul baru= new Simpul();
baru.ngisiElemen(ELEMEN);
baru.kiri=null;
baru.kanan=null;
Penunjuk = baru;
System.out.println("Tambahkan
"+ELEMEN+" dilakukan. . . . . ");
return (Penunjuk);
}
|
Ø Baris
diatas merupakan baris method dengan nama method “deklarasiPohon” yang mana diberi
ketentuan nilai awal yaitu apabila akar
sama dengan null.Dalam method ini
juga ada sub method yaitu dengan nama simpul tambah simpul dengan parameter
simpul penunjuk dan variabel ELEMEN dengan tipe data String.Dalam method ini
menciptakan kondisi dengan tipe kondisi “if” yaitu:
1. Jika
variabel penunjuk sama dengan null maka akan menciptakan objek baru dengan
adanya perintah “Simpul baru= new Simpul()”
·
Objek baru mendapat nilai yang berasal dari
method ngisiElemen dari variabel ELEMEN
·
Bila baru.kiri ditujukan ke null dan baru.kanan
ditujukkan ke null maka penunjuk sama dengan baru .
·
Terdapat juga perintah untuk menampilkan teks “Tambahkan ” yang diambil dari variabel ELEMEN dan kelanjutan teksnya adalah “dilakukan . . .”.Dan mengembalikan
nilai dari variabel penunjuk dengan kata kunci “return”.
else
{ if(ELEMEN.compareTo(Penunjuk.elemen)<0 o:p="">0>
|
{ Penunjuk.kiri=tambahSimpul(Penunjuk.kiri,ELEMEN);
return(Penunjuk);
}
2. Sintak
diatas adalah untuk menciptakan kondisi yang lain yaitu apabila Variabel ELEMEN compareTo
penunjuk.elemen lebih kecil dari nol maka:
·
Penunjuk.kiri sama dengan tambahSimpul dari
nilai penunjuk.kiri dan variabel ELEMEN.
·
Dan nilai variabel penunjuk akan dikembalikan
karena adanya perintah return.
else
{ Penunjuk.kanan=tambahSimpul(Penunjuk.kanan,ELEMEN);
return(Penunjuk);
}
}
}
|
3. Sintak
diatas merupakan sintak untuk menunjukkan kondisi lain dengan langkah kondisi
lain yakni:
·
Apabila penunjuk.kanan sama dengan
tambahSimpul maka nilainya adalah penunjuk.kanan dan Variabel ELEMEN.
·
Dan apabila langkah tersebut telah dijalankan
maka nilai variabel penunjuk akan dikembalikan.Dengan adanya perintah return.
void preOrder(Simpul Penunjuk)
{ if(Penunjuk !=null)
{ System.out.print(Penunjuk.elemen+",");
preOrder(Penunjuk.kiri);
preOrder(Penunjuk.kanan);
}
}
|
Ø Sintak
baris diatas adalah sintak method dengan nama method preorder dengan parameter
simpul penujuk.Yang mana mempunyai kondisi :
1.
Apabila penunjuk tidak sama dengan null maka
melakukan perintah keluaran penunjuk.elemen dan perintah ini
preOrder(Penunjuk.kiri);
·
Kunjungi simpul kiri
preOrder(Penunjuk.kanan);
·
Kunjungi simpul kanan
void
inOrder(Simpul Penunjuk)
{ if(Penunjuk !=null)
{ inOrder(Penunjuk.kiri);
System.out.print(Penunjuk.elemen+",");
inOrder(Penunjuk.kanan);
}
}
|
Ø Sintak
baris diatas adalah sintak method dengan nama method inOrder dengan parameter
simpul penujuk.Yang mana mempunyai kondisi :
1. Apabila penunjuk
tidak sama dengan null maka melakukan perintah:
·
inOrder(Penunjuk.kiri);
kunjungi
penunjuk kiri
·
System.out.print(Penunjuk.elemen+",");
Tampilakan
elemen penujuk
·
inOrder(Penunjuk.kanan);
Kunjunggi
penunjk kanan
void
postOrder(Simpul Penunjuk)
{ if(Penunjuk !=null)
{ postOrder(Penunjuk.kiri);
postOrder(Penunjuk.kanan);
System.out.print(Penunjuk.elemen+",");
}
}
}
|
Ø Sintak
baris diatas adalah sintak method dengan nama method postOrder dengan parameter
simpul penujuk.Yang mana mempunyai kondisi :
1.
Apabila penunjuk tidak sama dengan null maka
melakukan perintah:
postOrder(Penunjuk.kiri);
·
Kunjungi simpul kiri
postOrder(Penunjuk.kanan);
·
Kunjungi simpul kanan
System.out.print(Penunjuk.elemen+",");
·
Melakukan perintah keluaran dari penunjuk
elemen tersebut.
class
PohonBiner1
{ public static void main(String[] args)
|
Ø
Pernyataan diatas digunakan untuk memulai program dengan method main. Kata kunci
void di depan main merupakan keharusan pada bahasa java.
{ Pohon
PohonBiner = new Pohon();
PohonBiner.deklarasiPohon();
|
Ø
Program diatas adalah bagian utama dari beberapa method
atau fungsi yang sudah saya bahas disebelumnya, dengan nama class pohonBiner program ini disimpan,
karena ini adalah merupakan bagian program utama. Kemudian terdapat pendeklarasian public untuk
melakukan pengoperasian pada pohon dimana kita dapat
melakukan atau memberikan perintah menambah
akar data disini. Penciptaan objek untuk pohon yaitu : “PohonBiner.deklarasiPohon();”
PohonBiner.akar=PohonBiner.tambahSimpul(PohonBiner.akar,"H");
PohonBiner.akar=PohonBiner.tambahSimpul(PohonBiner.akar,"E");
PohonBiner.akar=PohonBiner.tambahSimpul(PohonBiner.akar,"R");
PohonBiner.akar=PohonBiner.tambahSimpul(PohonBiner.akar,"I");
PohonBiner.akar=PohonBiner.tambahSimpul(PohonBiner.akar,"P");
PohonBiner.akar=PohonBiner.tambahSimpul(PohonBiner.akar,"U");
PohonBiner.akar=PohonBiner.tambahSimpul(PohonBiner.akar,"R");
PohonBiner.akar=PohonBiner.tambahSimpul(PohonBiner.akar,"N");
PohonBiner.akar=PohonBiner.tambahSimpul(PohonBiner.akar,"A");
PohonBiner.akar=PohonBiner.tambahSimpul(PohonBiner.akar,"M");
PohonBiner.akar=PohonBiner.tambahSimpul(PohonBiner.akar,"A");
|
Ø
Perintah diatas merupakan perintah untuk
menciptakan akar baru dari pohon mulai dari huruf H sampai A.
System.out.print("preOrder:");
PohonBiner.preOrder(PohonBiner.akar);
|
Ø
Perintah diatas untuk menampilkan hasil
kunjungan dari perintah pohonBiner.Preorder.
System.out.println("");
System.out.print("inOrder:");
PohonBiner.inOrder(PohonBiner.akar);
|
Ø
Perintah diatas untuk menampilkan hasil
kunjungan dari perintah pohonBiner.inOrder.
System.out.println("");
System.out.print("postOrder:");
PohonBiner.postOrder(PohonBiner.akar);
System.out.println("");
}
}
|
Ø
Perintah diatas untuk menampilakan hasil
kunjungan dari perintah pohonBiner.postOrder.
·
Running
Ø
Hasil output :
Ø Untuk preOrder:
·
Bila penunjuk
tidak sama dengan null maka melakukan perintah
a. Pertama-tama simpul
menampilkan elemen simpul yakni H
b. Kunjungi simpul kiri
dan simpul kanan
c.
Menampilkan
elemen simpul yakni E
d. Kunjungi simpul kiri
dan simpul kanan
e.
Menampilkan
elemen simpul yakni A
f.
Kunjungi simpul kiri dan simpul kanan
g.
Menampilkan
elemen simpul yakni A
h. Kunjungi simpul
kiri dan simpul kanan
i.
Menampilkan
elemen simpul yakni R
j.
Kunjungi simpul kiri dan simpul kanan
k.
Menampilkan
elemen simpul yakni I
l.
Kunjungi simpul kiri dan simpul kanan
m.
Menampilkan
elemen simpul yakni P
n. Kunjungi simpul kiri
dan simpul kanan
o.
Menampilkan
elemen simpul yakni N
p. Kunjungi simpul
kiri dan simpul kanan
q.
Menampilkan
elemen simpul yakni M
r. Kunjungi simpul
kiri dan simpul kanan
s.
Menampilkan
elemen simpul yakni U
t.
Kunjungi simpul kiri dan simpul kanan
u.
Menampilkan
elemen simpul yakni R
v. Kunjungi simpul
kiri dan simpul kanan
v Maka output
adalah (H,E,A,A,R,I,P,N,M,U,R)
Ø Untuk inOrder:
·
Bila penunjuk
tidak sama dengan null maka melakukan perintah
a.
Pertama-tama kunjungi
simpul kiri
b.
Menampilkan
elemen yakni A
c.
Lalu kunjungi
simpul kanan
d.
Kunjungi simpul
kiri lagi
e.
Menampilkan
elemen yakni A
f.
Lalu kunjungi
simpul kanan
g.
Kunjungi simpul
kiri lagi
h.
Menampilkan
elemen yakni E
i.
Lalu kunjungi
simpul kanan
j.
Kunjungi simpul
kiri lagi
k.
Menampilkan
elemen yakni H
l.
Lalu kunjungi
simpul kanan
m.
Kunjungi simpul
kiri lagi
n.
Menampilkan
elemen yakni I
o.
Lalu kunjungi
simpul kanan
p.
Kunjungi simpul
kiri lagi
q.
Menampilkan
elemen yakni M
r.
Lalu kunjungi
simpul kanan
s.
Kunjungi simpul
kiri lagi
t.
Menampilkan
elemen yakni N
u.
Lalu kunjungi
simpul kanan
v.
Kunjungi simpul
kiri lagi
w.
Menampilkan
elemen yakni P
x.
Lalu kunjungi
simpul kanan
y.
Kunjungi simpul
kiri lagi
z.
Menampilkan
elemen yakni R
aa. Lalu kunjungi simpul kanan
bb. Kunjungi simpul kiri lagi
cc.
Menampilkan
elemen yakni R
dd. Lalu kunjungi simpul kanan
ee. Kunjungi simpul kiri lagi
ff.
Menampilkan elemen
yakni U
gg. Lalu kunjungi simpul kanan
v Maka output
adalah (A,A,E,H,I,M,N,P,R,R,U)
Ø Untuk postOrder:
· Bila penunjuk tidak sama dengan null maka melakukan
perintah
a.
Kunjungi simpul
kiri
b.
Kunjungi simpul
kanan
c.
Menampilkan
elemen simpul A
d.
Kunjungi simpul
kiri
e.
Kunjungi simpul
kanan
f.
Menampilkan
elemen simpul A
g.
Kunjungi simpul
kiri
h.
Kunjungi simpul
kanan
i.
Menampilkan
elemen simpul E
j.
Kunjungi simpul
kiri
k.
Kunjungi simpul
kanan
l.
Menampilkan
elemen simpul M
m.
Kunjungi simpul
kiri
n.
Kunjungi simpul
kanan
o.
Menampilkan
elemen simpul N
p.
Kunjungi simpul
kiri
q.
Kunjungi simpul
kanan
r.
Menampilkan
elemen simpul P
s.
Kunjungi simpul
kiri
t.
Kunjungi simpul
kanan
u.
Menampilkan
elemen simpul I
v.
Kunjungi simpul
kiri
w.
Kunjungi simpul
kanan
x.
Menampilkan
elemen simpul R
y.
Kunjungi simpul
kiri
z.
Kunjungi simpul
kanan
aa. Menampilkan elemen simpul U
bb. Kunjungi simpul kiri
cc.
Kunjungi simpul
kanan
dd. Menampilkan elemen simpul R
ee. Kunjungi simpul kiri
ff.
Kunjungi simpul
kanan
gg. Menampilkan elemen simpul H
v Maka output
adalah (A,A,E,M,N,P,I,R,U,R,H)
2).Tugas
null
null
null null null
null null null
null null
null
null null
|
·
Membuat gambar pohon yang isi elemennya nama masin2
3).Kesimpulan
Ø Untuk pohon (kunjungan) dilakukan dengan cara rekursif
yang terdiri dari:
1)
.preOrder adalah
mencetak isi pohon dengan urutan :
a.
Cetak isi node
yang dikunjungi
b.
Kunjungi anak
cabang kiri
c.
Kunjungi anak
cabang kanan
2) .inOrder adalah
mencetak isi pohon dengan urutan :
a. Kunjungi anak cabang kiri
b. Cetak isi node yang dikunjungi
c.Kunjungi anak cabang kanan
3) .postOrder
adalah mencetak isi pohon dengan urutan :
a.Kunjungi anak cabang kanan
b.Kunjungi anak cabang kiri
c. Cetak isi node yang dikunjungi
Ø pada pohon untuk
simpul (node) mempunyai beberapa aturan yakni :
1.untuk simpul anak (children) hanya boleh punya 1
orang tua(parent)
2.untuk
simpul orang tua(parent) hanya boleh maksimal punya dua anak,namun juga boleh
tidak punya anak.
4).Listing Terlampir
0 komentar:
Post a Comment
Thanks For Your Feedback.