Advertisement

Main Ad

Linked List ㅡ Data Mahasiswa (2)

 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!");

    }

}


Output Program

Penambahan Data Mahasiswa ke Urutan Pertama


Daftar Data Mahasiswa setelah Ditambahkan


Penambahan Data Mahasiswa ke Urutan Terakhir dan Hasil Daftar Datanya


Penambahan Kembali Data Mahasiswa ke Urutan Terakhir serta Hasil Daftarnya



Penghapusan Data Pertama serta Daftar Datanya Setelah Dilakukan Penghapusan


Penghapusan Data Terakhir serta Daftar Datanya Setelah Dilakukan Penghapusan


Penghapusan Data Pertama serta Daftar Datanya Setelah Dilakukan Penghapusan


Penghapusan Seluruh Data Mahasiswa serta Daftar Datanya Setelah Dilakukan Penghapusan

 




Post a Comment

0 Comments