Quick actions

cmd+k|ctrl+k

Navigation

Languages

Antrian Sederhana menggunakan LinkedList (Java)

Snippet info

Language

Java

Visibility

public

Author

riyanto.droider

Created

2022-12-12T04:05:11.920857Z

Updated

2023-01-07T05:36:15.430675Z

import java.util.LinkedList;

public class Main {
    
    public static void main(String[] args) {
        Antrian antrian = new Antrian();
        
        antrian.register("Adi", false);
        antrian.register("Budi", true);
        
        antrian.show();
        
        System.out.print(antrian.served("Addi"));
    }
}

class Antrian {

    private LinkedList<String> list;

    public Antrian() {
        list = new LinkedList<>();
    }

    public String register(String nama, boolean isPriority) {
        // jika prioritas, tempatkan pada antrian pertama
        // jika bukan maka tempatkan pada antrian terakhir
        if (isPriority) list.push(nama);
        else list.add(nama);

        return String.format("%s berhasil melakukan pendaftaran", nama);
    }

    public String served(String nama) {
        if (list.contains(nama)) {
            if (list.peek().equalsIgnoreCase(nama)) {
                list.remove(nama);
                return String.format("%s dilayani", nama);
            } else {
                return String.format("%s tidak dapat dilayani karena berada pada antrian ke-%d", nama, (list.indexOf(nama)+1));
            }
        }
        return String.format("%s belum mendaftar", nama);
    }

    public void show() {
        // tampilkan antrian
        if (list.isEmpty()) {
            System.out.println("Tidak ada antrian");
        } else {
            System.out.println("Antrian saat ini: ");
            for (String nama: list) {
                System.out.println(
                        String.format("%d. %s", list.indexOf(nama) + 1, nama)
                );
            }
        }
    }
}
INFO