LAPORAN PRAKTIKUM STRUKTUR DATA Modul 07

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="">
                           {      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



                     nullOval: A
                                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


    Blogger Comment
    Facebook Comment

0 komentar:

Post a Comment

Thanks For Your Feedback.