Program Linked List Barang 2
Berikut ini merupakan contoh program linked list dengan bahasa pemrograman java untuk penyimpanan data barang versi kedua (versi pertama dapat dilihat disini) dengan tambahan untuk pilihan tambah dan hapus node depan dan node belakang:
Source Code
1. Class cNode
public class cNode {
private String kode;
private String nama;
private int harga;
cNode next;
cNode prev;
cNode(String k, String n, int h){
kode = k; nama = n; harga = h;
next = null;
System.out.println("Object "+k+" "+n+" "+h+" dibuat...");
}
public String getKode() {
return kode;
}
public String getNama() {
return nama;
}
public int getHarga() {
return harga;
}
public String ToString() {
return kode+"||"+nama+"||"+harga;
}
}
2. Class cLinkedList
public class cLinkedList {
cNode header;
cNode tail;
int jNode;
cLinkedList(cNode s){
header = tail = s;
jNode = 0;
System.out.println("Object Linked List dibuat...");
}
public void tambahNodeDepan(cNode baru) {
if(header == null) {
header = tail = baru;
}
else {
baru.next = header;
header = baru;
}
System.out.println("Penambahan sukses...");
}
public void tambahNodeBelakang(cNode baru) {
if(tail == null) {
header = tail = baru;
}
else {
tail.next = baru;
baru.prev = tail;
tail = baru;
}
}
public void hapusNodeDepan() {
if(header == null) {
System.out.println("Linked List kosong!");
}
else {
cNode t = header.next;
header = null;
header = t;
System.out.println("Penghapusan sukses...");
}
}
public cNode hapusNodeBelakang() {
if(header != null) {
cNode list, t;
if(header.next == null) {
t = header;
header = tail = null;
}
else {
list = header;
while (list.next != tail) {
list = list.next;
}
t = tail;
tail = list;
tail.next = null;
}
System.out.println("Penghapusan sukses...");
return t;
}
else {
System.out.println("Linked List kosong!");
return null;
}
}
public void cariNode(String c) {
boolean yes = false;
System.out.println("Barang dicari: ");
for(cNode t = header; t != null; t = t.next) {
if(t.getNama().equalsIgnoreCase(c)) {
yes = true;
break;
}
}
if(yes == false) {
System.out.println("Data barang tidak ada!");
}
else {
System.out.println("Barang ditemukan...");
}
System.out.println();
}
public void cetakLinkedList() {
System.out.println("Isi Linked List: ");
for(cNode t = header; t != null; t = t.next) {
System.out.println(t.ToString());
}
System.out.println("");
}
}
3. Class appLinkedListBarang
import java.util.Scanner;
public class appLinkedListBarang {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
cLinkedList db = new cLinkedList(null);
int pilih = 0;
do {
System.out.println("\nMENU LINKED LIST BARANG");
System.out.println("1. Tambah Node Depan");
System.out.println("2. Tambah Node Belakang");
System.out.println("3. Hapus Node Depan");
System.out.println("4. Hapus Node Belakang");
System.out.println("5. Cari Linked List");
System.out.println("6. Cetak Linked List");
System.out.println("7. Exit");
System.out.print("Pilih = ");
pilih = sc.nextInt();
switch(pilih) {
case 1:
System.out.print("Masukkan kode barang = ");
String kd = sc.next();
System.out.print("Masukkan nama barang = ");
String nm = sc.next();
System.out.print("Masukkan harga barang = ");
int hrg = sc.nextInt();
cNode b1 = new cNode(kd, nm, hrg);
db.tambahNodeDepan(b1);
break;
case 2:
System.out.print("Masukkan kode barang = ");
kd = sc.next();
System.out.print("Masukkan nama barang = ");
nm = sc.next();
System.out.print("Masukkan harga barang = ");
hrg = sc.nextInt();
cNode b2 = new cNode(kd, nm, hrg);
db.tambahNodeBelakang(b2);
break;
case 3:
db.hapusNodeDepan();
break;
case 4:
db.hapusNodeBelakang();
break;
case 5:
System.out.print("Nama barang: ");
String c = sc.next();
db.cariNode(c);
break;
case 6:
db.cetakLinkedList();
break;
case 7:
System.out.println("Terima kasih...");
break;
}
} while(pilih != 7);
}
}






Comments