MainApp Source Code
package LinkedList;
import java.util.Scanner;
public class MainAPP {
public static void main(String[] args) {
Scanner S = new Scanner(System.in);
//cNode node = null;
cLinkedList LL = new cLinkedList(null);
byte pilih =0;
String nama, npm;
double ipk;
while(pilih !=5){
System.out.println("\nMenu Data Mahasiswa");
System.out.println("1. Tambah Data Mahasiswa");
System.out.println("2. Hapus Data Mahasiswa");
System.out.println("3. Cari Data Mahasiswa");
System.out.println("4. Lihat Daftar Mahasiswa");
System.out.println("5. Keluar");
System.out.print("Pilih : ");
pilih = S.nextByte();
switch(pilih){
case 1 :
byte pilih2;
System.out.println("\nMenu Tambah Data Mahasiswa");
System.out.println("1. Tambah Data di Urutan Terawal");
System.out.println("2. Tambah Data di Urutan Terakhir");
System.out.print("Pilih : ");
pilih2 = S.nextByte();
if(pilih2<3 && pilih2>0) {
System.out.print("\nMasukkan NPM : ");
npm = S.next();
System.out.print("Masukkan Nama : ");
S = new Scanner(System.in);
nama = S.nextLine();
System.out.print("Masukkan IPK : ");
ipk = S.nextDouble();
cNode node = new cNode(npm, nama, ipk);
if(pilih2==1) LL.addNode(node);
else if(pilih2 ==2) LL.addbackNode(node);
}
else System.out.println("Pilihan Tidak Valid");
break;
case 2 :
System.out.println("\nMenu Hapus Data Mahasiswa");
System.out.println("1. Hapus Data Pertama");
System.out.println("2. Hapus Data berdasarkan NPM");
System.out.println("3. Hapus Data Terakhir");
System.out.println("4. Hapus Seluruh Data Mahasiswa");
System.out.print("Pilih : ");
byte pilih3 = S.nextByte();
if(pilih3>4 || pilih3<1) System.out.println("Pilihan Tidak Valid!");
else {
if(pilih3==1) LL.deletefirstNode();
else if(pilih3==2){
System.out.print("NPM yang ingin dihapus : ");
String delnpm = S.next();
LL.deleteNode(delnpm);
}
else if(pilih3==3) LL.deletelastNode();
else LL.deleteallNode();
}
break;
case 3 :
System.out.print("Masukkan NPM yang dicari : ");
String carinpm = S.next();
LL.cariNode(carinpm);
break;
case 4 :
LL.cetakNode();
break;
case 5 : System.out.println("Terima Kasih!");
}
}
}
}
cNode Source Code
package LinkedList;
public class cNode {
private String npm, nama;
private double ipk;
cNode next, before;
cNode(String np, String n, double i){
npm = np; nama = n; ipk =i; next =null;
}
public void setNPM(String n){
npm =n;
}
public void setNama(String n){
nama =n;
}
public void setIPK(double i){
ipk =i;
}
public void setNext(cNode n){
next =n;
}
public String getNPM(){
return npm;
}
public String getNama(){
return nama;
}
public double getIPK(){
return ipk;
}
public cNode getNext(){
return next;
}
}
cLinkedList Source Code
package LinkedList;
import java.util.Scanner;
public class cLinkedList {
private cNode depan, blkg;
private int jmlhNode=0;
cLinkedList(cNode n){
depan =n ; blkg=n; jmlhNode=0;
}
public void addNode(cNode newNode){
if(depan ==null) {
depan = newNode;
blkg = newNode;
}
else{
newNode.setNext(depan);
depan =newNode;
}
jmlhNode++;
System.out.println("Data Berhasil Ditambahkan!");
}
public void addbackNode(cNode newNode){
if(depan==null){
depan =newNode;
blkg = newNode;
}
else if(depan!=null && blkg ==null){
blkg=null;
}
else{
blkg.next=newNode;
newNode.before=blkg;
blkg=newNode;
}
System.out.println("Data Berhasil Ditambahkan!");
}
public void deletefirstNode(){
Scanner S = new Scanner(System.in);
System.out.println("Hapus? (Y/T)");
System.out.print("Pilih : ");
String h = S.next();
if(h.equalsIgnoreCase("y")){
cNode t = depan.next;
depan = null;
depan = t;
System.out.println("Data Urutan Pertama Berhasil Dihapus!");
}
else System.out.println("Data Mahasiswa Gagal Dihapus!");
}
public void deleteNode(String n){
Scanner S = new Scanner(System.in);
boolean ketemu=false;
int jn=jmlhNode;
cNode t=depan;
if(t.getNPM() !=null){
for(t = depan ; jn >0 ; jn--){
if(t.getNPM().equalsIgnoreCase(n)){
ketemu=true;
System.out.println("Hapus? (Y/T)");
System.out.print("Pilih : ");
String h = S.next();
if(h.equalsIgnoreCase("y")){
while(t.getNext()!=null){
t.setNPM(t.getNext().getNPM());
t.setNama(t.getNext().getNama());
t.setIPK(t.getNext().getIPK());
t.setNext(t.getNext());
t=t.getNext();
}
t.setNext(null);
t.setNPM(null);
t.setNama(null);
t.setIPK(0);
jn=-1;
}
else System.out.println("Data Mahasiswa Gagal dihapus!");
}
t=t.getNext();
}
if(ketemu==false) System.out.println("Data tidak ditemukan!");
else System.out.println("Data NPM "+n+" Berhasil Dihapus!");
}
else System.out.println("Data Kosong!");
}
public void deletelastNode(){
Scanner S = new Scanner(System.in);
System.out.println("Hapus? (Y/T)");
System.out.print("Pilih : ");
String h = S.next();
if(h.equalsIgnoreCase("y")){
cNode t = blkg ;
while(t.getNext()!=null){
t.setNPM(t.getNext().getNPM());
t.setNama(t.getNext().getNama());
t.setIPK(t.getNext().getIPK());
t.setNext(t.getNext());
t=t.getNext();
}
t.setNext(null);
t.setNPM(null);
t.setNama(null);
t.setIPK(0);
System.out.println("Data Urutan Terakhir Berhasil Dihapus!");
}
else System.out.println("Data Mahasiswa Gagal Dihapus!");
}
public void deleteallNode(){
Scanner S = new Scanner(System.in);
System.out.println("Hapus? (Y/T)");
System.out.print("Pilih : ");
String h = S.next();
if(h.equalsIgnoreCase("y")){
for (int i = 0; i < jmlhNode; i++) {
blkg.before=null;
depan=null;
}
System.out.println("Seluruh Data Mahasiswa Berhasil Dihapus");
}
}
public void cetakNode(){
byte i =1;
if(depan !=null){
for (cNode t = depan; t != null; t=t.getNext()) {
if(t.getNPM()!=null){
System.out.println(i+". NPM : "+t.getNPM());
System.out.println(" Nama : "+t.getNama());
System.out.println(" IPK : "+t.getIPK());
System.out.println(" ");
i++;
}
}
}
else System.out.println("Data Mahasiswa Kosong!");
}
public void cariNode(String n){
cNode t;
boolean ketemu=false;
for (t = depan; t.getNPM()!=null && ketemu==false; t=t.getNext()) {
if(t.getNPM().equalsIgnoreCase(n)){
ketemu =true;
System.out.println("Data Mahasiswa ditemukan!");
System.out.println("NPM : "+t.getNPM());
System.out.println("Nama : "+t.getNama());
System.out.println("IPK : "+t.getIPK());
}
}
if(ketemu==false) System.out.println("Data tidak ditemukan!");
}
}
0 Comments