PERTEMUAN 3 1. Menambahkan pengurutan dan memperbaiki method yang ada pada program class simpul { protected String nama; int umur; simpul kanan; simpul kiri; public void isiSimpul(String NAMA, int UMUR) { nama = NAMA; umur = UMUR; } //method mencetak simpul// void cetakSimpul() { System.out.print (nama +"-"+umur+" "); } }
class senarai { protected simpul simpul
awal; akhir;
public void inisialisasiSenaraiKosong() { awal = null; akhir = null; } int hitungJumlahSimpul() { int N=0; simpul bantu; bantu = awal; while (bantu!=null) { bantu=bantu.kanan; N++; } return N; } void tambahAwal(String NAMA,int UMUR) { System.out.println("tambah depan "+NAMA+" dilakukan.."); simpul baru = new simpul(); baru.isiSimpul(NAMA,UMUR); if (awal == null) // list masih kosong
{ akhir = baru; awal = baru; baru.kiri=null; baru.kanan = null; } else { baru.kanan=awal; awal.kiri = baru; awal = baru; awal.kiri=null; }
//list tidak kosong
} //fungsi untuk menambah di akhir senarai// void tambahAkhir(String NAMA,int UMUR) { System.out.println("tambah belakang " +NAMA+ " dilakukan.."); simpul baru = new simpul(); baru.isiSimpul(NAMA,UMUR); if (awal == null) // list masih kosong { akhir = baru; awal = baru; baru.kiri=null; baru.kanan = null; } else { baru.kiri=akhir; akhir.kanan=baru; akhir=baru; akhir.kanan=null; } } //fungsi untuk menambah di tengah senarai// void tambahTengah(int POS,String NAMA,int UMUR) { System.out.println("tambah tengah " +NAMA+ "dilakukan.."); simpul baru = new simpul(); baru.isiSimpul(NAMA,UMUR); if (awal == null) // list masih kosong { akhir = baru; awal = baru; baru.kiri=null; baru.kanan = null; } else { int jumlahSimpul = hitungJumlahSimpul(); if (POS==1) tambahAwal(NAMA,UMUR);
else if (POS>jumlahSimpul) tambahAkhir(NAMA,UMUR); else { simpul bantu; bantu=awal; int N=1; while ((N
System.out.println("menghapus simpul dengan PILIHAN dilakukan.."); Simpul bantu=awal; while(bantu.data!=kunci)
if (awal.kanan==null)
//jika senarai tinggal berisi 1
simpul awal=null; else satu simpul
//jika lebih dari
akhir.kanan.kiri=null; akhir=akhir.kanan; return temp; */ //fungsi cetak maju// void cetakSenarai() { System.out.print("Mencetak Senarai : "); if (awal==null) System.out.print("...Senarai masih Kosong...."); else { simpul bantu; bantu=awal; while (bantu !=null) { bantu.cetakSimpul(); bantu=bantu.kanan; } System.out.println(""); } } } //----------------------bagian program utama-----------------------------------------------class senarai_ganda { public static void main(String[] args) { senarai mhs = new senarai(); mhs.inisialisasiSenaraiKosong(); mhs.tambahAwal("Dedi",21); mhs.tambahAwal("Cecep",17); mhs.tambahAwal("Budi",18); mhs.tambahAwal("Ani",15); mhs.tambahAkhir("Eko",15); mhs.tambahAkhir("Feri",14); mhs.cetakSenarai(); }
}
2. Membuat program pohon nama sendiri dengan manual dan program dengan pembacaan preorder, inorder, dan post order class simpul { public String elemen; simpul kiri; simpul kanan; public void ngisiElemen(String ELEMEN) { elemen = ELEMEN; } } class pohon { public 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; return(Penunjuk); } else { if (ELEMEN.comparaTo(Penunjuk.elemen) < 0 ) { Penunjuk.kiri = tambahsimpul(Penunjuk.kiri, ELEMEN); return(Penunjuk); } else { Penunjuk.kanan = tambahsimpul(Penunjuk.kanan, ELEMEN); return(Penunjuk); } } } void preorder(simpul Penunjuk) { if(Penunjuk != null) { System.out.print(Penunjuk.elemen + ","); preOrder(Penunjuk.kiri); preOrder(Penunjuk.kanan); } } void inorder(simpul Penunjuk) { if(Penunjuk != null) { inOrder(Penunjuk.kiri); System.out.print(Penunjuk.elemen + ",");
inOrder(Penunjuk.kanan); } } void postorder(simpul Penunjuk) { if(Penunjuk != null) { postOrder(Penunjuk.kiri); postOrder(Penunjuk.kanan); System.out.print(Penunjuk.elemen } }
+ ",");
} class ProgramPohonBiner { public static void main(String[] args) { pohon PohonBiner = new pohon(); PohonBiner.deklarasiPohon(); PohonBiner.akar =PohonBiner.tambahsimpul(PohonBiner.akar, "E"); PohonBiner.akar =PohonBiner.tambahsimpul(PohonBiner.akar, "L"); PohonBiner.akar =PohonBiner.tambahsimpul(PohonBiner.akar, "I"); PohonBiner.akar =PohonBiner.tambahsimpul(PohonBiner.akar, "N"); PohonBiner.akar =PohonBiner.tambahsimpul(PohonBiner.akar, "N"); PohonBiner.akar =PohonBiner.tambahsimpul(PohonBiner.akar, "U"); PohonBiner.akar =PohonBiner.tambahsimpul(PohonBiner.akar, "G"); PohonBiner.akar =PohonBiner.tambahsimpul(PohonBiner.akar, "R"); PohonBiner.akar =PohonBiner.tambahsimpul(PohonBiner.akar, "O"); PohonBiner.akar =PohonBiner.tambahsimpul(PohonBiner.akar, "H"); PohonBiner.akar =PohonBiner.tambahsimpul(PohonBiner.akar, "O"); PohonBiner.preOder(PohonBiner.akar); PohonBiner.inOder(PohonBiner.akar); PohonBiner.postOder(PohonBiner.akar); } }