Semoga bermanfaat :)
import java.util.Scanner; public class LinkedListExample { 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; public 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 public void inproses(int item) { Node p = new Node(item); // Node p adalah nodebaru if (isKosong()) { depan = belakang = p; } else { belakang.berikut = p; belakang = p; } } public 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; } public 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; } public 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); } public 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"); } } public 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"); } } public 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 } } public void bacaproses() {// fungsinya untuk mencetak Node p; p = depan; while (p != null) { System.out.print(p.data + " "); p = p.berikut; } } }
thanks gan (y)
BalasHapussama sama ^^
HapusTerima kasih Sangat Membantu ,semoga berkah ilmunya .
BalasHapussama-sama. semoga bermanfaat :)
Hapuskalo inputnya di ubah jadi krakter huruf misal nama orang , bukan int , gimana ya kak teimakasih :)
BalasHapusBisa. Tinggal ubah data type yg integer jadi String. Untuk lengkapnya, silakan contact saya via email.
HapusSemoga membantu :)
Terima kasih min, membantu sekali min
BalasHapus