Langsung ke konten utama

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.out.println("Object "+hg+" Dibuat...");

    }

    public String getNama(){

        return nama;

    }

    public String getKode(){

        return kode;

    }

    public String getHarga(){

        return harga;

    }

    public String ToString(){

        return kode+"\t"+nama+"\t"+harga;

    }

}

Class Linked List

package LinkedListLanjut;

public class cDaftarBerkaitDouble {

    cSimpulDouble head, tail;

    int jSimpulDouble;

    cDaftarBerkaitDouble(){

        head=tail=null;

        jSimpulDouble=0;

        System.out.println("Object telah dibuat...");

    }

    public void tambahSimpul(cSimpulDouble baru){

        //Linked list kosong

        if(head==null){

            head=tail=baru;//Isi simpul baru akan diisikan ke head dan tail

        }

        //Linked list sudah ada isinya (dengan penambahan di belakang)

        else{

            tail.next=baru;//sambung yang baru ke kanan

            baru.prev=tail;//sambung 2 anak panah

            tail=baru;//update ke tail yang baru dengan geser ekor

        }

        System.out.println("Penambahan Sukses...");

    }

    public void hapusSimpul(){

        if (head==null) {

            System.out.println("Linked List Kosong!");

        }

        else if(head.next==null){//linked list tinggal satu

            head=tail=null;

            System.out.println("Penghapusan Sukses");

        }

        else{

            cSimpulDouble t = tail.prev;

            tail.prev = null;

            t.next = null;

            tail = t;

            System.out.println("Penghapusan Berhasil");

        }

    }

    public void cetak(){

        System.out.println("Isi Double Linked List");

        System.out.print("Mundur =\n");//depan ke belakang dari head

        for(cSimpulDouble t=head; t!=null; t=t.next){

            System.out.println(t.ToString());

        }

        System.out.println("");

        System.out.print("Maju   =\n");

        for(cSimpulDouble t=tail; t!=null; t=t.prev){

            System.out.println(t.ToString());

        }

        System.out.println("");

    }

    public void cari(String cr){

        boolean ada = false;

        System.out.println("Hasil Pencarian = ");

        for(cSimpulDouble t = head; t != null; t=t.next){

            if(t.getNama().equalsIgnoreCase(cr)){

                ada = true;

                break;

            } else{

               

            }

        }

        if (ada) {

            System.out.println("Item Ditemukan");

        } else {

            System.out.println("Item Tidak Ditemukan");

        }

        System.out.println("");

    }

}

Main App Linked List

package LinkedListLanjut;

import java.util.*;

public class appLinkedListLanjutDouble {

    public static void main(String[]args){

        Scanner s=new Scanner(System.in);

        cDaftarBerkaitDouble db = new cDaftarBerkaitDouble();

        int pilih=0;

        do{

            System.out.println("\nMenu Linked List Toko Barokah");

            System.out.println("1. Tambah Simpul");

            System.out.println("2. Hapus Simpul");

            System.out.println("3. Cetak Linked List");

            System.out.println("4. Cari Linked List");

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

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

            pilih=s.nextInt();

            switch(pilih){

                case 1:

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

                    String kd=s.next();

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

                    String nm = s.next();

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

                    String hg = s.next();

                    cSimpulDouble c = new cSimpulDouble(kd,nm,hg);

                    db.tambahSimpul(c);

                    break;

                case 2:

                    db.hapusSimpul();

                    break;

                case 3:

                    System.out.println("TOKO BAROKAH");

                    db.cetak();

                    break;

                case 4:

                    System.out.println("Cari Item = ");

                    String cr=s.next();

                    db.cari(cr);

                    break;

                case 5:

                    System.out.println("Terimakasih");

                    break;

            }

        }while(pilih!=5);

    }

}

Hasil Running Program

run:

Object telah dibuat...

 

Menu Linked List Toko Barokah

1. Tambah Simpul

2. Hapus Simpul

3. Cetak Linked List

4. Cari Linked List

5. Exit

Pilih = 1

Input Kode  = 301

Input Item  = Kopi

Input Harga = 3000

Object 301 Dibuat...

Object Kopi Dibuat...

Object 3000 Dibuat...

Penambahan Sukses...

 

Menu Linked List Toko Barokah

1. Tambah Simpul

2. Hapus Simpul

3. Cetak Linked List

4. Cari Linked List

5. Exit

Pilih = 1

Input Kode  = 302

Input Item  = Jus

Input Harga = 5000

Object 302 Dibuat...

Object Jus Dibuat...

Object 5000 Dibuat...

Penambahan Sukses...

 

Menu Linked List Toko Barokah

1. Tambah Simpul

2. Hapus Simpul

3. Cetak Linked List

4. Cari Linked List

5. Exit

Pilih = 1

Input Kode  = 303

Input Item  = Teh

Input Harga = 2000

Object 303 Dibuat...

Object Teh Dibuat...

Object 2000 Dibuat...

Penambahan Sukses...

 

Menu Linked List Toko Barokah

1. Tambah Simpul

2. Hapus Simpul

3. Cetak Linked List

4. Cari Linked List

5. Exit

Pilih = 3

TOKO BAROKAH

Isi Double Linked List

Mundur =

301      Kopi    3000

302      Jus       5000

303      Teh      2000

 

Maju   =

303      Teh      2000

302      Jus       5000

301      Kopi    3000

 

 

Menu Linked List Toko Barokah

1. Tambah Simpul

2. Hapus Simpul

3. Cetak Linked List

4. Cari Linked List

5. Exit

Pilih = 2

Penghapusan Berhasil

 

Menu Linked List Toko Barokah

1. Tambah Simpul

2. Hapus Simpul

3. Cetak Linked List

4. Cari Linked List

5. Exit

Pilih = 3

TOKO BAROKAH

Isi Double Linked List

Mundur =

301      Kopi    3000

302      Jus       5000

 

Maju   =

302      Jus       5000

301      Kopi    3000

 

 

Menu Linked List Toko Barokah

1. Tambah Simpul

2. Hapus Simpul

3. Cetak Linked List

4. Cari Linked List

5. Exit

Pilih = 4

Cari Item =

Kopi

Hasil Pencarian =

Item Ditemukan

 

 

Menu Linked List Toko Barokah

1. Tambah Simpul

2. Hapus Simpul

3. Cetak Linked List

4. Cari Linked List

5. Exit

Pilih = 5

Terimakasih

BUILD SUCCESSFUL (total time: 47 seconds)

Disusun : Roro Ayu Pangestuti (20082010128)

Catatan untuk Pak Cahyo : Mohon maaf Bapak sebelumnya, saya mengumpulkan agak terlambat dari teman teman yang lain. Saya juga mohon maaf apabila saya pernah berbuat kesalahan yang mungkin tidak saya sadari. Selamat Hari Raya Idul Fitri, 1 Syawal 1442 H ya pak. Minal Aidzin Wal Faidzin, mohon maaf lahir batin.


Komentar