Struktur Data - Linked List pada Java

/
1 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

1 komentar:

Diberdayakan oleh Blogger.

It's Me

Foto Saya
Fitriana Dzulfaidah
Saya adalah mahasiswa Universitas Airlangga '12 jurusan Sistem Informasi. Saya termasuk orang yang fleksibel. Kalau teman saya pendiam, saya juga bisa jadi pendiam. Tetapi kalau teman saya ramai, saya juga bisa ramai. Namun pada dasarnya saya orang yang suka lelucon dan ketawa.
Lihat profil lengkapku

Followers

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

Lucky Charms Rainbow

Search This Blog

Memuat...

My Note


Gitagut

Pin

Cuteki cute

Popular Posts

Pages

Popular Posts