PBO 6

  muhammad rafi budi purnama

5025221307

PBO 6

code : https://github.com/mbahbud/PBO.git

Personal Organizer

hasil implementasi dari personal organizer adalah seperti berikut. 


Implementasi program tersebut bisa dikerjakan dalam satu kelas main seperti berikut.


Main.java

import java.util.ArrayList;
import java.util.Scanner;

public class Main {
    static Scanner input = new Scanner(System.in);
    static ArrayList<String> daftarTugas = new ArrayList<>();

    public static void main(String[] args) {
        int pilihan;
        do {
            tampilkanMenu();
            System.out.print("Pilih menu: ");
            pilihan = input.nextInt();
            input.nextLine(); // buang newline

            switch (pilihan) {
                case 1:
                    tambahTugas();
                    break;
                case 2:
                    tampilkanTugas();
                    break;
                case 3:
                    hapusTugas();
                    break;
                case 4:
                    System.out.println("Terima kasih! Aplikasi ditutup.");
                    break;
                default:
                    System.out.println("Pilihan tidak valid!");
            }
            System.out.println();
        } while (pilihan != 4);
    }

    static void tampilkanMenu() {
        System.out.println("=== PERSONAL ORGANIZER ===");
        System.out.println("1. Tambah Tugas Baru");
        System.out.println("2. Tampilkan Daftar Tugas");
        System.out.println("3. Hapus Tugas Berdasarkan Nomor");
        System.out.println("4. Keluar");
        System.out.println("===========================");
    }

    static void tambahTugas() {
        System.out.print("Masukkan nama tugas: ");
        String tugas = input.nextLine();
        daftarTugas.add(tugas);
        System.out.println("Tugas \"" + tugas + "\" berhasil ditambahkan!");
    }

    static void tampilkanTugas() {
        System.out.println("=== DAFTAR TUGAS ===");
        if (daftarTugas.isEmpty()) {
            System.out.println("Belum ada tugas yang ditambahkan.");
        } else {
            for (int i = 0; i < daftarTugas.size(); i++) {
                System.out.println((i + 1) + ". " + daftarTugas.get(i));
            }
        }
    }

    static void hapusTugas() {
        tampilkanTugas();
        if (!daftarTugas.isEmpty()) {
            System.out.print("Masukkan nomor tugas yang ingin dihapus: ");
            int nomor = input.nextInt();
            input.nextLine();

            if (nomor > 0 && nomor <= daftarTugas.size()) {
                String dihapus = daftarTugas.remove(nomor - 1);
                System.out.println("Tugas \"" + dihapus + "\" telah dihapus.");
            } else {
                System.out.println("Nomor tugas tidak valid!");
            }
        }
    }
}

Library Catalog

pada implementasi Library Catalog, kita akan membuat dua kelas yang direpresentasikan dalam class diagram berikut.


Implementasi dari setiap class nya dicantumkan dalam kode berikut.

Main.java

import java.util.ArrayList;

import java.util.Scanner;


public class Main {

    static Scanner input = new Scanner(System.in);

    static ArrayList<Book> katalog = new ArrayList<>();


    public static void main(String[] args) {

        int pilihan;

        do {

            tampilkanMenu();

            System.out.print("Pilih menu: ");

            pilihan = input.nextInt();

            input.nextLine(); // buang newline


            switch (pilihan) {

                case 1:

                    tambahBuku();

                    break;

                case 2:

                    tampilkanBuku();

                    break;

                case 3:

                    hapusBuku();

                    break;

                case 4:

                    System.out.println("Terima kasih! Aplikasi ditutup.");

                    break;

                default:

                    System.out.println("Pilihan tidak valid!");

            }

            System.out.println();

        } while (pilihan != 4);

    }


    static void tampilkanMenu() {

        System.out.println("=== LIBRARY CATALOG ===");

        System.out.println("1. Tambah Buku Baru");

        System.out.println("2. Tampilkan Daftar Buku");

        System.out.println("3. Hapus Buku Berdasarkan Nomor");

        System.out.println("4. Keluar");

        System.out.println("=======================");

    }


    static void tambahBuku() {

        System.out.print("Masukkan judul buku: ");

        String judul = input.nextLine();

        System.out.print("Masukkan nama penulis: ");

        String penulis = input.nextLine();

        System.out.print("Masukkan tahun terbit: ");

        int tahun = input.nextInt();

        input.nextLine();


        Book buku = new Book(judul, penulis, tahun);

        katalog.add(buku);

        System.out.println("Buku \"" + judul + "\" berhasil ditambahkan!");

    }


