Langsung ke konten utama

Program Queue dengan Double Linked List - Pemrograman Bahasa Java

Program Queue dengan Double Linked List

Tugas :

Buatlah program menggunakan double linked list yang minimal memiliki menu untuk menjalankan operasi operasi dasar Queue, antara lain : enqueue, dequeue, dan print. Studi kasusnya adalah antrian pembayaran listrik dengan data yang disimpan dalam node/simpul adalah nomor urut antrian dan kode pelanggan.

 

Source Code :

cObjek

package Queue;

public class cObjek {

    private String nama;

    private String kode;

    private int noUrut;

    cObjek next, prev;//agar bisa mengakses ke kanan dan kiri

   

    cObjek(int no, String nm, String kd){

        nama=nm;

        kode=kd;

        noUrut=no;

        next=prev=null;

        System.out.println("Pelanggan dengan No Urut "+no+" atas Nama "+nm+

                " memiliki kode "+kd+" telah dibuat");

    }

   

    public String getNama(){

        return nama;

    }

    public String getKode(){

        return kode;

    }

    public int getnoUrut(){

        return noUrut;

    }

}

cQueue

package Queue;

public class cQueue {

    cObjek front, rear;

    int size;

    cQueue(){

        front=rear=null;

        size=0;

        System.out.println("Objek Queue telah dibuat");

    }

    public void enqueue(cObjek baru){

        //antrian masih kosong

        if(rear==null){

            front=rear=baru;

        }

        //antrian sudah ada isinya

        else{

            rear.next=baru;

            baru.prev=rear;

            rear=baru;

        }

        size++;

        System.out.println("Enqueue sukses...");

    }

    public cObjek dequeue(){

        if(rear==null){

            System.out.println("Queue kosong...");

            return null;

        }

        else if(front.next==null){

            //queue tinggal satu objek

            cObjek t=front;

            front=rear=null;

            System.out.println("Dequeue sukses...");

            size--;

            return(t);

        }

        else{

            //queue lebih dari satu, yang keluar dari ujung front

            cObjek t=front.next;

            cObjek t2=front;

            t2.next=null;

            front=t;

            front.prev=null;

            System.out.println("Dequeue sukses...");

            size--;

            return(t2);

        }

    }

    public void print(){

        System.out.print("Isi Queue "+size+" : ");

        String spasi = "================================";

        System.out.println("\nAntrian Pembayaran Listrik\n"+spasi);

        System.out.print("No Urut \tNama \tKode\n"+spasi);

        for(cObjek t=front; t!=null; t=t.next){

            System.out.println("\n"+t.getnoUrut()+"\t\t"+t.getNama()+"\t"+t.getKode());

        }

        System.out.println("");

    }

}

appQueue

package Queue;

import java.util.*;

public class appQueue {

    public static void main(String[] args){

        Scanner sc=new Scanner(System.in);

        cQueue q=new cQueue();

        int pilih=0;

        do{

            System.out.println("\nProgram Queue");

            System.out.println("1. Enqueue");

            System.out.println("2. Dequeue");

            System.out.println("3. Print");

            System.out.println("4. Exit");

            System.out.print("Pilih = ");

            pilih=sc.nextInt();

            switch(pilih){

                case 1:

                    System.out.print("No Urut = ");

                    int no=sc.nextInt();

                    System.out.print("Input Nama = ");

                    String nm=sc.next();

                    System.out.print("Input Kode = ");

                    String kd=sc.next();

                    cObjek c = new cObjek(no, nm, kd);

                    q.enqueue(c);

                    break;

                case 2:

                    cObjek t=q.dequeue();

                    if(t==null){

                        System.out.println("Kosong...");

                    }

                    else{

                        System.out.println(t.getNama()+" telah keluar...");

                    }

                    break;

                case 3:

                    q.print();

                    break;

                case 4:

                    System.out.println("Terima kasih...");

                    break;

            }

        }while(pilih!=4);

    }

}

 

Hasil Running Program :

run:

Objek Queue telah dibuat

 

Program Queue

1. Enqueue

2. Dequeue

3. Print

4. Exit

Pilih = 1

No Urut = 1

