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
Posting Komentar