Struktur Data - Linked List pada Java

/
2 Comments
Di bawah ini merupakan coding linked list pada Java NetBeans
Semoga bermanfaat :)

package tugassd_linkedlist;
import java.util.Scanner;
 
public class TugasSD_LinkedList {

  
    public static void main(String[] args) {
    Scanner input = new Scanner(System.in);
    proses diproses = new proses();
    int inputan;
        System.out.print("Masukkan Banyak Node = ");
        inputan = input.nextInt();
    for(int i=0;i<inputan;i++){
        System.out.print("masukkan data = ");
        int item = input.nextInt();
        diproses.inproses(item);}
        System.out.println("===========CETAK===========");
        diproses.bacaproses();
        System.out.println();
        System.out.println("---------------------------");
    int pilihan;
        System.out.println("1. Untuk Menambah dan Menghapus data");
        System.out.println("0. Untuk Keluar");
        System.out.print("Masukkan Pilihan : ");
        pilihan = input.nextInt();
        System.out.println("---------------------------");
    while(pilihan==1){
        System.out.print("insert data depan = ");
    int tambahh = input.nextInt();
        diproses.tambahDepan(tambahh);
        System.out.println("===========CETAK===========");
        diproses.bacaproses();
        System.out.println();
        System.out.println("---------------------------");
        System.out.print("insert data belakang = ");
    int tambel = input.nextInt();
        diproses.tambahBelakang(tambel);
        System.out.println("===========CETAK===========");
        diproses.bacaproses();
        System.out.println();
        System.out.println("---------------------------");
        int key;
        System.out.print("key = ");
        key = input.nextInt();
        int baru;
        System.out.print("masukkan data baru = ");
        baru = input.nextInt();
        diproses.tambahDimanapun(baru, key);
        System.out.print("============cetak===========");
        System.out.println();
        diproses.bacaproses();
        System.out.println();
        System.out.println("---------------------------");
        System.out.print("======Hapus Data Depan======");
        System.out.println();
        diproses.deleltefirst();
        diproses.bacaproses();
        System.out.println();
        System.out.println("---------------------------");
        System.out.print("=====Hapus Data Belakang=====");
        System.out.println();
        diproses.deleteLast();
        diproses.bacaproses();
        System.out.println();
        System.out.println("---------------------------");
        System.out.print("=======Hapus Satu Data=======");
        System.out.println();
    int key2;
        System.out.print("Tulis data yang akan dihapus = ");
        key2 = input.nextInt();
        diproses.delete(key2);
        diproses.bacaproses();
        System.out.println();
        System.out.println("---------------------------");
        System.out.println("1. Untuk lanjut memproses data ☺");
        System.out.println("0. Untuk Keluar");
        System.out.print("Masukkan Pilihan : ");
        pilihan = input.nextInt();
    if(pilihan==0)
        System.out.println("=======Terima kasih ☺ =======");
        }
        System.out.println("=======Terima kasih ☺ =======");
       
           
    }
}
class Node{
    int data;
    Node berikut; // pointer
    public Node(){}
    public Node(int dt){
        data=dt;
        berikut=null;
    }
}
class proses{ // untuk mengolah data (linked list)
    Node Depan;
    Node Belakang;
   
    boolean isKosong(){ //memisalkan sebuah wadah kosong (Linked List-nya)
        if ((Depan==null)&&(Belakang==null))
            return true;
        else
            return false;
    }
    // untuk memproses data yang diinput dari keyboard
    void inproses(int item){
        Node p = new Node(item); //Node p adalah nodebaru
        if(isKosong()){
            Depan=Belakang=p;
        }
        else{
            Belakang.berikut=p;
            Belakang=p;
        }
    }
    void tambahDepan(int item){
        Node p = new Node();
        p.data=item;
        if (isKosong()){
            Belakang=Depan=p;
            p.berikut=null;
        }
        else
            p.berikut=Depan;
            Depan=p;
    }
    void tambahBelakang(int item){
        Node p = new Node();
        p.data=item;
        if(isKosong()){
            Depan=Belakang=p;
        }
        else
            Belakang.berikut=p;
            Belakang=p;
            Belakang.berikut=null;
    }
    void tambahDimanapun(int item, int key){
        Node temp = Depan;
        Node p = new Node();
        p.data=item;
        do{
        if(temp.data==key){
            p.berikut=temp.berikut;
            temp.berikut = p;
            break;
        }
        temp=temp.berikut;
        }
        while(temp!=null);
    }
    void deleltefirst(){
        Node temp = Depan;
        if(!isKosong()){
            if(Depan==Belakang){
                Depan=Belakang=null;
            }
            else{
                Depan=Depan.berikut;
                temp=null;
            }
        }
        else System.out.println("Data Kosong");
    }
    void deleteLast(){
        Node temp = Depan;
        if(!isKosong()){
            if(Depan==Belakang){
                Depan=Belakang=null;
            }
            else{
                while(temp.berikut!=Belakang){
                    temp = temp.berikut;
                }
                Belakang=temp;
                temp.berikut=null;
            }
        }
        else System.out.println("Data Kosong");
    }
    void delete(int key2){
        Node temp = Depan;
        if(!isKosong()){ //1
            while(temp!=null){
                if(temp.berikut.data==key2){ //2
                    temp.berikut = temp.berikut.berikut;
                    break;
                }
                if(key2!=temp.data){ //jika key yang dimasukkan salah
                    System.out.println("Data yang anda masukkan salah ");
                    break;
                }
                else if((temp.data==key2)&&(temp==Depan)){ //2 //3 //untuk key yang letaknya di depan
                    if ((Depan!=null)&&(Belakang!=null)){ 
                        if(Depan==Belakang){ //4 //jika hanya terdiri 1 data
                        Depan=Belakang=null;
                            }
                        else{ //4
                            Depan=Depan.berikut; //jika terdiri dari beberapa data
                            temp=null;
                            }
                        }
                    break;
                }
                else {
                    temp = temp.berikut; //3
                    }
            }
        }
        else System.out.println("Data Kosong"); //1
    }
    void bacaproses(){//fungsinya untuk mencetak
        Node p;
        p=Depan;
        while(p!=null){
            System.out.print(p.data+" ");
            p=p.berikut;
        }
    }
}


You may also like

2 komentar:

Diberdayakan oleh Blogger.

You can replace this text by going to "Layout" and then "Page Elements" section. Edit " About "

Lucky Charms Rainbow

Pages