    static void tampilkanBuku() {

        System.out.println("=== DAFTAR BUKU ===");

        if (katalog.isEmpty()) {

            System.out.println("Belum ada buku dalam katalog.");

        } else {

            for (int i = 0; i < katalog.size(); i++) {

                System.out.println((i + 1) + ". " + katalog.get(i));

            }

        }

    }


    static void hapusBuku() {

        tampilkanBuku();

        if (!katalog.isEmpty()) {

            System.out.print("Masukkan nomor buku yang ingin dihapus: ");

            int nomor = input.nextInt();

            input.nextLine();


            if (nomor > 0 && nomor <= katalog.size()) {

                Book dihapus = katalog.remove(nomor - 1);

                System.out.println("Buku \"" + dihapus.getJudul() + "\" telah dihapus.");

            } else {

                System.out.println("Nomor tidak valid!");

            }

        }

    }

}


Book.java
public class Book {
    private String judul;
    private String penulis;
    private int tahunTerbit;

    public Book(String judul, String penulis, int tahunTerbit) {
        this.judul = judul;
        this.penulis = penulis;
        this.tahunTerbit = tahunTerbit;
    }

    public String getJudul() {
        return judul;
    }

    public String getPenulis() {
        return penulis;
    }

    public int getTahunTerbit() {
        return tahunTerbit;
    }

    @Override
    public String toString() {
        return "\"" + judul + "\" oleh " + penulis + " (" + tahunTerbit + ")";
    }
}


hasil dari kode tersebut seperti berikut


Student Record System

Pada project Student Record System, struktur class diagram sama dengan sebelumnya. Implementasinya terbagi dua yaitu main dan student.

Main.java

import java.util.ArrayList;

import java.util.Scanner;


public class Main {

    static Scanner input = new Scanner(System.in);

    static ArrayList<Student> daftarMahasiswa = new ArrayList<>();


    public static void main(String[] args) {

        int pilihan;

        do {

            tampilkanMenu();

            System.out.print("Pilih menu: ");

            pilihan = input.nextInt();

            input.nextLine(); // buang newline


            switch (pilihan) {

                case 1:

                    tambahMahasiswa();

                    break;

                case 2:

                    tampilkanMahasiswa();

                    break;

                case 3:

                    hapusMahasiswa();

                    break;

                case 4:

                    System.out.println("Terima kasih! Program ditutup.");

                    break;

                default:

                    System.out.println("Pilihan tidak valid!");

            }

            System.out.println();

        } while (pilihan != 4);

    }


    static void tampilkanMenu() {

        System.out.println("=== STUDENT RECORD SYSTEM ===");

        System.out.println("1. Tambah Mahasiswa Baru");

        System.out.println("2. Tampilkan Daftar Mahasiswa");

        System.out.println("3. Hapus Mahasiswa Berdasarkan Nomor");

        System.out.println("4. Keluar");

        System.out.println("=============================");

    }


    static void tambahMahasiswa() {

        System.out.print("Masukkan nama mahasiswa: ");

        String nama = input.nextLine();

        System.out.print("Masukkan NRP mahasiswa: ");

        String nrp = input.nextLine();


        Student mhs = new Student(nama, nrp);

        daftarMahasiswa.add(mhs);

        System.out.println("Mahasiswa \"" + nama + "\" berhasil ditambahkan!");

    }


    static void tampilkanMahasiswa() {

        System.out.println("=== DAFTAR MAHASISWA ===");

        if (daftarMahasiswa.isEmpty()) {

            System.out.println("Belum ada data mahasiswa.");

        } else {

            for (int i = 0; i < daftarMahasiswa.size(); i++) {

                System.out.println((i + 1) + ". " + daftarMahasiswa.get(i));

            }

        }

    }


    static void hapusMahasiswa() {

        tampilkanMahasiswa();

        if (!daftarMahasiswa.isEmpty()) {

            System.out.print("Masukkan nomor mahasiswa yang ingin dihapus: ");

            int nomor = input.nextInt();

            input.nextLine();


            if (nomor > 0 && nomor <= daftarMahasiswa.size()) {

                Student dihapus = daftarMahasiswa.remove(nomor - 1);

                System.out.println("Mahasiswa \"" + dihapus.getNama() + "\" telah dihapus.");

            } else {

                System.out.println("Nomor tidak valid!");

            }

        }

    }

}

