CSLL Java implementasi Class Mahasiswa
package csll;
class NodeCsll {
Mahasiswa data;
NodeCsll next;
}
class Csll {
private NodeCsll pAwal, pAkhir;
private int counter;
public Csll() {
pAwal = null;
pAkhir = null;
counter = -1;
}
public void SisipDataDiAwal(Mahasiswa data) {
NodeCsll pBaru = new NodeCsll();
pBaru.data = data;
pBaru.next = null;
if (pAwal == null) {
pAwal = pBaru;
pAkhir = pBaru;
pBaru.next = pAwal;
counter = 0;
} else {
pBaru.next = pAwal;
pAwal = pBaru;
pAkhir.next = pAwal;
counter++;
}
}
public void hapusData(Mahasiswa dtHapus) {
if (pAwal != null) {
NodeCsll pSbl, pKini, pHapus;
pSbl = null;
pKini = pAwal;
boolean ketemu = false;
int i = -1;
if (pAwal != null) {
i = 0;
}
while (!ketemu && (i <= counter) && (i != -1)) {
if (pKini.data.equals(dtHapus)) {
ketemu = true;
} else {
pSbl = pKini;
pKini = pKini.next;
}
i++;
}
if (ketemu) {
if (pSbl == null) {
pHapus = pAwal;
pHapus = null;
} else {
pSbl.next = pKini.next;
pHapus = pKini;
pHapus = null;
}
this.counter--;
}
}
}
public Object hapusSatuDataDiAkhir() {
NodeCsll tmp = pAwal;
NodeCsll tampung;
while (tmp != pAkhir) {
tmp = tmp.next;
}
tampung = pAkhir;
tmp.next = pAwal;
counter--;
return tampung;
}
public void cetak(String Komentar) {
System.out.println(Komentar);
NodeCsll 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("NULL");
}
public void cetakIPK3(String Komentar) {
System.out.println(Komentar);
NodeCsll 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("NULL");
}
}
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) {
Csll csll = new Csll();
Mahasiswa mhs1 = new Mahasiswa("135150201111123", "Surti", 3.2);
Mahasiswa mhs2 = new Mahasiswa("135150201111789", "Renal", 4.0);
Mahasiswa mhs3 = new Mahasiswa("135150201111234", "Bobbi", 2.1);
Mahasiswa mhs4 = new Mahasiswa("135150201111456", "April", 1.8);
csll.SisipDataDiAwal(mhs1);
csll.SisipDataDiAwal(mhs2);
csll.SisipDataDiAwal(mhs3);
csll.SisipDataDiAwal(mhs4);
csll.cetak("Isi csll awal");
csll.cetakIPK3("Isi csll awal IPK > 3");
csll.hapusData(mhs3);
csll.cetak("Isi csll setelah data Bobbi dihapus");
csll.hapusSatuDataDiAkhir();
csll.cetak("isi csll setelah data di akhir dihapus");
}
}
Tidak ada komentar:
Posting Komentar