Вы находитесь на странице: 1из 13

Contoh 1

package WILDAN_TECHNO_ART;

import java.util.LinkedList;

public class latihan_java {

public static void main(String[] args){


//Membuat Instance/Objek dari LinkedList
LinkedList<String> buah = new LinkedList<>();

//Menambahkan Data pada Objek buah


buah.add("Jeruk");
buah.add("Jambu");
buah.add("Apel");
buah.add("Melon");
buah.add("Semangka");
buah.add("Nanas");
buah.add("Sirsak");

//Mencetak/Menampilkan Data
System.out.println("Nama Buah: "+buah);

//Menghitung Jumlah/Ukuran pada Objek LinkedList


System.out.println("Jumlah Buah: "+buah.size());
}
}

Contoh 2
Buat Kelas Node
package linkedlist;
public class Node {
int rifki_nurcholis_41170448_data;
Node next;

public Node(int data){


this.rifki_nurcholis_41170448_data = data;
}

public void tampil(){


System.out.print("{"+rifki_nurcholis_41170448_data+"}");
}
}

________________________
Buat Kelas LinkedList
package linkedlist;
public class LinkedList {
Node first ;

public LinkedList(){
first = null;
}

public boolean isEmpty(){


return (first==null);
}

public void addFirst(int rifki_nurcholis_41170448_data){


Node node = new Node(rifki_nurcholis_41170448_data);
node.next = first;
first = node;
}

// Menambah data dari simpul terakhir


public void addLast(int rifki_nurcholis_41170448_data){
Node node, help;
node = new Node(rifki_nurcholis_41170448_data);
node.next = null;

if(isEmpty()){
first = node;
first.next = null;
}else{
help = first;
while(help.next!=null){
help=help.next;
}
help.next=node;
}
}

// menghapus data dari simpul pertama


public Node deleteFirst(){
if(!isEmpty()){
Node temp = first;
first = first.next;
return temp;
}else{
return null;
}
}

// menghapus data dari simpul terakhir


public Node deleteLast(){
if(!isEmpty()){
Node temp, current;
current=first;
while(current.next.next != null){
current=current.next;
}
temp=current.next;
current.next=null;
return temp;
}else{
Node temp = first;
first = null;
return temp;
}
}

// menampilkan isi linked list


public void tampilkan(){
Node current = first;
if(current == null){
System.out.println("Kosong!");
}else{
while(current != null){
current.tampil();
current = current.next;
}
System.out.println();
}
}

__________________________________________
Buat Kelas LinkedListApps
package linkedlist;
public class LinkedListApps {
public static void main(String[] args) {

LinkedList link = new LinkedList();


link.addFirst(1);
link.addFirst(2);
link.addLast(3);
link.addLast(4);
link.tampilkan();
link.deleteLast();
link.tampilkan();

}
}

Contoh 3
package linkedlists;
import java.util.Scanner;
public class LinkedLists {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
proses diproses = new proses();
int rifki_nurcholis_41170448_inputan;
System.out.print("Masukkan Banyak Node = ");
rifki_nurcholis_41170448_inputan = input.nextInt();
for (int i = 0; i < rifki_nurcholis_41170448_inputan; i++) {
System.out.print("masukkan data = ");
int rifkinurcholis_41170448_item = input.nextInt();
diproses.inproses(rifkinurcholis_41170448_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=======");
}
}

}
}

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;
}
}

Latihan
Kelas linked node
import java.util.Scanner;//membuat sebuah fungsi scanner
public class Linknode{ //membaut class bernama Linknode
Node kepala; //kepala atau data pertama
public void tambah(int data) //pembuatan funsi tambah
{
Node baru= new Node(data); //pembuatan objek baru
if(kepala!=null) //jika data pertama belum dimasukkan
{
baru.next=kepala; //menyambugkan baru dengan kepala
kepala=baru;//data pertama adalah objek baru
}
else //jika sudah terisi data pertama maka
{
kepala=baru; //kepala adalah data baru
kepala.next=null;
}
}
public void tambahakhir(int data) //fungsi tambah akhir
{
Node baru=new Node(data); //membuat objek baru
Node bantu; //membuat node bantu
bantu=kepala; //menginisialisasi bantu adalah kepala
while(bantu.next!=null) //perulangan while untuk mencari
{
bantu=bantu.next;//menjalankan bantu hingga null/kosong
}
bantu.next=baru;//menyimpan nilai setiap pergerakan di data baru
}

public void tampil() //menampiilkan data


{
Node curent; //sama seperti node bantu
curent=kepala; //sama juga
while(curent!=null) //perulangan while pencarian
{
System.out.print("{"+curent.data+"}"); //menampilkan data dari curent.
curent=curent.next; //menjalankan curent
}
}

public Node hapusawal() //fungsi hapus awal


{
Node a=kepala; //menginisialisasi a adlah kepala
kepala=kepala.next; //kepala adalah data selanjutnya
a.next=null; //a selanjutnya adalah kosong
return a; //kembali ke a
}

public Node hapusakhir() //membuat fungsi hapus data terakhir


{
Node c=kepala;
while(c.next.next!=null)
{
c=c.next;
}
c.next=null;
return c;
}

public void hapusall()


{
Node curent;
curent=kepala;
curent=null;
if(curent==null)
{
System.out.print("{kosong}");
}
}
public static void main(String[] args)//fungsi utama
{
Linknode x=new Linknode();//membuat objek baru x
Scanner in=new Scanner(System.in); //membuat fungsi scanner untuk input
int a;
System.out.println(" Silahkan Input data" );
for(int i=0 ; i<6; i++)
{
a=in.nextInt(); //input data
x.tambah(a); //panggil fungsi tambah
}
System.out.println("Output");
x.tampil(); //menampilkan data
x.hapusawal(); //panggil fungsi hapus awal
System.out.println();
System.out.println("Output");
x.tampil();
System.out.println();
x.hapusawal();
System.out.println();
System.out.println("Output");
x.tampil();
System.out.println();
System.out.println("Silahkan Input data");
a=in.nextInt();
x.tambahakhir(a);
a=in.nextInt();
x.tambahakhir(a);
x.tampil();
System.out.println();
System.out.println("Silahkan Input data");
a=in.nextInt();
x.tambah(a);
x.tampil();
x.hapusakhir();
x.hapusakhir();
System.out.println();
x.tampil();
System.out.println();
System.out.println("Data sekarang");
x.hapusall();
/*x.hapusakhir();
x.tampil();
System.out.println();
System.out.print(“Silahkan input nilai akhir node =“);
a=in.nextInt();
x.tambahakhir(a);
x.tampil();*/
} }

Kelas node
public class Node {
int data;
Node next;

public Node(int data){


this.data = data;
}

Вам также может понравиться