/*
* List to do
* Bryan :
* Buat class diagram
* Kelas User
* Kelas Buku
* Enum Status Buku
*
* Function :
* Lalu :
* User Login (Member dan Admin)
* Pembuatan looping
*
* Opsi :
* golden :
* 1. Melihat semua list buku (Member/Admin)
* 2. Mencari buku berdasarkan Judul (Member)
* 3. Detail buku (Member/Admin)
*
* jesica :
* 4. Meminjam buku (Member)
* 5. Mengembalikan buku(Member)
*
* Diaz :
* Menambah buku (Admin)
* Mengedit buku (Admin)
* Menghapus buku (Admin)
*/
import java.util.ArrayList;
import java.util.Scanner;
public class Library {
static Scanner input = new Scanner(System.in);
enum StatusBuku {
Tersedia,
Dipinjam
}
public static class BOOK {
String Judul;
String Pengarang;
StatusBuku Status;
BOOK(String Judul, String Pengarang, StatusBuku Status) {
this.Judul = Judul;
this.Pengarang = Pengarang;
this.Status = Status;
}
void Borrowed() {
if (Status == StatusBuku.Tersedia) {
Status = StatusBuku.Dipinjam;
System.out.println("Buku " + Judul + " berhasil dipinjam.");
}
else {
System.out.println("Buku " + Judul + " sedang dipinjam.");
}
}
void Returned() {
if (Status == StatusBuku.Dipinjam) {
Status = StatusBuku.Tersedia;
System.out.println("Buku " + Judul + " berhasil dikembalikan.");
}
else {
System.out.println("Buku "+ Judul + " tersedia dan tidak di pinjam");
}
}
}
public static class USER {
private int ID;
private String Nama;
private int PIN;
USER(int ID, String Nama, int PIN) {
this.ID = ID;
this.Nama = Nama;
this.PIN = PIN;
}
void login(int IDs, int PINs) {
if (IDs == ID && PINs == PIN) {
System.out.println("\nLogin Berhasil! Selamat Datang, " + Nama + "!\n");
} else {
System.out.println("\nLogin Gagal!");
}
}
protected int getID() {
return ID;
}
protected String getNama() {
return Nama;
}
protected int getPIN() {
return PIN;
}
}
public static class Admin extends USER {
Scanner input = new Scanner(System.in);
private static ArrayList<BOOK> books = new ArrayList<>();
Admin(int ID, String Nama, int PIN) {
super(ID, Nama, PIN);
}
void TambahBuku() {
System.out.println("Masukan judul buku :");
String judulBuku = input.nextLine();
System.out.println("Masukan nama pengarang :");
String namaPengarang = input.nextLine();
books.add(new BOOK(judulBuku, namaPengarang, StatusBuku.Tersedia));
System.out.println("Buku berhasil ditambahkan!");
}
void HapusBuku() {
System.out.println("Masukan judul buku yang ingin dihapus :");
String judulBuku = input.nextLine();
books.removeIf(book -> book.Judul.equalsIgnoreCase(judulBuku));
System.out.println("Buku berhasil dihapus jika ditemukan.");
}
void EditBuku() {
System.out.println("Masukan judul buku yang ingin diedit :");
String judulBuku = input.nextLine();
for (BOOK book : books) {
if (book.Judul.equalsIgnoreCase(judulBuku)) {
System.out.println("Masukan judul buku baru :");
book.Judul = input.nextLine();
System.out.println("Masukan nama pengarang baru :");
book.Pengarang = input.nextLine();
System.out.println("Buku berhasil diedit jika ditemukan.");
return;
}
}
System.out.println("Buku tidak ditemukan.");
}
void LihatBuku() {
System.out.println("\nDaftar Buku :");
int nomor = 1;
for (BOOK book : books) {
if (book.Status == StatusBuku.Tersedia) {
System.out.println("- " + book.Judul + " oleh " + book.Pengarang);
}
System.out.println(
nomor + ". Judul : " + book.Judul +
" | Pengarang : " + book.Pengarang +
" | Status : " + book.Status);
nomor++;
}
}
void DetailBuku() {
for (BOOK book : books) {
System.out.println("Masukan judul buku yang ingin dilihat detailnya :");
String judulBuku = input.nextLine();
if (book.Judul.equalsIgnoreCase(judulBuku)) {
System.out.println("\nDetail Buku:");
System.out.println("Judul Buku: " + book.Judul);
System.out.println("Pengarang: " + book.Pengarang);
System.out.println("Status: " + book.Status);
return;
}
}
System.out.println("\nBuku tidak ditemukan.");
}
}
public static class Member extends USER {
private static ArrayList<BOOK> books = new ArrayList<>();
Member(int ID, String Nama, int PIN) {
super(ID, Nama, PIN);
}
void LihatBuku() {
System.out.println("\nDaftar Buku :");
int nomor = 1;
for (BOOK book : books) {
if (book.Status == StatusBuku.Tersedia) {
System.out.println("- " + book.Judul + " oleh " + book.Pengarang);
}
System.out.println(
nomor + ". Judul : " + book.Judul +
" Pengarang : " + book.Pengarang +
" Status : " + book.Status);
nomor++;
}
}
void CariBuku() {
System.out.println("Masukan judul buku yang ingin dicari :");
String judulBuku = input.nextLine();
for (BOOK book : books) {
if (book.Judul.equalsIgnoreCase(judulBuku)) {
System.out.println("\nBuku ditemukan: " + book.Judul + " oleh " + book.Pengarang);
return;
}
}
System.out.println("\nBuku tidak ditemukan.");
}
void DetailBuku() {
for (BOOK book : books) {
System.out.println("Masukan judul buku yang ingin dilihat detailnya :");
String judulBuku = input.nextLine();
if (book.Judul.equalsIgnoreCase(judulBuku)) {
System.out.println("\nDetail Buku:");
System.out.println("Judul Buku: " + book.Judul);
System.out.println("Pengarang: " + book.Pengarang);
System.out.println("Status: " + book.Status);
return;
}
}
System.out.println("\nBuku tidak ditemukan.");
}
void PinjamBuku() {
LihatBuku();
System.out.println("\nMau Pinjam Buku Apa Hari ini? ");
String judulBuku = input.nextLine();
for (BOOK book : books) {
if (book.Judul.equalsIgnoreCase(judulBuku)) {
book.Borrowed();
return;
}
}
System.out.println("Buku " + judulBuku + " tidak tersedia");
}
void MengembalikanBuku() {
LihatBuku();
System.out.println("\nMau kembalikan buku apa?? ");
String judulBuku = input.nextLine();
for (BOOK book : books) {
if (book.Judul.equalsIgnoreCase(judulBuku)) {
book.Returned();
return;
}
}
System.out.println("Buku " + judulBuku + " berhasil di kembalikan.");
}
}
public static void main(String[] args) {
ArrayList<USER> users = new ArrayList<>();
ArrayList<BOOK> books = new ArrayList<>();
users.add(new Admin(1, "Admin", 1234));
mainMenu(users, books);
}
public static void mainMenu(ArrayList<USER> users, ArrayList<BOOK> books) {
Scanner input = new Scanner(System.in);
USER loggedInUser = null;
while (true) {
System.out.println("Menu:");
System.out.println("1. Register");
System.out.println("2. Login");
System.out.println("0. Exit");
System.out.print("Pilih menu! : ");
int choice = input.nextInt();
switch (choice) {
case 1:
addMember(users, input);
break;
case 2:
loggedInUser = Login(users, input);
if (loggedInUser != null) {
if (loggedInUser instanceof Admin) {
AdminMenu((Admin) loggedInUser);
} else {
MemberMenu((Member) loggedInUser);
}
}
break;
case 0:
System.out.println("Exiting...");
return;
default:
System.out.println("Mohon pilih angka 0-2.");
}
}
}
public static void addMember(ArrayList<USER> users, Scanner input) {
System.out.print("Masukkan ID: ");
int id = input.nextInt();
input.nextLine();
System.out.print("Masukkan Nama: ");
String nama = input.nextLine();
System.out.print("Masukkan PIN: ");
int pin = input.nextInt();
users.add(new Member(id, nama, pin));
System.out.println("Member berhasil didaftarkan!");
}
public static USER Login(ArrayList<USER> users, Scanner input) {
System.out.print("Masukkan ID: ");
int id = input.nextInt();
System.out.print("Masukkan PIN: ");
int pin = input.nextInt();
for (USER user : users) {
if (user.getID() == id && user.getPIN() == pin) {
System.out.println("Login berhasil!");
return user;
}
}
System.out.println("Login gagal! ID atau PIN salah.");
return null;
}
public static void MemberMenu(Member member) {
while (true) {
System.out.println("Menu:");
System.out.println("1. Lihat Buku");
System.out.println("2. Pinjam Buku");
System.out.println("3. Mengembalikan Buku");
System.out.println("0. Exit");
System.out.print("Pilih menu! : ");
int choice = input.nextInt();
switch (choice) {
case 1:
member.LihatBuku();
break;
case 2:
member.PinjamBuku();
break;
case 3:
member.MengembalikanBuku();
break;
case 0:
System.out.println("Exiting...");
return;
default:
System.out.println("\nMenu Error. Mohon pilih angka 0-3.\n");
}
}
}
public static void AdminMenu(Admin admin) {
while (true) {
System.out.println("Menu Admin:");
System.out.println("1. Tambah Buku");
System.out.println("2. Hapus Buku");
System.out.println("3. Edit Buku");
System.out.println("4. Lihat Buku");
System.out.println("0. Exit");
System.out.print("Pilih menu! : ");
int choice = input.nextInt();
switch (choice) {
case 1:
admin.TambahBuku();
break;
case 2:
admin.HapusBuku();
break;
case 3:
admin.EditBuku();
break;
case 4:
admin.LihatBuku();
break;
case 0:
System.out.println("Exiting...");
return;
default:
System.out.println("Mohon pilih angka 0-4.");
}
}
}
}Add a code snippet to your website: www.paste.org