Advertisement

Main Ad

Circular Linked List ㅡ Data Mahasiswa

Source Code MainAPP

package LinkedListDouble;

import 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 !=6){

            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. Bagi Karakter");

            System.out.println("6. 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.print("Masukkan Kata : ");

                    String kata = S.next();

                    

                    System.out.print("Masukkan NPM untuk karakter pertama : ");

                    String npmpertama = S.next();

                    LL.bagiKata(kata, npmpertama);

                    break;

                case 6 : System.out.println("Terima Kasih!");

            }

        }

    }

}



Source Code cLinkedList

package LinkedListDouble;

import 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.next = depan;

            depan.before =newNode;

            depan =newNode;

        }

        jmlhNode++;

        System.out.println("Data Berhasil Ditambahkan!");

    }

    

    public void addbackNode(cNode newNode){

        if(blkg==null){

            depan =newNode;

            blkg = newNode;

        }

        else{

            newNode.before=blkg;

            blkg.next=newNode;            

            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")){

            if(depan==null) System.out.println("Daftar Data Mahasiswa Kosong!");

            else if(depan.next==null) depan=blkg=null;

            else{

                cNode t = depan.next;

                depan = null;

                depan = t;

                depan.before=null;

                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 !=null){

            for(t = depan ; ketemu!=true && t!=null; t=t.getNext()){

                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")){

                        cNode u = t.before;

                        cNode v = t.next;

                        u.next=null;

                        v.before=null;

                        u.next=v;

                        v.before=u;

                    }

                    else System.out.println("Data Mahasiswa Gagal dihapus!");

                }

            }

            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")){

            if(depan==null) System.out.println("Daftar Data Mahasiswa Kosong!");

            else if(blkg.before==null) blkg=depan=null;

            else{

                cNode t = blkg.before;

                blkg.before=null;

                blkg=t;            

                blkg.next=null;

                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")){

            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()) {

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

    }

    public void bagiKata(String k, String n){

        int jmlhkata = k.length();

        boolean ketemu=false;

        

        if(depan==null)System.out.println("Data Mahasiswa Kosong");

        else{

            for (cNode u = depan; u!=null; u=u.getNext()) {

                if(u.getNPM().equalsIgnoreCase(n)){

                    ketemu=true;

                    cNode t = u;

                    for (int i = 0; i < jmlhkata; i++) {

                        System.out.println(k.charAt(i)+" : "+t.getNama()+"\t("+t.getNPM()+")");

                        

                        if(t.getNext()!=null) t=t.getNext();

                        else t=depan;

                    }

                }

            }

            if(ketemu==false) System.out.println("Data Mahasiswa Tidak Ditemukan!");

        }

    }

}



Source Code cNode

package LinkedListDouble;

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;

    }

}


Output Program

Penambahan Data Mahasiswa serta Daftar Datanya





Pembagian Kata dengan Karakter yang Lebih Banyak Dibandingkan Data Mahasiswa


Pembagian Kata dengan Karakter yang Lebih Sedikit Dibanding Data Mahasiswa



Post a Comment

0 Comments