import java.util.Scanner;
class Node {
public String Nim;
public String Nama;
public double Ipk;
public Node next;
// -------------------------------------------------------------
public Node(String nim, String nama, double ipk) {
Nim = nim;
Nama = nama;
Ipk = ipk;
}
// -------------------------------------------------------------
public void tampilNode() {
System.out.printf(" %-8s %-13s %5s \n",Nim,Nama,Ipk);
}
public String getNIM(){
return Nim;
}
//method mengambil data nim
public String getNama(){
return Nama;
}
//method mengambil data nama
public double getIpk(){
return Ipk;
}
//method mengambil data ipk
} // end class Node
////////////////////////////////////////////////////////////////
class firstEndList {
private Node first;
private Node last;
public int nilai;
public int max;
// -------------------------------------------------------------
public firstEndList() {
nilai=0;
first = null;
last = null;
max=5;
}
// -------------------------------------------------------------
public boolean isEmpty() {
return first==null;
}
//--------------------------------------------------------------
public boolean isFull() { // bernilai true jika queue penuh
return ( nilai == max);
}
// -------------------------------------------------------------
public void insertLast(String Nim, String Nama, double Ipk) {
Node newNode = new Node(Nim,Nama, Ipk);
if( isEmpty() )
first = newNode;
else
last.next = newNode;
last = newNode;
nilai++;
}
// -------------------------------------------------------------
public Node hapusFirst() {
nilai--;
Node temp = first;
if(first.next == null)
last = null;
first = first.next;
return temp;
}
// -------------------------------------------------------------
public void tampil() {
Node indek = first;
while(indek != null) {
indek.tampilNode();
indek = indek.next;
}
System.out.println("");
}
// -------------------------------------------------------------
} // end class LinkList
////////////////////////////////////////////////////////////////
class LinkQueue {
private firstEndList list;
//--------------------------------------------------------------
public LinkQueue() {
list = new firstEndList();
}
//--------------------------------------------------------------
public boolean isEmpty() {
return list.isEmpty();
}
//--------------------------------------------------------------
public boolean isFull() {
return list.isFull();
}
//--------------------------------------------------------------
public void insert(String Nim, String Nama, double Ipk) {
list.insertLast(Nim, Nama,Ipk);
}
//--------------------------------------------------------------
public Node hapus() {
return list.hapusFirst();
}
//--------------------------------------------------------------
public void tampilQueue() {
System.out.println("Queue (awal-->akhir): ");
list.tampil();
}
//--------------------------------------------------------------
public void clear() {
while( !isEmpty() ) // hapus data sampai kosong
hapus();
}
//--------------------------------------------------------------
} // end class LinkQueue
////////////////////////////////////////////////////////////////
class Prak09_11520244043 {
public static void main(String [] args) {
Scanner sken = new Scanner(System.in);
LinkQueue queue = new LinkQueue();
String nim, nama;
double ipk;
int menu;
//pilihan menu
do{
System.out.println("--------------------");
System.out.println(" MENU PILIHAN ");
System.out.println("--------------------");
System.out.println(" 1. Tambah Data ");
System.out.println(" 2. Lihat Data ");
System.out.println(" 3. Hapus Data ");
System.out.println(" 4. Clear Data ");
System.out.println(" 5. Keluar ");
System.out.print("Pilihan anda --> : ");
menu = sken.nextInt();
System.out.println("");
switch(menu) {
case 1 : {
if(queue.isFull()){
System.out.println(" Queue sudah penuh!!! ");
}else {
System.out.println(" Input Data -->> ");
System.out.print(" Nim : ");
nim = sken.next();//Melakukan input nim
System.out.print(" Nama : ");
nama = sken.next();//Melakukan input nama
System.out.print(" Ipk : ");
ipk = sken.nextDouble();//Melakukan input ipk
queue.insert(nim,nama,ipk);
System.out.println("---------------------");
System.out.println("");
}
break;
}case 2 : {
if(queue.isEmpty()){
System.out.println(" Queue Kosong!!! ");
}else {
queue.tampilQueue();
}
break;
}case 3 : {
if(queue.isEmpty()){
System.out.println(" Queue Kosong!!! ");
}else {
System.out.println(" Hapus data -->> ");
Node y = queue.hapus();
if( y != null ){
System.out.println("-------------------------");
System.out.println(" Data sudah dihapus !!! ");
System.out.println("-------------------------");
System.out.println("");
}else{
System.out.println("--------------------------");
System.out.println("Data tidak dapat dihapus!!!");
System.out.println("--------------------------");
System.out.println("");
}
}
break;
}case 4 :{
queue.clear();//memanggil method clear pada kelas tumpukan untuk mengosongkan semua data
break;
}
}
}while(menu > 0 && menu < 5);
} // end main()
} // end class QueueWithLink
////////////////////////////////////////////////////////////////
Tidak ada komentar:
Posting Komentar