Input Nama = Roro

Input Kode = AA01

Pelanggan dengan No Urut 1 atas Nama Roro memiliki kode AA01 telah dibuat

Enqueue sukses...

 

Program Queue

1. Enqueue

2. Dequeue

3. Print

4. Exit

Pilih = 3

Isi Queue 1 :

Antrian Pembayaran Listrik

================================

No Urut           Nama   Kode

================================

1                      Roro    AA01

 

 

Program Queue

1. Enqueue

2. Dequeue

3. Print

4. Exit

Pilih = 1

No Urut = 2

Input Nama = Ega

Input Kode = AA02

Pelanggan dengan No Urut 2 atas Nama Ega memiliki kode AA02 telah dibuat

Enqueue sukses...

 

Program Queue

1. Enqueue

2. Dequeue

3. Print

4. Exit

Pilih = 1

No Urut = 3

Input Nama = Fesa

Input Kode = AA03

Pelanggan dengan No Urut 3 atas Nama Fesa memiliki kode AA03 telah dibuat

Enqueue sukses...

 

Program Queue

1. Enqueue

2. Dequeue

3. Print

4. Exit

Pilih = 1

No Urut = 4

Input Nama = Ardi

Input Kode = AA04

Pelanggan dengan No Urut 4 atas Nama Ardi memiliki kode AA04 telah dibuat

Enqueue sukses...

 

Program Queue

1. Enqueue

2. Dequeue

3. Print

4. Exit

Pilih = 1

No Urut = 5

Input Nama = Anasti

Input Kode = AA05

Pelanggan dengan No Urut 5 atas Nama Anasti memiliki kode AA05 telah dibuat

Enqueue sukses...

 

Program Queue

1. Enqueue

2. Dequeue

3. Print

4. Exit

Pilih = 3

Isi Queue 5 :

Antrian Pembayaran Listrik

================================

No Urut           Nama   Kode

================================

1                      Roro    AA01

 

2                      Ega      AA02

 

3                      Fesa     AA03

 

4                      Ardi     AA04

 

5                      Anasti  AA05

 

 

Program Queue

1. Enqueue

2. Dequeue

3. Print

4. Exit

Pilih = 2

Dequeue sukses...

Roro telah keluar...

 

Program Queue

1. Enqueue

2. Dequeue

3. Print

4. Exit

Pilih = 2

Dequeue sukses...

Ega telah keluar...

 

Program Queue

1. Enqueue

2. Dequeue

3. Print

4. Exit

Pilih = 3

Isi Queue 3 :

Antrian Pembayaran Listrik

================================

No Urut           Nama   Kode

================================

3                      Fesa     AA03

 

4                      Ardi     AA04

 

5                      Anasti  AA05

 

 

Program Queue

1. Enqueue

2. Dequeue

3. Print

4. Exit

Pilih = 4

Terima kasih...

BUILD SUCCESSFUL (total time: 1 minute 18 seconds)


NB : Berikut saya lampirkan screenshot running program dalam bentuk drive, karena dalam blogger saya terdapat kendala:

https://drive.google.com/drive/folders/1ugxQaxsLYSgUfvFAkiwNiyF8G5Og2gEG?usp=sharing

Disusun : Roro Ayu Pangestuti (20082010128)

Komentar

Postingan populer dari blog ini

Program Linked List Lanjut (Double Linked List) - Pemrograman Bahasa Java

Tugas 1 : Buatlah program sederhana untuk mengelola data barang yang terdiri dari Kode, Nama, dan Harga dengan menggunakan double linked list. Menu program setidaknya untuk menambah simpul baru, menghapus simpul, menampilkan linked lis (maju dan mundur), serta mencari data Nama di dalam linked list.   Class Simpul package LinkedListLanjut; public class cSimpulDouble {     private String kode;     private String nama;     private String harga;     cSimpulDouble next;     cSimpulDouble prev;     cSimpulDouble(String kd,String nm, String hg){         kode=kd; nama=nm; harga=hg; next=null; prev=null;         System.out.println("Object "+kd+" Dibuat...");         System.out.println("Object "+nm+" Dibuat...");         System.o...