Student.java
public class Student {
    private String nama;
    private String nrp;

    public Student(String nama, String nrp) {
        this.nama = nama;
        this.nrp = nrp;
    }

    public String getNama() {
        return nama;
    }

    public String getNrp() {
        return nrp;
    }

    @Override
    public String toString() {
        return nama + " (" + nrp + ")";
    }
}


Hasil dari kode tersebut adalah seperti berikut



Project Notebook

Implementasi pencatatan notebook dibagi menjadi 

Main.java

import java.util.ArrayList;

import java.util.Scanner;


public class Main {

    static Scanner input = new Scanner(System.in);

    static ArrayList<Note> daftarCatatan = new ArrayList<>();


    public static void main(String[] args) {

        int pilihan;

        do {

            tampilkanMenu();

            System.out.print("Pilih menu: ");

            pilihan = input.nextInt();

            input.nextLine(); // buang newline


            switch (pilihan) {

                case 1:

                    tambahCatatan();

                    break;

                case 2:

                    tampilkanCatatan();

                    break;

                case 3:

                    hapusCatatan();

                    break;

                case 4:

                    System.out.println("Terima kasih! Notebook ditutup.");

                    break;

                default:

                    System.out.println("Pilihan tidak valid!");

            }

            System.out.println();

        } while (pilihan != 4);

    }


    static void tampilkanMenu() {

        System.out.println("=== NOTEBOOK ===");

        System.out.println("1. Tambah Catatan Baru");

        System.out.println("2. Tampilkan Semua Catatan");

        System.out.println("3. Hapus Catatan Berdasarkan Nomor");

        System.out.println("4. Keluar");

        System.out.println("================");

    }


    static void tambahCatatan() {

        System.out.print("Masukkan judul catatan: ");

        String judul = input.nextLine();

        System.out.print("Masukkan isi catatan: ");

        String isi = input.nextLine();


        Note note = new Note(judul, isi);

        daftarCatatan.add(note);

        System.out.println("Catatan \"" + judul + "\" berhasil ditambahkan!");

    }


    static void tampilkanCatatan() {

        System.out.println("=== DAFTAR CATATAN ===");

        if (daftarCatatan.isEmpty()) {

            System.out.println("Belum ada catatan.");

        } else {

            for (int i = 0; i < daftarCatatan.size(); i++) {

                System.out.println((i + 1) + ". " + daftarCatatan.get(i).getJudul());

            }

            System.out.println();

            System.out.print("Ingin melihat isi catatan tertentu? (masukkan nomor atau 0 untuk kembali): ");

            int nomor = input.nextInt();

            input.nextLine();

            if (nomor > 0 && nomor <= daftarCatatan.size()) {

                System.out.println("------------------------");

                System.out.println(daftarCatatan.get(nomor - 1));

                System.out.println("------------------------");

            }

        }

    }


    static void hapusCatatan() {

        tampilkanCatatan();

        if (!daftarCatatan.isEmpty()) {

            System.out.print("Masukkan nomor catatan yang ingin dihapus: ");

            int nomor = input.nextInt();

            input.nextLine();


            if (nomor > 0 && nomor <= daftarCatatan.size()) {

                Note dihapus = daftarCatatan.remove(nomor - 1);

                System.out.println("Catatan \"" + dihapus.getJudul() + "\" telah dihapus.");

            } else {

                System.out.println("Nomor tidak valid!");

            }

        }

    }

}

Note.java

public class Note {

    private String judul;

    private String isi;


    public Note(String judul, String isi) {

        this.judul = judul;

        this.isi = isi;

    }


    public String getJudul() {

        return judul;

    }


    public String getIsi() {

        return isi;

    }


    @Override

    public String toString() {

        return "Judul: " + judul + "\nIsi: " + isi;

    }

}


kode dari setiap project tidak jauh berbeda. Hasil dari implementasi tersebut diperlihatkan gambar di bawah.

Komentar

Postingan populer dari blog ini

TUGAS 2 : Jettpack compose : Hello, World!

Pertemuan 3 PPB (A) - Mengenal Composable Aplikasi Selamat Ulang Tahun

Pertemuan 5 - Aplikasi Kalkulator Sederhana