CDLL Java Implementasi Class Mahasiswa
package cdll;
class Nodecdll {
Mahasiswa data;
Nodecdll prev, next;
}
public class CDLL {
private Nodecdll pAwal, pAkhir;
private int counter;
public CDLL() {
pAwal = null;
pAkhir = null;
counter = -1;
}
public void SisipDataDiAwal(Mahasiswa data) {
Nodecdll pBaru = new Nodecdll();
pBaru.data = data;
pBaru.next = null;
if (pAwal == null) {
pAwal = pBaru;
pAkhir = pBaru;
pAkhir.next = pAwal;
pAwal.prev = pAkhir;
counter = 0;
} else {
pBaru.next = pAwal;
pAwal.prev = pBaru;
pBaru.prev = pAkhir;
pAkhir.next = pBaru;
pAwal = pBaru;
counter++;
}
}
public void hapusData(Mahasiswa dtHapus) {
Nodecdll pSblmHapus, pHapus;
pSblmHapus = null;
pHapus = pAwal;
do {
pSblmHapus = pHapus;
pHapus = pHapus.next;
} while (pHapus != pAkhir.next && pHapus.data != dtHapus);
if (pHapus != null) {
if (pHapus == pAwal) {
hapusSatuDataDiAwal();
} else if (pHapus == pAkhir) {
hapusSatuDataDiAkhir();
} else {
pSblmHapus.next = pHapus.next;
(pHapus.next).prev = pSblmHapus;
counter--;
}
} else {
System.out.println("Data tidak ada ");
}
}
public void hapusSatuDataDiAwal() {
pAwal = pAwal.next;
pAwal.prev = pAkhir;
counter--;
}
public void hapusSatuDataDiAkhir() {
pAkhir = pAkhir.prev;
pAkhir.next = pAwal;
counter--;
}
public void cetak(String Komentar) {
System.out.println(Komentar);
Nodecdll pCetak;
pCetak = pAwal;
int i = -1;
while ((i < counter)) {
System.out.println(pCetak.data.getNama() + " - " + pCetak.data.getNIM() + " - " + pCetak.data.getIPK() +"");
pCetak = pCetak.next;
i++;
}
System.out.println("");
}
public void cetakIPK3(String Komentar) {
System.out.println(Komentar);
Nodecdll pCetak;
pCetak = pAwal;
int i = -1;
while ((i < counter)) {
if (pCetak.data.getIPK() > 3) {
System.out.println(pCetak.data.getNama() + " - " + pCetak.data.getNIM() + " - " + pCetak.data.getIPK() + "");
}
pCetak = pCetak.next;
i++;
}
System.out.println("");
}
}
public class Mahasiswa {
private String nama, NIM;
private double IPK;
public Mahasiswa(String nama, String NIM, double IPK) {
this.nama = nama;
this.NIM = NIM;
this.IPK = IPK;
}
String getNama() {
return nama;
}
String getNIM() {
return NIM;
}
double getIPK() {
return IPK;
}
}
public class test {
public static void main(String[] args) {
CDLL c = new CDLL();
Mahasiswa mhs1 = new Mahasiswa("135150201111098", "Mely", 2.4);
Mahasiswa mhs2 = new Mahasiswa("135150201111761", "Aldy", 3.7);
Mahasiswa mhs3 = new Mahasiswa("135150201111429", "Doni", 3.6);
Mahasiswa mhs4 = new Mahasiswa("135150201111237", "Ardi", 2.9);
c.SisipDataDiAwal(mhs1);
c.SisipDataDiAwal(mhs2);
c.SisipDataDiAwal(mhs3);
c.SisipDataDiAwal(mhs4);
c.cetak("Isi cdll awal");
c.cetakIPK3("Isi cdll awal IPK > 3");
c.hapusData(mhs3);
c.cetak("Isi cdll setelah data Doni dihapus");
c.hapusSatuDataDiAkhir();
c.cetak("isi cdll setelah data di akhir dihapus");
}
}
Tidak ada komentar:
Posting Komentar