Jumat, 21 Oktober 2011

Listing

class senarai
{ protected
    Simpul awal;
    Simpul 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 tambahDepan(String NAMA, int UMUR)
{    System.out.println("tambah depan'"+NAMA+"'dilakukan..");
Simpul baru=new Simpul();
baru.ngisiSimpul(NAMA, UMUR);
if (awal==null)//jika senarai masih kosong
{    awal=baru;
    akhir = baru;
    baru.kiri=null;
    baru.kanan=null;
}
else        //jika senarai tidak kosong
{    baru.kanan=awal;
    awal.kiri=baru;
    awal=baru;
    awal.kiri=null;
}
}
void tambahBelakang (String NAMA, int UMUR)
{ System.out.println("tambah belakang '"+NAMA+ "'dilakukan. . .");
Simpul baru = new Simpul ();
baru.ngisiSimpul(NAMA, UMUR);
if (awal == null) // jika senari masih kosong
{     awal=baru;
    akhir =baru;
    baru.kiri=null;
    baru.kanan=null;
}
else        //jika senari masih kosong
{ baru.kiri=akhir;
    akhir.kanan=baru;
    akhir=baru;
    akhir.kanan=null;
}
}
void tambahTengah(int POSISI, String NAMA, int UMUR)
{    System.out.println("tambah tengah'"+NAMA+"'dilakukan..");
if (awal == null)//jika senarai masih kosong
{    Simpul baru=new Simpul();
    baru.ngisiSimpul(NAMA, UMUR);
    awal=baru;
    akhir=baru;
    baru.kiri=null;
    baru.kanan=null;

}
else            //jika senarai tidak kosong
{    int jumlahSimpul=hitungJumlahSimpul();
if (POSISI==1)
    tambahDepan(NAMA,UMUR);
    else if (POSISI>jumlahSimpul)
    tambahBelakang(NAMA,UMUR);
    else
    {    Simpul bantu;
        bantu=awal;
        int N=1;
        while ((N<POSISI)&&(bantu!=akhir))
        {    bantu=bantu.kanan;
            N++;
        }
        Simpul baru= new Simpul();
        baru.ngisiSimpul(NAMA,UMUR);

        baru.kiri= baru.kiri;
        baru.kiri.kanan=baru;
        bantu.kiri=baru;
    }
}
}
void cetakSenarai()
{    System.out.print("CETAK:");
if (awal==null)//jika senarai masih kosong
    System.out.print("...SENERAI KOSONG...");
    else        // jika senarai tidak kosong
    {    Simpul bantu;
        bantu=awal;
        while (bantu!=null)
        {    bantu.cetakSimpul();
            bantu=bantu.kanan;
        }
    }
    System.out.println("");
}
void hapus(String NAMA)
{    if (awal == null)//jika senarai masih kosong
    {    System.out.println("senarai kosong menghapus tidak dapat dilakuka");
}
else            //jika senarai tidak kosong
{    if (awal.nama.equals(NAMA)) //jiaka nama ditemukan di awal
    { System.out.println("menhaspus "+NAMA+"dilakukan.");
    if (awal == akhir) //jika ada hanya sebuah simpul
    inisialisasiSenaraiKosong();
    else
    { awal=awal.kanan;
    awal.kiri=null;
}
}
else if (akhir.nama.equals(NAMA))//jika nama ada di akhir
{    System.out.println("manghapus"+NAMA+"dilakukan.");
    akhir=akhir.kiri;
    akhir.kanan=null;
}
else //jika nama tidak ditemukan diawal dan akhir
{    simpul bantu;
    bantu=awal;
    boolean ketemu=false;
    while (bantu!=akhir)
    {    if (bantu.namaequals(NAMA))
    {    System.out.println("menghapus"+NAMA+"dilakukan.");
        ketemu=true;
        bantu.kanan.kiri=bantu.kiri;
        bantu.kiri.kanan=bantu.kanan;
        //break;
    }
    bantu=bantu.kanan;
}
if (ketemu==false)
    System.out.println("data'"+NAMA+"'tidak ditemukan");
}
}
}
}

Tidak ada komentar:

Posting Komentar